APP下载

基于BU-61580透明模式的总线监控器功能实现

2021-02-25杜志美薛志超张志龙

测试技术学报 2021年1期
关键词:堆栈监控器总线

文 丰,杜志美,薛志超,张志龙

(1.中北大学 仪器与电子学院,山西 太原 030051;2.中北大学 电子测试技术重点实验室,山西 太原 030051;3.中国运载火箭技术研究院空间物理重点实验室,北京 100076)

0 引 言

飞机、轮船等机动平台上使用的电子设备越来越多,功能越来越复杂,将各电子设备有效组合在同一网络平台至关重要.MIL-STD-1553B是为适应飞机飞行过程中通信安全提出的电子系统信息传输标准,其优越的实时性、高度的数据可靠性以及同时可挂载多个终端等优势在飞机电子系统中得到广泛使用.

MIL-STD-1553B总线上有总线控制器(BC)、远程终端(RT)和总线监视器(MT)3种类型的终端[1,2].以往使用的BU-61580 16位非零等待缓冲模式,外部接口电路简单,通过主控器对协议芯片的操作较为方便,但只能实现单一的总线控制器、远程终端或者总线监控器功能;而将BU-61580的连接模式设置为透明模式时,BU-61580具有外部RAM扩展的功能,同时可与主控器共享RAM接口,提高了数据存储容量和实时性.在芯片价格较为昂贵,电路板空间资源受到限制的情况下,透明模式还使得BU-61580具备远程终端和总线监控器同时工作的功能,实现了资源的合理利用.

1 总线接口电路设计

1553B总线接口电路包括可编程逻辑器件FPGA、1553B协议芯片BU-61580、耦合变压器三部分.

本系统主处理器FPGA采用Spartan-3系列芯片XC3S400,满足可同时连接并控制总线控制器和总线监视器的接口和时序要求,FPGA代码在ISE14.7编译环境下采用硬件描述语言VHDL编写.BU-61580芯片作为一种全集成化多协议的接口芯片,由两个低功耗的双端收发器、4 K字静态RAM以及直接面向主处理器的缓存接口组成[3].在共用RAM和DMA配置模式下,BU-61580能最大外扩64 K RAM.同时,该芯片集成了3种终端协议逻辑,各个终端连接到总线上都可形成广播通道.为保证数据的完整性和系统的容错性,每个终端同时连接到多条总线上,指定一条总线用作通信的主控制总线,其余作为空闲的冗余总线[4].总线结构如图1 所示.

图1 1553B标准总线拓扑结构Fig.1 1553B standard bus topology

各终端所发信息以消息的形式在1553B总线上进行传输,每条消息的传送内容有命令字、数据字和状态字.1553B总线网络采用集中控制方式,即由BC向总线上发送命令.信息的传输过程首先由BC通过编码器将命令字发送到总线,RT将总线中命令字的地址与自身地址进行比较,决定是否接收该命令字[5].MT并不参与总线消息通信,而是监听总线上传送的消息,并将它们记录并保存在存储器中,供脱机分析使用.BU-61580默认模式采用16 MHz时钟频率,设置配置寄存器#5最高位,将外部时钟频率改为12 MHz,在该时钟工作模式下,时钟经过内部倍频后解码/编码器的采样频率为24 MHz,相比于 16 MHz 的时钟采样率,24 MHz时钟频率下解码/编码方式的采样率提高了电路内部解码/编码器的容错能力.透明模式接口电路原理图如图2 所示.

图2 透明模式接口电路原理图Fig.2 Schematic diagram of the transparent mode interface circuit

透明模式的实现需要将BU-61580的输入引脚TRANSPARENT/BUFFERED置1.在FPGA内部开辟容量为4 K字的RAM空间用于扩展.FPGA接收BU-61580的输出控制信号IOEN、READYD、INT,进而判断是否可以对其进行有效操作.MEMWR和MEMOE信号用来控制RAM的读写.透明模式下FPGA与BU-61580之间的数据总线和地址总线具有双向驱动的功能,由于FPGA通用I/O引脚是LVTTL逻辑+3.3 V,BU-61580是逻辑+5 V,FPGA的输出信号可以直接驱动BU-61580,而不能承受+5 V的输入电压[6],因此,需要在BU-61580信号输出引脚、数据总线接口和地址总线接口处采用电平转换芯片SN74LVC2T45和SN74LVTH162245与FPGA之间进行电气隔离.由于设备间连接电缆长度要求,总线耦合方式不宜选用直接耦合,从而采用变压器耦合,选用变压器型号为B-3226,变压比为1∶1.79,传输距离小于6 m.

2 总线监控器功能

总线监控器功能是监听总线上传送的消息,并将它们记录下来,这就要求对协议芯片的寄存器和存储器进行初始化配置,确保总线监控器功能的执行,并指定消息命令和数据的存储地址.配置过程中,上位机根据协议芯片规定的配置要求,将数据及其对应的地址打包发送,即发送一个数据后再发送该数据对应的地址.由于配置过程中总线数据的传输速率与主机系统总线传输速率存在差异,为确保数据传送的准确性和连续性,在FPGA内部为接口电路设计了可自动读写逻辑,分别为容量1 K字节的下传FIFO和容量为2 K字节的上传FIFO,FPGA内部自动读写逻辑原理如图3 所示.

图3 电路缓存设计Fig.3 Circuit cache design

2.1 存储器结构

BU-61580芯片提供3种不同的总线控制器模式,分别为字监控器模式、选择消息监控器模式、RT/选择消息监控器混合模式[7].本设计采用选择消息监控器模式,该方法极大地减少了主处理器的处理负担.典型的选择消息监控器模式的存储器结构如表1 所示[8].

表1 典型的选择消息监控器模式的存储器结构Tab.1 Typical memory structure for selecting message monitor mode

2.2 存储器管理

存储器固定位置设置有独立的命令堆栈指针(Command Stack Pointer)和数据堆栈指针(Data Stack Pointer)[9,10],分别用来指向命令堆栈和数据堆栈,其中命令堆栈大小为1 K字,存放监控消息的描述符;数据堆栈大小为2 K字,存放监控消息的数据字和状态字,且相邻两条消息的数据字和状态字在堆栈中无间隔顺序存储.

2.3 总线监控器中断机制

总线监控器启动后实现对1553B总线上传送消息的监听.配置中断屏蔽寄存器采用消息中断机制,寄存器#2采用电平中断且中断状态自动清除.当MT监听到总线一条消息传送完成时,INT引脚会产生中断请求,输出为低电平,在FPGA读取中断状态寄存器后,中断状态清除,输出恢复为高电平.该中断机制的选择有利于FPGA通过判断INT引脚输出来判断总线上是否有消息传送,避免造成总线消息丢失.当INT输出为低电平时,FPGA便对BU-61580的存储单元进行读取.总线消息数据波形和INT输出变化如图4 所示.

图4 总线消息数据波形和INT输出变化Fig.4 Bus message data waveform and INT output changes

在读取数据堆栈时,最初采用的方法是通过命令堆栈描述符中的数据块指针(DATA BLOCK POINTER)来进行寻址,可以正确寻找到该消息对应的数据块,但是读取的数据字长度由FPGA控制,较为固定,只能满足总线上单一消息循环发送的情况,而无法满足多消息发送的情况.因此,改用初始化命令堆栈指针(f_command_stack_pointer)和数据堆栈指针(f_data_stack_pointer)进行寻址,通过与固定地址单元指针command_stack_pointer和data_stack_pointer 进行比较判断数据堆栈读取是否完成.

由于在实验过程中,BC将某条消息以一定的时间间隔循环发送到总线,而MT的存储空间有限,会造成命令堆栈和数据堆栈的溢出.如果不考虑该情况,上传到上位机的消息会每隔一段时间出现一次丢失.该消息的丢失主要通过相邻两条消息的时间标记字来判断,因此,需要对初始化指针f_command_stack_pointer和f_data_stack_pointer进行复位.消息数据上传流程图如图5 所示.

图5 消息数据上传流程图Fig.5 Message data upload flowchart

3 实验结果

图6 所示为MT监控到的总线消息信息,该消息由总线控制器BC循环发送,远程终端RT接收,FPGA对MT内存单元进行读取并上传至上位机显示.

图6 MT监控到的总线消息信息Fig.6 Bus message information monitored by MT

如图6 所示,每行记录一条消息,前4个字为命令堆栈描述符,分别为块状态字、时间标记字、数据块地址和消息命令字,其中块状态字为协议芯片根据消息处理结果更新的单元,此处显示为8100H;时间标记字记录每条消息传送的时间标记,由相邻两条消息的时间标记差可计算出消息发送的时间间隔;数据块地址存储的是该条消息数据字在数据堆栈中的起始地址.数据堆栈存储的是数据字和状态字,在堆栈中无间隔顺序存储,图中所示消息数据字为EB90H,0001H,0002H,0003H,0004H,0005H,0006H,0007H,0008H,0009H,状态字为6000H,数据长度为11个字,与相邻两条消息的数据块首地址差相等,说明MT总线消息的监听完整准确.

4 结 论

本文在1553B传输协议的基础上,利用可编程逻辑器件FPGA和协议芯片BU-61580完成透明模式接口电路设计,运用VHDL硬件描述语言进行编程实现硬件的接口功能,通过上位机的配置实现总线监控器功能,该设计方法灵活,便于操作.透明模式的应用可以实现BU-61580外部RAM空间的扩展,在电路板空间资源无法容纳两片BU-61580的情况下,可以采用透明模式利用一片BU-61580实现远程终端和总线监视器同时工作,很大程度上节约了成本.

猜你喜欢

堆栈监控器总线
基于行为监测的嵌入式操作系统堆栈溢出测试*
关于MK10 型下滑仪近场监控参数超标的故障检修
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
基于堆栈自编码降维的武器装备体系效能预测
一种自动监控系统的输液监控器的设计
关于压机双联阀安全监控器的研究
CAN总线并发通信时下位机应用软件设计
多通道ARINC429总线检查仪
一种用于分析MCS-51目标码堆栈深度的方法