基于MCS-51单片机和DEI1016的ARINC429通信模块设计
2014-09-26张泾周张广标
杨 明,张泾周,李 辉,张广标
(西北工业大学 自动化学院,陕西 西安 710129)
随着现代电子科技的不断发展更新,航空电子设备日趋数字化、网络化、综合化。各电子设备间稳定的、可靠的数据交换,以及源设备向各目标设备传送控制命令、传感数据信息实时采集等,都迫切需要一种简单、可靠、抗干扰性强的通信总线[1]。ARINC429在这样的背景下产生了,这是一种非集中控制、传输可靠、错误隔离性好的通信总线。其凭借上述优势在航空通信领域尤其是大型民用飞机和惯性导航、航空器外部环境数据采集中受到广泛应用[2],已然成为了民用航空领域的主流通信总线。
本文就是建立在ARINC429总线协议基础上,从制造经济、调试简单、使用方便、可靠工作的角度考虑,使用MCS-51单片机和DEVICE ENGINEERING公司的DEI1016芯片为处理核心单元设计的一种可进行标准429数据收发的通信模块,其亦可通过RS232总线与上位计算机进行相连以实现数据交换。
1 ARINC429通信参数
1.1 ARINC429通信数据格式
429数据总线上传输的数据不同于其他通信方式,属于异步串行、广播式通信。每帧32位或25位(根据通信需求设置),每一位都有其不可取代的作用,429通信充分利用了总线波特率和有效数据位,实现了数据控制完整性和高通信速率的统一[3]。传输速率分高速(100 kbit/s)和低速(12~14.5 kbit/s)两种。其32位数据帧格式如图1所示。
图1 ARINC429数据帧格式Fig.1 Data format of ARINC429 communication
由图1可看出,ARINC429数据帧被分为5个数据场:
LABEL:标签/标志位,此8位用来表示当前这一帧数据的意义或数据类型,使得接收器在正确接收后能够将此数据用作正确的用途。如在某航空通信中,标签为0b01100001的一帧数据表示计算空速。
S/D Or DATA:源/目标识别符(当不用做识别符时,可以看做正常数据),当需要将特定数据发送给多设备中的某一特定接收器,或多设备系统中的源设备需要根据字的内容被接收器识别时,可以使用此识别符功能,接收到此数据的其他设备会因识别符不匹配而放弃数据。
DATA:数据部分,表示以LABEL指定的数据类型的数值大小和符号(由第29位符号位决定)。
SSM:符号/状态矩阵,SSM场用于记录硬件设备状态(故障/正常),运行模式(功能测试),或者数据字内容(验证的/非计算数据)的有效性。
PARITY:奇偶校验位,若通信中需要奇偶校验,则此位必须根据校验方式被置位或清零,以满足数据奇偶性,接收器通过接收到数据的这一位判断数据的正误。
ARINC429的25位通信数据格式使用了使数据帧产生意义的最简格式,数据场只有LABEL(8—1位,同32位格式)和DATA(25—9位)两部分,使得在其他控制位可以省去的情形下最大限度提高数据传输效率。
1.2 ARINC429数据的电气特性
429通信的数据发送和接收方通过双绞屏蔽线连接,受驱动能力的限制,一条数据总线上连接的接收器不应超过20个。这种通信采用RZ双极性归零调制方式,由高、零、低状态组成,发送和接收通道都采用差分方式,大大提高了通信抗干扰能力。一般,当发送器开路时,指定输出端能被可靠识别的不同的输出信号电压应为:高电平,A对B端+6.5 ~ +13 V;“零”,A对B端-2.5 ~+2.5 V;低电平,A对 B 端 -13~-6.5 V 。
而429的编码逻辑也提高了其数据传输可靠性和稳定性。如果A端在位区间开始后处于高电平,并且在区间结束前又回到“零”,且B端信号恰好与其互补(电平和为零),则此位表示逻辑“1”;如果A端在区间开始后处于低电平,并且在区间结束前又回到“零”,且B端信号恰好与其互补,则此位表示逻辑“0”[4]。429通信数据的传输电平与信号逻辑关系如图2所示。
图2 ARINC429信号编码逻辑Fig.2 Coding logic of ARINC429 data
2 DEI1016芯片工作原理
能够实现429数据格式通讯的集成电路有很多,如DEI1016、HS-3282以及我国自行研制的EP-H3280。[5]从工作稳定、应用经验丰富的角度考虑,在这里我们选用DEVICE ENGINEERING的DEI1016芯片。
2.1 DEI1016芯片简介
DEI1016是一款具有两路接收和一路发送通道、单一低压供电的CMOS工艺集成电路,支持429,571,575,706等航空通信规范。其发送通道具有8个32位FIFO缓冲器。在工作时,只需要在复位后对16位控制寄存器进行设置便可选择需要的工作模式。图3是DEI1016芯片内部结构框图:2
图3 DEi1016芯片内部框图Fig.3 DEi1016 block diagram
.2 DEI1016发送和接收字格式
虽然ARINC429总线上的数据字格式已被定为通用标准,但是DEI1016从用户使用方便,数据组合简单明晰的角度考虑,对图1中的数据格式进行了重组,并将32位数据表述为字2(高16位)和字1(低16位),重组原则为将数据和其他控制位分开放在两个字中,重组前后对照如图4:
图4 DEi1016字2字1与32位串行数据映射关系Fig.4 Mapping of serial data to/from word1 and word2
由上图可见,DEI1016将一帧中的计量数据放至字2和字1的高三位,字1低13位为数据流的各控制位,方便数据分析和提取。用户应注意到在写发送数据的时候和处理接收数据的时候应按照字2字1的格式进行。
2.3 DEI1016控制功能
DEI1016具有数据收发自测、校验控制、源/目标码检测、数据速率选择等适应429数据格式的控制功能,均可通过写控制字来实现。芯片复位后可以在写控制字信号/LDCW的下降沿将控制字写入。然后便可进行数据操作,其数据收发流程如下:
数据发送:在TXR有效的情况下,可以向发送缓冲器中按先字1后字2的顺序写入至多8个32位字,TXR信号自动复位,而后由外部使能ENTX。发送器将先根据用户设置的校验方式对校验位进行设置,而后发送电路将重组后(见图3)的数据逐位送至总线,在一个长字全部送出后,发送电路会自动插入4个间隔位区间以表示一帧数据发送完[6]。
数据接收:在接收器n接收到一组数据后,若用户激活了源/目标码检测功能,则接收器n将收到数据中的S/D两位和用户写入控制字中的Xn、Yn两位进行对比,若不匹配则拒绝接收数据,若匹配,再根据用户设置的校验方式进行数据校验,若校验成功,则将校验位置0表示数据无误,若失败则将其置1表示数据有误,但无论正误都将/DRn置0通知上层单元读取数据,数据被读走后再置1。
3 ARINC429通信模块设计
3.1 硬件电路设计
MCS-51单片机质优价廉,与DEI1016芯片进行并行连接可充分发挥其特性,单片机可由上位机接收要发送的数据也可根据用户程序产生要发送的数据,将其合理地送至DEI1016并发出。单片机也可对接收到的数据进行加工处理后换为其他格式再传至上位机,也可根据对接收到的数据进行解析判断要执行的任务。与其他微控制器不同的是,51单片机是8位机,数据只能分时送至DEI1016,则需要对一部分或全部数据进行锁存,本文提出了一种便捷,高效的数据交换方法。还需注意到,DEI1016发送通道的数据电平范围为+5V~-5V,那么在输出端应该添加电平匹配电路,将其抬至+10V~-10V,与DEI1016同时产生的BD429便能很好地做到这一点。而接收通道具有内部电平转换功能,可直接与总线连接。本文的通信模块电路原理图如图5所示。
3.2 模块工作原理
从图中可以看出,仅使用了两片74HC573对读写数据进行锁存,其中U3锁存写数据时的低8位,U4锁存读数据时的低8位。读写高8位数据不需要进行锁存。在译码逻辑电路中通过A8地址线来对两片锁存器片选及锁存信号进行控制,对每个锁存器,片选和锁存信号都是同步的,即片选为高时,锁存为高,片选为低时,锁存为低[7],这样是为了使锁存器直通的时候不能输出数据,可以输出数据的时候要进行锁存。由于控制信号分别包括/WR和/RD,两片锁存器的控制信号不会冲突。其中锁存信号均由或非门产生是为了保证在未读或未写的状态下锁存信号为低,防止无效数据进入。DEI1016的数据准备好信号/DR1和/DR2经与门连接至单片机中断0口,并且分别接至P1.1和P1.2引脚,收到数据时,应在中断程序中查看是哪个接收器引起的中断。发送器空信号TXR连接至P1.4口,同时经非门送至中断1口,发送数据时可用查询或中断方式,在软件中可以设置。
图5 ARINC429通信模块原理图Fig.5 Schematic of ARINC429 communication module
在写数据时,先使DEI1016相应数据存储单元选通控制信号(如/LDCW)无效,并使A8=0,此时U3输出高阻态,但/LE1信号为高,低8位数据已写入锁存器。后再使该控制信号有效,并使A8=1,此时U3输出数据并锁存,同时在控制信号的下降沿将低8位和高8位数据一同打入指定位置。
在读数据时,先使相应接收器选通控制信号(如/OE1)有效,并使A8=0,A9(SEL)=0,选择读字1,此时U4已进入数据但输出高阻态,因此先读走的是高8位数据。后再使控制信号无效,并使A8=1,此时高8位为高阻态,之前进入U4的数据被送出,此时可读出低8位数据。
实际数据操作如下:
写控制字:在复位信号(P1.3)低脉冲后,按照上述写数据顺序,先使/LDCW无效,那么基地址可选为B800H(电路中未用到的地址),A8=0,则写地址亦为B800H,数据写入U3但不送出。后再使/LDCW有效,A8=1,则写地址为A100H,将16位数据一同打入。
发送数据:按照上述写数据顺序,先使/LD1无效,A8=0,同写控制字低8位,地址为B800H。再使/LD1有效,A8=1,写地址为9900H,16位数据写入字1。同理,写字2针对/LD2信号操作,写低8位地址为B800H,高8位地址为9100H。
接收数据:按照上述读数据顺序,读接收器1时,先使/OE1有效,基地址为8800H,A8=0,SEL(A9)=0选择字1,则读高8位地址亦为8800H,再使/OE1无效,可选基地址B800H,A8=1,则读低8位地址为B900H。读字2时,与读字1不同点在于SEL=1,于是可得出读字2高8位地址为8A00H,读低8位地址仍为B900H。读接收器2与接收器1完全类似,可得出读字1高8位地址为8000H,读字1低8位地址为B900H,读字2高8位地址为8200H,读字2低8位地址为B900H。对429模块数据收发操作的单片机外部地址总结于表1:
表1 收发数据的外部地址列表Tab.1 Address list of receiving/sendding data
由图5可见,电路原理中还包括232通讯模块,方便与上位机进行数据传输。使得使用232接口对429接口数据的操作可以方便地实现,模块与RS232总线挂接示意如图6。
3.3 程序设计
按照上述提到的操作步骤,下面用经成功验证的程序段对操作做进一步说明:
图6 ARINC429通信模块与RS232总线连接示意图Fig.6 Connection between ARINC429 module and RS232 bus
3.3.1 写控制字
3.3.2 发送数据
以下是采用查询方式发送数据的程序段,若采用中断方式,则无需第一行判断语句。
3.3.3 接收数据(只对接收器1说明,接收器2类似)
3.4 模块工作特性分析
本模块结构简单,电路稳定可靠,PCB面积大小适中,与其它具有ARINC429通信接口的设备连接方便。特别是需要在其它类型通信方式和429通信方式间进行转换时,可以利用常用的RS232接口经过该模块进行数据格式转换(如图6)。假设单片机12 MHz晶振频率计算,按照3.3节的数据处理程序,每装满一次DEI1016的FIFO只需要27×8=216 μs(微秒), 从接收器读取一次数据仅需28 μs, 与429数据以高速率(100 kbit/s)传送时一个字需要的(32+4)×10=360 μs相比,已完全满足实时收发的要求。
4 结 论
与基于DSP、FPGA及一些高端控制器设计的ARINC429通信接口相比,该设计具有经济、实用、硬件资源利用充分、操作简单等优点,特别适合应用在基于232总线的429通信测试模块中。模块已经在某型航空发电机控制器地面综合测试系统中得到成功应用,在高通信速率下数据误码率极低,通信可靠。实践证明,数据收发快速稳定,模块工作良好。
[1]寇明延.现代航空通信技术[M].北京:国防工业出版社, 2011.
[2]赵国辉,王小鹏,王杰. TMS320F2812与ARINC429数据总线之间的通信设计[J]. 电子设计工程, 2011, 19(1):87-90.
ZHAO Guo-hui, WANG Xiao-peng, WANG Jie. Design of communication between TMS320F2812 and ARINC429 data bus[J].Electronic Design Engineering, 2011, 19(1):87-90.
[3]王德周,李登科. 基于PCI总线的ARINC429接口卡设计[J].电子设计工程, 2012,20(7):184-186.
WANG De-zhou, LI Deng-ke. Design of ARINC429 interface board based on PCI bus[J]. Electronic Design Engineering,2012,20(7):184-186.
[4]高扬,徐景硕.实现ARINC429总线数据传输的方法[J].测控技术, 2002,21(8):64-68.
GAO Yang, XU Jing-shuo. Method to realize the ARINC429 bus datatransmission[J].Measurement & Control Technology,2002,21(8):64-68.
[5]周前柏,马伟勃. ARINC429通信方式的研究与实现[J]. 航空计算技术 , 2010,40(4):121-124.
ZHOU Qian-bai, MA Wei-bo. Research and implementation of ARINC429 communication[J]. Aeronautical Computing Technique.2010,40(4):121-124.
[6]危淑敏,苗克坚,王毅航.基于DEI1016及BD429的总线接口设计[J].长春理工大学学报:自然科学版,2008,31(1):111-114.
WEI Shu-min, MIAO Ke-jian, WANG yi-hang.Design of ARINC429 bus interface based on DEI1016 and BD429[J].Journal of Changchun University of Science and Technology,2008,31(1):111-114.
[7]马淑华,王凤文,张美金. 单片机原理与接口技术[M]. 北京:北京邮电大学出版社, 2005.