艾巴生活网

您现在的位置是:主页>科技 >内容

科技

探究NIOS(II的1553B总线测试系统设计)

2024-05-20 16:49:52科技帅气的蚂蚁
0简介MIL-STD-1553B是美国在20世纪70年代提出的。它具有可靠性高、实时性好、灵活性强的特点。已发展成为国际公认的数据总线标准,广泛应用

探究NIOS(II的1553B总线测试系统设计)

0简介

MIL-STD-1553B是美国在20世纪70年代提出的。它具有可靠性高、实时性好、灵活性强的特点。已发展成为国际公认的数据总线标准,广泛应用于现代飞机、导弹、卫星、船舶、坦克等航空、航天和武器领域,并逐步扩展到地铁交通控制等民用领域。1553B数据总线于90年代初引入中国。经过十几年的发展,1553B已经成为国内航空航天的主要航电总线之一。

通过不断的努力,国内一些研究机构已经能够开发生产符合1553B标准的接口芯片。本文采用中国电子科技集团公司第五十八研究所自主研发的JBU61580作为1553B总线通信控制器。完全兼容DDC公司的同类型芯片BU61580,支持即插即用,具备总线控制(BC)、远程终端(RT)、监控终端(MT)三大功能。

1系统硬件设计

系统采用Altera公司Cyclone系列的FPGA(EP2C8Q208C8)作为主控芯片,内嵌NIOS软核处理器。输入时钟为20 MHz,经锁相环倍频后的两路100 MHz时钟分别提供给NIOS软核处理器和外部SDRAM。USB接口部分采用CH375芯片,1553B接口部分采用JBU61580芯片。SoPC Builder支持的自定义组件用于自定义时序转换逻辑,提高接口芯片的读写速度,而NIOS II则负责两者之间的数据分析和交换。

1.1总体设计思想

硬件原理框图如图1所示。整个系统可以分为五个部分:(1)系统的核心模块:NIOS处理器;(2)处理器外围支持电路:时钟单元和SDRAM控制器;(3)程序下载调试模块:JTAG接口控制器和异步通信接口(UART用于打印调试信息);(4)系统内部外围模块:如系统ID、定时器、自定义逻辑等。(5)系统外设:EPCS内存,CH375、JBU61580。

1.2系统外围接口设计

EPCS接口

该系统使用Altera的专用配置芯片EPCS4来存储FPGA的配置数据和NIOS II程序。EPCS4总存储空间为4 Mbit,分为8个64 KB的块,通过专用电路接口与FPGA连接[2]。FPGA的配置数据从EPCS4的偏移地址存储到0,然后FPGA的配置数据就是NIOS II程序,也就是说FPGA和NIOS II程序的配置数据都是从EPCS4的低端地址开始存储的,但是在本设计中,高端块的存储空间可以用来存储JBU61580的配置数据。

CH375接口

CH375是一款带有USB总线的通用设备接口芯片,工作在全速模式,兼容USB2.0,在USB通信中内置底层协议,具有无故障的内置固件模式和灵活的外部固件模式[3]。在内置固件模式下,屏蔽相关USB协议,自动完成标准USB枚举配置过程,本地控制器完全不需要任何处理,简化了NIOS的固件编程。在本设计中,CH375芯片只负责数据交换,接收上位机下载的数据和NIOS上传的数据。CH375的8位数据总线、4线控制信号读选通、写选通、片选输入和中断输出通过SoPC定制逻辑连接到Avalon系统互连结构。

JBU61580接口

JBU61580工作在16位缓冲非零等待模式,工作电压为5 V,工作在3.3 V的FPGA不能直接与之相连,中间需要连接总线驱动245芯片进行电平转换。控制JBU61580的寄存器和存储器的读写有两种方法:一种是用PIO端口模拟JBU61580的读写顺序。这种方法实现简单,扩展性强,但读写速度慢,不利于系统的模块化和集成化;其次,根据HDL语言定制符合JBU61580的时序控制逻辑,通过访问存储器读写JBU61580的寄存器和存储器。这种方法实现起来稍微有点复杂,但是可以大大提高JBU61580的数据读写速度。这

由于JBU61580工作在16位缓冲模式,而CH375只有8位数据总线,所以上位机程序要约定与NIOS相同的数据封装格式。上位机JBU61580的16位地址和数据信息以及部分传输控制指令拆分成8位数据,通过USB总线传输,NIOS接收后重新解析成16位地址和数据。当所有的配置数据传输完毕后,NIOS根据控制指令对JBU61580进行配置,使其工作在指令要求的模式(BC、RT或MT)。此外,NIOS II还会根据上位机的指令决定是否将配置数据写入EPCS,这样单板在上电复位后就不需要从上位机获取配置数据,可以离线工作。在离线工作状态下,NIOS还应实时监控CH375的中断信号,以便接收上位机的控制指令,进入在线工作模式。同样,如果NIOS需要上传JBU61580的通讯数据,也要将读取的16位数据拆分成两个8位数据,然后写入CH375的上传端点。上位机取数据后,也会按照约定的打包格式显示16位数据。

软件设计分为NIOS固件程序和上位机程序。NIOS固件程序分为固件主程序、中断处理程序和包解析程序。上位机程序包括BC模式接口与传输控制、RT模式接口与传输控制、MT接口与传输控制。

2.1 NIOS固件程序

固件主程序

主固件程序主要负责系统初始化和进程控制。初始化主要包括CH375工作状态测试、工作模式选择、JBU61580初始复位、读取并判断EPCS4配置存储器的高位地址特征字符以确认单板是否需要离线工作等。初始化后进入主循环,实时监控USB接口和1553B接口的中断信号。

中断处理程序

中断处理程序包括CH375中断处理程序和JBU61580中断处理程序。由于1553B接口的高实时性要求,在SoPC系统构建过程中,JBU61580的中断优先级高于CH375。

在CH375中断处理程序中,首先读取中断状态,判断中断类型,然后进入相应的中断类型处理程序。如果批处理端点接收到数据,它读取缓冲器中的数据,设置中断下载标志,并退出中断[4]。如果批处理端点发送完数据,则应设置中断上传标志以退出中断。这个过程如图2所示。

在JBU61580的中断处理程序中,有三种不同的工作模式[5]: BC、RT、MT,分别对应不同的中断处理程序。以RT模式为例,当JBU61580从1553B总线接收到与该地址相关的报文时,如果满足中断条件,就会产生中断。NIOS用于加工。在中断处理程序中,首先读取JBU61580的中断状态寄存器,判断是否是干扰引起的假中断,读取消息描述符中的消息块状态字,判断是否是非法指令。读取RT状态字寄存器,判断子地址是否繁忙;读取RT的最后一个命令寄存器,获得命令字;根据消息描述符中的数据块指针,找到数据块,并将数据保存到消息块的结构中[6]。这个过程如图3所示。

2.1.3数据包分析器

数据包解析程序负责解析上位机传来的8位数据和传输控制指令,遵循上位机的数据封装协议,解析配置JUB61580的16位地址和相应数据,以及一些必要的启动、复位等控制指令。另外,包解析程序会将从JBU61580读取的16位通信数据拆分打包成8位数据,写入CH375的批量上传端口,等待上位机取走。包解析程序如图4所示。

2.2电脑设计

CH375在计算机端提供了应用层接口,是CH375的动态链接库DLL提供的功能性的面向应用的API。用户可以在上位机软件中直接调用这些API,大大减少了编写USB设备驱动的工作量。CH375动态链接库提供的API包括:设备管理API、数据传输API和中断处理API。上位机程序可以分为两部分:下载数据和上传数据。下载数据通过调用CH375WriteData()函数实现,上传数据通过调用CH375ReadData()函数实现。由于CH375芯片的上传缓冲区和下载缓冲区只有64 B,一次数据传输不能超过64 B,整个上位机软件由VB2008编写,图5为RT控制界面的界面。

3结论

根据本文提出的方法,成功实现了通过USB实时控制JBU61580的1553B总线接口测试系统。整个系统硬件设计简单,软件设计稳定可靠,可应用于1553B系统的调试和测试以及各种仿真实验。

参考

[1]周元林,吴忠,仇.基于BU-61580的1553B总线接口设计[J].计算机工程与应用,2010,46 (35): 65-68。

任承志,宋克非,王淑荣。基于BU65170和单片机系统的RT设计与实现[J].微机信息,2006,22 (6-2): 18-20。

[3]雷勇,吴勇,李盘。基于USB的1553总线通用接口的研究[J].计算机测控,2010,18 (4): 861-864。

[4] DDC。MIL-STD-1553B设计者指南。1998.

[5]康多尔工程公司MIL-STD-1553协议教程[S].2004

、许。基于DSP的1553B总线系统的设计与实现[J].电子设计工程,2010 (8): 4-7。

japan quarterly 日本季刊