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