



摘要:為了便于汽車的遠程控制與管理,進行了車載信息系統終端的研究與設計。車載終端作為汽車內外信息溝通的重要平臺,設計了車載終端的軟件和硬件,以及CAN總線節點的軟件和硬件,配合監控中心和Android手機客戶端,可以實現對車輛進行監控、管理、調度和遠程故障診斷等功能。最后對系統進行集成與測試,測試結果表明,車載終端工作正常,可以與CAN總線節點以及上位機之間進行通信實現相應功能。驗證了車載終端軟件和硬件設計方案的正確性。本文網絡版地址:http://www.eepw.com.cn/article/271646.htm
關鍵詞:車聯網;車載終端;CAN總線;車載信息;設計方法
基金項目:廣東省自然科學基金資助(9451064101003049),校重點學科項目(B01-XZD13001)
吳斌(1988-),男,碩士,助教,研究方向:汽車電子控制技術與車聯網。
引言
隨著我國汽車保有量越來越多,汽車在帶給人們便利的同時也引發了一些問題,比如能源問題、環境問題和安全問題是汽車發展面臨的三大問題。本論文設計了一種車載終端,該車載終端置于車內,采集和處理各種信息,配合監控中心可以實現車輛的定位、車輛控制、遠程故障診斷和管理調度等功能。2008年東北大學的張超設計了基于CAN總線的車載GPS導航系統,可以實現車輛的定位。2012年浙江大學的楊瑞設計了工程車輛的車載終端,可以實現工程車輛的遠程控制和數據存儲等功能。當前車載終端研究主要存在的問題是車載系統功能單一,難以擴展,并且多采用GSM等比較落后的通信方式。而本文設計的車載終端功能較豐富,擴展方便,并且采用GPRS/3G通信方式,速度快捷且方便,為車載終端的設計提供了有力的參考。
1 車載終端的硬件設計
1.1 車聯網總體架構設計
本文主要研究的是車載終端的軟件和硬件設計,車載終端采用高速嵌入式處理器+GPRS/3G模塊組合的方案。主控芯片為STM32F103VCT6,其架構是ARM Cortex-M3,封裝類別是LQFT100,該芯片的處理能力和處理速度能夠滿足車載終端的使用要求,選擇SIM900作為車載終端的無線網絡傳輸模塊。
在車載終端的硬件設計中,主要設計芯片供電電路、復位電路、時鐘電路、程序下載電路、TFT液晶顯示電路、外部設備連接電路等等。
1.2 車載終端電源管理系統設計
汽車蓄電池輸出電壓一般為12V,由于許多芯片的工作電壓不一致,所以需要設計多個電源管理子系統以滿足不同芯片的使用。首先將12V電壓轉變為SV電壓滿足CAN總線節點的工作需要,然后將5V電壓分別轉換為4V和3.3V,4V電壓供SIM900模塊工作,3.3V電壓供STM32F103VCT6芯片工作。
12V到5V電壓轉換芯片采用的是穩壓三極管LM2596-5V,5V到3.3V的電壓轉換芯片采取的是封裝為SOT-223的AMS1117_3.3。SIM900-般工作在3.4V到4.5V電壓,5V到4V的電壓轉換芯片選用MIC29302,增加去耦電容和旁路電容來濾除干擾。
1.3 GPRS無線傳輸模塊和GPS系統的硬件設計
本系統無線傳輸模塊采用的是SIM900,實現車載終端和上位機監控中心之間的通信,SIM900的外圍原理圖如圖1所示。SIM900主要通過RX、TX和GND引腳與STM32芯片進行通信。SIM900模塊要有SIM卡才可以使用,SIM900芯片與SIM卡之間用一個22 Q的電阻來匹配阻抗。
要實現車輛的定位和監控,需要使用GPS全球定位系統,本系統選用的GPS模塊為VK162,工作電壓為3.OV-5.ov,RF_IN引腳連接天線,其匹配阻抗為50Ω,上電后TXA、RXA引腳會自動輸出GPRMC格式的數據。VK162還可以使用備用電源供電,確保在沒有外接電源時內部時鐘能夠正常工作。
1.4 CAN總線節點硬件設計
CAN總線節點采用微處理器+CAN控制器+CAN收發器的設計方案,這種方案雖然外部電路設計較為復雜,但是可以根據應用情況靈活地選擇控制芯片,成本比較低。本次設計采用的微處理器是高性能、低功耗STC89C52,其內部資源完全可以滿足系統的需要,CAN控制器和收發器分別是SJA1000和TJA1050T,為了提高節點的抗干擾性,在SJA1000和TJA1050T之間增加了2個光電耦合器6N137進行電氣隔離。STC89C52與SJA1000主要通過數據I/O口相連。SJA1000的片選引腳CS與STC89C52的P2.7相連。圖2為CAN總線控制器和收發器的原理圖。
2 車載終端的軟件設計
論文設計的車載終端主要包括3個功能模塊,分別是:(1)進行GPS數據的接收與解析;(2)車載終端與GPRS SIM900模塊進行通信,實現上位機和車載終端之間的交互:(3)車載終端與汽車上的CAN總線節點進行數據交換,實現CAN總線協議與串口協議之間通信網關的功能。下面將詳細介紹這幾個功能模塊的具體實現。
2.1 GPS和GPRS軟件設計
2.1.1 GPS信息的提取
STM32有多個串口資源,使用串口1與SIM900通信,串口2與CAN總線進行數據交互。GPS輸出數據遵循NMEA0183協議,其格式是數據中的經度、緯度和時間等信息都是用“,”隔開,通過判斷“,”的個數就可以提取經度和緯度信息。同時還要判斷GPS輸出的數據是否有效,數據以“$GPRMC”開頭并且第18位為“A”才代表數據有效,通過語句Compare_String(GPS_RxBuf,“$GPRMC”,O,0,6)==1)(GPs_RxBuf[18]=='A'))來判斷,在驗證GPs輸出信息有效之后才進行下一步的提取經緯度信息操作,否則直接過濾。GPS信息處理流程如圖3所示。
2.1.2 GPRS無線通信軟件設計
SIM900可以工作在透明傳輸模式,也就是說不需要對數據進行復雜的封裝,SIM900可以將接收到的數據直接通過網絡發送出去。對SIM900的控制是通過AT指令來實現的,比較常用的透明傳輸AT指令有”AT+CIPMODE=1\r\n”、AT+CGATT=l\r\n”、“AT+CIPCCFG=5,2,1024,l\r\n”等等。
為了保證數據的安全性和解析的方便,通信雙方之間定義了一個應用層協議,協議內容包括幀頭、VIN號、幀類型、數據內容、校驗和、幀尾等。幀頭使用“$$”字符表示數據的開始,幀尾使用“”表示數據的結束。車載終端與監控中心之間的協議規定了幀類型及其對應的編碼,車載終端所發送的數據包格式如下:
2.2 車載終端CAN通信設計
2.2.1 CAN總線節點軟件設計
CAN總線節點的軟件設計,主要包括初始化函數、查詢發送函數和中斷接收函數三部分,SJA1000初始化是在復位模式下進行的,主要設置時鐘分頻寄存器(CDR)、輸出控制寄存器(OCR)等參數,然后查詢狀態寄存器的值,若發送緩沖區被釋放,則可以進行數據的發送。接收過程是使CPU中斷,若接收中斷,CPU讀取出接收緩沖區的數據,根據這三個函數可以實現CAN總線接點的數據收發功能。
2.2.2 CAN協議與串口協議網關設計
CAN總線協議與STM32的串口協議格式并不一致,若要實現CAN總線與串口之間數據的雙向傳輸,需進行串口協議與CAN總線協議的轉換。CAN總線與串口之間需要進行電平標準和通信協議的轉換。本次設計使用PeliCAN模式的標準幀格式,總線傳輸波特率為125kb/s,當單片機串口檢測到緩沖區有數據時,則將該數據封裝成CAN總線的幀格式,由CAN總線進行數據的發送。反之亦然,當CAN總線上的數據需要通過串口發送時,將CAN總線緩沖區內的數據轉換為串口數據格式然后發送出去,這樣即可完成實現CAN總線與串口之間的通信,其轉換流程圖如圖4所示。
3 系統的測試與結論
為了配合車載終端的測試,論文開發了上位機監控中心和Android手機客戶端,在系統的硬件、軟件以及上位機設計均已經完成之后,對系統進行測試,車載終端與CAN總線聯合調試如圖5所示。根據測試結果,車載終端工作正常,可以與CAN總線以及上位機之間進行通信實現相應功能。驗證了車載終端軟件、硬件設計方案的可行性,可以為相關車聯網研究提供有力的參考。