基于ARM的嵌入式網絡接口控制器設計
5 以太網數據與串口數據轉換實現
本文開發的接口控制器主要完成兩個功能,即將串口接收到的數據通過網卡發送至以太網,將網卡接收到的數據通過串口發送至另一串口端。工作模式上可以選擇為服務器或客戶端模式,數據傳輸協議可以選擇為TCP(Transmission Control Protocol,傳輸控制協議)方式或UDP(User Datagram Protocol,用戶數據報協議)方式。其中TCP和UDP是以太網數據的兩種傳輸協議,TCP是基于連接的協議,在正式收發數據前,必須和對方建立可靠的連接,而UDP是面向非連接的數據直接傳輸協議,不需要對方的回答確認。
5.1 應用程序的開發環境和網絡編程
由于嵌人式系統程序的開發和執行是在PC和ARM 兩個不同的平臺上進行的,因此需要進行交叉編譯和連接。用串口和以太網將宿主機和目標板連接起來,程序開發在RedHat9.0 Linux操作系統下編輯,調試通過后,加入自己開發的程序重新編譯armlinux內核,并將編譯好的二進制文件固化到開發板的ROM中,使其開機后自動運行。
TCP/IP處理模塊采用SOCKET套接字編程實現。SOCKET最早是在UNIX系統上為TCP/IP網絡通信而開發的一個接口程序,后來被成功移植到DOS、Windows等操作系統上,成為Internet上網絡開發最為通用的API函數。用于網絡開發的SOCKET主要有Stream Sockets(流格式)和Datagram Sockets(數據報格式)兩種類型,流格式Socket與TCP協議對應,數據報格式Socket與UDP協議對應。
5.2 軟件設計
本系統采用工作模式TCP Server服務器,等待客戶端請求連接,實現數據傳輸功能。本程序的流程圖如圖3所示。首先,打開串口,在Linux下打開串口是通過標準的文件打開函數
圖3 功能實現流程圖
圖4 以太網數據通過串口發送
圖5 串口數據通過網卡發送
評論