基于ARM和μC/OS-II的车载定位终端的设计
3 系统软件设计
为实现车载定位终端数据处理的实时性和运行的稳定性,确保电控车工况信息读取任务和GPS卫星数据接收任务能在第一时间内完成,本设计引入了μC/OS—II操作系统。μC/OS—II能够根据任务的优先级动态地切换任务,保证系统对实时性的要求。
如图4所示为系统主函数流程图,系统上电,经过对S3C44BOX的时钟电路以及相关寄存器配置完成对S3C44BOX的初始化操作,之后调用OSInit()函数完成对μC/OS—II的初始化操作,接着系统通过OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8U prio)函数创建车载定位终端的应用任务,最后通过OSStart()函数调用任务调度函数OSCtxSw()开始任务调度。各应用任务间的同步及数据交互通过信号量和消息邮箱来完成。
基于车载定位终端的主要功能,该车载定位终端应用程序主要包括3个任务和2个中断。分别是电控车工况信息读取任务(void VehInf Read_ Task(void*pada)),该任务主要用来接收来自ECU、EGR等车载控制器传来的反应车辆工作状况的信息,如:发动机冷却液温度、发动机润滑油压力、发动机曲轴转速、发动机凸轮轴转速、废气后处理阀门开度等等,由于车载定位终端要同时接收多个车载控制器的数据,为确保车载定位终端能够精确识别各车载控制器上传的数据,此处采用主叫-应答机制实现车载定位终端和各车载控制器间的数据通信;GPS卫星数据处理任务(void SatDatPro_Task(void*pada))则主要对GS-89M-J模块传来的数据帧进行筛选并从筛选出来的数据帧中提取车辆位置的信息;GPRS数据上传任务(void DatSend_Task(void*pada))则主要将车辆工况信息和位置信息按照固定数据帧格式进行打包并通过SIM900以无线方式上传给监控中心;CAN接收中断函数(void_irq CANRev(void))是由CAN收发器触发的,CAN收发器每接收到一帧来自各车载控制器的数据时,中断即被触发,该中断函数主要将接收到数据帧通过消息邮箱传送给电控车工况信息读取任务;串口接收中断函数(void_irq Seri Rev(void))则主要是在GS-89M-J完成卫星信号解算并向S3C44BOX的串口进行数据输出时被触发的。
影响车载定位终端实时性的主要因素是对GPS卫星数据的处理速度,因此车载定位终端中各任务的优先级分配如下表(优先级值越小则对应的优先级越高)。
4 结束语
文中所设计的车载定位终端应用ARM处理器和μC/OS—II操作系统最大限度地保证了终端数据交换的实时性与运行的稳定性。经证实,该车载定位终端在货车、工程车、农用车等领域拥有广阔的应用前景。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码