李海軍 牟俊杰 孫海文
摘 要: 針對(duì)目前1553B總線已漸漸達(dá)不到先進(jìn)飛機(jī)對(duì)信息傳輸速度的要求,設(shè)計(jì)了高速1553B總線控制器通信管理系統(tǒng),詳細(xì)規(guī)劃了總線控制器與主機(jī)間共享存儲(chǔ)區(qū)的各個(gè)模塊,運(yùn)用雙緩沖機(jī)制降低了消息傳輸延遲,通過(guò)對(duì)共享存儲(chǔ)區(qū)的高效管理,縮短了總線傳輸多幀數(shù)據(jù)時(shí)的數(shù)據(jù)等待時(shí)間,加快了總線信息的傳輸速度,有效提高總線利用率。在配置有EXC?1553PCI/MCH板卡的工控機(jī)上驗(yàn)證得知,所設(shè)計(jì)的系統(tǒng)能夠可靠地提高總線吞吐率,滿足1553B總線向高速率發(fā)展的要求。
關(guān)鍵詞: 1553B; 總線控制器; 系統(tǒng)設(shè)計(jì); 傳輸速度
中圖分類號(hào): TN911.7?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)17?0016?03
Abstract: A communication management system for the high?speed 1553B bus controller was designed because the avai?lable 1553B bus can not reach the requirement of the information transfer rate of advanced planes. Detailed Planning for each module in the shared memory region between bus controller and main engine was made. The information transmission delay is reduced by using the double buffering mechanism. By the high?efficiency management to shared memery region, the waiting time when the bus transmits multi?frame data is shortened and the transmission speed of bus information is quickened. The bus utilization ratio was effectively raised. By the validation in the industrial personal computer with EXC?1553PCI / MCH board card, the throughput rate of the designed bus can be raised reliably. The system can satisfy the development requirement of high?speed 1553B bus.
Keywords: 1553B; bus controller; system design; transmission speed
0 引 言
自GJB289A?97實(shí)施以來(lái),1553B總線的應(yīng)用領(lǐng)域越來(lái)越廣泛,對(duì)1553B總線信息傳輸速度的要求越來(lái)越高,以往1 Mb/s傳輸速率的1553B總線系統(tǒng)越來(lái)越滿足不了國(guó)防應(yīng)用的需要,因此,設(shè)計(jì)高速1553B總線系統(tǒng)勢(shì)在必行[1]。通過(guò)深入研究1553B總線的通信協(xié)議,參考國(guó)內(nèi)外1553B總線接口模塊的設(shè)計(jì)思路[2?3],設(shè)計(jì)了高速1553B總線控制器通信管理系統(tǒng),實(shí)現(xiàn)了總線控制器對(duì)總線上傳輸?shù)牟煌袷叫畔⒌母咝Т鎯?chǔ)與管理。
1 總線控制器通信管理系統(tǒng)的功能
1553B總線系統(tǒng)由總線控制器(BC)、遠(yuǎn)程終端(RT)和總線監(jiān)控器(BM)組成,由多路總線接口(MBI)進(jìn)行整合實(shí)現(xiàn)其功能[4]??偩€控制器是在總線上惟一被指定執(zhí)行啟動(dòng)信息傳輸任務(wù)的終端,它發(fā)出數(shù)據(jù)總線命令,參與數(shù)據(jù)傳輸,接受狀態(tài)響應(yīng)和監(jiān)視系統(tǒng)的狀態(tài),對(duì)數(shù)據(jù)總線實(shí)行控制和仲裁[5]。在實(shí)際應(yīng)用中總線控制器與一個(gè)稱為主機(jī)的計(jì)算機(jī)相連接,總線控制器自身不能產(chǎn)生命令字和數(shù)據(jù)字。當(dāng)其需要發(fā)送信息時(shí),主機(jī)將待要發(fā)送的命令字和數(shù)據(jù)字按照協(xié)議要求轉(zhuǎn)換成1553B總線系統(tǒng)能夠識(shí)別的命令字和數(shù)據(jù)字,存儲(chǔ)在共享存儲(chǔ)器中,然后主機(jī)發(fā)送啟動(dòng)信號(hào)給總線控制器指示其讀取共享存儲(chǔ)器中的命令字與數(shù)據(jù)字,繼而發(fā)送到總線上。通常總線控制器發(fā)送的數(shù)據(jù)流包含多條信息,因此需要建立合理高效的通信管理系統(tǒng)對(duì)共享存儲(chǔ)器中存儲(chǔ)的信息進(jìn)行管理,以便總線控制器有序地讀取信息。
在1553B總線系統(tǒng)工作時(shí),通信管理系統(tǒng)用于判斷雙緩沖機(jī)制中的活動(dòng)域,判斷信息的條數(shù),讀取規(guī)定消息塊中的控制字并判斷信息的類型,讀取規(guī)定數(shù)量的命令字存儲(chǔ)到相應(yīng)的命令字寄存器中,根據(jù)發(fā)送/接收信號(hào)的不同將規(guī)定數(shù)量的數(shù)據(jù)字發(fā)送到相應(yīng)終端并存儲(chǔ),等待信息回應(yīng),并在信息發(fā)送過(guò)程中出現(xiàn)錯(cuò)誤時(shí)按要求進(jìn)行重發(fā)。
2 通信管理系統(tǒng)的分析與設(shè)計(jì)
總線控制器與主機(jī)之間設(shè)有共享存儲(chǔ)器,通信管理系統(tǒng)的主要應(yīng)用對(duì)象便是共享存儲(chǔ)器。共享存儲(chǔ)器存儲(chǔ)空間的劃分見(jiàn)表1。
2.1 雙緩沖機(jī)制
共享存儲(chǔ)器有A、B兩個(gè)命令堆棧區(qū),由此形成雙緩沖機(jī)制。雙緩沖機(jī)制是指通過(guò)配置寄存器將A區(qū)或B區(qū)置為活動(dòng)域,余下的是非活動(dòng)域,系統(tǒng)按照1553B總線通信協(xié)議進(jìn)行信息傳輸時(shí),總線控制器只能訪問(wèn)活動(dòng)域,而主機(jī)對(duì)活動(dòng)域和非活動(dòng)域都有權(quán)訪問(wèn)。首先主機(jī)初始化存儲(chǔ)器的各個(gè)模塊和各控制寄存器,設(shè)置活動(dòng)域,然后通信管理系統(tǒng)訪問(wèn)活動(dòng)域,讀取信息發(fā)送至總線上,繼而交換活動(dòng)域和非活動(dòng)域,仍然讀取活動(dòng)域信息,如此便提高了消息處理的速度與連續(xù)性。
2.2 命令堆棧區(qū)
命令堆棧區(qū)用于存儲(chǔ)消息的描述塊。每條消息都有屬于自己的描述塊,每個(gè)描述塊包含四部分:消息塊狀態(tài)字、時(shí)標(biāo)、消息間間隔、消息塊地址指針[6],每部分占用一個(gè)字節(jié)的存儲(chǔ)空間。
消息塊狀態(tài)字表示所要處理的消息塊的狀態(tài),其內(nèi)容表征了當(dāng)前所處理消息的完成程度,傳輸時(shí)所選擇的通道,傳輸過(guò)程中是否發(fā)生錯(cuò)誤,是否需要重新處理以及重發(fā)時(shí)的重發(fā)次數(shù)等。
時(shí)標(biāo)信息表示消息傳輸?shù)钠鹗紩r(shí)間。
消息間間隔表示處理兩則消息時(shí)的時(shí)間間隔。
消息塊地址指針表示所要處理的信息在消息塊堆棧區(qū)的起始地址指針。
2.3 消息塊堆棧區(qū)
1553B總線所要傳輸?shù)男畔⒕娣旁谙K堆棧區(qū)中。每個(gè)消息塊的第一個(gè)字是BC控制字,其用來(lái)選擇總線傳輸所選擇的通道,并決定信息的格式(如BC→RT,RT→BC,RT→RT等),BC控制字不發(fā)送到總線上。
BC控制字的下一個(gè)字便是命令字(若是RT→RT消息,則有兩個(gè)命令字)。通信管理系統(tǒng)讀取命令字存儲(chǔ)于命令字寄存器并發(fā)送到總線上。當(dāng)發(fā)送的信息帶有數(shù)據(jù)字時(shí),通信管理系統(tǒng)將繼續(xù)發(fā)送數(shù)據(jù)字,當(dāng)最后一個(gè)字(命令字或數(shù)據(jù)字)發(fā)送完成后,通信管理系統(tǒng)接收返回字??偩€控制器還需要預(yù)留存儲(chǔ)地址用于存儲(chǔ)遠(yuǎn)程終端返回的狀態(tài)字和可能要接收的數(shù)據(jù)字。
2.4 固定地址空間
固定地址0100~0107中,0100存儲(chǔ)A命令堆棧區(qū)中的首地址指針,0101存儲(chǔ)一幀消息中消息塊的數(shù)量,0102、0103用于幀自動(dòng)重發(fā)模式下;類似的,0104~0107對(duì)于B命令堆棧區(qū)也有相同設(shè)置。消息處理時(shí)每處理一個(gè)消息塊,則0101或0105中的值加1,當(dāng)數(shù)值達(dá)到FFFF時(shí)表示本幀消息處理結(jié)束。
3 通信管理系統(tǒng)工作過(guò)程
1553B總線系統(tǒng)開(kāi)始工作時(shí),主機(jī)先對(duì)0100~0107這8個(gè)固定地址賦初值,總線控制器根據(jù)主機(jī)的指令判斷活動(dòng)域,讀取相應(yīng)固定地址中的值,找到命令堆棧區(qū)中的第一個(gè)描述塊,查找描述塊的第四個(gè)字所指示的首消息塊,分析消息塊的BC控制字,判斷消息類型及采用的通道,讀取命令字并發(fā)送到總線上,按照需要發(fā)送數(shù)據(jù)字,預(yù)留地址存儲(chǔ)狀態(tài)字和可能返回的數(shù)據(jù)字。當(dāng)一則消息處理結(jié)束時(shí),判斷消息傳輸是否發(fā)生錯(cuò)誤,如果發(fā)生錯(cuò)誤,則重新處理消息,且命令字堆棧指針和消息數(shù)量計(jì)數(shù)器不變;若未發(fā)生錯(cuò)誤,則消息數(shù)量計(jì)數(shù)器加1,繼續(xù)處理下一個(gè)消息塊,直到消息數(shù)量計(jì)數(shù)器達(dá)到FFFF,本幀消息發(fā)送完畢,向主機(jī)發(fā)送傳輸結(jié)束指令,等待新的消息傳輸命令。其流程如圖1所示。
4 實(shí)驗(yàn)仿真
將設(shè)計(jì)的通信管理系統(tǒng)應(yīng)用于配置有EXC?1553PCI/MCH板卡的工控機(jī)上,設(shè)置消息間間隔為3 500 μs,在信息中所含信息幀的數(shù)量相同的情況下,對(duì)比本系統(tǒng)與單區(qū)通信系統(tǒng)的信息發(fā)送時(shí)間,可以明顯看出本系統(tǒng)所需的通信時(shí)間較短,仿真結(jié)果如圖2所示。
參考文獻(xiàn)
[1] 熊華鋼,王中華.先進(jìn)航空電子綜合技術(shù)[M].北京: 國(guó)防工業(yè)出版社,2009.
[2] 國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì).GJB289A?97數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[S].北京:國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì),1997.
[3] 賈永來(lái).基于FPGA的1553B總線接口技術(shù)研究及實(shí)現(xiàn)[D].成都:電子科技大學(xué),2008.
[4] 支超有.機(jī)載數(shù)據(jù)總線技術(shù)及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2009.
[5] 呂亞洲.1553B總線信號(hào)接口定義反求技術(shù)研究[D].南京:南京航空航天大學(xué),2012.
[6] 裴培.車載系統(tǒng)中MIL?STD?1553B總線接口的設(shè)計(jì)[D].南京:南京理工大學(xué),2007.
消息塊狀態(tài)字表示所要處理的消息塊的狀態(tài),其內(nèi)容表征了當(dāng)前所處理消息的完成程度,傳輸時(shí)所選擇的通道,傳輸過(guò)程中是否發(fā)生錯(cuò)誤,是否需要重新處理以及重發(fā)時(shí)的重發(fā)次數(shù)等。
時(shí)標(biāo)信息表示消息傳輸?shù)钠鹗紩r(shí)間。
消息間間隔表示處理兩則消息時(shí)的時(shí)間間隔。
消息塊地址指針表示所要處理的信息在消息塊堆棧區(qū)的起始地址指針。
2.3 消息塊堆棧區(qū)
1553B總線所要傳輸?shù)男畔⒕娣旁谙K堆棧區(qū)中。每個(gè)消息塊的第一個(gè)字是BC控制字,其用來(lái)選擇總線傳輸所選擇的通道,并決定信息的格式(如BC→RT,RT→BC,RT→RT等),BC控制字不發(fā)送到總線上。
BC控制字的下一個(gè)字便是命令字(若是RT→RT消息,則有兩個(gè)命令字)。通信管理系統(tǒng)讀取命令字存儲(chǔ)于命令字寄存器并發(fā)送到總線上。當(dāng)發(fā)送的信息帶有數(shù)據(jù)字時(shí),通信管理系統(tǒng)將繼續(xù)發(fā)送數(shù)據(jù)字,當(dāng)最后一個(gè)字(命令字或數(shù)據(jù)字)發(fā)送完成后,通信管理系統(tǒng)接收返回字??偩€控制器還需要預(yù)留存儲(chǔ)地址用于存儲(chǔ)遠(yuǎn)程終端返回的狀態(tài)字和可能要接收的數(shù)據(jù)字。
2.4 固定地址空間
固定地址0100~0107中,0100存儲(chǔ)A命令堆棧區(qū)中的首地址指針,0101存儲(chǔ)一幀消息中消息塊的數(shù)量,0102、0103用于幀自動(dòng)重發(fā)模式下;類似的,0104~0107對(duì)于B命令堆棧區(qū)也有相同設(shè)置。消息處理時(shí)每處理一個(gè)消息塊,則0101或0105中的值加1,當(dāng)數(shù)值達(dá)到FFFF時(shí)表示本幀消息處理結(jié)束。
3 通信管理系統(tǒng)工作過(guò)程
1553B總線系統(tǒng)開(kāi)始工作時(shí),主機(jī)先對(duì)0100~0107這8個(gè)固定地址賦初值,總線控制器根據(jù)主機(jī)的指令判斷活動(dòng)域,讀取相應(yīng)固定地址中的值,找到命令堆棧區(qū)中的第一個(gè)描述塊,查找描述塊的第四個(gè)字所指示的首消息塊,分析消息塊的BC控制字,判斷消息類型及采用的通道,讀取命令字并發(fā)送到總線上,按照需要發(fā)送數(shù)據(jù)字,預(yù)留地址存儲(chǔ)狀態(tài)字和可能返回的數(shù)據(jù)字。當(dāng)一則消息處理結(jié)束時(shí),判斷消息傳輸是否發(fā)生錯(cuò)誤,如果發(fā)生錯(cuò)誤,則重新處理消息,且命令字堆棧指針和消息數(shù)量計(jì)數(shù)器不變;若未發(fā)生錯(cuò)誤,則消息數(shù)量計(jì)數(shù)器加1,繼續(xù)處理下一個(gè)消息塊,直到消息數(shù)量計(jì)數(shù)器達(dá)到FFFF,本幀消息發(fā)送完畢,向主機(jī)發(fā)送傳輸結(jié)束指令,等待新的消息傳輸命令。其流程如圖1所示。
4 實(shí)驗(yàn)仿真
將設(shè)計(jì)的通信管理系統(tǒng)應(yīng)用于配置有EXC?1553PCI/MCH板卡的工控機(jī)上,設(shè)置消息間間隔為3 500 μs,在信息中所含信息幀的數(shù)量相同的情況下,對(duì)比本系統(tǒng)與單區(qū)通信系統(tǒng)的信息發(fā)送時(shí)間,可以明顯看出本系統(tǒng)所需的通信時(shí)間較短,仿真結(jié)果如圖2所示。
參考文獻(xiàn)
[1] 熊華鋼,王中華.先進(jìn)航空電子綜合技術(shù)[M].北京: 國(guó)防工業(yè)出版社,2009.
[2] 國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì).GJB289A?97數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[S].北京:國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì),1997.
[3] 賈永來(lái).基于FPGA的1553B總線接口技術(shù)研究及實(shí)現(xiàn)[D].成都:電子科技大學(xué),2008.
[4] 支超有.機(jī)載數(shù)據(jù)總線技術(shù)及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2009.
[5] 呂亞洲.1553B總線信號(hào)接口定義反求技術(shù)研究[D].南京:南京航空航天大學(xué),2012.
[6] 裴培.車載系統(tǒng)中MIL?STD?1553B總線接口的設(shè)計(jì)[D].南京:南京理工大學(xué),2007.
消息塊狀態(tài)字表示所要處理的消息塊的狀態(tài),其內(nèi)容表征了當(dāng)前所處理消息的完成程度,傳輸時(shí)所選擇的通道,傳輸過(guò)程中是否發(fā)生錯(cuò)誤,是否需要重新處理以及重發(fā)時(shí)的重發(fā)次數(shù)等。
時(shí)標(biāo)信息表示消息傳輸?shù)钠鹗紩r(shí)間。
消息間間隔表示處理兩則消息時(shí)的時(shí)間間隔。
消息塊地址指針表示所要處理的信息在消息塊堆棧區(qū)的起始地址指針。
2.3 消息塊堆棧區(qū)
1553B總線所要傳輸?shù)男畔⒕娣旁谙K堆棧區(qū)中。每個(gè)消息塊的第一個(gè)字是BC控制字,其用來(lái)選擇總線傳輸所選擇的通道,并決定信息的格式(如BC→RT,RT→BC,RT→RT等),BC控制字不發(fā)送到總線上。
BC控制字的下一個(gè)字便是命令字(若是RT→RT消息,則有兩個(gè)命令字)。通信管理系統(tǒng)讀取命令字存儲(chǔ)于命令字寄存器并發(fā)送到總線上。當(dāng)發(fā)送的信息帶有數(shù)據(jù)字時(shí),通信管理系統(tǒng)將繼續(xù)發(fā)送數(shù)據(jù)字,當(dāng)最后一個(gè)字(命令字或數(shù)據(jù)字)發(fā)送完成后,通信管理系統(tǒng)接收返回字??偩€控制器還需要預(yù)留存儲(chǔ)地址用于存儲(chǔ)遠(yuǎn)程終端返回的狀態(tài)字和可能要接收的數(shù)據(jù)字。
2.4 固定地址空間
固定地址0100~0107中,0100存儲(chǔ)A命令堆棧區(qū)中的首地址指針,0101存儲(chǔ)一幀消息中消息塊的數(shù)量,0102、0103用于幀自動(dòng)重發(fā)模式下;類似的,0104~0107對(duì)于B命令堆棧區(qū)也有相同設(shè)置。消息處理時(shí)每處理一個(gè)消息塊,則0101或0105中的值加1,當(dāng)數(shù)值達(dá)到FFFF時(shí)表示本幀消息處理結(jié)束。
3 通信管理系統(tǒng)工作過(guò)程
1553B總線系統(tǒng)開(kāi)始工作時(shí),主機(jī)先對(duì)0100~0107這8個(gè)固定地址賦初值,總線控制器根據(jù)主機(jī)的指令判斷活動(dòng)域,讀取相應(yīng)固定地址中的值,找到命令堆棧區(qū)中的第一個(gè)描述塊,查找描述塊的第四個(gè)字所指示的首消息塊,分析消息塊的BC控制字,判斷消息類型及采用的通道,讀取命令字并發(fā)送到總線上,按照需要發(fā)送數(shù)據(jù)字,預(yù)留地址存儲(chǔ)狀態(tài)字和可能返回的數(shù)據(jù)字。當(dāng)一則消息處理結(jié)束時(shí),判斷消息傳輸是否發(fā)生錯(cuò)誤,如果發(fā)生錯(cuò)誤,則重新處理消息,且命令字堆棧指針和消息數(shù)量計(jì)數(shù)器不變;若未發(fā)生錯(cuò)誤,則消息數(shù)量計(jì)數(shù)器加1,繼續(xù)處理下一個(gè)消息塊,直到消息數(shù)量計(jì)數(shù)器達(dá)到FFFF,本幀消息發(fā)送完畢,向主機(jī)發(fā)送傳輸結(jié)束指令,等待新的消息傳輸命令。其流程如圖1所示。
4 實(shí)驗(yàn)仿真
將設(shè)計(jì)的通信管理系統(tǒng)應(yīng)用于配置有EXC?1553PCI/MCH板卡的工控機(jī)上,設(shè)置消息間間隔為3 500 μs,在信息中所含信息幀的數(shù)量相同的情況下,對(duì)比本系統(tǒng)與單區(qū)通信系統(tǒng)的信息發(fā)送時(shí)間,可以明顯看出本系統(tǒng)所需的通信時(shí)間較短,仿真結(jié)果如圖2所示。
參考文獻(xiàn)
[1] 熊華鋼,王中華.先進(jìn)航空電子綜合技術(shù)[M].北京: 國(guó)防工業(yè)出版社,2009.
[2] 國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì).GJB289A?97數(shù)字式時(shí)分制指令/響應(yīng)型多路傳輸數(shù)據(jù)總線[S].北京:國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì),1997.
[3] 賈永來(lái).基于FPGA的1553B總線接口技術(shù)研究及實(shí)現(xiàn)[D].成都:電子科技大學(xué),2008.
[4] 支超有.機(jī)載數(shù)據(jù)總線技術(shù)及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2009.
[5] 呂亞洲.1553B總線信號(hào)接口定義反求技術(shù)研究[D].南京:南京航空航天大學(xué),2012.
[6] 裴培.車載系統(tǒng)中MIL?STD?1553B總線接口的設(shè)計(jì)[D].南京:南京理工大學(xué),2007.