王詩艦,唐厚君,熊天毅
(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
隨著CAN總線在世界范圍內(nèi)的汽車制造中的廣泛推行和發(fā)展,使得各項附加功能部件能作為一項標準裝備嵌入到車身中。借助于CAN總線,我們能通過GSM網(wǎng)絡(luò)對車輛本身進行遠程控制,同樣能通過GPS模塊得到車輛的準確位置后使用通訊模塊與用戶得以聯(lián)系,進而通過通訊模塊直接對車輛進行遠程操控成為可能。因此,提出了基于CAN總線的汽車遠程控制系統(tǒng)的設(shè)計方案,將GPS定位以及GSM通訊等功能集成在一起,并用CAN總線與車輛組合,實現(xiàn)功能。
該汽車遠程控制系統(tǒng)的目的是給予車主能夠更加方便智能的控制汽車,能夠僅通過手機就能完成多數(shù)功能,可以使得車主隨時隨地能對車輛進行控制而沒有限制,真正實現(xiàn)人,車的有機結(jié)合。該系統(tǒng)由通信模塊,GPS定位模塊和控制模塊組成。通信模塊通過GSM網(wǎng)絡(luò)接收用戶發(fā)送的短信,或者得到控制模塊的命令對用戶發(fā)送指定的短信。GPS定位模塊則以固定的時間頻率向控制模塊傳送車輛的位置信號??刂颇K則與車輛進行CAN通信,分析通信模塊得到的來自用戶的信息,并不斷存儲GPS定位信息,通過各項得到的數(shù)據(jù)進行分析整合,根據(jù)用戶的短信命令控制車輛動作,根據(jù)CAN通信得到的數(shù)據(jù)實時向用戶報告車輛狀況。該遠程控制系統(tǒng)的結(jié)構(gòu)如圖1所示。
該系統(tǒng)硬件平臺主要由控制模塊,GSM通信模塊,GPS定位模塊組成。其中,控制模塊在硬件層面上又能分為MCU模塊,電源模塊,CAN通信模塊,RS232設(shè)備接口模塊。
考慮到設(shè)備的功能需求,系統(tǒng)采用飛思卡爾公司的MC9S08DZ60微控制器為主控制器。MC9S08D系列微控制器單機內(nèi)嵌CAN的微控制器,并將內(nèi)嵌的CAN,EPROM和片上仿真/調(diào)試模塊組合在一起,集成了所有的功能,符合要求所需。同時,有著直接面向該MCU的編程調(diào)試軟件CodeWarrior。它具有高度可視化的綜合開發(fā)環(huán)境,支持系統(tǒng)體系結(jié)構(gòu),獨立集成產(chǎn)品以及Processor Expert,使開發(fā)人員能夠很方便的構(gòu)建復(fù)雜的應(yīng)用程序。
電源模塊是5 V直流穩(wěn)壓源輸入,主要提供電路中各芯片的工作電壓。其中通過車載的電源提供12 V電源,12 V電源經(jīng)過濾波和穩(wěn)壓再由電壓轉(zhuǎn)換芯片LP2985-50生成5V電源。LP2985-50是一款高性能LDO穩(wěn)壓芯片,其輸出為5 V。在滿載時,壓降僅為280 mV,完全能夠滿足系統(tǒng)需要。為確保輸出穩(wěn)定,在輸出端同樣增加了濾波電容。
如圖2所示,CAN通信模塊采用飛利浦的高速CAN轉(zhuǎn)換芯片TJA1040T,該芯片 TXCAN,RXCAN接 MCU的 CAN控制器,STB1接MCU的IO口,CANH,CANL即為兩條 CAN線,工作時STB1為高電平,由MCU控制。
圖1 遠程控制系統(tǒng)結(jié)構(gòu)
圖2 CAN模塊,RS232模塊以及電源模塊電路圖
RS232設(shè)備接口模塊主要是控制模塊與通訊模塊以及GPS定位模塊連接所用。RS232是一種使用非常普通的3線制全雙工通信接口。只需要TxD,RxD,GND3根數(shù)據(jù)線就可以完成雙向的數(shù)據(jù)傳遞。為了保證通訊的可靠性,系統(tǒng)采用RS232驅(qū)動芯片MAX3232芯片來進行電平轉(zhuǎn)換。MAX3232有2路輸入以及2路輸出端口,并比MX232的工作電壓范圍更寬,消耗的功率更低,更適合系統(tǒng)使用。
本系統(tǒng)采用的是SIMCOM公司生產(chǎn)的SIM300通信模塊。SIM300具有標準的AT命令接口,可提供語音傳輸、短消息和GPRS無線上網(wǎng)業(yè)務(wù)。SIM300集成完整的射頻電路、GSM的基帶處理器和強大的TCP/IP協(xié)議棧。SIM300具有單電源供電,工作于三頻模式900/1800/1 900 MHz,并且支持文本和PDU模式的短消息。同時支持多時隙GPRS功能和語音以及傳真。本系統(tǒng)利用 SIM300的短消息功能,實現(xiàn)車輛與用戶之間的通信。SIM300通過RS232接口連接主控制器,從而進行串口通信[1]。
本系統(tǒng)采用的是韓國Jcom公司出品的C3-470C GPS定位模塊。C3-470C使用標準的NMEA 0183輸出格式,RS232總線傳輸,9 600 Kbps。該模塊內(nèi)置了天線,也有外接天線的接口。模塊有電池供電保留歷史信息。該芯片將電路封裝,共有6個外部端口,由右至左分別為使能端口EN,正電源口VCC,串口發(fā)送口TXA,串口接收口RXA,地GND,啟動模式端口BOOT。實際連線方式為EN口懸空;電源正和電源地分別連接電源模塊的輸出和地;TXA及RXA連接到RS232模塊的MAX3232的一組輸入輸出端口上,然后通過RS232接口連接主控制器,從而進行串口通信[2]。
軟件系統(tǒng)的設(shè)計主要包括CAN接受發(fā)送程序,GSM通信程序,GPS數(shù)據(jù)處理程序,主判斷動作程序。其中,所有程序都是通過軟件CodeWarrior用C語言進行設(shè)計。
由于本系統(tǒng)使用的微控制器MC9S08DZ60內(nèi)部集成了應(yīng)用了CAN2.0A/B協(xié)議的CAN控制器--MSCAN模塊,所以在正常運行之前,先要對MSCAN模塊進行初始化。置位CANE,寫入處于初始化模式的配置寄存器,最后清除INITRQ,離開初始化模式,進入正常模式[3]。
當CAN端口檢測到有等待接受的報文,通過接受過濾器匹配比較,將滿足過濾器條件的報文傳送到相應(yīng)的接受緩沖器中。接受緩沖器收到傳來的報文后,MSCAN會將接受器標志寄存器CANRFLG置1,引起中斷請求,進行中斷處理。在中斷處理中,將寄存器中的CAN報文按照需要保存到相應(yīng)的主程序變量中。最后,清除接收器標志位,報文接受完畢,返回準備接受下一個報文。流程圖見圖3。
圖3 CAN接受流程圖
圖4 CAN發(fā)送流程圖
當準備發(fā)送CAN報文時,首先判斷并等待CAN總線空閑,并通過查詢MSCAN發(fā)送器標志寄存器來確認是否有空閑的發(fā)送器緩沖器。當還有至少一個發(fā)送器緩沖器時,將報文寫入發(fā)送器緩沖器,并通過將發(fā)送中斷標志位置1發(fā)送報文。如果同時不止一個緩沖器同時請求發(fā)送,還需比較優(yōu)先級,優(yōu)先級較高的發(fā)送緩沖器先發(fā)送,此時由MSCAN自動處理順序,依次發(fā)送。報文發(fā)送成功后,MSCAN會清除發(fā)送器標志位,準備開始下一個報文的發(fā)送。流程圖見圖4。
C3-470C模塊支持NMEA0183的通信標準協(xié)議。該協(xié)議采用ASCII碼,其串行通信默認參數(shù)為:波特率4 800 bps,數(shù)據(jù)位8bit,開始位1bit,停止位1bit,無奇偶校驗。該模塊會依此發(fā)送$GPGGA,$GPGSA,$GPGSV,$GPRMC等 4條語句。其中$GPRMC模塊語句是推薦最小數(shù)據(jù)量的GPS信息,其中包括UTC時間,定位狀態(tài),經(jīng)度,緯度,速度,航向等信息。
當控制模塊接受到C3-470C傳來的通信數(shù)據(jù)時,主程序進入調(diào)用串口中斷接受程序,進行中斷處理。在處理中,由于“$”為幀命令起始位,所以可以通過判斷“$”來確認命令起始位置,再通過判斷“$GPRMC”確認需要的數(shù)據(jù)語句。由于這些信息都會由“,”分割,所以可以通過判斷“,”數(shù)量以及每個信息所處的固定位置可以準確提取所需信息。通過這種方法處理這些數(shù)據(jù),可以從中提取經(jīng)度,緯度,速度,航向等有用信息,供控制器判斷。
SIM300模塊提供的命令接口符合 GSM07.07規(guī)范。GSM07.07中定義的AT Command接口提供了一種移動平臺與數(shù)據(jù)終端設(shè)備之間的通用接口。當SIM300模塊收到GSM網(wǎng)絡(luò)發(fā)來的短消息時,模塊能夠通過串口向控制模塊發(fā)送指示消息,提示收到短信。而控制模塊可以通過串口向SIM300模塊發(fā)送AT指令,SIM300模塊根據(jù)不同的AT指令執(zhí)行不同的動作。部分AT指令見表 1[4]。
SIM300發(fā)送短信支持PDU以及TEXT兩種模式。TEXT模式非常簡單,但是不支持中文短信,因此該系統(tǒng)選擇了使用PDU (protocol data unit)模式發(fā)送短信。PDU模式同時支持中英文兩種短信,收發(fā)短信包括3種編碼:7位,8位和UCS2編碼。PDU編碼的格式如表 2 所示[5]。
表1 部分AT指令表
表2PDU編碼
其中:SMSC為用戶短信信息中心地址,分為3部分:1個字節(jié)的長度控制字,一個字節(jié)的類型控制字和短信中心號碼,其中長度控制字不包含該字自身長度;DA為目的地址,格式與SMSC一樣;UD為用戶數(shù)據(jù),長度由UDL控制。PDU可發(fā)送UCS-2編碼的Unicode字符的用戶數(shù)據(jù)。
當控制模塊接收到串口發(fā)來的信息后,觸發(fā)串口中斷接受程序,設(shè)置變量提示主程序已有新提示信息并將數(shù)據(jù)保存至主程序變量中,供主程序判斷處理。當接受到“/r/n”,即回車換行后,表示SIM300的一整條提示信息發(fā)送完畢,則清空緩存量并等待接受下一條信息。
在初始化各項配置寄存器以及變量后,判斷是否有GMS模塊的新提示信息,若有則判斷是否提示收到短信,若是則以AT命令通訊GMS模塊輸出短信內(nèi)容,并判斷是否為預(yù)設(shè)內(nèi)容,根據(jù)預(yù)設(shè)短信的要求執(zhí)行預(yù)定程序,如發(fā)送CAN報文,或發(fā)送GPS地址的SMS短信等等。最后判斷所接受的CAN報文,同樣如需要動作則按所對應(yīng)的預(yù)設(shè)程序進行。返回最初判斷GMS模塊是否有新提示信息,循環(huán)運行。流程圖見圖5。
作為測試實驗,將汽車遠程控制系統(tǒng)與一套由CAN指令控制的車門控制系統(tǒng)通過CAN線相連。該車門控制系統(tǒng)通過CAN指令完成開關(guān)車門,車窗動作[6]。在實驗過程中,通過發(fā)送特定的手機短信,可以準確的控制車身控制系統(tǒng)進行開關(guān)車門鎖,升降車窗等動作。同樣,通過手機發(fā)送特定短信,可以成功收到由GPS定位模塊所定位的經(jīng)度緯度。在實驗中,完成的功能為:(1)遠程遙控車輛的門窗上鎖以及開關(guān),(2)查詢汽車的具體位置。
圖5 主程序流程圖
由于該系統(tǒng)與CAN總線相連,所以對于整個車輛的狀態(tài)能有較全面的把握。同時,在升級功能方面,只要將新的功能部件嵌入CAN總線,可以直接通過CAN總線直接把握到該功能部件,從而方便的面對該功能部件添加新的功能,真正做到人車同步。
系統(tǒng)可實現(xiàn)的功能有:(1)通過報警傳感器得到報警信號,自動發(fā)送警報信息到車主手機;(2)遠程遙控車輛喇叭響起,以便在停車場內(nèi)找尋車輛;(3)遠程遙控車輛的空調(diào)系統(tǒng)開啟;(4)當遇到緊急情況時一鍵向預(yù)置手機報告GPS位置并請求幫助。
以上功能只是實現(xiàn)功能的一部分,更多的功能根據(jù)車輛的實際情況可以自由組合設(shè)置。
本文設(shè)計的汽車遠程控制系統(tǒng)通過CAN總線得到車輛的各項信息并發(fā)送動作消息,通過GMS模塊與用戶交流溝通,通過GPS模塊定位車輛的位置,涵蓋了用戶在遠程控制方面對汽車的各項要求,并能方便的根據(jù)不同用戶的不同車型提供不同的功能,有很好的擴展性。該系統(tǒng)在很大程度上方便了車主的使用,同時在汽車防盜方面也將起到重要的作用。
[1]楊凱悅.遠程汽車狀態(tài)監(jiān)控及故障診斷系統(tǒng)的研究[D].上海:上海交通大學(xué),2012.
[2]范鵬.基于CAN總線的網(wǎng)絡(luò)化車身控制系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:上海交通大學(xué),2012.
[3]張穎超,楊宇峰,葉小嶺,等.基于CAN總線的汽車信號記錄儀的設(shè)計[J].儀表技術(shù)與傳感器 ,2009 ,46(1):40-42.
[4]中興通訊股份有限公司.中興通訊ME3000模塊AT指令集手冊(V2.00)[Z].深圳:中興通訊股份有限公司,2008.
[5]吳振陸,付學(xué)堯.基于GSM網(wǎng)絡(luò)及RFID技術(shù)的汽車防盜系統(tǒng)設(shè)計[J].裝備制造技術(shù),2010,38(5):97 -99.
[6]范鵬,唐厚君,葉子晟,基于CAN總線的車門控制系統(tǒng)的設(shè)計與實現(xiàn)[J].電氣自動化,2012,34(2):59-61.