王 姣 高 捷 朱 迪 徐 宇
(1.揚州市職業大學,江蘇 揚州 225009;2.揚州核威碟形彈簧制造有限公司,江蘇 揚州 225000;3.江蘇天河水務設備有限公司,江蘇 揚州 225000)
隨著車聯網技術的發展,很多家用車上已經搭載智能網聯技術,不斷提升用戶的用車體驗,但是,在特種車輛上,搭載智能網聯技術的應用并不多,隨著城市化進程的發展,在城市清掃車等特種車輛上對采集汽車關鍵信息并上傳至云端的需求不斷提升,一方面可以及時獲取特種車輛的相關信息,另一方面根據對應的數據信息可以優化特種車輛的工作,提高其工作效率,因此,本文著重設計搭載在特種車輛上的智能控制網聯魔盒。
1.1 系統結構
現代車輛使用了大量電子技術,如發動機的ECU 控制、防抱死ABS、自動變速器等,這些電子系統不僅依賴于傳感器檢測和控制芯片,而且需要一個高速穩定的通信網絡將各部分組成一個協調運行的整體,這個通信網絡就是依托CAN 總線建立起來的,車輛的狀態信息如發動機轉速、油耗、里程等信息通過CAN 總線傳輸,因此,為獲取車輛運行狀態信息,本項目采用通過OBD 接口監聽CAN 總線消息的方法,并結合其他檢測控制電路,將采集到的信息通過4G 無線網發送到云端服務器,同時也接收云端的消息,實現數據的交互。系統硬件結構組成如圖1 所示。

圖1 硬件結構組成圖
1.2 系統組成
在綜合考慮車載網聯魔盒對控制系統的要求以及通信技術特點的基礎上,本設計的網聯魔盒主要包含一個主控電路、電源電路、CAN 總線接口電路、I/O 接口電路、定位與姿態檢測電路、4G 無線通信接口電路等。
2.1 主控電路設計
(1)主芯片采用STM32F407,主頻達到168MHZ,帶有DSP 和FPU 指令;
(2)通信接口包括6 個USART,3 個SPI,3 個IIC,2 個CAN,1 個SDIO;
(3)2 個12 位DAC,3 個12 位ADC;
(4)17 個16 位和32 位定時器;
(5)1 MB FLASH 和192 KB SRAM,LQFP100 引腳封裝;
(6)考慮到斷電等特殊情況,在外部擴展了一片8 KB 的MB85RS64 鐵電存儲器作為數據備份存儲器,具有讀寫速度快、使用壽命長、性能可靠的特點;
(7)程序下載通過兩線接口SWD 進行。
2.2 電源電路設計
電源電路采用TPS5430DCDC 降壓芯片實現3.8 V 和5 V,具有過流保護和過熱保護功能,工作頻率達到500 KHZ,內部集成了N 溝道MOS 管,轉換效率高,輸出電流3 A,續流二極管采用B340A 肖特基二極管,為抑制電路浪涌,采用壓敏電壓30 V 的MOV 壓敏電阻,為防止異常掉電,采用5.5V1F 的超級電容作為后備電池,系統將數據存儲到芯片中,保證數據的可靠性。
2.3 CAN 總線接口電路設計
由于主控芯片STM32F407 內部已集成了CAN 控制器,所以外部只需連接CAN 收發器ISO1050 即可,這是一種適用于車輛的隔離型CAN 通信的芯片,工作溫度-55~105℃,其具有串線、過壓和接地損耗保護以及過熱關斷功能,通信速率1Mbps,抗干擾能力強,可靠性高。STM32 內部CAN 控制器支持CAN2.0A 和CAN2.0B,具有3 個發送郵箱,發送優先級可配置,兩個具有三級深度的FIFO,以及28 個ID 標識符篩選器組,完全以硬件方式支持11 位和29 位ID 標識符。電路圖如圖2 所示。

圖2 CAN 接口設計
2.4 4G 通信接口設計
4G 通信因具有速度快、性價比好的特點獲得廣泛的應用,支持多種通信協議如TCP、UDP 等,具備多模多頻段工作的能力,為方便用戶和應用系統集成,有的廠商提供了UART 接口,用戶可以使用應用系統的MCU 與模塊連接,實現數據的收發,這樣既可以采用HTTP 協議,也可以采用物聯網常用的MQTT/COAP 等協議,甚至可以自行定義相關的協議,可以適應用戶不同場景下應用的需求。一個4G 通信模塊一般具有以下功能:
(1)HTTP 模式、SMS 短信功能,以及其他的協議功能;
(2)心跳包、注冊包機制,套接字分發;
(3)多路Socket;
(4)AT 指令集。
供應用系統MCU 調用本設計4G 模塊為WH-G405TF,工作電壓3.8 V,采用UART 口和MCU 通信,可設置成透傳模式,非常方便接入云端,具體設計如圖3 所示。采用時間觸發或長度觸發機制發送數據包,即間隔時間超過某個值(默認50 ms)或數據長度超過某值(默認1024)時模塊自動將數據發送至指定的服務器,其初始化過程如下(AT 指令):
(1)設置工作模式為透傳:AT+WKMODE=NET;
(2)使能SOCKETA:AT+SOCKAEN=ON;
(3)設置TCP 協議和遠程服務器地址與端口:AT+SOCKETA=TCP,WWW.USR.COM,2317;
(4)設置SOCKETA 為長鏈接:AT+SOCKASL=LONG;
(5)重啟模塊:AT+Z。
模塊設置好以后,只要串口打入數據包,間隔超過50 ms,模塊就將數據轉發出去。
幀頭(2 字節)+幀長度(2 字節)+功能字符(4 字節)+數據單元(N 字節)+CRC 校驗(2 字節)+幀尾(2 字節)。
主控芯片初始化串口后,將數據按指定格式發給模塊,波特率為115 200bps,8 位數據,無校驗位,啟停各1位,初始化程序如下:
2.5 其他接口
為了獲取車輛的位置和姿態等信息,網聯魔盒還集成了GPS 模塊和6 軸加速度傳感器MPU6050,此外還包括模擬數字量接口,RS485 和232 通信接口,便于和其他車載設備交互,如上裝各類儀表等。由于STM32 具備較強性能,魔盒還可以充當某些設備的控制器作用、清障掃雪設備的控制、路況的檢測報警等,同時由于和遠程服務器連接,既可以發送車輛信息,也可以接受后臺信息,如任務管理、行車路線安排等。具體如圖4 所示。
3.1 總體軟件結構
3.2 CAN 總線與車載J1939 協議
CAN 總線是一種實時高速、抗干擾強、性價比高的通信技術,廣泛應用于工業控制、車輛船舶控制等方面,通信速度達到1Mbps 甚至更高,CAN 總線的特點是廢除了站點地址,而是采用11 位或29 位(CAN2.0B)的ID標識符來構成數據幀,提高了應用的靈活性,同時采用硬件優先級仲裁機制,進一步提高了網絡通信的實時性,這對于安全性要求高的應用特別有意義,也是不同于RS485 等通信總線的一個重要特點。CAN 總線定義了如下5 中數據幀:
(1)數據幀,用于收發雙方傳輸數據。
(2)遠程幀,向指定ID 標識符的站點請求數據的幀。
(3)錯誤幀,當檢測到錯誤時,向總線發出的幀。
(4)過載幀,當接收站點未準備好接收數據時發出的幀。
(5)幀間隔,用于數據幀或遠程幀和前幀分開的幀。
J1939 是一種在卡車和客車中應用的系統應用層協議,它詳細定義了車輛運行時的各種消息規范,更新時間,各種參數定義,具體的參數包括以下幾種:
(1)控制參數,包括發動機轉速、加速減速踏板位置、發動機轉矩等。
(2)驅動系統狀態參數,如發動機和減速器的轉矩模式、加減速狀態、ABS 狀態等。
(3)驅動系統控制參數,如換擋請求、關閉傳動系統動力請求、ABS 開關請求等。
(4)動力系統狀態設置參數,如發動機狀態設置、傳動系統狀態設置、減速器狀態設置等。
(5)消息參數,如驅動軸溫度、進氣歧管溫度、離合器壓力、制動壓力、里程、發動機運行時間等。
(6)消息狀態參數,如剎車開關、離合器開關、換擋開關、制冷系統開關等。
J1939 協議是標準協議得到了很多廠商的支持,國內的東風和重汽底盤均支持該協議,有些還開發了專用的車載OBD 接口,方便了車輛故障診斷和維護。
CAN 總線軟件設計是本項目設計的重要內容之一,CAN 初始化過程和數據傳輸流程如下:
(1)CAN 初始化,250 kbps,允許CAN 中斷。
(2)配置過濾器,由于J1939 協議采用29 位ID 標識符,所以STM32 的CAN 過濾器配置為32 位模式,因為要獲取的J1939 信息較多,且ID 碼差異性較大,為提高效率,使用了兩個過濾器來獲取CAN 總線的信息,下面給出流程如圖6 所示。過濾器1 的設置方法和過濾器0 相同,這樣CAN 總線的消息經過濾器篩選器后進入FIFO 緩沖區,向系統申請中斷。

圖6 CAN 控制器過濾器設置流程
(3)中斷處理及數據解析。
為保證數據接收的可靠性和實時性,防止數據解析發生錯誤,采用了雙緩沖區方法,即當中斷數據填入緩沖區0 時,數據解析程序只能解析緩沖區1 的數據,獲得對應的車輛信息;反之,則解析緩沖區0 的數據,解析好的數據打包通過4G 模塊發送到遠程服務器,同時切換緩沖區。
解析程序根據J1939 協議的定義,將ID 碼對應數據提取出來,打包進4G 模塊的發送緩沖區即可,根據重汽車型提供了10 個ID 碼的對應關系,如表1 所示。

表1 重汽底盤信息采集內容
魔盒測試是通過CAN_H 和CAN_L 總線進行數據采集,一般重型車輛采用的是250 kbps,把魔盒上的CAN_H 和CAN_L 兩根數據線分別插入被測試車輛的OBD 診斷接口的相應位置,通電后就可以測試。
由于油量信息變化緩慢,難以實時觀測,采用多車多次聯機測試,以及通過切斷油量傳感器數據線兩種方法,確定云端接收到的油量信息與車況相一致,說明本項目設計的網聯魔盒符合預期要求,隨著智能網聯控制魔盒在特種車輛上的不斷應用,必定可以推進特種車輛網聯化的發展,促進整個行業的不斷進步,給環衛等行業帶來新的機遇。