林曉斌,林 晨
(閩江學院 物理學與電子信息工程系,福建 福州 350108)
隨著城市建設程度和人們生活水平的不斷提高,汽車消費量急速增加,汽車偷盜案件也居高不下,而被盜汽車追回的概率極低[1].目前可對汽車進行全天不間斷、高精度的智能防盜系統價格不菲,還存在暴露隱私的風險,只有極少部分車主使用,故開發低價且防盜功能完善的高水平智能車載系統具有很重要的意義.移動網絡通信技術的發展,使得對汽車的實時定位監聽等功能的實現成為可能,為研發智能車載系統增添了極大的助力.
項目基于ARM9平臺及嵌入式Linux操作系統搭建了一個嵌入式系統軟硬件平臺,借助QT集成開發環境,在現有智能車載系統的基礎上,研發完善了智能防盜模塊,該模塊集車輛監控、智能警報、車輛追蹤、智能鎖車和用戶注冊登錄等功能于一體.通過調試和測試,完善后的多功能智能車載系統運行效果良好,具備成本低、功耗低、靈活性高、可靠性好、易開發和易擴展等優勢.
項目選用ARM9的友善之臂MINI2440[2]為移植的硬件平臺,其價格低廉并支持多種文件系統.它采用三星生產的S3C2440A為微處理器,主頻400MHz,板載 64M SDRAM,128M NAND FLASH,2M NOR FLASH,32位數據總線,1個100M以太網的RJ-45接口,3個串行口,12M無源晶振,內部實時時鐘,并提供了各類GUI硬件接口,為QT的移植與開發提供了良好的硬件基礎.
采用嵌入式Linux操作系統為軟件平臺.它是一種自由和源碼開放的類Unix操作系統,支持多用戶,多任務,多線程以及多個CPU,提供字符界面和圖形界面.嵌入式Linux既繼承了Internet上無限的開放源代碼資源,又具有支持周邊大量硬件設備,驅動豐富;功能強大的內核,性能高效、穩定、多任務;可移植性好;完善的網絡通信、圖形文件管理機制等優良特性,是移植QT的最佳軟件平臺.
QT是由挪威TrollTech公司研發,是一款支持多平臺的C++圖形用戶界面庫.其模塊化程度高,重用性好,提供了一種信號和槽的對象機制來替代回調機制,具有可查詢和設計的屬性以及強大的事件和事件過濾器,還具有字符國際化,使各個控件之間的協同工作變得十分簡單.QT Creator是全新的跨平臺QT IDE,可單獨使用,也可與QT庫和開發工具組成一套完整的SDK.
智能防盜模塊的硬件平臺主要由主控模塊、GPS數據采集模塊、GPRS通信模塊、LCD模塊等組成.主控模塊選用ARM9的友善之臂MINI2440開發板,處理和協同各個模塊之間的通信,各個模塊通過串口同處理器相連,GPS模塊負責接收衛星信號,GPRS模塊實現信息交互,LCD模塊顯示相關信息.硬件平臺為開發智能防盜模塊奠定了基礎,模塊功能的實現需要軟件來完成,軟件設計的好壞,關系到功能模塊的性能及可靠性.ARM處理器是應用嵌入式系統,其應用軟件的開發屬于跨平臺開發,首先建立交叉編譯環境和啟動系統引導程序,然后將Linux操作系統進行移植,即對內核進行裁剪,配置相應的硬件平臺,重新編譯并下載到硬件平臺,最后開發GPS、GPRS、LCD、串行口等外設的硬件驅動程序和應用程序.這樣即可搭建好所需要的軟硬件平臺.
3.2.1車輛監控功能
車輛監控功能包括實時定位功能和車內實時監控功能,前者由GPS模塊實現,讀取GPS數據信息進行解析,顯示定位信息,后者由USB攝像頭、GPRS通信模塊實現,采用USB攝像頭拍照獲取車內實時場景圖片,發送至服務器和用戶處查看是否異常.
實時定位功能是對GPS數據的讀取、解析以及定位信息的顯示實現的.GPS數據輸出格式采用的是NMEA-0183格式,包括經緯度、速度、時間和磁偏角等字段,為GPS動態導航定位應用提供了充分的信息.首先通過初始化函數Initial實現GPS初始化,再調用函數Receive_GPS來接收GPS數據信息,并將接收到的信息存在GPS_BUF緩沖區中,由于接收到GPS的信息不止一條語句,但我們所關注的經緯度、速度、時間等定位數據均可從“$GPRMC”幀中獲取得到,因此選取“$GPRMC”語句進行定位信息提取.提取定位信息后通過函數GPS_Parse進行解析獲得定位信息利用函數Show_GPS輸出GPS定位信息,最后改寫LCD寄存器,設置參數,配置緩沖區相關參數,進行清屏顯示即可實現汽車實時定位功能.
車內實時監控功能采用USB攝像頭拍照獲取車內實時場景圖片,通過GPRS通信模塊進行圖像數據的讀取,解析和發送實現的.通過函數gprs init()初始化 GPRS模塊,調用 AT+CSQ、AT+CPIN等命令確認當前的網絡和模塊狀態,然后設置APN無線接入點,激活PDP,建立TCP/IP連接,發送車內實時場景圖片至服務器和用戶移動端確認是否異常.
3.2.2智能警報功能
智能警報功能在原有車載系統單一警報功能的基礎上進行了細化拓展,包括碰撞警報、區域警報、劫車警報和車禍警報,并根據不同的警報反饋及時有效地救援措施.通過MINI2440開發板中的1至4號按鍵進行模擬報警,分別是模擬碰撞警報、區域警報、劫車警報和車禍警報,當汽車發生碰撞、越出區域、劫車、車禍時,觸發其中對應的按鍵,就會產生一個中斷信號,根據中斷信號的類型將會執行相應的警報信息,通過GPRS模塊實現信息交互,將相關的警報信息上傳服務器,服務器根據警報信息類型做出不同響應.發生碰撞時發送碰撞警報信息,服務器接收信息后給用戶發送警報信息.汽車越出區域時發送區域警報信息,且根據汽車位置的變化實時發送GPS定位信息,服務器接收信息后給用戶發出汽車越區行駛警告信息,等待用戶反饋,若用戶未及時做出反饋實時電話報警.發生劫車時發送劫車警報信息,并拍照上傳車內實時情況和實時GPS定位信息,服務器接收信息后實時電話報警,并將實時GPS定位信息和車內情況進行保存為后續警方破案提供有利線索.發生車禍時發送車禍警報信息給服務器,請求監控服務器的支援.當警報消除時,車載端應該上傳消除相應警報的信息數據包給服務器清除對應報警狀態.
3.2.3車輛追蹤功能
車輛追蹤功能主要通過實時定位功能和GPRS無線通信模塊實現的.通過實時定位功能可實時定位車輛位置信息,即調用函數Receive_GPS接收GPS數據信息,從“$GPRMC”幀中提取經緯度、速度、時間等定位數據,調用函數GPS_Parse進行解析獲得定位信息,利用函數Show_GPS輸出GPS定位信息實時定位車輛位置信息,然后通過GPRS無線通信模塊調用函數Send_msg_to_server將車輛實時位置信息傳回服務器,服務器接收到實時定位信息后利用函數Server_gps_req對其解析處理并將其顯示于繪制好的電子導航地圖上,從而實時獲知車輛位置進行追蹤定位.
3.2.4智能鎖車功能
智能鎖車功能是在發生盜車、劫車等危險情況用戶端未及時給予反饋時觸發的,觸發的指令是通過函數on_act_suoche_triggered()實現的,服務器接收到鎖車指令時,將以最高權限下達遠程鎖車指令鎖定指定車輛的油路和車門,調用函數server_lockcar_req()實現,當危險情況解除時,用戶端發送取消鎖車的信息到服務器,服務器下達遠程解鎖指令對車輛進行解鎖.
3.2.5用戶注冊登錄功能
用戶注冊登錄功能包括用戶注冊和用戶登錄兩個部分,用戶注冊是未注冊的用戶將車牌號或手機號發送到服務器進行免費注冊,服務器調用lineEdit->text().toStdString()接收用戶發送的帳號和密碼,然后利用 connect_thread->start()、heart_thread->start()、msgdeal_thread->start()語句實現用戶信息注冊,注冊后的用戶信息采用MD5加密算法[6]進行不可逆加密,即使是開發人員也無法獲取用戶信息,很好地保證用戶信息的安全性.該算法被廣泛地應用于注冊登錄認證上,當用戶需要登錄時,對用戶錄入的信息進行MD5哈希運算,然后將運算結果與已存儲好的MD5值進行比對判斷.用戶登錄是已注冊好的用戶向服務器發送帳號和密碼,直接登錄系統享受智能車載系統提供的服務.
智能防盜模塊的圖形化界面采用QT Creator繪制,根據模塊功能需求,制作了服務端、移動端和車載端3個窗口.服務端窗口的菜單欄由監控管理和幫助兩個部分組成,監控管理包括信息顯示、鎖車命令、解鎖命令、系統請求、跟蹤定位等子菜單,幫助項是簡介服務端功能,通過QMenu和QAction實現.窗口布局以左右1:2的比例進行分割,左窗口以1:1的比例進行上下分割,上部分主要顯示監控車牌號和歸屬地,下部分主要顯示車輛監控及安防信息,右窗口以1:2的比例進行上下分割,上部分可以根據輸入的控制車輛號進行車輛控制、救援、刪除和定位,通過pushbutton控件添加4個按鈕事件實現,下部分繪制電子地圖,創建Map實例,初始化地圖設置中心點坐標和地圖級別,添加地圖類型控件,設置地圖顯示的城市為福州即可完成電子地圖的繪制.移動端窗口菜單欄由選項和幫助兩項組成,其中選項的子菜單包括用戶注冊、用戶登錄、鎖車命令、解鎖命令、車輛追蹤、取消追蹤和車輛監控.窗口的布局以1:2比例上下分割,上部分顯示車牌號和歸屬地,下部分顯示電子地圖.車載端窗口菜單欄由菜單和幫助兩項組成,其中菜單的子菜單包括定位、監控、導航、請求救援等.窗口部分顯示目前車輛的位置信息,并在電子地圖中標注呈現.對完善后的智能防盜模塊進行調試和測試,運行效果良好,服務端測試效果如圖1所示.

圖1 服務端測試圖
基于ARM9與QT的多功能智能車載系統研發是在保留原有智能車載系統功能的基礎上,研發具有車輛監控、智能警報、車輛追蹤、智能鎖車和用戶注冊登錄等功能的智能防盜模塊,經過調試和測試,運行效果良好,具備成本低、功耗低、靈活性高、可靠性好、易開發和易擴展等優勢.各種前沿的科學技術正在融入汽車防盜,未來的汽車防盜必將有更新更廣闊的發展.
參考文獻:
〔1〕張巍.基于ARM9的嵌入式汽車導航與防盜系統的設計[D].大連海事大學,2009.
〔2〕霍春寶,吳峰,梁波.基于 ARM9 和 GPRS 的圖像采集與遠程傳輸系統的設計[J].遼寧工業大學學報(自然科學版),2012,32(06):351-353.
〔3〕(美)Robert Love.LINUX 內核設計與實現[M].北京:機械工業出版社,2011.
〔4〕霍亞飛.Qt Creator快速入門(第 2 版)[M].北京:北京航空航天大學出版社,2014.
〔5〕楊敏,等譯.密碼編碼學與網絡安全[M].北京:電子工業出版社,2012.