基于DS80C410串口至以太網接口轉換器的實現(xiàn)
介質無關接口(MII):包括兩個基本模塊,即MII I/O模塊和MII管理模塊。MII I/O模塊提供獨立的發(fā)送和接收數據路徑和物理層網絡狀態(tài)信號輸入,MII管理模塊執(zhí)行2線串行通訊總線便于訪問物理層寄存器。
地址檢測模塊(Address Check):監(jiān)控所有輸入數據包的目的地址,根據CPU配置的過濾標準決定是轉發(fā)還是丟棄。地址檢測結果和幀類型信號位一起由BCU存入數據包接收狀態(tài)字中。
發(fā)送/接收緩沖寄存器(Tx/Rx):DS80C410用8KB內部SRAM作為發(fā)送/接收數據包的緩沖寄存器,CPU可用MOVX指令訪問數據存儲器,BCU也可以訪問SRAM,在需要存儲或找回以太網數據包信息時可自動讀/寫緩沖寄存器。
電源管理模塊(Power Management):可以通過CPU設定為休眠模式,在不處理以太網通信時以便節(jié)省電源[1]。
2.2 LXT972ALC簡介
LXT972ALC是一個遵守快速以太網協(xié)議的接口收發(fā)芯片,支持10/100MAC的標準MII,它是物理層設備,完成參考模型中以IEEE802.3標準定義的物理編碼子層、物理媒體附加層和物理媒體獨立子層的功能。LXT972ALC設備實現(xiàn)了標準IEEE802.3定義的MII提供了從MAC到LXT972ALC數據傳輸的獨立通道。每一個通道都有各自的時鐘、數據總線和控制信號[3]。MAC每一次發(fā)送都使用先導模式,當LXT972ALC檢測到先導符時,它發(fā)送一個幀開始符,然后進行編碼和發(fā)送數據包的剩余部分,包含包數據和CRC。當包結束時,LXT972ALC發(fā)送包結束分解符,然后轉為發(fā)送空閑標識符。
2.3 轉換器的硬件連接
基于DS80C410串口至以太網接口轉換器的硬件連接如圖2所示。
串口采用MAX202實現(xiàn)TTL電平到RS232電平的轉換,通過RS232標準接口(DB9)接入外部串口設備。以太網收發(fā)器的輸出經過網絡變壓器的隔離接入RJ45通過5類雙絞線電纜連接10/100BASE-T以太網。
3 軟件部分
DS80C410 MCU內部64KB的ROM程序中包含完全符合工業(yè)標準的完整的TCP/IP IPv4/v6 協(xié)議棧,搶占式調度程序和可以裝載應用程序的網絡引導程序、串口引導裝載程序。系統(tǒng)啟動時,ROM對單片機的串口0進行初始化,微控制器通過串口0和開發(fā)主機通信,向Flash寫入程序。應用程序使用Java來開發(fā),借助軟件開發(fā)工具包TINI SDK在開發(fā)主機上完成,TINI SDK將DS80C410中的硬件部分虛擬成Java的類,通過調用相關的方法實現(xiàn)對硬件的操作。TINI SDK提供了Java程序的運行環(huán)境,在主機上開發(fā)Java應用程序經過轉換,即可在目標系統(tǒng)上運行。以串口設備到以太網服務器數據流傳輸程序為例,包括串口到以太網主線程、維持線程,串口發(fā)送、串口接收子線程。各流程圖分別如圖3 、4、5、6所示:
評論