机载TM总线接口设计方案

时间:2010-03-30来源:网络

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协议芯片,可有效实现总线各项控制功能。
对于一个复杂系统的设计,初始阶段可能会存在功能上的不足,这些会逐步得到改正,因而本设计有提高和升级的空间。