汤永东
(中国人民解放军第五七二〇工厂,安徽 芜湖 241007)
作为飞机重要的机载电子设备,代码转换器是连接飞机导航系统计算机与外部系统之间数据传输重要的关键部件[1],其性能直接关系到通信的可靠性。为提高其可靠性,对其进行测试将显得尤为重要。迄今为止,有关代码转换器方面的研究主要集中在测试电路设计[2]、可靠性试验[3]等方面,有关代码转换器测试设备设计方面的研究较少。
目前,飞机大修测试代码转换器测试的设备使用时间较长、功能很不稳定,且32位双极性码板和20位串行码板之间传输误码率也越来越高,从而导致测试设备经常无法使用,严重影响代码转换器修理与生产进度。维修工程师也为此对该设备进行多次维修,但由于没有板卡资料和程序,无法解决设备修复核心技术问题。
当前,飞机维修与保障正呈数字化、自动化、网络化发展趋势。基于多处理协同技术与自动测试理论[4]的维修手段正被广泛应用于飞机修理保障领域。文献[5]和文献[6]基于C8051F040+BU61580、FPGA+SCV64这两种主从处理器,完成1553B总线通信接口模块、VME总线从模块的设计;文献[7]基于虚拟仪器与自动测试理论,完成飞机三相静止变流器综合测试设备设计。
为掌握代码转换器不同传输数据之间的解析方法,针对代码转换器研究与修理现状,形成代码转换器测试分析能力,笔者基于多处理协同技术与自动测试理论,以单片机为主处理器,以FPGA为协处理器,提出一种基于“FPGA+单片机”架构的代码转换器测试仪设计方法。
① 20位串行码转换为32位双极性码按2通道,每个通道16字。
② 通过对串行码中每一个字所包含的信息进行解码,形成用于控制频率码通道的一次性指令。
③ 串行码的交换是按照同步原理在主动设备(检测仪)的控制下完成的。代码转换器是从动设备,主动设备按照2个通道中的每个通道形成发送码选通交换信号(CBK1OUT、CBK2OUT)、接收码选通交换信号(CNK1OUT、CNK2OUT)、同步脉冲交换信号(40KOUT、80KOUT)和串行码交换信号(DOUT1、DOUT2、DIN1、DIN2)。
④ 在每个同步周期(40KOUT)内,信息“0”表示与同步脉冲相同,而信息“1”则表示与同步脉冲相反。
⑤ 串行码所传送的信号电平与TTL集成电路的标准电平相一致,即“0”电平对应的电压为0~0.45 V,而“1”电平对应的电压为2.4~5 V。
⑥ 根据发送码选用脉冲的选通,代码转换器接收来自主动设备的信息,而通过接收码选通实现信息的发送。
⑦ 在传送的串行码中(20位串行码为1个字),高位的前4位表示字的地址,而剩下的16位则表示信息,其字格式定义如表1所示。
表1 20位串行码的字格式
⑧ 由于地址已经占用了4个二进制位,按照每个通道能容纳16个不同地址字的原则,2个通道共可容纳32个字。
⑨ 代码转换器发送带地址的串行码,其中地址是上一次发送选通脉冲时从主动设备接收来的。
① 32位双极性码以32位双极性码为1个字,每个字由地址、信息以及辅助部分组成,其字格式定义如表2所示。
表2 32位双极性码的字格式
如果前面所有位(从1~31)上的和是偶数,则32位传送“1”,否则,传送“0”。31、30字位(辅助位)的值如表3所示。
表3 31、30字位(辅助位)的值
通过表2可以看出,如果31、30位的值相符(相等),则表示这两位所表示的是符号信息,否则,表示的是数据的不确定信息,或者表示的是检测数据。
② 32位双极性码的地址部分首先发送,而且信息部分是先低位后高位传送。
③ 为了提高抗干扰能力,代码以双极、电平为±(5±0.5) V的方式通过2个汇流条“a”和“б”传送。为了保证在接收时能够在差动输入级对同相干扰进行抑制,在信息脉冲信息传送时“a”线路上的电压和“б”线路上的电压总是相反的。
④ 每个通道在周期内所能传输的字不大于16个,如果发送字中的每一位时间为T,那么字之间发送间隔则为4T, 其中T=1/48 kHz=20.8 ms。
所设计的测试仪需要满足代码转换器的各项测试需求,具体如下。
① 测试其电源模块27 V输入电源电压、5 V输出电压和消耗电流。
② 测试其灯(包括“ИСПР”、“5В”、“СВ”)状态。
③ 测试其自检测功能。
④ 测试其数据交换功能,包括32位双极性码转20位串行码、20位串行码转32位双极性码。
⑤ 测试其一次性指令功能。
⑥ 测试其状态判别矩阵功能。
⑦ 测试其时序电路功能。
⑧ 测试其存储器模块功能。
针对上述代码转换器测试需求,为了提高测试的可靠性与便捷性,以工控机为上位机,以控制盒为下位机,两者之间采用串口通信方式,其中控制盒由1块底板和5块分板(包括A/D板、AB4K板、20位码板、32位码板、一次性指令板)组成,底板以P89V51RD2FN单片机为主处理器,各分板以Cyclone III系列FPGA为协处理器,各分板与底板之间采用并行(口)通信方式,其架构如图1所示。
图1 测试仪架构示意图
测试仪的硬件设计主要集中在控制盒内部的1块底板和5块分板的硬件设计上。
所设计的底板由高电平复位(注:MAX813L)、时钟产生(注:P89V51RD2FN单片机最大时钟可达40 MHz,在此选24 MHz)、地址锁存(注:74LS373)、地址译码(注:74LS138)、数据保存(注:UM6116)、并行接口(注:8255A)、串口通信接口(注:MAX232)等组成,其架构如图2所示。
图2 底板结构框图
为了满足测试代码转换器的27 V输入电源电压、消耗电流和电源模块输出电压(5 V)的功能,所设计的A/D板由信号变换、A/D转换等电路组成。
为了满足测试代码转换器所输出的AB4K信号脉宽功能,所设计的AB4K板由信号变换等电路组成。
为了满足能够发送与接收2路20位串行码的功能,所设计的20位码板由电平转换、信号处理等电路组成。
为了满足能够发送7路、接收2路32位双极性码功能,所设计的32位码板由电平转换、通道选择、自检等电路组成。
为了满足能够完成输出5 V信号、27 V信号和其他24种信号的测量功能,所设计的一次性指令板由信号变换、信号采集等电路组成。
为了实现对代码转换器的自动测试,需要针对其测试需求,对测试仪的上下位机进行软件开发,其中上位机在XP操作系统下,基于Visual C++6.0[10]进行开发,而下位机则要在μVsion与QuarutsII开发环境下,基于Keil C与Verilog进行设计与开发。上位机主程序流程框图及软件界面如图3和图4所示。
图3 上位机流程框图
图4 上位机软件界面
所设计的测试仪由研华工控机及上架式显示器、控制盒和代码转换器组成,其实物如图5所示。
图5 测试仪实物图
(1) 电源模块的测试验证。
由观察得到代码转换器的5B指示灯状态。电压范围为5 V(1±10%),实测为4.98 V,满足测试要求。
(2) 消耗电流模块的测试验证。
代码转换器的消耗电流不能大于250 mA,27 V电压值介于24~30 V范围内。消耗电流实测为196 mA,27 V电压实测为26.6 V,满足测试要求。
(3) 自检测电路测试模块的测试验证。
控制盒在收到“自测试电路测试”指令后,将接通“低良好BH”信号,并测试“ИПР”状态,测试正确后,将点亮相应的指示灯,满足测试要求。
(4) 一次性指令模块的测试验证。
控制盒在收到“频率代码通道20个一次性指令测试”、“MCH测试”、“手动测试”、“着陆一次性指令测试”、“良好БПК一次性指令测试”指令后,将进行相应的测试,并点亮相应的指示灯,满足测试要求。
(5) 状态判别矩阵模块的测试验证。
控制盒在收到“状态判别矩阵模块”测试指令后,将进行相应的测试,并点亮相应的指示灯,满足测试要求。
(6) 内部时序电路模块的测试验证。
如果脉宽在10~13 ms内,则转换正常,否则,转换错误。脉宽实测为12.2 ms,满足测试要求。
(7) 存储器模块、32位双极性码转20位串行码模块和20位串行码转32位双极性码模块的测试验证。
选择不同的通道按钮,控制盒在收到该指令后,将进行相应的测试,测试结果与默认值不一致者,则显示为红色,满足测试要求。
为满足某型飞机代码转换器装备维修保障过程中的系统性能检查需求,针对工厂目前代码转换器测试设备的使用现状,基于多处理协同技术与自动测试理论,设计并开发一台代码转换器测试仪,测试结果表明其具有有效性。所提出的设计思路对于其他飞机重要机载电子设备代码转换器测试仪的设计具有参考与借鉴意义。