基于NIOSⅡ处理器的MIL-STD-1553B接口卡设计

出处:21ic 发布于:2018-09-05 14:03:52

  MIL-STD-1553B总线(以下简称1553B总线)是美国制定的一种军用串行总线标准,国内对应为GJB289A-97,它规定了数字式时分制指令/响应型多路传输数据总线及其接口电子设备的技术要求,同时规定了多路传输数据总线的工作原理和总线上的信息流及需要采用的电气和功能格式[1]。
  目前,国内外的1553B板卡大多数是基于协议芯片配以相应的处理器和存储器来实现,硬件电路复杂,设计难度大。SOPC(System On Programmable Chip)技术是由Altera公司提出的,它以IP核为基础,以硬件描述语言为主要设计手段,包括以32位NIOSⅡ软核处理器为的嵌入式系统的硬件配置、硬件设计、硬件仿真、软件设计、软件调试等。使得由许多IC组成的电子系统集成到一块FPGA内成为可能,从而大大简化了系统的硬件设计,节省了大量的系统资源[2]。
  1 基于NIOSⅡ处理器的1553B板卡硬件设计
  本系统的硬件设计主要由三部分构成:(1)与主机通信的PCI控制器PCI9054,主要实现DPRAM内的数据与主机进行通信;(2)基于NIOSⅡ处理器的FPGA设计,实现NIOSⅡ硬件平台的搭建,实现对HI-6110的控制,读出相关的1553B报文,将相关的控制和数据按照特定的格式存储在DPRAM,或者从DPRAM中读出相关的控制和数据,实现对HI-6110的控制;(3)1553B接口电路,主要由HI-6110和相应的总线耦合器组成。  系统硬件配置如下。
  (1) NIOSⅡCPU:它是整个系统的部件,本系统选用的是32位NIOSⅡCPU[3]。
  (2) SDRAM:由于本系统复杂,软件代码比较大,因此必须要扩展外部SDRAM。在NIOSⅡ系统工作时,SDRAM主要用来存放运行程序和数据,由于NIOSⅡ对SDRAM的操作速度非常快,本系统的SDRAM选择的是MT48LC4M32B2,可以满足工作在50MHz的NIOSⅡ系统要求。
  (3) Flash:用来存放用户程序,本系统选用的是AM29LV128M。与SDRAM相比较,Flash具有掉电保护的特性,但它的存取速度远远低于SDRAM。该芯片可配置成8位或16位,本系统配置为16位。
  (4) DPRAM:主要用于NIOSⅡ处理器与PCI9054之间的数据交换。其访问时序和SRAM一样,通过添加SRAM模块就可以对DPRAM进行访问。本系统采用IDT公司的IDT70V28系列DPRAM,它可以提供64K×16bit的存储空间。
  (5) PIO:主要完成NIOSⅡ处理器和HI-6110之间的数据、地址、控制信息传输。其中Pio_DataIn和Pio_DataOut是16位的数据总线,Pio_Addr是16位地址总线,Pio_Ctl是8位控制总线,Pio_StatusFlag是8位状态标志总线。
  (6) 时钟模块:其主要作用是为FPGA模块提供系统运行的工作频率,并为HI-6110和PCI9054提供时钟。本系统选择的时钟频率是48MHz。
  (7) PCI9054:它是PLX公司生产的PCI总线通用接口芯片,符合PCI V2.1和V2.2规范;在PCI总线端支持32位数据宽度,传输速率为33MHz;本地端可以编程实现8位、16位、32位的数据宽度,传输速率可达132MB/s。本地总线端时钟可达50MHz,支持复用/非复用的32位地址/数据。PCI9054内部有6种可编程的FIFO存储器,以实现零等待突发传输以及本地总线和PCI总线之间的异步操作。PCI9054工作方式灵活多样,包括直接主模式、直接从模式和DMA模式。本地总线可工作在M、C、J三种模式[4]。本设计采用直接从模式,本地总线工作在C模式。
  (8) HI-6110:它是由HOLT公司推出的1553B总线协议处理芯片,该芯片可以配置成BC、RT、MT、带RT的MT四种工作方式,支持双冗余总线。内含2个32×16的FIFO。外部时钟可选12MHz或24MHz两种频率[5]。
  2 基于NIOSⅡ处理器的1553B板卡底层软件设计
  2.1 软件总体设计
  将系统硬件生成并完毕后,就可以进行系统的软件设计。整个软件的体系结构如图2所示。
  在本系统中,NIOSⅡ作为下位机来使用,它通过PCI总线与上位机进行通信,接收来自上位机的命令,并解释执行。NIOSⅡ的软件需要完成以下任务:读写DPRAM实现和PCI总线的通信;控制HI-6110完成1553B数据的发送和接收,实现1553B总线协议。
  在图2中NIOSⅡ上电或复位后初始化程序完成整个系统的初始化,包括启动定时器、初始化中断向量表,初始化DPRAM内容、初始化HI-6110内寄存器等。然后判断当前的访问地址,如果访问内部寄存器,则根据地址可以读写板卡内的寄存器,如:控制寄存器、RT地址寄存器、描述表基址寄存器、状态寄存器、当前处理命令寄存器等;如果是访问数据区,则根据当前的工作模式分别进入BC、RT、MT工作状态进行不同的数据处理,如果数据处理正确则写相应的寄存器和数据区,转入读下一条访问地址。
  2.2 1553B板卡地址划分
  1553B板卡的地址分为两部分:内部寄存器和数据区。内部寄存器主要包含控制寄存器和状态寄存器,通过控制寄存器的不同内容可实现对1553B板卡的控制,通过读状态寄存器的内容可以获得1553B板卡内的通信状态,内部寄存器的地址空间为:0x0000~0x00FF;数据区根据1553B的操作模式不同,分为三种类型,即BC模式、RT模式、MT模式,其地址空间为:0x0100~0xFFFF。下面仅以1553B板卡工作在RT模式下进行介绍。本设计采用双缓冲区的数据储存策略,将数据区地址分为RT控制块和RT数据存储两个区,每个控制块含有4个字,每个数据储存区34字节[6]。

  3 PCI总线设计
  3.1 EEPROM设计
  PCI9054芯片可以支持有EEPROM和无EEPROM的启动方式。有EEPROM时,EEDI/DO的管脚必须上拉;无EEPROM时,EEDI/DO的管脚必须下拉。本系统采用有EEPROM的启动方式。配置芯片选用Microchip Technology公司的93LC46B。EEPROM主要完成对本地配置寄存器的初始配置以及一些控制寄存器的配置,如本地存储空间到PCI内存空间和I/O空间的映射等。根据设计先将PCI9054的各个参数写入93LC46B芯片,系统上电后PCI9054自动将EEPROM芯片中的参数读入,从而初始化PCI9054[7]。
  3.2 PCI访问DPRAM设计
  本设计中,PCI9054使用地址空间0来访问DPRAM,地址空间0配置为内存空间,其地址范围为1M。PCI9054工作在PCI从模式、本地总线工作在C模式下访问内存空间可以有几种方式:Single Write/Read、Non-Burst Write/Read、Burst Write/Read。另外通过内部Wait State可以添加延时,本地总线通过Ready#信号确认数据读写操作。为了实现PCI9054与DPRAM数据传输无误,在FPGA内编制了读写状态机从而实现两者之间数据传输的时序匹配。状态机源代码如下:
  always @ (posedge PCI_CLK)      //时钟,本系统为48MHz
  begin
  casex(currentstate)          //读写状态机
  s0:
  begin
  if (!PCI_ADS && (PCI_ADDR<=16'hFFFF))
  // PCI_ADS为0表示传输
  begin                //开始,地址小于128K
  PCI_READY=1'b0;
  Write_DPRAM=PCI_LWDRD;
  ……
  currentstate = s1;
  end
  else
  currentstate = s0;
  end
  s1:
  begin
  if (!PCI_BLAST)            //PCI_BLAST为0,表示停止Burst
  //Write/Read,转入状态0;否则为1,
  begin             //表示Burst Write/Read
  PCI_READY=1'b1;
  ……
  currentstate = s0;
  end
  else if (PCI_BLAST)
  begin
  PCI_READY=1'b0;
  Write_DPRAM=PCI_LWDRD;
  ……
  end
  default:currentstate=s0;
  endcase
  3.3 PCI驱动设计
  驱动程序采用Jungo公司的WinDriver开发平台。该平台的优点是:用户不需要了解操作系统内部原理及DDK开发工具。另外,WinDriver对PCI9054提供了专门的开发框架,可以大大缩短开发周期。
  驱动程序主要由三个部分组成:初始化硬件、对硬件资源的访问和函数库的调用。其中,后面两个部分对于不同的硬件基本一致,不同硬件开发的区别在于初始化硬件时对硬件资源的锁定。WinDriver库函数是实现PCI卡驱动的重要模块,利用这些函数可以对PCI接口的扩展卡进行配置、读写,完成驱动的设计。例如:
  (1) 函数WD_Open( ),用来获得WinDriver驱动程序的句柄。该函数必须在所有其他函数之前执行,用来打开一个WinDriver支持的硬件PCI设备。
  (2) 函数WD_CardRegister( ),负责选定设备,且对该设备的项目进行注册和资源分配。具体完成三个功能:①映射设备的物理空间,使之能够被模式的进程和用户模式的应用程序所访问;②检查所需存储器或I/O资源先前是否被注册过,以防设备冲突;③将有关中断请求号、中断类型(电平触发或边缘触发)存储到WinDriver自定义的数据结构中。
  4 系统调试
  在实际调试中,通过JTAG端口,使用Quartus II的SignalTap II逻辑分析仪可以测试板卡的运行情况。测得1553B板卡工作在BC模式下访问HI-6110,如图4所示;工作在RT模式下访问HI-6110,如图5所示;PCI9054读DPRAM,如图6所示。
  以NIOSⅡ处理器为设计并实现1553B板卡,采用PCI总线作为主机和1553B板卡通信。该板卡可实现BC、RT、MT三种模式,实现了1553B总线协议。采用SOPC技术使得该板卡体积小,节省了系统资源,而且具有很好的系统升级性能。目前,该接口卡已成功应用于军队某武器控制系统仿真项目中。

 

关键词:接口

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!