基于1553b总线防读写冲突的数据产生及传输方法

文档序号:10612190阅读:1498来源:国知局
基于1553b总线防读写冲突的数据产生及传输方法
【专利摘要】本发明涉及一种基于1553B总线防读写冲突的数据产生及传输方法,设计了发送查找表指针和两个缓存区,指针所指向的缓存区只能读数据,指针未指向的缓存区只能写数据,从而实现了1553B总线发送双缓存功能;其中,1553B数据包前2个字节为陀螺与加速度计数据的状态值,10ms更新一次,从而实现了陀螺与加速度计数据状态实时检测功能。本发明在数据采集过程中,时刻判断BC端是否有非周期指令,如有,则将当前状态值组成1553B数据包,同时将指针指向该数据包存入的缓存区,便于BC端实时获取陀螺与加速度计的状态。
【专利说明】
基于1553B总线防读写冲突的数据产生及传输方法
技术领域
[0001] 本发明用于处理数字信号、计算、完成1553B通讯。
【背景技术】
[0002] 多功能VDSP信息处理自检测软件(以下简称"软件")是某型号激光捷联惯组中完 成数字信号处理的部件。软件运行在惯组控制电路的DSP中,配合硬件完成陀螺仪和加速度 计的数据采集、数据解算、1553B通讯、状态监测等内容。该软件属于嵌入式软件,汇编语言 编程,执行过程与硬件紧密结合。在以往型号中,对陀螺仪和加速度计信号的采集大多采用 模拟电路的方法,该DSP软件与硬件的应用具有通讯可靠性高、高速、高精度等的特点。

【发明内容】

[0003] 本发明目的是提供一种基于1553B总线防读写冲突的数据产生及传输方法,其解 决了现有激光捷联惯组软件功能多、接口多、通讯协议复杂、时序复杂的技术难点。
[0004] 本发明的技术解决方案是:
[0005] -种基于1553B总线防读写冲突的数据产生及传输方法,包括以下步骤:
[0006] 1)初始化RT端两个数据缓冲区,将发送查找表指针指向子地址8的其中一个缓冲 区;
[0007] 2)检测0.5ms数据采集中断,若无,重复步骤2;若有,进入步骤3;
[0008] 3)读取陀螺、加表计数器的输出脉冲值及状态值,对输出脉冲值进行增量计算和 16阶FIR数字滤波处理;
[0009] 4)将陀螺、加表计数器的输出脉冲值分别与上一次读取数据累加,检测是否有 1 〇ms同步信号中断,若无,返回步骤2;若有,进入步骤5;
[0010] 5)判断BC端是否有非周期指令,如有,将当前状态值组成1553B数据包,再将该数 据包存入子地址2的数据缓存区,将发送查找表指针指向子地址2,BC端根据发送查找表指 针读取RT端准备好的数据包;如无,则进入步骤6;
[0011] 6)将最后一次的状态值和输出脉冲值累加数据组成1553B数据包,写入子地址8中 指针未指向的一个缓冲区,待数据写入完成后将发送查找表指针切换至该缓冲区;所述 1553B数据包中的状态值为前2个字节,输出脉冲值累加数据为后30个字节;
[0012] 7)BC端根据发送查找表指针读取RT端准备好的数据;
[0013] 8)返回步骤2。
[0014] 本发明的优点:
[0015] 1、本发明每〇.5ms采集一次陀螺、加表计数器的输出脉冲值,再将改值与上一次读 取数据累加,每l〇ms发送一次,可实现陀螺和加速度计数据采集解算;
[0016] 2、本发明设计了发送查找表指针和两个缓存区,指针所指向的缓存区只能读数 据,指针未指向的缓存区只能写数据,从而实现了 1553B总线发送双缓存功能,解决了在数 据读写冲突条件下可能发生惯组数据异常的技术问题。
[0017] 3、本发明1553B数据包前2个字节为陀螺与加速度计数据的状态值,10ms更新一 次,从而实现了陀螺与加速度计数据状态实时检测功能。
[0018] 4、本发明在数据采集过程中,时刻判断BC端是否有非周期指令,如有,则将当前状 态值组成1553B数据包,同时将指针指向该数据包存入的缓存区,便于BC端实时获取陀螺与 加速度计的状态。
[0019] 5、本发明通过对陀螺、加表计数器的输出脉冲值进行增量计算,可以计算陀螺的 角速度增量和加速度计的视速度增量,同时校正陀螺加表安装方向与坐标系的误差。
【附图说明】
[0020] 图1中描述了本发明所用软件的系统连接框图。
[0021] 图2中描述了本发明所用软件的环境框图。
[0022]图3为本发明双缓冲流程图。
[0023]图4为本发明所用软件与各模块组成关系图。
[0024]图5为本发明所用软件总流程图。
[0025] 图6为本发明增量计算方法流程图。
【具体实施方式】
[0026] 本发明基于1553B总线防读写冲突的数据产生及传输方法,包括以下步骤:
[0027] 1)初始化RT端两个数据缓冲区,将发送查找表指针指向子地址8的其中一个缓冲 区;
[0028] 将发送查找表(地址0x160到0xl7F,共32个查找表)依次初始化为0x400至0x720, 数据块长度为32个字。针对子地址8设计了发送双缓冲功能。总线控制器中字地址8的数据 块地址为0x500 (0x400+0x20*8 ),设计的双缓冲数据地址为0x260 (总线控制器数据块1地 址)。
[0029] 2)检测0.5ms数据采集中断,若无,执行主循环代码,同时等待0.5ms数据采集中 断,重复步骤2,;若有,进入步骤3;流程图见图5。
[0030] 3)读取寄存器中锁存的陀螺、加表计数器的输出脉冲值及状态值,对输出脉冲值 进行增量计算和16阶FIR数字滤波处理;增量计算方法见图6。
[0031] FIR滤波(16阶),滤波公式和滤波系数见公式1。
[0032]
[0033] 公式中:
[0034] Die-i数据
[0035] h,-滤波系数,具体数值如表1:
[0036]表1 FIR滤波系数
[0037]
[0039] 4)将陀螺、加表滤波后的数据分别与上一次滤波后数据累加,检测是否有10ms同 步信号中断,若无,返回步骤2;若有,进入步骤5;
[0040] 5)判断BC端是否有非周期指令,如有,将当前状态值组成1553B数据包,再将该数 据包存入子地址2的数据缓存区,将发送查找表指针指向子地址2,BC端根据发送查找表指 针读取RT端准备好的数据包;如无,则进入步骤6;
[0041] 6)将后一次的状态值和滤波后累加数据组成1553B数据包,写入子地址8中指针未 指向的一个缓冲区,待数据写入完成后将发送查找表指针切换至该缓冲区;所述1553B数据 包中的状态值为前2个字节,滤波后累加数据为后30个字节;指针切换见图3。
[0042] 7)BC端根据发送查找表指针读取RT端准备好的数据;
[0043] 8)返回步骤2。
[0044] 本发明应用在某型号激光捷联惯组中,成功完成飞行试验多次。软件的故障状态 实时检测功能为后续捷联惯组实现三自技术提供了技术基础;软件的信息化记录功能在使 用过程中提供了极大的便利,保证了产品信息的完整性。
【主权项】
1. 一种基于1553B总线防读写冲突的数据产生及传输方法,其特征在于:包括以下步 骤: 1) 初始化RT端两个数据缓冲区,将发送查找表指针指向子地址8的其中一个缓冲区; 2) 检测0.5ms数据采集中断,若无,重复步骤2;若有,进入步骤3; 3) 读取陀螺、加表计数器的输出脉冲值及状态值,对输出脉冲值进行增量计算和16阶 FIR数字滤波处理; 4) 将陀螺、加表计数器的输出脉冲值分别与上一次读取数据累加,检测是否有10ms同 步信号中断,若无,返回步骤2;若有,进入步骤5; 5) 判断BC端是否有非周期指令,如有,将当前状态值组成1553B数据包,再将该数据包 存入子地址2的数据缓存区,将发送查找表指针指向子地址2,BC端根据发送查找表指针读 取RT端准备好的数据包;如无,则进入步骤6; 6) 将最后一次的状态值和输出脉冲值累加数据组成1553B数据包,写入子地址8中指针 未指向的一个缓冲区,待数据写入完成后将发送查找表指针切换至该缓冲区;所述1553B数 据包中的状态值为前2个字节,输出脉冲值累加数据为后30个字节; 7. BC端根据发送查找表指针读取RT端准备好的数据; 8) 返回步骤2。2. 根据权利要求1所述基于1553B总线防读写冲突的数据产生及传输方法,其特征在 于:所述增量计算的步骤如下: 3.1) 读取上次计数和本次计数,读取陀螺和加速度计的极性; 3.2) 判断本次计数是否大于等于上次计数,如是,则执行步骤3.4,如否,则执行步骤 3.3; 3.3) 判断上次计数与本次计数的差值是否小于等于32768;如是,则执行步骤3.6,如 否,则执行步骤3.5; 3.4) 判断本次计数与上次计数的差值是否小于等于32768;如是,则执行步骤3.8,如 否,则执行步骤3.7; 3.5) 按下式计算脉冲增量,然后执行步骤3.9; 脉冲增量= 65536-上次计数+本次计数; 3.6) 按下式计算脉冲增量,然后执行步骤3.9; 脉冲增量=本次计数-上次计数; 3.7) 按下式计算脉冲增量,然后执行步骤3.9; 脉冲增量= 65536-本次计数+上次计数; 3.8) 按下式计算脉冲增量,然后执行步骤3.9; 脉冲增量=本次计数-上次计数; 3.9) 修改极性,结束本次增量计算。
【文档编号】G05B19/042GK105974837SQ201610285856
【公开日】2016年9月28日
【申请日】2016年4月29日
【发明人】孙雨, 董树冰
【申请人】西安航天精密机电研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1