|
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的驱动设置。
|
|