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