付建寬 張慶余 張?zhí)K林
(中汽數(shù)據(jù)(天津)有限公司,天津300000)
近年來各家車企紛紛在自家量產(chǎn)車型上配置車載終端,期望實現(xiàn)對車輛的遠(yuǎn)程監(jiān)控,以便及時掌握車輛的故障情況和運行狀態(tài),對于單個用戶來說通過手機APP 就可以查看這些信息,國家對此也出臺了相應(yīng)的管理規(guī)定[1],但是對于多種不同廠家不同型號的車輛管理起來就顯得捉襟見肘了,另外對于一些沒有配置車載終端的車型也很難統(tǒng)一遠(yuǎn)程調(diào)度管理。為了滿足這種需求,本文設(shè)計實現(xiàn)了一種新型的汽車監(jiān)控終端系統(tǒng),可以無縫銜接各類車型。
監(jiān)控終端采用明遠(yuǎn)智睿公司的MYZR-IMX28-CB142 核心板,CPU 為NXP 的i.MX287,主 頻454MHz,內(nèi) 存128MB DDR2-400 存儲128MB NandFlash,郵票孔結(jié)構(gòu),搭載自研的底板,擴展了各種功能模塊,底板上采用中科微電子的ATGM332D-5N 導(dǎo)航定位模塊來獲取GPS、北斗等衛(wèi)星導(dǎo)航系統(tǒng)的衛(wèi)星信號,實現(xiàn)聯(lián)合定位、導(dǎo)航與授時;采用廣和通公司的NL668 無線通訊模塊實現(xiàn)車聯(lián)網(wǎng);采用免驅(qū)的USB 攝像頭獲取車內(nèi)圖像信息[2];通過OBD 轉(zhuǎn)接線連接車輛的CAN 總線;通過GPIO 外接DS18B20 溫度傳感器感知車內(nèi)實時溫度[3];通過GPIO 外接MQ2 煙霧氣敏傳感器感知車內(nèi)有害氣體濃度[4];另外底板上預(yù)留了一路RS232 調(diào)試串口、一路RS485 工業(yè)總線、一路百兆以太網(wǎng)RJ45 口。系統(tǒng)總體結(jié)構(gòu)組成框圖如圖1 所示。
圖1 系統(tǒng)組成框圖
限于篇幅,下面僅對底板上電源電路、定位模塊電路、網(wǎng)口電路、CAN 總線保護電路的設(shè)計進行說明。
首先電源來源,對于乘用車可以直接從點煙器處取電,對于試驗車可以從底盤供電線纜處取電。電路設(shè)計支持9~50V 寬電壓輸入,通過高效率的DC/DC 變壓器UW2405D-20W,轉(zhuǎn)成5V 直流穩(wěn)壓為終端設(shè)備供電,再通過RT8010 將5V 降壓到3.3V 輸出,電路設(shè)計如圖2 所示。
圖2 電源電路設(shè)計
圖3 定位模塊電路設(shè)計
該部分設(shè)計采用了低紋波的LDO 供電,紋波相對??;使用無源天線,模塊前端增加一級低噪聲放大器(LNA) AT2659 保證性能[5],電路設(shè)計如圖3 所示。
由于i.MX287 內(nèi)部集成了MAC,所以只需要在底板上外擴獨立的PHY 芯片即可,本設(shè)計采用低功耗的LAN8720A,通過RMII 接口和MAC 層通信,同時連接帶網(wǎng)絡(luò)隔離變壓器的HR911105A RJ45 接頭和外部設(shè)備通信,電路設(shè)計如圖4 所示。
圖4 網(wǎng)口電路設(shè)計
CAN 收發(fā)器采用ISO1050,加裝SMBJ12CA 瞬態(tài)抑制二極管(TVS),確保CAN 總線在傳輸數(shù)據(jù)時能夠隔離浪涌、快速電脈沖群、靜電等的影響,提高可靠性。
圖5 CAN 總線保護電路設(shè)計
系統(tǒng)開發(fā)使用了VirtualBox 虛擬機,內(nèi)嵌Ubuntu12.04,交叉編譯工具鏈采用的是gcc-4.4.4,內(nèi)核版本為Linux-3.14.54,串口調(diào)試工具使用SecureCRT 8.0,文件上傳下載工具采用SSH Secure File Transfer Client。uboot、內(nèi)核、文件系統(tǒng)、設(shè)備樹的燒寫工具采用了官方提供的MfgTool.exe 以及Tftpd32.exe。
4G 通信模塊采用PPP 撥號,需要在內(nèi)核中添加USB 串口驅(qū)動,Ubuntu 下切換到內(nèi)核所在目錄,點擊鼠標(biāo)右鍵打開終端,執(zhí)行make menuconfig 命令,依次選擇device drivers->usb support->usb serial converter support,選中如下組件:USB driver for GSM and CDMA modems,選中后保存配置。打開內(nèi)核源碼文件drivers/usb/serial/option.c,在源碼中找到option_ids 數(shù)組,在數(shù)組中添加NL668 產(chǎn)品的VID(0x1508)和PID(0x1001),然后交叉編譯到模塊,最后在板卡上執(zhí)行sudo modprobe option 加載驅(qū)動。編輯好幾個配置文件之后,便可以通過pppd 命令進行撥號:# pppd call modem_NL668 &。
定位模塊使用/dev/ttyAPP0 串口設(shè)備節(jié)點,需要追加以下命令到文件系統(tǒng)的etc c.dinit.dmyzr 中以便上電開機自動執(zhí)行。
USB 攝像頭的驅(qū)動支持需要編譯進內(nèi)核,執(zhí)行make menuconfig 命令后依次選擇Multimedia support->Video capture adapters->V4L USB devices->USB Video Class (UVC),選中UVC input events device support,然后make 編譯。
GPIO 驅(qū)動的配置是通過更改設(shè)備樹實現(xiàn)的,可以首先查看管腳功能文件arch/arm/boot/dts/imx28-pinfunc.h,然后更改設(shè)備樹主文件arch/arm/boot/dts/imx28-evk.dts。
DS18B20 需要在內(nèi)核中開啟w1 選項,編譯內(nèi)核,然后燒寫內(nèi)核到板卡,這樣便會在文件系統(tǒng)/sys/bus/w1/devices/下發(fā)現(xiàn)該設(shè)備。
CAN 通信使用的是FLEXCAN,對應(yīng)內(nèi)核代碼中的drivers/net/can/flexcan.c,CAN 將被作為網(wǎng)絡(luò)設(shè)備進行操作,在之后應(yīng)用程序的初始化中添加如下代碼加載CAN 模塊并配置波特率和始能CAN,便可以像操作網(wǎng)口設(shè)備一樣操作CAN 設(shè)備了。
應(yīng)用程序采用開源的IDE CodeBlocks 開發(fā),系統(tǒng)設(shè)置“compiler and debugger settings”對話框中選擇GNU ARM GCC Compiler,Linker settings 中 添 加-lpthread -ljpeg,“Toolchain executables”中添加交叉編譯工具。經(jīng)過編譯生成的二進制可執(zhí)行程序通過共享文件夾將其拷貝到虛擬機外部的Windows 系統(tǒng)上,再通過SSH 工具將可執(zhí)行文件上傳到板卡上,在板卡上對文件再次授權(quán)后,便可以在板卡上執(zhí)行了。
終端的應(yīng)用程序采用C 語言設(shè)計,多線程編程,為了增強魯棒性,添加了軟件看門狗,通過操作/dev/watchdog 設(shè)備,設(shè)置超時時間,當(dāng)定時器超時,系統(tǒng)自動執(zhí)行復(fù)位操作。
4G 模組初始化完成后,會生成一個虛擬網(wǎng)卡,應(yīng)用程序中可直接通過socket 套接字來進行網(wǎng)絡(luò)編程,在終端上構(gòu)建了一個TCP 客戶端,和云平臺的TCP 服務(wù)器進行報文信息交互,實現(xiàn)本地信息上傳和遠(yuǎn)程指令的接收和執(zhí)行。
定位模塊初始化完成后,會輸出NEMA-0183 報文,應(yīng)用程序中開辟了一個線程進行定位信息的解析,解析結(jié)果將通過消息隊列傳遞給TCP 客戶端。
煙霧傳感器通過數(shù)字IO 接到i.MX287 上,當(dāng)連續(xù)三次監(jiān)測到TTL 電平為低時,立即點亮告警燈并驅(qū)動告警喇叭,同時將信息上報給云平臺。
攝像頭模塊通過調(diào)用opencv 庫進行抓拍駕駛員位置,生成的圖片放到指定路徑下,應(yīng)用程序?qū)⒆詣佣〞r將圖片通過FTP上傳到云服務(wù)器上。
我們在阿里云服務(wù)器上基于QT 開發(fā)了可擴展的車輛遠(yuǎn)程監(jiān)控平臺,可以實時查看網(wǎng)絡(luò)狀態(tài)、車輛位置、車內(nèi)溫度、是否有可燃?xì)怏w等信息,支持遠(yuǎn)程重啟設(shè)備,支持OTA 更新固件,平臺運行效果如圖6 所示。
圖6 車輛遠(yuǎn)程監(jiān)控平臺運行效果
本文設(shè)計的汽車監(jiān)控終端功能強大,可以對突發(fā)狀況進行預(yù)警和上報,無人值守幫助節(jié)省了人力成本[6],同時多車部署的情況下可以大大提高監(jiān)控效率。由于自研的底板接口豐富,后面將嘗試接入更多的傳感器,便于云端可遠(yuǎn)程掌握更多的車況信息。目前該終端已經(jīng)在我公司內(nèi)部開始小批量安裝試用,運行穩(wěn)定可靠,未來充滿商用價值。