现在位置:范文先生网>理工论文>电子通信论文>AT89C52单片机与ARINC429航空总线接口设计

AT89C52单片机与ARINC429航空总线接口设计

时间:2022-08-06 13:36:58 电子通信论文 我要投稿
  • 相关推荐

AT89C52单片机与ARINC429航空总线接口设计

摘要:DEI1016是一种可支持ARINC429航空总线协议的串行接收、发送器件。文中介绍了DEI1016的主要功能和工作原理,给出了DEI1016的数据收发过程,同时重点介绍了DEI1016与AT89C52单片机接口电路的设计方法。
  关键词:DEI1016;接收;发送;接口设计;AT89C52
  
  1DEI1016的主要功能
  
  DEI1016是DeviceEngineeringIncorporated生产的一种可支持ARINC429航空总线协议的串行接收、发送器件。该器件的主要功能如下:
  
  ●串行数据字长为32或25位;
  
  ●串行数据速率为100kbps或12.5kbps;
  
  ●具有独立的收、发电路;
  
  ●两个独立的接收器可直接与ARINC429总线接口;
  
  ●具有串/并接收数据转换,和并/串发送数据转换功能;
  
  ●对接收的数据可进行奇偶状态校验;并可对发送数据奇偶状态进行设置;
  
  ●可自动产生字与字之间的间隔;
  
  ●采用单一+5V供电。
  
  2DEI1016的工作原理
  
  DEI1016的引脚功能及特点以前已有介绍,现仅对该器件的工作原理作以描述。
  
  2.1DEI1016的复位及初始化
  
  电路上电后,首先在MR引脚施加200μs的低电平脉冲以使DEI1016复位,然后把控制字写到16位数据总线上,这样,在LDCW引脚施加低电平便可把控制字写入到控制字寄存器,尔后便可接收和发送数据。
  
  2.2DEI1016的数据发送过程
  
  DEI1016的数据发送时序如图1所示。发送数据时,首先应查询TXR引脚是否为高电平,若是高电平,表明发送存储器已空;此时置ENTX引脚为低电平可停止发送数据,并把要发送的数据写到16位数据总线上。之后,若要发送数据字1,则置LD1为低,LD2为高;若发送数据字2,则置LD1为高,LD2为低?此时再查询TXR引脚是否为低电平,若为低电平,表明发送数据已装载到存储器中,此时再置ENTX引脚为高电平即可发送数据。DEI1016的发送存储器最多可装载8个32位字长的数据,DEI1016采用的是先进先出的发送顺序。
  
  2.3DEI1016的数据接收过程
  
  DEI1016的数据接收时序如图2所示。当接收器1接收到数据后,系统会置DR1为低电平;而当接收器2接收到数据后,系统将置DR2为低电平。欲使接收器1将接收数据的字1送至16位数据总线上,应先置SEL为低电平,再置OE1为低电平且置OE2为高。而后再置SEL为高电平,便可将字2送至16位数据总线。要使接收器2的数据送至16位数据总线上,则置OE2为低电平,OE1为高电平即可。
  
  表174LS373功能表
  
  输出控制OE使能G输入D输出QLHHHLHLLLLXQoHXXZ
  3AT89C52与DEI1016的接口设计
  
  AT89C52(U1)8位微控器与DEI1016的16位数据总线进行数据交换时,必须先利用锁存器来锁存数据。其接口电路框图见图3。发送数据时,U1先把要发送的数据分成低8位和高8位送出,并进入U3、U4锁存,尔后再把16位数据一同送至DEI1016?U2?的数据总线上。U3、U4、U5、U6均选用74LS373芯片,它们的内部均由D锁存器和三态输出门组成,其功能表如表1所列。当OE为低电平,且G为高电平时,输出Q与输入D之间为直通方式。而当OE为高电平,且G由高电平跳变为低电平后,D端输入数据被D锁存器锁存,之后即使D端(P0口)输入数据再发生变化,也不会影响已锁存的数据。如果OE为低电平,系统将输出原先锁存的数据。为了锁存低8位数据,需要由U1的WR和地址选通信号Y7(由译码器U7译出)经或非门U8去控制U3的G端。实际上,只有U1在执行写操作时,WR和Y7才同时为低电平,而此时低8位数据才能被U3暂时锁存。高8位数据的锁存与此类似M,U1的P3.4由高变低可打开U3、U4的输出门,从而使U3、U4把数据送至U2的数据总线,当U1的P1.3或P1.4由高变低以把16位数据装入发送存储器后,P3.4会由低变高,此时U3、U4输出为高阻抗状态,但不会影响U2的数据输出状态。其发送程序如下:
  
  movdptr,#e000h
  
  mova,#d1l;取字1的低8位
  
  movx@dptr,a;把字1的低8位锁入U3
  
  movdptr,#c000h
  
  mova,#d1h;取字1的高8位
  
  movx@dptr,a;把字1的高8位锁入U4
  
  clrp3.4;打开U3、U4的输出
  
  nop
  
  clrp1.3;字1数据装入DEI1016
  
  nop
  
  setbp3.4;关闭U3、U4的输出
  
  setbp1.3
  
  movdptr,#e000h
  
  mova,#d2l;取字2的低8位
  
  movx@dptr,a;把字2的低8位锁入U3
  
  movdptr,#c000h
  
  mova,#d2h;取字2的高8位
  
  movx@dptr,a;把字2的高8位锁入U3
  
  clrp3.4;打开U3、U4的输出
  
  nop
  
  clrp1.4;字2数据装入DEI1016
  
  nop
  
  setbp3.4
  
  setbp1.4
  
  用U1接收数据,应将DR1、DR2及TXR经与门U13接至U1的INT0,在INT0口产生中断后,U1便执行读操作,并通过RD和Y5控制U14、U15以读入DR1、DR2及TXR的状态。U2接收到数据或发送数据完毕后,即向U1的INT0口申请中断,并在中断程序中判断DR1、DR2及TXR的状态。TXR为低表明发送完毕,而DR1或DR2为低则表明已收到数据。此时可置P1.2(SEL)为低电平,同时也置P1.0(接DEI1016的OE1)或P1.1?接DEI1016的OE2?为低电平,以使字1的数据出现在数据总线上,而使P1.0、P1.1经U11异或后输出以使U5、U6的G端为高电平,从而把数据锁入U5、U6。由于RD分别与Y7、Y6相或后的输出是与U5、U6的OE门相连接的,因此,U1执行读操作时,应先后打开U5、U6的OE门来把数据读入。其接收程序如下:(以接收器1为例)。
  
  clrp1.2;置DEI1016的SEL=0,读字1
  
  clrp1.0;置DEI1016的/OE1=0
  
  setbp1.1;置DEI1016的/OE2=1
  
  nop
  
  movdptr,#e000h
  
  movxa,@dptr;把字1的低8位读入
  
  mov10h,a
  
  movdptr,#c000h
  
  movxa,@dptr;把字1的高8位读入
  
  mov11h,a
  
  setbp1.2;置DEI1016的SEL=1,读字2
  
  nop
  
  movdptr,#e000h
  
  movxa,@dptr;把字2的低8位读入
  
  mov12h,a
  
  movdptr,#c000h
  
  movxa,@dptr;把字2的高8位读入
  
  mov13h,a
  
  setbp1.0;置DEI1016的/OE1=1
  
  setbp1.1;置DEI1016的/OE2=1
  
  setbp1.2;置DEI1016的SEL=1
  
  图3
  
  DEI1016的两路接收可能产生同时接收的现象。即在上述两路共用一个中断源时,如果某一路申请中断已进入接收程序,那么另一路同时接收的数据就可能被屏蔽。解决方法是:进入中断程序后,在接收数据过程中再查询另一路DR的状态。当然,如果每路单独使用一个中断源,效果将会更好。
  
  4结束语
  
  实际上,上述AT89C52与DEI1016的接口电路经改进也可以应用到其它16位数据总线接口的电路中,而如果用ISP器件替代锁存器及其门电路,还可大大减小电路板的面积。
  

【AT89C52单片机与ARINC429航空总线接口设计】相关文章:

关于使用多个同种VXI总线仪器的软件设计08-19

单片机课程设计心得08-10

单片机课程设计心得08-17

微机原理与接口技术课程设计心得08-16

安全总线在自动化控制的应用08-19

安全总线在自动化控制的应用08-19

单片机课程设计心得体会02-24

TM1300 PCI-XIO口的UART和USB接口设计04-12

TM1300 DSP系统的以太网通信接口的设计与实现04-12

嵌入式系统数字图像采集接口电路设计08-19