基于STM32的无线车载监控终端的设计与实现
2012-05-18无锡机电高等职业技术学校
无锡机电高等职业技术学校 方 菁
1.引言
出租车已经成为市民生活的必要交通工具,为了提升出租车驾驶员的服务水平和加强出租车司机的安全,除了由管理单位定期对驾驶员进行文化素质和服务水平进行培训外,从技术手段方面在车内安装车载监控系统对也是个行之有效的办法。车载监控系统由车载终端、传输网络和监控中心组成三层联网式综合监管系统,提供车辆防盗、反劫、行驶路线监控、车内车外视频图像实时无线传输、事故快速响应、呼叫指挥等功能,以解决现有车辆的动态管理问题。
使用GPS可以对车辆位置进行24小时实时跟踪,对历史行驶轨迹进行查询,使用视频录像或者拍照监控,可以远程实时监控车辆,了解车辆的情况。当前市面上使用的车载监控系统大都体积较大、功耗高、价格高,对于出租车等小型车辆的应用不太适合。本文针对市场的这个需求,设计了低功耗多功能的无线监车载终端。
2.系统总体设计
该车载终端的系统总体结构图如图1所示。为了减少系统的复杂性,摄像头只支持拍照功能,GPS为系统提供定位信息;G-Sensor是重力传感器为触发拍照提供触发信号;TF卡作为本地存储介质可以大大减小存储器的体积同时又可以提供大容量存储空间;GPRS模块作为本终端使用的无线传输模块负责和控制中心通讯,既可以把照片数据和位置信息上传到控制中心,又可以从控制中心接收指令,进行远程控制摄像头立刻拍照上传;USB Device接口与电脑通讯,可以把TF卡虚拟成U盘,从而可以方便的通过电脑直接搜索、查看和拷贝本地的备份照片。
3.硬件设计
为了降低系统功耗同时增强系统性能,综合考虑后本系统的MCU选用STM32103VET6理器作为核心控制器,以西门子公司的MC52i模块作为GPRS通信模块,采用Telit(泰利特)的SE880为GPS功能模块用于定位追踪器位置,采用OV7670摄像头用于拍摄照片,使用MCU自带的SDIO接口扩展TF卡存储功能,使用MCU自带的USB Device接口扩展USB接口。
图1 系统结构原理图
图2 MCU模块原理图
图3 MC52i核心电路图
图4 GPS模块电路
3.1 MCU核心电路设计
本设计采用的STM32103VET6为ST公司的增强型Cortex-M3内核系列单片机,最高允许频率可达72M,64K RAM,512K Flash,100引脚LQFP封装,速度可达72MHz,其ROM和RAM也是目前同类型板载主芯片中容量最大的。自带SDIO、USB Device、5个串口、SPI接口和IIC接口,可以满足本系统丰富外设的接口需求,同时系统自带RTC、看门狗等实用模块,RTC可以为系统的数据运行提供时间标记,看门狗可以保证系统稳定运行。系统MCU部分硬件原理图如图2所示。图2中8M晶振为系统主晶振,可以经过MCU内部倍频到72M为其它外设提供时钟频率,32.768K的晶振为RTC模块专用晶振,SW1为单片机提供启动方式选择,当BOOT0为高时,从片内ISP区域开始运行,当BOOT0为低时从应用程序区域开始运行,只要用于前期调试下载应用程序使用。
3.2 MC52i模块电路
MC52i是Cinterion公司(原西门子)生产的内部带有TCP/IP协议栈的模块,可以通过串口对其进行控制。该模块是工业级别,可在-40度和+80度的环境下正常工作,功耗低、可靠性高、性价比高,目前广泛运用于智能公交、无线数传(DTU)、远程无线抄表等系统应用中。MC52i的接口为50芯双排接口,由于系统采用串口方式与MC52i通信并且仅仅GPRS功能,所以系统仅使用串口的RXD0和TXD0与MCU的PA9和PA10相连,本系统的应用接口如图3所示。图3中D16和D17为串口通信指示灯,当MCU和MC52i有数据通信时,通过该指示灯可以监控通信状态是否正常。U10为SIM卡插座。
3.3 GPS接口电路
SE880是一个拥有最大灵敏度的单星座GPS芯片,该芯片可减少首次定位时间(TTFF),冷启动最多可提速200多秒。在它的微耗电准备模式中,SE880可维持50到500μAmps的极低耗电率,而这种准备模式仅需要数秒便能被启动。此外,其工作温度范围广阔,特别是在零下40到85摄氏度的极端环境下,仍具有业内领先的灵敏度及稳定度,这个特性对于低功耗同时要求高精度的定位系统非常重要,这这使得它非常适合应用于本设计。SE880接收器的设计包含了可运作的接收器所需具备的全部组件,仅需要一个产品时基和温度补偿晶体振荡器所需的32千赫兹的晶体,天线、电源和数据连接就可以了。该模块整合星基增强系统(SBAS)的先进设计,可以将卫星采集的星历数据存储到SPI闪存中,这可有效地降低成本并改进终端设备。SE880的应用原理图如图4所示。
GPS模块SE880采用1.8V供电,ON_OFF上拉可以使SE880进入工作状态,以1Hz的脉冲控制ON_OFF可以使GPS进入休眠状态。SYSTEM_ON信号为低电平表示当前GPS模块是处于休眠状态,为高电平表示当前GPS模块是处于工作状态。R32和R33的接法规定了GPS模块和MCU通讯波特率为9600。
图5 系统其它主要模块接口电路图
图6 软件流程框图
3.4 其它部分接口电路
本设计的其它部分主要的接口电路如下图5所示。TF卡接口直接利用了MCU自带的4位SDIO接口扩展,USB也是使用MCU自带的USB device接口扩展,既有利于充分利用MCU的自身资源,又可以降低系统的复杂性和成本。
图5所示的加速度传感器(G-sensor)为I2C接口,直接与MCU的I2C1总线接口相连,由于GPS的工作功耗较大,不宜进行持续工作,加速度传感器可以保证只有车辆移动时才进行GPS定位,减少不必要的功耗,同时也可以为拍照系统提供触发信号。
图5所示的摄像头接口用于和OV7670摄像头模块相连,OV767适合高灵敏度适合低照度、低电压要求的嵌入式应用,最高支持640*480分辨率,可以满足基本的监控需求。
4.软件设计
为了使系统支持USB读取SD卡内容,SD卡的文件格式必须为系统所支持的FAT或者FAT32格式文件系统,考虑到MCU的程序空间,本设计采用了fatfs作为该设计的文件系统。同时为了增强系统的实时性,本设计以UCOS-ii嵌入式实时操作系统实现任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。软件流程图如图6所示。
在上述流程框图中,拍照任务使用OSSemPend函数请求拍照信号量PhotoSem,如果请求成功则立刻拍照并生成GIF格式图片数据,然后执行OSSemPost(TFSaveSem)和OSSemPost(GPRSSendSem),通知TF卡存储任务按照拍照时间信息为文件名保存当前照片,通知GPRS通讯任务进行无线数据发送到控制中心。
加速度传感器任务定时1秒读取一下加速度传感器数据,当检测到车辆移动时,立刻执行OSSemPost(PhotoSem)和OSSemPost(GPSSem),通知拍照任务进行拍照,并通知GPS定位任务执行一次定位。
GPS定位任务通过OSSemPend(GPSSem)函数判断是否执行定位和任务挂起。
GPRS通讯任务通过OSSemPost(GPRSSendSem)执行是否发送照片数据,同时通过读取GPRS模块的接收指令判断是否收到远程控制指令,如果有远程控 制指令则立刻执行,否则把当前任务挂起。当收到远程拍照指令时,立刻执行OSSemPost(PhotoSem)和OSSemPost(GPSSem),进行拍照和定位。
TF卡存储任务通过OSSemPend(TFSave-Sem)函数判断是否执行照片数据存储和任务挂起。
虚拟U盘任务等待通过USB中断触发OSSemPost(USBSem),当接收到USBSem信号量时,挂起TF卡存储任务,进入虚拟U盘任务,从而可以保证TF卡在多个任务操作时不会冲突。
系统监控任务主要用于监控其它各个任务的执行时间是否超时并进行喂狗处理,如果超时则任务系统程序跑飞,此时就会触发看门狗,复位系统。同时该任务还管理实时时钟RTC,为GPRS通讯和TF卡存储任务的运行提供准确可靠的时间。
5.应用和发展前景
该设计把拍照监控、本地大容量存储、虚拟U盘读取、实时定位、无线通讯、加速度传感器控制和STM32单片机的丰富功能集成在一起,使车载监控终端在具有丰富可靠的功能的同时,保持较低功耗、低成本、高实时性的优点。该车载监控终端可以广泛应用于出租车监控领域和其它营运车辆监控领域,具有广阔的市场前景。
[1]冀常鹏.AVR单片机GSM/GPRS应用技术[M].北京:国防工业出版社,2011.
[2]何小卫,王爱华,马跃.基于GPRS的GPS车载终端通信技术研究[J].计算机应用,2008,11:2952-2954.
[3]莫馁,李勇建,许华胜.基于GPS/GPRS的船载导航监控系统设计与实现[J].压电与声光,2009,1:24-26.
[4]ST,data sheet:RM0091 Reference manual stm32105XXX advanced ARM-based 32-bit MCUs.pdf.
[5]Telit,data sheet:Telit_Jupiter_SE880_HW_User_Guide_r0.pdf.