基于STM32的双向交互式车载通信系统设计
2017-01-05关晓菡马晓
关晓菡,马晓
(北方工业大学 电子信息工程学院,北京 100144)
基于STM32的双向交互式车载通信系统设计
关晓菡,马晓
(北方工业大学 电子信息工程学院,北京 100144)
提出了一种基于STM32的车载通信系统。该系统由STM32F103ZET6硬件平台和μC/OS-III嵌入式实时操作系统软件平台构成,采用GPS定位技术获取车辆实时位置,CAN总线技术获取ADAS设备的行车预警信息和车辆状态信息,应用3G无线网络传输技术上传行车预警特征信息,形成车辆与服务平台双向交互式通信。实验结果表明,该车载通信系统实现了车辆与网络服务平台间高速、可靠、实时通信,具有较高的实用价值。
车载通信;STM32;μC/OS-III操作系统;CAN总线
引 言
本车载通信系统的设计基于两大背景。一方面,移动互联网的快速发展和各种智能网络设备的普及,为智能汽车的发展奠定了坚实的基础,而互联网汽车作为从智能汽车基础上发展而来的新秀[1],指明了智能汽车的一个发展方向。另一方面,近年来,随着嵌入式技术、传感器技术和控制技术的飞速发展,以预防交通事故的主动安全技术得到了高速发展,ADAS设备的出现大大缓解日趋严重的交通安全问题,车载通信作为ADAS的基础,具有举足轻重的作用[2]。
本文给出了一种基于STM32的车载通信系统设计方案,可以实现车辆实时定位、车辆行驶状态与各项参数的获取、行车记录仪录像状态控制以及网络监控管理等功能。该设计既可以用于车辆安全管理、智能交通和互联网汽车等方面,又可以用于对接ADAS设备。
1 系统框架
车载通信系统结构框图如图1所示,由微控制器、存储模块、ADAS预警信息采集模块、电源模块、3G模块、定位模块和行车记录仪控制模块组成[3]。该车载通信系统实现的是车外网通信,完成车与外界互联网的信息交换,即车与网络监控平台的交互通信;车载通信系统采集车辆实时位置、行车预警信息和车速等各种车辆状态信息,根据车辆的状态信息控制行车记录仪工作状态和截取事件视频,并将这些收集到的车辆实时状态信息通过3G网络传送到网络监控平台。
图1 车载通信系统结构框图
2 系统硬件设计
基于STM32F103ZET6的车载通信系统硬件结构如图2所示。
图2 车载通信系统硬件结构框图
2.1 单片机最小系统
图3 GPS和3G模块连接图
单片机最小系统由STM32F103ZET6单片机、晶振电路、复位电路和JTAG接口电路组成。STM32F103ZET6主频高达72 MHz,具有64 KB的SRAM、512 KB的Flash、2个16位的增强型定时器[4]、2个16位的基本定时器、5个USART总线、1个CAN 2.0总线、供电电压为2.0~3.6 V。系统采用8 MHz和32.768 kHz外部晶振,分别作为系统工作时钟和精准时钟源;采用上电自动复位作为系统的复位电路;JTAG电路用于程序下载和调试。
2.2 数据存储模块
本车载通信系统的数据存储模块包括SDRAM和NAND Flash,实现程序和告警数据信息的存储。外接DDR2 SDROM存储芯片,作为内存用于运行系统程序和用户程序,保证程序运行与足够的内存空间;外接512 MB的NAND Flash存储芯片,用于用户信息和告警数据信息的存储。
2.3 GPS定位模块和3G模块
GPS定位模块完成时间同步和GPS定位信息的获取,通过对外接GPS天线接收的GPS信号进行记录、解调和处理,得到GPS卫星发送的导航报文,最终获得车辆的位置数据。综合考虑,GPS定位模块选择UBLOX公司的NEO-6M模组。3G模块选择中兴的移动通信模块MT3732,MT3732 是一款基于展讯SC8802G平台的TD-SCDMA/GSM 双模无线模块,支持下行 HSDPA2.8 Mbps、上行2.2 Mbps[5]。GPS和3G模块的连接电路图如图3所示。
2.4 预警信息采集模块
STM32F103单片机内部自带一个CAN控制器,能发送和接收标准、扩展数据帧以及远程帧,所以该系统不需要外接CAN控制器。CAN收发器选用TJA1050,该器件是一款带隔离的高速通用CAN收发器芯片,完全兼容ISO11898标准,速率可达到1 Mbps。
2.5 行车记录仪控制模块
在单片机处理器控制下实现行车记录仪供电以及严重告警条件下对行车记录仪工作状态的改变。车辆发生严重告警情况下,通过USART2给行车记录仪发送中断信号,使行车记录仪工作在中断模式,实现行车记录仪对事故视频的裁剪与存储,以便发生事故时能快速定位事故图像。行车记录仪供电电路图如图4所示。
2.6 电源模块设计
面对汽车复杂的电磁兼容环境,设计的电源模块必须具有强大的电磁兼容能力,传统的DC-DC电路无法满足车载环境,因此,改进型的转换电路应运而生。汽车上供电电压为+12 V,系统中各模块需要的有+5 V、+3.3 V、+1.8 V和+1.2 V电压,因此,需要通过电压转换电路将+12 V的电压转换为+5 V、+3.3 V、+1.8 V和+1.2 V电压。在汽车电子模块中,改进型的12~5 V的转换电源电路的结构如图5所示,这部分电路可分为防反接保护、浪涌抑制和低压转换等三个部分[6]。
图4 行车记录仪供电电路图
图5 改进型12~5 V的转换电源电路
防反接保护电路主要由D28构成,该电路是根据汽车电子模块必须具有防电源反接功能而设计的。D28组成的反接保护电路,只适用于电流不大的逻辑电源供电线上。
浪涌抑制电路主要由D29、L1、RS、C155和C3构成,主要用来抑制电源电压上的各种浪涌波形和静电。D29是浪涌电压抑制器,采用大功率TVS管(瞬态抑制二极管)或MOV管(压敏电阻),主要用来吸收能量较大的浪涌脉冲,如ISO7637中的脉冲5b和其他电源线上的正弦脉冲干扰;L1共模电感,限制逻辑电流变化的速度,以提高模块的电磁兼容特性。
低压转换电路主要由LM2676-5、CT3、C2和稳压管D2构成,低压转换电路主要实现12~5 V的转换。电压转换芯片LM2676-5后的稳压管D2,主要是防止模块在睡眠时注入5 V逻辑电平的电流过大,从而引起5 V电压逻辑电平的上升,损坏逻辑芯片;CT3去耦电容,一般采用大容量的电解电容,主要作用类似微型电池,在电压跌落时,起到电量缓冲的作用。
3 系统软件设计
μC/OS-III嵌入式实时多任务操作系统是Micrium公司开发的第三代可固化、可升级、可裁剪、抢占式的系统内核,源码遵循ANSI C标准。该操作系统的任务个数无限制,支持现代实时内核操作系统所期待的大部分功能。本文的软件开发环境是Keil MDK,版本号是V4.7.2。
μC/OS-III可以移植到不同的处理器上,和处理器相关的代码使用汇编和C混合编程来实现。μC/OS-III只要满足如下条件,就可以被移植到STM32平台上:
① 处理器带有支持标准C的工具链,并且需要支持32位数据;
② 中断能够被关闭和打开,能够提供10~1000 Hz的周期中断作为系统时钟节拍源;
③ 处理器有栈指针寄存器,并且其他所有的寄存器能够被存储和恢复;
④ 处理器能够支持足够的寻址空间。
STM32F103单片机使用的是Cortex-M3内核,都能够满足这几个条件,所以μC/OS-III能够移植到STM32F103平台[7]。μC/OS-III操作系统移植时需要修改的模块和文件如表1所列。
3.2 系统应用任务设计
系统应用任务程序是建立在操作系统之上的,控制着系统的运作和行为,在系统能正常启动及相关驱动开发完成后,对相关工作流程进行整理,开发出对应的系统应用任务软件[8]。车载通信系统的系统应用任务主要分为以下5个:3G消息处理任务、GPS数据处理任务、消息上传任务、定时处理任务和行车记录仪交互及关机任务,程序总体流程图如图6所示。
图6 系统总体流程图
需要改动的模块需要改动的文件基本功能μC/OSIII内核相关代码①os_cpu.h②os_cpu_a.asm③os_cpu_c.c①CPU相关配置以及os_cpu_a.asm和os_cpu_c.c两个文件中函数的声明②CPU相关汇编函数定义及声明,如关中断,前导零指令的调用③CPU相关C语言函数定义及声明CPU相关代码①cpu_c.c②cpu_a.asm③cpu.h①CPU相关C语言代码,如中断优先级设置②临界区函数的实现③定义与CPU相关的宏定义BSP(板级支持包)①bsp.c②bsp.h①初始化系统时钟②初始化32位计数器以提供时间戳
3G消息处理任务主要用于对3G模块接收消息的处理,包括短信以及TCP消息;GPS数据处理任务主要是对获取的GPS消息进行处理,包括卫星授时获取准确的实时时间,以及车辆的实时位置;消息上传任务主要完成行车预警消息的上传,包括车辆实时位置、车速和行车预警信息等车辆状态信息;定时处理任务主要用于定时上传车辆的实时位置,以及定时更改LED灯的状态,方便观察设备模块运行状态;行车记录仪交互及关机任务主要用于对行车记录仪设备进行相关的控制,对汽车熄火信号进行监控,以备及时关闭设备。模拟CAN预警软件如图7所示。
图7 模拟CAN预警软件
4 系统测试
为了验证设备的气候和机械载荷,进行高低温可靠性测试、疲劳老化测试和机械振动测试。使用模拟CAN告警软件持续发送告警信息10小时进行老化测试,在-40~80 ℃的环境下进行存储、工作、耐温度循环、热冲击和振动测试。网络服务平台收集到的告警数据如图8所示。
为了测量设备的电磁兼容特性,进行了沿电源线的瞬态传导抗干扰测试(ISO7637-2),按照测试标准分别进行5种脉冲波形的测试。脉冲1是模拟汽车上电感性负载电源断开连接时,其他电源端所产生的瞬态现象,如图9所示,这个脉冲将影响直接与这个电感性负载并联在一起的电子模块工作[9]。实验脉冲4是模拟内燃机的起动电机或者打开大的负载电路通电时,产生的电源电压的降低。
根据测试结果显示,该车载通信系统能完全通过5种脉冲波形的测试,系统各项功能均能得到实现,符合ISO7637的测试标准,达到了预期的设计要求。脉冲4实际波形及参数如图10所示。
图8 网络服务平台收集告警数据
图9 脉冲1实际波形及参数
图10 脉冲4实际波形及参数
结 语
[1] 曹祎遐,李永超.互联网汽车重新定义生活[J].上海信息化,2014(7):20-23.
[2] 张翔.2014年汽车ADAS技术的最新发展[J].汽车
Two-way Interactive Vehicle Communication System Based on STM32
Guan Xiaohan,Ma Xiao
(College of Electronical and Information Engineering,North China University of Technology,Beijing 100144,China)
A kind of vehicle communication system based on STM32 is proposed.The system is consist of STM32F103ZET6 hardware platform and μC/OS-III embedded real-time operating system software platform.The system uses GPS location technology to obtain the real-time location of vehicle,and uses the CAN bus technology to obtain the ADAS devices driving early warning information and the vehicle state information.The 3G wireless network transmission technology is used to transfer the traffic warning feature information,which forms two-way interactive communication between the vehicle and the services platform.The experimental results show that the vehicle communication system can achieve high-speed,reliable and real-time communication between the vehicle and the network service platform,which has high practical value.
vehicle communication;STM32;μC/OS-III operating system;CAN bus
TP315
A