基于A(yíng)RM的嵌入式網(wǎng)絡(luò )接口控制器設計
?。怠∫蕴W(wǎng)數據與串口數據轉換實(shí)現
本文開(kāi)發(fā)的接口控制器主要完成兩個(gè)功能,即將串口接收到的數據通過(guò)網(wǎng)卡發(fā)送至以太網(wǎng),將網(wǎng)卡接收到的數據通過(guò)串口發(fā)送至另一串口端。工作模式上可以選擇為服務(wù)器或客戶(hù)端模式,數據傳輸協(xié)議可以選擇為TCP(Transmission?。茫铮睿簦颍铮臁。校颍铮簦铮悖铮?,傳輸控制協(xié)議)方式或UDP(User?。模幔簦幔纾颍幔怼。校颍铮簦铮悖铮?,用戶(hù)數據報協(xié)議)方式。其中TCP和UDP是以太網(wǎng)數據的兩種傳輸協(xié)議,TCP是基于連接的協(xié)議,在正式收發(fā)數據前,必須和對方建立可靠的連接,而UDP是面向非連接的數據直接傳輸協(xié)議,不需要對方的回答確認。
?。担薄贸绦虻拈_(kāi)發(fā)環(huán)境和網(wǎng)絡(luò )編程
由于嵌人式系統程序的開(kāi)發(fā)和執行是在PC和ARM 兩個(gè)不同的平臺上進(jìn)行的,因此需要進(jìn)行交叉編譯和連接。用串口和以太網(wǎng)將宿主機和目標板連接起來(lái),程序開(kāi)發(fā)在RedHat9.0?。蹋椋睿酰僮飨到y下編輯,調試通過(guò)后,加入自己開(kāi)發(fā)的程序重新編譯armlinux內核,并將編譯好的二進(jìn)制文件固化到開(kāi)發(fā)板的ROM中,使其開(kāi)機后自動(dòng)運行。
?。裕茫校桑刑幚砟K采用SOCKET套接字編程實(shí)現。SOCKET最早是在UNIX系統上為TCP/IP網(wǎng)絡(luò )通信而開(kāi)發(fā)的一個(gè)接口程序,后來(lái)被成功移植到DOS、Windows等操作系統上,成為Internet上網(wǎng)絡(luò )開(kāi)發(fā)最為通用的API函數。用于網(wǎng)絡(luò )開(kāi)發(fā)的SOCKET主要有Stream?。樱铮悖耄澹簦螅鞲袷剑┖停模幔簦幔纾颍幔怼。樱铮悖耄澹簦螅〝祿蟾袷剑﹥煞N類(lèi)型,流格式Socket與TCP協(xié)議對應,數據報格式Socket與UDP協(xié)議對應。
?。担病≤浖O計
本系統采用工作模式TCP?。樱澹颍觯澹蚍?wù)器,等待客戶(hù)端請求連接,實(shí)現數據傳輸功能。本程序的流程圖如圖3所示。首先,打開(kāi)串口,在Linux下打開(kāi)串口是通過(guò)標準的文件打開(kāi)函數
圖3 功能實(shí)現流程圖
圖4 以太網(wǎng)數據通過(guò)串口發(fā)送
圖5 串口數據通過(guò)網(wǎng)卡發(fā)送
評論