楊寶男,劉金東,楊 兵
(西京學院 計算機學院,陜西 西安 710123)
隨著汽車工業的快速發展和汽車保有量迅速增加,現代汽車技術的升級已經進入“車聯網”的智能時代,也就是將車輛融入物聯網和互聯網,使車輛的使用更安全、更經濟、更穩定、更可靠[1-2]。當車輛性能下降和有故障出現時就需要及時、快速、可靠地恢復和排除,由于車輛技術先進和配置高檔,給維修技師帶來了較大困難[3],因此需要在車聯網技術中應用車載智能終端診斷系統。
隨著遠程診斷技術的發展,車輛智能終端診斷系統接口與移動App相結合的模式已經被廣泛應用,但該技術在智能聯網車輛中的應用相對較少。通過移動終端讀取車輛運行參數,實現對車輛運行狀態的故障云診斷,以較低的成本實現傳統智能聯網車輛的功能,降低智能聯網車輛的開發成本,為智能聯網車輛的設計提供新的角度。
針對目前車輛在車輛狀態診斷等方面存在的不足,設計了一款具有車輛故障診斷、在線升級、定位等功能的車輛智能監控系統。該系統包括3部分:車載終端、移動App和云服務器。構建了車輛狀態實時監測網絡系統,設計了車輛終端的總體框架。移動App使用MQTT協議與車載終端和云服務器傳輸信息,遠程實時監控車輛,通過4G網絡下載升級文件,通過CAN總線升級第三方設備。
圖1為車載智能監測系統總體設計,該系統包括3部分:車載終端、移動App和云服務器。車載設備由4G通信卡板與傳感器信息采集板卡組成,兩張板卡通過CAN協議進行通信,這樣的設計是為了提供更大的兼容性,設計單獨的4G通信板卡可以通過CAN 給更多的設備進行升級,每個車載終端都安裝物聯網卡,可以通過4G通信進行車輛的相關參數傳輸,也可以在車輛更換了傳感器,缺少新傳感器的驅動程序無法對新傳感器進行識別時,把更新的固件程序掛載在云服務器上。通過App發送的相關指令對新的固件程序進行在線燒寫,并具有GPS定位的功能。當4G網絡穩定時,車載終端負責通過4G網絡向云服務器發送車輛位置信息、車輛故障信息等。云服務器負責信息的存儲和轉發。車主需要在自己的智能手機上安裝終端助手軟件,這樣就可以“形影不離”,隨時隨地監控車輛狀態。

圖1 車載智能監測系統總體設計
CAN是控制器局域網絡[4],它由BOSCH公司開發,是國際上應用最廣泛的現場總線之一。近年來,因其具有高可靠性和良好的錯誤檢測能力受到重視,被廣泛應用于汽車計算機控制系統和環境溫度惡劣、電磁輻射強及振動大的工業環境。
與具有時鐘信號的同步通信方式,如I2C,SPI等不同,CAN通信是一種僅使用CAN_High和CAN_Low信號線的異步通信,它們共同構成一組差分信號線,以差分信號的形式進行通信。
CAN物理層的形式主要有兩種,本文選用的CAN通信網絡是一種遵循ISO11898標準的高速、短距離“閉環網絡”,它的總線最大長度為40 m,通信速度最高為1 Mbps,總線的每一端都需要一個120 Ω的電阻。
4G物聯網模塊是將硬件配置加載到特定頻段,軟件適用于標準LTE協議,硬件軟件高寬比集成化模組化的一種商品的通稱。它具有通信速度快、網絡帶寬寬、通信方便等特點。硬件配置將射頻和基帶芯片集成在一塊PCB板上,實現無線網絡中基帶信號的接收、發送和解決。4G物聯網模塊通過高速連接網絡將所有終端設備和機器設備運行的業務流程數據信息實時傳輸到業務流程管理中心,按照管理方法監控管理平臺,實時監控智能終端的運行情況,能夠及時檢查機器設備的常見故障。從運營成本、運營規模、服務項目及時性等方面提高效率。
App背后的邏輯完全由Appinventor[5]編寫,其程序流程如圖2所示,在程序編寫過程中需要注意,在切換屏幕的時候MQTT客戶端會跟百度云服務器斷開。
這是因為每個屏幕的MQTT控件的客戶端標識一致,修改后恢復正常。為了避免整個程序一直在查詢是否有客戶端斷開,造成系統響應卡死,此時需要創建一個后臺線程來監控服務器連接情況。
連接到服務器后,App需要訂閱相關主題才能接收到數據。
本設計有3個主題,分別是下位機用來上傳數據,App發布升級請求,下位機用來發布升級完成的信息。
在使用高德地圖定位時,當服務器接收到NEMA格式的GPS數據后,需要將數據處理成高德地圖能識別的格式才能調用高德API接口函數。在高德地圖API的使用過程中,高德開發者控制臺需要對應用的SHA1碼和應用包進行填寫,否則應用無法使用。
3.2.1 通信板卡程序設計
(1)通信板卡的數據通信程序。
另一方面,“一帶一路”背景下的高等教育國際化發展又面臨著一些新的問題。如需進一步深化課程教學的改革,將國際意識和能力的強化滲透到課程教學與科研當中,將“一帶一路”國家和地區的有關情況作為應用情景,培養學生運用知識和能力去分析和處理國際事務的能力。又如建立國際化的師資隊伍,引入國外師資力量,提升國內教師的國際化視野等等。如何“吐故納新,中外結合”將會是我國高等教育改革的一大挑戰。
本次設計使用的是ML302 Cat.1模組中帶有定位功能的GNLM版本。使用衛星定位和通信二合一模組,通常會比使用獨立的通信模組加衛星定位模塊更加節省PCB的版面面積,減少電路的外圍元件。
本次連接服務器采用MQTT協議進行連接。ML302內置MQTT協議的適配,僅僅使用簡單的AT指令就可完成與服務器之間的通信。模組首先要進行開機然后初始化配置。初始化完成后檢查SIM卡駐網情況等,與服務器之間的交互使用緩存模式。
當服務器發布主題或者發送消息時,模組會有提示,檢測到相應的提示后,通信板卡會進行對應操作或者任務。
通信板卡接收到CAN總線上傳輸過來的模擬數據時會自動進行。
下載是收到服務器的通知命令后,與服務器進行一系列的握手認證等操作,然后開始進入數據下發和接收流程,升級包的內容包含包頭、流水號、數據、單包CRC校驗等,數據的大小為1 K。
(2)通信板卡的通過CAN的UDS。
通信板卡使用CAN總線的標準ID進行通信,每次通信傳輸為 8個字節。
通信板卡與數據板卡的信息交互:使用標準 ID,每次傳輸 8個字節,每個字節0~255的范圍,一幀的報文數據就足夠本作品當前演示的采集內容交互。
通信板卡與數據板卡的刷寫升級:參考UDS協議,使用0×10服務切換會話模式。使用0×27安全訪問服務交換種子驗證密鑰。使用0×34,0×36,0×37,0×31等服務完成請求下載、傳輸數據、請求傳輸退出。下載完所有字節后,用CRC校驗本次數據傳輸的完整性。最后使用服務0×11服務重啟完成升級。
3.2.2 數據采集板卡程序設計
數據采集板卡的程序主要是對傳感器的數據進行采集,其程序流程如圖3所示,通過數據采集板卡的STM32單片機的外部中斷對電機驅動產生的脈沖進行采集從而進行計數,電機驅動板VCC接3.3 V,脈沖輸出的頻率為1 kHz左右,根據電機驅動說明書頻率除以4得到電機的轉速。

圖3 數據采集板卡程序流程
溫度傳感器DS18B20是通過1 wire協議進行通信,且時序十分嚴格,由于溫度這種物理量變化緩慢,所以對DS18B20的讀取應該有一定間隔,開啟定時器對DS18B20間隔一定時間進行讀取。
油量跟電壓的模擬是根據通過電位器,ADC對模擬的電量進行采集,在做 ADC采集的時候應該注意選擇采樣時間,如果采樣時間不合理,可能會產生較大的采樣誤差。ADC采樣需要給內部電容較小的電容充電,當外部阻抗(信號調理電路輸入到ADC引腳的輸出阻抗)較大時,電流相對較小,充電時間相對較長。
根據實際判斷,ADC對電位器進行采樣的周期最終選擇為55.5個周期。數據采集完成后,數據采集板通過CAN協議與通信板進行通信。當上位機發送升級指令給數據采集板卡升級的時候,通信板卡下載數據板卡的升級包到flash,通信板卡向數據采集板卡發送相關命令,使數據板卡的MCU跳轉到提前分好的 BOOT區域,在BOOT區域的程序中通過CAN傳輸升級包的數據給單片機另外一塊新的flash區域,傳輸完畢后雙方會比對CRC的校驗結果,當雙方的CRC校驗結果均相等,說明本次數據傳輸完整,可以進行升級。
此時BOOT會清除需要升級的Flag標志位,開始將程序從存儲分區搬運到啟動分區,搬運完成后BOOT會再次進行CRC校驗,確認文件搬運完整后會再次復位,此時BOOT會跳轉到新的程序運行。
本系統設計方案基于車聯網技術,實現智能終端、云端與移動用戶端之間的數據傳輸與控制,具有應用范圍廣、數據傳輸及時、可擴展性等特點。該系統能有效地解決車輛故障無法及時處理的問題,能有效地避免車輛故障造成的危害,讓車主更直接地了解車輛情況。