一种航空总线数据的编码解码方法

文档序号:7658018阅读:771来源:国知局
专利名称:一种航空总线数据的编码解码方法
技术领域
本发明涉及一种编码解码方法。
背景技术
在现代飞机中,航空电子系统的各个子系统间总线信息的传输涉及到数据的编 码解码问题。在数据的传输过程中,源节点需要将原始物理数据编码成总线可传输的 字/字节形式,经过总线传输到达目的节点,目的节点需要将数据解码为原始物理量,便 于用户操作。在现有技术中,由于不同的数据传输总线(如ARINC429总线、155 总线、 RS232/422/485 总线)的接口控制文件(Interface Control Document, I CD)定义形式不 同,其数据的编码解码方法也有所差异,如对于32位数据的传输,要采用32位编码解码制, 而对于16位或8位数据的传输,就要采用16位或8位的编码解码方法,上述方法在其可用 领域内还没有形成统一的标准,这就导致了编码解码方法的通用性差,即对于不同位数的 数据编码解码要采用不同的编码解码方法。另外,在现有的编码解码方法中,数据的符号位 一般只能设在最高位,缺乏灵活性,也不便于数据的整合。

发明内容
为了克服现有技术重用性差和不够灵活的不足,本发明提供一种通用的航空总线 数据编码/解码方法及其实现,可以完成32位(ARINC4^数据)、16位(155 数据)和8 位(RS232/422/485数据)的编码/解码,同时该方法可以把符号位编码在数据的任何位 置,并且可设置多位数据位作为符号位。本发明解决其技术问题所采用的技术方案如下。编码方法包括以下步骤步骤一、确定待编码数据的所有属性。根据ICD可知,这些属性包括编码后数据的 有效值最高位为Dh、最低位为D1、最低位权值为Q、符号矩阵(数据符号矩阵用m_GEZ和m_ LTZ表示,为32位整数,其中符号矩阵m_GEZ恒为0x00000000。若数据为有符号数,且Di位 为符号位,则符号矩阵111_1^2对应的Di位为1,其他位全为0 ;若数据为无符号数,则符号矩 阵m_LTZ为0x00000000)、数据的最大值m_Max、数据的最小值m_Min。步骤二、确定待编码数据的数值。设待编码数据为浮点数V,若ν大于或等于m_ Max,则ν取为m_Max ;若ν小于或等于m_Min,则ν取为m_Min ;若ν在m_Max和m_Min两者 之间,则ν不变。步骤三、设V1、V2、V3、V4、S1为中间变量,且为双字。考虑到计算机系统的舍入误 差,采用以下提供精度算法v为非负数时,将(v/Q+0. 5)取整后赋给vl ;ν为负数时,将(ν/ Q-0. 5)取整后赋给vl。步骤四、先把1L(表示无符号的长整数0x00000001)左移D1位,将得到的结果与 vl相乘再赋给v2,同时计算出编码后数据所占的有效数据位数nBitS,nBitS = Dh-Dfl。进 一步,计算编码后有效数据位的最大值,并将其左移D1位,所得结果为双字Mask,即Mask =((1L < < nBits)-1) < < D1,然后把v2和Mask作与运算,将所得结果赋给v3。
步骤五、符号处理。将m_GEZ与m_LTZ作异或运算,结果赋给双字Sign。当ν是非 负数时,把Sign与m_GEZ作与运算,结果赋给Sl ;当ν是负数时,把Sign与m_LTZ作与运 算,结果赋给Sl。最后将v3与Sl作或运算,并将结果赋给v4。
步骤六、v4数据即为编码结果。解码方法包括以下步骤步骤一、确定待解码数据的所有属性。根据ICD可知,这些属性包括解码后数据的 有效值最高位为Dh、最低位为D1、最低位权值为Q、符号矩阵(数据符号矩阵用m_GEZ和m_ LTZ表示,为32位整数,其中符号矩阵m_GEZ恒为0x00000000。若数据为有符号数,且Di位 为符号位,则符号矩阵111_1^2对应的Di位为1,其他位全为0 ;若数据为无符号数,则符号矩 阵m_LTZ为0x00000000)、数据的最大值m_Max、数据的最小值m_Min。步骤二、计算需要解码的有效数据位数nBits = Dh-D^l0步骤三、计算解码前有效数据位的最大值Mask,即Mask = (II << nBits)-l。步骤四、设待解码的目标码为dw,把dw右移D1位,将所得结果与Mask作与运算, 结果为vl,然后vl乘以Q,并将结果赋给v2。步骤五、确定数据符号。把m_GEZ与m_LTZ作异或运算,其结果赋给双字Sign,然 后把dw与Sign作与运算,结果为Signl。步骤六、若Signl与m_LTZ相等,则把v2取为相反数即ν = _ν2,否则ν = v2。步骤七、ν即为解码结果。本发明的有益效果是在航空总线数据的传输过程中,根据航电系统的ICD定义, 通过对符号矩阵不同数据位的设置,可以对各种数据(包括32位的ARINC429数据、16位的 1553B数据和8位的RS422/485数据)进行编码解码,实现了统一的编码解码方法,在其可 用领域内,可以形成一种编码解码标准,而且本发明可把数据符号位设在数据的任意位置 上,并且可以设置两位数据位作为符号位(在ARINC^9数据中,有的用两位数据位作为符 号位;在155 总线和RS422/485数据中,一般用一位数据位作为符号位),这是传统编码 解码算法中所不能实现的,这一优点也是通过m_GEZ、m_LTZ来实现,即若把符号位设在数 据的Di位,只需把m_LTZ的对应位置为1。例如,若把符号位设在最高位D15,只需把0x8000 赋给m_LTZ即可;若把符号位设D11位,只需把0x0800赋给m_LTZ即可。 下面结合实施例对本发明进一步说明。
具体实施例方式(1) 一个符号位16位155 数据的编码解码实施例如例1和例2所述。方法实施例1 设欲编码的原始数据为ν = 60 (假定ν表示目标点绝对高度,为需要编码的16位 1553B总线数据)。第一步确定编码数据的属性,根据ICD可知,数据编码的最高位为Dh = 14、最低 位为D1 = 0、最低位权值为Q = O. 25、数据的符号矩阵(m_GEZ为0x0000,m_LTZ为0x8000, 即符号位设在最高位D15)、数据的最大值为m_Max = 215_1、最小值为m_Min = _215。第二步因为ν在最大值m_Max与最小值m_Min之间,所以ν不变。
第三步v = 60 > 0,所以vl = v/Q+0. 5,考虑计算机舍入误差,则vl = 2400第四步v2= vl*(lL << 0) = (240)D = (OOFO)h, nBits = 14-0+1 = 15。Mask =0x7FFF, v3 = v2&Mask = OxOOFO0第五步Sign= m_GEZ"m_LTZ = 0x8000。因为 ν > 0,所以 Sl = Sign&m_GEZ = OxOOOOo v4 = v3|Sl = OxOOFO 第六步0x00F0即为编码结果。同理可求出-60的编码结果为OxFFlO。方法实施例2 现对“ OxOOFO,,作解码处理。第一步确定编码数据的属性,此步骤同实施例1的第一步。第二步nBits= 14-0+1 = 15。第三步=Mask= (1L << 15)-1 = 0x7FFF。第四步vl= (dw >> 0)&Mask = (OxOOFO)h = (240)D, v2 = vl*Q = 60。第五步Sign= m_GEZ"m_LTZ = 0x8000。Signl = dw&Sign = 0x0000。第六步因为Signl与m_LTZ不相等,所以ν = v2 = 60。第七步60即为解码结果。 (2)两个符号位32位ARINC4^数据的编码解码实施例如例3和例4所述。方法实施例3 设欲编码的原始数据为ν = 100 (假定ν表示载机的真空速,为需要编码的32位 ARINC429总线数据)。第一步对于编码数据为32位的双字,根据ICD可知,编码数据的属性为数据编 码的最高位为D29、数据编码最低位为Dtl、数据的最低位权值为Q = O. 25、数据的符号矩阵 (m_GEZ = 0x00000000,m_LTZ = OxCOOOOOOO)、数据的最大值为 m_Max = 23°_1、数据的最小 值为 m_Min = -23°。第二步因为ν在最大值与最小值之间,所以ν = 100不变。第三步因为ν > 0,所以vl = v/Q+0. 5,考虑计算机的舍入误差,则vl = 400。第四步V2= vl*(lL < < 0) = 0x00000190,nBits = 29-0+1 = 30。Mask = 0x3FFFFFFF, v3 = v2&Mask = 0x00000190。第五步Sign= m_GEZ"m_LTZ = 0xC0000000。因为 ν > 0,所以 Sl = Sign&m_GEZ =0x00000000ο v4 = v3|Sl = 0x00000190。第六步0x00000190即为编码结果。方法实施例4 现对“0x00000190”作解码处理。第一步确定编码数据的属性,此步骤同实施例3的第一步。第二步nBits= 29-0+1 = 30。第三步Mask= (1L << 30)-1 = 0x3FFFFFFF。第四步vl= (dw >> 0)&Mask = (0x00000190)H = (400)D, v2 = vl*Q = 100。第五步Sign= m_GEZ"m_LTZ = 0xC0000000。Signl = dw&Sign = 0x00000000。第六步因为Signl与m_LTZ不相等,所以ν = v2 = 100。
第七步100即为解码结果。
权利要求
1.一种航空总线数据的编码方法,其特征在于包括下述步骤步骤一、确定待编码数据的所有属性,包括编码后数据的有效值最高位为Dh、最低位为 D1、最低位权值为Q、符号矩阵、数据的最大值111_11 、数据的最小值m_Min ;符号矩阵用m_ GEZ和m_LTZ表示,为32位整数,其中符号矩阵m_GEZ恒为0x00000000,若数据为有符号数, 且Di位为符号位,则符号矩阵m_LTZ对应的Di位为1,其他位全为0 ;若数据为无符号数,则 符号矩阵 m_LTZ 为 0x00000000 ;步骤二、确定待编码数据的数值,设待编码数据为浮点数V,若ν大于或等于m_Max,则 ν取为m_Max ;若ν小于或等于m_Min,则ν取为m_Min ;若ν在m_Max和m_Min两者之间,则 ν不变;步骤三、设vl、v2、v3、v4、Sl为中间变量,且为双字ν为非负数时,将(v/Q+0. 5)取整 后赋给vl ;ν为负数时,将(v/Q-0. 5)取整后赋给vl ;步骤四、先把IL左移D1位,将得到的结果与Vl相乘再赋给v2,同时计算出编码后数据 所占的有效数据位数nBits,nBits = Dh-Dfl ;计算编码后有效数据位的最大值,并将其左 移D1位,所得结果为双字Mask,即Mask = ((1L << nBits) _1) < < D1,然后把v2和Mask 作与运算,将所得结果赋给v3;步骤五、将m_GEZ与m_LTZ作异或运算,结果赋给双字Sign ;当ν是非负数时,把Sign 与m_GEZ作与运算,结果赋给Sl ;当ν是负数时,把Sign与m_LTZ作与运算,结果赋给Sl ; 最后将v3与Sl作或运算,并将结果赋给v4 ; 步骤六、v4数据即为编码结果。
2.一种航空总线数据的解码方法,其特征在于包括下述步骤步骤一、确定待解码数据的所有属性,包括解码后数据的有效值最高位为Dh、最低位为 D1、最低位权值为Q、符号矩阵、数据的最大值111_11皿、数据的最小值m_Min ;数据符号矩阵用 m_GEZ和m_LTZ表示,为32位整数,其中符号矩阵m_GEZ恒为0x00000000 ;若数据为有符号 数,且Di位为符号位,则符号矩阵m_LTZ对应的Di位为1,其他位全为0 ;若数据为无符号 数,则符号矩阵m_LTZ为0x00000000 ;步骤二、计算需要解码的有效数据位数nBits = Dh-D1+!; 步骤三、计算解码前有效数据位的最大值Mask,即Mask = (1L<< nBits)-1 ; 步骤四、设待解码的目标码为dw,把dw右移Dl位,将所得结果与Mask作与运算,结果 为vl,然后vl乘以Q,并将结果赋给v2 ;步骤五、确定数据符号,把m_GEZ与!11_1^2作异或运算,其结果赋给双字Sign,然后把 dw与Sign作与运算,结果为Signl ;步骤六、若Signl与m_LTZ相等,则把v2取为相反数即ν = _v2,否则ν = v2 ; 步骤七、ν即为解码结果。
全文摘要
本发明公开了一种航空总线数据的编码解码方法,依次经过确定编码数据的所有属性、确定编码数值、设置中间数据且依次赋值和符号处理后得到编码结果,依次经过确定待解码数据的所有属性、计算需要解码的有效数据位数、计算解码前有效数据位的最大值、设置待解码的目标码和确定数据符号后得到解码结果。本发明对各种数据实现了统一的编码解码方法,可把数据符号位设在数据的任意位置上,并可以设置两位数据位作为符号位。
文档编号H04L1/00GK102075290SQ20101061029
公开日2011年5月25日 申请日期2010年12月23日 优先权日2010年12月23日
发明者史国庆, 吴勇, 张建东, 朱建民 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1