《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動(dòng)態(tài) > 1553B總線控制器異步通訊仿真軟件設(shè)計(jì)

1553B總線控制器異步通訊仿真軟件設(shè)計(jì)

2008-10-13
作者:宋麗娜 熊華鋼

  摘? 要: 詳細(xì)介紹了1553B" title="1553B">1553B總線控制器" title="總線控制器">總線控制器實(shí)現(xiàn)異步通訊的軟件設(shè)計(jì)方案。

  關(guān)鍵詞: 1553B總線? 總線控制器? 同步通訊" title="同步通訊">同步通訊? 異步通訊? ISBC協(xié)議

?

  1553B是一種時(shí)分制指令/響應(yīng)式多路" title="多路">多路傳輸數(shù)據(jù)總線,因其高可靠性和實(shí)時(shí)性廣泛應(yīng)用在航空電子設(shè)備中,目前在艦船系統(tǒng)中也有廣泛應(yīng)用??偩€上可以掛接一個(gè)總線控制器(BC),若干(不超過31個(gè))用來連接子系統(tǒng)和數(shù)據(jù)總線進(jìn)行數(shù)據(jù)通信的遠(yuǎn)程終端(RT),一般還可以掛接一個(gè)總線監(jiān)視器(MT),用于監(jiān)聽各個(gè)節(jié)點(diǎn)的通信狀態(tài)。

  總線控制器是在數(shù)據(jù)總線上被指定執(zhí)行啟動(dòng)信息傳輸任務(wù)的終端。1553B總線上消息傳輸?shù)倪^程是:總線控制器向某一終端發(fā)布一個(gè)接收/發(fā)送指令,終端在給定的響應(yīng)時(shí)間范圍內(nèi)發(fā)回一個(gè)狀態(tài)字并執(zhí)行消息的接收/發(fā)送。

  在1553B數(shù)據(jù)總線上,消息是按時(shí)間逐次進(jìn)行傳輸?shù)?總線上BC與RT間有10種可能的通信模式[1]。大多消息的處理按固定的順序、周期和相位出現(xiàn)。這類消息稱為周期消息,其傳輸過程叫同步通訊。對(duì)這類消息可以按靜態(tài)的時(shí)間表進(jìn)行,周期時(shí)間最小的消息排在一個(gè)小幀中(小周期),周期時(shí)間最大按小周期2的冪次的調(diào)和構(gòu)成一個(gè)主幀(大周期),每個(gè)大周期由若干個(gè)小周期組成,其余各周期同樣按照2的冪次的調(diào)和排入消息表,具體的算法詳見文獻(xiàn)[2]。多數(shù)的總線控制器系統(tǒng)軟件都只實(shí)現(xiàn)了周期消息的傳輸,即同步通訊。但在實(shí)際應(yīng)用的總線通訊中,有些消息是由系統(tǒng)中隨機(jī)突發(fā)事件激活或由其它事件的請(qǐng)求所引起。這類消息稱非周期消息,相應(yīng)的傳輸稱異步通訊。異步通訊是在有服務(wù)請(qǐng)求的情況下插入同步通訊中的,具有很高的實(shí)時(shí)性和重要性,因此,能夠根據(jù)用戶的需求,在同步通訊的同時(shí)實(shí)現(xiàn)非周期消息的異步通訊具有非常實(shí)際的意義。

1 總線控制器異步通訊處理方案

  總線控制器(BC)是總線上的重要組成。總線上所有消息的傳輸都由BC來激勵(lì)和控制,是總線進(jìn)行通訊的開關(guān)。為了處理非周期消息,在總線上必須對(duì)BC原有的靜態(tài)總線控制協(xié)議進(jìn)行改進(jìn),改進(jìn)后的協(xié)議稱為ISBC,它的特點(diǎn)是:

????·當(dāng)消息被更新后才進(jìn)行傳輸,其工作機(jī)理為更新檢測傳輸(UPD&T);

  ·消息傳輸周期是變化的。一個(gè)周期消息完成后立即開始新的周期。對(duì)任何相關(guān)子系統(tǒng)來說,對(duì)更新性消息而言,傳輸周期是異步的。

  這一協(xié)議的應(yīng)用降低了通信系統(tǒng)的負(fù)載和平均延遲時(shí)間,大大改善了子系統(tǒng)的性能。

  實(shí)現(xiàn)更新數(shù)據(jù)傳輸機(jī)制(ISBC)的方法有兩種:異步服務(wù)請(qǐng)求方式和BC定時(shí)查詢方式。異步服務(wù)請(qǐng)求方式是當(dāng)同步通訊段中的某一周期消息的狀態(tài)字的服務(wù)請(qǐng)求位因異步的服務(wù)而被置1時(shí)必需插入異步通訊。BC定時(shí)查詢方式是總線控制器BC以某一預(yù)定頻率向RT發(fā)送方式指令0x1000(發(fā)送矢量字)。被查詢的RT若有非周期消息,就將矢量字置位,通知BC組織非周期消息的傳輸。

異步請(qǐng)求方式無查詢開銷,但它對(duì)非周期消息響應(yīng)不確定,必須在請(qǐng)求RT獲得總線使用權(quán)時(shí)BC才組織傳輸非周期消息。BC定時(shí)查詢方式較前者有很強(qiáng)的確定性,它每個(gè)小周期對(duì)各個(gè)終端查詢一次,可以保證非周期消息的分辨率,雖然有查詢開銷,但由于采用UDP&T方式,開銷并不多。另外由于它的確定性,系統(tǒng)設(shè)計(jì)時(shí)可確切地對(duì)系統(tǒng)進(jìn)行性能評(píng)價(jià),便于系統(tǒng)設(shè)計(jì)。由于在實(shí)時(shí)系統(tǒng)中主要考慮實(shí)時(shí)性問題,因此本軟件采用BC定時(shí)查詢方式。

2 異步通信軟件的仿真測試環(huán)境

  仿真軟件" title="仿真軟件">仿真軟件的開發(fā)基于特定的硬件和軟件配置環(huán)境。如圖1所示。

?

  在整個(gè)測試環(huán)境中,本軟件用來組織整個(gè)系統(tǒng)各個(gè)子系統(tǒng)間消息的傳輸,并響應(yīng)子系統(tǒng)的非周期消息傳輸請(qǐng)求,實(shí)現(xiàn)異步通訊。計(jì)算機(jī)仿真終端必須由一塊多路數(shù)據(jù)總線接口卡連接到總線上,以進(jìn)行數(shù)據(jù)通訊。本軟件的開發(fā)選用美國DDC公司的IDEA多路數(shù)據(jù)總線接口卡,Win98操作系統(tǒng)為計(jì)算機(jī)仿真平臺(tái)。

  IDEA接口卡本身提供了一個(gè)RTL(運(yùn)行時(shí)庫)函數(shù)庫,為上層仿真軟件的開發(fā)提供了與底層硬件驅(qū)動(dòng)相關(guān)的特定功能接口函數(shù)(API),驅(qū)動(dòng)總線接口卡與總線進(jìn)行數(shù)據(jù)通訊。為了給用戶提供友好的界面,本仿真軟件使用VC++語言進(jìn)行設(shè)計(jì)開發(fā)。

  仿真軟件除了要組織消息的異步通訊,還要求對(duì)鏈入網(wǎng)絡(luò)的各個(gè)終端進(jìn)行監(jiān)視,判斷各個(gè)RT故障情況,將其鏈入或剔除網(wǎng)絡(luò)的通信過程,以提高網(wǎng)絡(luò)的數(shù)據(jù)傳輸效率,并實(shí)時(shí)顯示節(jié)點(diǎn)狀態(tài)便于管理員及時(shí)發(fā)現(xiàn)和排除故障。同時(shí)在實(shí)際通訊中,為了協(xié)調(diào)各個(gè)終端的通訊,設(shè)計(jì)了周期性的帶數(shù)據(jù)字的同步消息,每個(gè)周期向各個(gè)RT廣播,通知各個(gè)RT做好準(zhǔn)備,并在特定終端的異步消息傳輸結(jié)束后通知該RT。設(shè)計(jì)中周期消息的傳輸周期分別為2s、1s、50ms(周期時(shí)間為設(shè)計(jì)值,可根據(jù)用戶要求改變),故設(shè)定周期性消息的傳輸大周期為2s,并將其分成40個(gè)小周期(每周期為50ms)。每一小周期1553B命令的配置圖如圖2所示。??????????

?

?

3 異步通訊軟件的結(jié)構(gòu)

  考慮以上功能的實(shí)現(xiàn)和VC++語言本身的特點(diǎn),本軟件在界面和功能的實(shí)現(xiàn)上采用模塊化的設(shè)計(jì)思想,由設(shè)置文件建立模塊(M1-1)和仿真功能實(shí)現(xiàn)模塊(M1-2)兩個(gè)主模塊組成,各主模塊根據(jù)需要包含相應(yīng)的功能子模塊(模塊的命名方式:M層次-模塊號(hào))。設(shè)置文件建立模塊(M1-1)為用戶提供輸入界面,用戶可以方便地定義系統(tǒng)所使用的終端地址、要傳輸?shù)南?nèi)容和數(shù)據(jù)以及周期消息傳輸?shù)南⒈?對(duì)不同的用戶有很大的適應(yīng)性。仿真功能實(shí)現(xiàn)模塊(M1-2)根據(jù)M1-1提供的數(shù)據(jù)定時(shí)組織周期消息的傳輸,并查詢異步消息的傳輸請(qǐng)求,及時(shí)響應(yīng)異步消息請(qǐng)求并組織傳輸,每個(gè)大周期定時(shí)向故障節(jié)點(diǎn)發(fā)送查詢消息,以判斷相應(yīng)RT的狀態(tài)并刷新實(shí)時(shí)顯示各節(jié)點(diǎn)狀態(tài)。系統(tǒng)模塊數(shù)據(jù)流如圖3所示(設(shè)該軟件為0級(jí)模塊,即M0—仿真軟件)。

?

?

  設(shè)置文件建立模塊主要為用戶提供一個(gè)友好的輸入界面,用戶輸入的數(shù)據(jù)主要為仿真功能實(shí)現(xiàn)模塊提供輸入。仿真功能實(shí)現(xiàn)模塊從軟件中取出用戶在設(shè)置文件模塊中定義的傳輸消息所必需的數(shù)據(jù),組織消息傳輸。根據(jù)不同功能的實(shí)現(xiàn),它所包含的子模塊主要為:IDEA卡的初始化和周期消息傳輸(M2-1)、異步通訊實(shí)現(xiàn)模塊(M2-2)、RT故障檢測(M2-3)。

  由于IDEA卡在驅(qū)動(dòng)上提供了應(yīng)用程序接口函數(shù)API,因此在操作IDEA卡時(shí)只需調(diào)用相應(yīng)的API,而不需直接驅(qū)動(dòng)IDEA卡。在驅(qū)動(dòng)IDEA接口卡進(jìn)行數(shù)據(jù)傳輸前首先要初始化數(shù)據(jù)接口卡,通過調(diào)用相應(yīng)的API,進(jìn)行卡的自檢,并將用戶定義的消息內(nèi)容和消息表寫入IDEA卡的存儲(chǔ)區(qū)。組織周期消息傳輸時(shí),為節(jié)省總線的開銷,在每個(gè)大周期結(jié)束前向網(wǎng)絡(luò)連接的終端發(fā)送查詢狀態(tài)的消息,判斷該節(jié)點(diǎn)是否可以正常通訊,將正常通訊的終端設(shè)置為活動(dòng)終端,并在組織消息表時(shí)進(jìn)行過濾,只組織關(guān)于活動(dòng)終端的消息。圖4給出了仿真軟件在仿真平臺(tái)中的位置及其結(jié)構(gòu)。

?

?

3.1 異步通訊實(shí)現(xiàn)模塊M2-2

  本軟件的重點(diǎn)就是非周期消息的組織傳輸,即異步通訊的實(shí)現(xiàn)。周期傳輸?shù)南⒍鄶?shù)時(shí)間是固定不變的,因此每個(gè)周期都傳輸相同的消息實(shí)際加重了總線的負(fù)載,為此本軟件中大多數(shù)消息都為異步消息,對(duì)終端進(jìn)行查詢。當(dāng)消息變化時(shí)請(qǐng)求發(fā)送的終端設(shè)置相應(yīng)的矢量字,總線控制器則根據(jù)收到的矢量字發(fā)送相應(yīng)的消息。這樣大大節(jié)省了總線的開銷,提高了效率。本軟件采用BC定時(shí)查詢方式實(shí)現(xiàn)異步通訊。

  仿真軟件所仿真的BC每個(gè)小周期(50ms)內(nèi)向各個(gè)活動(dòng)終端發(fā)送方式指令—發(fā)送矢量字,詢問該終端是否有異步通訊請(qǐng)求,被詢問終端向BC返回一個(gè)矢量字(0~31)。若某一終端返回矢量字0,則表示該終端無異步通訊請(qǐng)求,BC繼續(xù)查詢下一活動(dòng)終端;若該終端返回的矢量字非零,則表示該終端有異步通訊請(qǐng)求,BC必須立即組織該終端請(qǐng)求的異步通訊。

  異步通訊是根據(jù)查詢返回的矢量字組織的,不同的矢量字(1~31)對(duì)應(yīng)不同的消息內(nèi)容和數(shù)目,每個(gè)矢量字所對(duì)應(yīng)的非周期消息數(shù)目和內(nèi)容由用戶在設(shè)置文件模塊中自由定義。為了便于在同步通訊中插入異步通訊的程序?qū)崿F(xiàn),定義一個(gè)數(shù)組隊(duì)列。在仿真開始前遍歷用戶在消息定義中輸入的異步消息,將消息號(hào)加入對(duì)應(yīng)的矢量字的數(shù)組中,并將該計(jì)數(shù)器加1。

  在對(duì)IDEA卡實(shí)現(xiàn)異步通訊即非周期消息的傳輸時(shí),根據(jù)IDEA卡提供的API,采用使IDEA卡產(chǎn)生中斷的方法,設(shè)置向各個(gè)終端查詢矢量字的消息傳輸結(jié)束后產(chǎn)生中斷,在IDEA卡的中斷處理例程中組織異步通訊。如果返回的矢量字非零,則該終端有異步傳輸請(qǐng)求,取出相應(yīng)矢量字的第一條異步消息,插入消息表中傳輸,并將該矢量字的消息數(shù)減1;同樣為異步消息設(shè)置傳輸結(jié)束后中斷,在中斷處理程序中繼續(xù)判斷消息數(shù)目,循環(huán)至該適量字對(duì)應(yīng)的異步消息傳輸完畢,繼續(xù)查詢下一終端,傳輸周期消息。程序流程圖如圖5所示。

?

?

3.2 RT故障檢測模塊

  由于總線所連接的各個(gè)終端正常運(yùn)行的時(shí)間很長,出故障的概率較小。為節(jié)省總線開銷并及時(shí)捕獲故障節(jié)點(diǎn),在每個(gè)大周期(即40個(gè)小周期)結(jié)束前向每個(gè)終端查詢一次狀態(tài)。若有節(jié)點(diǎn)已經(jīng)啟動(dòng)/修復(fù),則立即清除該節(jié)點(diǎn)的故障標(biāo)志,重排周期消息表,添加與該終端相關(guān)的可傳輸消息;若發(fā)現(xiàn)某終端故障標(biāo)志被設(shè)置,同樣重排消息表并將相關(guān)消息刪除。為了保證消息的正確傳輸,當(dāng)某條消息傳輸出錯(cuò)時(shí)定義消息的兩次重發(fā),當(dāng)消息在該總線和另一條余度總線上重發(fā)失敗后,將該消息視為出錯(cuò),同時(shí)將相應(yīng)的終端RT設(shè)置故障標(biāo)志。程序?qū)崿F(xiàn)控制流如圖6所示。

?

?

3.3 軟件設(shè)計(jì)的容錯(cuò)處理

  1553B總線主要應(yīng)用在航空電子即空中運(yùn)動(dòng)平臺(tái)中,艦船系統(tǒng)也有應(yīng)用。應(yīng)用環(huán)境都比較惡劣,受到的干擾較多,且工作時(shí)間長。1553B本身采用了一定的措施以保證數(shù)據(jù)傳輸?shù)恼_性,如它采用雙余度總線A和B(見圖3),消息在其中一條總線上傳輸,若此總線發(fā)生錯(cuò)誤,則消息也可以在另一條總線上傳輸。本軟件利用1553B這個(gè)特點(diǎn),為每條消息設(shè)置中斷。在中斷例程中,對(duì)傳輸出錯(cuò)的消息在此總線和另一條總線上進(jìn)行重傳兩次的重發(fā)處理,從而排除因偶然的外界因素影響而出現(xiàn)的消息傳輸錯(cuò)誤。

另外,軟件中需用戶定義的內(nèi)容多根據(jù)1553B規(guī)定的有效性采用直接選擇式,防止用戶的輸入錯(cuò)誤;對(duì)需用戶輸入數(shù)據(jù)都有相應(yīng)的有效性判斷,若輸入有誤,產(chǎn)生錯(cuò)誤警告,提示用戶重新輸入。

  本軟件已應(yīng)用于某艦船系統(tǒng)中,組織各子系統(tǒng)消息傳輸,仿真測試各子系統(tǒng)。在應(yīng)用中可以發(fā)現(xiàn),總線傳輸?shù)男适菓?yīng)用中必須考慮和提高的一個(gè)問題,查詢矢量字方式的異步消息傳輸可以提高總線利用的效率,是減輕總線負(fù)載的有效解決方案。

?

參考文獻(xiàn)

1 羅志強(qiáng).航空電子綜合化系統(tǒng).北京:北京航空航天大學(xué)出版社,1990

2 陳 彩.多路數(shù)據(jù)總線通信傳輸軟件生成工具的研究.北京航空航天大學(xué)碩士論文,1995

3 飛機(jī)內(nèi)部時(shí)分制指令/響應(yīng)式多路傳輸數(shù)據(jù)總線.美國軍用標(biāo)準(zhǔn),1978

4 BUS-69035 and BUS-69135 Software Manual IDEA?CARD RUN TIME LIBRARY for Windows 95/98 and?Windows NT. Data Device Corp,1999

5 岳麗華,紀(jì)金龍,黃劉生. 軟件技術(shù)基礎(chǔ). 合肥:中國科學(xué)技術(shù)大學(xué)出版社,1994

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。