基于ARM9的1553B與CAN總線轉(zhuǎn)換卡的設(shè)計與實現(xiàn)
1 引 言
本文引用地址:http://m.butianyuan.cn/article/87444.htm20世紀(jì)70年代誕生的1553B總線是一種主從式多冗余度總線對總線硬件有嚴(yán)格的規(guī)定,可靠性和實時性好,傳輸速率達(dá)到1 Mb/s,對于大多數(shù)的應(yīng)用都能滿足,通過幾十年的發(fā)展,已經(jīng)成為當(dāng)今軍用電子總線的首選。而由德國BOSCH公司開發(fā)的CAN總線,采用多主方式,最高速率為1 Mb/s,由于其在汽車電子系統(tǒng)中的卓越表現(xiàn),現(xiàn)在受到了越來越多的用戶的關(guān)注和認(rèn)可。這兩種總線都是傳輸速率高、可靠性高、實時性能好的總線,但是他們都存在一定的不足。1553B總線的任一次數(shù)據(jù)傳輸都是由主節(jié)點發(fā)出命令開始,從節(jié)點接到命令后解析并執(zhí)行,同時把相應(yīng)狀態(tài)反饋給主節(jié)點,這使得網(wǎng)絡(luò)上的數(shù)據(jù)傳輸率大大降低,并使主節(jié)點控制器非常繁忙,而且在下端出現(xiàn)異常時,數(shù)據(jù)不能立即上傳,必須等待主節(jié)點的傳輸命令,靈活性較差。而CAN總線為多主競發(fā)總線,能較好解決這個問題。但是CAN總線也存在很多不足,例如他無法和1553B總線一樣給出一個比較確定的響應(yīng)時間,而且沒有雙冗余或多冗余結(jié)構(gòu)設(shè)計,這使得他的可靠性和實時性不如1553B,而在軍用電子中,可靠性和實時性是最重要的。因此軍用電子系統(tǒng)中,1553B總線得到了廣泛的應(yīng)用,但同時1553B總線硬件成本非常高,相同條件下是CAN總線的幾百倍,對于測試系統(tǒng)來說是很難承受的,所以在現(xiàn)在的測控系統(tǒng)中對于控制仍舊采用1553B總線,對于測試采用CAN總線,而這兩者之間的信息交互就成了整個系統(tǒng)的關(guān)鍵,促使了對1553B和CAN總線轉(zhuǎn)換卡的設(shè)計與實現(xiàn)。
2 設(shè)計思想
1553B總線的幀結(jié)構(gòu)有2種,其實命令字和狀態(tài)字共用一種幀結(jié)構(gòu)。而這兩種幀僅僅是同步頭不同,如圖1所示。
1553B的幀中,開始3位為同步位,數(shù)據(jù)字是上跳沿,而命令字和狀態(tài)字為下降沿,4~19位為數(shù)據(jù)位,數(shù)據(jù)字中為傳輸?shù)臄?shù)據(jù),而命令字和狀態(tài)字中為命令或狀態(tài)位,最后一位為奇偶校驗位。而在CAN總線中,只有一種幀結(jié)構(gòu),僅僅是是否采用擴展幀而已,其幀結(jié)構(gòu)如圖2所示。
其中幀起始由單個顯位組成,仲裁場由標(biāo)識符和RTR位組成,一共12位,控制場由2個保留位和4個DLC位組成,數(shù)據(jù)場由0到8個字組成,每個字8位,CRC場由15位的CRC序列和1位標(biāo)識位組成,ACK場由1位ACK間隙和一位ACK界定符組成,最后的幀結(jié)束由連續(xù)的7個隱性位組成。
由此可見,1553B和CAN總線不但幀結(jié)構(gòu)不同,命令體系不一樣,而且不同的1553B與CAN總線之間的轉(zhuǎn)換方法也是不一樣的,因此1553B與CAN總線之間的轉(zhuǎn)換不僅僅是幀結(jié)構(gòu)的轉(zhuǎn)換,還涉及到兩個系統(tǒng)之間命令的解析,所以采用軟件的方式可以更加靈活的實現(xiàn)這兩種總線的轉(zhuǎn)換。
而要實現(xiàn)轉(zhuǎn)換就需要在CAN和1553B總線端點之間需要搭建一個能夠運行并合理調(diào)度多個應(yīng)用程序的平臺。綜合整個轉(zhuǎn)換板的考慮,采用帶操作系統(tǒng)的ARM9處理器來實現(xiàn)這個平臺是比較合適的。cAN總線部分,可以設(shè)計成一般的主節(jié)點,而對于1553B總線部分,由于1553B有3種不同的端點,為了擴展轉(zhuǎn)換板的功能,可以把轉(zhuǎn)換板的這個端點設(shè)計成為可以通過不同的配置來實現(xiàn)不同功能,因此這需要1553B端點的協(xié)議和上層應(yīng)用程序可配置,為此可以采用FPGA和ARM共同工作的方式來實現(xiàn)這個端點。而為了實現(xiàn)實時監(jiān)控,可以通過從ARM9上擴展串口和LCD接口來實現(xiàn)。
3 轉(zhuǎn)換卡的設(shè)計實現(xiàn)
3.1 轉(zhuǎn)化卡硬件的選擇
轉(zhuǎn)換卡的硬件是整個轉(zhuǎn)換卡功能的基礎(chǔ),其實現(xiàn)框圖如圖3所示。而在轉(zhuǎn)換卡的硬件設(shè)計中,器件的選擇決定了設(shè)計的實際方案和電路。對于CAN節(jié)點,采用了PHILIPS公司的SJA1000T CAN總線控制器和TJA1050CAN總線收發(fā)器來共同實現(xiàn)。對于1553B節(jié)點,實現(xiàn)協(xié)議部分功能的FPGA采用ALTERA的EP1C3T144,收發(fā)器和變壓器采用了HOLT公司的HI-1567和PD2725,他們與ARM9共同完成了1553B端點協(xié)議。最后的核心處理器ARM9則采用ATMEL的AT91RM9200T,他擁有180 MHz的頻率,4個PIO接口,不但能夠與FPGA共同完成1553B端點功能,滿足1553B對實時性的要求,而且還能運行需要的操作系統(tǒng)和應(yīng)用程序,完成整個轉(zhuǎn)化工作。而對于用于實時監(jiān)控,LCD芯片采用了EPSON的S1D13506擴展芯片,而串口則采用了傳統(tǒng)的MAX3232。以上的這些芯片構(gòu)成了整個轉(zhuǎn)換卡的框架,通過他們就構(gòu)成了轉(zhuǎn)換卡的硬件。
在這種方案中,RAM采用了雙口RAM,1553B和ARM9共用一個口,這樣CAN總線出來的數(shù)據(jù)和1553B總線過來的數(shù)據(jù)不用轉(zhuǎn)存就可以直接通過另外一段輸出或者緩沖等待發(fā)送。S1D13506芯片是一個多功能擴展芯片,他還有多種功能擴展,可以擴展出音頻和視頻接口。
評論