用于車速傳感器性能測試平臺的串行口-以太網(wǎng)橋設(shè)計
車速傳感器是電控汽車的關(guān)鍵部件,其性能優(yōu)劣直接關(guān)系到發(fā)動機怠速和變速器控制,因此,必須對其各項性能進(jìn)行全面嚴(yán)格的測試。而這一系列的性能測試又有賴于一個穩(wěn)定、高效的測試平臺。傳統(tǒng)測試平臺通常采用由測試設(shè)備、測試操作臺計算機和后臺管理計算機組成的三級系統(tǒng)結(jié)構(gòu),如圖1所示。
在此測試平臺中,測試設(shè)備一般只提供串行通信接口(如RS-232、RS-485等),無法直接接入管理計算機所在局域網(wǎng)(如最常用的Ethernet)。所以,整個系統(tǒng)必須通過一個測試操作臺計算機將上層局域網(wǎng)和底層串行總線網(wǎng)絡(luò)連接起來以保證實測數(shù)據(jù)(各項性能指標(biāo)數(shù)據(jù))的順利上傳和測試操作命令(如車速傳感器耐溫測試、動/靜態(tài)特性測試)的準(zhǔn)確下達(dá)。為此不但要增設(shè)測試操作臺計算機工作站,同時還必須安裝各種串行口通信卡、以太網(wǎng)網(wǎng)卡和相應(yīng)的板卡驅(qū)動程序,開發(fā)包含串行口通信模塊和以太網(wǎng)通信模塊的測控軟件。由此可見,由于通信接口和協(xié)議的不兼容,使得傳統(tǒng)車速傳感器性能測試平臺不僅軟硬件投資成本高,系統(tǒng)結(jié)構(gòu)復(fù)雜,調(diào)試和維護(hù)工作量大,而且管理計算機和測試設(shè)備間的數(shù)據(jù)傳輸要經(jīng)過中轉(zhuǎn),傳輸過程顯得過于復(fù)雜。
2 基于串行口-以太網(wǎng)橋的測試平臺
通過對圖1所示測試平臺的研究,發(fā)現(xiàn)造成系統(tǒng)平臺成本高、結(jié)構(gòu)復(fù)雜、中間處理過程繁多的根本原因是底層各測試設(shè)備和上層局域網(wǎng)通信接口、協(xié)議的不兼容。一般來說,底層測試設(shè)備需傳輸?shù)臄?shù)據(jù)量很小,大多只提供通信距離短、成本低的串行口(如RS-232、RS-485);而上層的局域網(wǎng)大多采用以太網(wǎng)。所以針對此類應(yīng)用,可以開發(fā)一種基于微處理器的嵌入式串行口-以太網(wǎng)橋?qū)崿F(xiàn)協(xié)議轉(zhuǎn)換[1],直接將各種僅支持串行口的測試設(shè)備接入以太網(wǎng),實現(xiàn)各測試設(shè)備與管理計算機局域網(wǎng)的無縫連接,簡化數(shù)據(jù)傳輸過程。
引入嵌入式串行口-以太網(wǎng)橋后的車速傳感器性能測試平臺結(jié)構(gòu)如圖2所示。
相比圖1所示的傳統(tǒng)測試平臺,新測試平臺下的串行口-以太網(wǎng)橋負(fù)責(zé)完成串行口測試設(shè)備和以太網(wǎng)之間的協(xié)議轉(zhuǎn)換(即在底層完成串行幀數(shù)據(jù)和以太網(wǎng)幀數(shù)據(jù)的格式轉(zhuǎn)換),實現(xiàn)了各測試設(shè)備和以太網(wǎng)的無縫連接,簡化了數(shù)據(jù)傳輸過程。測試人員可以在遠(yuǎn)端通過上層管理計算機直接下達(dá)各種測試命令來控制各測試設(shè)備完成傳感器各項性能指標(biāo)的測試;而各項實測數(shù)據(jù)也能從各測試設(shè)備直接傳送到后臺管理計算機進(jìn)行處理;從而使后臺管理計算機能以多任務(wù)方式同時完成前臺測試設(shè)備控制和后臺數(shù)據(jù)處理(如數(shù)據(jù)報表統(tǒng)計分析,圖形曲線顯示和數(shù)據(jù)庫更新),成為平臺中的管控一體化工作站,省去了原平臺中的測試操作臺計算機工作站,測試人員也不必再親臨現(xiàn)場進(jìn)行各種測試操作,極大地降低了工作強度。這樣一來,不僅使系統(tǒng)成本大為降低、體積大為縮小、結(jié)構(gòu)更加簡單,同時將前臺測試控制和后臺數(shù)據(jù)處理集中于一臺計算機,實現(xiàn)了管控一體化,節(jié)省了人力資源,使得系統(tǒng)的軟硬件資源得到了最大限度的利用。
3 串行口-以太網(wǎng)橋設(shè)計
通過新舊測試平臺對比,可以看到測試設(shè)備和后臺管理計算機兩大部件在性能和成本上基本相同。所以新測試平臺的性能好壞和成本高低很大程度上取決于新引入的嵌入式串行口-以太網(wǎng)橋的性能和成本。目前嵌入式產(chǎn)品市場上此類網(wǎng)絡(luò)設(shè)備大多是基于高檔微處理器和實時操作系統(tǒng)開發(fā)的,其價格昂貴,且提供的串行口也只有1~2個,不適合需將多個串行口設(shè)備集中接入以太網(wǎng),同時又要控制成本的應(yīng)用場合。本文根據(jù)這類具體的應(yīng)用需求在8位微控制器平臺上設(shè)計了一種提供多個串行口的低成本嵌入式串行口-以太網(wǎng)橋。下面對其硬件和軟件系統(tǒng)設(shè)計進(jìn)行介紹。
3.1 硬件系統(tǒng)設(shè)計
實現(xiàn)本系統(tǒng)所用串行口-以太網(wǎng)橋的功能,需要進(jìn)行多個串行口設(shè)備的以太網(wǎng)接入,以及串行通信協(xié)議和以太網(wǎng)通信協(xié)議的相互轉(zhuǎn)換。所以硬件電路設(shè)計主要包括多路串行口電路模塊和以太網(wǎng)接口電路模塊設(shè)計。本文硬件系統(tǒng)方案選用ST公司的工業(yè)級SoC型微控制器uPSD3254和Realtek公司的高性能以太網(wǎng)控制器RTL8019AS兩大核心器件進(jìn)行電路設(shè)計。硬件系統(tǒng)設(shè)計如圖3所示。
其中是一款由8051內(nèi)核模塊和PSD模塊構(gòu)成的具有SoC特征的增強型高速微控制器。晶振頻率最高可達(dá)40MHz,芯片內(nèi)的PSD模塊為用戶提供了豐富的可配置存儲器資源(256KB主Flash、32KB次Flash及32KB的SRAM)、靈活的DPLD地址譯碼電路以及3000門的CPLD模塊電路,片內(nèi)硬件看門狗大大提高了系統(tǒng)可靠性,芯片自帶JTAG接口支持ISP在系統(tǒng)編程,方便了程序調(diào)試和下載;而RTL8019AS是一款非常成熟的基于ISA總線、NE2000兼容的高性價比10M以太網(wǎng)控制器,其本身能完成以太網(wǎng)協(xié)議處理,只需和微控制器進(jìn)行簡單連接即可實現(xiàn)以太網(wǎng)通信;另外硬件電路還包括MAX232電平轉(zhuǎn)換器和20F001N網(wǎng)絡(luò)濾波器等少數(shù)外圍器件。整個硬件系統(tǒng)僅由4、5個芯片構(gòu)成,結(jié)構(gòu)簡單緊湊,可靠性高,成本低廉。下面從三方面給出硬件電路的具體設(shè)計。
3.1.1 PSD模塊配置設(shè)計
微控制器uPSD3254的PSD模塊使得硬件電路的設(shè)計大為簡化。它本身提供的兩塊大容量Flash以及SRAM(支持后備電池)使用戶無需再進(jìn)行外部程序/數(shù)據(jù)存儲器擴(kuò)展。同時PSD模塊中的DPLD子模塊為Flash和SRAM提供了靈活的地址譯碼, CPLD子模塊可供用戶設(shè)計一些簡單的組合/時序邏輯電路。本設(shè)計根據(jù)具體應(yīng)用需求,對PSD模塊配置如下:
(1)主Flash扇區(qū)0(fs0)配置在程序存儲器的0000H~FFFFH空間;
(2)主Flash扇區(qū)1(fs1)配置在程序存儲器的8000H~7FFFH空間;
(3)SRAM(rs0)配置在外部數(shù)據(jù)存儲器的0000H~7FFFH空間;
(4)CPLD的PA口和PB口被分別設(shè)計為兩個多路轉(zhuǎn)換器,以供串行通信時進(jìn)行信道切換。
3.1.2 串行口擴(kuò)展設(shè)計
由圖2可知,車速傳感器性能測試平臺中四個僅支持串行口的測試設(shè)備(分別負(fù)責(zé)耐溫、轉(zhuǎn)速、傳感器靜態(tài)特性和動態(tài)特性的測試)要同時接入嵌入式串行口-以太網(wǎng)橋,而微控制器?滋PSD3254本身只提供兩個串行口(uart0、uart1),所以必須進(jìn)行串行口擴(kuò)展。一種簡單的擴(kuò)展方法是利用單片機I/O端口控制多路轉(zhuǎn)換器(如CD4052)進(jìn)行串行口擴(kuò)展(圖3),實現(xiàn)了一點對多點分時串行口通信。根據(jù)微控制器的I/O端口資源情況,依此方法系統(tǒng)最多可擴(kuò)展32個串行口。根據(jù)此思路并結(jié)合測試平臺的具體應(yīng)用需求,利用uPSD3254的CPLD模塊設(shè)計了兩個二選一的多路轉(zhuǎn)換器,從而不僅將兩個串行口擴(kuò)展為四個(uart00、uart01和uart10、uart11),而且省去了多路轉(zhuǎn)換器芯片。另外,電平轉(zhuǎn)換器實現(xiàn)TTL—RS232電平轉(zhuǎn)換,這樣就為四個測試設(shè)備提供了四個標(biāo)準(zhǔn)RS-232串行口供其接入串行口-以太網(wǎng)橋。
3.1.3 以太網(wǎng)接口設(shè)計
以太網(wǎng)接口是硬件電路設(shè)計的關(guān)鍵。因為RTL8019AS是基于ISA總線PC主板的以太網(wǎng)控制器,所以在和8位微控制器進(jìn)行接口(見圖3)時其硬件電路與通用方式有很大不同。下面從RTL8019AS以太網(wǎng)控制器[1]自身功能配置、與微控制器之間的總線接口及與網(wǎng)絡(luò)介質(zhì)的接口等三方面給出具體電路設(shè)計。
(1)RTL8019AS功能管腳設(shè)置
RTL8019AS提供3種工作方式:PnP即插即用方式、免跳線方式和跳線方式。由于8位微控制器無法支持PnP工作方式,而免跳線方式又需外加專用串行E2PROM 93C46以存放相應(yīng)的工作參數(shù),因此選擇跳線工作方式。在這種方式下RTL8019AS的中斷、I/O端口地址、網(wǎng)絡(luò)接口類型選擇等就完全取決于表1所示功能管腳的狀態(tài)。
JP腳接高電平使芯片工作于跳線方式,IOCS16B腳接低電平選8位數(shù)據(jù)總線,IRQS0~I(xiàn)RQS2接低電平選INT0為中斷請求源,IOS0~I(xiàn)OS3接低電平選芯片I/O端口基地址為300H,AUI、PL0、PL1接低電平分別選BNC網(wǎng)絡(luò)接口和10Base-T雙絞線傳輸介質(zhì),SMEMRB/SMEMWB接高電平屏蔽BROM讀寫操作。
(2)RTL8019AS與微控制器的總線接口
RTL8019AS與微控制器的接口連接如圖4所示。
針對以上總線接口還有幾點說明:①由于在8位微處理器系統(tǒng)中,只需操作RTL8019AS的32個I/O端口地址,所以只需5根地址線進(jìn)行譯碼,其余15根地址線要根據(jù)I/O端口基地址接固定電平。②AEN使能端為低電平有效,而PC7的內(nèi)部邏輯方程為PC7=,所以RTL8019AS映射到外部數(shù)據(jù)區(qū)的地址范圍是8000H~FFFFH,這樣通過讀寫外部數(shù)據(jù)區(qū)的此地址范圍就能實現(xiàn)對RTL8019AS的讀寫。③由于RTL8019AS的處理速度比快很多,其內(nèi)部數(shù)據(jù)緩沖區(qū)也相對較大,為了避免RTL8019AS每收到一幀數(shù)據(jù)就發(fā)出中斷請求,從而頻繁地打斷處理器,所以以查詢而非中斷方式讀寫RTL8019AS以太網(wǎng)控制器。④RTL8019AS在復(fù)位時要進(jìn)行一系列內(nèi)部寄存器操作,所以用單片機的P3.7端口控制其復(fù)位,以保證有足夠的復(fù)位時間。
(3)網(wǎng)絡(luò)介質(zhì)接口連接
由于RTL8019AS內(nèi)部已集成以太網(wǎng)收發(fā)器,而且對外提供AUI(支持粗同軸電纜)和BNC(支持細(xì)同軸電纜和雙絞線)兩種網(wǎng)絡(luò)介質(zhì)接口,所以本方案選擇較常用的BNC接口,這樣就只需再外加一個網(wǎng)絡(luò)變壓器20F001N和RJ45水晶頭插座即可解決網(wǎng)絡(luò)介質(zhì)接口問題。
3.2 軟件系統(tǒng)設(shè)計
由于整個網(wǎng)橋的底層功能(如以太網(wǎng)協(xié)議實現(xiàn))已由硬件電路完成(見圖4),所以在軟件上只需完成RTL8019AS驅(qū)動、精簡TCP/IP協(xié)議棧實現(xiàn)、用戶自定義應(yīng)用層處理以及串行口通信等功能。為了便于軟件功能的實現(xiàn)和擴(kuò)充,軟件系統(tǒng)采用模塊化方法進(jìn)行設(shè)計[2]。
3.2.1 RTL8019AS驅(qū)動模塊
此模塊設(shè)計依賴于RTL8019AS的硬件工作原理,即對RTL8019AS的驅(qū)動是通過操作其內(nèi)部寄存器組來完成的。通常,在進(jìn)行數(shù)據(jù)收發(fā)前需先向各寄存器寫入相應(yīng)的控制字,當(dāng)發(fā)送以太網(wǎng)數(shù)據(jù)幀時,微控制器通過RTL8019AS的I/O端口將打包好的數(shù)據(jù)以遠(yuǎn)程DMA方式寫入到RTL8019AS的內(nèi)部數(shù)據(jù)發(fā)送緩沖區(qū),然后啟動發(fā)送;接收以太網(wǎng)數(shù)據(jù)幀時,RTL8019AS會自動接收數(shù)據(jù)并將其存入自己的內(nèi)部數(shù)據(jù)接收緩沖區(qū),然后以寄存器標(biāo)志或中斷請求方式通知,再通過RTL8019AS的I/O端口將數(shù)據(jù)以遠(yuǎn)程DMA方式讀到自己的數(shù)據(jù)緩沖區(qū)并進(jìn)行下一步的拆包處理?;谝陨戏治?,RTL8019AS驅(qū)動程序分三部分設(shè)計,即芯片初始化(設(shè)置MAC地址、收發(fā)緩沖區(qū)大小、中斷等)、發(fā)送數(shù)據(jù)子程序和接收數(shù)據(jù)子程序。詳細(xì)的驅(qū)動程序見文獻(xiàn)[3]。
3.2.2 精簡TCP/IP協(xié)議棧模塊設(shè)計
此模塊負(fù)責(zé)TCP/IP協(xié)議的處理。由于以太網(wǎng)協(xié)議只規(guī)定了物理層和數(shù)據(jù)鏈路層,所以要想實現(xiàn)進(jìn)程間通信還必須實現(xiàn)上層的TCP/IP協(xié)議。但此協(xié)議非常復(fù)雜,而且很多功能都是針對PC平臺的應(yīng)用,在嵌入式系統(tǒng)中根本用不上;另外,8位微控制器的處理能力和內(nèi)存空間也使得在其上實現(xiàn)完整的TCP/IP協(xié)議根本不可能。因此,在8位機上用軟件實現(xiàn)TCP/IP協(xié)議時首先必須根據(jù)應(yīng)用需求對整個協(xié)議棧進(jìn)行裁剪[4]。在本應(yīng)用中,由于只需要在串行口和以太網(wǎng)間進(jìn)行簡單的測試數(shù)據(jù)和測試命令傳輸,所以在應(yīng)用層采用了自定義協(xié)議,在傳輸層選擇了能保證可靠性的TCP協(xié)議并進(jìn)行了有針對性的TCP協(xié)議機制裁剪,而在網(wǎng)絡(luò)層只實現(xiàn)了不提供分片和路由功能的IP協(xié)議、測試網(wǎng)絡(luò)連通性所需的ICMP協(xié)議(僅支持Ping應(yīng)答)以及提供IP地址到以太網(wǎng)地址(MAC地址)映射的ARP協(xié)議。這樣,就得到了一個能在低檔8位機上實現(xiàn)和運行的精簡TCP/IP協(xié)議棧。此協(xié)議棧從物理層到應(yīng)用層的完整結(jié)構(gòu)如圖5所示。
3.2.3 應(yīng)用程序模塊設(shè)計
應(yīng)用程序模塊直接面向用戶需求提供相應(yīng)服務(wù)。本設(shè)計中,根據(jù)整個軟件模塊的功能劃分,應(yīng)用程序需要完成串行口通信處理及串行幀和IP分組的格式轉(zhuǎn)換。由于嵌入式串行口-以太網(wǎng)橋的TCP/IP協(xié)議棧傳輸層選擇了保證數(shù)據(jù)傳輸可靠性的TCP協(xié)議(向應(yīng)用層提供流式套接字接口),所以應(yīng)用程序無需再進(jìn)行超時重發(fā)和回傳確認(rèn)處理,僅需要完成串行口的數(shù)據(jù)收發(fā)操作以及串行數(shù)據(jù)幀和IP分組的格式轉(zhuǎn)換。進(jìn)行串行數(shù)據(jù)幀和IP分組的格式轉(zhuǎn)換時使用了共享數(shù)據(jù)緩沖區(qū)和指針技術(shù)以避免協(xié)議分層間的數(shù)據(jù)拷貝,不僅節(jié)省了內(nèi)存空間,而且大大提高了打包和拆包的處理速度;另外,由于串行口設(shè)備每次需傳輸?shù)臄?shù)據(jù)量很小,所以四個串行口緩沖區(qū)的數(shù)據(jù)采用集中打包、一次發(fā)送的方法減少了網(wǎng)絡(luò)訪問次數(shù),既提高了通信效率又避免了因頻繁短幀傳輸造成的網(wǎng)絡(luò)擁堵;最后應(yīng)用程序模塊還提供了嵌入式串行口-以太網(wǎng)橋的串行口屬性配置功能,用戶可根據(jù)各測試設(shè)備串行口的具體屬性,在管控計算機上通過以太網(wǎng)對網(wǎng)橋的各串行口收發(fā)數(shù)據(jù)緩沖區(qū)以及波特率進(jìn)行遠(yuǎn)程動態(tài)設(shè)置,從而極大地提高了網(wǎng)橋的適應(yīng)性。
實驗證明,本文提出的嵌入式串行口-以太網(wǎng)橋應(yīng)用于車速傳感器性能測試平臺,不但能完全滿足測試平臺的通信要求,還具有成本低、體積小、可靠性高等優(yōu)點。同時在此網(wǎng)橋的硬件平臺上,只要針對具體應(yīng)用需求對應(yīng)用程序模塊稍作修改就可應(yīng)用于其他汽車傳感器性能測試平臺(如輪速傳感器性能測試平臺)以及溫室、環(huán)保、氣象等需要遠(yuǎn)程監(jiān)測的場合。因而該串行口-以太網(wǎng)橋具有很強的適應(yīng)性和很高的推廣應(yīng)用價值。
評論