當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]1 引言 1553B總線是美國(guó)軍用標(biāo)準(zhǔn)MIL-STD-1553B定義的一種串行總線的傳輸形式。由美國(guó)于20世紀(jì)70年代提出,總線的組成包括一個(gè)總線控制器(BC),若干個(gè)(最多31個(gè))遠(yuǎn)程終端(RT),如果需要的話還可以加上負(fù)責(zé)

1  引言
    1553B總線是美國(guó)軍用標(biāo)準(zhǔn)MIL-STD-1553B定義的一種串行總線的傳輸形式。由美國(guó)于20世紀(jì)70年代提出,總線的組成包括一個(gè)總線控制器(BC),若干個(gè)(最多31個(gè))遠(yuǎn)程終端(RT),如果需要的話還可以加上負(fù)責(zé)監(jiān)視總線信息的總線監(jiān)視器(BM),1553B總線通訊之所以得到如此廣泛的應(yīng)用,就是其具有以下特點(diǎn):
    (1)強(qiáng)調(diào)實(shí)時(shí)性,1553B的傳送速率為1Mb/s,傳輸速率快。
    (2)1553B總線按指令/響應(yīng)的方式異步操作,即總線上所有的消息傳輸都由總線控制器發(fā)出的指令來(lái)控制,相關(guān)終端對(duì)指令應(yīng)給予回答并執(zhí)行操作。這種方式非常適合集中控制的分布式處理系統(tǒng)。
    (3)1553B總線是雙冗余的傳輸線,總線都是雙備份的,如果總線通訊不通,系統(tǒng)將會(huì)根據(jù)BC初始化時(shí)候的設(shè)定自動(dòng)選擇通訊重試,增強(qiáng)了系統(tǒng)的可靠性。
總線控制器是總線信息通訊的發(fā)起者和組織者,因此對(duì)BC控制的好壞將直接影響到總線通訊的質(zhì)量。
2  總線的控制方法設(shè)計(jì)
    總線控制器是總線信息通訊的發(fā)起者,同時(shí)總線上所有信息的傳輸又均由BC來(lái)控制和激勵(lì),其簡(jiǎn)單的通訊過(guò)程為:BC向RT(或多個(gè)RT)發(fā)送一個(gè)發(fā)送或者接收指令,如果為接收指令,指令后會(huì)攜帶需要RT接收的數(shù)據(jù)字,RT接收到命令字后,在給定的相應(yīng)時(shí)間范圍內(nèi)返回一個(gè)狀態(tài)字,并執(zhí)行相應(yīng)動(dòng)作。如果為發(fā)送指令,RT只需接收BC發(fā)送的數(shù)據(jù)字,然后返回狀態(tài)即可。
    在1553B總線上通訊的信息多種多樣,所以針對(duì)不同的背景要有不同的總線設(shè)計(jì)方法,對(duì)于結(jié)構(gòu)單一、數(shù)據(jù)量較少系統(tǒng),總線上數(shù)據(jù)的活動(dòng)不是很頻繁,可以采取比較簡(jiǎn)單的方法:對(duì)周期性傳輸?shù)南⒉捎霉潭ㄖ芷趤?lái)定時(shí)傳輸,對(duì)一次性消息采用命令插入的方式,要求RT返回?cái)?shù)據(jù)的采用查詢方式向RT的子地址下達(dá)命令字來(lái)獲取數(shù)據(jù)。
    如果通訊比較復(fù)雜,甚至有多個(gè)RT時(shí),這時(shí)再采用上面的方式就使得BC需要同時(shí)發(fā)送大量命令字來(lái)查詢多個(gè)RT的子地址,這樣勢(shì)必給通訊帶來(lái)沉重負(fù)擔(dān),因此可以采用另外一種矢量字方式,將發(fā)送消息的主動(dòng)權(quán)交還給發(fā)送方(RT),具體的實(shí)現(xiàn)方法就是:RT在接收到BC的命令之后,完成相應(yīng)動(dòng)作(例如自檢),動(dòng)作完成后將數(shù)據(jù)字寫到相應(yīng)的子地址BUF中,然后按照協(xié)議構(gòu)造矢量字,再把矢量字發(fā)送到RT的0/31號(hào)子地址(只能是0或31號(hào)子地址),BC在發(fā)送完一次性消息后就可以向0/31號(hào)字地址發(fā)命令字,然后讀得該子地址內(nèi)存放的矢量字,然后根據(jù)協(xié)議解析矢量字,從而向從矢量字中得到的子地址發(fā)送命令,從而得到BC想要得到的RT數(shù)據(jù)。這樣處理既可保證通訊數(shù)據(jù)量明顯較小,又可以保證消息傳輸實(shí)時(shí)性,同時(shí)又使軟件的設(shè)計(jì)具有更多的靈活性。
    為了保證1553B通訊能夠適應(yīng)更多更復(fù)雜的情況,BC還提供了很多特殊的功能給用戶,使用戶可以根據(jù)自己的需求來(lái)使用這些特殊功能,以滿足特殊的系統(tǒng)要求:
    (1)自動(dòng)重試:BC進(jìn)行初始化的時(shí)候可以進(jìn)行設(shè)定,根據(jù)需求來(lái)設(shè)定BC的重試條件。
    (2)動(dòng)態(tài)總線控制:總線控制器向一個(gè)有執(zhí)行總線控制能力的遠(yuǎn)程終端發(fā)送一個(gè)轉(zhuǎn)讓控制的指令字,如果遠(yuǎn)程終端接受總線控制,總線控制權(quán)就交給了這個(gè)遠(yuǎn)程終端。
    (3)啟動(dòng)自檢測(cè):總線控制器可以用指令使遠(yuǎn)程終端激活其內(nèi)部的自檢電路。
3  總線控制器的軟件設(shè)計(jì)
    由于BC在總線上面的特殊性,其軟件設(shè)計(jì)的好壞將直接影響整個(gè)系統(tǒng)通訊的流暢、可靠,軟件設(shè)計(jì)歸結(jié)起來(lái)有以下幾個(gè)注意的地方:
    (1)中斷方式的選擇:對(duì)于總線消息而言,都是總線控制器將這些消息組織成一個(gè)一個(gè)的總線幀來(lái)傳輸?shù)?,一幀也就是平時(shí)說(shuō)的一個(gè)總線周期。在設(shè)計(jì)軟件中斷時(shí)可以采用單個(gè)消息觸發(fā)一次中斷,也可以選擇一個(gè)總線周期進(jìn)一次中斷,當(dāng)然最快的就是單個(gè)消息就進(jìn)入中斷,這樣可以保證每個(gè)消息結(jié)束后就能夠馬上得到處理,實(shí)時(shí)性好。但是每條消息都執(zhí)行中斷程序無(wú)疑對(duì)軟件運(yùn)行效率也是有影響的,所以減少中斷次數(shù)對(duì)軟件系統(tǒng)還是有利的,但是減少進(jìn)中斷次數(shù)又是以犧牲系統(tǒng)實(shí)時(shí)性為代價(jià)的,兩者相比較筆者建議如果通訊數(shù)據(jù)量不是很大的情況下盡量采用單條消息中斷的方式,同時(shí)盡量簡(jiǎn)化中斷程序執(zhí)行的代碼,提高程序的效率。如果有多個(gè)RT且數(shù)據(jù)量很大,可以考慮一個(gè)周期進(jìn)行一次中斷。
    (2)總線的重試與消息重復(fù):當(dāng)消息中出現(xiàn)狀態(tài)地址錯(cuò),字計(jì)數(shù)錯(cuò),同步類型錯(cuò),校驗(yàn)錯(cuò)時(shí)總線會(huì)進(jìn)行標(biāo)記,所以設(shè)計(jì)程序時(shí)應(yīng)當(dāng)打開錯(cuò)誤檢測(cè)位。同時(shí)由于1553B總線是多余度總線,當(dāng)某一個(gè)總線出現(xiàn)差錯(cuò)時(shí),系統(tǒng)會(huì)根據(jù)設(shè)定在另外一個(gè)BUS上重試,也可以在本條總線重試,所以在程序設(shè)計(jì)時(shí)要靈活運(yùn)用。然而對(duì)總線上的廣播消息,由于這類消息沒(méi)有狀態(tài)返回,因此總線重試的意義在這里就沒(méi)有了。
    (3)避免沖突:總線設(shè)計(jì)必須考慮到各個(gè)終端的響應(yīng)及處理,在安排通訊時(shí)應(yīng)該避免對(duì)同一終端地址連續(xù)發(fā)送總線消息(針對(duì)同一子地址的連續(xù)消息發(fā)送除外),由于大多數(shù)終端的通訊處理是在中斷情況下進(jìn)行的,如果連續(xù)發(fā)送則有可能使終端丟失消息或者處理沖突,所以總線要給同一終端留下足夠的處理時(shí)間。
    下面是筆者編寫的總線控制器程序中的部分代碼:
    ////////////中斷函數(shù)////////////////////
    ViInt32 _stdcall demo_rt_watch_function(ViUInt32 cardnum,ViUInt16 chnum,struct api_int_fifo *sIntFIFO)
    {  ViUInt32 tail; // FIFO Tail index
        ViUInt32 messno,wordcount,i=0,j=0; // Message number to be updated
        ViStatus hr;
        API_BC_MBUF api_message;  
        ViUInt16   rtaddr,subaddr,transrec;
        API_RT_MBUF_READ      mbuf;
                           /***********************************************
        * Loop on all entries in the FIFO. Get the tail pointer and extract
        * the FIFO entry it points to. When head == tail FIFO is empty
        ******************************************/
        tail = sIntFIFO->tail_index;
        while (tail != sIntFIFO->head_index )
        {
        // Extract the buffer ID from the FIFO and read the message from the board
                 messno = sIntFIFO->fifo[tail].bufferID;
        if (sIntFIFO->fifo[tail].event_type==EVENT_BC_MESSAGE)
                 {
                                    hr=Eph6273_BC_MessageRead(
                              cardnum,        
// (i)card number (0 - based)
                              chnum,      
// (i)channel number (0 - based)
                              messno,         
// (i)index of BC message to read
                              &api_message);
// (o)user's buffer to write message into  
                       tail++;                        
// Next entry
              tail &= sIntFIFO->mask_index;  
// Wrap the index
              sIntFIFO->tail_index = tail;   
// Save the index
       }
        return API_SUCCESS;
}
4  1553B總線系統(tǒng)連接與調(diào)試
    1553B總線采用雙鉸屏蔽線傳輸,當(dāng)終端離總線很近時(shí)(<0.3米)可以直接通過(guò)隔離變壓器與總線連接,當(dāng)終端離總線較遠(yuǎn)(最遠(yuǎn)不應(yīng)超過(guò)6.1米)時(shí)要在變壓器與總線之間插入耦合器。這兩種方式比較變壓器耦合具有更好的抗干擾能力,能用在長(zhǎng)距離的通訊上,而直接耦合不利于RT故障的隔離,會(huì)因?yàn)槟骋粋€(gè)RT故障造成系統(tǒng)網(wǎng)絡(luò)的通訊不正常。圖1就是一個(gè)簡(jiǎn)單的系統(tǒng)連接圖,當(dāng)然設(shè)計(jì)者可以根據(jù)系統(tǒng)需求在總線上連接更多的終端,也可以掛總線監(jiān)視器用以監(jiān)視總線信息。

圖1   簡(jiǎn)單的1553B系統(tǒng)連接圖
    系統(tǒng)連接完成之后就要對(duì)系統(tǒng)進(jìn)行通訊調(diào)試,系統(tǒng)調(diào)試是一項(xiàng)至關(guān)重要的工作,程序設(shè)計(jì)和系統(tǒng)連接中的問(wèn)題都會(huì)在這個(gè)時(shí)候一一的暴露出來(lái),這時(shí)對(duì)設(shè)計(jì)人員的實(shí)際處理問(wèn)題能力和經(jīng)驗(yàn)提出了要求,結(jié)合自己的經(jīng)驗(yàn)對(duì)系統(tǒng)調(diào)試提出以下幾點(diǎn)建議:
    (1)系統(tǒng)連接完成之后不要急于加電,斷開連接,用導(dǎo)線引出BC端的正負(fù)兩個(gè)管腳,接在示波器上,讓BC發(fā)送一些簡(jiǎn)單的數(shù)據(jù),然后用示波器監(jiān)視讀取這些數(shù)據(jù)看是否正確,1553B總線上面的信息是以消息的形式調(diào)制成曼徹斯特碼進(jìn)行傳輸?shù)?,邏?是編碼的1/0,邏輯0是編碼的0/1。命令字和狀態(tài)字的開頭是前1.5位時(shí)為正后1.5位時(shí)為負(fù)的同步頭,數(shù)據(jù)字是前1.5位時(shí)為負(fù)后1.5位時(shí)為正的同步頭,同步頭后面就是數(shù)據(jù)。據(jù)此可以分析波形確定數(shù)據(jù)。圖2為實(shí)驗(yàn)中抓下的一條全0的命令字,前面先高后低的3個(gè)字位為同步頭,代表了命令字(狀態(tài)字的同步頭也是這樣),后面16位為指令字的數(shù)據(jù),最后一位奇偶校驗(yàn)位為0表示為奇校驗(yàn)。
    這樣做的目的是保證BC發(fā)出的數(shù)據(jù)是基本正確的(包括時(shí)序和電平高低),設(shè)計(jì)人員構(gòu)建系統(tǒng)的1553B芯片或板卡可能來(lái)自不同的廠家,甚至有自己?jiǎn)挝谎兄频?,這樣可以避免出現(xiàn)一些例如正負(fù)管腳接反等低級(jí)錯(cuò)誤。
    (2)系統(tǒng)調(diào)試要先易后難,1553B通訊的消息類型多種多樣,有非周期發(fā)送數(shù)據(jù),也有非周期性發(fā)送命令字讀取數(shù)據(jù),有周期性發(fā)送的數(shù)據(jù),也有周期性發(fā)送命令讀取數(shù)據(jù),也有這幾種方式的組合。我們?cè)谡{(diào)試時(shí)候應(yīng)當(dāng)先調(diào)試簡(jiǎn)單的單獨(dú)通訊模式,BC發(fā)送一個(gè)數(shù)據(jù)字測(cè)試RT是否能收到,RT返回的數(shù)據(jù)BC是否能收到,收到的數(shù)據(jù)是否正確等。簡(jiǎn)單的調(diào)通后進(jìn)而調(diào)試組合的等比較麻煩的通訊。另外調(diào)試時(shí)應(yīng)多用芯片自帶的例子程序來(lái)幫助調(diào)試,這樣能起到意想不到的效果。
    (3)調(diào)試時(shí)還應(yīng)當(dāng)注意一些關(guān)鍵性的細(xì)節(jié)。例如系統(tǒng)單獨(dú)運(yùn)行正常,但是連接起來(lái)通訊就不正常了,考慮是否是沒(méi)有進(jìn)行地址校驗(yàn)導(dǎo)致的,或者是中斷服務(wù)程序中內(nèi)容過(guò)多導(dǎo)致中斷處理時(shí)間過(guò)長(zhǎng)而耽誤了通訊。

圖2   命令字波形圖
5  結(jié)束語(yǔ)
    1553B通訊比較復(fù)雜,設(shè)計(jì)和調(diào)試都存在不小的困難,本文結(jié)合自己調(diào)試1553B系統(tǒng)的一些經(jīng)驗(yàn)和教訓(xùn)和大家進(jìn)行了分享,希望能夠?yàn)橄嚓P(guān)的設(shè)計(jì)人員提供一點(diǎn)幫助。

本站聲明: 本文章由作者或相關(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工具的開發(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ì)開幕式在貴陽(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)閉