一种机载TM总线接口设计
扫描二维码
随时随地手机看文章
摘要:在研发第四代战机过程中,TM总线成为机载航空总线的研究热点之一。提出一种利用EDA技术的TM总线接口设计。硬件设计方面通过对TM总线协议的分析,采用可编程逻辑器件设计了主/从一体化TM总线控制器,并对TM总线控制结构和接口状态机运行机理进行了描述。软件部分实现了USB驱动开发和固件开发。
关键词:机载计算机;测试维护总线;总线控制器;USB;固件
航空电子系统是飞机上的一个重要系统,它决定着飞机的作战性能。随着科学技术的迅猛发展,作战环境的变化,技术的进步与需求的改变,使航空电子技术不断出新,航空电子技术的进步也极大地提高了飞机的作战性能。飞机功能的不断增强,使得F-22/F-35等先进飞机航电设备的成本也直线上升。为了使飞机的造价与寿命成正比,只有提高系统的可维护性。当飞机具有良好的可维护性时,系统的维护费用、维护难度和全寿命周期费用才能得到降低,军机战斗力和快速反应能力才能得到提高。
1 TM总线概述
TM(Test and Maintenance,测试与维护)总线是用于电子设备的子系统和模块的测试、诊断与维护的标准底板总线,是针对模块和子系统而提出的一项新的检测技术,现已应用于以F-22为代表的第四代飞机中。现提出一种TM总线的接口设计。
TM总线采用主从式工作方式,系统中存在一个TM总线主设备和多个TM总线从设备,从设备在主设备的命令下工作。本文的设计主要是从测试数据角度出发,测试数据通过主/从模块的控制器经USB接口进行数据传输、采集、处理后,送入计算机。各模块通过TM总线控制器挂接到TM总线上,图1为总体设计。
2 系统硬件设计
2.1 系统硬件结构设计
系统硬件设计包括总线控制器、USB接口平台及PC连接几个部分,本文将介绍TIU(传输接口单元)通过USB接口进行数据传输的过程,整体结构框图如图2所示。
由图2可知,硬件总体结构数据传输可分为以下两大块:
(1)在USB接口接收从TIU传送出的数据,经过数据处理和数据解析,把数据解释成有实际意义的参数,实时显示在PC机的显示画面上。
(2)从PC机来的数据,通过USB接口,发往TIU。
2.2 TIU设计
在所设计的系统总体结构中,TM总线主/从模块上都有一个TIU,其基本功能是完成TM总线协议及实现主从模块间的数据通信。
2.2.1 TIU详细设计
在TM-BUS控制器的研制中,主/从TM-BUS控制器实现一体化设计,通过控制使TIU工作在主/从两种模式下,主方式下的TIU发送命令,从方式下的TIU接收并执行命令。TIU结构设计图如图3所示。
2.2.2 TIU的设计原理
从数据信号流程方面来说:接收数据时,TM总线上的输入信号经过译码转换进入寄存器,在这里完成数据串/并格式转换,进行奇偶校验检查,检查后如果正确,则通过地址比较逻辑,进行命令译码,按照所给出的命令送入所定义的不同作用的寄存器中。
TIU执行控制命令的过程如下:TIU链路层状态机控制命令的接收,核心状态机执行该命令,并把待传送的应答传送至移位寄存器中,再由TIU链路层状态机控制应答传送。由软件实现的命令其执行过程是核心状态机将该命令传送至输入接口缓冲器并产生中断信号,模块中的CPU响应中断,从输入接口缓冲器中读取命令,进行测试操作和模块维护操作,并把结果写入状态寄存器或输入缓冲器,然后TM总线主控制器取走该测试结果。
2.3 TM总线状态机设计
TM总线协议规定其链路层状态机分为主从两个状态机,由于TIU不存在同时既做主又做从的工作模式,因此可以把主/从两个状态机合为一个。通过控制使TIU工作在主/从两种模式下,主方式下的TIU发送命令,从方式的TIU接收并执行命令。图4为主状态机状态转换图。
在TM-BUS主状态机状态标记中,最后两位表示在该状态下MCTL和MMD的值,状态转换的条件由状态变量M1,M2,M3表示。图4中所标的转换条件为[M1,M2,M3]取值。
POWERUP2_00为上电后或复位后的状态;XFERl6_1X~XFER00_1X为数据传送状态;WAIT_00为出错状态,该状态结束的条件是MCTL与MMD发生传输冲突消失且消息传送结束;在PAUSE_01状态下插入等待;EOM_00为消息传送的起始和结束状态。主/从两个状态机合为一个状态机后,MCS和主权控制状态机控制作何种状态机运行[M1,M2,M3]控制主状态机的状态转换,从状态机的状态转换由MCTL和MMD控制。
2.4 USB接口设计
USB接口芯片采用了ISP1581。ISP1581是Phil-lps 公司提 不应求的高速USB接口芯片,符合USB2.0规范。它的内部集成了数据收发器、串行接口引擎(SIE)、并行接口引擎(PIE)、FIFO存储器(8 KB)、存储管理单元(MMU)、微控制器接口和DMA(直接内存访问)管理器。外部电路接口简单,因ISP1581内部不带有微控制器,需外接。本文的微控制器采用AT89C52单片机。USB硬件模块主要包括ISP1581,AT89C52,总体框架结构如图5所示。
ISP1581通过16位数据总线与FPGA相连,AT89C52负责控制数据的DMA传输。ISP1581与微控制器的通信通过一个高速(15 MB/s或15 Mword/s)的通用并行接口AD[7:O]实现,并具有高速DMA接口。
2.4.1 USB接收数据模块实现
本文采用的USB器件是带有DMA控制器的ISP1581,为了简化电路,采用ISP1581的DMA主控制器方式。如图6所示,当FPGA的FIFO满标志为1时,单片机给ISP1581发送请求有效信号、写信号和写周期信号,给FIFO发送读请求信号和读周期信号,当读出的数据达到预定的数目时,单片机把ISP1581请求信号设置为无效,等待下一组存储数据。
2.4.2 读数据和并/串转换
单片机把接收的控制信号通过DMA传输通道把数据传到FIFO中,其DMA传输过程和图6相似,只要把DIOW改成DIOR,把rdreq改成wreq就可以了,然后通过FPGA的内部逻辑取出16位并行数据进行并/串转换。
3 系统软件设计
3.1 USB固件(Firmware)程序开发
固件其实就是单片机的程序文件,主要完成设备初始化、USB协议标准请求处理以及其他应用程序。一般来说,固件程序的软件结构可设计为基于中断的分层结构,如图7所示。
在固件程序中,后台的中断服务例程(ISR)负责从ISP1581收集数据,当ISR收集到了足够的数据时,通知前台主程序循环数据已经准备好,由主程序循环进行数据的处理。以的批量传输端点为例,当从主机收到一个数据包,就会向为控制器产生一个中断请求,微控制器立即响应中断。在中断服务例程中,固件程序将数据包从内部数据缓冲区转移到循环数据缓冲区,然后将数据缓冲区清零以使该端点可以接收新的数据包,这时微控制器可以继续执行当前更为紧急或者还未处理完的任务,例如读取采集数据,然后返回到主循环中检查循环缓冲区是否有新的数据,并进行处理。
3.2 USB设备驱动程序开发
驱动程序的基本功能是建立应用程序与USB接口之间的数据通讯。本设计采用Driver Works开发USB驱动程序。
应用程序可以利用Win32API直接调用驱动程序。读操作是从应用程序调用Win32API函数的ReadFile开始的。当应用程序调用ReadFile函数时,系统通过ntdll.dll调用ntreadfile向设备驱动程序发送一个IRP,驱动程序接收到该IRP后,开辟用以接收数据的内存区,判断所读数据是否大于端点的最大信息包规格(Maxsize),如果所读数据大于端点的最大信息包规格,则此次只能读取Maxsize个字节,这样就会造成数据丢失。因此,固件程序应避免发送大于端点Maxs- ize的信息包,然后建立相应端点的URB并向下层驱动提交该URB,此时I/O管理器执行Read,把设备传来的数据放到缓冲区内。具体过程如图8所示。
4 结 语
本文对TM-BUS技术在四代机中的应用进行了分析,运用VHDL语言、FPGA、USB等技术,设计了TM-BUS接口板。在对TM-BUS控制协议分析的基础上,基于FPGA技术实现了TM总线协议,利用USB芯片ISP158l实现接口电路与上位机的连接,实现与PC机的数据通信,同时编写了USB设备端的固件程序和PC机端的USB的设备驱动程序。通过试验得出结论:
(1)TM总线技术为综合航空电子系统可测试性的发展提供了必要的技术途径;
(2)基于FPGA技术实现的TM-BUS协议芯片,可有效实现总线各项控制功能。
对于一个复杂系统的设计,初始阶段可能会存在功能上的不足,这些会逐步得到改正,因而本设计有提高和升级的空间。