當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]1553B總線在嵌入式系統(tǒng)中的應(yīng)用

作者Email: cai_yang@etang.com

1 介紹

    MIL-STD-1553是為數(shù)據(jù)總線定義的軍方標(biāo)準(zhǔn)。這種數(shù)據(jù)總線被用來(lái)為各種的系統(tǒng)之間的數(shù)據(jù)和信息的交換提供媒介,它類似“局域網(wǎng)或者LAN”。

    1950年至60年代中,航空電子學(xué)是簡(jiǎn)單、獨(dú)立的系統(tǒng),航空、通信、飛行控制和顯示器由模擬系統(tǒng)構(gòu)成;信號(hào)主要由模擬電壓、同-異步信號(hào)和接觸式開(kāi)關(guān)構(gòu)成。
    MIL-STD-1553總線的傳輸速度為每秒1M比特,字的長(zhǎng)度為20個(gè)比特,數(shù)據(jù)有效長(zhǎng)度為16個(gè)比特,信息量最大長(zhǎng)度為32個(gè)字,傳輸方式為半雙工方式,傳輸協(xié)議為命令/響應(yīng)方式,故障容錯(cuò)有典型的雙冗余方式,第二條總線處于熱備份狀態(tài);信息格式有BC到RT、RT到BC、RT到RT、廣播方式和系統(tǒng)控制方式;能掛31個(gè)遠(yuǎn)置終端,終端類型有總線控制器(BC)、遠(yuǎn)置終端(RT)和總線監(jiān)聽(tīng)器(BM);傳輸媒介為屏蔽雙絞線,MIL-STD-1553總線耦合方式有直接耦合和變壓器耦合。

2 硬件系統(tǒng)

    本系統(tǒng)采用PCI總線接口,PCI橋芯片采用PLX公司的PCI9052。1553B總線芯片采用DDC61580,CPLD主要實(shí)現(xiàn)DDC61580和PCI9052之間的時(shí)序及邏輯控制。硬件框圖如圖1所示。

詳細(xì)的邏輯控制信號(hào)見(jiàn)CPLD邏輯部分。

2.1 PCI9052的主要特點(diǎn)

    PCI9052PLX技術(shù)公司為擴(kuò)展適配板卡推出的能提供一種混合的高性能PCI總線目標(biāo)(從)模式的接口芯片。該芯片可與多種局部總線相連,并且支持相對(duì)慢的局部總線在PCI總線上的突發(fā)傳送速率達(dá)到132MB/s9052可編程配置直接與復(fù)用或非復(fù)用的8/16/32位局部總線相連,8位和16位模式便于ISA卡直接向PCI卡轉(zhuǎn)換。

 

PCI9052的內(nèi)部結(jié)構(gòu)中包含了一個(gè)獨(dú)立的ISA邏輯接口,通過(guò)這個(gè)邏輯接口可以完成由ISAPCI的平滑轉(zhuǎn)換。它支持8位和16位數(shù)據(jù)寬度的ISA設(shè)備,該設(shè)備可以是內(nèi)存映射,也可以是I/O映射。先讀模式用于提高讀取數(shù)據(jù)的吞吐量。一旦ISA接口模式使能,PCI9052只執(zhí)行單個(gè)周期操作。特別指出的是,串行EEPROM必需使ISA接口模式使能。

 

可以使用兩種方法配置PCI9052用于ISA接口模式。方法一:燒寫串行EEPROM方法。使用燒寫器,將數(shù)據(jù)寫入串行EEPROM,參照PCI9052DataSheet來(lái)寫入恰當(dāng)?shù)臄?shù)據(jù)。需要注意的是,對(duì)于ISA模式,LRESET引腳必須始終為高電平,并確認(rèn)MODE引腳置為0,處于非復(fù)用模式。

 

方法二:熱配置方法。從PCI總線通過(guò)PCI9052芯片來(lái)燒寫串行EEPROM。該方法需要注意的是,LRESET引腳的極性在ISA模式時(shí)由低變?yōu)楦?,并確認(rèn)MODE引腳置為低。

 

當(dāng)為ISA接口模式配置時(shí)必須注意以下幾點(diǎn):(1)存取ISA接口引腳時(shí)要參照PCI9052引腳的C/ISA模式引腳圖來(lái)連線。(2)空間0分配給ISA接口的內(nèi)存存取。(3)空間1分配給ISA接口的I/O存取。(4)無(wú)論空間0的局部地址處于CS0#范圍還是空間1的局部地址處于CS1#范圍,ISA存取均有效。(5)標(biāo)準(zhǔn)的從周期可以使用空間2、空間3和串行EEPROM來(lái)存取。

 

2.2  DDC61580的主要特點(diǎn)

 

DDC61580具有以下特點(diǎn):

     全兼容MIL-STD-1553接口

     靈活的處理器/內(nèi)存接口

     標(biāo)準(zhǔn)的4K×16RAM

     自動(dòng)BC重試

     可編程BC間隔時(shí)間

     靈活的RT數(shù)據(jù)緩沖區(qū)

     可編程非法區(qū)

     可選擇消息監(jiān)控

     支持同時(shí)RT/Monitor模式

下面將詳細(xì)介紹BC、RT以及MT模式的內(nèi)存組織,編程方法等。

 

2.3  BC模式操作

BC協(xié)議支持所有的MIL-STD-1553消息格式,通過(guò)編程BC控制字和命令字的T/R*位來(lái)確定消息格式。另外,BC控制字還允許選擇通道、自測(cè)試、重試、中斷以及狀態(tài)字掩碼等。BC模式內(nèi)存映射包含有8個(gè)固定的內(nèi)存位置,即堆棧指針A,B、消息計(jì)數(shù)器A,B、初始堆棧指針A,B和初始消息計(jì)數(shù)器AB。在啟動(dòng)消息幀之前,必須首先初始化堆棧指針和消息計(jì)數(shù)器。特別應(yīng)注意的是,BC消息塊最大是38個(gè)字,比如對(duì)于RT->RT傳輸,它包含32個(gè)數(shù)據(jù),1個(gè)控制字,2個(gè)命令字,1個(gè)LoopBack字和2個(gè)狀態(tài)字。

 

2.3.1  BC內(nèi)存管理

BC內(nèi)存管理如圖2所示。該圖說(shuō)明了堆棧指針包含四個(gè)字的消息塊描述符,即塊狀態(tài)字,時(shí)間標(biāo)志字,消息間隔時(shí)間和消息塊地址。塊狀態(tài)字包括消息狀態(tài)、完成、有效性及總線通道;時(shí)間標(biāo)志字反映了當(dāng)前消息起始和結(jié)束時(shí)時(shí)間標(biāo)志寄存器的值,它可以編程為分辨率為264us/LSB2的冪);消息間隔時(shí)間指的是當(dāng)前消息的開(kāi)始到下一條消息的開(kāi)始之間的時(shí)間;消息塊地址提供了指向消息塊第一個(gè)字的指針。

 

2.3.2  BC編程

 

對(duì)于BC編程,首先要初始化相應(yīng)的寄存器以及堆棧指針、消息計(jì)數(shù)器;然后定義消息的控制字、命令字等;最后啟動(dòng)BC。需要注意的是BC控制字不會(huì)在1553總線上傳輸。BC的消息格式通過(guò)編程BC控制字的最低3位來(lái)控制。如表1所示。

 

BC消息幀可以通過(guò)查詢和中斷來(lái)進(jìn)行處理。如果采用查詢模式,那么可以查詢配置寄存器1、中斷狀態(tài)寄存器、堆棧指針和消息計(jì)數(shù)器寄存器。另外,每一條BC消息結(jié)束后堆棧指針加4,所以如果要讀取RT-To-BC的消息,我們應(yīng)該首先從堆棧指針A中讀取當(dāng)前消息的堆棧指針,然后減4后來(lái)分別讀出塊狀態(tài)字、時(shí)間標(biāo)志字、消息時(shí)間間隔和上一條消息的塊地址,最后從此塊地址讀出接收到的數(shù)據(jù)。在嵌入式系統(tǒng)軟件處理中,我們應(yīng)盡量采用中斷方式。

 

表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,即遠(yuǎn)程終端,它包含了所有MIL-STD-1553的格式,雙冗余模式編碼,內(nèi)部命令非法,內(nèi)部格式化的BIT字和錯(cuò)誤檢測(cè)。RT的反映時(shí)間大約為4.8us。RT內(nèi)存管理包含單消息模式,循環(huán)緩沖區(qū)模式(支持批量數(shù)據(jù)傳輸)和雙緩沖區(qū)模式。通過(guò)使用雙緩沖區(qū),主機(jī)處理器很容易訪問(wèn)最近接收到有效數(shù)據(jù)塊。對(duì)于發(fā)送、接收或廣播子地址,數(shù)據(jù)塊存儲(chǔ)緩沖區(qū)可以采用單緩沖、雙緩沖(兩個(gè)交替的數(shù)據(jù)塊)和循環(huán)緩沖區(qū)(可編程大小為128到8192個(gè)字)。在增強(qiáng)模式下,ACE提供RT子地址雙緩沖區(qū),RT子地址雙緩沖區(qū)模式給指定的子地址分配了兩個(gè)32字?jǐn)?shù)據(jù)緩沖區(qū),接收到的數(shù)據(jù)交替的存儲(chǔ)在這兩個(gè)緩沖區(qū)中。

 

2.4.1  RT內(nèi)存管理

 

RT內(nèi)存管理包含單消息模式,循環(huán)緩沖區(qū)模式(支持批量數(shù)據(jù)傳輸)和雙緩沖區(qū)模式。在此主要介紹循環(huán)緩沖區(qū)模式,如圖3所示。這意味著在我們?cè)O(shè)置發(fā)送、接收或廣播的初始地址后,數(shù)據(jù)塊地址從此地址開(kāi)始到所設(shè)置的最大長(zhǎng)度(如1024字)進(jìn)行環(huán)繞。這在大批量數(shù)據(jù)傳輸中非常有效,它可以減輕處理器的負(fù)荷,我們?cè)谔幚頃r(shí)可以設(shè)置循環(huán)緩沖區(qū)Rollover中斷來(lái)一次性讀取數(shù)據(jù)。

 

 

2.4.2  RT子地址控制字

 

在增強(qiáng)RT內(nèi)存管理方式下,32個(gè)子地址控制字控制了各自的內(nèi)存管理和中斷。對(duì)于每一個(gè)子地址控制字,發(fā)送、接收和廣播各5位控制內(nèi)存大小及中斷,第15位用來(lái)控制使能子地址雙緩沖區(qū)。子地址控制字位如表2所示。

表2 子地址控制字位

15

RX: DOUBLE BUFFER ENABLE

14

TX: EOM INT

13

TX: CIRC BUF INT

12

TX: MEMORY MANAGEMENT 2 (MM2)

11

TX: MEMORY MANAGEMENT 1 (MM1)

10

TX: MEMORY MANAGEMENT 0 (MM0)

9

RX: EOM INT

8

RX: CIRC BUF INT

7

RX: MEMORY MANAGEMENT 2 (MM2)

6

RX: MEMORY MANAGEMENT 1 (MM1)

5

RX: MEMORY MANAGEMENT 0 (MM0)

4

BCST: EOM INT

3

BCST: CIRC BUF INT

2

BCST: MEMORY MANAGEMENT 2 (MM2)

1

BCST: MEMORY MANAGEMENT 1 (MM1)

0

BCST: MEMORY MANAGEMENT 0 (MM0)

 

注意,對(duì)于發(fā)送子地址,我們可以選擇使用單緩沖或循環(huán)緩沖內(nèi)存方式,而雙緩沖模式則不用于發(fā)送子地址。

 

2.4.3  RT編程

對(duì)于RT編程,首先初始化相應(yīng)的寄存器;然后設(shè)置非法區(qū)、初始化相應(yīng)子地址的查詢表及子地址控制字;最后設(shè)置配置寄存器1使設(shè)備處于RT模式。此后該設(shè)備就處于在線,只要BC發(fā)送一條消息命令與該設(shè)備相關(guān),那么該設(shè)備就會(huì)做出反映。處理RT消息時(shí),這里也有四個(gè)字的塊描述符,即塊狀態(tài)字、時(shí)間標(biāo)志字、數(shù)據(jù)塊起始地址指針和接收到的16位命令字。與BC模式一樣,要讀取接收到的消息,我們應(yīng)該首先從堆棧指針A中讀取當(dāng)前消息的堆棧指針,然后減4后來(lái)分別讀出塊狀態(tài)字、時(shí)間標(biāo)志字、上一條消息的塊地址和命令字(該命令字中包含數(shù)據(jù)長(zhǎng)度、RT地址、子地址以及是發(fā)送或接收標(biāo)志);最后根據(jù)數(shù)據(jù)長(zhǎng)度從此塊地址讀出接收到的數(shù)據(jù)。

 

2.5  MT模式操作

MT,即監(jiān)控模式,它包含三種不同的總線監(jiān)控模式:(1)字監(jiān)控;(2)可選擇的消息監(jiān)控;(3)組合的RT/可選擇的消息監(jiān)控模式。本文主要介紹可選擇的消息監(jiān)控方式。消息監(jiān)控包含一個(gè)命令堆棧和一個(gè)數(shù)據(jù)堆棧,它們位于RAM中固定的位置。

 

2.5.1  消息監(jiān)控格式

在數(shù)據(jù)堆棧中的消息格式取決于要處理的消息類型。BC-To-RT命令傳輸會(huì)把命令字存儲(chǔ)在監(jiān)控命令字堆棧中,數(shù)據(jù)跟隨在接收到的RT狀態(tài)字后面一起存儲(chǔ)在監(jiān)控?cái)?shù)據(jù)堆棧中。注意,讀取到的監(jiān)控消息需要:塊狀態(tài)字(用來(lái)決定消息是否是RT-To-RT傳輸),命令字(用來(lái)決定消息格式和字?jǐn)?shù),如發(fā)送、接收、模式編碼、廣播等),數(shù)據(jù)指針。

 

2.5.2  MT編程

對(duì)于MT編程,首先初始化相應(yīng)寄存器及配置寄存器1來(lái)使該設(shè)備處于MT模式;然后初始化監(jiān)控命令堆棧指針和數(shù)據(jù)堆棧指針,初始化可選擇的監(jiān)控查詢表;最后啟動(dòng)MT。中斷處理時(shí),首先讀取中斷狀態(tài)寄存器,判斷是否是EOM中斷;其次從命令字堆棧所初始化的堆棧地址開(kāi)始讀取塊狀態(tài)字、時(shí)間標(biāo)志字、數(shù)據(jù)指針及命令字;最后從數(shù)據(jù)指針?biāo)傅牡刂分凶x取狀態(tài)字和數(shù)據(jù)。注意,此后堆棧指針應(yīng)該加4,一直到1K環(huán)繞。

 

3 軟件部分

   該軟件部分主要工作在VxWorks嵌入式操作系統(tǒng)中,軟件的任務(wù)首先是通過(guò)PCI總線查找PCI9052的存在與否,然后獲取IO、內(nèi)存以及中斷資源以供驅(qū)動(dòng)程序使用。軟件的主要任務(wù)就是初始化DDC61580相關(guān)寄存器以及內(nèi)存,并使之工作于其中一種模式(BCRTMT)。比如下面一段程序就是使DDC61580工作于RT模式。

//Start RT Test

       for(i=0;i<256;i++)

              _acMemWrite(STACK_A + i ,0x0000);

 

       _acMemWrite(STACK_POINTER_A ,0x0000);                 //Initialize Stack

      

       //Initialize lookup

       for(i=0;i<128;i++)

              _acMemWrite((LOOKUP_A + i) ,0xffff);

 

       for(i=0;i<32;i++)

              _acMemWrite((0x400 + i) ,0xffff);

 

       _acMemWrite(0x162  ,0x0260);         //sa2,transmit

       _acMemWrite(0x1a2  ,0x8000);         //sa2

      

       _acMemWrite(0x143  ,0x0400);         //sa3,receive

       _acMemWrite(0x1a3  ,0x0260);         //sa3,single message,EOM interrupt enabled

 

       for(i=0;i<32;i++)

              _acMemWrite((0x3c0 +i)  ,0x0000);          //sa2

      

       for(i=0;i<32;i++)

              _acMemWrite((0x400  + i) ,i);

      

       _acRegWrite(REG_CFG1_RW,0x8f80);       //0x8f80

 

4 CPLD邏輯部分

在該系統(tǒng)中,PCI9052采用的是ISA模式。對(duì)于ISA模式,首先必須確保硬件按照Datasheet上所說(shuō)的進(jìn)行配置,其次是EPROM內(nèi)容的編寫。EPROM內(nèi)容最重要的就是LAS0RR、LAS1RRLAS0BALAS1BA、CS0BASECS1BASE。它們分別對(duì)應(yīng)于Local Configuration Registers偏移值為00h、04h、14h18hLAS0RR定義了內(nèi)存地址空間大小,如0x1fff,那么它的值應(yīng)為0xFFFE000;LAS1RR定義了IO地址空間大小,如0x3f,那么它的值應(yīng)為0xFFFFFC1LAS0BA為內(nèi)存地址的基地址,也就是訪問(wèn)外部設(shè)備用的基地址,如0xD0001,表示外部設(shè)備內(nèi)存基地址為0xD0000;LAS1BAIO地址的基地址,也就是訪問(wèn)外部設(shè)備用的IO基地址,如0x201,表示外部設(shè)備內(nèi)存基地址為0x200。CS0BASECS1BASE根據(jù)基地址和地址范圍來(lái)定義。具體請(qǐng)參考PCI9052數(shù)據(jù)手冊(cè)。

要訪問(wèn)外部設(shè)備(如基地址為0x200),PCI9052與外部設(shè)備之間就必須有相應(yīng)的邏輯控制以使能夠訪問(wèn)到外部設(shè)備。在PC機(jī)端只需要訪問(wèn)PCI配置寄存器讀取的局部地址空間0、1即可。因?yàn)?/SPAN>ISA>PCI之間的轉(zhuǎn)換是PCI9052自動(dòng)完成的。對(duì)于DDC61580,需要控制的信號(hào)有:/SELECT、/STRBD、MEM//REG、RD//WR、/MSTCLR/READY;而對(duì)于PCI9052則需要/MEMRD、/MEMWR、/IORD、/IOWR、LRESET、CHRDY以及需要的地址信號(hào),至于所需要的地址信號(hào),我們可以和ISA總線進(jìn)行地址譯碼一樣。

懂得了上述PCI9052DDC61580之間的邏輯關(guān)系,要表達(dá)出來(lái)就很容易了。具體的代碼在此就不寫了。

 

5 注意

在硬件設(shè)計(jì)上,必須嚴(yán)格按照DDC61580PCI9052說(shuō)明書上進(jìn)行相關(guān)引腳的處理。比如對(duì)于DDC61580工作有幾種模式,必須正確設(shè)置;而PCI9052 EEPROM內(nèi)容的編寫也一定要正確。

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉