完整的ARINC429 协议和422协议的FPGA 硬件调试简介并完成多路机载总线收发器设计与实现
扫描二维码
随时随地手机看文章
摘要:本文以workbench 为平台,vxworks 为操作系统,chipscope 为分析工具,介绍了完整的ARINC429 协议和422协议的FPGA 硬件调试,通过硬件调试发现modelsim 仿真所不能发现的问题并分析问题解决问题,从而完成多路机载总线收发器的设计与实现。
在航空电子综合化系统中,快速、有效的数据传输对整个航空电子系统的性能有很大的影响,因此数据总线被称为现代航空电子系统的骨架,利用FPGA 技术设计集成多路ARINC429[1] 和422[4] 通道的通信芯片,可以有效的提高数据通信模块的处理能力和集成度,降低成本,本文以verilog 语言为基础, 通过ISE 编程,modelsim 仿真, 仿真无误后综合实现,用impact 将bit 文件烧写到FPGA 中,进行硬件调试,并用chipscope 进行分析,为了更加方便的进行调试,以workbench 为平台建立驱动。关于429 协议和422 协议已经非常成熟,因此本文主要从硬件调试的角度介绍多路机载总线收发器的实现。
1 FPGA 逻辑设计原理很多情况下,我们需要一块板子既具有429[2-3] 功能又具有422 数据传输功能,因此我们将429 逻辑和422 逻辑[6] 建立在一个模块下,分别给429 逻辑和422 逻辑分配不同的地址空间,通过不同的地址空间控制429 和422 协议的片选信号,同时LOCALBUS 数据是双向数据,429 和422 数据是单向数据,因此需要加一个双向缓冲器,实现单向数据和双向数据之间的转换。协议部分已经非常成熟,在此不做赘述。
2 原型验证板验证
2.1 原型验证板原理
我们所用的电路板名称为:MFD-GPM1018。设计原理如图1:CPU 控制FPGA 数据的写入和读出,FPGA 通过429 或者422 接收到的数据按照相应的协议转换之后由cpu 读出,cpu 通过Localbus 提供FPGA 要发送的数据并配置寄存器。
CPU 读出来的数据通过LBC-1-AD00——07 到锁存器把地址和数据按一定的控制规则转换为单独的地址信号和数据信号。LBC-1-AD00——07 表示某时刻是地址信号某时刻是数据信号。ROM 存储cpu 运行过程中的中间数据程。H1-8445 电平转换,将429 数据电平由bus 总线所要求的电平转
换为FPGA 需要的3.3V。ASP105885-01 是连接器将429、422 数据连接到GPM 调试版上,进行硬件调试。MAX3362 将串行数据转换为差分的形式。M25P16-AVMN6T 是FPGA 的配置芯片,通过JTAG 接口将bit 文件加载到FPGA 中这样配置之后,下次上电之后就可以直接将bit 文件load 到FPGA 中而不需重新加载。
2.2 硬件调试过程
在Workbench 开发平台vxworks[3] 操作系统下,首先连接串口网口从调试板到PC 机,新建超级终端,选择通信速率为115200,其他都为默认值,网口下载操作系统到cpu 中,串口用来控制cpu,串口网口连接好后,连接JTAG 接口,(JTAG连接线连USB 下载线连到PC 机),电源电压设置为28V,然后上电,通过调试板上的电压转换器转换为5V 供FPGA 板子使用,上电之后通过IMPACT 下载.bit 文件到FPGA 中,这种配置类型断电即丢失,下次上电后需要重新下载,同时打开超级终端,建立串口连接,此时vxworks 操作系统将会自动启动,在此操作系统下输入一些命令控制cpu,常用的就是读(d)和写(m)命令,并且打开chipscope,来进行调试。
为了充分验证逻辑功能的正确性:我们分别进行内回环测试,也就是在逻辑内部实现自收自发,然后进行外回环测试,将板子上发送接口与接收接口连接起来,实现回环收发,测试都无误后进行外部测试,对429 协议采用429 的仿真卡进行测试,对422 协议采用串口调试工具进行测试。
2.2.1 429 测试
429 的仿真卡发送429 差分数据,通过FPGA 接收,判断接收到的数据是否是发送的数据,以此来检测接收逻辑的正确性。
429 仿真卡BUStools /ARINC v3.20 仿真验证:
1)TX setup : 设置发送通道,波特率、奇偶校验
2)DEFINE :ADD new message 添加发送通道,我们需要TXD1、TXD2,设置发送数据参数:data——BIN 设置32—9位数据,前8 位数据通过Label 设置,Label 是一个233 数据类型,2 指的是2 位,比如设置为256,则为10101110, 映射到发送的数据为0111 0101,即为0x75,最高位为奇偶校验位,在发送过程中自动产生。
3) 设置完成后,点击run,停止发送的话点击stop。
通过超级终端读出接收到的数据与发送的数据一致,测试正确。
2.2.2 通过串口调试工具进行422 测试
422 的发送端口和接收端口通过232 连到PC 机上,PC机通过串口调试工具发送一串数据,经过232 转422 接收这些数据,接收到的数据在超级终端中打印,检测接收是否正确,类似的,调用驱动422 发送一串数据,通过232 到PC 机通过串口调试工具看到发送出来的数据,检测发送的数据是否正确。调试过程中比较关键的一点就是发送和接收端口波特率要设置一致。