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

      基于硬件系統(tǒng)的串口可靠傳輸方法及裝置的制作方法

      文檔序號(hào):7854138閱讀:181來源:國知局
      專利名稱:基于硬件系統(tǒng)的串口可靠傳輸方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信接口的傳輸技術(shù),特別是涉及基于硬件系統(tǒng)的串口可靠傳輸方法及裝置。
      背景技術(shù)
      UART (Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)是一種常見的通訊接口裝置。這種接口的歷史可追溯到計(jì)算機(jī)尚未誕生之前,但時(shí)至今日仍存在于各種專用設(shè)備、個(gè)人計(jì)算機(jī)、嵌入式系統(tǒng)當(dāng)中。通用異步收發(fā)傳輸器是基·于字符傳輸?shù)?,例如需要發(fā)送由若干字符組成一個(gè)數(shù)據(jù)包,則先發(fā)送BYTE0、BYTE1最后到BYTEn。在傳輸每個(gè)字符時(shí),由物理層的協(xié)議規(guī)范定義了起始位、數(shù)據(jù)位、結(jié)束位、校驗(yàn)位,用于保證單個(gè)字符可靠傳輸。在實(shí)際應(yīng)用中,只傳輸一個(gè)字符數(shù)據(jù)很少見。通常的應(yīng)用是傳輸由幾十甚至更多字符組成的數(shù)據(jù)包。在大多數(shù)的嵌入式系統(tǒng),核心部分通常只有一個(gè)8位或16的MCU0 MCU的軟件系統(tǒng)由一個(gè)不斷執(zhí)行應(yīng)用事務(wù)的大循環(huán)以及幾個(gè)中斷事務(wù)組成。中斷事務(wù)的優(yōu)先級(jí)比大循環(huán)執(zhí)行的應(yīng)用事務(wù)要高。中斷事務(wù)包括串口中斷接收事務(wù),還有定時(shí)器中斷事務(wù)、外部中斷事務(wù)等等。如果串口中斷事務(wù)時(shí)間耗費(fèi)過長,會(huì)引起其他中斷事務(wù)丟失以及應(yīng)用事務(wù)的執(zhí)行,系統(tǒng)實(shí)時(shí)性差。對(duì)于應(yīng)用層的服務(wù)模式是服務(wù)方等待請(qǐng)求方的請(qǐng)求;請(qǐng)求方發(fā)送請(qǐng)求命令;月艮務(wù)方接收請(qǐng)求命令并處理;服務(wù)方返回應(yīng)答。傳統(tǒng)技術(shù)當(dāng)中,這種服務(wù)模式的實(shí)現(xiàn)方法是自定義固定幀同步機(jī)制。即請(qǐng)求方與服務(wù)方所有的數(shù)據(jù)交互都是基于自定義數(shù)據(jù)幀進(jìn)行,數(shù)據(jù)幀的長度是定長的。也就是說每次數(shù)據(jù)交換單元是一個(gè)定長幀。請(qǐng)求方把請(qǐng)求命令進(jìn)行一層幀封裝,再通過串口按字符依次發(fā)送出去;服務(wù)方依次接收到字符并緩存在緩沖區(qū),同時(shí)計(jì)算字符數(shù)量,當(dāng)達(dá)到了預(yù)先定義好的數(shù)量后,取出這個(gè)數(shù)據(jù)幀做進(jìn)一步處理并返回應(yīng)答。因?yàn)槲锢韺拥拇诎l(fā)送是基于字符的,所以對(duì)于定長幀則需要多次啟動(dòng)物理層串口進(jìn)行傳輸。相應(yīng)地,因?yàn)槲锢韺拥拇诮邮找彩腔谧址?,所以接收方也需多次啟?dòng)物理層進(jìn)行接收,將接收到的字符放入緩沖區(qū)。由于這種方法對(duì)每個(gè)數(shù)據(jù)幀都是定長的,對(duì)于某些含字節(jié)較少的數(shù)據(jù)(例如控制信號(hào)),會(huì)造成空間和時(shí)間上的浪費(fèi),使用起來顯得不夠靈活。

      發(fā)明內(nèi)容
      基于此,有必要針對(duì)上述問題,提供一種基于硬件系統(tǒng)的串口可靠傳輸方法及裝置,能夠提供一種串口傳輸可變幀的機(jī)制,節(jié)省傳輸帶寬的空間及時(shí)間?!N基于硬件系統(tǒng)的串口可靠傳輸方法,包括讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū),釋放串口中斷業(yè)務(wù);根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀;解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。相應(yīng)地,一種基于硬件系統(tǒng)的串口可靠傳輸裝置,包括
      數(shù)據(jù)轉(zhuǎn)移單元,用于讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū);與所述數(shù)據(jù)轉(zhuǎn)移單元相連的串口控制單元,用于釋放串口中斷業(yè)務(wù);與所述數(shù)據(jù)轉(zhuǎn)移單元相連的數(shù)據(jù)幀查找單元,用于根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀;與所述數(shù)據(jù)幀查找單元相連的信息解釋單元,用于解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。實(shí)施本發(fā)明,具有如下有益效果本發(fā)明提供了一種串口中斷業(yè)務(wù)的快速處理機(jī)制,在讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū)之后,馬上釋放串口中斷業(yè)務(wù),在后臺(tái)對(duì)緩沖區(qū)的數(shù)據(jù)進(jìn)行處理,避免中斷業(yè)務(wù)占用時(shí)間過長而帶來的其它中斷業(yè)務(wù)的丟失、業(yè)務(wù)傳輸數(shù)據(jù)的丟失以及影響系統(tǒng)實(shí)時(shí)性等問題。另外,與傳統(tǒng)固定長度幀的方式不同,本發(fā)明提供的可變長數(shù)據(jù)幀能夠節(jié)省傳輸帶寬和處理時(shí)間,進(jìn)一步提高了系統(tǒng)的靈活性。


      圖I為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸方法的流程圖;圖2為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸方法的第一實(shí)施例流程圖;圖3為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸方法的第二實(shí)施例流程圖;圖4為本發(fā)明的第二實(shí)施例的狀態(tài)轉(zhuǎn)移圖;圖5為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸裝置的示意圖;圖6為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸裝置的第一實(shí)施例示意圖;圖7為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸裝置的第二實(shí)施例示意圖。
      具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。圖I為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸方法的流程圖,包括SlOl :讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū),釋放串口中斷業(yè)務(wù);S102 :根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀;S103 :解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。串口數(shù)據(jù)接收采用中斷事務(wù)方式,這種方式具有很好的實(shí)時(shí)性。因?yàn)橹袛嗍聞?wù)在嵌入式系統(tǒng)中具有最高的優(yōu)先級(jí)。當(dāng)系統(tǒng)使能多個(gè)中斷源時(shí),設(shè)置串口接收中斷具有最高的優(yōu)先級(jí)。無論當(dāng)前系統(tǒng)處于處理什么事務(wù),當(dāng)串口接收中斷發(fā)生時(shí),系統(tǒng)會(huì)跳轉(zhuǎn)到串口接收中斷處理程序執(zhí)行。讀取硬件緩沖區(qū)的內(nèi)容,將讀取到的數(shù)據(jù)放入自定義的緩沖區(qū)。與傳統(tǒng)技術(shù)不同,本發(fā)明并非等到解釋完這些數(shù)據(jù)再釋放串口中斷業(yè)務(wù)。由于該串口中斷業(yè)務(wù)具有最高的優(yōu)先級(jí),且其中斷時(shí)間不宜過長,故此,本發(fā)明將串口接收存儲(chǔ)在緩沖存儲(chǔ)器中的數(shù)據(jù)轉(zhuǎn)移到緩沖區(qū)當(dāng)中,交由后臺(tái)串口接收處理程序進(jìn)行處理。在數(shù)據(jù)寫入緩沖區(qū)之后,馬上釋放串口中斷業(yè)務(wù),以便提高系統(tǒng)的實(shí)時(shí)性。串口數(shù)據(jù)處理程序從緩沖區(qū)找出一個(gè)可變長數(shù)據(jù)幀。查找過程中,串口數(shù)據(jù)處理程序首先判斷緩沖區(qū)是否有數(shù)據(jù),如果有數(shù)據(jù),再進(jìn)行預(yù)設(shè)字段的查找。預(yù)設(shè)字段可由一個(gè)或幾個(gè)特殊的字節(jié)組成,以方便適合處理程序的查找。當(dāng)找到可變長數(shù)據(jù)幀后,解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。其中,解釋的方式可依據(jù)可變長數(shù)據(jù)幀的自定義信號(hào)格式。簡(jiǎn)單舉例,可變長數(shù)據(jù)幀的信號(hào)格式可以為“預(yù)設(shè)字段+有效信息”,則解釋時(shí),只需提取預(yù)設(shè)字段之間的信息即為有效信息。由于使用了可變長數(shù)據(jù)幀,信號(hào)格式中的有效信息并非固定長度,對(duì)于某些只傳輸幾個(gè)字節(jié)的數(shù)據(jù)來說,本發(fā)明能夠節(jié)省傳輸帶寬空間以及節(jié)約傳輸時(shí)間。需要補(bǔ)充說明的是,上述自定義的信號(hào)格式并非唯一,在下述圖2的實(shí)施例當(dāng)中,本發(fā)明還定義了一種優(yōu)選的信號(hào)格式。所有基于本發(fā)明思想的類似格式變換,均應(yīng)屬于本發(fā)明的保護(hù)范圍。圖2為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸方法的第一實(shí)施例流程圖。與圖I相比,圖2定義了一種優(yōu)選的信號(hào)格式,并基于此對(duì)本發(fā)明的實(shí)施方式做進(jìn)一步的改進(jìn)。該信號(hào)格式定義的可變長數(shù)據(jù)幀的字段構(gòu)成為同步位、幀長度、有效信息(payload)。S201 :讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū),釋放串口中斷業(yè)務(wù);S202:所述可變長數(shù)據(jù)幀的預(yù)設(shè)字段包括同步位、幀長度和有效信息,在所述緩沖區(qū)的數(shù)據(jù)中查找同步位字段;S203 :當(dāng)查找成功,根據(jù)所述幀長度字段提取所述可變長數(shù)據(jù)幀;S204 :解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。所述同步位用于定義可變長數(shù)據(jù)幀的起始位,同步位后面的幀長度代表了該數(shù)據(jù)幀有效信息有多長。根據(jù)數(shù)據(jù)幀長度來判斷后續(xù)有多少字節(jié)都是屬于該數(shù)據(jù)幀的有效內(nèi)容。數(shù)據(jù)幀長度字節(jié)后面緊跟著的是該數(shù)據(jù)幀的有效信息。有效信息是該數(shù)據(jù)幀真正有效的內(nèi)容。系統(tǒng)依此接收到傳輸?shù)臄?shù)據(jù)內(nèi)容。上述“預(yù)設(shè)字段”采用同步位予以實(shí)現(xiàn),可以便于查找可變長數(shù)據(jù)幀。所述幀長度有助于確認(rèn)該可變數(shù)據(jù)幀的長度,確保串口信息的可靠傳輸。當(dāng)查找到的幀長度不符合預(yù)設(shè)規(guī)定,則丟棄該可變長數(shù)據(jù)幀,查找下一個(gè)同步位字段。其中,該預(yù)設(shè)規(guī)定可以是,在幀長度的數(shù)據(jù)范圍內(nèi)還包括同步位所自定義的特殊字符,則顯然,該可變長數(shù)據(jù)幀傳輸出錯(cuò),需要丟棄。同理,本發(fā)明不排除其它利用幀長度檢驗(yàn)信息可靠性的規(guī)定。圖3為本發(fā)明一種基于硬件系統(tǒng)的串口可靠傳輸方法的第二實(shí)施例流程圖。與圖2相比,圖3進(jìn)一步定義了一種更優(yōu)信號(hào)格式,并基于此對(duì)本發(fā)明的實(shí)施方式做進(jìn)一步的改進(jìn)。該信號(hào)格式定義的可變長數(shù)據(jù)幀的字段構(gòu)成為同步位、幀長度、有效信息(payload)和校驗(yàn)位。與前述實(shí)施例不同,本實(shí)施的有效信息后面還包括校驗(yàn)位字段,程序可以據(jù)此來判斷接收到的該數(shù)據(jù)幀是否有錯(cuò)誤。進(jìn)一步地,若沒有錯(cuò)誤,在程序?qū)邮諗?shù)據(jù)處理完畢后,返回相應(yīng)的應(yīng)答包通知對(duì)方,則對(duì)方也可以據(jù)此獲知此次發(fā)送的信息無誤。S301 :讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū),釋放串口中斷業(yè)務(wù);S302:所述可變長數(shù)據(jù)幀的預(yù)設(shè)字段包括同步位、幀長度、有效信息和校驗(yàn)位,在所述緩沖區(qū)的數(shù)據(jù)中查找同步位字段;判斷是否查找成功,“是”則轉(zhuǎn)入步驟S303 ;“否”則轉(zhuǎn)入步驟S308 ;S303 :當(dāng)查找成功,根據(jù)所述幀長度字段提取所述可變長數(shù)據(jù)幀;S304 :根據(jù)所述同步位、所述幀長度和所述有效信息的字段,計(jì)算該可變長數(shù)據(jù)幀的校驗(yàn)和;
      S305:將所述校驗(yàn)和與所述校驗(yàn)位的數(shù)據(jù)進(jìn)行比較,判斷所述可變長數(shù)據(jù)幀接收正常;判斷是否正常接收,“是”則轉(zhuǎn)入步驟S306 ;“否”則轉(zhuǎn)入步驟S308 ;S306 :接收可變長數(shù)據(jù)幀內(nèi)的有效信息;判斷是否數(shù)據(jù)末端,“是”則轉(zhuǎn)入步驟S307 ;“否”則返回步驟S302 ;S307 :根據(jù)業(yè)務(wù)指令對(duì)所有的有效信息進(jìn)行處理,再啟動(dòng)串口中斷業(yè)務(wù),返回應(yīng)答包;S308 :丟棄該可變長數(shù)據(jù)幀,查找下一個(gè)同步位字段。
      在計(jì)算機(jī)系統(tǒng)的多任務(wù)里,中斷事務(wù)具有最高的優(yōu)先級(jí)。所以通常把對(duì)實(shí)時(shí)性要求很高的事務(wù)放在中斷處理程序里完成。串口數(shù)據(jù)接收也是采用中斷事務(wù)處理方式實(shí)現(xiàn)。處理過程耗費(fèi)的時(shí)間越短越好,避免因?yàn)樵谔幚磉^程又一個(gè)串口接收數(shù)據(jù)的到來而導(dǎo)致數(shù)據(jù)丟失的情況。控制器(CPU/MCU)響應(yīng)串口接收中斷,進(jìn)入處理程序,讀取串口模塊的硬件緩沖區(qū)的數(shù)據(jù),寫入一個(gè)自定義的緩沖區(qū)中,馬上退出,釋放串口中斷業(yè)務(wù)。優(yōu)選地,本實(shí)施例的緩沖區(qū)采用環(huán)形緩沖區(qū)予以實(shí)現(xiàn),它的應(yīng)用很廣泛,它是一個(gè)先進(jìn)先出的循環(huán)緩沖區(qū)。環(huán)形緩沖區(qū)通常有一個(gè)讀指針和一個(gè)寫指針。讀指針指向當(dāng)前緩沖區(qū)可讀的數(shù)據(jù),寫指針指向當(dāng)前緩沖區(qū)可寫的數(shù)據(jù)。環(huán)形緩沖區(qū)初始化時(shí),讀指針和寫指針都指向緩沖區(qū)的首端。讀用戶首先判斷緩沖區(qū)中是否有數(shù)據(jù)可讀,如果有數(shù)據(jù)可讀,那么讀指針的指向數(shù)據(jù)讀出來并且讀指針指向下一個(gè)位置。最后判斷讀指針是否指向緩沖區(qū)末端的下一個(gè)位置,如果是這樣,那么讀指針重新指向緩沖區(qū)的首端。寫入用戶首先判斷緩沖區(qū)是否滿出,如果還有數(shù)據(jù)可寫入,那么將數(shù)據(jù)寫入寫指針指向的位置并且寫指針指向下一個(gè)位置。最后判斷寫指針是否指向緩沖區(qū)的末端下一個(gè)位置,如果是這樣,那么將寫指針重新指向緩沖區(qū)的首端。因?yàn)橹挥写跀?shù)據(jù)接收處理程序會(huì)修改寫指針,所以寫入過程不需加互斥鎖,提高了接收處理速度。串口數(shù)據(jù)接收處理程序?qū)⒋谀K硬件緩沖區(qū)的數(shù)據(jù)讀取出來,寫入環(huán)形緩沖區(qū)后,立刻退出。做好下一次中斷接收準(zhǔn)備。如前面所述,串口數(shù)據(jù)接收是在中斷事務(wù)實(shí)現(xiàn)的,這種處理方式提高接收實(shí)時(shí)性,不會(huì)導(dǎo)致數(shù)據(jù)丟失的情況。數(shù)據(jù)處理過程從環(huán)形緩沖區(qū)讀取數(shù)據(jù),找出可變長的數(shù)據(jù)幀。這個(gè)過程要耗費(fèi)比較多的時(shí)間,所以不能放在中斷事務(wù)實(shí)現(xiàn)。串口接收程序輪詢環(huán)形緩沖區(qū)的內(nèi)容,將數(shù)據(jù)讀取出來并提取一條完整的可變長幀。查找可變長的數(shù)據(jù)幀過程也是一個(gè)狀態(tài)機(jī)變換的過程。一個(gè)可變長的數(shù)據(jù)幀由以下數(shù)據(jù)格式組成同步位、幀長度、有效信息(payload)、校驗(yàn)位。如下表所示
      同步位幀長度有效信息校驗(yàn)位幀長度字段代表了該數(shù)據(jù)幀有效信息的實(shí)際長度,因此,不同的幀長度該數(shù)據(jù)幀的有效信息長度是不同的。根據(jù)可變長數(shù)據(jù)幀的四個(gè)字段,引入一種具有以下四種狀態(tài)的有限狀態(tài)機(jī)進(jìn)行分析狀態(tài)A、狀態(tài)B、狀態(tài)C、狀態(tài)D。如圖4所示。圖4為本發(fā)明的第二實(shí)施例的狀態(tài)轉(zhuǎn)移圖。各個(gè)狀態(tài)描述如下表所示
      權(quán)利要求
      1.一種基于硬件系統(tǒng)的串口可靠傳輸方法,其特征在于,包括 讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū),釋放串口中斷業(yè)務(wù); 根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀; 解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。
      2.根據(jù)權(quán)利要求I所述的基于硬件系統(tǒng)的串口可靠傳輸方法,其特征在于,所述可變長數(shù)據(jù)幀的預(yù)設(shè)字段包括同步位、幀長度和有效信息,根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀的步驟,包括 在所述緩沖區(qū)的數(shù)據(jù)中查找同步位字段; 當(dāng)查找成功,根據(jù)所述幀長度字段提取所述可變長數(shù)據(jù)幀。
      3.根據(jù)權(quán)利要求2所述的基于硬件系統(tǒng)的串口可靠傳輸方法,其特征在于,所述可變長數(shù)據(jù)幀的預(yù)設(shè)字段還包括校驗(yàn)位,解釋該可變長數(shù)據(jù)幀的步驟,包括 根據(jù)所述同步位、所述幀長度和所述有效信息的字段,計(jì)算該可變長數(shù)據(jù)幀的校驗(yàn)和; 將所述校驗(yàn)和與所述校驗(yàn)位的數(shù)據(jù)進(jìn)行比較,判斷所述可變長數(shù)據(jù)幀接收正常。
      4.根據(jù)權(quán)利要求2或3所述的基于硬件系統(tǒng)的串口可靠傳輸方法,其特征在于 當(dāng)查找到的幀長度不符合預(yù)設(shè)規(guī)定,或者當(dāng)解釋所述可變長數(shù)據(jù)幀的過程中出現(xiàn)異常,則丟棄該可變長數(shù)據(jù)幀,查找下一個(gè)同步位字段。
      5.根據(jù)權(quán)利要求I至4任一項(xiàng)所述的基于硬件系統(tǒng)的串口可靠傳輸方法,其特征在于,接收可變長數(shù)據(jù)幀內(nèi)的有效信息的步驟之后,還包括 判斷當(dāng)前指針指向所述緩沖區(qū)的數(shù)據(jù)末端,根據(jù)業(yè)務(wù)指令對(duì)所有的有效信息進(jìn)行處理,再啟動(dòng)串口中斷業(yè)務(wù),返回應(yīng)答包; 當(dāng)所述當(dāng)前指針不是指向所述緩沖區(qū)的數(shù)據(jù)末端時(shí),查找下一個(gè)同步位字段。
      6.一種基于硬件系統(tǒng)的串口可靠傳輸裝置,其特征在于,包括 數(shù)據(jù)轉(zhuǎn)移單元,用于讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū); 與所述數(shù)據(jù)轉(zhuǎn)移單元相連的串口控制單元,用于釋放串口中斷業(yè)務(wù); 與所述數(shù)據(jù)轉(zhuǎn)移單元相連的數(shù)據(jù)幀查找單元,用于根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀; 與所述數(shù)據(jù)幀查找單元相連的信息解釋單元,用于解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。
      7.根據(jù)權(quán)利要求6所述的基于硬件系統(tǒng)的串口可靠傳輸裝置,其特征在于,所述數(shù)據(jù)中貞查找單元,包括 同步位獲取單元,用于在所述緩沖區(qū)的數(shù)據(jù)中查找同步位字段; 與所述同步位獲取單元相連的數(shù)據(jù)幀提取單元,用于根據(jù)所述幀長度字段提取所述可變長數(shù)據(jù)幀。
      8.根據(jù)權(quán)利要求7所述的基于硬件系統(tǒng)的串口可靠傳輸裝置,其特征在于,所述信息解釋單元,包括 校驗(yàn)計(jì)算單元,用于根據(jù)所述同步位、所述幀長度和所述有效信息的字段,計(jì)算該可變長數(shù)據(jù)幀的校驗(yàn)和; 與所述校驗(yàn)計(jì)算單元相連的比較判斷單元,用于將所述校驗(yàn)和與所述校驗(yàn)位的數(shù)據(jù)進(jìn)行比較,判斷所述可變長數(shù)據(jù)幀接收正常; 與所述比較判斷單元相連的信息接收單元,用于接收可變長數(shù)據(jù)幀內(nèi)的有效信息。
      9.根據(jù)權(quán)利要求7或8所述的基于硬件系統(tǒng)的串口可靠傳輸裝置,其特征在于,還包括 與所述數(shù)據(jù)幀提取單元、所述比較判斷單元分別相連的異常處理單元,用于在查找到的幀長度不符合預(yù)設(shè)規(guī)定,或者在解釋所述可變長數(shù)據(jù)幀的過程中出現(xiàn)異常的情況下,丟棄該可變長數(shù)據(jù)幀,查找下一個(gè)同步位字段。
      10.根據(jù)權(quán)利要求6至9任一項(xiàng)所述的基于硬件系統(tǒng)的串口可靠傳輸裝置,其特征在于,還包括 與所述信息解釋單元、數(shù)據(jù)幀查找單元分別相連的接收完整單元,用于判斷當(dāng)前指針指向所述緩沖區(qū)的數(shù)據(jù)末端;所述數(shù)據(jù)幀查找單元,還用于在所述當(dāng)前指針不是指向所述緩沖區(qū)的數(shù)據(jù)末端時(shí),查找下一個(gè)同步位字段; 與所述接收完整單元相連的命令執(zhí)行單元,用于根據(jù)業(yè)務(wù)指令對(duì)所有的有效信息進(jìn)行處理; 與所述命令執(zhí)行單元、所述串口控制單元分別相連的數(shù)據(jù)應(yīng)答單元,用于返回應(yīng)答包;其中,所述串口控制單元還用于啟動(dòng)串口中斷業(yè)務(wù)。
      全文摘要
      本發(fā)明公開了基于硬件系統(tǒng)的串口可靠傳輸方法及裝置。該方法包括讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū),釋放串口中斷業(yè)務(wù);根據(jù)預(yù)設(shè)字段,在所述緩沖區(qū)的數(shù)據(jù)中查找可變長數(shù)據(jù)幀;解釋該可變長數(shù)據(jù)幀,接收可變長數(shù)據(jù)幀內(nèi)的有效信息。采用本發(fā)明,可以提供了一種串口中斷業(yè)務(wù)的快速處理機(jī)制,在讀取緩沖存儲(chǔ)器的數(shù)據(jù),并寫入緩沖區(qū)之后,馬上釋放串口中斷業(yè)務(wù),在后臺(tái)對(duì)緩沖區(qū)的數(shù)據(jù)進(jìn)行處理,避免中斷業(yè)務(wù)占用時(shí)間過長而帶來的其它中斷業(yè)務(wù)的丟失、業(yè)務(wù)傳輸數(shù)據(jù)的丟失以及影響系統(tǒng)實(shí)時(shí)性等問題。
      文檔編號(hào)H04L1/00GK102724122SQ20121020907
      公開日2012年10月10日 申請(qǐng)日期2012年6月21日 優(yōu)先權(quán)日2012年6月21日
      發(fā)明者何常, 艾君銳, 陳昶 申請(qǐng)人:廣東威創(chuàng)視訊科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1