基于CKS32F103 的电动车管家设计*

2021-01-26 00:39浩,键,
电子与封装 2021年1期
关键词:管家串口电动车

常 浩, 张 键, 王 彬

(中科芯集成电路有限公司, 江苏 无锡 214072)

1 引言

近年来电动车因其小巧方便、 节能环保等特点,深受消费者的喜爱,成为了很多人的代步工具[1]。 截至2017 年, 中国两轮电动自行车社会保有量已达到2.5亿辆。 电动车惠及大众的同时,易盗性也一直困扰着广大车主,电动车自身防盗技术弱,销赃快,追赃难,也给警务工作带来了压力[2]。 本文设计了一种车管家系统, 利用先进的物联网通信技术和卫星定位技术,低成本地解决了电动车的定位、防盗、追踪问题,对民众的出行安全、公安的追赃等都起到了很大作用。

2 系统组成结构

电动车管家系统的硬件主要由MCU 主控模块、温度采集模块、电压采样模块、控制器通信模块、窄带物联网(NB-IoT)通信模块、GPS 模块组成,其功能框架如图1 所示。

图1 系统功能框架图

3 硬件设计

3.1 直流电源电路

直流电源部分采用SL3036 芯片将电动车电池电压24~96 V 转化为5 V 电压,5 V 电压再通过LDO 转化为3.3 V 电压,给控制MCU 部分进行供电,直流电源电路如图2 所示。

3.2 MCU 主控

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 电源部分原理图

3.3 GPS 定位电路

GPS 定位电路采用的是瑞士u-blox 公司研发的NEO-M8 芯片, 可用于同时接收GPS、GLONASS、北斗信号[3]。 该接收模块具有功耗低、重量轻、定位速度快、导航精度高等特点。 NEO-M8 系列提供了高灵敏度和低电压供应下的最小反应时间,同时为价格敏感的应用做了优化[4]。

GPS 定位电路如图3 所示。

3.4 NB-IoT 通信电路

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]。

3.5 车辆震动监测

震动电路选用滚珠类震动传感器,传感器内部为金属球的金属导体,常闭的震动传感器在静止水平状态时外部引脚呈现闭合状态,当发生震动时,内部的金属球会相互发生碰撞,从而使外部引出电极发生断开的状态变化。 通过MCU 检测外部高低电平来监测车辆是否发生震动。

4 系统软件设计

4.1 车管家软件流程

车管家软件流程如图5 所示。系统软件初始化后,车管家定时与电动车控制器进行交互,获取电动车电机状况,车管家对电动车电压、温度、震动、故障、报警等状态进行实时监测并定时通过NB-IoT 通信模块上传至云服务器,若出现故障、报警、震动等状况时立即将相关数据上传云服务器。 此外车管家还配有测试模式,测试模式打印数据仅供工厂测试生产用,查看板卡数据输出,方便车管家生产测试管控。

图5 车管家软件流程图

4.2 通信数据帧格式

车管家终端无线通信协议支持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 表示解锁车辆。

4.3 车管家与控制器通信模块

电动车控制器和车管家MCU 采用串口UART3通信,波特率为9600。 电动车运行时,车管家定时通过与控制器串口通讯获取电动车的转速、故障状态(控制器故障、电机霍尔故障、刹车故障)、电动车运行状态(电流、速度)等数据。当MCU 收到服务器的远程锁车/解锁命令时,MCU 按照通讯协议帧格式打包锁车/ 解锁命令给控制器执行相应操作。 MCU 定时与控制器进行串口交互,采用定时器6 产生10 ms 的定时中断,控制器通讯流程如图6 所示。

图6 车管家与控制器通信流程

4.4 NB-IoT 无线通信模块

NB-IoT 无线通信模块通过串口2 与MCU 进行数据交互,波特率为9600。 当车管家需要上传服务器数据时,NB-IoT 无线通讯模块将车管家采集的控制器数据打包成车管家通讯数据帧格式上传至服务器,无线模块接收服务器的远程数据采用的是UART2 串口中断接收。

软件流程如图7 所示。

图7 NB-IoT 无线通信模块

串口中断函数用于接收服务器下发的命令,当车管家接收到APP 服务器下发的锁车/ 解锁等命令后,对收到的命令数据进行校验,校验成功后打包发送给控制器执行命令,并回复服务器响应成功的报文。

5 系统测试

运用上述开发方法完成电动车管家设计,对该车管家系统进行测试,将车管家安装在电动车上,车管家从电动车电池取电, 车管家定时上报电动车位置、车辆状态、故障报警等信息。 测试需配合配套APP 进行,测试APP 界面如图8 所示。 APP 主界面实时显示车管家上传的电动车电量、位置,通过点击锁车和解锁按键,可以实现对绑定的电动车进行远程的关锁和开锁功能。

图8 测试APP 界面

6 结束语

基于CKS32F103 和NB-IoT 通信模块的电动车管家是一款专门为电动车智能管理而设计开发的无线物联网终端,尺寸小,安装方便,内置高性能GPS 和北斗定位模块,宽电压的设计基本适用于市面上大部分电动车。 采用低功耗的窄带物联网技术,适合更多的应用场景。 终端采集的信息实时传输到云端,云端通过APP 把相关信息推送给用户,推动了电动车现代化、智能化的管理。

猜你喜欢
管家串口电动车
电动车有可能没有高档和豪华车
浅谈AB PLC串口跟RFID传感器的通讯应用
郁小文的猪管家
电动车新贵
做自己的小管家
电动车来了 充电桩还会远吗
伤口“小管家”
HAPPY LIFE创意管家型APP
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索