《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 用8位單片機實現串口-以太網轉換器

用8位單片機實現串口-以太網轉換器

2009-04-09
作者:蔡寧果 何曉瓊

??? 摘? 要: 用8位單片機8031和ISA總線網卡,實現RS485串行設備與以太網的連接,以傳送控制信令和數據文件。程序設計采用C51語言,便于移植和調試。?

??? 關鍵詞: 以太網? 串行通訊? 單片機? C51

?

??? 單片機或微控制器(MCU)(也稱為嵌入式系統)已經在各個領域得到了廣泛的應用。目前絕大多數系統都是以MCU為核心,與監測、伺服、指示設備配合實現一定的功能。以太網是當今最受歡迎的局域網之一,現已成為社會重要的基礎信息設施, 是信息流通的重要渠道。如果嵌入式系統能夠連接到Internet,則可以方便、低廉地將信息傳送到世界上的任何一個地方。?

??? 將嵌入式系統與Internet相連的主要困難在于:Internet的各種通信協議對存儲器、運算速度等的要求比較高;而嵌入式系統中除部分32位處理器外,大量存在的是8位和16位MCU,支持TCP/IP等Internet協議將占用大量系統資源,影響本來的功能或根本不可能實現。?

??? 本文用8031單片機和RTL8019AS網卡實現了RS485串口設備數據文件通過以太網傳輸到遠端計算機的功能。?

1 串行通訊?

??? 串行通訊在通訊領域被廣泛應用。RS232接口已成為計算機、計算機外設、交換機和許多通訊設備的標準接口。在我國工業總線的應用中,RS485、RS422使用最為普遍。?

??? 在串行接口連接中,按連接方式可分為:面向連接和無連接。無連接原理比較簡單,通訊雙方無握手過程。一方如有數據需要發送,則立即通過串行接口發送出去,另一方被動接收。該方式能夠達到較高的通訊速率,但不能保證數據傳輸的可靠性,可用于對數據可靠性要求不高的場合,如語音、圖像等。而面向連接方式則不同。甲方有數據發送請求時,向乙方發送“請求發送數據”命令;乙方收到后,如準備就緒,則回送確認信息;甲方得到乙方的確認后方可發送數據。大多數情況下,乙方要對收到的數據進行校驗,校驗正確發送“通訊終止”命令;否則發送“重發”命令。面向連接的串行通訊過程實現起來要復雜得多,通常用于數據文件的傳輸。?

2 以太網的物理傳輸幀?

??? 標準IEEE802.3幀結構由七部分組成,如表1所示。除了數據域的長度不固定外,其他部分的長度都是固定不變的。在發送數據時,幀頭、起始位和校驗位都是網卡自動添加;在接收數據時,幀頭和起始位將被網卡自動跳過,即網卡一旦檢測到有效幀頭和幀起始位,就認為有效數據開始,并將有效數據存入接收緩沖環。?

?

?

3 以太網卡?

??? RTL8019AS網卡是8/16位ISA總線的網卡,遵循IEEE802.3協議。按功能可將其劃分為:接收功能模塊、CRC產生模塊、發送功能模塊、地址識別模塊、FIFO控制模塊、協議邏輯陣列模塊及DMA和緩沖控制模塊。對網卡進行編程可以實現局域網內任意站點之間的通信而不需要網絡操作系統的支持。?

??? 熟悉網卡接口電路是對網卡編程的首要條件。網卡接口電路可分為兩部分:一是與計算機ISA總線相連,包括數據總線讀寫、地址總線驅動、中斷控制信號的產生、存儲器讀寫信號以及I/O端口讀寫信號的引入等;二是對網卡內部的操作,包括對緩沖RAM的讀寫、對RTL8019AS的控制、讀站地址PROM以及讀自舉ROM等。ISA總線共有98個信號,通過對網卡工作原理的分析,可以將接口信號線減至最少。表2是驅動RTL8019AS網卡所需的信號線。?

?

?

4 硬件框圖?

??? 系統采用8031為CPU主芯片,使用32K字節的外部存儲器62256來存放以太網包(最大可以有1500字節)和串行數據,8K字節的2764存放程序,用75176與485總線通訊。系統的數據和地址總線分別與網卡的數據和地址總線相連。硬件框圖如圖1所示。?

?

?

5 軟件設計?

??? 對網卡編程就是對網絡接口控制器(NIC)RTL8019AS中各種寄存器進行編程控制,從而完成數據分組的正確發送和接收。所有程序采用Franclin C51語言編制,具有可讀性強、移植性好、開發周期短的特點。在代碼的使用效率上,也完全可以和匯編語言相比。?

5.1 主程序?

??? 主程序可分為網絡通訊和串行通訊兩部分。網絡通訊過程又可分為網卡初始化、發送控制和接收控制三部分。主程序框圖如圖2所示。?

5.2 網卡初始化過程?

??? 對網卡的初始化就是對相關寄存器進行初始化。這些寄存器包括CR、DCR、RBCR、PSTART、PSTOP、ISR、IMR、PAR0~PAR5、MAR0~MAR5、CURR、TCR和RCR等。初始化過程如下:?

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

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

??? (3)RBCR0=0,RBCR1=0:遠程DMA操作時傳遞字節數清零;?

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

??? (5)TCR=0xe2:環路測試狀態;?

??? (6)PSTART=0x4c,PSTOP=0x80:構造緩沖環;?

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

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

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

??? (10)設置網卡地址PAR0~PAR5;?

??? (11)設置多址寄存器MAR0~MAR5;?

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

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

??? (14)TCR=0XE0:發送器正常工作狀態。?

5.3 發送控制過程?

??? 在網絡中,幀傳輸的過程就是發送方將待發送的數據按幀格式要求封裝成幀,然后通過網卡發送到網絡的傳輸線上。發送程序框圖如圖3所示。?

?

?

5.4 接收控制過程?

??? 幀的接收過程分為兩步:第一步由本地DMA將幀存入接收緩沖環中;第二步由遠程DMA將接收緩沖環中的幀讀入內存。即將網絡上的數據幀接收并緩存在網卡的接收緩沖環中,然后由主機程序將緩存在緩沖環中的幀讀走并存入內存中。?

??? 幀的接收工作由網卡自動完成,只需對相關的寄存器如PSTART、PSTOP、CURR和BNRY進行適當的初始化即可。?

??? 幀讀入較幀接收要復雜一些。首先必須初始化相應的寄存器RSAR、RBCR,然后再啟動遠程DMA讀操作和主機程序的讀端口操作。?

??? 以下是接收數據幀的子程序。為了獲得數據長度,先讀入18個字節的數據,然后根據有效數據的長度將幀完整讀入。為了啟動遠程DMA讀操作,應該令CR=0AH,遠程DMA將從接收緩沖環的DMA地址處讀入1字節并送往I/O數據端口,由主機程序讀入內存。這一過程將一直持續到RBCR寄存器為0。?

??? void Receive_Data()?

??? {?

??? ? unsigned char data value,temp;?

??? ? unsigned int data datalength,i;?

??? ? RSAR1=Next_PKT;?

??? ? RSAR0=0;?

??? ? RBCR0=18;?

??? ? RBCR1=0;?

??? ? CR=0x0a;?

??? ? for(i=0;i<18;i++){?

??? ??? value=Data_Port;?

??? ??? recv_buf[i]=value;?

??? ? }?

??? ? datalength=(recv_buf[16]<<8)+recv_buf[17]+18;?

??? ? value=datalength&0x00ff;?

??? ? RBCR0=value;?

??? ? value=(datalength&0xff00)>>8;?

??? ? RBCR1=value;?

??? ? RSAR1=Next_PKT;?

??? ? RSAR0=0;?

??? ? CR=0x0a;?

??? ? for(i=0;i

??? ??? value=Data_Port;?

??? ??? recv_buf[i]=value;?

??? ? }?

??? }?

5.5 串口通訊子程序?

??? 為實現數據文件的串口傳輸編制了一個串口通訊協議。該協議由引導幀、長度幀、數據幀和確認幀等組成。其中引導幀用于同步每一包數據的引導頭,長度幀是這一包數據的總長度,數據幀是其中的數據信息,確認幀是接收方對發送方的回應。每幀數據由16個字節組成,每幀的第14個字節為標志位,第15字節為校驗位。標志位中有2位幀標志位,3位序號位。校驗采用和校驗,只計算0~13字節,溢出值舍去。在發送方有數據發送時,先檢測線路是否空閑,如線路空閑則向接收方發送“請求發送數據”命令幀。接收機收到后,如準備就緒,則回送“可以發送”的確認命令。發送方得到確認后開始發送數據。接收方對收到的每一幀數據進行和校驗,校驗正確發送“和校驗正確”命令,發送方發送下一幀;否則發送“重發”命令,發送方重發此幀。協議中還具有等待超時處理、幀不同步處理和線路沖突檢測功能。?

??? 利用8位單片機8031驅動ISA總線網卡,實現串口設備通過以太網進行通訊,可以方便、可靠、低廉地將數據傳輸到遠端設備。而且,通過串口設備與以太網的相連,可以很好地解決多種工業總線的系統集成問題,同時也大大豐富了工業總線的體系,促使其向更高層次發展。可以預計,小型串口設備與以太網相連將帶來一場新的技術浪潮。?

參考文獻?

1 劉彥明,李 鵬.實用網絡編程技術.西安:西安電子科技大學出版社,1998?

2 李 鵬.計算機通信技術及其程序設計.西安:西安電子科技大學出版社,1998

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲日本中文字幕免费在线不卡| 亚洲欧美国产毛片在线| 一区二区三区高清视频在线观看| 在线看国产日韩| 国内精品久久久久影院 日本资源| 国产精品亚洲综合| 国产精品免费网站在线观看| 欧美特黄一级| 欧美日韩在线播放三区| 欧美日韩免费观看一区| 欧美日本三区| 欧美日韩一区成人| 欧美日韩免费看| 欧美日韩一区二区三区在线观看免| 欧美激情一区二区三区在线视频观看| 欧美成年视频| 欧美成人一区二区三区在线观看| 欧美jjzz| 欧美精品亚洲精品| 欧美日韩日日骚| 欧美日韩精品系列| 欧美视频中文字幕在线| 国产精品久久久久久亚洲调教| 欧美视频不卡| 国产精品久久久久久亚洲毛片| 国产精品青草综合久久久久99| 国产精品黄色| 国产精品永久免费在线| 国产综合精品一区| 亚洲国产成人一区| 99re6这里只有精品| 亚洲视频网在线直播| 亚洲综合电影一区二区三区| 午夜日韩在线观看| 亚洲成人在线免费| 欧美在线视频观看| 久久免费99精品久久久久久| 免费欧美日韩| 欧美视频导航| 国产日韩欧美精品综合| 亚洲高清不卡在线观看| 亚洲裸体视频| 亚洲影视中文字幕| 亚洲国产mv| 亚洲午夜久久久久久久久电影院| 午夜精品一区二区三区电影天堂| 久久九九有精品国产23| 欧美激情bt| 国产精品一区二区久久| 一区在线观看视频| 一区二区av在线| 久久精品久久99精品久久| 亚洲区免费影片| 亚洲欧美视频在线| 欧美a一区二区| 国产精品欧美经典| 尤物99国产成人精品视频| 9国产精品视频| 欧美尤物一区| 在线视频精品一| 久久精品国产免费观看| 欧美女同在线视频| 国产午夜精品一区二区三区视频 | 99热免费精品| 久久成人免费日本黄色| 欧美电影电视剧在线观看| 国产精品久久久久999| 精品91久久久久| 亚洲图片激情小说| 亚洲人精品午夜| 欧美影院视频| 欧美人与禽猛交乱配视频| 国产一区二区三区免费不卡| 99视频+国产日韩欧美| 亚洲国产mv| 欧美亚洲一区二区三区| 欧美电影在线观看| 国产一区日韩一区| 在线亚洲一区二区| 亚洲精品综合在线| 久久免费的精品国产v∧| 国产精品九九| 亚洲精品久久久久久久久久久 | 亚洲网站啪啪| 欧美不卡一卡二卡免费版| 国产农村妇女毛片精品久久麻豆 | 亚洲二区三区四区| 久久se精品一区精品二区| 欧美视频在线免费看| 亚洲激情电影中文字幕| 久久www免费人成看片高清| 午夜精品久久久久久久99樱桃 | 亚洲日本欧美日韩高观看| 欧美一区二区三区四区夜夜大片| 一道本一区二区| 欧美激情视频一区二区三区在线播放| 国产一区二区三区的电影| 亚洲一区二区三区777| 一区二区欧美日韩| 欧美成人精品一区| 黄色综合网站| 欧美在线在线| 午夜精品久久久久久久蜜桃app | 狠狠色丁香久久综合频道 | 欧美在线视频免费播放| 国产精品h在线观看| 亚洲日本一区二区三区| 亚洲日本国产| 欧美黄色片免费观看| 亚洲成人资源网| 亚洲国产福利在线| 久久免费国产精品| 国产一区二区三区直播精品电影 | 久久久亚洲高清| 国产欧美日韩麻豆91| 亚洲一区二区视频在线观看| 亚洲一级二级在线| 欧美私人网站| 在线午夜精品自拍| 亚洲自拍偷拍麻豆| 欧美性猛交视频| 正在播放亚洲一区| 亚洲欧美日韩精品综合在线观看| 国产精品不卡在线| 亚洲午夜精品国产| 亚洲欧美在线磁力| 国产精品欧美久久久久无广告| 亚洲视频欧美视频| 性伦欧美刺激片在线观看| 欧美一区影院| 国产一区二区三区在线观看网站| 欧美中文字幕不卡| 久久午夜精品一区二区| 精品动漫一区| 亚洲精品资源美女情侣酒店| 欧美精品免费在线| 夜色激情一区二区| 亚洲欧美中文在线视频| 国产精品视区| 久久精品99国产精品| 免费一区二区三区| 亚洲免费观看高清在线观看| 亚洲男人的天堂在线| 国产欧美日韩综合精品二区| 亚洲电影中文字幕| 欧美激情第一页xxx| 亚洲另类春色国产| 亚洲免费婷婷| 国产一区二区三区网站| 亚洲国产视频一区| 欧美日韩精品免费观看| 亚洲视频欧美视频| 久久精品夜色噜噜亚洲a∨| 伊人久久综合97精品| 99视频一区二区| 国产精品一二三| 亚洲国产精品激情在线观看| 欧美肥婆在线| 亚洲一区二区三区四区五区黄| 久久人91精品久久久久久不卡| 亚洲国产精品www| 午夜精品福利一区二区三区av| 国内揄拍国内精品久久| 一本一本久久| 国产在线精品二区| 99国产精品| 国产日韩亚洲欧美精品| 亚洲精品日韩精品| 国产精品视频自拍| 最新精品在线| 国产精品一区二区在线| 亚洲日本成人| 国产精品亚洲а∨天堂免在线| 亚洲激情在线观看视频免费| 国产精品www网站| 亚洲国产精品久久| 国产精品第十页| 亚洲黄色高清| 国产精品日本一区二区| 亚洲精品久久久久中文字幕欢迎你 | 欧美日韩国产综合久久| 午夜日韩福利| 欧美日韩精品免费观看视频| 欧美一区二区三区男人的天堂 | 亚洲欧美三级伦理| 亚洲国产精品激情在线观看| 小黄鸭精品密入口导航| 亚洲高清视频的网址| 性久久久久久久| 亚洲精品久久久久久久久| 久久久999精品| 一区二区三区精品在线| 免费观看成人| 欧美在线视频一区二区| 国产精品成人一区二区网站软件| 亚洲第一网站| 国产欧美亚洲精品| 亚洲主播在线播放| 亚洲精品久久在线| 美女精品一区|