當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 網(wǎng)絡(luò)協(xié)議
[導(dǎo)讀] 1 硬件結(jié)構(gòu)和電路設(shè)計   1.1 總體設(shè)計   整個系統(tǒng)設(shè)計采用ATMEL公司8位通用微控制器AT89C51作為主處理器,驅(qū)動REALTEK公司的10M以太網(wǎng)控制芯片RTL80

1 硬件結(jié)構(gòu)和電路設(shè)計

  1.1 總體設(shè)計

  整個系統(tǒng)設(shè)計采用ATMEL公司8位通用微控制器AT89C51作為主處理器,驅(qū)動REALTEK公司的10M以太網(wǎng)控制芯片RTL8019AS,實現(xiàn)串口數(shù)據(jù)和外部網(wǎng)絡(luò)互連。

  1.2 網(wǎng)卡接線設(shè)計

  RTL8019AS為100管腳PQFP封裝,工作電壓5V。其接線原理圖如圖1所示。地址SA0-4接到單片機(jī)P2的低五位上;SA8和SA9接電源;其余SA5-7,SA10-19這13個管腳全部接地;IORB和IOWB分別接單片機(jī)的讀寫信號端;RSTDRV接到P1.2上;8位數(shù)據(jù)SD0-7按順序接到單片機(jī)P0.020.7腳;TPOUT+和PTOUT-是發(fā)送管腳對,連接到RJ45口的發(fā)送腳1和2;而TPIN+和TPIN-則是接收管腳對,連接到RJ45口的接收腳3和6;管腳X1和X2之間接20M的晶振及接地電容;LED0和LED1分別串接發(fā)光二極管和1k8電阻,連到5V電源上;IOCS16B管腳串接27k8電阻接地;管腳BD0-3(IOS0-3)是負(fù)責(zé)定義基地址位置的,全部懸空,作為0輸入。

 

 

  LED0默認(rèn)表示通信沖突COL,LED1表示接收數(shù)據(jù)包。發(fā)送對和接收對不能直接接到RJ45插頭上,要通過隔離電壓模塊(選用20F-01)和RJ45相連。網(wǎng)卡有16bit數(shù)據(jù)線,可以使用16bit或8bit模式傳送數(shù)據(jù),使IOCS16B管腳為低,我們選中的是8bit模式。

  1.3 串行接口部分

  1串口部分采用MAX232和9針串口。單片機(jī)P3.0/RXD0和P3.0/RXD0通過MAX232芯片分別接到串口的2針和3針上。串口5針接地。

  串行口選擇工作方式1,這時的波特率計算公式為:

 

  串口在9600波特率時,晶振選用11.0592M,預(yù)設(shè)值算得0xFD,smod=0;晶振選用16MHz,預(yù)設(shè)值為0xF7,smod=1。

  2 網(wǎng)卡的初始化和工作過程

  2.1 網(wǎng)卡芯片RTL8019AS的控制方法

  控制網(wǎng)卡芯片RTL8019AS是通過讀寫芯片上的32個字節(jié)的控制寄存器組實現(xiàn)的。另外該芯片含有16kbyte的RAM,地址為0x400020x7fff。這些RAM不能通過單片機(jī)直接尋址,必須通過32個字節(jié)的控制寄存器組,以DMA方式讀寫它們。

  32個字節(jié)的控制寄存器組可以由單片機(jī)直接尋址,但其基地址是通過管腳BD0-3(IOS0-3)配置的。電路中將四個管腳全部懸空,全0輸入,產(chǎn)品資料說明其基地址為300H。

  這32個字節(jié)的控制寄存器組分成4頁,00H寄存器稱為CommandRegister(CR),CR的最高兩位代表目前寄存器處于哪一頁。01H到0FH在不同的頁有不同的意義,同時,即使同一頁,讀和寫代表的意義也可能不同,這一點(diǎn)很值得注意。10H217H是遠(yuǎn)程DMA端口,而18H-1FH是網(wǎng)卡復(fù)位端口。

  2.2 DMA數(shù)據(jù)通道

  RTL8019AS內(nèi)部劃分為遠(yuǎn)程DMA(RemoteDMA)通道和本地DMA(LocalDMA)通道兩個部分。本地DMA完成控制器與網(wǎng)線的數(shù)據(jù)交換,遠(yuǎn)程DMA完成主處理器與網(wǎng)卡數(shù)據(jù)交換。單片機(jī)主處理器收發(fā)數(shù)據(jù)只需對遠(yuǎn)程DMA操作。接收數(shù)據(jù)時,RTL8019AS接收到的數(shù)據(jù)通過MAC比較、CRC校驗后,由FIFO存到接收緩沖區(qū),收滿一幀后,以中斷或寄存器標(biāo)志的方式通知主處理器,主處理器通過遠(yuǎn)程DMA通道將其讀出。當(dāng)主處理器要向以太網(wǎng)發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)通過遠(yuǎn)程DMA通道送到RTL8019AS中的發(fā)送緩存區(qū),然后發(fā)出傳送命令;RTL8019AS在完成了上一幀的發(fā)送后,再完成此幀的發(fā)送。

  所謂的DMA就是直接內(nèi)存訪問(DirectMem2oryAccess)。普通的尋址方式是給出一個地址,然后取出對應(yīng)的值。而在DMA方式下,我們指定一個寄存器地址,主機(jī)只要反復(fù)地讀取或?qū)懭脒@個地址,就可以取出或?qū)懭氪罅康臄?shù)據(jù)。網(wǎng)卡指定的遠(yuǎn)程DMA端口就是這個用途。設(shè)置好起始地址和讀出的byte數(shù)后,我們反復(fù)讀遠(yuǎn)程DMA端口,就可以將網(wǎng)卡里從網(wǎng)線收到的數(shù)據(jù)包,從0x400020x7fff的RAM區(qū)讀出;反之,同樣設(shè)置好起始地址和寫入的byte數(shù)后,我們反復(fù)寫遠(yuǎn)程DMA端口,就可以將數(shù)據(jù)發(fā)送到網(wǎng)卡的發(fā)送緩沖RAM中,然后發(fā)出發(fā)送的命令,就可以把數(shù)據(jù)包發(fā)送到網(wǎng)線中。

  2.3 網(wǎng)卡的初始化過程

  復(fù)位,使RSTDRV先高后低,注意每一步都要有100ms的延時,以確保復(fù)位成功。然后進(jìn)行熱復(fù)位,就是先后讀、寫網(wǎng)卡復(fù)位端口。

  使CR=0x21,停止芯片運(yùn)行,選擇頁面0。

  使RBCR1=0;RBCR0=0,將遠(yuǎn)程DMA操作的傳輸字節(jié)數(shù)清零。

  使PSTART=0x46;PSTOP=0x80;BNRY=0x46,設(shè)置接收開始頁面、結(jié)束頁面和邊界頁面。

  使IMR=0x0,清除中斷屏蔽寄存器。

  使RCR=0x08+0x04,設(shè)置接收配置寄存器,允許接收多址和廣播報文。

  使TCR=0,設(shè)置發(fā)送配置寄存器,使用默認(rèn)配置。

  使DCR=0x80+0x40+0x00,設(shè)置數(shù)據(jù)配置寄存器,選擇字節(jié)DMA。

  使ISR=-1,設(shè)置中斷狀態(tài)寄存器,清除所有已有中斷。

  使用DMA方式,從0000H2000BH中取得本網(wǎng)卡MAC地址。注意,MAC地址每個byte都是重復(fù)一遍存放的,所以只要取單數(shù)1、3、5等byte就可以了。

  使CR=0x61,選擇頁面1。

  將剛才取得的MAC地址放入PAR0-5中。網(wǎng)卡檢查接收到的包是否和PAR里MAC值匹配,然后決定收下或丟棄。所以,也可以任意設(shè)置這個PAR值,來偽造自己的MAC值。

  將MAR02MAR7全部設(shè)為0xFF,允許接收所有的多址數(shù)據(jù)包。

  使CURR=0x47,設(shè)置當(dāng)前接收頁面為0x47。

  使CR=0x22,啟動網(wǎng)卡芯片,開始接收和發(fā)送過程。

  2.4 網(wǎng)卡工作接收和發(fā)送過程

  網(wǎng)卡RAM是以256byte為一頁,是按頁存儲的結(jié)構(gòu),16bit的RAM地址高8bit又叫頁碼。網(wǎng)卡的16k的RAM地址從0x400020x7fff,從頁0x40到頁0x7f,一共有64頁。64頁被接收和發(fā)送數(shù)據(jù)包用。接收和發(fā)送都是以頁為最小的單位進(jìn)行的。接收緩沖區(qū)需要定義,剩下的就可以作為發(fā)送緩沖區(qū)。

  接收緩沖區(qū)由兩個寄存器決定:PSTART(PageStartRegister)和PSTOP(PageStopRegister)。設(shè)置了接收緩沖區(qū)之后,這個緩沖區(qū)就形成了一個循環(huán)隊列。控制接收緩沖區(qū)的有兩個寄存器CURR、BNRY。CURR是網(wǎng)卡寫緩沖區(qū)的指針,指向當(dāng)前要寫的頁;BNRY是讀指針,指向用戶已經(jīng)讀走的頁。

  BNRY不可以超過CURR,否則沒被用戶讀取的數(shù)據(jù)就被覆蓋了。用戶設(shè)置完了CURR以后,就不用管它,網(wǎng)卡接收到新的數(shù)據(jù)后,會自動修改它。用戶讀出數(shù)據(jù)后,要修改BNRY的值,以通知網(wǎng)卡該數(shù)據(jù)已經(jīng)讀出了。


網(wǎng)卡RAM區(qū)如圖2所示,我們設(shè)置PSTART和PSTOP,就決定了接收區(qū)域在46和7F之間,剩下6頁作為發(fā)送緩沖區(qū),可以滿足一次發(fā)送容量為1514byte的最大以太網(wǎng)數(shù)據(jù)包的要求。CURR初始值設(shè)為47,BNRY初始值設(shè)為46。當(dāng)收到新的數(shù)據(jù)包時(例如3頁),網(wǎng)卡將它們依次放到47、48和49頁,CURR自動指向4A頁。當(dāng)我們讀完這3頁的數(shù)據(jù)包后,要將BNRY改為49,以通知網(wǎng)卡數(shù)據(jù)包已經(jīng)讀完了。

 

  網(wǎng)卡芯片接收到以太網(wǎng)數(shù)據(jù)包后,存在CURR指向的頁面中。一個數(shù)據(jù)包可以占據(jù)一頁,也可以占據(jù)多頁。在接收包的包頭里,保存有該包的信息。包頭格式如表1:

 

  讀完這個包頭,我們就能知道本包的接收狀態(tài),包長度,以及下一個包的位置。在接收循環(huán)中,檢查中斷狀態(tài)寄存器ISR狀態(tài),發(fā)現(xiàn)有新包來,先讀取包頭信息,接著按照包頭指示讀取全包,然后改寫B(tài)NRY,再接著讀下一個包,這樣循環(huán),直到達(dá)到CURR位置。注意,一個包有可能占據(jù)接收緩沖區(qū)的首、尾頁面,此時須小心讀取。

  發(fā)送數(shù)據(jù)包比較簡單,將準(zhǔn)備好的數(shù)據(jù)用DMA傳到發(fā)送緩沖區(qū),然后設(shè)置發(fā)送長度到TBCR1和TBCR0中,再設(shè)置傳輸開始頁面,即令TPSR=0x40,最后,使CR=0x26,就開始傳送了。

  傳送完成后要清掉中斷狀態(tài)寄存器ISR的發(fā)送完成標(biāo)志。值得注意的是,發(fā)送包的包長度不能小于以太網(wǎng)規(guī)定的60byte,否則網(wǎng)卡不會將其發(fā)出。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉