以太網(wǎng)控制器的嵌入式設(shè)備網(wǎng)絡(luò)互連
出處:fsclub 發(fā)布于:2007-05-25 10:33:25
| 摘 要: RTL8019AS以太網(wǎng)(Ethernet)控制器在電子設(shè)備日趨網(wǎng)絡(luò)化的背景下,被廣泛應(yīng)用于各種嵌入式設(shè)備上。本文介紹以太網(wǎng)控制器RTL8019AS的結(jié)構(gòu);結(jié)合MOTOROLA的嵌入式MPU MC68VZ328,分析RTL8019AS的硬件和軟件的設(shè)計(jì)。 |
| 關(guān)鍵詞:RTL8019AS Ethernet 嵌入式網(wǎng)絡(luò) MC68VZ328 |
| 互聯(lián)網(wǎng)絡(luò)硬件、軟件的迅猛發(fā)展,使得網(wǎng)絡(luò)用戶(hù)呈指數(shù)增長(zhǎng)。在使用通用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時(shí),各種家電設(shè)備、PDA、儀器儀表、工業(yè)生產(chǎn)中的數(shù)據(jù)的采集與控制等設(shè)備正在逐漸地走向網(wǎng)絡(luò)化,以便共享互聯(lián)網(wǎng)絡(luò)中龐大的信息資源。以太網(wǎng)經(jīng)過(guò)20年的發(fā)展,成為當(dāng)今互聯(lián)網(wǎng)絡(luò)中底層鏈接不可缺少的部分。在某些應(yīng)用領(lǐng)域,嵌入式設(shè)備在價(jià)格、體積及實(shí)時(shí)性等方面,有著標(biāo)準(zhǔn)計(jì)算機(jī)無(wú)法比擬的優(yōu)點(diǎn)。嵌入式設(shè)備的網(wǎng)絡(luò)化開(kāi)發(fā)有著廣闊的前景。在開(kāi)發(fā)過(guò)程中,首先要解決的問(wèn)題之一就是與以太網(wǎng)的接口問(wèn)題:如何利用通用計(jì)算機(jī)的網(wǎng)絡(luò)接口器件應(yīng)用于嵌入式網(wǎng)絡(luò)的開(kāi)發(fā)。RTL8019AS以太網(wǎng)接口芯片正好能滿(mǎn)足這一需要,它具有的性?xún)r(jià)比。以下就幾個(gè)方面來(lái)詳細(xì)討論其具體應(yīng)用。 |
| 一、RTL8019AS以太網(wǎng)控制器簡(jiǎn)介 |
| 由臺(tái)灣Realtek公司生產(chǎn)的RTL8019AS 以太網(wǎng)控制器,由于其優(yōu)良的性能、低廉的價(jià)格,使其在市場(chǎng)上10Mbps網(wǎng)卡中占有相當(dāng)?shù)谋壤?br> |
| 1.主要性能 |
| (1)適應(yīng)于Ethernet II 、IEEE802.3 、10Base5、10Base2、10BaseT; |
| (2)支持8位、16位數(shù)據(jù)總線(xiàn); |
| (3)全雙工,收發(fā)可同時(shí)達(dá)到10Mbps的速率,具有睡眠模式,以降低功耗; |
| (4)內(nèi)置16KB的SRAM,用于收發(fā)緩沖,降低對(duì)主處理器的速度要求; |
| (5)可連接同軸電纜和雙絞線(xiàn),并可自動(dòng)檢測(cè)所連接的介質(zhì); |
| (6)100 腳的TQFP封裝,縮小PCB尺寸。 |
| 2.內(nèi)部結(jié)構(gòu) |
| 按數(shù)據(jù)鏈路的不同,可以將RTL8019AS內(nèi)部劃分為遠(yuǎn)程DMA(remote DMA)通道和本地DMA(local DMA)通道兩個(gè)部分。本地DMA完成控制器與網(wǎng)線(xiàn)的數(shù)據(jù)交換,主處理器收發(fā)數(shù)據(jù)只需對(duì)遠(yuǎn)程DMA操作。當(dāng)主處理器要向網(wǎng)上發(fā)送數(shù)據(jù)時(shí),先將一幀數(shù)據(jù)通過(guò)遠(yuǎn)程DMA通道送到RTL8019AS中的發(fā)送緩存區(qū),然后發(fā)出傳送命令。RTL8019AS在完成了上一幀的發(fā)送后,再完成此幀的發(fā)送。RTL8019AS接收到的數(shù)據(jù)通過(guò)MAC比較、CRC校驗(yàn)后,由FIFO存到接收緩沖區(qū),收滿(mǎn)一幀后,以中斷或寄存器標(biāo)志的方式通知主處理器。原理框圖如圖1所示。 |
![]() |
|
圖1 RTL8019AS原理框圖 |
| 在圖1中,接收邏輯在接收時(shí)鐘的控制下,將串行數(shù)據(jù)拼成字節(jié)送到FIFO和CRC;發(fā)送邏輯將FIFO送來(lái)的字節(jié)在發(fā)送時(shí)鐘的控制下逐步按位移出,并送到CRC;CRC邏輯在接收時(shí)對(duì)輸入的數(shù)據(jù)進(jìn)行CRC校驗(yàn),將結(jié)果與幀尾的CRC比較,如不同,該幀數(shù)據(jù)將被拒收,在發(fā)送時(shí)CRC對(duì)幀數(shù)據(jù)產(chǎn)生CRC,并附加在數(shù)據(jù)尾傳送;地址識(shí)別邏輯對(duì)接收幀的目的地址與預(yù)先設(shè)置的本地物理地址進(jìn)行比較,如不同且不滿(mǎn)足廣播地址的設(shè)置要求,該幀數(shù)據(jù)將被拒收;FIFO邏輯對(duì)收發(fā)的數(shù)據(jù)作16個(gè)字節(jié)的緩沖,以減少對(duì)本地DMA請(qǐng)求的頻率。 |
| 3.?dāng)?shù)據(jù)幀的組成 |
| 標(biāo)準(zhǔn)的IEEE 802.3數(shù)據(jù)包由以下幾個(gè)部分組成:前導(dǎo)位(preamle)、幀起始位(SFD)、目的地址(destination)、源地址(source)、數(shù)據(jù)長(zhǎng)度(length)、數(shù)據(jù)(data)、幀校驗(yàn)字(FCS)。如圖2所示,數(shù)據(jù)場(chǎng)的個(gè)數(shù)可從46B(Byte)~1500B(Byte),如一組要傳送的數(shù)據(jù)為46Byte,就用零補(bǔ)足;超過(guò)1500Byte時(shí),需要拆成多個(gè)幀傳送。前導(dǎo)位、幀起始位和幀校驗(yàn)字僅供控制器本身用,主處理器收到的數(shù)據(jù)幀的組成依次包括:接收狀態(tài)(1Byte )、下一幀的頁(yè)地址指針(1Byte)、目的地址(6Byte)、源地址(6Byte)、數(shù)據(jù)長(zhǎng)度/幀類(lèi)型(2Byte)、數(shù)據(jù)場(chǎng)。數(shù)據(jù)長(zhǎng)度/幀類(lèi)型的值小于或等于1500Byte時(shí),表示數(shù)據(jù)場(chǎng)的長(zhǎng)度;反之,表示數(shù)據(jù)幀的類(lèi)型。如值依次為 0x08,0x00,表示數(shù)據(jù)場(chǎng)為IP包;值依次為0x08,0x06 ,表示數(shù)據(jù)場(chǎng)為ARP包。 |
|
|
|
圖2 IEEE802.3幀的組成 |
| 4.RTL8019AS的DMA操作 |
| RTL8019AS 是針對(duì)PC機(jī)的ISA總線(xiàn)設(shè)計(jì)的。如運(yùn)用于嵌入式設(shè)備中,則在硬件和軟件的設(shè)計(jì)上應(yīng)有一些特殊性。嵌入式設(shè)備的主處理器可通過(guò)其映射到16個(gè)I/O地址上的寄存器來(lái)完成對(duì)RTL8019AS的操作。其寄存器地址如表1所列。 |
![]() |
| 需要指明的一點(diǎn)是,RTL8019AS的DMA與平時(shí)所說(shuō)的DMA有點(diǎn)不同。RTL8019AS的local DMA操作是由控制器本身完成的,而其remote DMA 并不是在無(wú)主處理器的參與下,數(shù)據(jù)能自動(dòng)移到主處理器的內(nèi)存中,它的操作機(jī)制是這樣的:主處理器先賦值于romote DMA 的起始地址寄存器RSAR0、RSAR1和字節(jié)計(jì)數(shù)器RBCR0、RBCR1,然后在RTL8019AS的DMA I/O地址上讀寫(xiě)指定地址上的數(shù)據(jù)。 |
| RTL8019AS內(nèi)置的16KB 的SRAM可劃分為接收緩沖和發(fā)送緩沖兩個(gè)部分。緩沖以頁(yè)為單位,每頁(yè)256個(gè)字節(jié),16KB的SRAM的頁(yè)范圍規(guī)定在0x40~0x80,由PSTART 和PSTOP寄存器來(lái)設(shè)定接收緩沖頁(yè)的范圍;由RSAR0、1和RBCR0、1寄存器來(lái)設(shè)定發(fā)送緩沖頁(yè)的范圍。CURR指向接收到的幀的起始頁(yè),Boundary指向還未讀的幀的起始頁(yè)。當(dāng)CURR到達(dá)了接收緩沖頁(yè)的底部,即與PSTOP相等時(shí),CURR又會(huì)自動(dòng)指向到PSTART處。與DMA有關(guān)的寄存器如圖3所示。 |
![]() |
|
圖3 與DMA有關(guān)的寄存器 |
| 二、基于RTL8019AS的嵌入式設(shè)備網(wǎng)絡(luò)互連設(shè)計(jì)方案 |
| 1.RTL8019AS的硬件電路設(shè)計(jì) |
| 目前局域網(wǎng)常見(jiàn)的是采用雙絞線(xiàn)為通信介質(zhì)。圖4為MOTOROLA的龍珠(Dragonball)處理器MC68VZ328(以下簡(jiǎn)稱(chēng)VZ328)和RTL8019AS的接口電路。RTL8019AS的工作電壓為5V,而VZ328的工作電壓為3.3V,所以RTL8019AS的輸出需要電平的轉(zhuǎn)換。在圖4中,此電壓的轉(zhuǎn)換由U2 74F163245 完成。讀數(shù)據(jù)時(shí),D[0:15]數(shù)據(jù)經(jīng)U2 送到VZ328;寫(xiě)數(shù)據(jù)時(shí),D[0:15]送到RTL8019AS。 RTL8019AS在復(fù)位的上升沿鎖定IOCS16腳的電平,其值決定數(shù)據(jù)總線(xiàn)的寬度:高電平時(shí)為16位總線(xiàn)方式,低電平時(shí)為8位總線(xiàn)方式。如掛接到8位主設(shè)備上,將以27kΩ的電阻下拉置地,D[8:15]空懸。為提高收發(fā)速度,圖4采用16位數(shù)據(jù)總線(xiàn)方式。由于RTL8019AS沒(méi)有外接初始化的EPROM,故其復(fù)位時(shí)命令寄存器(CR)的I/O地址的值為缺省值0X300,所以,為滿(mǎn)足RTL8019AS的ISA時(shí)序,A5~A19的連接必須使其地址鎖定在0X300,否則,就無(wú)法訪(fǎng)問(wèn)到RTL8019AS的寄存器。INT0中斷腳經(jīng)電平轉(zhuǎn)換U4接到VZ328的IRQ6。VZ328以片選腳尋址RTL8019AS,接其端。在程序中,以I/O方式訪(fǎng)問(wèn)RTL8019AS,所以?xún)H需要A[0:4]地址線(xiàn),、接高電平關(guān)閉其MEMORY方式。 |
![]() |
|
圖4 RTL8019AS與68VZ328接口電路 |
| 2.RTL8019AS的軟件編程 |
| 對(duì)RTL8019AS的軟件操作,有查詢(xún)和中斷兩種方式。在查詢(xún)方式下,主程序通過(guò)CURR和Boundary兩個(gè)寄存器的值來(lái)判斷是否收到一幀數(shù)據(jù)。當(dāng)Boundary與CURR不等時(shí),說(shuō)明接收緩沖區(qū)接收到了新的幀,主程序讀取數(shù)據(jù)后,以讀取幀的第二個(gè)字節(jié)(下一幀的頁(yè)地址)更新Boundary,主程序循環(huán)跟蹤C(jī)URR和Boundary達(dá)到數(shù)據(jù)的接收目的。主程序在發(fā)送一幀數(shù)據(jù)時(shí),先要查T(mén)SR寄存器判斷上一幀是否發(fā)送完畢。在實(shí)時(shí)多任務(wù)的環(huán)境,一般采用中斷方式來(lái)處理RTL8019AS的收發(fā)。圖5是一典型的中斷處理程序(ISR)的流程。當(dāng)主程序響應(yīng)RTL8019AS的中斷時(shí),在ISR的入口,根據(jù)讀取的中斷狀態(tài)寄存器(ISR)的值來(lái)確定程序的走向。 |
![]() |
|
圖 5 ISR流程圖 |
| 參考文獻(xiàn) |
| 1 COMER DOUGLAS E. 用TCP/IP進(jìn)行網(wǎng)際互連. 林瑤等譯.北京:電子工業(yè)出版社 |
| 2 RTL8019AS datasheet. https://www.realtek.com.cn |
|
3 MC68VZ328 datasheet. https://www.mot.com 4RTL8019AS datasheet http://m.58mhw.cn/datasheet/RTL8019AS_1096173.html. |
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)視覺(jué)檢測(cè)系統(tǒng)技術(shù)參數(shù)與選型運(yùn)維指南2026/1/4 14:50:21
- 工業(yè)視覺(jué)檢測(cè)系統(tǒng)核心知識(shí)解析2025/12/29 11:23:21
- 工業(yè)級(jí)電磁閥技術(shù)參數(shù)與選型運(yùn)維指南2025/12/29 11:06:44
- 工業(yè)控制系統(tǒng)遠(yuǎn)程訪(fǎng)問(wèn)安全實(shí)操指南2025/12/25 10:04:23
- 工業(yè)控制系統(tǒng)網(wǎng)絡(luò)安全防護(hù)實(shí)操指南2025/12/25 9:53:54
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線(xiàn)寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- PCB埋盲孔設(shè)計(jì)與工藝適配核心技術(shù)規(guī)范
- 如何提高M(jìn)OSFET在惡劣環(huán)境下的可靠性?
- 繼電器觸點(diǎn)壽命及可靠性分析
- 可重構(gòu)濾波器技術(shù):滿(mǎn)足多標(biāo)準(zhǔn)通信系統(tǒng)的靈活需求
- 磁集成技術(shù)在小型化電源設(shè)計(jì)中的應(yīng)用
- 微帶線(xiàn)阻抗匹配設(shè)計(jì)與實(shí)操調(diào)試技巧
- 從S參數(shù)到實(shí)際元件:微帶線(xiàn)濾波器的設(shè)計(jì)與仿真流程
- IP67/IP68連接器設(shè)計(jì)解析
- 電源管理IC失效的常見(jiàn)原因
- MOSFET體二極管特性分析














