李 根,蔡淑敏,王亞剛
(上海理工大學 光電信息與計算機工程學院,上海 200093)
一種用于汽車臺架測試的多協議網關設計
李 根,蔡淑敏,王亞剛
(上海理工大學 光電信息與計算機工程學院,上海 200093)
針對傳統(tǒng)汽車總線和工業(yè)現場總線無法與管理信息的以太網絡形成信息共享的弊端,設計出一種多協議轉換的網關,該網關作為汽車總線和工業(yè)設備到以太網之間的連接橋梁,能實現不同協議的數據之間相互轉發(fā)。硬件上該網關采用STM32F102主控芯片,利用CAN、UART、Ethernet等外設接口設計了相應協議的數據收發(fā)控制電路。軟件上網關移植了實時嵌入式操作系統(tǒng)μC/OS-II,并嵌入LwIP網絡協議棧,實現了從CAN、RS232及RS485到Ethernet數據的互相轉發(fā)。將網關用于汽車臺架測試中,實際測試結果表明,該網關實時性及可靠性高,具有較低的總線負荷和極低的數據粘包率。
網關;多協議;汽車臺架測試;CAN總線
CAN、RS232、RS485等現場總線在工業(yè)生產、過程控制及汽車領域中負責底層數據的通信,實現了現場各傳感器和智能設備之間的數字通信與信息傳輸,是交通、智能樓宇、工業(yè)生產等多種自動化領域中實現信息共享與通信的基礎[1]。隨著現場總線技術和以太網(Ethernet)技術的發(fā)展,控制系統(tǒng)逐漸變得分散化、網絡化和智能化。以太網擴展了控制系統(tǒng)的實現形式,應用領域也逐漸擴大到了傳統(tǒng)工業(yè)現場控制,但現階段汽車領域和工業(yè)現場檢測控制網絡主要是由上述各種總線組成的輕量級網絡,工業(yè)以太網仍然只占其中一小部分,傳統(tǒng)現場總線不可能完全被其替代[2]。將現場總線與以太網技術相融合,實現各層信息一體化,不僅能提高控制網絡的可靠性和穩(wěn)定性,還能降低系統(tǒng)成本,具有廣闊的發(fā)展前景[3]。使用嵌入式網關作為數據中間轉發(fā)設備是實現不同協議的設備相互連接比較實際可行的方法之一。
網關的主設備控制芯片采用的是STM32F107,片上移植嵌入式實時操作系統(tǒng)μC/OS-II[4],TCP/IP網絡協議棧使用LwIP,完成了兩路CAN,一路RS232和一路RS485到以太網數據之間的轉換。
CAN總線采用差分電平傳輸信號,擁有非破壞總線仲裁技術,能夠實現點對點和一對多及全局廣播,直接通信距離最遠能達到10 km,最高通信速率達1 Mbit·s-1[5]。其報文采用短幀結構,傳輸效率高、不易受干擾;CAN總線錯誤處理機制完善,發(fā)送信息失敗后可自動重發(fā)[6],但使用CAN總線組網需要特定的控制器和收發(fā)器,且總線協議復雜,設計調試繁瑣。
RS232總線多用在工業(yè)控制領域中,其原因主要是RS232總線傳輸穩(wěn)定,結構和協議簡單[7]。RS485總線是在RS232總線基礎上發(fā)展起來的,其克服了RS232總線必須工作在一主多從的模式和傳輸效率低以及通信滯后的弊端,能將各節(jié)點組成一個網絡,且傳輸距離遠,有較高的抗干擾能力[8]。圖1為所設計的網關的拓撲結構。
圖1 網關拓撲結構
網關硬件是基于STM32F107單片機設計的。STM32F107是一款基于Cortex-M3核的32位低成本、高性能的嵌入式處理芯片[9],內置MAC模塊,要實現網絡傳輸需要外擴一片PHY芯片,底層網絡驅動就是對PHY芯片的操作,TCP/IP協議采用 LwIP協議棧。芯片集成2路CAN控制器以及3路UART控制器[10]。利用PCA82C251T CAN收發(fā)器、SP3232串口轉RS232芯片和SN65HVD1176D串口轉RS485芯片設計了網關物理層數據收發(fā)電路,分別如圖2~圖4所示。
圖2 CAN數據收發(fā)電路
圖3 RS-232數據收發(fā)電路
圖4 RS-485數據收發(fā)電路
網關軟件基于MDK4.7平臺開發(fā),軟件以μC/OS-II實時嵌入式操作作為設備管理主程序框架, 同時嵌入了LwIP協議棧作為 TCP/IP 協議。LwIP實現的重點是在保持TCP協議主要功能的基礎上減少了對RAM 的占用,只需十幾kB的RAM和約40 kB的ROM,這使得LwIP協議棧特別適合在嵌入式系統(tǒng)中使用[11]。圖5顯示了網關對各協議數據轉發(fā)任務的流程。
圖5 數據處理流程圖
網關對到以太網轉換協議的物理端口做了如表1分配。
表1 轉換的協議物理端口分配
3.1 TCP 與 CAN 雙向數據傳輸
網關的兩路CAN通道均可連接任意帶有CAN通信接口的物理設備。帶CAN通信接口的設備通過網關可將數據發(fā)往任意以太網設備。同樣的,以太網設備也可通過網關將數據發(fā)往CAN設備。
現階段CAN總線的最大傳輸速度為1 Mbit·s-1,相對于以太網傳輸速度來說慢很多[12]。若CAN總線接收到一幀數據即向以太網上發(fā)送,這將會造成數據丟幀和網絡利用率較低[13]。本網關采用的解決辦法是:將接收到的CAN數據幀進行組包處理,接收完一包CAN數據之后再向以太網上發(fā)送。CAN數據幀組包方式有多種,本網關選擇通過CAN數據幀的個數來組包,即當接收到預定的CAN 數據幀個數(本網關設定為20個)后將接收到的這些CAN數據幀組成一包,然后再發(fā)送到以太網上進行傳輸。
網關兩路CAN濾波器的ID均設置為0x00000000,這樣做的目的是為了使網關可接收任意標識符的數據幀。表2為網關兩路CAN控制器的基本設置。
表2 CAN 接口設置
3.2 TCP 與RS232/485雙向數據傳輸
同網關的CAN數據收發(fā)功能一樣,帶有RS232/485接口的設備可通過網關將數據發(fā)往任意以太網設備,以太網設備也可將數據發(fā)往對應的RS232/485設備。網關在接收到的RS232/485數據組包后才能向網絡上發(fā)送數據[14]。一般RS232/485組包方式有兩種:(1)通過RS232/485的數據幀結束符來區(qū)分一幀數據是否結束;(2)通過單片機內的定時器來進行組幀:接收到一個字節(jié)后開始計時,若在規(guī)定的時間內沒有再接收到數據,則將已接收到的數據打包成一幀數據再發(fā)送到網絡上。如果RS232/485一直有數據接收(兩個Byte間的時間間隔小于規(guī)定時間),則當接收的數據的個數超過規(guī)定緩沖區(qū)長度時,才開始組幀[15]。
比較兩種方法,第一種方法需要設置合適的幀結束符,不利于做透傳,但實現起來較為容易。由于實際工程中的協議均會有幀結束符和一幀的長度(如Modbus協議),這種方式在實際工程中可得到有效的應用。第二種適合以太網轉串口的透明傳輸,根據字節(jié)間的時間間隔來組幀。本網關采用的是第二種組幀方式。即當接收到 RS232/485數據幀時,才將該幀數據打包成以太網數據幀,然后分別向各自的客戶端發(fā)送數據。當以太網接收到一幀數據時,若是判斷是RS232端口接收的,則將該幀數據組幀后通過 RS232端口發(fā)送出去;若是RS485端口接收的,則將該幀數據組幀后通過RS485端口發(fā)送出去。
為了測試網關的數據轉發(fā)性能,需要對網關進行丟包、粘包和拆包以及總線負載率等性能的測試。
4.1 測試環(huán)境搭建
設計的網關具有CAN、RS232和RS485到Ethernet的轉發(fā)功能,對傳輸數據的分包和打包的合理處理是網關正常工作的關鍵。針對CAN-Ethernet數據收發(fā)性能的測試,選用的是Vector公司生產的VN1630 CAN卡,并帶有CANalyzer分析軟件。CANalyzer是網絡和分布式系統(tǒng)開發(fā)的通用分析工具,能方便的觀察、分析和支持擴展多達32個CAN通道的數據傳輸。其具有良好的性能,及可編程功能,能滿足從簡單的網絡分析到復雜問題中發(fā)現并解決故障(解決紛爭)的所有需求[16]。針對RS232/485-Ethernet數據收發(fā)性能的測試采用串口調試助手作為測試軟件。圖6為網關測試實驗環(huán)境。
圖6 網關測試實驗環(huán)境
測試開始前,將網關和電腦(路由器)連接,并將網關的各物理轉換接口同對應的設備接口連接,然后下載編譯好的固件,復位單片機。圖7和圖8顯示了CAN 和RS232、RS485到Ethernet的收發(fā)情況。
圖7 CAN-Ethernet數據收發(fā)性能測試
圖8 RS232/485-Ethernet數據收發(fā)性能測試
4.2 網關數據轉發(fā)性能測試
實驗主要針對數據的丟包、粘包和拆包的性能指標進行測試。理論上由于TCP 是可靠的傳輸方式,基本不存在丟包的現象。從表3也可看出,粘包主要發(fā)生在通過CAN 和RS232、RS485連續(xù)發(fā)送一幀數據到網關Ethernet的過程中。發(fā)送的數據可能分好幾次接收,接收間隔可達5 ms,這是由于RS232、RS485及CAN收發(fā)器的傳輸速率較低,無法跟上Socket的速率,故在此環(huán)節(jié)造成數據粘包的情況。不過在低速率、小數據量方面,網關足以勝任數據的透傳。當數據幀大小100 Byte,發(fā)送間隔為100 ms時的網關的性能已經可滿足眾多的工業(yè)控制和測試需求。CANalyzer中的總線負載率反映了CAN總線上的數據擁擠程度,數據收發(fā)速率同總線負載率負相關。表3中表明,網關在高速數據傳輸下依然能保證較低的總線負載率,這反映了網關工作效率較高。
表3 網關數據轉發(fā)能力測試結果
在汽車測試領域中,超過80%的車輛均是采用CAN總線進行各模塊和傳感器間的數據通信,測試設備也主要是采用CAN總線來開發(fā)的。但也有相當一部分測試設備是基于RS232、RS485總線或者Ethernet總線設計的,這就導致在實際測試過程中,需要大量協議轉換的網關作為中間數據轉發(fā)設備。由于每種網關結構功能單一,不能根據開發(fā)者的需求進行調整,導致測試效率不高。
將本文設計網關用于汽車臺架測試中,網關實現了汽車和測試設備之間數據協議的統(tǒng)一,實際工作中網關也獲得了良好的測試性能。在當前車聯網飛速發(fā)展的背景下,本網關成本低、易部署,將擁有廣闊的發(fā)展前景和市場空間。
[1] 樊良.中間件技術在現場總線互連網關中的應用[D].成都:電子科技大學,2007.
[2] 李剛炎,胡劍.城市客車信息集中控制與CAN總線[C].西安:中國客車學術年會,2005.
[3] 陳磊.從現場總線到工業(yè)以太網的實時性問題研究[D].杭州:浙江大學,2004.
[4] 曹萬科.CAN協議車載網絡若干關鍵理論研究[D].沈陽:東北大學,2008.
[5] 常英亮.基于嵌入式 Linux 的物聯網網關研究與實現[D].北京:北京交通大學,2014.
[6] Thompson B.Understanding controller area networks[J].Mo-tor,2008,209(1):46-50.
[7] Aberu E,Lightstone M,Mitra S K,et al.A new efficient ap-proach for the removal of impulse noise from highly corrupted images[J].IEEE Transactions on Image Processing,1996,5(6):1012-1025.
[8] Mazzaferri J,Campus J,Escalera J C,et al. Edge detector tol-erant to object defocusing[J].Optics Communications,2010,283(19):3639-3645.
[9] 徐聞拯.多模物聯網網關系統(tǒng)設計與實現[D].西安:西安電子科技大學,2014.
[10] 劉承智,丁國良,原亮,等. 改進型CAN總線協議的實時性研究[J]. 計算機技術與發(fā)展,2012,22(7):81-84.
[11] 李陽銘.基于ARM的嵌入式網關研究[D].合肥:合肥工業(yè)大學,2006.
[12] 李正軍.現場總線與工業(yè)以太網及其應用技術[M].北京:機械工業(yè)出版社,2011.
[13] 王文博.時分雙工CDMA移動通信技術[M].北京:北京郵電大學出版社,2003.
[14] 張大鵬.CAN總線與以太網互聯關鍵技術的研究[D].南京:南京航空航天大學,2006
[15] 趙浩.基于CAN總線和以太網的嵌入式系統(tǒng)設計與研究[D].西安:西北工業(yè)大學,2007.
[16] 孔令偉.車載CAN網絡的網關設計方法研究[D].哈爾濱:哈爾濱工業(yè)大學,2008.
Design of Multi-protocol Gateway for Vehicle Bench Testing
LI Gen,CAI Shumin,WANG Yagang
(School of optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)
In view of the insufficient aspect of traditional vehicle bus cannot share local information with management information of the Ethernet network, a multi-protocol conversion gateway is designed, as the bridge between the vehicles bus and other test devices to the Ethernet, the gateway can transfer data between different protocols. On the hardware, the gateway based on STM32F102 host device, using CAN, UART, Ethernet and some other peripheral interfaces for data receiving and transmitting control circuit. On the part of software, the gateway transplant the real-time embedded operating system μC/OS-II, LwIP protocol stack, and finally realize the data transfer function between CAN, RS232 and RS485 to Ethernet. Using the gateway in vehicle bench testing, the results show the gateway has high real-time performance and high reliability, a low bus load rate and a very low transmission error rate.
gateway; multi-protocol; vehicles bench testing; CAN bus
2016- 04- 24
李根(1990-),男,碩士研究生。研究方向:嵌入式等。蔡淑敏(1993-),女,碩士研究生。研究方向:嵌入式等。王亞剛(1967-),男,博士,碩士生導師。研究方向:工業(yè)過程控制等。
10.16180/j.cnki.issn1007-7820.2017.03.025
TN915.05
A
1007-7820(2017)03-091-04