国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      適用于星載電子設備的異步通信串口指令快速應答方法與流程

      文檔序號:11154932閱讀:549來源:國知局
      適用于星載電子設備的異步通信串口指令快速應答方法與制造工藝

      本發(fā)明涉及一種適用于星載電子設備的異步通信串口指令快速應答方法,特別是一種適用于以較低速工作時鐘運行的星載電子設備的異步通信串口指令快速應答方法,屬星載數(shù)字電子技術領域。



      背景技術:

      星載綜合電子系統(tǒng)多設備間常采用一主多從關系通信串口進行信息交互,主機管理的從機設備數(shù)量較多時,主機按順序向某一從機發(fā)出數(shù)據(jù)采集命令后,要求從機在收到命令后一定時間(例如3ms)內(nèi)開始返回數(shù)據(jù),若超過此時間主機未收到數(shù)據(jù)則不再等待接收該從機數(shù)據(jù),切換至下一從機。某些從機使用的微處理器工作時鐘降額后頻率較低,無法滿足快速響應時間要求,導致主機不能正常接收數(shù)據(jù)。



      技術實現(xiàn)要素:

      本發(fā)明解決的技術問題:克服現(xiàn)有技術的不足,提供了一種適用于星載電子設備的異步通信串口指令快速應答方法,解決了一主多從串口通信系統(tǒng)中從機因工作時鐘較低無法滿足主機提出的快速響應要求的問題。

      本發(fā)明的技術解決方案:

      適用于星載電子設備的異步通信串口指令快速應答方法,該應答方法基于MCU和FPGA組成的電路系統(tǒng)實現(xiàn),且MCU和FPGA組成的電路系統(tǒng)在低工作時鐘下運行;系統(tǒng)上電后MCU和FPGA同時運行,F(xiàn)PGA用于接收并解析其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀,并設置flag標志的值,MCU查詢所述flag標志,并將MCU和FPGA組成的電路系統(tǒng)的狀態(tài)數(shù)據(jù)發(fā)送到FPGA,F(xiàn)PGA再將該狀態(tài)數(shù)據(jù)通過所述異步通信串口發(fā)送到所述其他星載電子設備,實現(xiàn)指令快速應答。

      所述低工作時鐘是指運行時鐘低于10MHz。

      所述的MCU的工作步驟如下:

      (1)設置MCU兩個外部中斷源,第一外部中斷源為FPGA串口物理層數(shù)據(jù)接收中斷,第二外部中斷源為FPGA產(chǎn)生的500us定時中斷;

      (2)FPGA產(chǎn)生500us定時中斷后,進入中斷服務程序ISR;

      (3)在中斷服務程序ISR中查詢狀態(tài)查詢指令標志flag,若所述狀態(tài)查詢指令標志flag無效則退出中斷服務程序ISR并返回執(zhí)行步驟(2),若有效則執(zhí)行步驟(4);

      (4)將所述MCU和FPGA組成的電路系統(tǒng)的狀態(tài)數(shù)據(jù)發(fā)送到FPGA的FIFO中,判斷需上報的所述MCU和FPGA組成的電路系統(tǒng)的狀態(tài)數(shù)據(jù)是否已發(fā)送完畢,若發(fā)送完畢則清除FPGA中的flag標志,退出中斷服務程序ISR并返回執(zhí)行步驟(2),若未發(fā)送完畢則執(zhí)行步驟(5);

      所述清除FPGA中的flag標志是指將flag標志值置為0;

      (5)根據(jù)FIFO滿標志判斷FPGA的FIFO是否已滿,若FIFO滿標志的值為1,則退出中斷服務程序ISR并返回執(zhí)行步驟(2),若FIFO滿標志的值為0,則向FIFO寫入一字節(jié)狀態(tài)數(shù)據(jù)后執(zhí)行步驟(4)。

      當狀態(tài)查詢指令標志flag為1時,狀態(tài)查詢指令標志flag有效,則FPGA收到并解析出其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀;

      當狀態(tài)查詢指令標志flag為0時,狀態(tài)查詢指令標志flag無效,則FPGA未收到其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀。

      所述的FPGA接收并解析其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀,設置flag標志的值,具體為:

      (1)FPGA根據(jù)異步通信串口交互的雙方約定的物理層協(xié)議,接收對方星載電子設備通過異步通信串口發(fā)送過來的數(shù)據(jù);

      (2)解析所述數(shù)據(jù),如果解析到狀態(tài)查詢指令幀,則將狀態(tài)查詢指令標志flag設置為有效,即設置為1;如果未解析到狀態(tài)查詢指令幀,則保持狀態(tài)查詢指令標志flag的值不變;

      該狀態(tài)查詢指令標志flag的初始狀態(tài)為無效,即flag的值為0。

      所述FPGA再將該狀態(tài)數(shù)據(jù)通過所述異步通信串口發(fā)送到所述其他星載電子設備,具體為:

      (1)在FPGA內(nèi)部開辟預設深度的FIFO;

      (2)接收MCU寫入的狀態(tài)數(shù)據(jù)并存入FIFO,并更新FIFO滿標志的值提供給MCU,如果FIFO已滿,則FIFO滿標志的值為1,如果FIFO未滿,則FIFO滿標志的值為0;

      (3)FPGA根據(jù)異步通信串口交互的雙方約定的物理層協(xié)議,將FIFO中存儲的狀態(tài)數(shù)據(jù)按字節(jié)依次發(fā)送給對方星載電子設備,直至FIFO為空,并實時更新FIFO滿標志的值提供給MCU。

      FIFO的深度小于全部狀態(tài)數(shù)據(jù)的長度。

      本發(fā)明與現(xiàn)有技術相比的優(yōu)點在于:

      (1)電子系統(tǒng)多設備間采用一主多從關系通信串口進行信息交互時,通常主機以輪詢方式向從機發(fā)送“狀態(tài)查詢指令”,從機收到后向主機回復“狀態(tài)數(shù)據(jù)”。當主機管理的從機設備數(shù)量較多時,其對每一臺從機的響應時間有一定要求,該時間內(nèi)如未收到響應,則切換至下一從機,而不會繼續(xù)等待。星載電子設備受到工作條件、器件等級,可靠性要求的限制,一般使用的處理器運行速度較低,如高等級單片機80C32最高運行時鐘僅30MHz,程序代碼執(zhí)行的速度有可能無法滿足主機提出的快速響應要求,導致主機放棄從機數(shù)據(jù)。

      (2)本發(fā)明提出的一種適用于星載電子設備的異步通信串口指令快速應答方法,通過FPGA配合識別指令,MCU定時填充數(shù)據(jù)至發(fā)送FIFO的方法,彌補了MCU工作時鐘低的不足,響應速度快,可以滿足主機的等待時間要求。

      附圖說明

      圖1為本發(fā)明的工作原理示意圖;

      圖2為本發(fā)明的MCU及FPGA協(xié)同工作流程。

      具體實施方式

      本發(fā)明使用FPGA識別指令快速響應、MCU定時填充數(shù)據(jù)發(fā)送FIFO的方法,以滿足主機的等待時間要求。其原理如圖1所示。

      硬件電路主要由MCU+FPGA組成,且二者協(xié)同工作,MCU型號為ATMEL公司的SC80C32E,時鐘頻率降額使用22.1184MHz,F(xiàn)PGA型號為ACTEL公司的A3P250。設置MCU兩個外部中斷源,外部中斷0為FPGA串口物理層數(shù)據(jù)接收中斷,外部中斷1為FPGA產(chǎn)生的500us定時中斷。FPGA內(nèi)部實現(xiàn)一定深度的數(shù)據(jù)發(fā)送FIFO,串口物理層解析出主機查詢指令后設置指令標志,MCU在500us定時中斷服務函數(shù)中查詢此標志,標志有效則向FIFO連續(xù)寫入待發(fā)送數(shù)據(jù),寫滿為止。

      按波特率115200bps、每字節(jié)11位計算,串口物理層發(fā)送一個字節(jié)耗時95us,500us內(nèi)只能發(fā)送5個字節(jié),故FIFO深度不小于6即可實現(xiàn)數(shù)據(jù)連續(xù)發(fā)送。MCU全部數(shù)據(jù)發(fā)送完后,清除FPGA中的指令標志,本次響應結(jié)束。

      本發(fā)明提出的一種適用于星載電子設備的異步通信串口指令快速應答方法,其工作流程如圖2所示。

      該應答方法基于MCU和FPGA組成的電路系統(tǒng)實現(xiàn),且MCU和FPGA組成的電路系統(tǒng)在低工作時鐘下運行;系統(tǒng)上電后MCU和FPGA同時運行,F(xiàn)PGA用于接收并解析其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀,并設置flag標志的值,MCU查詢所述flag標志,并將MCU和FPGA組成的電路系統(tǒng)的狀態(tài)數(shù)據(jù)發(fā)送到FPGA,F(xiàn)PGA再將該狀態(tài)數(shù)據(jù)通過所述異步通信串口發(fā)送到所述其他星載電子設備,實現(xiàn)指令快速應答。

      本發(fā)明所適應的情況為低工作時鐘,一般是指運行時鐘低于10MHz。

      MCU的工作步驟如下:

      (1)設置MCU兩個外部中斷源,第一外部中斷源為FPGA串口物理層數(shù)據(jù)接收中斷,第二外部中斷源為FPGA產(chǎn)生的500us定時中斷;

      (2)FPGA產(chǎn)生500us定時中斷后,進入中斷服務程序ISR;

      (3)在中斷服務程序ISR中查詢狀態(tài)查詢指令標志flag,若所述狀態(tài)查詢指令標志flag無效則退出中斷服務程序ISR并返回執(zhí)行步驟(2),若有效則執(zhí)行步驟(4);

      當狀態(tài)查詢指令標志flag為1時,狀態(tài)查詢指令標志flag有效,則FPGA收到并解析出其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀;

      當狀態(tài)查詢指令標志flag為0時,狀態(tài)查詢指令標志flag無效,則FPGA未收到其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀。

      (4)將所述MCU和FPGA組成的電路系統(tǒng)的狀態(tài)數(shù)據(jù)發(fā)送到FPGA的FIFO中,判斷需上報的所述MCU和FPGA組成的電路系統(tǒng)的狀態(tài)數(shù)據(jù)是否已發(fā)送完畢,若發(fā)送完畢則清除FPGA中的flag標志,退出中斷服務程序ISR并返回執(zhí)行步驟(2),若未發(fā)送完畢則執(zhí)行步驟(5);

      所述清除FPGA中的flag標志是指將flag標志值置為0;

      (5)根據(jù)FIFO滿標志判斷FPGA的FIFO是否已滿,若FIFO滿標志的值為1,則退出中斷服務程序ISR并返回執(zhí)行步驟(2),若FIFO滿標志的值為0,則向FIFO寫入一字節(jié)狀態(tài)數(shù)據(jù)后執(zhí)行步驟(4)。

      FPGA接收并解析其他星載電子設備通過異步通信串口發(fā)送過來的狀態(tài)查詢指令幀,設置flag標志的值,具體為:

      (1a)FPGA根據(jù)異步通信串口交互的雙方約定的物理層協(xié)議,接收對方星載電子設備通過異步通信串口發(fā)送過來的數(shù)據(jù);

      (1b)解析所述數(shù)據(jù),如果解析到狀態(tài)查詢指令幀,則將狀態(tài)查詢指令標志flag設置為有效,即設置為1;如果未解析到狀態(tài)查詢指令幀,則保持狀態(tài)查詢指令標志flag的值不變;

      該狀態(tài)查詢指令標志flag的初始狀態(tài)為無效,即flag的值為0。

      FPGA再將該狀態(tài)數(shù)據(jù)通過所述異步通信串口發(fā)送到所述其他星載電子設備,具體為:

      (aa)在FPGA內(nèi)部開辟預設深度的FIFO;

      (bb)接收MCU寫入的狀態(tài)數(shù)據(jù)并存入FIFO,并更新FIFO滿標志的值提供給MCU,如果FIFO已滿,則FIFO滿標志的值為1,如果FIFO未滿,則FIFO滿標志的值為0;

      (cc)FPGA根據(jù)異步通信串口交互的雙方約定的物理層協(xié)議,將FIFO中存儲的狀態(tài)數(shù)據(jù)按字節(jié)依次發(fā)送給對方星載電子設備,直至FIFO為空,并實時更新FIFO滿標志的值提供給MCU。

      本發(fā)明中,F(xiàn)IFO的深度遠小于全部狀態(tài)數(shù)據(jù)的長度。通常,受制于FPGA實際資源使用情況,F(xiàn)IFO的深度不能達到全部狀態(tài)數(shù)據(jù)的長度,但同時為了實現(xiàn)數(shù)據(jù)的連續(xù)發(fā)送,可根據(jù)串口物理層協(xié)議及MCU的定時寫入周期,計算FIFO需開辟的深度。按波特率115200bps、每字節(jié)11位計算,串口物理層發(fā)送一個字節(jié)耗時95us,MCU每個定時寫入周期500us內(nèi)FIFO只能發(fā)送5個字節(jié),故FIFO深度不小于6即可實現(xiàn)數(shù)據(jù)連續(xù)發(fā)送。

      本發(fā)明提出的適用于星載電子設備的異步通信串口指令快速應答方法,解決了一主多從串口通信系統(tǒng)中從機因工作時鐘較低無法滿足主機提出的快速響應要求的問題。通過FPGA配合識別指令,MCU定時填充數(shù)據(jù)至發(fā)送FIFO的方法,彌補了MCU工作時鐘低的不足,響應速度快,可以滿足主機的等待時間要求。

      實施例:

      按照本發(fā)明描述技術方案(硬件組成和軟件應答方法)設計的實際系統(tǒng)中,從機回復主機的狀態(tài)數(shù)據(jù)長度107字節(jié),F(xiàn)IFO深度為6,MCU定時寫入周期500us。使用示波器測試,從機響應時間最慢不大于1ms,完全滿足主機3ms等待時間的使用要求。這里響應時間指主機發(fā)出的“狀態(tài)查詢指令”數(shù)據(jù)串末位到從機回復的“狀態(tài)數(shù)據(jù)”數(shù)據(jù)串首位之間的時間間隔。

      本發(fā)明說明書中未作詳細描述的內(nèi)容屬本領域技術人員的公知技術。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1