<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于串行口-以太網(wǎng)橋的車(chē)速傳感器測試平臺

基于串行口-以太網(wǎng)橋的車(chē)速傳感器測試平臺

作者: 時(shí)間:2012-06-18 來(lái)源:網(wǎng)絡(luò ) 收藏


3.2 軟件系統設計

由于整個(gè)網(wǎng)橋的底層功能(如以太網(wǎng)協(xié)議實(shí)現)已由硬件電路完成(見(jiàn)圖4),所以在軟件上只需完成RTL8019AS驅動(dòng)、精簡(jiǎn)TCP/IP協(xié)議棧實(shí)現、用戶(hù)自定義應用層處理以及通信等功能。為了便于軟件功能的實(shí)現和擴充,軟件系統采用模塊化方法進(jìn)行設計[2]。

3.2.1 RTL8019AS驅動(dòng)模塊

此模塊設計依賴(lài)于RTL8019AS的硬件工作原理,即對RTL8019AS的驅動(dòng)是通過(guò)操作其內部寄存器組來(lái)完成的。通常,在進(jìn)行數據收發(fā)前需先向各寄存器寫(xiě)入相應的控制字,當發(fā)送以太網(wǎng)數據幀時(shí),微控制器通過(guò)RTL8019AS的I/O端口將打包好的數據以遠程DMA方式寫(xiě)入到RTL8019AS的內部數據發(fā)送緩沖區,然后啟動(dòng)發(fā)送;接收以太網(wǎng)數據幀時(shí),RTL8019AS會(huì )自動(dòng)接收數據并將其存入自己的內部數據接收緩沖區,然后以寄存器標志或中斷請求方式通知,再通過(guò)RTL8019AS的I/O端口將數據以遠程DMA方式讀到自己的數據緩沖區并進(jìn)行下一步的拆包處理?;谝陨戏治?,RTL8019AS驅動(dòng)程序分三部分設計,即芯片初始化(設置MAC地址、收發(fā)緩沖區大小、中斷等)、發(fā)送數據子程序和接收數據子程序。詳細的驅動(dòng)程序見(jiàn)文獻[3]。

3.2.2 精簡(jiǎn)TCP/IP協(xié)議棧模塊設計

此模塊負責TCP/IP協(xié)議的處理。由于以太網(wǎng)協(xié)議只規定了物理層和數據鏈路層,所以要想實(shí)現進(jìn)程間通信還必須實(shí)現上層的TCP/IP協(xié)議。但此協(xié)議非常復雜,而且很多功能都是針對PC平臺的應用,在嵌入式系統中根本用不上;另外,8位微控制器的處理能力和內存空間也使得在其上實(shí)現完整的TCP/IP協(xié)議根本不可能。因此,在8位機上用軟件實(shí)現TCP/IP協(xié)議時(shí)首先必須根據應用需求對整個(gè)協(xié)議棧進(jìn)行裁剪[4]。在本應用中,由于只需要在和以太網(wǎng)間進(jìn)行簡(jiǎn)單的測試數據和測試命令傳輸,所以在應用層采用了自定義協(xié)議,在傳輸層選擇了能保證可靠性的TCP協(xié)議并進(jìn)行了有針對性的TCP協(xié)議機制裁剪,而在網(wǎng)絡(luò )層只實(shí)現了不提供分片和路由功能的IP協(xié)議、測試網(wǎng)絡(luò )連通性所需的ICMP協(xié)議(僅支持Ping應答)以及提供IP地址到以太網(wǎng)地址(MAC地址)映射的ARP協(xié)議。這樣,就得到了一個(gè)能在低檔8位機上實(shí)現和運行的精簡(jiǎn)TCP/IP協(xié)議棧。此協(xié)議棧從物理層到應用層的完整結構如圖5所示。


3.2.3 應用程序模塊設計

應用程序模塊直接面向用戶(hù)需求提供相應服務(wù)。本設計中,根據整個(gè)軟件模塊的功能劃分,應用程序需要完成通信處理及串行幀和IP分組的格式轉換。由于嵌入式串行口-的TCP/IP協(xié)議棧傳輸層選擇了保證數據傳輸可靠性的TCP協(xié)議(向應用層提供流式套接字接口),所以應用程序無(wú)需再進(jìn)行超時(shí)重發(fā)和回傳確認處理,僅需要完成串行口的數據收發(fā)操作以及串行數據幀和IP分組的格式轉換。進(jìn)行串行數據幀和IP分組的格式轉換時(shí)使用了共享數據緩沖區和指針技術(shù)以避免協(xié)議分層間的數據拷貝,不僅節省了內存空間,而且大大提高了打包和拆包的處理速度;另外,由于串行口設備每次需傳輸的數據量很小,所以四個(gè)串行口緩沖區的數據采用集中打包、一次發(fā)送的方法減少了網(wǎng)絡(luò )訪(fǎng)問(wèn)次數,既提高了通信效率又避免了因頻繁短幀傳輸造成的網(wǎng)絡(luò )擁堵;最后應用程序模塊還提供了嵌入式串行口-的串行口屬性配置功能,用戶(hù)可根據各測試設備串行口的具體屬性,在管控計算機上通過(guò)以太網(wǎng)對網(wǎng)橋的各串行口收發(fā)數據緩沖區以及波特率進(jìn)行遠程動(dòng)態(tài)設置,從而極大地提高了網(wǎng)橋的適應性。

實(shí)驗證明,本文提出的嵌入式串行口-應用于平臺,不但能完全滿(mǎn)足測試平臺的通信要求,還具有成本低、體積小、可靠性高等優(yōu)點(diǎn)。同時(shí)在此網(wǎng)橋的硬件平臺上,只要針對具體應用需求對應用程序模塊稍作修改就可應用于其他汽車(chē)傳感器平臺(如輪速傳感器平臺)以及溫室、環(huán)保、氣象等需要遠程監測的場(chǎng)合。因而該串行口-以太網(wǎng)橋具有很強的適應性和很高的推廣應用價(jià)值。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>