常 浩, 張 鍵, 王 彬
(中科芯集成電路有限公司, 江蘇 無錫 214072)
近年來電動車因其小巧方便、 節能環保等特點,深受消費者的喜愛,成為了很多人的代步工具[1]。 截至2017 年, 中國兩輪電動自行車社會保有量已達到2.5億輛。 電動車惠及大眾的同時,易盜性也一直困擾著廣大車主,電動車自身防盜技術弱,銷贓快,追贓難,也給警務工作帶來了壓力[2]。 本文設計了一種車管家系統, 利用先進的物聯網通信技術和衛星定位技術,低成本地解決了電動車的定位、防盜、追蹤問題,對民眾的出行安全、公安的追贓等都起到了很大作用。
電動車管家系統的硬件主要由MCU 主控模塊、溫度采集模塊、電壓采樣模塊、控制器通信模塊、窄帶物聯網(NB-IoT)通信模塊、GPS 模塊組成,其功能框架如圖1 所示。

圖1 系統功能框架圖
直流電源部分采用SL3036 芯片將電動車電池電壓24~96 V 轉化為5 V 電壓,5 V 電壓再通過LDO 轉化為3.3 V 電壓,給控制MCU 部分進行供電,直流電源電路如圖2 所示。
MCU 選用中科芯集成電路有限公司CKS32F103C8T6 標準型MCU 系列, 使用高性能的ARM?CortexTM-M3 32 位的RISC 內核, 工作頻率為72 MHz,具有128 kB 的閃存和20 kB 的SRAM。 其中包含2 個12 位ADC、 3 個通用16 位定時器和1 個PWM 定時器、2 個I2C 接口 和SPI 接口、3 個USART接口。

圖2 電源部分原理圖
GPS 定位電路采用的是瑞士u-blox 公司研發的NEO-M8 芯片, 可用于同時接收GPS、GLONASS、北斗信號[3]。 該接收模塊具有功耗低、重量輕、定位速度快、導航精度高等特點。 NEO-M8 系列提供了高靈敏度和低電壓供應下的最小反應時間,同時為價格敏感的應用做了優化[4]。
GPS 定位電路如圖3 所示。
NB-IoT 通信電路采用中怡數寬TPB21-5 和外置天線構成。 TPB21 系列模組應用于NB-IoT, 基于3GPP Rel.13 協議,與各運營商基站進行溝通互聯。 模塊工作電壓為3.1~4.2 V,功耗低,信號強度高。NB-IoT技術支持大量低功耗設備通過蜂窩數據建立廣域連接,更加適合智能家居、共享單車、物流追蹤等場景[5]。NB-IoT 通信模塊原理圖如圖4 所示。

圖4 NB-IoT 通信模塊原理圖
NB-IoT 無線通信模塊通過串口與MCU 進行數據交互,串口選擇UART2。NB-IoT 無線通信模塊從基站或管理平臺接收信號,將接收到的數據或指令傳輸給終端,并將終端回饋的數據或指令回傳給基站或管理平臺[6]。
震動電路選用滾珠類震動傳感器,傳感器內部為金屬球的金屬導體,常閉的震動傳感器在靜止水平狀態時外部引腳呈現閉合狀態,當發生震動時,內部的金屬球會相互發生碰撞,從而使外部引出電極發生斷開的狀態變化。 通過MCU 檢測外部高低電平來監測車輛是否發生震動。
車管家軟件流程如圖5 所示。系統軟件初始化后,車管家定時與電動車控制器進行交互,獲取電動車電機狀況,車管家對電動車電壓、溫度、震動、故障、報警等狀態進行實時監測并定時通過NB-IoT 通信模塊上傳至云服務器,若出現故障、報警、震動等狀況時立即將相關數據上傳云服務器。 此外車管家還配有測試模式,測試模式打印數據僅供工廠測試生產用,查看板卡數據輸出,方便車管家生產測試管控。

圖5 車管家軟件流程圖
車管家終端無線通信協議支持NB-IoT 接入方式, 終端采集的數據需要通過NB-IoT 通信模塊上傳至云服務器端,通信數據幀格式主要分為兩種命令格式,一種為云服務器和終端的通用應答指令,另一種為終端接收云服務器發起的控制指令以及終端主動監測并上報狀態的指令[7]。
通用應答指令包含NB-IoT 平臺應答指令和終端車管家應答指令,數據幀格式如表1 所示。

表1 通用應答數據幀格式
上報及控制指令包含NB-IoT 平臺下發的控制指令、NB-IoT 平臺下發的配置參數指令和終端上報的數據指令,數據格式如表2 所示。

表2 控制及上報指令數據幀格式
數據幀格式中主要數據的意義如下所示。
(1) 消息指令碼表示消息指令的功能, 通過消息指令碼參數決定實現的功能。 每個功能對應唯一的消息指令碼,部分消息指令碼如表3 所示。

表3 部分消息指令碼表
(2) 消息流水號表示數據幀的序號, 每個數據幀的消息流水號依次加1。
(3) 結果表示應答結果,0x01 表示成功,0x05 表示不支持該命令,其他表示失敗。
(4) 數據長度表示數據幀的長度。
(5) 數據包表示數據的內容, 不同的消息指令碼對應不同的功能數據包。 例如當消息碼為平臺控制指令時,數據包0x01 表示鎖車,0x02 表示解鎖車輛。
電動車控制器和車管家MCU 采用串口UART3通信,波特率為9600。 電動車運行時,車管家定時通過與控制器串口通訊獲取電動車的轉速、故障狀態(控制器故障、電機霍爾故障、剎車故障)、電動車運行狀態(電流、速度)等數據。當MCU 收到服務器的遠程鎖車/解鎖命令時,MCU 按照通訊協議幀格式打包鎖車/ 解鎖命令給控制器執行相應操作。 MCU 定時與控制器進行串口交互,采用定時器6 產生10 ms 的定時中斷,控制器通訊流程如圖6 所示。

圖6 車管家與控制器通信流程
NB-IoT 無線通信模塊通過串口2 與MCU 進行數據交互,波特率為9600。 當車管家需要上傳服務器數據時,NB-IoT 無線通訊模塊將車管家采集的控制器數據打包成車管家通訊數據幀格式上傳至服務器,無線模塊接收服務器的遠程數據采用的是UART2 串口中斷接收。
軟件流程如圖7 所示。

圖7 NB-IoT 無線通信模塊
串口中斷函數用于接收服務器下發的命令,當車管家接收到APP 服務器下發的鎖車/ 解鎖等命令后,對收到的命令數據進行校驗,校驗成功后打包發送給控制器執行命令,并回復服務器響應成功的報文。
運用上述開發方法完成電動車管家設計,對該車管家系統進行測試,將車管家安裝在電動車上,車管家從電動車電池取電, 車管家定時上報電動車位置、車輛狀態、故障報警等信息。 測試需配合配套APP 進行,測試APP 界面如圖8 所示。 APP 主界面實時顯示車管家上傳的電動車電量、位置,通過點擊鎖車和解鎖按鍵,可以實現對綁定的電動車進行遠程的關鎖和開鎖功能。

圖8 測試APP 界面
基于CKS32F103 和NB-IoT 通信模塊的電動車管家是一款專門為電動車智能管理而設計開發的無線物聯網終端,尺寸小,安裝方便,內置高性能GPS 和北斗定位模塊,寬電壓的設計基本適用于市面上大部分電動車。 采用低功耗的窄帶物聯網技術,適合更多的應用場景。 終端采集的信息實時傳輸到云端,云端通過APP 把相關信息推送給用戶,推動了電動車現代化、智能化的管理。