国产精品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ù)對(duì)齊的方法及裝置的制作方法

      文檔序號(hào):6362591閱讀:596來源:國(guó)知局
      專利名稱:串口同步通訊數(shù)據(jù)對(duì)齊的方法及裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種串口同步通訊數(shù)據(jù)對(duì)齊的方法及裝置。
      背景技術(shù)
      隨著科技的不斷進(jìn)步,電子產(chǎn)品的硬件架構(gòu)越來越趨向于多處理器之間的連接和通訊,因此多處理器之間的數(shù)據(jù)通訊方式成為首要解決的問題。串口總線由于需要的通訊接口少、通訊效率高等優(yōu)點(diǎn),深受廣大用戶的青睞。目前,在多處理器之間的數(shù)據(jù)通訊處理上,廣泛應(yīng)用的是SPI (Serial Peripheral Interface,串行外設(shè)接口)。SPI是一種高速的全雙工同步串行通訊總線,它能夠在同步時(shí)鐘信號(hào)下高速、可靠的傳送數(shù)據(jù)。SPI分為主從兩種傳輸模式。主模式下的發(fā)送總線即是從模式的接收總線,與之對(duì)應(yīng)的是從模式下的發(fā)送總線即是主模式的接收總線。采用SPI進(jìn)行通訊時(shí),只能夠定義一個(gè)主機(jī),可以有一個(gè)或多個(gè)從機(jī)與主機(jī)進(jìn)行通訊。主機(jī)和從機(jī)可以同時(shí)接收和發(fā)送數(shù)據(jù),且主機(jī)和從機(jī)的發(fā)送和接收操作可以通過中斷或者查詢的方法來完成。采用SPI進(jìn)行串口同步通訊時(shí),由于整個(gè)通訊過程對(duì)同步時(shí)鐘信號(hào)高度依賴,因此當(dāng)有干擾出現(xiàn)在同步時(shí)鐘信號(hào)線上時(shí),就會(huì)造成通訊雙方數(shù)據(jù)位錯(cuò)亂,從而使得到的數(shù)據(jù)無效。現(xiàn)有技術(shù)中,在主機(jī)和從機(jī)通訊時(shí)同步時(shí)鐘信號(hào)受到干擾后,大多采用軟件握手或者同步頭的方法來恢復(fù)錯(cuò)位的數(shù)據(jù)?,F(xiàn)有技術(shù)所采用的恢復(fù)方法需要的恢復(fù)時(shí)間太長(zhǎng),從而又造成了人為的延時(shí),嚴(yán)重地影響了產(chǎn)品的穩(wěn)定性。

      發(fā)明內(nèi)容
      本發(fā)明的主要目的是提供一種串口同步通訊數(shù)據(jù)對(duì)齊的方法,旨在能夠短時(shí)間內(nèi)恢復(fù)串口同步通訊中出現(xiàn)的數(shù)據(jù)錯(cuò)位問題,較為快捷地實(shí)現(xiàn)數(shù)據(jù)對(duì)齊。本發(fā)明提供了一種串口同步通訊數(shù)據(jù)對(duì)齊的方法,包括以下步驟從機(jī)發(fā)送測(cè)試數(shù)據(jù)給主機(jī);主機(jī)接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;從機(jī)接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);當(dāng)所述應(yīng)答是所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),主機(jī)響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊。優(yōu)選地,所述主機(jī)接收測(cè)試數(shù)據(jù)并根據(jù)所述測(cè)試數(shù)據(jù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)的步驟具體包括主機(jī)將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零;主機(jī)讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平;判斷在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是否為高電平;若是,則計(jì)數(shù)器的值自動(dòng)加I;
      判斷所述計(jì)數(shù)器的值是否為8 ;若是,則主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。優(yōu)選地,所述從機(jī)接收所述校驗(yàn)數(shù)據(jù)并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)出應(yīng)答的步驟具體包括從機(jī)接收數(shù)據(jù)并判斷所接收的數(shù)據(jù)格式是否正確;若是,則判斷所接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);若是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù),則將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。優(yōu)選地,所述從機(jī)發(fā)送測(cè)試數(shù)據(jù)給主機(jī)的測(cè)試數(shù)據(jù)為01H。優(yōu)選地,所述主機(jī)與從機(jī)進(jìn)行數(shù)據(jù)處理是在同一時(shí)鐘信號(hào)下同步完成的。本發(fā)明還提供了一種串口同步通訊數(shù)據(jù)對(duì)齊的裝置,包括從數(shù)據(jù)發(fā)送模塊,用于發(fā)送測(cè)試數(shù)據(jù)給主機(jī);主數(shù)據(jù)收發(fā)模塊,用于接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;從數(shù)據(jù)應(yīng)答模塊,用于接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);主數(shù)據(jù)對(duì)齊模塊,用于當(dāng)所述應(yīng)答是所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊。優(yōu)選地,所述主數(shù)據(jù)收發(fā)模塊包括主數(shù)據(jù)處理單元,用于將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零;主數(shù)據(jù)讀取單元,用于讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平;主數(shù)據(jù)計(jì)數(shù)單元,用于在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是高電平時(shí), 計(jì)數(shù)器的值自動(dòng)加I ;主數(shù)據(jù)發(fā)送單元,用于在所述計(jì)數(shù)器的值是8時(shí),主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。優(yōu)選地,所述從數(shù)據(jù)應(yīng)答模塊包括從數(shù)據(jù)接收單元,用于接收數(shù)據(jù)并在所接收數(shù)據(jù)的格式正確時(shí),判斷所接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);從數(shù)據(jù)應(yīng)答單元,用于在所接收的數(shù)據(jù)是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。優(yōu)選地,所述從數(shù)據(jù)發(fā)送模塊中所述發(fā)送的測(cè)試數(shù)據(jù)為01H。優(yōu)選地,所述主機(jī)與從機(jī)進(jìn)行數(shù)據(jù)處理是在同一時(shí)鐘信號(hào)下同步完成的。本發(fā)明通過主機(jī)兩次讀取從機(jī)發(fā)送的測(cè)試數(shù)據(jù)的數(shù)據(jù)端口狀態(tài)為高電平的時(shí)鐘間隔為7個(gè)時(shí)鐘周期,且當(dāng)從機(jī)發(fā)出的應(yīng)答是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí), 主機(jī)響應(yīng)從機(jī)應(yīng)答完成數(shù)據(jù)對(duì)齊的方法,實(shí)現(xiàn)了主機(jī)快捷、準(zhǔn)確地恢復(fù)錯(cuò)位數(shù)據(jù)并完成數(shù)據(jù)對(duì)齊的有益效果。


      圖I是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的方法一實(shí)施例流程示意圖;圖2是本發(fā)明中主機(jī)接收測(cè)試數(shù)據(jù)并根據(jù)所述測(cè)試數(shù)據(jù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)一實(shí)施例流程示意圖3是本發(fā)明中從機(jī)接收所述校驗(yàn)數(shù)據(jù)并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)出應(yīng)答一實(shí)施例流程示意圖;圖4是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置一實(shí)施例結(jié)構(gòu)示意圖;圖5是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置中主數(shù)據(jù)收發(fā)模塊一實(shí)施例結(jié)構(gòu)示意圖;圖6是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置中從數(shù)據(jù)應(yīng)答模塊一實(shí)施例結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
      具體實(shí)施例方式以下結(jié)合說明書附圖及具體實(shí)施例進(jìn)一步說明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參照?qǐng)D1,圖I是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的方法一實(shí)施例流程示意圖。如圖 I所示,本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的方法包括步驟SOI、從機(jī)發(fā)送測(cè)試數(shù)據(jù)給主機(jī);步驟S02、主機(jī)接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;步驟S03、從機(jī)接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);步驟S04、判斷所述應(yīng)答是否為所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù);若是,則執(zhí)行步驟S05 ;若否,則繼續(xù)執(zhí)行步驟S02 ;步驟S05、主機(jī)響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊;當(dāng)出現(xiàn)通訊異常、數(shù)據(jù)錯(cuò)位時(shí),從機(jī)將測(cè)試數(shù)據(jù)OlH裝載到數(shù)據(jù)緩沖寄存器中,當(dāng)從機(jī)的數(shù)據(jù)完全被主機(jī)讀取后,再向數(shù)據(jù)緩沖寄存器中裝載所述測(cè)試數(shù)據(jù)01H。主機(jī)接收從機(jī)發(fā)送的測(cè)試數(shù)據(jù),并讀取從機(jī)發(fā)送的數(shù)據(jù)端口電平,同時(shí)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。具體地, 主機(jī)每發(fā)送一個(gè)時(shí)鐘脈沖,就讀取一次所述數(shù)據(jù)端口的狀態(tài),直到讀取兩次所述數(shù)據(jù)端口為高電平狀態(tài)的時(shí)鐘間隔是7個(gè)時(shí)鐘周期時(shí),再發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答。在一優(yōu)選實(shí)施例中,所述主機(jī)等待從機(jī)應(yīng)答的時(shí)間為10ms。所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)可以根據(jù)需要任意設(shè)置,為了較為準(zhǔn)確、快捷的恢復(fù)錯(cuò)位數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)對(duì)齊,所述校驗(yàn)數(shù)據(jù)一般選取高低位間隔設(shè)置的數(shù)據(jù)。在一優(yōu)選的實(shí)施例中,所述校驗(yàn)數(shù)據(jù)為A5H。從機(jī)接收所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī)。主機(jī)判斷從機(jī)發(fā)送的應(yīng)答是否為所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù),在一優(yōu)選實(shí)施例中,所述校驗(yàn)數(shù)據(jù)A5H按位取反后得到的所述應(yīng)答為5AH。若主機(jī)接收到的所述應(yīng)答為5AH,則響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊;若主機(jī)接收到的所述應(yīng)答不是5AH,則主機(jī)繼續(xù)接收從機(jī)發(fā)送的測(cè)試數(shù)據(jù)后,繼續(xù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),循環(huán)執(zhí)行步驟S02至步驟S04,直至主機(jī)接收到的所述從機(jī)發(fā)送的應(yīng)答是所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù),完成數(shù)據(jù)對(duì)齊。本發(fā)明通過采用向從機(jī)中裝載測(cè)試數(shù)據(jù)OlH并當(dāng)從機(jī)發(fā)出的應(yīng)答是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),主機(jī)響應(yīng)從機(jī)應(yīng)答完成數(shù)據(jù)對(duì)齊的方法,實(shí)現(xiàn)了主機(jī)在短時(shí)間內(nèi)快捷地恢復(fù)錯(cuò)位數(shù)據(jù)并完成數(shù)據(jù)對(duì)齊的有益效果。參照?qǐng)D2,圖2是本發(fā)明中主機(jī)接收測(cè)試數(shù)據(jù)并根據(jù)所述測(cè)試數(shù)據(jù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)一實(shí)施例流程示意圖。如圖2所示,本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的方法中,主機(jī)接
      6收測(cè)試數(shù)據(jù)并根據(jù)所述測(cè)試數(shù)據(jù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)的步驟包括步驟S11、主機(jī)將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零;步驟S12、主機(jī)讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平;步驟S13、判斷在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是否為高電平;若是, 則執(zhí)行步驟S14 ;若否,則返回繼續(xù)執(zhí)行步驟S12 ;步驟S14、判斷所述計(jì)數(shù)器的值是否為8 ;若所述計(jì)數(shù)器的值是8,則執(zhí)行步驟S15 ; 若所述計(jì)數(shù)器的值不是8,則執(zhí)行步驟S16 ;步驟S15、主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī);步驟S16、計(jì)數(shù)器清零,并返回繼續(xù)執(zhí)行步驟S12。主機(jī)在接收所述測(cè)試數(shù)據(jù)之前,首先要將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零,即Counter = O。主機(jī)發(fā)送時(shí)鐘脈沖,并讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口的電平;主機(jī)每發(fā)送一個(gè)時(shí)鐘脈沖,就讀取一次所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口的電平,同時(shí)判斷在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是否為高電平。當(dāng)在I個(gè)時(shí)鐘周期內(nèi),所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是高電平時(shí),計(jì)數(shù)器的值自動(dòng)加I ;當(dāng)計(jì)數(shù)器的值為8時(shí),即主機(jī)讀取兩次所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口為高電平狀態(tài)的時(shí)鐘間隔是7個(gè)時(shí)鐘周期時(shí),主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。 若在主機(jī)發(fā)送一個(gè)時(shí)鐘脈沖后,所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口不是高電平,則主機(jī)繼續(xù)發(fā)送脈沖,并讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口的電平。若計(jì)數(shù)器的值不是8,則主機(jī)將計(jì)數(shù)器清零,返回繼續(xù)執(zhí)行主機(jī)發(fā)送時(shí)鐘脈沖,并讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平。本發(fā)明通過主機(jī)接收測(cè)試數(shù)據(jù)并在讀取兩次所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口為高電平狀態(tài)的時(shí)鐘間隔是7個(gè)時(shí)鐘周期時(shí),發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)的方法,實(shí)現(xiàn)了在較短時(shí)間快速恢復(fù)錯(cuò)位數(shù)據(jù)、完成數(shù)據(jù)對(duì)齊的有益效果。參照?qǐng)D3,圖3是本發(fā)明中從機(jī)接收所述校驗(yàn)數(shù)據(jù)并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)出應(yīng)答一實(shí)施例流程示意圖。如圖3所示,在本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的方法中,從機(jī)接收所述校驗(yàn)數(shù)據(jù)并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)出應(yīng)答的步驟包括步驟S21、接收數(shù)據(jù)并判斷所接收的數(shù)據(jù)格式是否正確;若是,則執(zhí)行步驟S22 ;若否,則繼續(xù)執(zhí)行所述步驟接收數(shù)據(jù)并判斷所接收的數(shù)據(jù)格式是否正確;步驟S22、判斷所接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);若是,則執(zhí)行步驟S23 ; 若否,則執(zhí)行步驟S24;步驟S23、將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī);步驟S24、裝載測(cè)試數(shù)據(jù)OlH到數(shù)據(jù)緩沖寄存器。當(dāng)通訊異常,出現(xiàn)數(shù)據(jù)錯(cuò)位時(shí),從機(jī)將測(cè)試數(shù)據(jù)OlH裝載到數(shù)據(jù)緩沖寄存器中,判斷所接收到的數(shù)據(jù)格式是否正確,即判斷所接收的數(shù)據(jù)是否為一個(gè)字節(jié)的數(shù)據(jù),具體地,判斷所接收的數(shù)據(jù)是否為8個(gè)bit (位)。若所接收的數(shù)據(jù)是8個(gè)bit,則判斷所述接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);若所述接收的數(shù)據(jù)時(shí)主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù),則將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。具體地,在一優(yōu)選的實(shí)施例中,所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)為A5H,所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)A5H為十六進(jìn)制表達(dá)方式,將所述十六進(jìn)制表達(dá)方式轉(zhuǎn)換為二進(jìn)制表達(dá)方式且高低位不變,即所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)A5H轉(zhuǎn)換為二進(jìn)制表達(dá)方式為10100101 ;將所述二進(jìn)制表達(dá)方式的校驗(yàn)數(shù)據(jù)10100101按位取反,即得到按位取反后的二進(jìn)制數(shù)據(jù)01011010,再將所述按位取反后的二進(jìn)制數(shù)據(jù)01011010轉(zhuǎn)換為十六進(jìn)制表達(dá)方式,即為5AH。從機(jī)將所述按位取反后的數(shù)據(jù)5AH作為應(yīng)答發(fā)送給主機(jī)。 若從機(jī)所接收的數(shù)據(jù)不是一個(gè)字節(jié)的數(shù)據(jù),即所接收的數(shù)據(jù)不是8個(gè)Mt,則從機(jī)繼續(xù)接收所述校驗(yàn)數(shù)據(jù)并判斷所接收的數(shù)據(jù)是否為一個(gè)字節(jié)的數(shù)據(jù)。在從機(jī)所接收的數(shù)據(jù)是一個(gè)字節(jié)的數(shù)據(jù)但不是所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),在從機(jī)的數(shù)據(jù)緩沖寄存器中所裝載的測(cè)試數(shù)據(jù)OlH全部被主機(jī)讀取后,繼續(xù)裝載測(cè)試數(shù)據(jù)OlH到數(shù)據(jù)緩沖寄存器。本發(fā)明通過在從機(jī)所接收的數(shù)據(jù)是一個(gè)字節(jié)的數(shù)據(jù)后且所述數(shù)據(jù)是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),將所述數(shù)據(jù)按位取反后作為應(yīng)答發(fā)送給主機(jī)的方法,實(shí)現(xiàn)了準(zhǔn)確、快捷地恢復(fù)數(shù)據(jù)錯(cuò)位、完成數(shù)據(jù)對(duì)齊的有益效果。參照?qǐng)D4,圖4是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置一實(shí)施例結(jié)構(gòu)示意圖。如圖 4所示,本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置包括從數(shù)據(jù)發(fā)送模塊01,用于發(fā)送測(cè)試數(shù)據(jù)給主機(jī);主數(shù)據(jù)收發(fā)模塊02,用于接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;從數(shù)據(jù)應(yīng)答模塊03,用于接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);主數(shù)據(jù)對(duì)齊模塊04,用于當(dāng)所述應(yīng)答是所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊。當(dāng)出現(xiàn)通訊異常、數(shù)據(jù)錯(cuò)位時(shí),從機(jī)將測(cè)試數(shù)據(jù)OlH裝載到數(shù)據(jù)緩沖寄存器中,當(dāng)從機(jī)的數(shù)據(jù)完全被主機(jī)讀取后,再向數(shù)據(jù)緩沖寄存器中裝載所述測(cè)試數(shù)據(jù)01H。從數(shù)據(jù)發(fā)送模塊01將所述測(cè)試數(shù)據(jù)OlH發(fā)送給主機(jī),主數(shù)據(jù)收發(fā)模塊02接收從數(shù)據(jù)發(fā)送模塊01發(fā)送的測(cè)試數(shù)據(jù),并讀取從機(jī)發(fā)送的數(shù)據(jù)端口電平,同時(shí)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。具體地,主數(shù)據(jù)收發(fā)模塊02每發(fā)送一個(gè)時(shí)鐘脈沖,就讀取一次所述數(shù)據(jù)端口的狀態(tài),直到讀取兩次所述數(shù)據(jù)端口為高電平狀態(tài)的時(shí)鐘間隔是7個(gè)時(shí)鐘周期時(shí),再發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),主數(shù)據(jù)對(duì)齊模塊04等待從機(jī)應(yīng)答。在一優(yōu)選實(shí)施例中,所述主數(shù)據(jù)對(duì)齊模塊04等待從機(jī)應(yīng)答的時(shí)間為10ms。所述主數(shù)據(jù)收發(fā)模塊02發(fā)送的校驗(yàn)數(shù)據(jù)可以根據(jù)需要任意設(shè)置,為了較為準(zhǔn)確、 快捷的恢復(fù)錯(cuò)位數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)對(duì)齊,所述校驗(yàn)數(shù)據(jù)一般選取高低位間隔設(shè)置的數(shù)據(jù)。在一優(yōu)選的實(shí)施例中,所述主數(shù)據(jù)收發(fā)模塊02發(fā)送的校驗(yàn)數(shù)據(jù)為A5H。從數(shù)據(jù)應(yīng)答模塊03接收所述主數(shù)據(jù)收發(fā)模塊02發(fā)送的校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī)。主數(shù)據(jù)對(duì)齊模塊04判斷從機(jī)發(fā)送的應(yīng)答是否為所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù),在一優(yōu)選實(shí)施例中,所述主數(shù)據(jù)收發(fā)模塊02發(fā)送的校驗(yàn)數(shù)據(jù)A5H按位取反后得到的所述應(yīng)答為5AH。若主數(shù)據(jù)對(duì)齊模塊04接收到的所述應(yīng)答為5AH,則響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊;若主數(shù)據(jù)對(duì)齊模塊04接收到的所述應(yīng)答不是5AH,則主數(shù)據(jù)收發(fā)模塊02接收從機(jī)發(fā)送的測(cè)試數(shù)據(jù)后,繼續(xù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),直至主數(shù)據(jù)對(duì)齊模塊04接收到的所述從數(shù)據(jù)應(yīng)答模塊03發(fā)送的應(yīng)答是所述主數(shù)據(jù)收發(fā)模塊02發(fā)送的校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù),完成數(shù)據(jù)對(duì)齊。本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置,通過采用當(dāng)從機(jī)發(fā)出的應(yīng)答是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),主機(jī)響應(yīng)從機(jī)應(yīng)答完成數(shù)據(jù)對(duì)齊的方法,實(shí)現(xiàn)了主機(jī)在短時(shí)間內(nèi)較為快捷地恢復(fù)錯(cuò)位數(shù)據(jù)并完成數(shù)據(jù)對(duì)齊的有益效果。參照?qǐng)D5,圖5是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置中主數(shù)據(jù)收發(fā)模塊一實(shí)施例結(jié)構(gòu)示意圖。如圖5所示,本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置中,主數(shù)據(jù)收發(fā)模塊02具體包括主數(shù)據(jù)處理單元021,用于將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零;主數(shù)據(jù)讀取單元022,用于讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平;主數(shù)據(jù)計(jì)數(shù)單元023,用于在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是高電平時(shí),計(jì)數(shù)器的值自動(dòng)加I ;主數(shù)據(jù)發(fā)送單元024,用于在所述計(jì)數(shù)器的值是8時(shí),主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。主數(shù)據(jù)收發(fā)模塊02在接收所述測(cè)試數(shù)據(jù)之前,主數(shù)據(jù)處理單元021首先要將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零,即Counter = O。主數(shù)據(jù)讀取單元022發(fā)送時(shí)鐘脈沖,并讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口的電平;主數(shù)據(jù)讀取單元022每發(fā)送一個(gè)時(shí)鐘脈沖, 就讀取一次所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口的電平,同時(shí)判斷在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是否為高電平。當(dāng)在I個(gè)時(shí)鐘周期內(nèi),所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是高電平時(shí),主數(shù)據(jù)計(jì)數(shù)單元023中計(jì)數(shù)器的值自動(dòng)加I ;當(dāng)計(jì)數(shù)器的值為8時(shí),即主數(shù)據(jù)讀取單元022讀取兩次所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口為高電平狀態(tài)的時(shí)鐘間隔是7個(gè)時(shí)鐘周期時(shí),主數(shù)據(jù)發(fā)送單元024發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。若在主數(shù)據(jù)讀取單元022發(fā)送一個(gè)時(shí)鐘脈沖后,所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口不是高電平,則主數(shù)據(jù)讀取單元022繼續(xù)發(fā)送脈沖,并讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口的電平。若計(jì)數(shù)器的值不是8,則主數(shù)據(jù)計(jì)數(shù)單元023將計(jì)數(shù)器清零,返回主數(shù)據(jù)讀取單元022繼續(xù)執(zhí)行主數(shù)據(jù)讀取單元022發(fā)送時(shí)鐘脈沖,并讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平。本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置通過主數(shù)據(jù)收發(fā)模塊02接收測(cè)試數(shù)據(jù)并在讀取兩次所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口為高電平狀態(tài)的時(shí)鐘間隔是7個(gè)時(shí)鐘周期時(shí),發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)的方法,實(shí)現(xiàn)了在較短時(shí)間快速恢復(fù)錯(cuò)位數(shù)據(jù)、完成數(shù)據(jù)對(duì)齊的有益效果。參照?qǐng)D6,圖6是本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置中從數(shù)據(jù)應(yīng)答模塊一實(shí)施例結(jié)構(gòu)示意圖。如圖6所示,本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置中,從數(shù)據(jù)應(yīng)答模塊03 具體包括從數(shù)據(jù)接收單元031,用于接收數(shù)據(jù)并在所接收數(shù)據(jù)的格式正確時(shí),判斷所接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);從數(shù)據(jù)應(yīng)答單元032,用于在所接收的數(shù)據(jù)是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。當(dāng)通訊異常,出現(xiàn)數(shù)據(jù)錯(cuò)位時(shí),從機(jī)將測(cè)試數(shù)據(jù)OlH裝載到數(shù)據(jù)緩沖寄存器中,從數(shù)據(jù)接收單元031接收數(shù)據(jù)并判斷所接收到的數(shù)據(jù)格式是否正確,即判斷所接收的數(shù)據(jù)是否為一個(gè)字節(jié)的數(shù)據(jù),具體地,判斷所接收的數(shù)據(jù)是否為8個(gè)bit (位)。若從數(shù)據(jù)接收單元031所接收的數(shù)據(jù)是8個(gè)bit,則判斷所述接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);若從數(shù)據(jù)接收單元031接收的所述數(shù)據(jù)是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù),則從數(shù)據(jù)應(yīng)答單元032將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。具體地,在一優(yōu)選的實(shí)施例中,所述從數(shù)據(jù)接收單元031接收的主數(shù)據(jù)發(fā)送單元024發(fā)送的校驗(yàn)數(shù)據(jù)為A5H,所述從數(shù)據(jù)接收單元031接收的校驗(yàn)數(shù)據(jù)A5H為十六進(jìn)制表達(dá)方式,將所述十六進(jìn)制表達(dá)方式轉(zhuǎn)換為二進(jìn)制表達(dá)方式且高低位不變,即所述從數(shù)據(jù)接收單元031接收的校驗(yàn)數(shù)據(jù)A5H轉(zhuǎn)換為二進(jìn)制表達(dá)方式為10100101 ;從數(shù)據(jù)應(yīng)答單元032將所述二進(jìn)制表達(dá)方式的校驗(yàn)數(shù)據(jù)10100101 按位取反,即得到按位取反后的二進(jìn)制數(shù)據(jù)01011010,再將所述按位取反后的二進(jìn)制數(shù)據(jù)01011010轉(zhuǎn)換為十六進(jìn)制表達(dá)方式,即為5AH。從數(shù)據(jù)應(yīng)答單元032將所述按位取反后的數(shù)據(jù)5AH作為應(yīng)答發(fā)送給主機(jī)。若從數(shù)據(jù)接收單元031所接收的數(shù)據(jù)不是一個(gè)字節(jié)的數(shù)據(jù), 即所接收的數(shù)據(jù)不是8個(gè)Mt,則從數(shù)據(jù)接收單元031繼續(xù)接收所述校驗(yàn)數(shù)據(jù)并判斷所接收的數(shù)據(jù)是否為一個(gè)字節(jié)的數(shù)據(jù)。在從數(shù)據(jù)接收單元031所接收的數(shù)據(jù)是一個(gè)字節(jié)的數(shù)據(jù)但不是所述主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),在從機(jī)的數(shù)據(jù)緩沖寄存器中所裝載的測(cè)試數(shù)據(jù)OlH全部被主機(jī)讀取后,繼續(xù)裝載測(cè)試數(shù)據(jù)OlH到數(shù)據(jù)緩沖寄存器。本發(fā)明串口同步通訊數(shù)據(jù)對(duì)齊的裝置通過判斷從機(jī)接收的數(shù)據(jù)是一個(gè)字節(jié)的數(shù)據(jù)且所述數(shù)據(jù)是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),將所述數(shù)據(jù)按位取反后作為應(yīng)答發(fā)送給主機(jī)的方法,實(shí)現(xiàn)了準(zhǔn)確、快捷地恢復(fù)數(shù)據(jù)錯(cuò)位、完成數(shù)據(jù)對(duì)齊的有益效果。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制其專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
      權(quán)利要求
      1.一種串口同步通訊數(shù)據(jù)對(duì)齊的方法,其特征在于,包括以下步驟從機(jī)發(fā)送測(cè)試數(shù)據(jù)給主機(jī);主機(jī)接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;從機(jī)接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);當(dāng)所述應(yīng)答是所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),主機(jī)響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊。
      2.根據(jù)權(quán)利要求I所述的串口同步通訊數(shù)據(jù)對(duì)齊的方法,其特征在于,所述主機(jī)接收測(cè)試數(shù)據(jù)并根據(jù)所述測(cè)試數(shù)據(jù)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)的步驟具體包括主機(jī)將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零;主機(jī)讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平;判斷在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是否為高電平;若是,則計(jì)數(shù)器的值自動(dòng)加I ;判斷所述計(jì)數(shù)器的值是否為8 ;若是,則主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。
      3.根據(jù)權(quán)利要求I所述的串口同步通訊數(shù)據(jù)對(duì)齊的方法,其特征在于,所述從機(jī)接收所述校驗(yàn)數(shù)據(jù)并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)出應(yīng)答的步驟具體包括從機(jī)接收數(shù)據(jù)并判斷所接收的數(shù)據(jù)格式是否正確;若是,則判斷所接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);若是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù),則將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。
      4.根據(jù)權(quán)利要求I所述的串口同步通訊數(shù)據(jù)對(duì)齊的方法,其特征在于,所述從機(jī)發(fā)送測(cè)試數(shù)據(jù)給主機(jī)的測(cè)試數(shù)據(jù)為01H。
      5.根據(jù)權(quán)利要求I所述的串口同步通訊數(shù)據(jù)對(duì)齊的方法,其特征在于,所述主機(jī)與從機(jī)進(jìn)行數(shù)據(jù)處理是在同一時(shí)鐘信號(hào)下同步完成的。
      6.一種串口同步通訊數(shù)據(jù)對(duì)齊的裝置,其特征在于,包括從數(shù)據(jù)發(fā)送模塊,用于發(fā)送測(cè)試數(shù)據(jù)給主機(jī);主數(shù)據(jù)收發(fā)模塊,用于接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;從數(shù)據(jù)應(yīng)答模塊,用于接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);主數(shù)據(jù)對(duì)齊模塊,用于當(dāng)所述應(yīng)答是所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊。
      7.根據(jù)權(quán)利要求6所述的串口同步通訊數(shù)據(jù)對(duì)齊的裝置,其特征在于,所述主數(shù)據(jù)收發(fā)模塊包括主數(shù)據(jù)處理單元,用于將數(shù)據(jù)輸出端口置為高電平,同時(shí)將計(jì)數(shù)器清零;主數(shù)據(jù)讀取單元,用于讀取所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口電平;主數(shù)據(jù)計(jì)數(shù)單元,用于在I個(gè)時(shí)鐘周期內(nèi)所述測(cè)試數(shù)據(jù)的數(shù)據(jù)端口是高電平時(shí),計(jì)數(shù)器的值自動(dòng)加I ;主數(shù)據(jù)發(fā)送單元,用于在所述計(jì)數(shù)器的值是8時(shí),主機(jī)發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī)。
      8.根據(jù)權(quán)利要求6所述的串口同步通訊數(shù)據(jù)對(duì)齊的裝置,其特征在于,所述從數(shù)據(jù)應(yīng)答模塊包括從數(shù)據(jù)接收單元,用于接收數(shù)據(jù)并在所接收數(shù)據(jù)的格式正確時(shí),判斷所接收的數(shù)據(jù)是否為主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù);從數(shù)據(jù)應(yīng)答單元,用于在所接收的數(shù)據(jù)是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)時(shí),將所述校驗(yàn)數(shù)據(jù)按位取反并將取反后得到的數(shù)據(jù)發(fā)送給主機(jī)。
      9.根據(jù)權(quán)利要求6所述的串口同步通訊數(shù)據(jù)對(duì)齊的裝置,其特征在于,所述從數(shù)據(jù)發(fā)送模塊中所述發(fā)送的測(cè)試數(shù)據(jù)為01H。
      10.根據(jù)權(quán)利要求6所述的串口同步通訊數(shù)據(jù)對(duì)齊的裝置,其特征在于,所述主機(jī)與從機(jī)進(jìn)行數(shù)據(jù)處理是在同一時(shí)鐘信號(hào)下同步完成的。
      全文摘要
      本發(fā)明公開一種同步通訊數(shù)據(jù)對(duì)齊的方法,該方法包括以下步驟從機(jī)發(fā)送測(cè)試數(shù)據(jù)給主機(jī);主機(jī)接收所述測(cè)試數(shù)據(jù)后發(fā)送校驗(yàn)數(shù)據(jù)給從機(jī),等待從機(jī)應(yīng)答;從機(jī)接收所述校驗(yàn)數(shù)據(jù),并根據(jù)所述校驗(yàn)數(shù)據(jù)發(fā)送應(yīng)答給主機(jī);當(dāng)所述應(yīng)答是所述校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),主機(jī)響應(yīng)所述應(yīng)答,完成數(shù)據(jù)對(duì)齊。本發(fā)明通過主機(jī)兩次讀取從機(jī)發(fā)送的測(cè)試數(shù)據(jù)的數(shù)據(jù)端口狀態(tài)為高電平的時(shí)鐘間隔為7個(gè)時(shí)鐘周期,且當(dāng)從機(jī)發(fā)出的應(yīng)答是主機(jī)發(fā)送的校驗(yàn)數(shù)據(jù)按位取反后的數(shù)據(jù)時(shí),主機(jī)響應(yīng)從機(jī)應(yīng)答完成數(shù)據(jù)對(duì)齊的方法,實(shí)現(xiàn)了主機(jī)快捷、準(zhǔn)確地恢復(fù)錯(cuò)位數(shù)據(jù)并完成數(shù)據(jù)對(duì)齊的有益效果。
      文檔編號(hào)G06F13/38GK102591739SQ20121000231
      公開日2012年7月18日 申請(qǐng)日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
      發(fā)明者寧榮彬, 封毅 申請(qǐng)人:深圳市沛城電子科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1