新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的智能车载终端设备系统的设计

基于ARM的智能车载终端设备系统的设计

作者:时间:2013-07-22来源:网络收藏

2.4 无线数据传输模块
无线数据传输模块采用Simcom公司的GSM/双频模块SIM300C,该模块主要为语音传输、短消息和数据业务提供无线接口。SIM3 00C具有独立的语音接口,配合车载终端上的LCD显示屏和操作键盘,可以方便地拨打电话。SIM300C模块与主控制器通过UART1接口进行通信,传输速率设置为115200 bps。模块与控制器间的通信协议是AT命令集,除了串口发送(TXD)、串口接收(RXD)之外还需要一些硬件握手信号,其中DCD信号用来检测GPRS无线数据传输模块是处于数据传送状态还是处于AT命令传送状态,DTR信号用来通知GPRS无线数据传输模块传送丁作是否已经结束。GPRS无线数据传输模块硬件设计原理图如图4所示。

本文引用地址:http://www.eepw.com.cn/article/147996.htm

d.JPG



3 车载终端的软件设计
本系统选用源代码开放的实时操作系统;,下面从;操作系统的移植和用户应用程序的编写两方面介绍系统软件的设计。
3.1 ;操作系统的移植
μC/OS-II的移植实际上就是对与MCU相关的代码进行重写或修改,移植的主要工作是对与处理器有关的3个文件OS CPU.H、OS-CPU.C和OS CPU A.S的编写。
OS_CPU.H:主要包括了数据类型、堆栈入口宽度、堆栈增长方向、开关中断的宏和进行任务切换的宏定义,宏可由typedef或#define来定义。
OS_CPU.C:该文件中用C语言编写了6个与操作系统相关的函数:OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSw Hook()、OSTaskStatHook()、OSTimeTickHook()。其中,OSTaskStkInit()为堆栈初始化函数,必须根据具体的堆栈结构进行编写;OSTaskC reare()和OSTaskCreateExt()通过调用该函数,初始化任务的堆栈结构;后5个函数为钩子函数,必须声明,在移植初期可以为空函数。
OS_CPU_A.S:该文件中需要对处理器的寄存器进行操作,需要修改3个与处理器相关的函数:最高优先级任务调用函数OSgtartHighRdy()、任务切换函数OSCtxSw()、中断任务切换函数OSIntCtxSw()。
3.2 用户应用程序的设计
本系统采用多任务、多进程模式,将各功能应用程序设计为不同的功能模块,加载为多个不同优先级的并发进程。各功能模块优先次序如下:IC刷卡应用程序设为第1优先级,定位信息采集和处理程序设为第2优先级,GPRS无线数据传输设为第3优先级,LCD显示程序设置为第4优先级。
3.2.1 刷卡模块程序设计
ZLG500A读写卡模块与IC卡之间的通信流程如图5所示。

e.JPG


首先,模块上电复位后,请求标准/所有的卡。如果在天线有效范围内有一张以上的卡存在,调用反冲突函数uchar miffsanticoll(uchar Bcnt,uchar idata*_SNR),并取得所选择的卡的唯一序列号。选中卡之后,根据所要访问的卡内存储器位置,使用相应的密钥进行3轮确认。在成功确认后,可以对卡内存储器进行读、写、增值、减值等一系列操作。以上这些步骤可以直接调用周立功公司提供的读写卡模块C51函数库实现。
在主程序中,设置定时器0作为SPI串行接口的看门狗定时器,该定时器被设置成50 ms溢出。数据发送时开定时器中断,若中断之前通信未能完成(ZLG500A在SDATA线上未返回响应信号),而造成该定时器产生中断,则取消本次传输,发送子程序返回SPI_ERR;数据接收时关中断,用软件判断溢出次数,若在500 ms内未收到ZLG500A返回的数据,则退出本次命令的执行,命令返回SPI_ERR。
3.2.2 数据解析及处理
车载终端工作时,模块会源源不断地把接收到的GPS导航定位信息通过串行口输出给微处理器,这些数据信息主要由帧头、帧尾和帧内数据组成。系统所需的GPS数据,如经纬度、时间日期、速度等信息,均包含在“$GPRMC”帧内。“$GPRMC”的帧格式如下:
$GPRMC,024813.640,A,31 58.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
数据接收时,首先通过依次检测“$GPRMC”的ASCII码是否正确。若检测无误,则确认该帧为有效帧,再接收帧内数据并进行解析。然后按照表1的协议封装成UDP数据包,通过GPRS传输到主控中心,主控中心通过软件将车辆的位置实时显示在电子地图上。GPS数据传输协议如表1所列。

f.JPG


3.2.3 GPRS数据传输
由于本系统所用的GPRS模块SIM300C内部嵌入了TCP/IP协议栈,因此只要发送相关AT指令,嵌入式TCP/IP协议就可完成SIM300C接入Internet的工作,实现无线数据传输的功能。
利用AT指令控制SIM300C模块建立无线信道,并进行数据传输的步骤如下:
①AT+CIPCSGP=1,“CMNET” 设置GPRS连接方式。
②AT+CLPORT=“TCP”,“3030” 设置TCP端口号。
③AT+CIPSTART=“TCP”,“主站IP地址”,“端口号” 建立TCP连接,主站的IP地址必须为公网的IP地址,连接成功后返回“CONNECT OK”。
④AT+CIPSEND等待模块返回“>”后,将要发送的数据送入GPRS模块中,然后再发送回车,数据即可发送出去。
若建立连接后长时间没有数据传输,移动网关将会自动关闭连接,重新分配IP地址。所以,为了保证网络的正常连接,采用每2 min发送一个心跳包的方式。

结语
本文提出了一种基于微处理器和μC/OS-II操作系统的智能车载终端设计方案,利用GPS、GPRS和IC卡读写等技术,实现公交刷卡消费和实时定位监控等功能的一体化,将城市中所有的公交车连成一个网络系统,形成一个城市交通物联网的雏形。实验证明,该智能车载终
端具有模块化、功耗低、性能稳定、可扩展等特点。

蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭