工控网首页
>

应用设计

>

基于uC/OS-II的Telematics车载终端控制开发

基于uC/OS-II的Telematics车载终端控制开发

2007/4/28 9:56:00
0 引言 Telematics是一种融合了GPS、GIS、车辆技术、数据、通讯、多媒体等技术的远程信息处理系统。它通过有线、无线网络传递语音、图像等数字信息,为车辆提供导航定位、安全防护、远程诊断控制、实时交通信息及车载多媒体等服务。Telematics加速了导航和通讯技术的融合,车载终端也正成为汽车电子的热点,在美、德等国已有较为成熟的应用,如通用的On-Star系统、奔驰的Comand系统等,在我国由于还没有建立完善的实时交通信息采集、发布体系,也还没有出台相应的标准,对Telematics系统总体上还处于认识阶段。 1 车载终端控制器的组成 车载终端是实现Telematics各项服务的平台,它利用GPS设备接收卫星导航电文并送处理器处理,通过GPRS设备接人无线Internet并与远程服务中心建立数据双向通讯,同时实时监控车辆运行状态,及时判断故障并进行远程故障诊断,在用户离开车后,终端机进人防盗监控状态。完整的Telematics车载终端要求有丰富的外部接口、良好的人机界面及相应软件的支持,图1为车载终端的组成原理框图。
图1中Telematics控制单元是车载终端的核心,由微处理器和操作系统组成。GPS和GPRS模组是最基本的组成部分,终端的大部分功能是通过这2部分完成的。在控制单元外围加入GPS和GPRS模块及必要的人机接口即可形成最小Telematics车载终端,它是实现完整Telematics车载终端的基础。本文以MSP430F149为处理器,移植uC/OS-II操作系统,采用GPS、GPRS一体化模块Q2501搭建了一种超低功耗、高性价比的车载终端控制单元。 MSP430F149是TI公司超低功耗FLASH型16bit单片机,具有60K程序存储区和2K数据存储区,集成了12位A/D、温度传感器、比较器、16位定时器等外设,具有2个标准串口,能方便地连接GPS和GPRS2个通道。 Q2501是WAVECOM集900/1800MHzGSM/GPRS和16通道GPS接收于一体的无线模块,它通过ZIF80连接器对外提供丰富的接口,包括2路GSM收发、2路GPS接收、SPI总线、2-wire总线、5×5键盘、音频及GPIO等,GPS数据支持NMEA0183协议,内部集成了TCP/IP协议,模块通过AT命令控制数据通讯。选用一体化模块可缩短开发周期、提高系统可靠性和集成度,其丰富的接口也可降低对单片机资源的要求。图2为MSP430F149控制Q2501的原理图,MSP430F149的2个串口分别与GPS、GSM主串口连接,同时连接必要的控制端,外接人SIM卡,MCU以AT命令控制Q2501的工作。由于MSP430F149的USART0优先级高于USART1,而系统通讯任务的优先级要高于GPS接收任务,所以USART0连接GSM主串口,而USART1连接GPS主串口。
Q2501采用3.4~4.5 V单电源供电(典型值3.8V),同时能为SIM卡提供2.7~3V电源(典型值2.8V),图2中使用到的引脚如下: (1)系统电源端:VBATT; (2)模块控制端:ON/~OFF(激活控制),~RST(用于紧急复位,一般用软件复位); (3)GPS接口:GPS RXD2,GPS TXD2,GPSEN(GPS使能控制); (4)GSM接口:GSMRXD1,GSM TXD1,GSMBBEN(基带激活指示)及6个握手信号端; (5)SIM卡接口:SIMVCC,SIM DATA,SIMRST,SIM CLR,SIM PREN(SIM卡检测端)。 2 uC/OS-II在MSP430F149上的移植 uC/OS-II是一种基于优先级可抢先的多任务硬实时内核,包含了任务调度、时间管理、内存管理和任务通信同步等操作系统的基本功能,但没有提供I/O管理、文件系统、GUI及TCP/IP服务。系统最多可管理64个任务(其中8个系统任务,56个用户任务),中断管理可达255层。uC/OS-II绝大部分代码是用C语言编写的,只有与CPU硬件接口相关部分是用汇编语言编写的,具有很好的可移植性,只要处理器具有堆栈指针、CPU内部寄存器入栈出栈指令、能开关中断并且C编译器支持内嵌汇编即可实现移植。 MSP430F149完全满足这些条件,只是运行uC/OS-II需要一定的RAM区,而MSP430F149只有2K数据存储器,为满足系统要求可扩展外RAM,由于MSP430系列单片机对外部存储器是不统一编址的,要通过定义结构体来记录有效数据在外部RAM中的地址信息。定义结构体如下: typedef struct__ram_struct{ unit32u 0x0;begin_addr unit32u 0x0fff;end_addr }ram_data; 使用IAR C/C++Compiler V3.10编译器,首先为MSP430编写INCLUDES.H主头文件,它使所有.C文件都只包含一个头文件,如下: #include #include #include #include #include #include #include“OS_CPU.H” #include“OS_ORG.H” #include“uCOS_Ⅱ.H” 移植uC/OS-II的主要工作就是修改uC/OS-II内核源码中与CPU有关的函数,包括OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C。经过移植操作系统后的MCU就成为一个嵌入式开发平台,系统的各个功能是在uC/OS-II的管理下完成的。 3 系统软件设计 uC/OS-II是多任务实时操作系统,每个应用程序是一个任务,抢先式操作系统对任务的调度是按优先权的高低进行的,车载终端机各个功能的优先级按其对实时性的要求及重要性依次为系统时钟任务、GPRS通讯任务、GPS导航定位任务、车辆状态检测任务、语音通讯任务、短消息任务、报警任务和液晶显示任务等。应用程序必须写成无限循环的形式,如下: void task(void * pdata) { INT8U err; InitTimer();//可选 For(;;) { //应用程序代码 …… OSTimeDly(1);//可选 } } 系统软件流程如图3所示,首先初始化操作系统,完成必要的软硬件设置,进人多任务调度模式,有事件发生,则通过优先级判优,利用模块程序间的通讯进入任务程序完成相应的操作。
Q2501内嵌了TCP/IP协议,单片机使用AT指令可方便地建立TCP/IP或UDP/IP连接。GPRS网络登陆及点对点链接的建立操作如下: (1)复位Q2501,检验AT指令及SIM卡状态; (2)与GGSN网关(GPRS节点网关)建立无线PPP连接,并获取一个动态IP; (3)打开一个新的Socket,建立一个与远程终端的链接,同时Q2501分配给Socketl372B的累积缓存,用于存放终端发送的数据(只有数据占满预设的缓存才能发送数据,为实时发送可修改累积缓存大小); (4)Q2501发送数据,在结束前将累积缓存中的剩余数据压人协议栈发送,结束后断开连接。 GPS接收的导航电文是一串ASCII码,需要提取其中的有用信息,如时间、经纬度、对地速度、航向角等。Q2501的GPS部分经复位启动后,在GPSTXD2每秒输出一组导航电文,其数据格式可软件设定,本设计设定为NMEA0183协议的GPRMC格式,以下为一组实测数据:$GPRMC,042612,A,3600.1688,N,12007.4119,E,032.5,006.4……分别表示UTC时间为04:26:12(北京时间需时区转换,加8),纬度36°00.1688′,经度120°07.4119′,对地速度32.5节(1节=1852m/h),对地航向6.4°。 4 结束语 实时操作系统是车载终端实现综合导航、无线Internet等多任务管理的基本要求,uC/OS-II结构小巧、可扩展性强,有较大优势。本设计实现了Telematics的基本功能,仅使用了MSP430F149的部分资源,还有很大的扩展空间,配合车内数据采集和交通信息服务系统可组成完整的远程信息处理系统,对改善交通条件和提高交通服务质量具有重要的意义。
投诉建议

评论

查看更多评论
20882

文章

0

口碑

14963045

人气

其他资讯

查看更多

智光节能内蒙古阿拉善左旗瀛海建材余热发电机组首次启动成功

智光电气台州电厂给水泵系统节能改造项目成功投运

智光节能荣登2014年度全国节能服务公司百强榜第五位

索引程序编程凸轮表

奥越信300系列PLC手册