DIY编程器网

标题: 基于DM642的PCI总线GJB289A智能仿真卡的设计 [打印本页]

作者: liyf    时间: 2011-4-20 02:38
标题: 基于DM642的PCI总线GJB289A智能仿真卡的设计
虚拟仿真系统模拟GJB289A总线设备,需要收发大量的GJB289A总线数据。传统的处理方式是通过GJB289A总线PCI通讯卡将接收到的数据传输到上位机,由上位机程序对数据进行处理,然后上位机再将处理结果通过PCI卡传输到GJB289A总线上,这种方式影响虚拟仿真系统仿真效率,系统实时性不好。此外,传统的GJB289A总线仿真卡处理器程序固定,不能满足不同处理算法的需要。PCI总线智能GJB289A仿真卡实时处理GJB289A 总线数据,无需将数据转移到上位机,提高数据处理速度,增强了系统实时性。用户能够根据需要,在线加载DSP程序,更新数据处理算法,以适应不同处理算法的需要。增强了仿真卡的灵活性。
  1 主要功能及指标
  PCI总线智能GJB289A仿真卡主要具备以下功能及指标:
  CPU主频:600 MHz,处理速度为9 600 MIPS;
  缓存空间:SDRAM空间为16 MB;
  PCI接口:总线宽度32 b、速率33 MHz;
  GJB289A接口:双冗余模拟收发,具备RT/BC/MT,传输速率为1 Mb/s;
  在线加载DSP程序。
  2 硬件设计
  由分析设计要求,在此提出基于TMS320DM642为核心的硬件结构设计:包括DSP及外围电路设计、GJB289A接口逻辑设计、GJB289A总线模拟收发器设计。
  2.1 DSP及外围电路设计
  TI公司的TMS320DM642是一款主频为600 MHz,32位定点的高性能DSP,片内集成PCI2.2协议模块,支持主/从模式的DMA数据传输。相较于采用专用PCI接口芯片或者FPGA等方式实现,开发方式简单,成本低。
  DM642通过EMIFA与SDRAM和FLASH芯片相连,其中2片64 Mb的SDRAM,作为仿真卡的数据缓存空间,FLASH作为程序空间。通过设置Boot模
  式选择程序从PCI接口还是EMIFA接口加载。当从PCI接口加载时,用户可以动态加载DSP程序,当从EMIFA接口加载时,用户可以将固化好的程序写入FLASH中,由Bootloader引导程序的自启动。
  2.2 GJB289A接口设计
  GJB289A-97总线是国内在研究为人熟知的MILSTD-1553B总线的基础上制定出来的国家军用标准,全称“数字式时分制指令/响应型多路传输数据总线”,由于其具有极高的可靠性,因而在航空、航天、军事等领域的电子联网系统中得到广泛应用。目前GJB289A协议模块较多由国外的高级 1553B协议处理芯片BU61580实现。在此GJB289A接口协议模块由FPGA逻辑实现,代替原有的协议芯片,节约了系统成本,增加了设计的灵活性。
  FPGA逻辑包括曼彻斯特编解码单元、协议处理模块、数据缓冲FIFO、寄存器控制等。逻辑框图如图1所示。发送数据时将已有的并行数据在系统的控制下,经过并/串转换,转换为并行的曼彻斯特编码,依次以符合1553B协议的消息的方式发出。在BC或者RT模式下接收数据时,模拟收发器接收曼彻斯特Ⅱ编码的串行数据,通过曼彻斯特解码器实现同步时钟的提取,同步头检出,数据检出,曼彻斯特Ⅱ码错误检出,奇偶校验,位/字计数以及数据的串/并转换功能。
  

  2.3 模拟收发器设计
  模拟发送器是将FPGA输出的TTL电平信号转换为满足协议要求电气特性的信号传输到电缆上,并提供一定的功率使发送信号顺利被接受方正确接收。模拟接收器是将在总线电缆上双极性电平的信号转换为可以直接接入FPGA的TTL电平信号,且信号的失真应控制在一定的范围之内以使得通信过程正确。目前GJB289A总线模拟收发器较多由国外的HI-1573总线驱动芯片实现,在此设计了模拟收发器电路,可以代替1573芯片。模拟发送部分电路如图2所示,由FPGA直接生成的TTL电平信号从电路的左端输入,输入的信号为单极性的曼彻斯特Ⅱ型编码,信号差分输出。图中的两个PNP型三极管工作在开关状态,R1为基极偏置电阻,R2为集电极负载,二极管起保护作用。右端的隔离变压器将信号放大输入到总线电缆。总线驱动器的接收部分电路如图3所示,总线电缆上的信号从右端的隔离变压器输入,通过隔离变压器电平转换后到达高速比较器,信号高于门槛电压时比较器输出高电平;信号低于门槛电压时比较器输出低电平。最终变为两路TTL电平的差分信号输入FPGA中做进一步处理。
  


  TI公司TMS320C6000系列DSP程序主要的加载方式:一种是由EMIF接口引导程序加载,程序代码、数据存放在外扩的FLASH中,这种方式加载的DSP程序是固定的,不能支持在线更新;另一种是由PCI接口引导,主机通过PCI接口可以访问DSP片内片外存储单元,将程序代码写入DSP片内 RAM区,复位DSP时,程序即开始从地址O执行。这种方式可以在线加载DSP程序,更新处理算法,满足系统设计要求,所以本系统采用PCI接口加载方式。
  3 DSP程序在线加载方法
  用户在主程序框架内添加算法函数,再通过上位机软件,自动调用TI公司C编译器c16x.exe、汇编器asm6x.exe和连接器link6x.exe 壳程序,将C代码编译连接生成可执行的out文件。主机PCI接口的加载方式,需要将可执行的目标代码.out文件转换为十六进制.hex文件,再写入到 DSP的内部RAM空间。具体加载流程如图4所示。
  


  在调用16进制转换工具时,需要指定调用16进制转换工具的命令行选项和文件名,为此创建一个批处理文件,内容如下:
  


  通过上述方法将out文件转换成hex文件,上位机程序读取hex文件内容为文本形式的ASCII,每8个字符为一组存入数组中。TIC6000系列DSP的PCI加载引导操作顺序:首先通过地址总线的A21、A22引脚配置选择PCI Boot模式。上位机通过驱动程序设置要访问的存储器、I/O空间和DSPP寄存器。将存有hex内容的数组写入到DSP的内部RAM区。然后向HDCR寄存器的DSPINT位写1,DSP开始从地址O开始。如图5所示。
  下面为演示实例,运行上位机软件,调用驱动程序函数库,对PCI仿真卡进行初始化设置,初始化完成后将hex内容写入DSP存储空间,加载前,DSP内部RAM内容,通过调用16进制转换工具,将DSP程序可执行目标文件out转换为hex文件,其内容为:
  


  加载前后DSP内部RAM内容如图6、图7所示。
  


  从实例可以看出,经过上述加载方式,完成了DSP程序的在线加载,更新了DSP程序,满足了不同数据处理算法的需要。
  4 结语
  介绍了一种基于DM642的PCI总线GJB289A智能仿真卡的设计方法,采用高速DSP DM642作为主控制器,实现了对GJB289A总线数据的快速处理;在FPGA中实现GIB289A总线协议,设计了模拟收发器电路,替换国外芯片,减少了对国外芯片的依赖性,并节约了成本。在软件方面,采用PCI总线在线加载技术,实时更新DSP数据处理算法,能够适应不同处理算法的需要。目前在虚拟仿真实验平台系统的应用,表明该仿真卡设计正确,工作稳定可靠。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2