- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于USB接口的激光陀螺惯导系统数据通讯
摘要:为了提高激光陀螺捷联惯性导航系统在强振动条件下的精度,需要将惯性仪表在振动环境下的输出数据高速采集并保存下来进行离线仿真。通过CY7C68013A芯片在导航计算机外围扩展高速的USB接口,实时采集惯导系统输出的各项性能指标数据,并将此类数据保存至外围PC机,实现了导航计算机和PC机之间的高速通讯。通过设立圆形缓冲区,解决了通讯过程中的丢帧问题。经过近千小时测试,所建采集数据装置可准确采集导航计算机数据并实时存储,结果表明该装置的可靠性与稳定性,为分析惯导系统测量精度奠定了基础。
关键词:惯性导航;激光陀螺;通讯;USB接口
激光陀螺作为捷联惯性导航系统的核心器件,其性能远优越于传统的机电陀螺,已广泛应用于海、陆、空、天等军用和民用导航领域。
在激光陀螺捷联惯导系统中,惯性仪表(激光陀螺和加速度计)直接“捆绑”在载体上,所承受的力学环境要比平台恶劣。在某些军用环境所要求承受的强烈振动条件下,由于惯性组合体在力和运动的激励下产生多项误差,系统姿态和位置误差增长较快。研究表明,这些误差项有一部分具有较好的补偿性,可以通过误差补偿减小或消除部分误差,从而提高系统在强振动下的精度。这就需要将惯性仪表在振动环境下的输出数据高速采集并保存下来,然后在PC机上进行离线仿真以确定和分离各项误差系数。由于数据量庞大,无法直接存储在导航计算机中:例如以8 kHz对惯性仪表输出进行采样,每秒的数据量约为200 K字节。而原有捷联惯导系统采用RS422接口与外部通讯,其最大波特率为1 M。不足以将高速数据传送给PC机保存下来。因此,有必要在导航计算机外围扩展更高速的USB接口,以实现导航计算机和PC机之间的高速通讯。USB接口(Universal Serial Bus)是一种通用的高速串行通讯接口。USB2.0理论传输速度可达到480 Mb/s,可以很好地解决数据在惯导系统与PC机之间的高速互传问题。
1 激光陀螺捷联惯导系统的USB接口设计
1.1 USB接口芯片CY7C68013A
CY7C68013A是CYPRESS公司最新推出的USB2.O控制器,它既负责USB事务处理也兼具微处理器的控制功能,还可作为USB外部芯片的主控芯片,其小巧的体积及较高的性价比使得该芯片在各种USB设备上得到了广泛的应用。该芯片包括带16KB片上RAM的高速8051单片机、4KBFIFO存储器以及通用可编程接口(GPIF)、串行接口引擎(SIE)和USB2.0收发器,6条可编程控制输出线,9条地址输出线和6条通用的准备输入线。数据线宽度可设为8位也可设为16位,方便与不同的CPU接口。图1是CY7C68013A的内部结构功能框图。
由于CY7C68013A硬件逻辑并不复杂,加上可以充分利用FPGA的灵活性,在导航计算机外围扩展CY7C68013A的线路板设计工作相对简单,将CY7C68013A的总线和控制信号与DSP导航计算机的FPGA相应引脚正确相连即可。
USB接口的软件设计要复杂一些,主要是编写CY7C68013A自身的固件程序。
[p]
1.2 CY7C68013A的固件程序设计
CY7C68013A的固件程序主要用于USB芯片的端点配置、频率设置、数据宽度、可编程标志定义、中断定义及特定功能的8051程序编写等。固件程序主要完成如图2所示的任务流程。
在上述固件程序当中,CY7C68013A的初始化子程序TD_Init()的开发按照以下步骤进行:按图3中的规则配置端点;使CY7C68013A工作在SLAVE FIFO模式,选择BULK传输,使用3个端点EP2、EP4和EP6,全部采用双缓冲方式;3个端点FIFO标志分别定义为:FLGA为EP2的4字节接收可编程标志,FIGB为EP6的满标志,FLGC为EP2的空标志;数据宽度设为16位。
1.3 丢帧问题及解决措施
在导航计算机与PC机间通过USB接口进行了双向高速通讯测试。测试方法如下:PC机向导航计算机传输一个数据包,导航计算机接收后回传,PC机接收后进行正确性校验、传输、回传和校验过程循环进行。测试中发现偶尔有丢帧现象出现。尝试改变上位机中数据采集与后台实时写内存线程的优先级和改变CY7C68013A的端点大小及缓冲级别(如三缓冲、四缓冲)来解决这个问题,但是丢帧现象依然存在。
经过较长时间的分析与验证,找到了问题所在:PC机中运行的Windows操作系统是一个多任务的操作系统,同时运行着多个进程,系统在给每个进程分配时间片时也是有一定的优先级的,优先级高的进程占用时间片较多,如果PC机在执行某些其他进程时占用时间超过了一定的限度,就可能导致该读出的数据没有及时读出,而下一帧数据又已送到缓冲区,覆盖前一帧数据,从而造成丢帧。
解决丢帧的办法是在DSP的内存中设置一个圆形缓冲区,如果发现IN型端点的FIFO已满(说明PC机未及时读走FIFO中数据),则将本帧数据存入圆形缓冲区里,直到FIFO完全为空。
圆形缓冲区的结构如图4所示。
在图4中,sptr为写入数据指针,dptr为发送数据指针。整个圆形缓冲区的大小设置为256 K字(32位)。若按8 K的数据存入速率,可以保存8 s数据。在PC机不能及时读取IN端点FIFO数据的情况下,这个圆形缓冲区可以起到很好的缓冲作用。 [p]
在程序执行的初始时刻,设置指针sptr等于dptr。当IN端点FIFO满时,DSP将数据按指针sptr存入圆形缓冲区,sptr随之递增,而dptr保持不变。当IN端点FIFO空时,DSP仍将数据按指针sptr存入圆形缓冲区,sptr随之加1。但此时将从dptr指针处发送两帧数据到FIFO中,这种dptr追赶sptr的机制,将保证圆形缓冲区不出现溢出现象:即不会出现sptr超过dptr一圈以上的情况。
1.4 通讯系统软件整体设计
遵循软件设计中尽量较少使用中断的原则,这里只使用1个4 K中断,其他三路信号都采用查询方式,中断分配如图5所示。
图6为主程序流程。USB从管道0接收PC机发来的命令,命令写入EP2端点中,此时在INT7管脚上产生USB中断。DSP通过查询INT7中断,将EP2中的命令及数据读出,对命令进行解析,并执行相应的指令工作。非周期指令执行完后,将接收数据写入EP4端点,PC机从管道1中将数据取走;周期指令执行完后,将接收数据写入EP6端点,PC机从管道2中将数据取走。
图7中的4 K中断流程主要完成陀螺和加速度计脉冲及温度数据的采集工作,并向EP6端点写入。
2 通讯效果测试
将激光陀螺惯性导航系统固定于振动模拟台,按照军用环境的要求进行了近千小时的振动实验。实验过程中导航计算机高速采集惯性仪表在振动环境下的输出数据,并通过USB接口传输给PC机并保存下来。
当圆形缓冲区的两个指针各自达到最大位置后将从0地址重新开始,长时间双向通讯的测试结果表明:将采用上述方法后的输出数据与串口输出数据进行比对,发现无丢帧现象产生。在导航计算机上进行离线仿真以确定和分离各项误差系数,通过实时误差补偿减小了部分误差,从而提高了系统在强振动下的精度。当然,PC机在与导航计算机的数据传输过程中,建议尽量减少运行的任务数量,特别是占用CPU时间较多的任务,如杀毒、音频视频解码等。
3 结论
本文将基于CY7C68013A的USB接口技术应用于惯导系统数据通信,创新性的设立圆形缓冲区解决了USB接口数据传输过程中的丢帧问题。近千小时测试结果表明:上述USB接口通讯装置可实现导航计算机和PC机间高速实时数据传输且期间无丢帧现象发生,表明该装置具有良好的稳定性与可靠性。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:数字式音响控制器的原理及设计
下一篇:基于FPGA的多路
像采集系统的软件设计