• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 用51單片機實現串口-以太網轉換器

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

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

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

    本文根據所做項目需要,用8031和RTL8019AS網卡實現了RS485串口設備數據文件通過以太網傳輸到遠端計算機的功能。

    1 串行通訊

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

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

    2 以太網的物理傳輸幀

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

    標準IEEE802

    3 以太網卡

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

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

    驅動RTL8019AS網卡所需的最少的信號線

    4 硬件框圖

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

    硬件框圖

    5 軟件設計

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

    5.1 主程序

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

    主程序框圖


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 瑞昌市| 乾安县| 衡山县| 沙河市| 施秉县| 武陟县| 九寨沟县| 安宁市| 泰来县| 南宁市| 郑州市| 清涧县| 莱芜市| 巴林左旗| 兴业县| 大庆市| 贡觉县| 奉节县| 伊川县| 黄龙县| 多伦县| 富川| 敖汉旗| 蒲城县| 荃湾区| 望奎县| 瓦房店市| 苍梧县| 改则县| 云南省| 新建县| 阿图什市| 绵竹市| 宁河县| 白沙| 广丰县| 双柏县| 新疆| 治县。| 扎兰屯市| 长白|