999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

無消息間隔約束的1553B 總線通信軟件設(shè)計(jì)方法

2023-09-06 06:41:36朱劍輝洪小駿王志國(guó)王城浩
上海航天 2023年4期

朱劍輝,鄭 淵,洪小駿,王志國(guó),王城浩

(1.上海航天電子技術(shù)研究所,上海 201109;2.上海航天技術(shù)研究院,上海 200235)

0 引言

MIL-STD-1553B 總線最初是由美國(guó)在20 世紀(jì)70 年代提出的航空電子系統(tǒng)聯(lián)網(wǎng)標(biāo)準(zhǔn),具有高可靠性、抗干擾能力強(qiáng)、擴(kuò)充和維護(hù)簡(jiǎn)便等特點(diǎn),因而被廣泛應(yīng)用于航空和航天等領(lǐng)域[1-2]。1553B 總線的傳輸協(xié)議為命令/響應(yīng)方式,數(shù)據(jù)傳輸?shù)淖钚挝粸椤跋ⅰ保織l消息最多32 個(gè)字(16 bit 位寬),所有的消息傳輸均由總線控制器(Bus Controller,BC)發(fā)出命令,遠(yuǎn)程終端(Remote Terminal,RT)響應(yīng)[3-4]。

1553B 總線協(xié)議規(guī)定有32 個(gè)RT 子地址用于消息傳輸。BC 作為1553B 總線的控制端,控制所有子地址消息的傳輸,包括方式代碼傳輸、BC 與RT 之間數(shù)據(jù)傳輸、RT 與RT 之間的數(shù)據(jù)傳輸和BC 向所有RT 設(shè)備廣播數(shù)據(jù)等[3-6]。RT 作為總線響應(yīng)端,通過各子地址控制字配置成單消息、雙緩存和循環(huán)緩沖3 種數(shù)據(jù)收/發(fā)緩存模式,以及相應(yīng)的消息結(jié)束中斷方式用于響應(yīng)總線數(shù)據(jù)傳輸,通過各子地址查找表配置消息數(shù)據(jù)收/發(fā)緩存地址[7]。

受限于下位機(jī)設(shè)備的處理能力,通常BC 軟件需要嚴(yán)格控制與各下位機(jī)RT 軟件通信的周期及消息間隔,避免因消息響應(yīng)或處理不及時(shí)導(dǎo)致通信異常。主要包括以下2 個(gè)方面:1)RT 軟件在1553B總線中斷時(shí)通過讀取命令字寄存器獲取當(dāng)前子地址信息。若BC 發(fā)送不同的子地址消息的間隔小于軟件響應(yīng)消息結(jié)束中斷到讀取命令字寄存器的最大延時(shí),將導(dǎo)致消息命令字被覆蓋異常[8]。2)RT軟件在1553B 總線中斷時(shí)設(shè)置數(shù)據(jù)處理標(biāo)志,主流程判斷標(biāo)志有效后再執(zhí)行。若BC 向RT 發(fā)送同一個(gè)子地址數(shù)據(jù)間隔小于RT 軟件最大處理延時(shí),將導(dǎo)致接收的數(shù)據(jù)被覆蓋異常。同理,若BC 從RT 同一個(gè)子地址采集數(shù)據(jù)的間隔小于RT 軟件參數(shù)更新最大延時(shí),將導(dǎo)致采集的參數(shù)半新半舊或者與上一幀重復(fù)。

針對(duì)上述限制,當(dāng)BC 向某個(gè)RT 設(shè)備發(fā)送多條遙控指令時(shí),需要BC 軟件設(shè)計(jì)指令緩存,控制周期逐條發(fā)送;當(dāng)BC 從各RT 采集遙測(cè)參數(shù)時(shí),BC 軟件也要控制不同采集周期;BC 軟件為了保證各RT 的響應(yīng)時(shí)間,所有消息設(shè)置統(tǒng)一的消息間隔,或增加軟件延時(shí),如每次只啟動(dòng)單個(gè)RT 設(shè)備的一種消息傳輸,等待RT 返回的數(shù)據(jù)或消息反饋后才繼續(xù)準(zhǔn)備后續(xù)消息。以上約束嚴(yán)重影響了BC 軟件的設(shè)計(jì)通用性和總線傳輸效率與可靠性[9-10]。為此,文中設(shè)計(jì)了一種通用的1553B 總線消息處理方式,消除BC軟件傳輸消息間隔限制,減少BC 軟件的設(shè)計(jì)約束,并解決RT 軟件對(duì)任意消息間隔的適應(yīng)性問題。

1 BC 軟件設(shè)計(jì)

1.1 BC 軟件常規(guī)設(shè)計(jì)方式

BC 軟件根據(jù)消息傳輸類型、傳輸總線A/B、RT 地址、RT 子地址、數(shù)據(jù)內(nèi)容及長(zhǎng)度等信息,構(gòu)造消息命令字和控制字,按消息格式寫入總線緩存[6];然后在堆棧中構(gòu)造4 個(gè)字的消息描述符,寫入消息間隔和消息緩存起始地址(塊狀態(tài)字和時(shí)間標(biāo)簽由芯片自動(dòng)填寫);接著寫總線消息個(gè)數(shù)配置字和啟動(dòng)寄存器,啟動(dòng)消息傳輸;最后等待消息傳輸結(jié)束,讀取狀態(tài)字反饋及RT 返回?cái)?shù)據(jù)等信息。以BC 向RT 傳輸數(shù)據(jù)為例,消息數(shù)據(jù)存儲(chǔ)格式如圖1 所示。

圖1 BC->RT 消息格式Fig.1 Diagram of the BC->RT message format

1.2 改進(jìn)后的BC 軟件設(shè)計(jì)方式

根據(jù)1553B 總線芯片BC 模式的特性,內(nèi)部緩存配置區(qū)存在A/B 區(qū)冗余設(shè)計(jì),可通過配置寄存器1 的bit 13 配置當(dāng)前的工作區(qū)。當(dāng)指定A 區(qū)為當(dāng)前工作區(qū)時(shí),當(dāng)前總線活動(dòng)由A 區(qū)的配置空間控制,包括設(shè)置消息堆棧和消息個(gè)數(shù)配置字等;與此同時(shí)B 區(qū)作為非活動(dòng)區(qū),可以由軟件隨意操作而不影響當(dāng)前總線芯片工作。因此,當(dāng)A 區(qū)在傳輸總線消息時(shí),可以同時(shí)在B 區(qū)所指向的緩存空間準(zhǔn)備后續(xù)消息;當(dāng)A 區(qū)消息傳輸結(jié)束時(shí),通過配置寄存器1 切換當(dāng)前的活動(dòng)區(qū),B 區(qū)準(zhǔn)備好的消息就可以直接啟動(dòng)數(shù)據(jù)傳輸。BC 可一次性啟動(dòng)最多512 條消息的序列傳輸,消息個(gè)數(shù)配置字中寫入相應(yīng)的值并啟動(dòng)傳輸后,芯片就會(huì)依次從消息堆棧中往后解析各消息描述符及其所指向的緩存區(qū)中的消息格式,并啟動(dòng)相應(yīng)的消息傳輸。

基于上述特性,在芯片內(nèi)部緩存空間允許的情況下,根據(jù)總線應(yīng)用協(xié)議,合理劃分總線消息序列大小。BC 軟件一次性啟動(dòng)當(dāng)前消息序列傳輸,同時(shí)在非活動(dòng)區(qū)準(zhǔn)備后續(xù)總線消息序列;當(dāng)前一個(gè)消息序列傳輸結(jié)束后,在處理相應(yīng)的消息反饋數(shù)據(jù)前,切換總線活動(dòng)區(qū),啟動(dòng)后一個(gè)消息序列傳輸,如此周期循環(huán)。通過以上改進(jìn),不僅節(jié)約了軟件等待數(shù)據(jù)傳輸時(shí)間,并且不設(shè)置消息傳輸間隔,充分發(fā)揮總線芯片的數(shù)據(jù)傳輸效率。

BC 軟件向各下位機(jī)發(fā)送總線消息時(shí),不控制相同子地址數(shù)據(jù)的傳輸周期,例如當(dāng)某個(gè)需要發(fā)送多條遙控指令時(shí),不做數(shù)據(jù)緩存,一次性批量發(fā)送,由各下位機(jī)RT 軟件自行緩存處理。BC 軟件從各下位機(jī)采集數(shù)據(jù)時(shí),采用下位機(jī)舉手的方式握手:RT 準(zhǔn)備好數(shù)據(jù)后舉手,BC 軟件判斷下位機(jī)舉手時(shí)才采集相應(yīng)的數(shù)據(jù),數(shù)據(jù)采集周期由RT 軟件舉手的周期來控制。通過以上改進(jìn),消除了BC 軟件與各下位機(jī)RT 軟件通信周期的約束。

2 RT 軟件設(shè)計(jì)

2.1 RT 軟件常規(guī)設(shè)計(jì)方式

作為總線響應(yīng)端,RT 軟件在響應(yīng)總線消息傳輸前,首先需根據(jù)總線應(yīng)用協(xié)議配置好各RT 子地址控制字和查找表。在收到消息中斷后,從消息命令字寄存器讀取當(dāng)前消息的命令字,獲取RT 子地址和數(shù)據(jù)長(zhǎng)度等信息,設(shè)置相關(guān)數(shù)據(jù)處理標(biāo)志。最后再在軟件主流程判斷相關(guān)數(shù)據(jù)處理標(biāo)志有效后,按照總線應(yīng)用協(xié)議要求進(jìn)行處理,如果是接收消息結(jié)束中斷,則讀取接收數(shù)據(jù)并處理;如果是發(fā)送消息結(jié)束中斷,則接著準(zhǔn)備填寫下一幀數(shù)據(jù)等待BC獲取。RT 軟件中斷方式處理流程如圖2 所示。

圖2 RT 軟件中斷方式處理流程Fig.2 Processing flow diagram of the interrupt mode by the RT software

2.2 中斷遍歷消息堆棧方式

根據(jù)1553B 總線芯片RT 模式的特性,在緩存中有256 字的消息堆棧,依次存儲(chǔ)接收的4 個(gè)字的總線消息描述符[7-8]。因此,只要RT 軟件在兩次讀取消息堆棧之間收到的消息不超過堆棧大小,那么就可以通過遍歷堆棧的方式將接收到的消息命令字逐個(gè)讀出而不被覆蓋。改進(jìn)后的RT 軟件中斷處理流程如圖3 所示。

圖3 改進(jìn)后的RT 軟件中斷方式處理流程Fig.3 Processing flow diagram of the interrupt mode by the improved RT software

2.3 循環(huán)緩沖方式接收單消息數(shù)據(jù)

根據(jù)RT 子地址配置成單消息時(shí)查找表指針會(huì)自主復(fù)位而循環(huán)緩沖模式自動(dòng)向后移動(dòng)并回卷的特性,為了避免消息數(shù)據(jù)處理不及時(shí)被覆蓋,改進(jìn)后的RT 軟件將接收子地址由原單消息接收和消息結(jié)束中斷模式,改成循環(huán)緩沖接收和消息結(jié)束中斷模式。軟件隨著接收消息查找表指針的變化記錄該子地址在循環(huán)緩沖中的“當(dāng)前接收數(shù)據(jù)首地址”;當(dāng)接收該消息產(chǎn)生中斷時(shí),中斷服務(wù)子程序設(shè)置數(shù)據(jù)處理標(biāo)志,主流程判斷標(biāo)志有效后,從“當(dāng)前接收數(shù)據(jù)首地址”開始處理數(shù)據(jù),根據(jù)相關(guān)特征判斷當(dāng)前消息是否有效,若有效,則讀取相應(yīng)的數(shù)據(jù)并處理,然后將緩存區(qū)中的消息特征設(shè)置為無效,并繼續(xù)向后讀取數(shù)據(jù),直到讀到當(dāng)前消息為無效為止,并更新“當(dāng)前接收數(shù)據(jù)首地址”為下一個(gè)地址。為了增強(qiáng)軟件可靠性,每次數(shù)據(jù)處理前先判斷“當(dāng)前接收數(shù)據(jù)首地址”是否合法,若非法則重新配置子地址查找表指向循環(huán)緩沖首地址。以接收32 個(gè)字的消息(第一個(gè)字用作有效標(biāo)志)配置成128 字循環(huán)緩沖為例,軟件接收消息數(shù)據(jù)時(shí)緩沖區(qū)狀態(tài)變?nèi)鐖D4 所示。

圖4 接收消息循環(huán)緩沖區(qū)狀態(tài)變化Fig.4 State change diagram of the receiving messages in the circular buffer

2.4 矢量字握手

受限于下位機(jī)軟件的處理能力或參數(shù)狀態(tài)更新下行周期的約束,BC 軟件并不能隨意的采集RT軟件的數(shù)據(jù)。為了消除該限制,BC 向RT 軟件采集參數(shù)時(shí),采用方式代碼“發(fā)送矢量字”握手,矢量字每個(gè)位可以分別表示不同類型的數(shù)據(jù)舉手狀態(tài)。RT 準(zhǔn)備好數(shù)據(jù)后按協(xié)議設(shè)置相應(yīng)的矢量字位,BC軟件每個(gè)周期通過“發(fā)送矢量字”方式代碼獲取下位機(jī)的舉手狀態(tài),當(dāng)判斷下位機(jī)舉手后從相應(yīng)的子地址采集數(shù)據(jù),RT 判斷BC 將數(shù)據(jù)讀完后,清除矢量字位,并開始下個(gè)周期參數(shù)采集更新。BC 與RT通過矢量字方式握手時(shí)序如圖5 所示。

3 測(cè)試結(jié)果及分析

對(duì)改進(jìn)前后的軟件在某型號(hào)綜合電子計(jì)算機(jī)和下位機(jī)平臺(tái)開展對(duì)比測(cè)試。首先綜合電子計(jì)算機(jī)BC 軟件采用無消息間隔的消息序列方式與改進(jìn)前的RT 軟件周期通信,周期采集10 000 條遙測(cè)消息(采集周期500 ms,RT 軟件最大主流程周期約600 ms),通過地面測(cè)試軟件隨機(jī)注入1 000 條遙控指令(一次注入1 條或多條),長(zhǎng)度均32 個(gè)字。測(cè)試結(jié)束后,通過遙測(cè)參數(shù)查看RT 軟件接收指令計(jì)數(shù)為815,即出現(xiàn)了丟指令異常;遙測(cè)參數(shù)出現(xiàn)112 次幀計(jì)數(shù)不連續(xù)異常、23 次累加和校驗(yàn)錯(cuò)誤,表明遙測(cè)參數(shù)出現(xiàn)了遙測(cè)幀重復(fù)和半新半舊異常。改成采用無消息間隔的消息序列、矢量字握手方式和改進(jìn)后的RT 軟件通信,重復(fù)上述測(cè)試過程,未發(fā)現(xiàn)丟指令異常,也未發(fā)現(xiàn)遙測(cè)幀計(jì)數(shù)和校驗(yàn)異常。測(cè)試結(jié)果表明,文中提出的設(shè)計(jì)方式達(dá)到預(yù)期效果。改進(jìn)前后的軟件測(cè)試結(jié)果對(duì)比見表1。

4 結(jié)束語

文中通過對(duì)常用的1553B 總線通信軟件消息處理方式進(jìn)行分析,引發(fā)出對(duì)提升軟件通信效率和設(shè)計(jì)通用性的思考,提出相應(yīng)的改進(jìn)措施,分析并解決了由此引入的風(fēng)險(xiǎn),最終形成了一種高效、通用且可靠的設(shè)計(jì)方式。文中的分析及設(shè)計(jì)思路對(duì)復(fù)雜系統(tǒng)1553B 總線通信軟件的設(shè)計(jì)和異常問題排查均有一定的參考借鑒意義,對(duì)其他類似串行總線通信同樣具有啟發(fā)意義。

主站蜘蛛池模板: 国产av无码日韩av无码网站| 久热中文字幕在线| 麻豆精选在线| 欧美www在线观看| 日韩美一区二区| 久久久久亚洲AV成人人电影软件| 在线色国产| 中文字幕调教一区二区视频| 2019年国产精品自拍不卡| 国产精品55夜色66夜色| 亚洲人成影视在线观看| 成人午夜久久| 国产人人乐人人爱| 26uuu国产精品视频| 欧美三级不卡在线观看视频| 亚洲91在线精品| 又黄又湿又爽的视频| 亚洲精品无码不卡在线播放| 国产成人亚洲无吗淙合青草| 一区二区无码在线视频| 午夜视频在线观看区二区| 视频二区亚洲精品| 日本亚洲欧美在线| 一级毛片免费高清视频| 久久久国产精品免费视频| 国产精品主播| 最近最新中文字幕在线第一页| 久久国产精品嫖妓| 亚洲精品成人7777在线观看| 欧美精品1区| 欧美啪啪网| 日韩大片免费观看视频播放| a天堂视频| 华人在线亚洲欧美精品| 中国特黄美女一级视频| 欧美日韩一区二区在线播放| a亚洲天堂| 日本午夜影院| 国产区成人精品视频| 国产人成在线视频| 亚洲欧洲日韩久久狠狠爱| 欧美亚洲国产视频| 米奇精品一区二区三区| 五月丁香伊人啪啪手机免费观看| 萌白酱国产一区二区| 久久国产精品娇妻素人| 日本人妻一区二区三区不卡影院 | 免费A∨中文乱码专区| 国产在线自乱拍播放| 无码区日韩专区免费系列| 88av在线播放| 草草影院国产第一页| 色天堂无毒不卡| 久久亚洲黄色视频| 国产麻豆va精品视频| 亚洲香蕉伊综合在人在线| 国产成a人片在线播放| 91视频首页| 激情视频综合网| 666精品国产精品亚洲| 97综合久久| 欧美色综合网站| 日韩高清在线观看不卡一区二区 | 亚洲欧美成aⅴ人在线观看| 漂亮人妻被中出中文字幕久久| 中文字幕日韩丝袜一区| 国产一区二区三区日韩精品| 91丝袜美腿高跟国产极品老师| 五月天丁香婷婷综合久久| 91久久性奴调教国产免费| 欧美天堂在线| 久久综合九九亚洲一区| 日韩成人在线视频| 99在线观看国产| 伊人色天堂| 精品国产成人a在线观看| 园内精品自拍视频在线播放| 色老头综合网| 青草视频免费在线观看| 亚洲va视频| 香蕉久久国产超碰青草| 91精品日韩人妻无码久久|