基于80C196KC的ARINC429總線接口板設(shè)計(jì)
在數(shù)據(jù)的發(fā)送過程中,PC機(jī)通過串口把數(shù)據(jù)發(fā)送到單片機(jī)的串口緩存區(qū),單片機(jī)查詢到串口緩存區(qū)有數(shù)據(jù)后,接收到一個(gè)完整的數(shù)據(jù)字。同時(shí)單片機(jī)向HS3282寫入一個(gè)32位的數(shù)據(jù)字也要分兩次才能完成。準(zhǔn)備好低16位數(shù)據(jù),控制HS3282的引腳PL1,使PL1從低電平跳變到高電平,將低16位數(shù)據(jù)寫入;同樣的方法將高16位數(shù)據(jù)在PL2從低電平跳變到高電平寫入。通過啟動(dòng)HS3282的引腳ENTX發(fā)送控制信號,HS3282將自動(dòng)發(fā)送數(shù)據(jù),其標(biāo)準(zhǔn)滿足ARINC429協(xié)議,單片機(jī)檢測到TX/R為高,即數(shù)據(jù)發(fā)送完成時(shí)將ENTX置低。發(fā)送函數(shù)如下所示:
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,發(fā)送使能
while(P0.2); //P0.2=TX/R,檢查是否發(fā)送完成
P2.6=1; //發(fā)送禁止
}
5 結(jié)論
基于16位單片機(jī)的ARINC429總線接口板利用高性能的專用芯片組HS3282和HS3182來設(shè)計(jì)總線接口,由于該芯片能很好的滿足ARINC429協(xié)議,給接口板的設(shè)計(jì)帶來了很大的方便,經(jīng)實(shí)際利用簡單有效,并且具有很高的可靠性。
評論