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