基于高性能单片机的数据采集系统的设计及实现
扫描二维码
随时随地手机看文章
陀螺仪是捷联惯性导航系统中很关键的测量元件,敏感着载体的角速率,为姿态计算提供基准坐标系,因此其输出信号性能的好坏在很大程度上决定了捷联惯性导航系统的精度,高性能陀螺仪数据采集系统的设计及实现在捷联惯性导航系统中是必须的。
本文正是针对这一需要成功地设计了一种基于高性能单片机的高精度陀螺数据采集系统。它由现场数据采集单元、双端口RAM缓存单元和通讯监听三部分组成,很好地解决了船用捷联惯性导航系统中数据采集传输与姿态运算的时间冲突矛盾。
1 陀螺仪数据采集整体系统
图1为陀螺仪数据采集系统的设计框图。
船用惯性导航系统中陀螺仪及其驱动线路——力反馈回路通常安放在甲板上的惯性组件箱中,直接敏感船体的摇摆,而用于姿态运算和控制的导航计算机则放在控制柜中,远离惯性组件箱,因此现场采集的陀螺仪信号必须远距离传输到导航计算机中。由于导航计算机需要不断地进行复杂的姿态运算,实时地给出姿态信息,因此若现场数据采集板与导航计算机直接通讯,导航计算机将把大量时间消耗在数据接收上,姿态运算来不及实现。为此陀螺仪数据采集系统中在现场数据采集板与导航计算机之间加了一块数据缓存单元,它主要由双端口RAM和高性能单片机89C51组成。由于舰艇上工作环境很恶劣,各种电磁波和干扰会影响数据的采集和传输,因此在系统设计时必须考虑通讯监听和纠错的措施。
数据采集系统的工作受导航计算机的控制,也可以独立工作。正常时要求采集器在10 ms内完成两个陀螺四路力反馈电流信号的采集、传输发送及通讯监听、纠错等功能,剩下的时间由导航计算机工作,因此整个系统实时性很强,要求数据传输时间越短越好,这样有利于导航计算机进行复杂的滤波计算和陀螺动态漂移补偿计算,并实时地给出姿态更新信息。
2 采集板的设计及实现
数据采集系统中陀螺仪有用信号的频带范围为直流至50 Hz左右。图2为陀螺仪静态时的信号频谱图,由图2可见陀螺仪输出信号中含有135 Hz以及更高频率的噪声,信号调理时必须尽可能地滤除它们,将真实有效信号给反映出来,为此在I/V转换线路后面设计了一个高阶低通滤波器。
采集板中的高性能16位单片机采用微处理器80C196KC[1],它除了提供8X96已包括的一些外设(如时钟发生器、I/O端口、A/D转换、PWM输出、串行口、高速输入输出等)外,还集成了先进的外设事物服务器 PTS(Peripheraltransaction server)。PTS是一种微代码硬件处理器,可以替代CPU高速实现诸如启动A/D转换并读取结果、读取HSIFIFO、装载HSO、串行口的发送与接收等中断服务,从而大大减少CPU响应中断的开销。在数据采集板中80C196KC用来完成A/D转换器的启动和转换数据的读取和处理,并及时发送出去。80C196KC具有数据总线动态配置功能,系统设计时使80C196KC在读程序时置数据总线为8位方式,而读A/D转换结果时置数据总线为16位方式,这样一次读走A/D转换结果。系统中通过开关切换来实现对四路力反馈信号的采集,且利用80C196KC提供的高速输出HSO和内部定时器T1配合形成四路力反馈信号的精确等间隔采样,然后辅以必要的数字平滑滤波。通常发送数据是要花费CPU时间的,而采用80C196KC提供的PTS发送数据可近似认为发送不占CPU的时间。此外数据采集系统中还充分利用了80C196KC提供的内部A/D转换器,来定期采集惯性组件箱内的温度为电子线路温度漂移补偿提供参数。
采集板中的A/D转换器为MAX195[2],16位串行输出,具有自校准功能,转换速率随外界时钟频率而定。系统中将80C196KC的时钟输出端四分频形成1.5 MHz的时钟供MAX195使用。
3 数据通讯监听纠错
由于舰艇上的工作环境很恶劣,有强烈的电磁干扰(惯性组件箱靠近搜索雷达),有可能使远距离传输数据出现差错,采用双绞线或屏蔽电缆线能大大提高通讯的可靠性,但也不能保证不出错。由于数字通讯中一个数码的错误可能导致整个发送数据面目全非,因此在通讯中必须采用校验和纠错技术。若接收方校验出错,则要求发送方重新发送数据,这些工作必须在规定的时间内尽快完成。
现场采集板上的单片机80C196KC是数据发送方,它的工作十分繁忙,且发送控制是通过PTS硬件逻辑实现的,不可能要求它在发送完数据后再接收导航计算机要求的数据重发命令,为此在数据采集系统中增加了数据通讯监听纠错单元,负责通讯有误时的处理。其原理为在采集板80C196KC的附近设置一个监控系统,当80C196KC通过PTS发送陀螺数据至导航计算机时,监控系统进入监控状态,也接收陀螺数据。当导航计算机发现错误数据时,回传要求重发数据,此信号被监控系统接收并负责重发数据,而80C196KC不再负责数据的重发,实时地启动下一次A/D转换。在软件编程时,采取了汉明编码理论[3],通过软件来实现纠错编码[4]。实践表明,采用硬件通讯监听和软件实现纠错编码后,数据传输误码率大大降低,特别是对一些突发性干扰(尖脉冲)尤为明显,大大提高了整机系统的可靠性。
4 双端口RAM缓存
由于导航计算机忙于姿态更新和复杂的滤波计算,不可能直接和采集板上的单片机80C196KC或89C2051进行数据通讯,因此系统中采用双端口 RAM来缓存传输的数据,缓存单元由微处理器89C51进行控制。首先是89C51直接和采集板上的单片机进行数据通讯,并负责通讯传输过程中可能发生的误码的处理,然后将接收到的数据放入双端口RAM,这样导航计算机只需从双端口RAM的另一侧数据线上读走数据,减轻了导航计算机的负担,提高了惯性系统的可靠性。
双端口RAM缓存单元不仅暂时存贮陀螺仪的信息,实际应用时还暂存加速度计的信息,此外还由89C51进行陀螺标度因子的计算来完成导航计算机的部分工作。
双端口RAM在实际操作时会发生数据冲突,即双端口RAM两侧的CPU同时对同一个地址单元进行写操作,这种情况是不允许的。有三种解决争用的方案:片内硬件判优方案、中断方案和令牌传替方案。在本系统中,利用双端口RAM(IDT7130/LA55P)上两个特殊的存贮单元3FFH和3FEH(16 进制)产生中断信号供两侧计算机使用[5]。
5 数据采集系统的软件和抗干扰
在数据采集系统中,软件可分为三个模块,分布在三个单片机中。(1)数据采集转换启动模块,它包括对16位A/D转换器的自校准编程,采集数据的预处理处理和PTS发送等功能;(2)通讯监听纠错模块,完成通讯过程中数据的发送和接收编程,汉明码的软件实施等;(3)数据缓冲单元中89C51的编程,主要完成通讯数据的接收和陀螺标度因子的计算以及发布导航计算机的控制命令等工作。
数据采集系统的抗干扰主要从硬件和软件上着手,除了上面介绍的措施外,系统中还采取了多种方法,如对程序和电源进行监视,以实现系统失控防护以及掉电复位和掉电操作的控制。对软件运行中可能出现的“飞程序”和程序 “死循环”采取了监控定时器和中断互检技术。此外良好的地平面技术、合理的系统布局都大大提高了系统的抗干扰能力。图3给出该数据采集系统测试陀螺仪静态时的数据曲线。
Vave=0.003 377 6 V
Vrms=1.013833e-004 V
Vmax=0.003 631 6 V
Vmin=0.003 106 6 V
参考文献
1 孙涵芳.Intel 16位单片机.北京:北京航空航天大学出版社,1995.144~171
2 MAXIM 1996 New Release Data Book Volume V7.93~7.117
3 杨 爵,等.实用纠错编码.北京:中国铁道出版社,1988.22~34
4 吴延海.用软件实现纠错编码.电子技术应用,1997,5:33~35
5 朱欣华.多机系统中双口RAM的构成方法及应用.测控技术,1996,2:25~28