唐彬,杨会玲
(1.昆山市工业技术研究院,江苏苏州215347;2.苏州科技学院光电信息技术研究所,江苏苏州215011)
基于STM32的车载定位记录系统设计
唐彬1,杨会玲2
(1.昆山市工业技术研究院,江苏苏州215347;2.苏州科技学院光电信息技术研究所,江苏苏州215011)
通过对北斗/GPS双模、SD卡数据存储、TFT-LCD液晶显示等技术的研究,提出一种基于微控芯片STM32车载定位记录的研究方案。除了给出系统各个模块的硬件设计方案之外,还介绍了软件的流程图设计,从而实现对北斗/GPS双模数据的提取、显示及存储。实验表明:系统的每个模块在上电后都可以进行正常的工作,可广泛的运用于汽车安全领域。
STM32;北斗/GPS;SD卡;车载定位
作为使用数量最多、范围最广泛的现代化交通工具,汽车的出现使得国家的经济得到了迅猛的发展,人们的生活质量也得到了快速的提高。可是汽车数量的猛增除了导致交通的拥挤之外更多的是交通事故的频繁发生,而大多数交通事故因为行驶记录等问题造成责任的无法确定,因此急需一种记录机动车行驶定位的智能装置[1-2]。作为正在组建并可局部运行的全球定位系统,北斗的出现为车载定位领域注入了新的活力。正是源于众多技术的发展,本文设计了一套基于北斗/GPS双模技术的车载定位记录系统,在精确定位车辆行驶位置及速度的同时将数据进行存储与显示,对驾驶员起到一定的约束与监督作用。
作为意法公司研发的一款处理能力强、运行速度快、功耗低的单片机,STM32F103VCT6集成了ARM先进架构的Cortex-M3内核,拥有80个可用的IO管脚,12个通道的DMA控制器以及定时计数等外设功能,被广泛的运用于汽车定位、无线采集、手持终端等领域。文中所设计的车载定位记录系统是通过卫星接收机来获取含有定位信息的码流,通过单片机处理后将数据通过外围电路进行存储与显示,从而达到行驶记录的要求[3]。整个系统主要由北斗/GPS双模部分、液晶显示部分及数据存储部分组成,设计框图如图1所示。
图1 系统整体框图设计
1.1 北斗/GPS双模授时系统硬件设计
UM220-III可自动提供时间,首次定位只有32 s,追踪的灵敏度和讯号的获取高达-160 dBm,即使在微弱讯号的情况下也能进行工作。芯片还具有锁定状态功能,当外部电源忽然断掉时,如果此时VBAT引脚外接一个钮扣电池,卫星的当前状态就会被保存,下一次上电时即可快速锁定,缩短了查找时间。芯片的秒脉冲精度小于20 ns,数据传输则采用波特率为9 600 bps的串行传输方式,接口电路原理图设计如图2所示[4]。
图2 UM220-III接口电路原理图
RF_IN是有源天线接收端口需接3.3 V电压,电感L1、电容C17及C23都是为了防止干扰而起电源滤波作用。PPS是秒脉冲管脚,为系统提供标准的秒脉冲,串联于端口的电阻R7用来限制环路电流。TXD1为发送管脚,输出RMC码流便于单片机接收。
1.2 SD卡硬件电路设计
SD卡也称安全数字内存卡,是一种安全、大容量、高性能的音/视频存储卡,通常具有SPI和SDIO两种通信协议以供选择。由于STM32F103带有SDIO外设接口,所以采用SD卡的专用SDIO协议,与SPI相比,SDIO利用4根数据线进行数据传输,具有更高的传输速率。在SDIO协议中,数据和命令信号分别传输于不同的信号线,这使得在一个系统中可以连接多个SD卡作从机使用,并且这些从机之间共用时钟源与电源线,SD卡内部结构如图3所示。结构包括卡接口控制器(Card Interface Controller)、接口驱动、内部寄存器组和Flash阵列,其中卡接口控制器负责控制整个SD卡工作,主要功能是用于解析指令和返回响应。接口驱动主要用于提供SD卡和其他设备之间相连的硬件驱动,内部寄存器用于存储SD卡的基本信息[5]。
SD卡和MCU的连接非常简单,其中6根信号线与STM32的SDIO口相连,外加1根电源线和1根地线。为了减少本设计软件的开发难度,不使用SD卡的片选信号,需要注意的是信号线需要外加一个上拉电阻来确保低电平数据有效,硬件原理图设计如图4所示。
图3 SD卡内部功能结构图
图4 SD卡的接口电路原理图
1.3 TFT-LCD显示电路设计
TFT-LCD是一款内含薄膜晶体管的液晶显示器,与无源的TN-LCD不同的是,其在屏幕的所有像素上都配备了一个晶体管,可以抑制非选通产生的串扰,从而大大的提升图像的质量[6]。本设计采用的显示屏为同丰光华电子研发的分辨率为320×240的S95417-AAA,16位真彩显示,利用ILI9320作为驱动,具有结构紧凑、操作方便、价格便宜等优点,电路设计如图5所示。
图5 TFT-LCD模块接口原理图
由图5可见,显示模块与外部连接的方式采用16位的并口,由于显示的数据量较大且8位数据方式比16位慢一倍。对于管脚的信号线,片选信号CS与STM32的PC9相连,读写端口分别与PC6、PC7相连,16位的双向数据线与PB[15∶0]相连,复位信号RST直接与STM32的复位端口相连,至于命令/数据标志RS则与PC8相连。
在系统的软件设计中,主要分为系统初始化、北斗/GPS双模信号的接收与解析、车载定位信息的显示及存储四个部分,总体软件框图如图6所示。系统上电后,先初始化内部变量、端口配置、时钟及模块的功能函数,然后利用串口中断接收并处理双模信号的码流,将定位及时间等信息提取出来,最后再对库函数的进行调用从而将数据进行显示与存储。
图6 系统软件框图设计
2.1 北斗/GPS双模信号处理模块
双模接收机所产生的$GPRMC和$GNRMC码流是符合美国国家航海电子协会NMEA 0813标准的码流,与其他形式的码流相比,RMC码流是包含北斗与GPS信息数据量最小的码流,以$GXRMC开始,码流中的status代表当前GPS/BD卫星信号状态,hhmmss和ddmmyy则分别表示当前的时分秒和日月年,设计所需的信息是码流中的UTC时间、当前卫星的定位状态以及经纬度。
$GPRMC/$GNRMC码流都是采用标准的ASCII码形式,因此在程序设计中不仅要提取出时间信息,还得将对应的时间信息变换成BCD码,图7为码流的接收流程图,通过对$、G、P、R、M、C和“,”几个起始信号的判断来提取出后续的信息。
2.2 数据存储及显示模块
系统上电时即对SD卡进行初始化处理,成功后便对扇区0进行读写操作,故对于数据存储最重要的便是初始化操作。SD存储卡在未上电前处于Inactive状态,一旦上电便进入Idle状态,但通常情况下会传递指令CMD0进行存储卡的复位操作,这样SD卡便不会接收任何数据。此时控制器需要传递一个查询指令ACMD41来检测OCR寄存器的最高位,由于从上电到进入复位状态这一期间SD卡至少需要74个时钟周期,所以控制器需要通过ACMD41命令来循环查询上电状态,直到OCR寄存器的最高位变成“1”表示上电完成,控制器从而停止发送ACMD41命令,SD卡进入就绪(Ready)状态。此时主机传递一个CMD2指令请求SD卡返回CID寄存器的值,一旦成功便进入识别(Identification)状态,表明此时SD卡已在STM32主机中待命,最后STM32再传递CMD3来请求SD卡返回一个新的相对地址(RCA),从而完成对SD的初始操作,具体的流程框图如图8所示。
而对于LCD的显示,在进行系统的初始化过后主要就是在中断函数中通过库函数的调用进行数据的显示,具体设计如图8所示。
图7 码流的接收流程图
图8 SD卡初始化框图(a)和LCD显示框图(b)
2.3 实验结果测试
软硬件设计完成后,将编写的代码烧入STM32,所得到的液晶显示如图9所示,当前接收的数据是GPS数据,所显示的有当前的时间信息和经纬度信息,并且这些数据都已经存储到了SD卡中。
图9 数据显示
文中介绍了一种利用STM32作为微控制器进行车载定位记录系统研究的设计方法,在对系统每个模块的原理仔细研究后进行硬件的电路设计与软件的程序编写,并最终完成整个系统的设计,通过调试基本达到了数据采集、实时存储及显示的设计要求。随着我国汽车工业的迅速发展,车载定位记录仪也必将被广泛运用。
[1]翟羽佳.多功能汽车行驶记录仪的设计与实现[D].湖南湘潭:湖南科技大学,2012.
[2]徐扬,张保平,沈庆宏.汽车行驶记录仪无线数据监测系统设计[J].电子测量技术,2012,35(12):112-115.
[3]曲丽娜.基于STM32的嵌入式GPRS网络远程数据采集控制系统设计[J].煤炭技术,2013,32(8):199-201.
[4]杨玉婷.GPS/北斗授时系统软件的设计与实现[D].重庆:重庆大学,2013.
[5]颜秋男,胡毅.STM32F103VB的SD卡在应用编程设计[J].单片机与嵌入式系统,2013,12(2):29-31.
[6]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.
Design of vehicle location and recording system based on STM32
TANG Bin1,YANG Huiling2
(1.Kunshan Industrial Technology Research Institute,Suzhou 215347,China;2.Opto-Electronic Information Technology Institute,SUST,Suzhou 215011,China)
Through the research on technologies such as BD/GPS dual-mode,data storage of the SD card and TFT-LCD liquid crystal display,this paper puts forward a research program of vehicle location and recording system design based on STM32.In addition to the hardware circuit design of each module of the system,the paper also describes the flow chart design of the software,which realizes the extraction,display and data storage of BD/GPS dual-mode.The experiment shows that each part of the system can work normally after powering up, and the system can be widely used in the field of vehicle safety.
STM32;BD/GPS dual-mode;SD card;vehicle location
TN962
B
1672-0679(2015)01-0077-04
(责任编辑:卢文君)
2014-07-14
唐彬(1989-),男,江苏盐城人,硕士,从事智能信息处理的研究。