基于DSP的1553B終端設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 介紹了MIL-STD-1553B總線的完備接口芯片BU-61580的特點(diǎn)和工作原理。以16位緩沖器方式接口為例,敘述了利用BU-61580設(shè)計(jì)基于DSP的1553B終端的方法,最后,通過(guò)例子具體分析了BC、RT工作模式下軟件的初始化過(guò)程及工作流程。實(shí)驗(yàn)驗(yàn)證了文中方法功能強(qiáng)大、應(yīng)用較復(fù)雜,為1553B總線傳輸接口的設(shè)計(jì)提供了豐富的資源。
MIL-STD-1553B總線是美國(guó)國(guó)防部制定的一種具有可確定性且傳輸可靠的數(shù)據(jù)總線,其采用Manchestcr編碼,通信介質(zhì)為兩根導(dǎo)線絞合的屏蔽護(hù)套電纜,現(xiàn)廣泛用于航空電子綜合化系統(tǒng)中。DDC的BU-61580協(xié)議芯片為處理器和MIL-STD-1553B總線之間提供了一個(gè)完善的集成環(huán)境。本文選用該芯片,探討了基于DSP的1553B終端軟硬件設(shè)計(jì)要點(diǎn)。
1 BU-61580芯片的結(jié)構(gòu)和特點(diǎn)
圖1為BU-61580芯片的內(nèi)部結(jié)構(gòu)框圖。其內(nèi)部功能強(qiáng)大、接口靈活,有各種封裝和供電電壓可供選擇,是1553B總線常用的接口芯片。
2 基于DSP的1553B終端設(shè)計(jì)
MIL-STD-1553B總線可以掛接總線控制器(BC)、遠(yuǎn)程終端(RT)和監(jiān)控器終端(MT)3種終端設(shè)備。BU-61580為DSP和MIL-STD-1553B總線之
間提供一個(gè)全面、靈活的接口,分別實(shí)現(xiàn)BC\RT\MT的功能。
2.1 BU-61580硬件接口設(shè)計(jì)
在設(shè)計(jì)BU-61580與DSP接口時(shí),應(yīng)根據(jù)DSP是否具有握手應(yīng)答輸入READY信號(hào)選擇非零等待和等待方式。所謂非零等待指將BU-61580的輸入信號(hào)ZERO-WAIT置為邏輯1,此時(shí)BU-61580可以與具有一個(gè)用握手應(yīng)答形式來(lái)調(diào)節(jié)硬件控制的等待狀態(tài)的DSP接口。目前大多數(shù)DSP具有握手應(yīng)答輸入信號(hào)。
所謂零等待方式指將BU-61580的輸入信號(hào)ZERO-WAIT置為邏輯0,使BU-61580與沒(méi)有握手應(yīng)答輸入信號(hào)的DSP接口。在該系統(tǒng)配置中,DSP完成到BU-61580內(nèi)部RAM或寄存器的訪問(wèn)之前清除它的選通輸出。
BU-61580與DSP以及外部DSP的接口形式靈活,共有6種結(jié)構(gòu)形式:16位緩沖器方式、16位透明方式、使用雙口RAM的16位透明方式、16位直接存儲(chǔ)存取方式、帶擴(kuò)展邏輯的16位DMA方式、8位緩沖器方式。其中,16位緩沖器方式是最常用的接口形式,在此形式下,BU-61580內(nèi)部的地址/數(shù)據(jù)緩沖器為其與DSP的地址數(shù)據(jù)總線之間提供了一個(gè)必要的隔離。1553共享RAM地址空間限制在BU-61580的內(nèi)部4 kB RAM范圍內(nèi)。在一般應(yīng)用中,BU-61580內(nèi)部4 kB RAM足夠使用。
BU-61580與1553B總線有兩種連接方式:直接耦合和變壓器耦合。兩種耦合形式都需要一個(gè)隔離電阻,串接在1553B總線的每根線上,以便總線不受變壓器、短截線或終端元件短路的影響。
圖2為以TMS320F2407為例,BU-61580典型的16位緩沖器方式電路應(yīng)用框圖,采用直接耦合方式。
作為RT使用時(shí),RTAD0-RTAD4遠(yuǎn)程終端地址線連接相應(yīng)設(shè)定的地址值,RTADP與RTAD0-RTAD4一起構(gòu)成奇校驗(yàn)。作為BC\MT時(shí),RTAD0-RTAD4、RTADP可不連接。為防止DSP訪問(wèn)沖突,將DSP的地址總線A12~A15通過(guò)邏輯控制電路與BU-61580的選通信號(hào)、存儲(chǔ)器/寄存器選擇信號(hào)相連。
2.2 BU-61580軟件設(shè)計(jì)
BU-61580芯片通過(guò)程序設(shè)置區(qū)分BC、RT和MT工作模式。其軟件設(shè)計(jì)較為復(fù)雜,下面以BC、RT模式為例,說(shuō)明其軟件設(shè)計(jì)過(guò)程。
2.2.1 BU-61580初始化設(shè)置
在BC工作模式下,BU-61580初始化的基本步驟如下。
(1)BU-61580內(nèi)部4 kB的RAM空間清0。
(2)向啟動(dòng)/復(fù)位寄存器寫入0x05,對(duì)BU-61580進(jìn)行中斷、軟件復(fù)位。
(3)若需使能增強(qiáng)方式,對(duì)配置寄存器#3寫入0x8000。
(4)根據(jù)需要設(shè)置中斷屏蔽寄存器,一般設(shè)為0x0009,使能BC幀結(jié)束、消息結(jié)束中斷。
(5)通過(guò)配置寄存器#1設(shè)置當(dāng)前工作區(qū)B/A,是否幀自動(dòng)重復(fù),觸發(fā)使能模式,是否重試,重試次數(shù)等。
(6)通過(guò)配置寄存器件2設(shè)置中斷觸發(fā)方式,時(shí)間標(biāo)志分辨率。
(7)通過(guò)配置寄存器烘設(shè)置消息重試方式。
(8)時(shí)間標(biāo)志寄存器清0。
(9)若使用幀自動(dòng)重復(fù)方式,則需設(shè)置幀時(shí)間寄存器,用于確定BC幀間隔時(shí)間。
(10)初始化消息塊。對(duì)于BC到RT傳輸?shù)南ⅲ瑢⑵淇刂谱?、命令字及待發(fā)送的數(shù)據(jù)塊寫入事先設(shè)定好的消息塊地址,對(duì)于RT到BC傳輸?shù)南?,將其控制字、命令字寫入事先設(shè)定好的消息塊地址。
(11)初始化堆棧指針和消息計(jì)數(shù)器,消息計(jì)數(shù)器中所設(shè)置為0xffff-將要傳輸消息個(gè)數(shù)。若使用幀自動(dòng)重復(fù)方式,還需設(shè)置初始堆棧指針和初始消息計(jì)數(shù)器。
(12)啟動(dòng)BC工作,若配置寄存器#1外部觸發(fā)使能有效,則在EXT-TGIG輸入管腳輸送一個(gè)上升沿啟動(dòng)BC幀傳輸,若配置寄存器#1內(nèi)部觸發(fā)使能有效,則向啟動(dòng)/復(fù)位寄存器寫入0x02,啟動(dòng)傳輸。
在RT工作模式下,BU-61580初始化的基本步驟如下。
(1)BU-61580內(nèi)部4 kB的RAM空間清0。
(2)向啟動(dòng)/復(fù)位寄存器寫入0x01,進(jìn)行軟件復(fù)位。
(3)若需使能增強(qiáng)方式,對(duì)配置寄存器#3寫入0x8000。
(4)根據(jù)需要設(shè)置中斷屏蔽寄存器,例如使能RT發(fā)送器超時(shí)、RT地址奇偶校驗(yàn)錯(cuò)、消息結(jié)束中斷。
(5)通過(guò)配置寄存器#1設(shè)置當(dāng)前工作區(qū)B/A,子系統(tǒng)標(biāo)志等。
(6)通過(guò)配置寄存器#2設(shè)置中斷觸發(fā)方式,使能中斷狀態(tài)自動(dòng)清除。
(7)設(shè)置配置寄存器件4使能用配置寄存器#5鎖存RT地址。
(8)設(shè)置堆棧指針。
(9)根據(jù)須接收和發(fā)送消息塊的子地址設(shè)置RT查詢表,分配相應(yīng)消息塊的存儲(chǔ)地址。
(10)初始化消息塊,將待發(fā)送的數(shù)據(jù)塊寫入事先設(shè)定好的消息塊地址。
2.2.2 中斷處理
在BC工作模式下,中斷通常使能消息中斷和幀中斷。在中斷服務(wù)程序中,首先讀取中斷狀態(tài)寄存器,若為消息中斷,根據(jù)當(dāng)前消息塊命令字判斷為何消息,對(duì)相應(yīng)消息塊數(shù)據(jù)進(jìn)行處理,若為幀中斷,則根據(jù)下一幀待發(fā)送消息重新初始化BC消息塊堆棧,設(shè)置BC堆棧指針與消息計(jì)數(shù)器。
在RT工作模式下,中斷通常為消息中斷,在中斷服務(wù)程序中,讀當(dāng)前塊狀態(tài)字,若消息結(jié)束,讀取消息塊,對(duì)數(shù)據(jù)進(jìn)行處理。
2.3 軟件設(shè)計(jì)實(shí)例
現(xiàn)舉例說(shuō)明BU-61580作為BC的軟件設(shè)計(jì)過(guò)程。
假設(shè)BC需要傳輸4個(gè)消息快,其在BU-61580內(nèi)部RAM中基址分別為:0x0200、0x0260、0x0290、0x02c0,映射到DSP系統(tǒng)中地址為:0x820 0、0x8260、0x8290、0x82c0,映射地址由DSP高地址位A12~A15與控制信號(hào)譯碼決定,設(shè)定消息傳輸?shù)倪h(yuǎn)程終端地址為0x6,其中消息塊1為矢量字,其數(shù)據(jù)值為1時(shí),在下一幀消息中傳輸消息塊3。消息塊1,消息塊4為周期性消息,周期為25 ms,消息塊具體屬性見表1。
對(duì)各個(gè)消息塊控制字設(shè)置如下:(1)消息塊1控制字為0x0194:重試使能、總線通道選擇A、使能方式代碼格式,使能消息中斷。(2)消息塊3控制字為0x0190,重試使能、總線通道選擇A,使能消息中斷。(3)消息塊2、4控制字為0x0180,重試使能、總線通道選擇A。
對(duì)寄存器進(jìn)行初始化,在初始化消息塊時(shí),將消息塊控制字、命令字寫入相應(yīng)地址,其中消息塊2、消息塊4需將其待發(fā)送的數(shù)據(jù)塊寫入設(shè)定地址中。由于消息塊1,消息塊4為周期性消息,使能幀自動(dòng)重復(fù),設(shè)置幀周期為25ms。啟動(dòng)BC工作后等待消息中斷和幀中斷。
在中斷服務(wù)程序中,處理接收到的數(shù)據(jù)塊,重新初始化BC消息塊堆棧,具體流程如圖3所示。
利用圖2所示電路對(duì)該例子進(jìn)行驗(yàn)證,從總線監(jiān)控儀上可以看到BC工作正常,消息傳輸無(wú)誤。
3 結(jié)束語(yǔ)
簡(jiǎn)述了利用BU-61580設(shè)計(jì)基于DSP的1553B終端的方法。BU-61580功能強(qiáng)大,應(yīng)用較為復(fù)雜,為1553B總線傳輸接口的設(shè)計(jì)提供了豐富的資源。