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