在数据的发送过程中,PC机通过串口把数据发送到单片机的串口缓存区,单片机查询到串口缓存区有数据后,接收到一个完整的数据字。同时单片机向HS3282写入一个32位的数据字也要分两次才能完成。准备好低16位数据,控制HS3282的引脚PL1,使PL1从低电平跳变到高电平,将低16位数据写入;同样的方法将高16位数据在PL2从低电平跳变到高电平写入。通过启动HS3282的引脚ENTX发送控制信号,HS3282将自动发送数据,其标准满足ARINC429协议,单片机检测到TX/R为高,即数据发送完成时将ENTX置低。发送函数如下所示:
SendData(char *data)
{ P1.6=0; //P1.6=PL1
P3=*data;
P4=*(data+1); //低16位
P1.6=1; //上升沿写入
P1.7=0; //P1.7=PL2
P3=*(data+2);
P4=*(data+3); //高16位
P1.7=1; //上升沿写入
P2.6=0; //P2.6=ENTX,发送使能
while(P0.2); //P0.2=TX/R,检查是否发送完成
P2.6=1; //发送禁止
}
5 结论
基于16位单片机的ARINC429总线接口板利用高性能的专用芯片组HS3282和HS3182来设计总线接口,由于该芯片能很好的满足ARINC429协议,给接口板的设计带来了很大的方便,经实际利用简单有效,并且具有很高的可靠性。