HS-3182是作为ARINC429总线的发送设备完成两路信号的差分驱动,与HS-3182相连的电容控制用来控制ARINC429的传输速率,其中c1,c2为75pF时对应ARINC429总线的高速状(100Kbps)、为300pF时对应ARINC总线的低速状态(12.5Kbps),因此尽量用高精度、军品级的电容,HS-3282和HS-3182相连的电路图如图2所示:
图2 HS-3282和HS-3182的连接图
3.2 ARINC429总线收发硬件电路
硬件的计算机系统采用Intel的16位单片机80C196KC,该CPU可以动态的配置成8位或者16位的总线宽度,结构采用寄存器结构,有232字节的RAM寄存器阵列供用户配置,外接晶振为12MHz或者20MHz,可以满足ARINC429总线的高速发送和接收。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位
}
}
发送程序设计