1 介紹
MIL-STD-1553是為數據總線定義的軍方標準。這種數據總線被用來為各種的系統之間的數據和信息的交換提供媒介,它類似“局域網或者LAN”。
1950年至60年代中,航空電子學是簡單、獨立的系統,航空、通信、飛行控制和顯示器由模擬系統構成;信號主要由模擬電壓、同-異步信號和接觸式開關構成。
MIL-STD-1553總線的傳輸速度為每秒1M比特,字的長度為20個比特,數據有效長度為16個比特,信息量長度為32個字,傳輸方式為半雙工方式,傳輸協議為命令/響應方式,故障容錯有典型的雙冗余方式,第二條總線處于熱備份狀態;信息格式有BC到RT、RT到BC、RT到RT、廣播方式和系統控制方式;能掛31個遠置終端,終端類型有總線控制器(BC)、遠置終端(RT)和總線監聽器(BM);傳輸媒介為屏蔽雙絞線,MIL-STD-1553總線耦合方式有直接耦合和變壓器耦合。
2 硬件系統
本系統采用PCI總線接口,PCI橋芯片采用PLX公司的PCI9052。1553B總線芯片采用DDC61580,CPLD主要實現DDC61580和PCI9052之間的時序及邏輯控制。硬件框圖如圖1所示。
詳細的邏輯控制信號見CPLD邏輯部分。
2.1 PCI9052的主要特點
PCI9052是PLX技術公司為擴展適配板卡推出的能提供一種混合的高性能PCI總線目標(從)模式的接口芯片。該芯片可與多種局部總線相連,并且支持相對慢的局部總線在PCI總線上的突發傳送速率達到132MB/s。9052可編程配置直接與復用或非復用的8/16/32位局部總線相連,8位和16位模式便于ISA卡直接向PCI卡轉換。
PCI9052的內部結構中包含了一個獨立的ISA邏輯接口,通過這個邏輯接口可以完成由ISA到PCI的平滑轉換。它支持8位和16位數據寬度的ISA設備,該設備可以是內存映射,也可以是I/O映射。先讀模式用于提高讀取數據的吞吐量。一旦ISA接口模式使能,PCI9052只執行單個周期操作。特別指出的是,串行EEPROM必需使ISA接口模式使能。
可以使用兩種方法配置PCI9052用于ISA接口模式。方法一:燒寫串行EEPROM方法。使用燒寫器,將數據寫入串行EEPROM,參照PCI9052的DataSheet來寫入恰當的數據。需要注意的是,對于ISA模式,LRESET引腳必須始終為高電平,并確認MODE引腳置為0,處于非復用模式。
方法二:熱配置方法。從PCI總線通過PCI9052芯片來燒寫串行EEPROM。該方法需要注意的是,LRESET引腳的極性在ISA模式時由低變為高,并確認MODE引腳置為低。
當為ISA接口模式配置時必須注意以下幾點:(1)存取ISA接口引腳時要參照PCI9052引腳的C/ISA模式引腳圖來連線。(2)空間0分配給ISA接口的內存存取。(3)空間1分配給ISA接口的I/O存取。(4)無論空間0的局部地址處于CS0#范圍還是空間1的局部地址處于CS1#范圍,ISA存取均有效。(5)標準的從周期可以使用空間2、空間3和串行EEPROM來存取。
2.2 DDC61580的主要特點
DDC61580具有以下特點:
● 全兼容MIL-STD-1553接口
● 靈活的處理器/內存接口
● 標準的4K×16RAM
● 自動BC重試
● 可編程BC間隔時間
● 靈活的RT數據緩沖區
● 可編程非法區
● 可選擇消息監控
● 支持同時RT/Monitor模式
下面將詳細介紹BC、RT以及MT模式的內存組織,編程方法等。
2.3 BC模式操作
BC協議支持所有的MIL-STD-1553消息格式,通過編程BC控制字和命令字的T/R*位來確定消息格式。另外,BC控制字還允許選擇通道、自測試、重試、中斷以及狀態字掩碼等。BC模式內存映射包含有8個固定的內存位置,即堆棧指針A,B、消息計數器A,B、初始堆棧指針A,B和初始消息計數器A,B。在啟動消息幀之前,必須首先初始化堆棧指針和消息計數器。特別應注意的是,BC消息塊是38個字,比如對于RT->RT傳輸,它包含32個數據,1個控制字,2個命令字,1個LoopBack字和2個狀態字。
2.3.1 BC內存管理
BC內存管理如圖2所示。該圖說明了堆棧指針包含四個字的消息塊描述符,即塊狀態字,時間標志字,消息間隔時間和消息塊地址。塊狀態字包括消息狀態、完成、有效性及總線通道;時間標志字反映了當前消息起始和結束時時間標志寄存器的值,它可以編程為分辨率為2~64us/LSB(2的冪);消息間隔時間指的是當前消息的開始到下一條消息的開始之間的時間;消息塊地址提供了指向消息塊個字的指針。
2.3.2 BC編程
對于BC編程,首先要初始化相應的寄存器以及堆棧指針、消息計數器;然后定義消息的控制字、命令字等;啟動BC。需要注意的是BC控制字不會在1553總線上傳輸。BC的消息格式通過編程BC控制字的3位來控制。如表1所示。
BC消息幀可以通過查詢和中斷來進行處理。如果采用查詢模式,那么可以查詢配置寄存器1、中斷狀態寄存器、堆棧指針和消息計數器寄存器。另外,每一條BC消息結束后堆棧指針加4,所以如果要讀取RT-To-BC的消息,我們應該首先從堆棧指針A中讀取當前消息的堆棧指針,然后減4后來分別讀出塊狀態字、時間標志字、消息時間間隔和上一條消息的塊地址,從此塊地址讀出接收到的數據。在嵌入式系統軟件處理中,我們應盡量采用中斷方式。
表1 MIL-STD-1553消息格式
BIT2(MODE CODE) |
BIT1(BROADCAST) |
BIT0(RT-TO-RT) |
Message Format |
0 |
0 |
0 |
BC-To-RT(if T/R*=0) or RT-To-BC(if T/R*=1) |
0 |
0 |
1 |
RT-To-RT |
0 |
1 |
0 |
Broadcast |
0 |
1 |
1 |
RT-To-RTs(Broadcast) |
1 |
0 |
0 |
Mode Code |
1 |
0 |
1 |
Not Used |
1 |
1 |
0 |
Broadcast Mode Code |
1 |
1 |
1 |
Not Used |
2.4 RT模式操作
RT,即遠程終端,它包含了所有MIL-STD-1553的格式,雙冗余模式編碼,內部命令非法,內部格式化的BIT字和錯誤檢測。RT的反映時間大約為4.8us。RT內存管理包含單消息模式,循環緩沖區模式(支持批量數據傳輸)和雙緩沖區模式。通過使用雙緩沖區,主機處理器很容易訪問近接收到有效數據塊。對于發送、接收或廣播子地址,數據塊存儲緩沖區可以采用單緩沖、雙緩沖(兩個交替的數據塊)和循環緩沖區(可編程大小為128到8192個字)。在增強模式下,ACE提供RT子地址雙緩沖區,RT子地址雙緩沖區模式給指定的子地址分配了兩個32字數據緩沖區,接收到的數據交替的存儲在這兩個緩沖區中。
2.4.1 RT內存管理
RT內存管理包含單消息模式,循環緩沖區模式(支持批量數據傳輸)和雙緩沖區模式。在此主要介紹循環緩沖區模式,如圖3所示。這意味著在我們設置發送、接收或廣播的初始地址后,數據塊地址從此地址開始到所設置的長度(如1024字)進行環繞。這在大批量數據傳輸中非常有效,它可以減輕處理器的負荷,我們在處理時可以設置循環緩沖區Rollover中斷來一次性讀取數據。
2.4.2 RT子地址控制字
在增強RT內存管理方式下,32個子地