新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用于車速傳感器性能測試平臺的串行口以太網(wǎng)橋設計

用于車速傳感器性能測試平臺的串行口以太網(wǎng)橋設計

作者: 時間:2016-12-15 來源:網(wǎng)絡 收藏


3.1.3 以太網(wǎng)接口設計

以太網(wǎng)接口是硬件電路設計的關鍵。因為RTL8019AS是基于ISA總線PC主板的以太網(wǎng)控制器,所以在和8位微控制器進行接口(見圖3)時其硬件電路與通用方式有很大不同。下面從RTL8019AS以太網(wǎng)控制器自身功能配置、與微控制器μPSD3254之間的總線接口及與網(wǎng)絡介質的接口等三方面給出具體電路設計。

(1) RTL8019AS功能管腳設置

RTL8019AS提供3種工作方式:PnP即插即用方式、免跳線方式和跳線方式。由于8位微控制器μPSD3254無法支持PnP工作方式,而免跳線方式又需外加專用串行E2PROM 93C46以存放相應的工作參數(shù),因此選擇跳線工作方式。在這種方式下RTL8019AS的中斷、I/O端口地址、網(wǎng)絡接口類型選擇等就完全取決于表1所示功能管腳的狀態(tài)。

JP腳接高電平使芯片工作于跳線方式,IOCS16B腳接低電平選8位數(shù)據(jù)總線,IRQS0~IRQS2接低電平選INT0為中斷請求源,IOS0~IOS3接低電平選芯片I/O端口基地址為300H,AUI、PL0、PL1接低電平分別選。BNC網(wǎng)絡接口和10Base-T雙絞線傳輸介質,SMEMRB/SMEMWB接高電平屏蔽BROM讀寫操作。

(2) RTL8019AS與微控制器的總線接口

RTL8019AS與微控制器的接口連接如圖4所示。



針對以上總線接口還有幾點說明:①由于在8位微處理器系統(tǒng)中,只需操作RTL8019AS的32個I/O端口地址,所以只需5根地址線進行譯碼,其余15根地址線要根據(jù)I/O端口基地址接固定電平。②AEN使能端為低電平有效,而PC7的內部邏輯方程為PC7=A15,所以RTL8019AS映射到μPSD3254外部數(shù)據(jù)區(qū)的地址范圍是8000H~FFFFH,這樣μPSD3254通過讀寫外部數(shù)據(jù)區(qū)的此地址范圍就能實現(xiàn)對RTL8019AS的讀寫。③由于RTL8019AS的處理速度比μPSD3254快很多,其內部數(shù)據(jù)緩沖區(qū)也相對較大,為了避免RTL8019AS每收到一幀數(shù)據(jù)就發(fā)出中斷請求,從而頻繁地打斷處理器,所以μPSD3254以查詢而非中斷方式讀寫RTL8019AS以太網(wǎng)控制器。④RTL8019AS在復位時要進行一系列內部寄存器操作,所以用單片機的P3.7端口控制其復位,以保證有足夠的復位時間。

(3) 網(wǎng)絡介質接口連接

由于RTL8019AS內部已集成以太網(wǎng)收發(fā)器,而且對外提供AUI(支持粗同軸電纜)和BNC(支持細同軸電纜和雙絞線)兩種網(wǎng)絡介質接口,所以本方案選擇較常用的BNC接口,這樣就只需再外加一個網(wǎng)絡變壓器20F001N和RJ45水晶頭插座即可解決網(wǎng)絡介質接口問題。

3.2 軟件系統(tǒng)設計

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

3.2.1 RTL8019AS驅動模塊

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

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

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




3.2.3 應用程序模塊設計

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

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

上一頁 1 2 下一頁

評論


技術專區(qū)

關閉