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