新闻中心

EEPW首页>嵌入式系统>设计应用> 基于80C196KC的ARINC429总线接口板设计

基于80C196KC的ARINC429总线接口板设计

作者: 时间:2009-03-31 来源:网络 收藏

HS-3182是作为的发送设备完成两路信号的差分驱动,与HS-3182相连的电容控制用来控制的传输速率,其中c1,c2为75pF时对应的高速状(100Kbps)、为300pF时对应ARINC的低速状态(12.5Kbps),因此尽量用高精度、军品级的电容,HS-3282和HS-3182相连的电路图如图2所示:

图2 HS-3282和HS-3182的连接图

3.2收发硬件电路

硬件的计算机系统采用Intel的16位单片机,该CPU可以动态的配置成8位或者16位的总线宽度,结构采用寄存器结构,有232字节的RAM寄存器阵列供用户配置,外接晶振为12MHz或者20MHz,可以满足的高速发送和接收。CPU和HS-3282的比较简单,发送时常和HS-3182相配合使用,因为HS-3282的数据宽度为16位的,因此单片机也配置成16位总线宽度,CPU和HS-3282的部分关键就是对收发的逻辑控制,诸如接收器1数据可以读取标志D/R1,接收器2数据可以读取标志D/R2,总线选择信号SEL等端口都需要CPU的控制和监视,在这里就直接和CPU的I/O口相连,当然也可以通过CPU的I/O,/RD,/WR及地址的低位和GAL或者CPLD相连,通过编成组成专门的逻辑控制电路,这在单片机的I/O口不够用时可以采用这种办法,HS-3282需要CPU控制和监视的管脚如表3所示:

表3. S-3282控制及状态的引脚及功能

由于HS-3282是外围器件,收发速率都没有CPU快,因此要为CPU提供READY信号,在这里为CPU提供READY信号的是/EN1和/EN2管脚,只要这两个管脚有一个是低电平就可以产生READY,因此对这两个信号加一个与非门既可以产生READY信号。

4 软件

HS3282的收发既可以采用查询方式又可以采用中断方式,由于发送器状态标志位TX/R接到CPU的I/O口,这就限制了软件时发送采用查询方式。接收两种方式都可以,在这里采用中断方式接收。

初始化程序

在上电复位后单片机应首先进行自身初始化和HS3282的设置,主要是设置单片机的波特率和向HS3282写控制字。在这里设置单片机的串口为工作模式1,即10位构成一串行帧: 1位起始位(0),8位数据(低位在先),1位停止位(1)。单片机首先将控制字写到P3和P4端口,通过置高再置低P2.7端口,将控制字在/CWSTR的下降沿写入,进行工作方式、码速率等的设置。

接收程序设计

数据的接收以中断响应的处理为核心。HS3282有两路接收通道,这两个接收通道标志位/DR1、/DR2共享一个中断,就容易出现中断冲突现象,为了避免这种现象在硬件设计中已经考虑到了这种问题,将接收器标志/DR1、/DR2分别与单片机I/O口的P0.0和P0.1相连接,当产生接收中断时,通过软件检测方式判断是哪一路引起的中断,其软件设计如下:

ReceiverData(char *data)

{

if(P0.0==0) //P0.0=/DR1

{ P1.3=0; //P1.3=SEL

P1.4=0; //P1.4=/EN1

*data=P3;

*(data+1)=P4; //接收低16位

P1.3=0;

P1.4=1;

P1.4=0;

*(data+2)=P3;

*(data+3)=P4; //接收高16位

}

else

if(P0.1==0) //P0.1=/DR2

{ P1.3=0;

P1.5=0;

*data=P3;

*(data+1)=P4; //接收低16位

P1.3=0;

P1.5=1;

P1.5=0;

*(data+2)=P3;

*(data+3)=P4; //接收高16位

}

}

发送程序设计



评论


相关推荐

技术专区

关闭