国产农村一国产农村无码毛片,国产又粗又大又硬一区二区,亚洲无码av在线免费,中文字幕av一区中文字幕天堂

  • 介紹一種硬件自動(dòng)發(fā)送1553B非周期消息的方法
           文章來源:北京石竹科技    來源鏈接:http://www.vme.cn/content/solution/solution_nr.asp?id=98

          本文介紹了一種使用CAV-1553B板卡實(shí)現(xiàn)硬件自動(dòng)發(fā)送1553B總線非周期消息的方法。該方法通過使用條件Block來實(shí)現(xiàn),當(dāng)用戶設(shè)置的條件(如狀態(tài)字、數(shù)據(jù)字匹配或匹配的次數(shù))滿足時(shí),CAV-1553B板卡上的固件將自動(dòng)啟動(dòng)非周期消息的發(fā)送。使用該方法,無需軟件介入,可實(shí)時(shí)實(shí)現(xiàn)非周期消息的發(fā)送,為用戶實(shí)現(xiàn)發(fā)送矢量字的模式字提供了一種方便的方法。

    1553B總線數(shù)據(jù)傳輸控制
          1553B總線通常按固定的數(shù)據(jù)傳輸時(shí)間表工作,即周期性的安排數(shù)據(jù)傳輸。需要根據(jù)數(shù)據(jù)通信任務(wù)的最大和最小發(fā)送周期以及允許的傳輸延遲來確定時(shí)間表的安排。大多數(shù)在總線上傳輸?shù)南⑹前匆欢ǜ骂l率發(fā)送的周期性消息,周期消息中更新最慢的消息的周期被定為大周期(也被稱為“主幀”),如下圖所示。在一個(gè)大周期內(nèi),所有周期性的傳輸至少發(fā)生一次。典型的大周期是幾百毫秒,一些重復(fù)頻率極低的消息,如幾秒鐘一次的周期性自檢測(cè)及其相關(guān)數(shù)據(jù)傳輸,則按非周期消息處理。
    1 大周期和小周期
           消息中刷新頻率最快的通信任務(wù)對(duì)應(yīng)小周期(也被稱為“子幀”),為了設(shè)計(jì)的方便,取大周期為小周期的整數(shù)倍,并且該整數(shù)位2的整數(shù)次冪。如果消息的最大允許傳輸延遲小于其更新的時(shí)間間隔,則以消息的最大允許傳輸延遲作為其安排時(shí)間表周期的依據(jù)。假設(shè)一個(gè)總線系統(tǒng)需要傳輸若干個(gè)周期消息,其中更新最慢的消息為400ms一次;更新最快的消息為每20ms一次,這種消息最大允許的傳輸延遲時(shí)間是15ms。那么,我們可以把大周期定為400ms,小周期定為12.5ms,即一個(gè)大周期被分為32個(gè)小周期。
     
           一個(gè)小周期內(nèi)包括小周期同步消息、周期消息和非周期消息。小周期同步消息一般是同步方式指令或具有同步功能的數(shù)據(jù)消息,用來表示小周期的開始。小周期同步消息不是必須的,實(shí)際上,在相當(dāng)多的應(yīng)用中都沒有使用這種消息。周期消息具有特定的更新速率,可以通過在特定的小周期安排周期消息來實(shí)現(xiàn)消息的更新速率。非周期消息通常是由某些事件觸發(fā)的,并且會(huì)引發(fā)其他條件事件。在每一個(gè)小周期中,非周期消息一般插在周期消息之后傳輸。
     
           消息在小周期中的分布,要考慮消息的更新速率、允許的傳輸延遲時(shí)間和總線負(fù)載均衡等因素。在前面的例子中,如果某個(gè)消息的最大允許延遲時(shí)間是15ms,那么這個(gè)消息在每個(gè)小周期中都要安排傳輸一次,以保證一旦這個(gè)消息產(chǎn)生新數(shù)據(jù),可以在最大允許延遲時(shí)間之內(nèi)傳到目的終端。假如某個(gè)消息的更新周期和最大允許延遲時(shí)間都是25ms,那么可以在每?jī)蓚€(gè)小周期中安排一次傳輸,也就是每間隔一個(gè)小周期安排一次??紤]到總線負(fù)載的均勻分布,每個(gè)小周期安排的總的消息傳輸量應(yīng)該是相當(dāng)?shù)摹?br />
            由于消息間隔、RT響應(yīng)時(shí)間、總線上偶發(fā)的重試等因素的影響,一個(gè)消息在每個(gè)小周期內(nèi)的傳輸時(shí)間不完全一樣。因此不同的小周期,或者相同的小周期不同次的傳輸,消息占用的時(shí)間都是不一樣的。小周期可以依據(jù)系統(tǒng)時(shí)鐘定時(shí)傳輸,即每個(gè)小周期都占用分配給它的固定時(shí)間,在上例中是12.5ms,那么消息傳輸完后常常會(huì)有空閑時(shí)間。也可以充分利用總線提供的帶寬,一個(gè)小周期的消息傳輸完之后,即刻啟動(dòng)下一個(gè)小周期的消息傳輸,此時(shí)小周期的傳輸實(shí)際上不是以固定頻率啟動(dòng)的,因此稱為異步傳輸。
    硬件自動(dòng)非周期消息發(fā)送控制方法
    條件Block介紹
           在CAV-1553B產(chǎn)品中,子幀中的每條消息在BC數(shù)據(jù)結(jié)構(gòu)中都是由Message Block定義的,每個(gè)Mssage Block都對(duì)應(yīng)一個(gè)Message buffer,用來存放發(fā)送或接收到的數(shù)據(jù)。Mssage Block中包含一個(gè)控制字(BC_control_word)用來指示Block的類型,如消息Block、條件Block等。
    其中條件Block是一種特殊的Block,它不是1553B消息Block,因此沒有Message buffer。用戶可通過條件Block來設(shè)置一定的條件,硬件自動(dòng)檢測(cè)條件。當(dāng)條件不滿足時(shí),發(fā)送指定的周期消息;當(dāng)條件滿足時(shí),發(fā)送用戶指定消息。例如:當(dāng)檢測(cè)到某條消息中RT狀態(tài)字的服務(wù)請(qǐng)求位置’1’時(shí),發(fā)送用戶指定的非周期消息。
    條件Block中需要設(shè)置的項(xiàng)及含義如表1所示。


    設(shè)置項(xiàng)
    含義
    Next_message_ num
    指定條件不滿足時(shí),執(zhí)行的消息
    Branch_message_num
    指定條件滿足時(shí),執(zhí)行的消息
    BC_control_word
    指定Block的類型
    Test_word_address
    給出一個(gè)判斷對(duì)象的地址,這個(gè)判斷對(duì)象可以是命令字、狀態(tài)字、數(shù)據(jù)字。
    Data_mask
    Test_word的位有效指示字
    Data_pattern
    判斷結(jié)果
    Cond_count_value
    條件滿足次數(shù)

    表1 Block的設(shè)置項(xiàng)
    條件Block的設(shè)置
    (1) 設(shè)置當(dāng)前Block的類型為條件Block。
    Block的BC_control_word設(shè)為CONDITION_BLOCK。
    (2) 設(shè)置條件滿足/不滿足時(shí)執(zhí)行的消息。
    指定條件滿足時(shí)執(zhí)行的Branch_message_num和條件不滿足時(shí)執(zhí)行的Next_message_ num。
    (3) 設(shè)置條件。
    首先,可在設(shè)置好的消息鏈表中指定一個(gè)字(Test_word)作為判斷的對(duì)象,這個(gè)字可以為命令字、狀態(tài)字或數(shù)據(jù)字,給出該字的地址Test_word_address。其次,給出Test_word的位有效指示字Data_mask和需要作比較的字Data_pattern。
    Test_word和Data_mask相與的結(jié)果與Data_pattern作比較,若等于則條件滿足,否則條件不滿足。
    (4) 設(shè)置次數(shù)。
    設(shè)置次數(shù)Cond_count_value,范圍從0到65535。當(dāng)條件滿足并且次數(shù)也滿足時(shí),執(zhí)行Branch_message_num,否則執(zhí)行Next_message_num。
     
    使用條件Block發(fā)送非周期消息示例
    (1) 消息的設(shè)置
    在主幀中設(shè)置一個(gè)子幀,子幀周期為4ms,子幀中包含以下四條消息:
    Ø  Block [0]: BCRT消息,RT地址1,子地址1,32個(gè)數(shù)據(jù)字。
    Ø  Block [1]: BCRT消息,RT地址1,子地址2,32個(gè)數(shù)據(jù)字。
    Ø  Block [2]: 條件Block。
    Ø  Block [3]: RTBC消息,RT地址1,子地址1,32個(gè)數(shù)據(jù)字。非周期消息。
    設(shè)置子幀中BC消息的鏈表順序?yàn)椋?/span>
    圖2 消息發(fā)送順序
    (2)   條件Block的設(shè)置
           條件為判斷消息1中RT回的狀態(tài)字中的SERVICE_REQUEST被置位,匹配次數(shù)為2次。條件滿足時(shí)發(fā)送消息3,條件不滿足時(shí)發(fā)送發(fā)送周期消息。
    條件Block的具體設(shè)置如下:
    Ø  指定Branch_message_num = 3,Next_message_num = 0。
    Ø  Test_word_address為消息1中狀態(tài)字的地址。
    Ø  Data_mask = 0xF900;Data_pattern = 0x0900。
    Ø  次數(shù)Cond_count_value = 2。
    (3)   消息的傳輸
    子幀周期為4ms,子幀中消息的發(fā)送方式:當(dāng)條件不滿足時(shí),發(fā)送周期消息,如圖3所示;條件滿足時(shí),消息的發(fā)送順序如圖4所示,此時(shí)非周期消息3被發(fā)送一次。之后仍按照?qǐng)D3的順序發(fā)送,直到再次條件滿足時(shí)才發(fā)送非周期消息3。
    圖3 條件不滿足時(shí)消息發(fā)送順序
     
    圖4 條件滿足時(shí)消息發(fā)送順序
    BC Block設(shè)置示例代碼見附件example_core_pass4.cpp。
     
     硬件自動(dòng)發(fā)送非周期消息的方法   請(qǐng)點(diǎn)擊此處下載全文  (預(yù)了解更多內(nèi)容,請(qǐng)聯(lián)系作者本人)
     
    相關(guān)
     
    網(wǎng)站首頁  |  關(guān)于我們  |  聯(lián)系我們  |  廣告服務(wù)  |  版權(quán)隱私  |  友情鏈接  |  站點(diǎn)導(dǎo)航