王 姣 高 捷 朱 迪 徐 宇
(1.揚州市職業(yè)大學,江蘇 揚州 225009;2.揚州核威碟形彈簧制造有限公司,江蘇 揚州 225000;3.江蘇天河水務設備有限公司,江蘇 揚州 225000)
隨著車聯(lián)網(wǎng)技術的發(fā)展,很多家用車上已經(jīng)搭載智能網(wǎng)聯(lián)技術,不斷提升用戶的用車體驗,但是,在特種車輛上,搭載智能網(wǎng)聯(lián)技術的應用并不多,隨著城市化進程的發(fā)展,在城市清掃車等特種車輛上對采集汽車關鍵信息并上傳至云端的需求不斷提升,一方面可以及時獲取特種車輛的相關信息,另一方面根據(jù)對應的數(shù)據(jù)信息可以優(yōu)化特種車輛的工作,提高其工作效率,因此,本文著重設計搭載在特種車輛上的智能控制網(wǎng)聯(lián)魔盒。
1.1 系統(tǒng)結構
現(xiàn)代車輛使用了大量電子技術,如發(fā)動機的ECU 控制、防抱死ABS、自動變速器等,這些電子系統(tǒng)不僅依賴于傳感器檢測和控制芯片,而且需要一個高速穩(wěn)定的通信網(wǎng)絡將各部分組成一個協(xié)調(diào)運行的整體,這個通信網(wǎng)絡就是依托CAN 總線建立起來的,車輛的狀態(tài)信息如發(fā)動機轉速、油耗、里程等信息通過CAN 總線傳輸,因此,為獲取車輛運行狀態(tài)信息,本項目采用通過OBD 接口監(jiān)聽CAN 總線消息的方法,并結合其他檢測控制電路,將采集到的信息通過4G 無線網(wǎng)發(fā)送到云端服務器,同時也接收云端的消息,實現(xiàn)數(shù)據(jù)的交互。系統(tǒng)硬件結構組成如圖1 所示。
圖1 硬件結構組成圖
1.2 系統(tǒng)組成
在綜合考慮車載網(wǎng)聯(lián)魔盒對控制系統(tǒng)的要求以及通信技術特點的基礎上,本設計的網(wǎng)聯(lián)魔盒主要包含一個主控電路、電源電路、CAN 總線接口電路、I/O 接口電路、定位與姿態(tài)檢測電路、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 鐵電存儲器作為數(shù)據(jù)備份存儲器,具有讀寫速度快、使用壽命長、性能可靠的特點;
(7)程序下載通過兩線接口SWD 進行。
2.2 電源電路設計
電源電路采用TPS5430DCDC 降壓芯片實現(xiàn)3.8 V 和5 V,具有過流保護和過熱保護功能,工作頻率達到500 KHZ,內(nèi)部集成了N 溝道MOS 管,轉換效率高,輸出電流3 A,續(xù)流二極管采用B340A 肖特基二極管,為抑制電路浪涌,采用壓敏電壓30 V 的MOV 壓敏電阻,為防止異常掉電,采用5.5V1F 的超級電容作為后備電池,系統(tǒng)將數(shù)據(jù)存儲到芯片中,保證數(shù)據(jù)的可靠性。
2.3 CAN 總線接口電路設計
由于主控芯片STM32F407 內(nèi)部已集成了CAN 控制器,所以外部只需連接CAN 收發(fā)器ISO1050 即可,這是一種適用于車輛的隔離型CAN 通信的芯片,工作溫度-55~105℃,其具有串線、過壓和接地損耗保護以及過熱關斷功能,通信速率1Mbps,抗干擾能力強,可靠性高。STM32 內(nèi)部CAN 控制器支持CAN2.0A 和CAN2.0B,具有3 個發(fā)送郵箱,發(fā)送優(yōu)先級可配置,兩個具有三級深度的FIFO,以及28 個ID 標識符篩選器組,完全以硬件方式支持11 位和29 位ID 標識符。電路圖如圖2 所示。
圖2 CAN 接口設計
2.4 4G 通信接口設計
4G 通信因具有速度快、性價比好的特點獲得廣泛的應用,支持多種通信協(xié)議如TCP、UDP 等,具備多模多頻段工作的能力,為方便用戶和應用系統(tǒng)集成,有的廠商提供了UART 接口,用戶可以使用應用系統(tǒng)的MCU 與模塊連接,實現(xiàn)數(shù)據(jù)的收發(fā),這樣既可以采用HTTP 協(xié)議,也可以采用物聯(lián)網(wǎng)常用的MQTT/COAP 等協(xié)議,甚至可以自行定義相關的協(xié)議,可以適應用戶不同場景下應用的需求。一個4G 通信模塊一般具有以下功能:
(1)HTTP 模式、SMS 短信功能,以及其他的協(xié)議功能;
(2)心跳包、注冊包機制,套接字分發(fā);
(3)多路Socket;
(4)AT 指令集。
供應用系統(tǒng)MCU 調(diào)用本設計4G 模塊為WH-G405TF,工作電壓3.8 V,采用UART 口和MCU 通信,可設置成透傳模式,非常方便接入云端,具體設計如圖3 所示。采用時間觸發(fā)或長度觸發(fā)機制發(fā)送數(shù)據(jù)包,即間隔時間超過某個值(默認50 ms)或數(shù)據(jù)長度超過某值(默認1024)時模塊自動將數(shù)據(jù)發(fā)送至指定的服務器,其初始化過程如下(AT 指令):
(1)設置工作模式為透傳:AT+WKMODE=NET;
(2)使能SOCKETA:AT+SOCKAEN=ON;
(3)設置TCP 協(xié)議和遠程服務器地址與端口:AT+SOCKETA=TCP,WWW.USR.COM,2317;
(4)設置SOCKETA 為長鏈接:AT+SOCKASL=LONG;
(5)重啟模塊:AT+Z。
模塊設置好以后,只要串口打入數(shù)據(jù)包,間隔超過50 ms,模塊就將數(shù)據(jù)轉發(fā)出去。
幀頭(2 字節(jié))+幀長度(2 字節(jié))+功能字符(4 字節(jié))+數(shù)據(jù)單元(N 字節(jié))+CRC 校驗(2 字節(jié))+幀尾(2 字節(jié))。
主控芯片初始化串口后,將數(shù)據(jù)按指定格式發(fā)給模塊,波特率為115 200bps,8 位數(shù)據(jù),無校驗位,啟停各1位,初始化程序如下:
2.5 其他接口
為了獲取車輛的位置和姿態(tài)等信息,網(wǎng)聯(lián)魔盒還集成了GPS 模塊和6 軸加速度傳感器MPU6050,此外還包括模擬數(shù)字量接口,RS485 和232 通信接口,便于和其他車載設備交互,如上裝各類儀表等。由于STM32 具備較強性能,魔盒還可以充當某些設備的控制器作用、清障掃雪設備的控制、路況的檢測報警等,同時由于和遠程服務器連接,既可以發(fā)送車輛信息,也可以接受后臺信息,如任務管理、行車路線安排等。具體如圖4 所示。
3.1 總體軟件結構
3.2 CAN 總線與車載J1939 協(xié)議
CAN 總線是一種實時高速、抗干擾強、性價比高的通信技術,廣泛應用于工業(yè)控制、車輛船舶控制等方面,通信速度達到1Mbps 甚至更高,CAN 總線的特點是廢除了站點地址,而是采用11 位或29 位(CAN2.0B)的ID標識符來構成數(shù)據(jù)幀,提高了應用的靈活性,同時采用硬件優(yōu)先級仲裁機制,進一步提高了網(wǎng)絡通信的實時性,這對于安全性要求高的應用特別有意義,也是不同于RS485 等通信總線的一個重要特點。CAN 總線定義了如下5 中數(shù)據(jù)幀:
(1)數(shù)據(jù)幀,用于收發(fā)雙方傳輸數(shù)據(jù)。
(2)遠程幀,向指定ID 標識符的站點請求數(shù)據(jù)的幀。
(3)錯誤幀,當檢測到錯誤時,向總線發(fā)出的幀。
(4)過載幀,當接收站點未準備好接收數(shù)據(jù)時發(fā)出的幀。
(5)幀間隔,用于數(shù)據(jù)幀或遠程幀和前幀分開的幀。
J1939 是一種在卡車和客車中應用的系統(tǒng)應用層協(xié)議,它詳細定義了車輛運行時的各種消息規(guī)范,更新時間,各種參數(shù)定義,具體的參數(shù)包括以下幾種:
(1)控制參數(shù),包括發(fā)動機轉速、加速減速踏板位置、發(fā)動機轉矩等。
(2)驅動系統(tǒng)狀態(tài)參數(shù),如發(fā)動機和減速器的轉矩模式、加減速狀態(tài)、ABS 狀態(tài)等。
(3)驅動系統(tǒng)控制參數(shù),如換擋請求、關閉傳動系統(tǒng)動力請求、ABS 開關請求等。
(4)動力系統(tǒng)狀態(tài)設置參數(shù),如發(fā)動機狀態(tài)設置、傳動系統(tǒng)狀態(tài)設置、減速器狀態(tài)設置等。
(5)消息參數(shù),如驅動軸溫度、進氣歧管溫度、離合器壓力、制動壓力、里程、發(fā)動機運行時間等。
(6)消息狀態(tài)參數(shù),如剎車開關、離合器開關、換擋開關、制冷系統(tǒng)開關等。
J1939 協(xié)議是標準協(xié)議得到了很多廠商的支持,國內(nèi)的東風和重汽底盤均支持該協(xié)議,有些還開發(fā)了專用的車載OBD 接口,方便了車輛故障診斷和維護。
CAN 總線軟件設計是本項目設計的重要內(nèi)容之一,CAN 初始化過程和數(shù)據(jù)傳輸流程如下:
(1)CAN 初始化,250 kbps,允許CAN 中斷。
(2)配置過濾器,由于J1939 協(xié)議采用29 位ID 標識符,所以STM32 的CAN 過濾器配置為32 位模式,因為要獲取的J1939 信息較多,且ID 碼差異性較大,為提高效率,使用了兩個過濾器來獲取CAN 總線的信息,下面給出流程如圖6 所示。過濾器1 的設置方法和過濾器0 相同,這樣CAN 總線的消息經(jīng)過濾器篩選器后進入FIFO 緩沖區(qū),向系統(tǒng)申請中斷。
圖6 CAN 控制器過濾器設置流程
(3)中斷處理及數(shù)據(jù)解析。
為保證數(shù)據(jù)接收的可靠性和實時性,防止數(shù)據(jù)解析發(fā)生錯誤,采用了雙緩沖區(qū)方法,即當中斷數(shù)據(jù)填入緩沖區(qū)0 時,數(shù)據(jù)解析程序只能解析緩沖區(qū)1 的數(shù)據(jù),獲得對應的車輛信息;反之,則解析緩沖區(qū)0 的數(shù)據(jù),解析好的數(shù)據(jù)打包通過4G 模塊發(fā)送到遠程服務器,同時切換緩沖區(qū)。
解析程序根據(jù)J1939 協(xié)議的定義,將ID 碼對應數(shù)據(jù)提取出來,打包進4G 模塊的發(fā)送緩沖區(qū)即可,根據(jù)重汽車型提供了10 個ID 碼的對應關系,如表1 所示。
表1 重汽底盤信息采集內(nèi)容
魔盒測試是通過CAN_H 和CAN_L 總線進行數(shù)據(jù)采集,一般重型車輛采用的是250 kbps,把魔盒上的CAN_H 和CAN_L 兩根數(shù)據(jù)線分別插入被測試車輛的OBD 診斷接口的相應位置,通電后就可以測試。
由于油量信息變化緩慢,難以實時觀測,采用多車多次聯(lián)機測試,以及通過切斷油量傳感器數(shù)據(jù)線兩種方法,確定云端接收到的油量信息與車況相一致,說明本項目設計的網(wǎng)聯(lián)魔盒符合預期要求,隨著智能網(wǎng)聯(lián)控制魔盒在特種車輛上的不斷應用,必定可以推進特種車輛網(wǎng)聯(lián)化的發(fā)展,促進整個行業(yè)的不斷進步,給環(huán)衛(wèi)等行業(yè)帶來新的機遇。