技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于S3C4480X的嵌入式以太網(wǎng)接口設(shè)計(jì)

基于S3C4480X的嵌入式以太網(wǎng)接口設(shè)計(jì)

時(shí)間:2008-05-16 13:26:00來源:ronggang

導(dǎo)語:?本文基于最常用的嵌入式處理器S3C44B0X和以太網(wǎng)驅(qū)動(dòng)器RTL8019AS來設(shè)計(jì)了一款嵌入式以太網(wǎng)接口
0 引言   在互聯(lián)網(wǎng)絡(luò)和局域網(wǎng)絡(luò)飛速發(fā)展的今天,計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時(shí),各種家電設(shè)備、儀器儀表、工業(yè)生產(chǎn)中的數(shù)據(jù)采集和控制正在走向網(wǎng)絡(luò)化。以太網(wǎng)(Ethemet)由于它的普遍性及低廉的接口價(jià)格,因而已經(jīng)作為一種最通用的網(wǎng)絡(luò),廣泛應(yīng)用于生產(chǎn)和生活中。另一方面,嵌入式設(shè)備在價(jià)格、體積及實(shí)時(shí)性等方面是通用計(jì)算機(jī)無法比擬的,也已廣泛應(yīng)用于自動(dòng)化控制、數(shù)據(jù)采集、通信網(wǎng)絡(luò)等領(lǐng)域。因此,嵌入式以太網(wǎng)技術(shù)有著廣闊的前景,首先要解決的問題就是嵌入式以太網(wǎng)接口問題。   本文基于最常用的嵌入式處理器S3C44B0X和以太網(wǎng)驅(qū)動(dòng)器RTL8019AS來設(shè)計(jì)了一款嵌入式以太網(wǎng)接口。本設(shè)計(jì)的特點(diǎn)是,既可僅用于嵌入式以太網(wǎng)驅(qū)動(dòng)設(shè)備,方便簡(jiǎn)單,又可進(jìn)行擴(kuò)展其他模塊,必要時(shí)可以移植操作系統(tǒng),應(yīng)用于其他復(fù)雜領(lǐng)域。本文從RTL8019AS的內(nèi)部結(jié)構(gòu)工作原理出發(fā),介紹了基于S3C44B0X的硬件接口電路,詳細(xì)說明了基于硬件層的驅(qū)動(dòng)程序C語言的設(shè)計(jì)。 1 以太網(wǎng)幀結(jié)構(gòu)   一個(gè)標(biāo)準(zhǔn)的以太網(wǎng)物理傳輸幀由7部分組成:PR(同步位)、SD(分隔位)、DA(目的地址)、SA(源地址位)、TYPE(類型字段)、DATA(數(shù)據(jù)段)、FCS(幀校驗(yàn))。   其傳輸幀結(jié)構(gòu)(及各部分長(zhǎng)度)如圖1所示。
  除了數(shù)據(jù)段的長(zhǎng)度不定外,其他部分的長(zhǎng)度固定不變。數(shù)據(jù)段為46~1500字節(jié)。以太網(wǎng)規(guī)定整個(gè)傳輸包的最大長(zhǎng)度不能超過1514字節(jié)(14字節(jié)為DA、SA、TYPE),最小不能小于60字節(jié)。需填充時(shí),填充字符的個(gè)數(shù)不包括在長(zhǎng)度字段中;超過1 500字節(jié)時(shí),需拆成多個(gè)幀傳送。事實(shí)上,發(fā)送數(shù)據(jù)時(shí),PR、SD、FCS及填充字段這幾個(gè)數(shù)據(jù)段由以太網(wǎng)控制器自動(dòng)產(chǎn)生;而接收數(shù)據(jù)時(shí),PR、SD被跳過,控制器一旦檢測(cè)到有效的前序字段(即PR、SD),就認(rèn)為接收數(shù)據(jù)開始。 2 芯片簡(jiǎn)介   S3C44B0X是三星公司使用ARM7TDMI核生產(chǎn)的16/32位RISC(精簡(jiǎn)指令集計(jì)算機(jī))處理器,它提供了豐富的內(nèi)置模塊,包括:8 kB Cache和內(nèi)部SRAM,LCD(液晶顯示器)控制器,2通道的UART,4通道的DMA(直接存儲(chǔ)器存取),存儲(chǔ)器管理,帶PWM(脈寬調(diào)制)的定時(shí)器,I/O口,8通道10位的A/D轉(zhuǎn)換器,IIC、IIS總線,同步SIO接口和PLL(鎖相環(huán))倍頻器,可根據(jù)需要進(jìn)行接口擴(kuò)展,并且價(jià)格低廉,目前已被廣泛應(yīng)用于嵌入式領(lǐng)域中。   RTL8019AS是在嵌入式領(lǐng)域應(yīng)用廣泛且性價(jià)比很高的網(wǎng)絡(luò)控制芯片。RTL8019AS的主要性能有:符號(hào)EthernetⅡ與IEEE 802.3(10Base5、10Base2、10BaseT)標(biāo)準(zhǔn);全雙工,收發(fā)可同時(shí)達(dá)到10 Mbit/s的速率;內(nèi)置16 kB的SRAM,用于收發(fā)緩沖,降低對(duì)主處理器的速度要求;支持8/16位數(shù)據(jù)總線,8個(gè)中斷申請(qǐng)線以及16個(gè)I/O基地址選擇;支持UTP、AUI、BNC自動(dòng)檢測(cè),還支持對(duì)10BaseT拓?fù)浣Y(jié)構(gòu)的自動(dòng)極性修正;允許4個(gè)診斷LED引腳可編程輸出。   RTL8019AS可分為以下幾部分功能模塊:   a)遠(yuǎn)程DMA接口:處理器與RTL8019AS收發(fā)緩沖的連接通道,處理器只需對(duì)遠(yuǎn)程DMA操作。   b)本地DMA接口:RTL8019AS與網(wǎng)線的連接通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。   c)MAC(介質(zhì)訪問控制)邏輯:完成對(duì)遠(yuǎn)程DMA和本地DMA數(shù)據(jù)包傳輸、中斷的產(chǎn)生等自動(dòng)控制。   d)地址識(shí)別邏輯:將接收到的數(shù)據(jù)幀中的目的地址和地址寄存器中的地址進(jìn)行比較,判斷其是否為發(fā)到本地的幀。   e)CRC(循環(huán)冗余校驗(yàn))產(chǎn)生校驗(yàn)邏輯:在發(fā)送數(shù)據(jù)時(shí),產(chǎn)生CRC碼,對(duì)接收幀進(jìn)行CRC。   f)協(xié)議PCA:負(fù)責(zé)實(shí)施以太網(wǎng)規(guī)范。   RTL8019AS內(nèi)部有16kB SRAM,分為64頁,256字節(jié)/頁,組成環(huán)形隊(duì)列作為收發(fā)緩沖區(qū),只能按頁操作,頁地址從0x4000~0x7FFF??梢酝ㄟ^相關(guān)的寄存器讀寫操作,可以對(duì)緩沖區(qū)進(jìn)行設(shè)置及狀態(tài)的讀取。由于接收緩沖區(qū)是按頁即256 B來操作的,與緩沖區(qū)地址有關(guān)的寄存器中只需存儲(chǔ)緩沖區(qū)的高16位地址即可。在本設(shè)計(jì)中,將前32頁(0x400~0x5fff)作為接收緩沖區(qū),將后32頁(0x6000~0x7ff)作為發(fā)送緩沖區(qū)。   RTL8019AS具有32位輸入輸出地址,地址偏移量為00H~1FH。其中,00H~0FH共16個(gè)地址為寄存器地址。遠(yuǎn)程DMA地址包括10H~17H,都可以用來做遠(yuǎn)程DMA端口,只要用其中的一個(gè)就可以了。復(fù)位端口包括18H~1FH共8個(gè)地址,功能相同,用于RTL8019AS復(fù)位。RTL8019AS的內(nèi)部I/O基址是00H,但微處理器要訪問8019的地址卻不是00H,該地址是由處理器與網(wǎng)絡(luò)控制器的連線決定的。   RTL8019AS寄存器分為4頁,即PAGE0~PAGE3,每一頁的地址偏移量均為0x00~0x1f由RTL8019AS的CR(命令寄存器)中的PS1、PS0位來決定要訪問的頁,每一頁中的寄存器由SA0~SA3尋址。第0頁和第1頁的寄存器很重要,用于數(shù)據(jù)收發(fā)的控制和中斷管理等,使用前必須對(duì)其進(jìn)行配置。第2頁和第3頁只用于診斷和其他一些配置,很少使用。 3 設(shè)計(jì)思路   首先,S3C44B0X通過RTL8019AS的I/O口,對(duì)其相關(guān)寄存器進(jìn)行配置。在通信時(shí),S3C44B0X與RTL8019AS的收發(fā)緩存器的數(shù)據(jù)交換由遠(yuǎn)程DMA控制,而RTL81019AS收發(fā)緩存器與以太網(wǎng)總線之間的數(shù)據(jù)交換由它的本地DMA控制。RTL8019AS通過中斷的方式通知S3C44B0X數(shù)據(jù)收發(fā)的結(jié)果和狀態(tài),S3C44B0X通過查詢中斷狀態(tài)寄存器的值,作出相應(yīng)處理。   系統(tǒng)結(jié)構(gòu)如圖2所示。
4 接口電路設(shè)計(jì)   接口電路如圖3所示。
  S3C 44B0X的nOE、nWE分別與RTL8019AS的IORB、IOWB相連,控制數(shù)據(jù)的讀和寫操作,低電平有效。RTL8019使用中斷0,對(duì)應(yīng)S3C4480的外部中斷1。   RTL8019AS RTL8019AS有3種工作方式:   a)跳線方式:I/O和中斷由跳線決定;   b)即插即用方式(PNP):由軟件進(jìn)行自動(dòng)配置,使用這種方法時(shí),系統(tǒng)的啟動(dòng)程序必須包含支持PNP的函數(shù);   c)免跳線方式:I/O和中斷由外接的EEPROM93C46中的內(nèi)容決定。   在本設(shè)計(jì)中,為了降低啟動(dòng)程序和接口電路的復(fù)雜性,選擇跳線方式,故JP接高電平。   X1、X2分別為20 MHz晶振的輸入輸出端。LED0~2分別連接3個(gè)發(fā)光二極管,指示網(wǎng)絡(luò)連接、數(shù)據(jù)傳輸和發(fā)送的情況。 20F001為網(wǎng)卡濾波器,內(nèi)部包含一對(duì)低通濾波器和一對(duì)隔離變壓器,其輸出TX+/-、RX+/-與RJ45的信號(hào)口相連。   由于在本設(shè)計(jì)中RTL8019AS的AEN與S3C44B0X的nGCS2相連,所以對(duì)應(yīng)S3C44B0X的存儲(chǔ)器的起始地址0x0600-0000;并且,由于RTL8019AS的IOS0~I(xiàn)OS3接地,在跳線模式下,當(dāng)IOS0~I(xiàn)OS1為0000時(shí),RTL8019AS的基址為0300H。因此,在本設(shè)計(jì)中,S3C44B0X訪問RTL8019AS的基址就是0x0600-0300。 5 驅(qū)動(dòng)程序設(shè)計(jì)   5.1程序設(shè)計(jì)思路   在本設(shè)計(jì)方案中,驅(qū)動(dòng)程序主要包含3個(gè)函數(shù),即系統(tǒng)的初始化函數(shù)、接收數(shù)據(jù)包函數(shù)、發(fā)送數(shù)據(jù)包函數(shù)。 初始化部分完成RTL8019AS在使用之前的初始化工作,包括設(shè)置相關(guān)工作模式的寄存器、分配和初始化接收和發(fā)送緩沖區(qū)、初始化網(wǎng)卡接收地址等。   MAR0-MAR7-多點(diǎn)地址寄存器:這8個(gè)寄存器的值是根據(jù)多播地址數(shù)組的值生成的,提供對(duì)多播地址的過濾,過濾掉一些不屬于自己接收多播數(shù)據(jù)包。   這里均設(shè)為FFH,接所有多播地址的數(shù)據(jù)包:      下面6條語句設(shè)置MAC地址,寄存器為PAR0~PAR5:實(shí)際地址寄存器,這些寄存用來對(duì)目標(biāo)地址數(shù)據(jù)包進(jìn)行比較,以確定接收或者拒絕接收。地址放在數(shù)組add[6]中。      5.2數(shù)據(jù)的傳輸和發(fā)送   數(shù)據(jù)的傳輸和發(fā)送由本地DMA傳輸和與遠(yuǎn)程DMA傳輸兩部分完成,前者大部分工作由RTL8019AS自動(dòng)完成,我們要做的是設(shè)置收發(fā)緩沖區(qū)的大小及指針變量,這些工作在RTL8019AS的初始化時(shí)已完成,因此只需要編寫遠(yuǎn)程DMA讀寫函數(shù)。對(duì)遠(yuǎn)端DAM口的讀寫,不同的只是數(shù)據(jù)傳輸方向,這里,僅以讀操作為例,即編寫從RTL8019AS接收緩沖區(qū)取數(shù)據(jù)包到S3C4480X。(注意:遠(yuǎn)程DMA的寫函數(shù),即向RTL8019AS發(fā)送緩沖區(qū)寫數(shù)據(jù)函數(shù)——send_data()省略。)      5.3以太網(wǎng)接口通信函數(shù)流程   這里采用中斷和查詢相結(jié)合的方式來決定是否發(fā)送和接收數(shù)據(jù)。當(dāng)RTL8019AS的ISR(中斷狀態(tài)寄存器)的任意一中斷位置位時(shí),S3C4B0X都要對(duì)其進(jìn)行中斷相應(yīng)(在這里只關(guān)注第0中斷位和第1中斷位,即分別反映RTL8019AS已正確接收到數(shù)據(jù)和已成功發(fā)送數(shù)據(jù)包,因此在初始化函數(shù)中將其他位屏蔽)。這時(shí)要對(duì)ISR進(jìn)行訪問,來判斷是何種中斷,進(jìn)而作出相應(yīng)的響應(yīng),如圖4所示。
6 結(jié)束語   本設(shè)計(jì)經(jīng)過軟硬件的調(diào)試,并已成功地進(jìn)行以太網(wǎng)數(shù)據(jù)傳輸。由于S3C4480X出眾的性價(jià)比及豐富的外圍接口,通過擴(kuò)展本設(shè)計(jì)可以應(yīng)用到嵌入式儀器儀表、工業(yè)數(shù)據(jù)采集網(wǎng)絡(luò)、嵌入式網(wǎng)絡(luò)控制等許多領(lǐng)域。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于RTL8019AS的串口與以太網(wǎng)...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)