热度 10| ||
GJB 5186.1-2003 5.2.2.2.1条要求BT向UUT发送基于指令字各位所有可能组合的各种消息,以验证被试RT对各种可能指令组合的响应情况。
一个1553B总线指令字由16位二进制数构成,所有可能的组合共65536种,除了规范中自本测试项剔除并单独测试的方式指令(共计52个指令字组合)外,本测试项目须测试65536 – 52 = 65484个指令字的组合。
GJB 5186.1-2003要求的测试流程:
Ø S1:BT向UUT发一有效、合法、非广播、非方式码的指令;
Ø S2:BT向UUT发一组合可能形成的指令;
Ø S3:BT向UUT发一“发送上一指令字”的方式指令。
测试过程中,BT依据UUT的响应,遵照GJB 5186.1-2003本测试项各判据给出测试结果。本项测试成功完成的前提条件是BT在S2步骤发出的消息本身是满足GJB 289A-97规范要求的,从实际的GJB 5186.1-2003测试设备的设计实施来看,有一处易被RT设计者和BT设计者忽略的地方:本项测试包括了GJB 289A-97 表1(方式代码的分配)中备用方式指令的发送,而备用方式代码在GJB 289A-97中只有极为简单的一句描述:“这些方式代码留作今后使用”。GJB/Z 209-2002在附录A对GJB 289A-97的4.3.3.5.1.7.17条补充说明道:“每种类型的方式代码(带数据字及不带数据字)都有几个不使用的方式代码,它们被保留为将来使用,在任何遵守本标准的系统中都不应使用”。
对于这种简单的保留应用,设计者容易忽略,例如,GJB 5186.1-2003的BT的设计者,很容易将带数据字的备用方式指令中要求的一个数据字忽略,而只发出指令字,不紧跟要求的数据字,并分别引用GJB 5186.1-2003 5.2.2.2.1条判据b)、e)对RT的响应作出判断。
依据GJB 289A-97对非法指令的定义及GJB/Z 209-2002对非法指令的补充解释,GJB 289A-97 表1中定义的备用方式代码应理解为非法指令。GJB 289A-97要求RT响应的是BC发出的指令而不是指令字,一条完整的指令由1或2(RT-RT消息时)个指令字及紧跟指令字后要求的(0~32个)连续数据字构成。RT在响应指令时,被要求按序执行以下操作:
1) 对收到的每一个字(指令字或数据字)按GJB 289A-97 4.4.1.1条执行物理层的核实,不满足则认为收到的是无效字;
2) 对指令字作有效性认证(在4.4.1.1条认证基础之上,认证指令字中的终端地址与本RT的专有地址或公用地址相符,对不被允许响应广播消息的RT在收到广播指令字时应认为指令字无效),无效指令字直接按照无响应处理,总线上表现为此消息无RT响应状态字;
3) 对消息作有效性认证,认证判据为有效指令字+与本指令字个数匹配的(0~32个)连续有效数据字。无效的消息,RT仅将自身状态字中的“消息差错”位置位,但不回送状态字;
4) RT承认消息有效,非广播消息则必须回送状态字,广播消息置位状态字中“广播指令接收”位,但不回送状态字。有效但非法的消息,具备检测非法指令能力的RT还应置位状态字中的“消息差错”位。
如果GJB 5186.1-2003的BT在执行本项测试时,发送带数据字的非广播备用方式指令且指令字的收/发位置为0时,没有发送要求的1个数据字,可能出现如下情况:
BT按照本测试项判据b)对RT的响应作出判断时,因判据b)要求被试RT在S2步骤回应一个状态字,但被试RT按照上述第3)条执行消息有效性认证时,认为本条消息的数据字个数不满足规范,按照无效消息处理,将不会回送状态字,从而导致误判被试RT不能通过本测试项目。受此情况影响的指令字组合限制于RT地址域与被试RT专有地址相符的范围,当RT地址不相符时,被试RT按照无效指令方式处理,BT按照判据c)作出判断,不会误判。例如,被试RT分配的RT地址为0号时,下列指令字组合可能出现本文分析的错误情况:
Ø 备用方式代码22,RT地址0,收/发位清零:0x0016、0x03F6;
Ø 备用方式代码23,RT地址0,收/发位清零:0x0017、0x03F7;
Ø 备用方式代码24,RT地址0,收/发位清零:0x0018、0x03F8;
Ø 备用方式代码25,RT地址0,收/发位清零:0x0019、0x03F9;
Ø 备用方式代码26,RT地址0,收/发位清零:0x001A、0x03FA;
Ø 备用方式代码27,RT地址0,收/发位清零:0x001B、0x03FB;
Ø 备用方式代码28,RT地址0,收/发位清零:0x001C、0x03FC;
Ø 备用方式代码29,RT地址0,收/发位清零:0x001D、0x03FD;
Ø 备用方式代码30,RT地址0,收/发位清零:0x001E、0x03FE;
Ø 备用方式代码31,RT地址0,收/发位清零:0x001F、0x03FFF。