国产精品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>

      基于異步非透明橋的數(shù)據(jù)傳輸方法及系統(tǒng)的制作方法

      文檔序號:9432498閱讀:590來源:國知局
      基于異步非透明橋的數(shù)據(jù)傳輸方法及系統(tǒng)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)通訊技術(shù),尤其涉及一種基于異步非透明橋的數(shù)據(jù)傳輸方法及系統(tǒng)。
      【背景技術(shù)】
      [0002]在兩個(gè)控制器之間的通訊,目前常用的是同步傳輸?shù)姆绞?,但是由于同步傳輸?shù)拇鷥r(jià)很高,有著CPU利用率過高以及通訊時(shí)延過高的問題,而較高的通訊時(shí)延又會(huì)影響整個(gè)通訊的并發(fā)及吞吐量,

      【發(fā)明內(nèi)容】

      [0003]基于上述問題,本發(fā)明提供一種基于異步非透明橋的數(shù)據(jù)傳輸方法及系統(tǒng),該方法通過在整個(gè)通訊過程中使用異步調(diào)用,降低了計(jì)算資源的開銷和通訊的時(shí)延。
      [0004]根據(jù)上述目的,本發(fā)明提供了一種基于異步非透明橋的數(shù)據(jù)傳輸方法,其特征在于,所述方法包括:
      [0005]第一終端設(shè)備初始化非透明橋NTB通訊模塊;
      [0006]使用注冊函數(shù)向所述NTB通訊模塊注冊通訊通道,與第二終端設(shè)備建立通訊連接;
      [0007]通過所述通訊通道,所述第一終端設(shè)備向所述第二終端設(shè)備發(fā)送數(shù)據(jù)。
      [0008]其中,所述第一終端設(shè)備初始化所述NTB通訊模塊的過程具體包括:
      [0009]申請所述NTB通訊模塊的接收緩沖區(qū);
      [0010]將所述緩沖接收區(qū)映射到基址寄存器;
      [0011]初始化門鈴寄存器、中斷處理函數(shù)和數(shù)據(jù)寄存器;
      [0012]創(chuàng)建發(fā)送線程。
      [0013]其中,所述第一終端設(shè)備向所述第二終端設(shè)備發(fā)送待傳輸數(shù)據(jù)的過程具體包括:
      [0014]調(diào)用發(fā)送函數(shù),申請記錄結(jié)構(gòu)以保存發(fā)送請求的各項(xiàng)參數(shù),并將所述記錄結(jié)構(gòu)插入到發(fā)送隊(duì)列中,喚醒所述發(fā)送線程;
      [0015]所述發(fā)送線程根據(jù)所述發(fā)送隊(duì)列中的發(fā)送請求發(fā)送數(shù)據(jù)并更新所述第二終端設(shè)備的數(shù)據(jù)寄存器的已發(fā)送數(shù)據(jù)通道標(biāo)識,然后觸發(fā)所述門鈴寄存器并將所述發(fā)送線程置于休眠狀態(tài);
      [0016]在所述中斷處理函數(shù)接收到所述第二終端設(shè)備的中斷信號后,從所述門鈴寄存器中得知所述數(shù)據(jù)發(fā)送完成,然后喚醒所述發(fā)送線程;
      [0017]所述發(fā)送線程查看數(shù)據(jù)發(fā)送完成后的所述第二終端設(shè)備的數(shù)據(jù)寄存器中已讀取數(shù)據(jù)的通道標(biāo)識,并對與所述數(shù)據(jù)發(fā)送完成后的所述第二終端設(shè)備的數(shù)據(jù)寄存器中已讀取數(shù)據(jù)的通道標(biāo)識對應(yīng)的通道標(biāo)識的所有發(fā)送請求調(diào)用數(shù)據(jù)回調(diào)函數(shù)進(jìn)行處理。
      [0018]其中,所述方法還包括:
      [0019]當(dāng)所述第一終端設(shè)備檢測到所述第二終端設(shè)備斷開或處于設(shè)備切換狀態(tài)時(shí),所述NTB通訊模塊調(diào)用所有未發(fā)送完成的數(shù)據(jù)對應(yīng)的數(shù)據(jù)回調(diào)函數(shù)通知所述第一終端設(shè)備發(fā)送數(shù)據(jù)失敗,并調(diào)用所有注冊的通訊通道的事件回調(diào)函數(shù)進(jìn)行事件通知。
      [0020]根據(jù)本發(fā)明的另一個(gè)方面,提供一種基于異步非透明橋的數(shù)據(jù)傳輸方法,其特征在于,所述方法包括:
      [0021 ] 第二終端設(shè)備初始化非透明橋NTB通訊模塊;
      [0022]使用注冊函數(shù)向所述NTB通訊模塊注冊通訊通道,與第一終端設(shè)備建立通訊連接;
      [0023]通過所述通訊通道,所述第二終端設(shè)備接收所述第一終端設(shè)備發(fā)送的數(shù)據(jù)。
      [0024]其中,所述第一終端設(shè)備初始化所述NTB通訊模塊的過程具體包括:
      [0025]申請所述NTB通訊模塊的接收緩沖區(qū);
      [0026]將所述緩沖接收區(qū)映射到基址寄存器;
      [0027]初始化門鈴寄存器、中斷處理函數(shù)、環(huán)形緩沖區(qū)和數(shù)據(jù)寄存器;
      [0028]創(chuàng)建接收線程。
      [0029]其中,所述第二終端設(shè)備接收所述第一終端設(shè)備發(fā)送的待傳輸數(shù)據(jù)的過程具體包括:
      [0030]所述第二終端設(shè)備的中斷處理函數(shù)收到所述第一終端設(shè)備的中斷信號后,從所述門鈴寄存器中得知收到數(shù)據(jù),喚醒所述第二終端設(shè)備的接收線程;
      [0031]所述接收線程查看所述數(shù)據(jù)寄存器中所述第一終端設(shè)備的已發(fā)送數(shù)據(jù)的通道標(biāo)識,從所述環(huán)形緩沖區(qū)中讀取對應(yīng)的數(shù)據(jù),并根據(jù)所讀取的數(shù)據(jù)頭部的通道標(biāo)識調(diào)用對應(yīng)的數(shù)據(jù)回調(diào)函數(shù)進(jìn)行數(shù)據(jù)處理;
      [0032]所述數(shù)據(jù)處理完成之后,更新所述數(shù)據(jù)寄存器的已讀取數(shù)據(jù)的通道標(biāo)識,觸發(fā)門鈴寄存器。
      [0033]根據(jù)本發(fā)明的又一個(gè)方面,提供一種基于異步非透明橋的數(shù)據(jù)發(fā)送裝置,其特征在于,所述裝置包括:
      [0034]初始化單元,用于初始化非透明橋NTB通訊模塊;
      [0035]通道注冊單元,用于使用注冊函數(shù)向所述NTB通訊模塊注冊通訊通道,并與第二終端設(shè)備建立通訊連接;
      [0036]數(shù)據(jù)發(fā)送單元,用于通過所述通訊通道,向所述第二終端設(shè)備發(fā)送數(shù)據(jù)。
      [0037]根據(jù)本發(fā)明的又另一個(gè)方面,提供一種基于異步非透明橋的數(shù)據(jù)接收裝置,其特征在于,所述裝置包括:
      [0038]初始化單元,用于初始化非透明橋NTB通訊模塊;
      [0039]通道注冊單元,用于使用注冊函數(shù)向所述NTB通訊模塊注冊通訊通道,與第一終端設(shè)備建立通訊連接;
      [0040]數(shù)據(jù)接收單元,用于通過所述通訊通道,接收所述第一終端設(shè)備發(fā)送的數(shù)據(jù)。
      [0041]根據(jù)本發(fā)買那個(gè)的又另一個(gè)方面,提供一種基于異步非透明橋的數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述系統(tǒng)包括上述的數(shù)據(jù)發(fā)送裝置和數(shù)據(jù)接收裝置。
      [0042]本發(fā)明的基于異步非透明橋的數(shù)據(jù)傳輸方法及系統(tǒng),采用異步通訊架構(gòu),使得整個(gè)通訊過程對于數(shù)據(jù)的發(fā)送和接收都可以進(jìn)行完全的異步處理,降低計(jì)算資源開銷和通訊時(shí)延,并通過環(huán)形緩沖區(qū)的方式充分利用有限的NTB通訊緩沖區(qū),使得多個(gè)數(shù)據(jù)的發(fā)送可以并發(fā)執(zhí)行,擴(kuò)大了對整個(gè)緩沖器的利用率,增加了并發(fā)處理能力,進(jìn)一步提高了通訊效率。
      【附圖說明】
      [0043]通過參考附圖會(huì)更加清楚的理解本發(fā)明的特征和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對本發(fā)明進(jìn)行任何限制,在附圖中:
      [0044]圖1示出了本發(fā)明的第一實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的流程圖。
      [0045]圖2示出了本發(fā)明的第一實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的步驟Sll的流程圖。
      [0046]圖3示出了本發(fā)明的第一實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的步驟S13的流程圖。
      [0047]圖4示出了本發(fā)明的第二實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的流程圖。
      [0048]圖5示出了本發(fā)明的第二實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的步驟S22的流程圖。
      [0049]圖6示出了本發(fā)明的第二實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的步驟S23的流程圖。
      [0050]圖7示出了本發(fā)明的第三實(shí)施例的基于異步非透明橋的數(shù)據(jù)發(fā)送裝置的結(jié)構(gòu)框圖。
      [0051]圖8示出了本發(fā)明的第四實(shí)施例的基于異步非透明橋的數(shù)據(jù)接收裝置的結(jié)構(gòu)框圖。
      [0052]圖9示出了本發(fā)明的第五實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)框圖
      【具體實(shí)施方式】
      [0053]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0054]本實(shí)施例中,第一終端設(shè)備和第二終端設(shè)備使用注冊函數(shù)向NTB通訊模塊注冊一個(gè)或多個(gè)通訊通道,然后通過注冊的通訊通道進(jìn)行第一終端設(shè)備和第二終端設(shè)備之間的數(shù)據(jù)傳輸。
      [0055]下面將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)描述。
      [0056]實(shí)施例一
      [0057]圖1示出了本發(fā)明的第一實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的流程圖。
      [0058]參照圖1,本實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法如下:
      [0059]Sll,第一終端設(shè)備初始化非透明橋NTB通訊模塊;
      [0060]圖2示出了本發(fā)明的第一實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的步驟Sll的流程圖。
      [0061 ] 如圖2所示,該步驟Sll具體包括:
      [0062] S111、申請所述NTB通訊模塊的接收緩沖區(qū);
      [0063]S112、將所述緩沖接收區(qū)映射到基址寄存器;
      [0064]S113、初始化門鈴寄存器、中斷處理函數(shù)和數(shù)據(jù)寄存器;
      [0065]S114、創(chuàng)建發(fā)送線程。
      [0066]S12,使用注冊函數(shù)向所述NTB通訊模塊注冊通訊通道,與第二終端設(shè)備建立通訊連接;
      [0067]在注冊通道的過程中,使用的參數(shù)有通道地址ID,處理數(shù)據(jù)發(fā)送接收異步的數(shù)據(jù)回調(diào)函數(shù)data_callback,處理鏈接斷開事件通知的事件回調(diào)函數(shù)event_calIback等。
      [0068]S13,通過所述通訊通道,所述第一終端設(shè)備向所述第二終端設(shè)備發(fā)送數(shù)據(jù)。
      [0069]圖3示出了本發(fā)明的第一實(shí)施例的基于異步非透明橋的數(shù)據(jù)傳輸方法的步驟S13的流程圖。
      [0070]如圖3所示,該步驟S13具體包括:
      [0071]S131、調(diào)用發(fā)送函數(shù),申請記錄結(jié)構(gòu)保存發(fā)送請求的各項(xiàng)參數(shù),并將記錄結(jié)構(gòu)其插入到發(fā)送隊(duì)列中,喚醒所述發(fā)送線程;
      [0072]S132、所述發(fā)送線程根據(jù)所述發(fā)送隊(duì)列中的發(fā)送請求發(fā)送數(shù)據(jù)并更新所述第二終端設(shè)備的數(shù)據(jù)寄存器的已發(fā)送數(shù)據(jù)通道標(biāo)識,然后觸發(fā)所述門鈴寄存器并將所述發(fā)送線程置于休眠狀態(tài);
      [0073]S133、在所述中斷處理函數(shù)接收到所述第二終端設(shè)備的中斷信號后,從所述門鈴寄存器中得知所述數(shù)據(jù)發(fā)送完成,然后喚醒所述發(fā)送線程;
      [0074]S134、所述發(fā)送線程查看數(shù)據(jù)發(fā)送完成后的所述第二終端設(shè)備的數(shù)據(jù)寄存器中已讀取數(shù)據(jù)的通道標(biāo)識,并對與所述數(shù)據(jù)發(fā)送完成后的所述第二終端設(shè)備的數(shù)據(jù)寄存器中已讀取數(shù)據(jù)的通道標(biāo)識對應(yīng)的通道標(biāo)識的所有發(fā)送請求調(diào)用數(shù)據(jù)回調(diào)函數(shù)進(jìn)行處理。
      [0075]在上述方法中,當(dāng)?shù)谝唤K端設(shè)備檢測到第二終端設(shè)備斷開或設(shè)備正在切換時(shí),所述NTB通訊模塊調(diào)用所有未發(fā)送完成的數(shù)據(jù)對應(yīng)的數(shù)據(jù)回調(diào)函數(shù)data_callback通知所述第一終端設(shè)備發(fā)送數(shù)據(jù)失敗,并調(diào)用所有注冊的通訊通道ID的事件回調(diào)函數(shù)event_callback進(jìn)行事件通知。
      [0076]在本實(shí)施例中,在
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1