基于CAN總線(xiàn)的A320模擬器硬件仿真方案研究
4.2 通信實(shí)現
CAN總線(xiàn)節點(diǎn)數據傳輸的實(shí)現主要分為三部分,分別是初始化設置、發(fā)送數據和接收數據。初始化CAN控制器的一般步驟如下:
(1)將SFRPAGE寄存器設置為CAN0_PAGE;
(2)將CAN0CN寄存器中的INIT和CCE位設置為1;
(3)設置位定時(shí)寄存器和BRP擴展寄存器中的時(shí)序參數;
(4)初始化每個(gè)消息對象或將其MsgVal位設置為無(wú)效;
(5)將INIT位清零。接收數據有查詢(xún)和中斷兩種方式,本文在設計時(shí)采用中斷方式。接收數據程序流程圖如圖4所示。本文引用地址:http://dyxdggzs.com/article/187558.htm
當總線(xiàn)上有數據傳入時(shí)程序進(jìn)入中斷,讀取中斷寄存器的值,該值對應32個(gè)消息對象中的其中一個(gè)消息號,將該消息號寫(xiě)入IFx命令請求寄存器,讀取IFx報文控制寄存器,查看標志位NewData,值為1表示有新數據,值為0表示沒(méi)有新數據,讀取完當前數據后查看數據塊結束標識位Eob,值為1表示數據塊結束,當前數據接收完成;值為0,表示數據塊沒(méi)有結束,將消息號增一,繼續接收下一個(gè)消息對象中的數據,直至接收完成。發(fā)送數據時(shí)需配置寄存器,設定報文ID,此外還需在將數據寫(xiě)入數據寄存器的時(shí)候,先寫(xiě)高位后寫(xiě)低位,即先對CANODATH賦值,再對CANODATL賦值,最后將消息號寫(xiě)入IFx命令請求寄存器即啟動(dòng)數據傳送。
5 結語(yǔ)
實(shí)際測試表明,模塊間通信穩定,抗干擾性強,且布線(xiàn)簡(jiǎn)潔。該方案已經(jīng)應用于機載電子系統故障診斷模擬機,雖然該模擬機是針對A320機型,但是該方案也可擴展應用到其他機型的模擬機,具有廣闊的應用前景。
評論