一种1553B总线接口模块测试设备的设计与实现

2016-11-16 14:38安宏勇范祥辉武坚
电脑知识与技术 2016年25期
关键词:工装总线驱动

安宏勇+范祥辉+武坚

摘要:随着1553B总线在航空领域的大规模应用,低成本、高效率的接口模块测试验证尤为重要。本文设计并实现了基于串行总线架构的通用1553B总线接口模块测试设备,通过将CPU外置并通过串行总线与测试工装连接,在测试工装内实现串行总线接口到并行总线接口的协议转换,具有通货量大、成本低、简单易用的特点。长时间应用验证表明,该设计能够满足1553B总线接口模块试验条件要求,对其他同类型接口模块测试设备研制具有一定的参考价值。

关键词:1553B总线;测试设备;协议转换

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)25-0168-03

Abstract:With the widespread application of 1553B bus in the aviation, low-cost and effective testing technology of the interface module is particularly important. In this paper, a kind of general 1553B testing equipment based serial bus architecture is designed. It realized the protocol conversion of serial bus interface to 1553B bus interface with the CPU outsiding and connecting with the testing equipment by the serial bus. It has low-cost and easy to used features. The long time application and testing results show that the design satisfy the testing requirement of 1553B bus interface module. It has a certain reference value for the design of other similar interface module testing.

Key words:1553B bus;testing equipment;protocol conversion

1 引言

1553B总线由于其成熟、可靠的特点已广泛的作为飞机的机载总线应用于各个分系统中,在许多分系统中,总线接口模块往往需要采用非标准局部总线设计来满足与所在系统的数据交互功能。由于非标准总线定义各不相同,这就对总线接口模块的测试和试验造成了很大的难度。传统的测试方法为每一种接口模块设计专用的测试设备,与其相配套的CPU模块来进行测试,这样不仅成本高、通用性差、测试效率低,而且在试验条件下对配套CPU模块损害大。对于总线接口模块的测试如何降低测试成本,并且提高测试效率已成急需解决的问题。

本文采用基于串行总线架构的测试设备设计,由于串行总线克服了并行总线在系统带宽、可靠性和可扩展性等方面的固有缺陷,有利于数据的长距离有效传输,这就大大提高了设备的通用性及可靠性。

2 测试产品描述

多路传输数据总线接口(MBI)模块是航空电子通信子系统最为重要的组成部分。各子系统通过MBI模块接入1553B总线通信系统中。由于各个子系统没有统一的标准,MBI模块连接器有多种标准及自定义局部总线型号,而这些总线协议并不兼容,通用的测试设备至关重要。航空产品在交付前要经过大量的试验,包括低温试验、高温试验、ESS试验及功能振动试验等等,如果CPU端随产品一块试验,这种高强度长时间的实验对CPU端造成很大的损害,所以分离式的测试设备设计必不可少。

3工装设计方案

MBI模块测试设备满足接口测试和通信测试的要求,包括测试工装(内含4块MBI模块)、CPU端、工控机三部分。测试工装完成MBI模块安装,提供主机信号、1553B信号及电源转换功能;CPU端用于模拟用户主处理器,通过运行驱动软件完成对多个MBI模块的控制;测试工装与CPU端通过串行总线连接;工控机内装1553B仿真卡,用于运行测试软件和与测试工装内各模块相连;CPU端通过网口、串口与工控机相连,完成主机软件的调试、加载。

3.1 硬件设计

方案中CPU端通过串行总线接口来访问MBI模块,串行总线信号先转换为并行总线信号,可供标准并行接口MBI模块工作使用,若为其他接口总线,可以进一步通过FPGA芯片转换。本次测试产品为自定义总线接口,本设计以自定义总线接口为例。功能架构如图1所示,测试工装硬件电路包括:电源电路、时钟电路、接口转换电路、驱动隔离电路、主机接口电路。接口转换电路中,标准并行总线接口转换为自定义总线接口,然后通过驱动隔离电路与MBI模块相连,从而实现CPU端对MBI模块的配置和数据收发功能。加载程序及调试通过自定义总线引出的调试串口和调试网口实现。测试设备供电28V,然后通过电源转换电路转为各芯片使用的低电压信号。

PCI作为一种通用的总线接口标准,它在目前的计算机系统中得到了非常广泛的应用,本身可以直接供PCI接口的模块使用。

PCI总线是地址/数据复用的总线,包括以下主要信号:AD(32位地址/数据总线)、C/BE(命令/字节使能信号)、FRAME(总线访问发起信号)、DEVSEL(设备选择信号)、IRDY(初始准备好信号)、TRDY(目标准备好信号)。PCI总线单周期访问时序关系如图2所示。

自定义总线已广泛应用于机载嵌入式计算机系统,最高总线速度可达33MHz,位宽32位。自定义总线是地址、数据分开的总线,包括以下主要信号:XA(地址总线)、XD(32位数据总线)、XBE(字节使能)、XM/IO(表示总线周期为存储器访问周期或IO访问周期)、XD/C(表示总线周期为数据周期或指令周期)、XW/R(表示总线周期为写周期或读周期)、XSEL(总线设备选择信号)XCYC(访问请求信号,表示总线周期的地址已有效)、XCMD(总线信号,表示总线周期的数据已有效)、XWAIT(等待信号,表示从设备未准备好)、XBS16(16位设备标识信号)。自定义总线访问周期时序关系见图3。

本设计在FPGA内部实现从PCI总线扩展自定义总线的控制,FPGA内部设置状态机,对总线状态进行监控、转换,实现了PCI总线至自定义总线的透明桥控制。虽然PCI与自定义总线协议不同,但是在访问数据的时候,地址线、数据线、片选信号、读写使能信号都是并行发送的,逻辑需要处理的就是依据总线访问信号来进行数据包解析和读写信号的提取,具体流程如下:

3.2 软件设计

在本文中与CPU端采用PowerPC处理器,移植嵌入式实时操作系统VxWorks5.5,在Tornado环境下开发串行总线驱动和测试程序。

(1)主机串行总线接口驱动

系统上电后,主机串行总线接口驱动软件对PowerPC的总线控制器和桥片进行配置,配置完成后,主机就可以访问从设备。配置流程如图5所示。

首先初始化PowerPC的基地址和空间大小。PowerPC在内部定义了多个局部存取窗口,按照优先级选取一个窗口作为串行总线的配置窗口,可配置窗口大小和窗口的基地址。然后通过ID号能扫描PowerPC的串行总线设备,并对设备进行链路训练。然后查询训练状态,如果状态为0x16,训练通过,若果链路正常,可以进行下一步设置;如果不是,则需要检查链路上的异常,出现异常的原因可能有物理链接、时钟、以及PCB走线等。训练通过后进行PowerPC的串行总线设备寄存器设置,需要把PowerPC的串行总线设备配置为主设备,设置为BUS0,点对点连接的设备为BUS1。配置完PowerPC的串行总线设备后再次扫描链路,查找链路上的桥片,桥片的总线号是BUS1,找到后再按照类型1配置桥片的头标区,配置原级总线号、次级总线号寄存器,并配置下游设备的PCI空间基址和大小。

(2)多模块访问设计

为了实现同一个宿主机CPU模块控制多个同一种MBI模块,需要区分MBI模块在主机存储空间的地址。MBI模块是通过双口存储器来实现和宿主机的数据交换、指令执行。MBI模块的双口存储器空间为0xX0000000~0xX0003FFFH,0xX*******H 的高位地址片选信号由CPU 模块通过SEL0给出并连接到MBI模块的大存储器片选引脚。MBI模块的宿主机接口部分电路用来译码的自定义总线地址信号A19~A16和MBI模块的大存储器片选来实现0xX0000000~0xX0003FFFH,可以将CPU 处理器的A22~A16 与MBI 模块的A19~A16地址信号移位连接,实现MBI模块占用宿主机CPU 不同的存储器空间设计,实现一个CPU 可以同时初始化启动4块MBI模块的设计思想。移位连接地址信号的连接逻辑框图如图6所示。

通过软件编程的方法保证主机板CPU测试程序可以同时初始化和启动4 块MBI模块。多MBI模块和主机的接口地址如下:

MBI1:0xX0000000~0xX0003FFF 命令字单元:0xX0001BC0,消息接收区:0xX0001C00,发送区:0xX0001D00

MBI2:0xX0080000~0xX0083FFF 命令字单元:0xX0081BC0,消息接收区:0xX0081C00,发送区:0xX0081D00

MBI3:0xX0100000~0xX0103FFF 命令字单元:0xX0101BC0,消息接收区:0xX0101C00,发送区:0xX0101D00

MBI4:0xX0200000~0xX0203FFF 命令字单元:0xX0201BC0,消息接收区:0xX0201C00,发送区:0xX0201D00

4 测试验证

依据产品功能,MBI模块要进行三方面测试:资源测试,对MBI模块每个节点进行资源有效性测试;通信测试,对MBI模块每个节点进行通信有效性测试;循环测试,对MBI模块每个节点进行循环测试。具体测试内容如图7所示。

(1)MBI模块资源测试

对MBI模块进行资源有效性测试,主要包括IO测试(RTC测试)、DPRAM的读写测试、BIT测试和RESET测试,测试函数逻辑如下:

a. 根据测试菜单提示,进入不同的资源测试;

b. RTC测试:根据地址读取高16位和低16位的RTC值,并将其拼为32位RTC值,调用MBI模块驱动软件接口Delay_nus延迟,再读取RTC值,与之前读取的值进行比较;

c. DPRAM测试:向指定地址写入指定值,将地址中存储数据取出,并与写入值进行比较;

d. BIT测试:调用MBI模块驱动软件接口MBI_BitDrv,检查返回值;

e. RESET测试:调用MBI模块驱动软件接口MBI_ResetDrv,检查返回值;

f. 根据返回结果打印。

(2)MBI模块通信测试

对MBI模块每个节点进行通信有效性测试,测试函数逻辑如下:

a. 调用MBI模块驱动软件接口MBI_OpenDevice打开设备;

b. 调用MBI模块驱动软件接口MBI_dataInit初始化MBI模块输入、输出串口,通信地址;

c. 根据MBI模块驱动软件接口MBI_RefreshDrv发送消息,调用MBI模块驱动软件接口MBI_ReadDrv从Buffer中读取数据;

d. 根据测试结果打印。

(3)MBI模块循环测试

对MBI模块每个节点进行循环测试,依次进行上述所有测试,测试函数逻辑如下:

a. 进入循环,根据循环次数依次进行IO测试(RTC测试)、DPRAM测试、BIT测试、通信测试;

b. 循环结束,根据设置的参量统计各个测试的失败次数;

c. 根据测试结果打印。

5 总结

本文主要介绍了一种基于串行总线接口的1553B总线接口模块测试设备的设计与实现,通过将CPU外置并通过串行总线与测试工装连接,在测试工装内实现串行总线接口到并行总线接口的协议转换以及并行总线接口到自定义总线接口的协议转换,解决了传统的1553B总线接口模块一对一测试的问题,大大提高了测试设备的通用性和可靠性,有效降低了成本,为1553B总线接口模块的批量测试验证提供了方法和技术。

参考文献:

[1] 于海勋, 苗紫晖. 基于1553B的一种测试系统设计[J]. 西安工业大学学报,2009,29(2):172?176.

[2] 国防科工委. GJB29A?97 数字式时分制指令/响应型多路传输数据总线[S]. 北京:国防科工委,1997.

[3] 王海锋,梁晶晶,田苗. 某型测试系统中1553B 总线通信设计与应用[J]. 现代电子技术,2013,36(7):44?46.

[4] RaviBudruk,DonAnderson,TomShanley. PCIExpress系统体系结构标准教材[M]. 电子工业出版社,2005.

[5] 王齐. PCIExpress体系结构导读[M]. 机械工业出版社,2011.

猜你喜欢
工装总线驱动
基于模糊PI控制的驱动防滑仿真系统分析
屈宏斌:未来五年,双轮驱动,砥砺前行
轴钻斜孔工装设计
轨旁ATC系统门控柜接收/驱动板改造
一种取出塑件残余量的辅助工装
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
基于S3C6410的Wi-Fi驱动移植实现
工装风衣
多通道ARINC429总线检查仪