NIOS PCB
3.4 NIOSⅡ及外围接口电路设计
ALtera公司的QuartusⅡ软件是一个完整的多平台设计环境。具有分析、综合、布线、功耗估计等功能,能满足各种特定设计的需要,为可编程片上系统(SoPC)提供全面的设计环境。采用其中的S oPC Builder可在图形化界面内定制一个NIOSⅡ嵌入式系统.配合NIOSⅡ的软件开发工具NIOSⅡIDE,可以方便地开发从硬件到软件的完整系统,大大提高了设计效率。
硬件设计步骤如下:
1)在SoPC Builder软件中定制CPU软核。配置CPU硬件选项,如指令缓存等;增加外围设备接口,如数据存储器RAM接口、程序存储器Flash接口、JTAG调试口、HS3282接口模块等,添加外设如PCI总线接口、Watchdog等。
2)定义处理器上电复位地址。这里指定复位地址为外部Flash。系统在复位后会自动从外部Flash将用户指令读取到片内RAM中执行。
3)添加用户自定义指令,NIOSⅡ允许用户定制多达256个自定义指令。采用自定义指令可以用硬件来实现计算量较大的指令。对于频繁调用的指令可以有效地节省运算时间。本设计中将ARINC429数据的拼接和拆分用自定义指令来实现。
4)在FPGA内完成NIOSⅡ与HS3282接口模块、NIOSⅡ与PCI总线的接口模块及复位电路等。
5)系统编译完成后使用QuartusⅡ 5.0软件和ByteBlasterⅡ下载电缆通过PC机在线配置FPGA,软件设计完成后若调试通过就可以将FPGA的配置数据下载到FPGA的配置器件中。
硬件框图如图3所示。
4 软件设计
4.1 ARINC429数据的接收与发送
系统上电后应该先初始化HS3282。外部工作时钟为1MHz,内部接收和发送速率可设置为外部时钟的1/10或1/80,即100 kb/s或12.5 kb/s。设置ARINC429数据字格式为32位或者25位。采用中断的方式接收数据,HS3282有两个接收器,当有一个数据字到来后。相应的接收数据有效标志DR变为低电平,向主控制器发送读数据请求。读取接收数据时,将SEL置为0,然后给相应的EN引脚送入一定宽度的负脉冲信号,接收第一个16位字。此后把SEL置1,再给EN引脚送入一个负脉冲信号,接收第二个16位字。如果处理器忽略了该请求,则下一个接收数据会覆盖前一个数据。HS3282的数据字为16位.因此一个ARINC数据字(32位)要分两次才能读出。发送数据时要先将数据写入HS3282的内部FIFO中,向FIFO写操作过程中,当PL1由低电平跳变到高电平时.低16位数据写入FIFO的输入寄存器的低16位;当PL2由低电平跳变到高电平时.高16位数据写入FIFO输入寄存器的高16位,同时将输入寄存器的内容写入FIFO单元,连续操作8次便可将FIFO写满。第一个数据字写入后TX/R由高变低。FIFO写满后,通过启动发送使能信号ENTX.HS-3282便可将这8个数据字串行发送。当然也可以根据实际需要每次发送小于8个数据字。当FIFO为空时,TX/R由低变高,禁止发送使能信号。向FIFO重新写入数据。
4.2 NIOSⅡ软件开发
NIOSⅡ的软件开发是在HAL (hardware abstraction layer)的基础上进行的。HAL系统库是一个轻量级的运行环境.提供了与硬件通讯的简单设备驱动程序。它还集成了ANSIC标准库,这些API允许设计者用标准C函数(例如:printf,fopen,fwrite等)去存取设备。HAL类似于ARM系统中的BSP(board—support package),提供了一个一致的设备存取界面。SoPC Builder和NIOSII IDE紧密集成,在SoPC Builder生成硬件系统以后.NIOSⅡIDE能够自动生成对应的客户HAL系统库。更新硬件系统设置以后.NIOSⅡIDE能自动更新HAL的驱动设置。
软件设计步骤如下:
1)在NIOSⅡIDE中创建软件项目,NIOSⅡIDE会根据用户在SoPC Builder中的硬件配置自动生成用户HAL系统库.如系统头文件和初始化文件等。
2)利用用户HAL系统库在NIOSⅡIDE开发环境下编写程序源代码C/C++程序,编译调试代码,调试完毕后用NIOSⅡIDE提供的Flash软件Flash Programmer将生成的可执行文件烧写到Flash中。
在FPGA产品开发中嵌入NIOSⅡ软核微处理器具有高度集成的特点。本设计不仅在FPGA内集成了一个CPU,而且集成了CPU周边的硬件逻辑和外部设备接口,以及整个系统设计的逻辑译码电路。达到高度集成的目的。本系统的特点是:
1)NIOSⅡ嵌入式微处理器成本低。开发周期短,提高了产品的性价比和研发速度。
2)采用可编程逻辑器件使系统具有可升级和可扩展性,不仅可以更改FPGA的内部设计.还可以对NIOSⅡ的软件进行更新升级,灵活地满足不同的需求。
5 结束语
采用SoPC开发产品可缩短开发时间,增加系统的灵活性,减小PCB板的体积和布线难度,其设计方式正在受到越来越多设计者的重视。本文介绍的系统达到了预期目的,完成了基于NIOSⅡ软核微处理器的应用设计,可以很方便的应用于PCI总线微处理器中。随着新一代NIOS软核处理器的推出。嵌入式系统的性能将更加强大,基于NIOSⅡ的开发将继续推进系统在各个技术领域的应用和技术的创新
http://www.nios2.com/SOPC/SOPCte ... 20070614091201.html
更多回帖