微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于PCI局部总线的1553B总线接口卡设计

基于PCI局部总线的1553B总线接口卡设计

时间:05-21 来源:互联网 点击:

BU-61580功能上集成了BC/RT/BM一体化设计,可以编程设置BU-61580的配置寄存器来设定系统的工作方式,例如本系统中,通过软件编程BU-61580配置寄存器1的位15为逻辑“1”,位14为逻辑“0”,可使BU-61580工作于RT方式。内存管理模式可选是BU-61580的RT的一大特点。为了下位机处理器可以方便的存取从给定地址接收有效的、完整的数据块,保证为处理器提供最高程度的数据采样一致连贯性,RT方式的内存管理采用双缓冲模式,该模式下可以有选择地将接收的广播消息分解为非广播消息。具体实现方法是为每一个接收到的消息提供2个32位的数据字块,一个为激活的,另一个为停止的。当前命令结束后,BU-61580自动切换该子地址的数据块的激活区域与停止区域,这样,当向同一子地址发送命令时,如果数据有效并且双缓冲区允许,数据会保存到另一个数据块中,而不会使上一次的数据被覆盖。

  与下位机连接方面,BU-61580的接口配置采用16位缓冲模式,它向下位机提供了一个直接共享RAM接口。在该模式下,BU-61580的数据、地址总线与主机的总线地址隔离,并且BU-61580的寻址空间限制在其内部RAM4K字的范围内。
2.1.2 逻辑控制模块设计

  PCI总线接口模块与1553B总线接口模块之间的逻辑控制电路通过可编程逻辑器件和DSP实现。可编程逻辑器件采用了Altera公司的EP1C 12B芯片,其主要实现地址译码、数据缓存、逻辑控制、握手连接和与BU-61580的协议转换等功能。EP1C12B芯片内部的RAM资源作为双端口RAM和BU-61580之间的数据通道。下位机主控单元DSP控制器采用TI公司的TMS320F2812,用于控制EP1C12B完成1553B总线接口模块对双端口RAM的数据吞吐。上位机对1553B协议芯片进行操作时,相应的数据信号、地址信号和控制信号通过PCI总线发送到双口RAM中。DSP控制FPGA从双口RAM中取出该地址信号和控制信号进行译码,产生对应的地址信号以及控制信号送到BU-61580。如果操作是向1553B主总线发送数据,则同时将数据信号送到BU-61580的数据线。一次读写操作结束时,BU-61580将输入FPGA的READY信号拉低,通知FPGA读写操作结束。如果有中断产生,则在输入FPGA的INT引脚上产生中断波形(下降沿或低电平)。根据BU-61580输入FPGA的中断信号、握手信号或数据信号等,FPGA相应产生上位机需要的中断信号、握手信号、插入等待信号和数据信号等,送到PCI总线上。

  2.1.3 PCI总线接口模块

  PCI总线接口模块包括PCI协议芯片及其配置电路。PCI协议定义了严格的电气特性和时序要求,其接口电路实现难度大,采用专用的PCI接口芯片,可以避开复杂的PCI协议的细节设计,大大缩短开发周期。本系统选用的是PLX公司生产的PCI9052接口芯片作为PCI总线控制器,实现接口卡与PCI总线的桥接。

  在进行驱动编写前,需要根据功能需求对PCI9052芯片进行相应的配置操作。PCI9052芯片有2类寄存器:PCI配置寄存器和局部总线配置寄存器。PCI配置寄存器的内容反映配置空间的情况,它的配置空间的内容包括PCI设备号DID,制造商号VID、中断号、设备类型号、局部空问基地址、局部空间描述符、片选响应以及局部响应控制CNTRL等信号,这些配置信息在芯片复位时通过串行E2PROM加载。PCI9052会自动根据该E2PROM的状态决定其内部寄存器值。E2PROM中的配置信息的正确与否关系着整个板卡是否能够正常工作。当系统配置成功后,接口卡可被PC机识别,即可进行驱动程序的开发。

  2.2 系统软件设计

  2.2.1 驱动程序设计

  设备驱动程序提供连接到计算机的硬件的软件接口,所要完成的任务是链接应用层和硬件层,使操作系统识别具体硬件,并使用硬件资源。微软公司提供了专门的驱动程序开发工具包Windows XP DDK,但是DDK开发难度较大,周期长,不容易掌 握,Numga公司的开发工具Driv er Studio可以大大简化驱动程序的开发过程,它制作的类库封装了DDK的函数,完全兼容所有的DDK函数,它封装了比较底层的繁复操作,减少了对简单接口的复杂操作,专门提供了的开发向导Wizard与微软的Visual C++紧密地集成,驱动程序代码框架只需要在DrivetWorks工具向导程序的指引下,根据硬件的具体参数填写必要步骤即可完成。另外,Driver Wizard还能生成专为特殊设备定制的代码,比如PCI设备,ISA设备等。

  驱动程序的基本功能是完成设备的初始化、对端口的读写操作、中断的设备和响应及中断的调用,以及对寄存器和内存的直接读写。在Driver Studio生成的程序框架上,根据具体的要求添加新的类对象和代码,结合接口卡的特点,编写一些特殊的驱动,在VC下编译后即可得到所需的驱动程序。

2.2

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top