基于A(yíng)RM9的1553B與CAN總線(xiàn)轉換卡的設計與實(shí)現
3.2 轉換卡軟件實(shí)現方式
本文引用地址:http://dyxdggzs.com/article/87444.htm在整個(gè)的轉換卡實(shí)現中面臨的最大問(wèn)題就是轉換的實(shí)時(shí)性和緩沖數據管理,為此轉換卡通過(guò)使用實(shí)時(shí)性非常好的搶占式多任務(wù)操作系統RTLinux來(lái)解決。他不但能滿(mǎn)足系統對實(shí)時(shí)性的要求,完成總線(xiàn)兩邊緩沖數據管理,還能為應用程序和轉換程序提供一個(gè)良好的運行環(huán)境。轉換程序主要完成兩個(gè)功能:把1553B總線(xiàn)來(lái)的數據轉換成CAN總線(xiàn)的幀結構,或者相反;把1553B總線(xiàn)來(lái)的命令解析,轉換成CAN總線(xiàn)系統的命令并組成CAN的幀結構發(fā)送。轉換卡采用MiniGUI來(lái)為用戶(hù)提供實(shí)現實(shí)時(shí)監控的圖形界面,這個(gè)圖形界面可以通過(guò)轉換卡擴展的LCD很好地完成信息交換過(guò)程實(shí)時(shí)監視的任務(wù)。最后通過(guò)ARM9的JTAG口可以對ARM9中運行的應用程序和轉換程序進(jìn)行修改與調試。
3.3 轉換卡轉換機制
設計中采用中斷源優(yōu)先級控制機制,不同的中斷源設置不同的中斷等級,以滿(mǎn)足系統對實(shí)時(shí)性的要求。這種機制主要是基于下列考慮:
(1)來(lái)自1553B,CAN以及串口的硬中斷請求信號及來(lái)自應用程序的軟中斷信號都是隨機的。中斷機制可以使ARM9能夠實(shí)時(shí)地響應各個(gè)中斷,并做出相應的動(dòng)作。實(shí)時(shí)性要求相對比較高的1553B端點(diǎn)中斷被賦予高優(yōu)先級,可以剝奪CAN,串口等相對低優(yōu)先級的中斷的服務(wù)。而CAN被賦予次高優(yōu)先級,應用程序以及串口被賦予最低優(yōu)先級。
(2)1553B和CAN的數據傳輸速率是不同的。CAN總線(xiàn)的不同配置,1553B總線(xiàn)控制器的不同調度都會(huì )引起1553B和CAN總線(xiàn)的數據傳輸速率的變化,可能1553B比CAN快,也可能CAN比1553B快。采用中斷方式可以大大降低慢速對較高速設備的處理延時(shí)。
同時(shí)在硬件的設計中考慮到軟件編程的靈活性,因此所有的中斷信號都設計成可以通過(guò)查詢(xún)得到。
3.4 硬件測試
在硬件完成后,對整個(gè)硬件進(jìn)行了測試。首先把1553B端點(diǎn)聯(lián)入1553B總線(xiàn)系統中,他能正確地響應總線(xiàn),通過(guò)示波器觀(guān)測由變壓器和收發(fā)器變換后的信號和序列,得到的信號電平和序列都符合既定的要求。然后把1553B端點(diǎn)協(xié)議寫(xiě)入FPGA和ARM,測試端點(diǎn)的反應時(shí)間,即接收命令字到發(fā)出狀態(tài)字之間的間隔,這個(gè)時(shí)間為1.5~2.5μs之間,完全滿(mǎn)足1553B總線(xiàn)的協(xié)議要求。最后把CAN總線(xiàn)、串口、LCD接口都連接上,整個(gè)硬件工作良好。
4 轉換卡功能及特點(diǎn)
4.1 轉換卡的主要功能
(1)轉換卡在一個(gè)既定的協(xié)議下能夠實(shí)現CAN總線(xiàn)系統與1553B總線(xiàn)系統的信息交互,同時(shí)滿(mǎn)足兩總線(xiàn)系統對實(shí)時(shí)性的要求。
(2)轉換卡可以單獨作為一個(gè)CAN總線(xiàn)的節點(diǎn)或者1553B總線(xiàn)端點(diǎn)連入總線(xiàn)系統,完成相應的節點(diǎn)功能。
(3)實(shí)現現場(chǎng)調試和監控。應用轉換卡的LCD擴展口和串口,用戶(hù)可以通過(guò)LCD顯示屏或者外部計算機實(shí)時(shí)監視和控制兩總線(xiàn)之間的信息轉換。
4.2 硬件主要特點(diǎn)
(1)1553B端點(diǎn)協(xié)議采用FPGA與ARM芯片共同實(shí)現,這種設計不但可以通過(guò)更改協(xié)議實(shí)現程序把端點(diǎn)配置成遠程端點(diǎn)、控制器、監視器等3種不同功能的端點(diǎn),而且因為是通過(guò)ARM9與FPGA共同實(shí)現的總線(xiàn)協(xié)議,所以當接收完1553B總線(xiàn)數據后可以直接觸發(fā)總線(xiàn)轉換程序,從而減少單獨采用1553B協(xié)議芯片時(shí)對ARM9的數據中斷請求時(shí)間,更好地滿(mǎn)足了控制系統的實(shí)時(shí)性要求。最后這種設計與直接購買(mǎi)1553B端點(diǎn)協(xié)議芯片相比明顯地減少了硬件成本,有利于1553B總線(xiàn)的推廣和應用。
(2)可以兼容不同速率的CAN總線(xiàn),通過(guò)改變初始化配置,可以實(shí)現不同速率的CAN總線(xiàn)與1553B總線(xiàn)系統通信。轉換卡對ARM9實(shí)現了存儲擴展,外擴了16 MB FLASH和32 MB RAM,因此當總線(xiàn)兩邊數據傳輸速率不匹配時(shí),就可以把等待發(fā)送的數據放到專(zhuān)門(mén)開(kāi)辟的緩沖區中存放,等待總線(xiàn)空閑時(shí)再發(fā)送,雖然CAN總線(xiàn)的最快傳輸速率與1553B相同,但是由于1553B是主從式總線(xiàn),每個(gè)節點(diǎn)在一個(gè)周期內只能傳輸一定的數據量,所以他的數據傳輸速率有可能還比CAN總線(xiàn)慢,因此數據的緩沖是兩方面的。
(3)擴展了LCD接口和串口。在現場(chǎng)可以通過(guò)40針接口的LCD或者上層的計算機監控兩總線(xiàn)之間的信息交互,還可以通過(guò)串口和ARM9的JTAG口實(shí)時(shí)地調試ARM9中的程序。
(4)良好的實(shí)時(shí)性。在接口中,通過(guò)對CAN和1553B總線(xiàn)中斷應答優(yōu)先級的設置,可以非常好地滿(mǎn)足整個(gè)系統對實(shí)時(shí)性的要求。
5 結 語(yǔ)
通過(guò)實(shí)際應用證明,基于A(yíng)RM9的1553B和CAN總線(xiàn)轉換卡無(wú)論硬件還是軟件都能夠很好地滿(mǎn)足1553B和CAN總線(xiàn)對實(shí)時(shí)性、可靠性以及速率的要求,在一定的命令體系中能夠很好地完成CAN與1553B總線(xiàn)之間的信息轉換。
評論