<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用51單片機(jī)實(shí)現(xiàn)串口-以太網(wǎng)轉(zhuǎn)換器

          用51單片機(jī)實(shí)現(xiàn)串口-以太網(wǎng)轉(zhuǎn)換器

          作者: 時(shí)間:2011-12-09 來源:網(wǎng)絡(luò) 收藏

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

          對網(wǎng)卡的初始化就是對相關(guān)寄存器進(jìn)行初始化。這些寄存器包括CR、DCR、RBCR、PSTART、PSTOP、

          ISR、IMR、PAR0-PAR5、MAR0-MAR5、CURR、TCR和RCR等。初始化過程如下:

          (1)CR=0x21:選擇頁0寄存器,將NIC處于離線狀態(tài);

          (2)DCR=0x88:8位內(nèi)存訪問,正常工作方式;

          (3)RBCR0=0,RBCR1=0:遠(yuǎn)程DMA操作時(shí)傳遞字節(jié)數(shù)清零;

          (4)RCR=0xc0:接收到的幀存入緩沖環(huán);

          (5)TCR=0xe2:環(huán)路測試狀態(tài);

          (6)PSTART=0x4c,PSTOP=0x80:構(gòu)造緩沖環(huán);

          (7)ISR=0xff:中斷寄存器清零;

          (8)IMR=0x00:屏蔽所有的中斷;

          (9)CR=0x61:選擇頁1;

          (10)設(shè)置網(wǎng)卡地址PAR0-PAR5;

          (11)設(shè)置多址寄存器MAR0-MAR5;

          (12)CURR=0x4d:初始化當(dāng)前頁寄存器;

          (13)CR=0x22:選擇頁1,正常工作狀態(tài);

          (14)TCR=0XE0:發(fā)送器正常工作狀態(tài);

          5.3 發(fā)送控制過程

          在網(wǎng)絡(luò)中,幀傳輸?shù)倪^程就是發(fā)送方將待發(fā)送的數(shù)據(jù)按幀格式要求封裝成幀,然后通過網(wǎng)卡發(fā)送到網(wǎng)絡(luò)的傳輸線上。發(fā)送程序框圖如圖3所示。

          發(fā)送程序框圖

          5.4 接收控制過程

          幀的接收過程分為兩步:第一步由本地DMA將幀存入接收緩沖環(huán)中;第二步由遠(yuǎn)程DMA將接收緩沖環(huán)中的幀讀入內(nèi)存。即將網(wǎng)絡(luò)上的數(shù)據(jù)幀接收并緩存在網(wǎng)卡的接收緩沖環(huán)中,然后由主機(jī)程序?qū)⒕彺嬖诰彌_環(huán)中的幀讀走并存入內(nèi)存中。

          幀的接收工作由網(wǎng)卡自動完成,只需對與相關(guān)的寄存器如PSTART、PSTOP、CURR和BNRY進(jìn)行適當(dāng)?shù)某跏蓟纯伞?BR>
          幀讀入較幀接收要復(fù)雜一些。首先必須初始化相應(yīng)的寄存器RSAR、RBCR,然后再啟動遠(yuǎn)程DMA讀操作和主機(jī)程序的讀端口操作。

          以下是接收數(shù)據(jù)幀的子程序,為了獲得數(shù)據(jù)長度,我們先讀入18個(gè)字節(jié)的數(shù)據(jù),然后根據(jù)有效數(shù)據(jù)的長度將幀完整讀入。為了啟動遠(yuǎn)程DMA讀操作,應(yīng)該令CR=0AH,遠(yuǎn)程DMA將從接收緩沖環(huán)的DMA地址處讀入1字節(jié)并送往I/O數(shù)據(jù)端口,由主機(jī)程序讀入內(nèi)存。這一過程將一直持續(xù)到RBCR寄存器為0。

          程序


          5.5 串口通訊子程序

          為實(shí)現(xiàn)數(shù)據(jù)文件的串口傳輸編制了一個(gè)串口通訊協(xié)議,該協(xié)議由引導(dǎo)幀、長度幀、數(shù)據(jù)幀和確認(rèn)幀等組成。其中引導(dǎo)幀是用于同步每一包數(shù)據(jù)的引導(dǎo)頭,長度幀是這一包數(shù)據(jù)的總長度,數(shù)據(jù)幀是其中的數(shù)據(jù)信息,確認(rèn)幀是接收方對發(fā)送方的回應(yīng)。每幀數(shù)據(jù)由16個(gè)字節(jié)組成,每幀的第14個(gè)字節(jié)為標(biāo)志位,第15字節(jié)為校驗(yàn)位。標(biāo)志位中有2位幀標(biāo)志位,3位序號位;校驗(yàn)采用和校驗(yàn),只計(jì)算0-13字節(jié),溢出值舍去。在發(fā)送方有數(shù)據(jù)發(fā)送時(shí),先檢測線路是否空閑,如線路空閑則向接收方發(fā)送“請求發(fā)送數(shù)據(jù)”命令幀。接收機(jī)收到后,如準(zhǔn)備就緒,則回送“可以發(fā)送”的確認(rèn)

          命令。發(fā)送方得到確認(rèn)后開始發(fā)送數(shù)據(jù)。接收方對收到的每一幀數(shù)據(jù)進(jìn)行和校驗(yàn),校驗(yàn)正確發(fā)送“和校驗(yàn)正確”命令,發(fā)送方發(fā)送下一幀;否則發(fā)送“重發(fā)”命令,發(fā)送方重發(fā)此幀。協(xié)議中還具有等待超時(shí)處理、幀不同步處理和線路沖突檢測功能。

          6 結(jié)束語

          利用8位8031驅(qū)動ISA總線網(wǎng)卡,實(shí)現(xiàn)串口設(shè)備通過以太網(wǎng)進(jìn)行通訊,可以方便、可靠、低廉地將數(shù)據(jù)傳輸?shù)竭h(yuǎn)端設(shè)備。而且,通過串口設(shè)備與以太網(wǎng)的相連,可以很好的解決多種工業(yè)總線的系統(tǒng)集成問題,同時(shí)也大大豐富了工業(yè)總線的體系,促使其向更高層次發(fā)展??梢灶A(yù)計(jì),小型串口設(shè)備與以太網(wǎng)相連將帶來一場新的技術(shù)浪潮。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();