電液伺服機構(gòu)與CAN總線接口設(shè)計
伺服機構(gòu)與CAN總線接口軟件的主要任務(wù)有:初始化、接收總線信息、向總線發(fā)送信息、受理中斷、數(shù)據(jù)運算與輸入輸出控制。伺服機構(gòu)傳感器采集的信號存入指定發(fā)送子地址的數(shù)據(jù)緩沖區(qū)內(nèi),從彈上計算機接收的指令和數(shù)據(jù)則存入指定的接收子地址的數(shù)據(jù)緩沖區(qū)內(nèi)。當接口收到彈上計算機的控制指令后,開始對伺服機構(gòu)進行控制。
初始化程序設(shè)計是本接口設(shè)計中重要的一個環(huán)節(jié)。在系統(tǒng)上電復(fù)位后,首先確定微處理器的設(shè)置,然后在SJA復(fù)位后,需要確定與通信有關(guān)的參數(shù),包括總線定時、各種寄存器和工作模式等。在系統(tǒng)運行過程中,也可以發(fā)出一個復(fù)位請求,根據(jù)實現(xiàn)情況重新確定系統(tǒng)的通信參數(shù)。其初始化程序主要步驟有:
1)初始化微處理器,同時關(guān)閉與CAN控制器相連的外部中斷。
2)檢查復(fù)位端,若進行復(fù)位狀態(tài),則設(shè)置通信參數(shù),包括:工作模式、時鐘驅(qū)動寄存器、接收碼寄存器、輸出控制寄存器、接收屏蔽寄存器和總線定時等。
3)檢查復(fù)位請求位,若復(fù)位請求位為低,則系統(tǒng)進入正常工作狀態(tài),開微處理器的外部中斷以及CAN控制器本身的中斷。
初始化程序流程圖如圖5所示。
CAN總線報文數(shù)據(jù)的接收是由控制器根據(jù)CAN總線通信協(xié)議自主完成的。接收到的數(shù)據(jù)被放入接收緩存,然后狀態(tài)寄存器的“接收緩存狀態(tài)”標志位將被置位,同時,中斷寄存器的“接收中斷”標志位也被置位。微處理器必須讀出接收到的數(shù)據(jù),同時釋放接收緩存。報文的接收過程可以采用中斷方式,也可以通過查詢的方式實現(xiàn)。
本設(shè)計中采用查詢方式實現(xiàn)數(shù)據(jù)的接收。如圖6所示為查詢方式的流程圖。CAN控制器的接收中斷標志被關(guān)閉。微處理器讀取CAN控制器的狀態(tài)寄存器的“接收緩存狀態(tài)”標志位,檢查是否有數(shù)據(jù)到來。如果緩沖區(qū)為空,表示沒有接收到數(shù)據(jù),微處理器便轉(zhuǎn)到其它工作上去,直到下一輪檢查。如果緩沖區(qū)滿,則表示有數(shù)據(jù)放入緩存。微處理器可以根據(jù)報文信息讀取緩沖區(qū)的數(shù)據(jù),之后需要設(shè)置命令寄存器的“釋放緩存標志”,通知SJA1000釋放接收緩存,完成接收,并進行相應(yīng)的數(shù)據(jù)處理。但由于接收緩存中的報文不一定只是一個,因此必須重新檢查接收緩存,直到接收緩存為空為止。否則,由于接收緩存的大小有限,將會出現(xiàn)緩沖區(qū)溢出的現(xiàn)象。循環(huán)查詢的時間必須足夠快,以避免報文丟失。
4 結(jié)束語
本設(shè)計很好地解決了導(dǎo)彈伺服機構(gòu)與CAN總線的連接和通信問題,大大減輕了原系統(tǒng)的重量,增強了信號傳遞的抗干擾性,提高了伺服機構(gòu)的控制精度,另外,PC/104的模塊化結(jié)構(gòu)使得接口的通用性和可維修性也顯著提高。
評論