T8122 Trusted TMR
实时操作系统选用μC/OS-Ⅱ,它是一个免费的源代码公开的系统,提供了实时操作系统所需的基本功能。μC/OS-Ⅱ内核包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能。可以针对不同的硬件优化代码,去掉不需要的变量和不使用的函数,我们所用的实时操作系统需要向下负责管理硬件系统提供的各种资源,向上为各个层次协议软件提供数据通信接口,共享信息以及进程管理等。
3.2系统初始化程序的实现
软件系统初始化首先要定义入口指针,使整个应用程序只有一个入口指针,微处理器复位以后,PC指针将指向设定地址。然后设置各中断的优先级以及开放启动中断。系统初始化时需要设置一张中断向量表,对应各中断向量入口。在控制器访问外部设备之前,需要设置各个外设地址空间,**后完成各串口所连接外设的初始化。
3.3GPS信号定位处理
GPS模块在运行时不断接收来自卫星的星历参数和时间信息,经过所带算法计算求出模块自身的三维位置、方向以及运动速度和时间信息等。我们在应用软件开发时,不需要再考虑如何来提高GPS定位信息精度,因为我们是从GPS模块处接收的数据,这个数据已经经过接收机的处理,已经达到**的精度,如果需要考虑,可以重新选择精度高的GPS模块。
由于GPS的导航卫星信号容易受到外部干扰或屏蔽问题,当GPS芯片收星能力不足时,如当车辆行驶在城市高楼区、地下隧道内、立交桥下时,由于卫星信号受到遮挡而容易暂时“丢失”,而使GPS接收机此时无法给出定位解或定位精度很差。即产生周调,从而失去定位能力。而如果收讯能力过强的话也有副作用,因为卫星发射的GPS信号本身就是电磁波,在地形复杂的环境比如高楼林立的城市中容易发生发射而产生杂波,这些信号会对GPS定位产生不利的干扰,从而产生漂移现象。GPS模块本身的动态滤波系统无法消除这些粗差的影响。目前,关于粗差的有效辨识和剔除,人们在理论上建立了一些具有针对性的实用方法,如抗差Kalman滤波法、自适应滤波法以及粗差探测修复法等。在算法研究上需要解决几个问题:
①确定对GPS数据施加算法的环节和时机;
②确定判定GPS漂移数据的标准;
③确定矫正GPS漂移数据的方法。如下给出了一种实用的矫正的算法:空间距离原则。
GPS模块可以从卫星接收到三种数据:目标速率v、目标位置p、目前时间t。因此,GPS接收模块在固定时间间隔内所移动的距离D=vt,考虑移动目标的实际情况,在时间间隔t内两点间的距离d应该限制在一定范围内,超过了这个范围就认定GPS接收到的数据为周调数据,就应该对其舍去或处理。D和d的比值应该限定在1附近,如果比值超过1一定限度,就有理由确定GPS数据是一个粗差,应予以校正。在使用前面两种GPS数据判定方法后,对断定为奇异点的GPS数据,可以使用3种方法进行平滑处理:
①当gps取回的速度小于一定值时(由于我们是车载,所以我定义的是2公里/小时),则认为静止,将此时所取到的gps值全部舍弃掉。
②对于前一秒速度小于2,后一秒速度也小于2的情况,当前秒无论速度为多少都认为是静止。