APP下载

基于PXI总线的航空串行总线专用通讯模块研制

2014-09-17魏祎许永辉

现代电子技术 2014年17期
关键词:波特率低电平电平

魏祎 许永辉

摘 要: ARINC429在航空航天等领域应用广泛,RS 232是常用的计算机与外部设备接口。作为某军事领域电子系统测试平台的一部分,设计了基于PXI总线的ARINC429和RS 232的专用通讯模块。以DSP和FPGA联合作为控制器,实现通讯模块的PXI接口,基于专用的协议芯片DEI1016实现ARINC429通讯,由FPGA为协议芯片提供时序和数据的缓存FIFO,并在FPGA中集成了RS 232协议编解码。测试表明,该通讯模块能实时可靠灵活地收发数据,实现对被测电子系统多路ARINC429和RS 232总线的测试。

关键词: PXI; ARINC429; RS 232; 通讯模块

中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2014)17?0086?04

Abstract: Bus ARINC429 is widely used in the fields of aviation and aerospace. RS 232 is a commonly?used interface between a computer and external devices. A specific communication module for ARINC429 and RS 232 based on PXI bus was designed as a part of a military?purpose electric equipment automatic test system. The DSP and FPGA are combined as the controller to realize PXI bus interface of communication module. ARINC429 bus communication is realized on the basis of specific protocol chip DEI1016. The time sequence and data buffer FIFO is provided for the protocol chip by FPGA. The RS 232 protocol CODEC is integrated into FPGA. The test results indicate that the communication module can receive and transmit data reliably and flexibly. The testing of multi?channel ARINC429 and RS 232 buses of the electronic system under test was achieved.

Keywords: PXI; ARINC429; RS 232; communication module

0 引 言

ARINC429总线协议由美国航空电子工程委员会(Airline Engineering Committee)于1977年提出,目前是民用及军用飞行设备上的常用总线[1]。ARINC429总线为串行差分总线,单向传输,两个设备间需要双向传输时则需要两个通道独立传输,有高速和低速两种传输方式,高速信号为100 Kb/s,低速信号为12~14.5 Kb/s,具有可靠性高、结构简单、抗干扰性强等特点。

对于实现微处理器对外的ARINC429接口,主要有两种方式,一种方法采用FPGA芯片内部实现协议编解码,实现串/并转换[1],开发成本低,但难度较高,开发周期长,且可靠性相对较低,可能出现未知问题;另一种方法采用专用的ARINC429协议芯片DEI1016,可以在串行的差分信号和16位的并行信号之间进行转换,并自动进行奇偶校验,技术成熟,只需设计者提供合适的逻辑和时序进行控制,能实现协议的可靠传输。

某个与军事领域合作的电子信号测试平台基于PXI总线,现要求提供其中一个专用模块,包含多路ARINC429收发通道,两路RS 232收发通道进行测试。本文将对这一模块的主要技术进行阐述。国外已陆续由PXI产品推出,研制此基于PXI总线的ARINC429通讯模块具有重要的实际应用意义[2]。

模块采用TI公司的TMS320DM642作为主处理器,ARINC429总线通讯基于协议芯片DEI1016,由Altera公司的Cyclone Ⅲ系列FPGA芯片为其提供时序和数据缓存FIFO。软件方面,基于LabWindows/CVI编写上位机应用程序,可通过上位机接收到的数据分析被测设备是否能正常工作。

1 总体方案设计

采用TMS320DM642 DSP作为控制芯片,通过PXI接口,实现与上位机的通信,64 MB RAM可以缓存数据,外接Cyclone Ⅲ FPGA和4路ARINC429接收通道,2路发送通道,采用两个DEI1016实现,由FPGA给出DEI1016需要的逻辑和时序,并对每一路接收通道给出256×16 b的缓存FIFO。总体方案框图如图1所示。

FPGA的输出信号为3.3 V TTL电平,DEI1016除了两路接收通道允许±10 V的差分电平,其余数据总线和控制信号也为TTL电平,可以与FPGA直接互联。

DEI1016的输入输出包括以下几类信号:时钟信号CLK,需要由外部提供1 MHz时钟信号,两路ARINC429差分信号接收通道,一路发送通道,16位的并行数据总线,复位信号MR,输入控制字信号LDCW,发送数据控制信号TXR,ENTX,LD1,LD2,接收数据控制信号DR,OE,SEL等,DEI1016与FPGA的连接如图3所示。

需要发送的并行格式数据由DEI1016转化为符合ARINC429协议要求的串行信号后由发送通道输出,为TTL电平,不能满足429协议电平要求的+10 V差分信号要求,需要经过电平转换才能发送到总线上。BD429是专用的ARINC429总线驱动芯片,也可用于ARINC571,ARINC575,RS 422等总线[4],支持TTL和CMOS输入,可通过编程设置输出差分信号电压范围,支持高速和低速ARINC429通信,常与DEI1016配合用于ARINC429接口。

FPGA中的ARINC429固件程序包括片选、时钟、写控制字、发送、接收等部分。

DEI1016在FPGA的时序控制下进行传输,与FPGA在同一时钟域内,因此1 MHz时钟信号通过FPGA内部PLL分频50 MHz时钟产生并提供。

DEI1016的正常工作之前需要先低电平复位,然后向控制寄存器内输入控制字,控制字一共16位,包括设置ARINC429字长为25位或32位、奇偶校验位、是否启动自检模式、传输速率(高速、低速)等。控制字发送到数据总线上,在由FPGA给出的LDCW信号上升沿时锁存到DEI1016中。例如,设置DEI1016以高速传输(不使用自检模式),32位字长,则控制字为0x0020。

将符合协议编码要求的串行数据通过发送通道发送出去,需要FPGA提供如下的时序:当DEI1016空闲,可以发送数据时,则输出TXR为高电平,读取该信号若不为高证明可以传输,使能发送模块开始工作,在计数器计数控制下在特定时间输出LD1为低电平,数据总线上发送高位16位数据,输出LD2为低电平,发送低位16位数据,并始终输出ENTX为低电平。

ARINC429发送一个数据有32位,分为高位16位和低位16位。其中1~8位为地址标号位,主要用于确定字中的数据类型;9~10位为信息源/目标识别位(SDI),表明物理量从何而来;11~28位为数据位;29位为符号位,用于表示方位;30~31位为SSM位,定义硬件设备条件、操作方式、数据内容的有效性;第32位为校验位[5]。对于控制芯片发送给DEI1016的并行数据,协议芯片会进行如下转换,如图4所示[4]。

接收模块包括接收控制逻辑和FIFO。当总线上收到串行数据时,DEI1016输出DR信号为低电平,通知控制器可以进行接收数据。接收控制逻辑的设计与发送逻辑类似,在计数器计数控制下依次输出波形OE和SEL。FIFO由Quartus的MegaWizard工具自动生成。

2.2 RS 232硬件设计和编解码逻辑

本方案选择在FPGA内部实现RS 232通信数据的串/并转换。RS 232是一种异步串行总线,单端通讯,适合于传输速率在0~20 000 b/s范围内的通信[6],常用于计算机接口与近端外部终端设备的连接。一般使用DB?25或DB?9连接器连接总线和终端设备,本方案中使用DB9连接器。协议电气特性规定-3~-15 V表示逻辑1, +3~+15 V表示逻辑0。采用MAX232完成TTL电平到标准电平之间的转换,用光耦HCL2631和HCL263L隔离不同电源和参考地的FPGA和MAX232[7]。

FPGA内部的RS 232固件程序包括波特率设置、发送、接收部分。

程序的顶层包含控制寄存器等,对DSP发送的命令和数据进行锁存,并根据选择通道启动底层模块。发送或接收之前先进行复位,清空所有FIFO,寄存器内为初始值;然后对波特率、控制字等进行设置,波特率可设置为2 400 b/s,4 800 b/s,9 600 b/s等,默认为9 600 b/s。根据波特率分频11.059 2 MHz时钟生成发送时钟。

发送编码部分包括缓存FIFO和串/并转换逻辑,将DSP发送的并行数据自动存入FIFO,当FIFO不为空且总线空闲时,读出其中的数据,根据设置的波特率生成发送时钟s_clk,在s_clk的触发下将8位的并行数据每一位依次发送到单端的总线上,转为串行数据,并根据需要在最后一位加上奇偶校验。

接收功能模块与发送编码部分的原理类似,总线上收到串行数据时,由状态机将串行数据转为并行数据,自动存入FIFO,当DSP空闲时将FIFO中的数据读出。4 测试结果

利用上位机应用程序验证发送数据与接收数据是否一致。对4个ARINC429通道、多种波特率下的2个RS 232通道进行单帧数据收发测试,发送与接收的数据一致;对所有通道进行大量数据的连续收发测试,所有结果均正确返回,长时间工作没有出现误码,证明该模块硬件电路设计没有问题,FPGA内编写的逻辑正确,以及所编写的DSP程序、仪器驱动函数、上位机应用程序均能稳定可靠地工作。

5 结 语

本文设计了一种基于PXI总线,以DSP和FPGA为控制核心,基于DEI1016的ARINC429通讯模块,并包含RS 232通讯。设计了硬件电路,并根据DEI1016的时序要求编写了控制逻辑,根据RS 232的协议要求在FPGA内集成了编解码逻辑,编写了DSP程序和基于LabWindows/CVI的上位机应用程序,完成整个通讯模块的研制。经过测试表明,该设计方案正确可行,发送和接收数据稳定可靠,在实际应用中,能保证长时间无差错运行,具有实际的工程应用价值。

参考文献

[1] 黄敬礼,钱进.基于DM642的实时多协议转换器设计[J].现代电子技术,2011,34(22):1?3.

[2] 宋慧娟.PXI Express外置控制器研制[D].哈尔滨:哈尔滨工业大学,2011.

[3] 张华强,赵剡,陈雨.基于FPGA 的ARINC429 通讯系统的设计与实现[J].通信技术,2010,43(12):4?5.

[4] 廖治宇.通用ARINC429总线分析测试仪的软件设计[D].成都:电子科技大学,2013.

[5] Devices Engineering Inc. DEI1016/ DEI1016A/ DEI1016B ARINC429 transceiver [R]. [S.l.]: Devices Engineering Inc, 2004.

[6] 王景忠,王俊芳,于立佳.一种实现RS 232接口一对多通信的方法[J].无线电工程,2012,42(12):2?4.

[7] 龚荣华.RS 232接口芯片的IC设计[D].大连:大连理工大学,2008.

[8] 许永辉,杨京礼,林连雷.TMS320DM642 DSP原理与应用实践[M].北京:电子工业出版社,2012.

[9] 刘森,许永辉,孙闯.基于LAN的高集成度数据采集设备研制[J].现代电子技术,2013,36(16):115?116.

[10] 李世良,许永辉.PCI总线智能GJB289A仿真卡设计[J].现代电子技术,2010,33(20):114?115.

需要发送的并行格式数据由DEI1016转化为符合ARINC429协议要求的串行信号后由发送通道输出,为TTL电平,不能满足429协议电平要求的+10 V差分信号要求,需要经过电平转换才能发送到总线上。BD429是专用的ARINC429总线驱动芯片,也可用于ARINC571,ARINC575,RS 422等总线[4],支持TTL和CMOS输入,可通过编程设置输出差分信号电压范围,支持高速和低速ARINC429通信,常与DEI1016配合用于ARINC429接口。

FPGA中的ARINC429固件程序包括片选、时钟、写控制字、发送、接收等部分。

DEI1016在FPGA的时序控制下进行传输,与FPGA在同一时钟域内,因此1 MHz时钟信号通过FPGA内部PLL分频50 MHz时钟产生并提供。

DEI1016的正常工作之前需要先低电平复位,然后向控制寄存器内输入控制字,控制字一共16位,包括设置ARINC429字长为25位或32位、奇偶校验位、是否启动自检模式、传输速率(高速、低速)等。控制字发送到数据总线上,在由FPGA给出的LDCW信号上升沿时锁存到DEI1016中。例如,设置DEI1016以高速传输(不使用自检模式),32位字长,则控制字为0x0020。

将符合协议编码要求的串行数据通过发送通道发送出去,需要FPGA提供如下的时序:当DEI1016空闲,可以发送数据时,则输出TXR为高电平,读取该信号若不为高证明可以传输,使能发送模块开始工作,在计数器计数控制下在特定时间输出LD1为低电平,数据总线上发送高位16位数据,输出LD2为低电平,发送低位16位数据,并始终输出ENTX为低电平。

ARINC429发送一个数据有32位,分为高位16位和低位16位。其中1~8位为地址标号位,主要用于确定字中的数据类型;9~10位为信息源/目标识别位(SDI),表明物理量从何而来;11~28位为数据位;29位为符号位,用于表示方位;30~31位为SSM位,定义硬件设备条件、操作方式、数据内容的有效性;第32位为校验位[5]。对于控制芯片发送给DEI1016的并行数据,协议芯片会进行如下转换,如图4所示[4]。

接收模块包括接收控制逻辑和FIFO。当总线上收到串行数据时,DEI1016输出DR信号为低电平,通知控制器可以进行接收数据。接收控制逻辑的设计与发送逻辑类似,在计数器计数控制下依次输出波形OE和SEL。FIFO由Quartus的MegaWizard工具自动生成。

2.2 RS 232硬件设计和编解码逻辑

本方案选择在FPGA内部实现RS 232通信数据的串/并转换。RS 232是一种异步串行总线,单端通讯,适合于传输速率在0~20 000 b/s范围内的通信[6],常用于计算机接口与近端外部终端设备的连接。一般使用DB?25或DB?9连接器连接总线和终端设备,本方案中使用DB9连接器。协议电气特性规定-3~-15 V表示逻辑1, +3~+15 V表示逻辑0。采用MAX232完成TTL电平到标准电平之间的转换,用光耦HCL2631和HCL263L隔离不同电源和参考地的FPGA和MAX232[7]。

FPGA内部的RS 232固件程序包括波特率设置、发送、接收部分。

程序的顶层包含控制寄存器等,对DSP发送的命令和数据进行锁存,并根据选择通道启动底层模块。发送或接收之前先进行复位,清空所有FIFO,寄存器内为初始值;然后对波特率、控制字等进行设置,波特率可设置为2 400 b/s,4 800 b/s,9 600 b/s等,默认为9 600 b/s。根据波特率分频11.059 2 MHz时钟生成发送时钟。

发送编码部分包括缓存FIFO和串/并转换逻辑,将DSP发送的并行数据自动存入FIFO,当FIFO不为空且总线空闲时,读出其中的数据,根据设置的波特率生成发送时钟s_clk,在s_clk的触发下将8位的并行数据每一位依次发送到单端的总线上,转为串行数据,并根据需要在最后一位加上奇偶校验。

接收功能模块与发送编码部分的原理类似,总线上收到串行数据时,由状态机将串行数据转为并行数据,自动存入FIFO,当DSP空闲时将FIFO中的数据读出。4 测试结果

利用上位机应用程序验证发送数据与接收数据是否一致。对4个ARINC429通道、多种波特率下的2个RS 232通道进行单帧数据收发测试,发送与接收的数据一致;对所有通道进行大量数据的连续收发测试,所有结果均正确返回,长时间工作没有出现误码,证明该模块硬件电路设计没有问题,FPGA内编写的逻辑正确,以及所编写的DSP程序、仪器驱动函数、上位机应用程序均能稳定可靠地工作。

5 结 语

本文设计了一种基于PXI总线,以DSP和FPGA为控制核心,基于DEI1016的ARINC429通讯模块,并包含RS 232通讯。设计了硬件电路,并根据DEI1016的时序要求编写了控制逻辑,根据RS 232的协议要求在FPGA内集成了编解码逻辑,编写了DSP程序和基于LabWindows/CVI的上位机应用程序,完成整个通讯模块的研制。经过测试表明,该设计方案正确可行,发送和接收数据稳定可靠,在实际应用中,能保证长时间无差错运行,具有实际的工程应用价值。

参考文献

[1] 黄敬礼,钱进.基于DM642的实时多协议转换器设计[J].现代电子技术,2011,34(22):1?3.

[2] 宋慧娟.PXI Express外置控制器研制[D].哈尔滨:哈尔滨工业大学,2011.

[3] 张华强,赵剡,陈雨.基于FPGA 的ARINC429 通讯系统的设计与实现[J].通信技术,2010,43(12):4?5.

[4] 廖治宇.通用ARINC429总线分析测试仪的软件设计[D].成都:电子科技大学,2013.

[5] Devices Engineering Inc. DEI1016/ DEI1016A/ DEI1016B ARINC429 transceiver [R]. [S.l.]: Devices Engineering Inc, 2004.

[6] 王景忠,王俊芳,于立佳.一种实现RS 232接口一对多通信的方法[J].无线电工程,2012,42(12):2?4.

[7] 龚荣华.RS 232接口芯片的IC设计[D].大连:大连理工大学,2008.

[8] 许永辉,杨京礼,林连雷.TMS320DM642 DSP原理与应用实践[M].北京:电子工业出版社,2012.

[9] 刘森,许永辉,孙闯.基于LAN的高集成度数据采集设备研制[J].现代电子技术,2013,36(16):115?116.

[10] 李世良,许永辉.PCI总线智能GJB289A仿真卡设计[J].现代电子技术,2010,33(20):114?115.

需要发送的并行格式数据由DEI1016转化为符合ARINC429协议要求的串行信号后由发送通道输出,为TTL电平,不能满足429协议电平要求的+10 V差分信号要求,需要经过电平转换才能发送到总线上。BD429是专用的ARINC429总线驱动芯片,也可用于ARINC571,ARINC575,RS 422等总线[4],支持TTL和CMOS输入,可通过编程设置输出差分信号电压范围,支持高速和低速ARINC429通信,常与DEI1016配合用于ARINC429接口。

FPGA中的ARINC429固件程序包括片选、时钟、写控制字、发送、接收等部分。

DEI1016在FPGA的时序控制下进行传输,与FPGA在同一时钟域内,因此1 MHz时钟信号通过FPGA内部PLL分频50 MHz时钟产生并提供。

DEI1016的正常工作之前需要先低电平复位,然后向控制寄存器内输入控制字,控制字一共16位,包括设置ARINC429字长为25位或32位、奇偶校验位、是否启动自检模式、传输速率(高速、低速)等。控制字发送到数据总线上,在由FPGA给出的LDCW信号上升沿时锁存到DEI1016中。例如,设置DEI1016以高速传输(不使用自检模式),32位字长,则控制字为0x0020。

将符合协议编码要求的串行数据通过发送通道发送出去,需要FPGA提供如下的时序:当DEI1016空闲,可以发送数据时,则输出TXR为高电平,读取该信号若不为高证明可以传输,使能发送模块开始工作,在计数器计数控制下在特定时间输出LD1为低电平,数据总线上发送高位16位数据,输出LD2为低电平,发送低位16位数据,并始终输出ENTX为低电平。

ARINC429发送一个数据有32位,分为高位16位和低位16位。其中1~8位为地址标号位,主要用于确定字中的数据类型;9~10位为信息源/目标识别位(SDI),表明物理量从何而来;11~28位为数据位;29位为符号位,用于表示方位;30~31位为SSM位,定义硬件设备条件、操作方式、数据内容的有效性;第32位为校验位[5]。对于控制芯片发送给DEI1016的并行数据,协议芯片会进行如下转换,如图4所示[4]。

接收模块包括接收控制逻辑和FIFO。当总线上收到串行数据时,DEI1016输出DR信号为低电平,通知控制器可以进行接收数据。接收控制逻辑的设计与发送逻辑类似,在计数器计数控制下依次输出波形OE和SEL。FIFO由Quartus的MegaWizard工具自动生成。

2.2 RS 232硬件设计和编解码逻辑

本方案选择在FPGA内部实现RS 232通信数据的串/并转换。RS 232是一种异步串行总线,单端通讯,适合于传输速率在0~20 000 b/s范围内的通信[6],常用于计算机接口与近端外部终端设备的连接。一般使用DB?25或DB?9连接器连接总线和终端设备,本方案中使用DB9连接器。协议电气特性规定-3~-15 V表示逻辑1, +3~+15 V表示逻辑0。采用MAX232完成TTL电平到标准电平之间的转换,用光耦HCL2631和HCL263L隔离不同电源和参考地的FPGA和MAX232[7]。

FPGA内部的RS 232固件程序包括波特率设置、发送、接收部分。

程序的顶层包含控制寄存器等,对DSP发送的命令和数据进行锁存,并根据选择通道启动底层模块。发送或接收之前先进行复位,清空所有FIFO,寄存器内为初始值;然后对波特率、控制字等进行设置,波特率可设置为2 400 b/s,4 800 b/s,9 600 b/s等,默认为9 600 b/s。根据波特率分频11.059 2 MHz时钟生成发送时钟。

发送编码部分包括缓存FIFO和串/并转换逻辑,将DSP发送的并行数据自动存入FIFO,当FIFO不为空且总线空闲时,读出其中的数据,根据设置的波特率生成发送时钟s_clk,在s_clk的触发下将8位的并行数据每一位依次发送到单端的总线上,转为串行数据,并根据需要在最后一位加上奇偶校验。

接收功能模块与发送编码部分的原理类似,总线上收到串行数据时,由状态机将串行数据转为并行数据,自动存入FIFO,当DSP空闲时将FIFO中的数据读出。4 测试结果

利用上位机应用程序验证发送数据与接收数据是否一致。对4个ARINC429通道、多种波特率下的2个RS 232通道进行单帧数据收发测试,发送与接收的数据一致;对所有通道进行大量数据的连续收发测试,所有结果均正确返回,长时间工作没有出现误码,证明该模块硬件电路设计没有问题,FPGA内编写的逻辑正确,以及所编写的DSP程序、仪器驱动函数、上位机应用程序均能稳定可靠地工作。

5 结 语

本文设计了一种基于PXI总线,以DSP和FPGA为控制核心,基于DEI1016的ARINC429通讯模块,并包含RS 232通讯。设计了硬件电路,并根据DEI1016的时序要求编写了控制逻辑,根据RS 232的协议要求在FPGA内集成了编解码逻辑,编写了DSP程序和基于LabWindows/CVI的上位机应用程序,完成整个通讯模块的研制。经过测试表明,该设计方案正确可行,发送和接收数据稳定可靠,在实际应用中,能保证长时间无差错运行,具有实际的工程应用价值。

参考文献

[1] 黄敬礼,钱进.基于DM642的实时多协议转换器设计[J].现代电子技术,2011,34(22):1?3.

[2] 宋慧娟.PXI Express外置控制器研制[D].哈尔滨:哈尔滨工业大学,2011.

[3] 张华强,赵剡,陈雨.基于FPGA 的ARINC429 通讯系统的设计与实现[J].通信技术,2010,43(12):4?5.

[4] 廖治宇.通用ARINC429总线分析测试仪的软件设计[D].成都:电子科技大学,2013.

[5] Devices Engineering Inc. DEI1016/ DEI1016A/ DEI1016B ARINC429 transceiver [R]. [S.l.]: Devices Engineering Inc, 2004.

[6] 王景忠,王俊芳,于立佳.一种实现RS 232接口一对多通信的方法[J].无线电工程,2012,42(12):2?4.

[7] 龚荣华.RS 232接口芯片的IC设计[D].大连:大连理工大学,2008.

[8] 许永辉,杨京礼,林连雷.TMS320DM642 DSP原理与应用实践[M].北京:电子工业出版社,2012.

[9] 刘森,许永辉,孙闯.基于LAN的高集成度数据采集设备研制[J].现代电子技术,2013,36(16):115?116.

[10] 李世良,许永辉.PCI总线智能GJB289A仿真卡设计[J].现代电子技术,2010,33(20):114?115.

猜你喜欢

波特率低电平电平
铁道车辆高/低电平信号智能发生器设计
CAN 总线波特率自适应程序设计
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
基于FPGA的异步串行通信波特率容错设计
15-MeV电子直线加速器的低电平系统
NPC五电平Z源逆变器的设计研究
基于三电平光伏并网逆变器控制系统的研究与实践
基于NPC三电平变换器的STATCOM研究
一种多电平逆变器及其并网策略
集成电路静态参数测试