欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于spi的通信方法

文檔序號:9929486閱讀:773來源:國知局
基于spi的通信方法
【技術領域】
[0001]本發(fā)明涉及通信技術的開發(fā),特別涉及基于SPI的通信方法。
【背景技術】
[0002]在對通信速率要求較高時,串行外設接口(SPI,Serial peripheral interface)常常被選用來作為系統(tǒng)級處理器間的通信方式。SPI作為一種高速的、全雙工、同步的通信總線,其通信速率基本可以按照通信雙方處理器的處理速度來設定。SPI采用主從工作方式,即在這種模式下通常有一個主設備和一個或多個從設備。其中,主設備控制數(shù)據(jù)傳輸,從設備配合主設備完成傳輸任務。從硬件資源上,SPI通常采用四線模式進行雙向通信,在整個通信過程中信號線只能由主設備控制,從設備對通信過程沒有控制作用。
[0003]但這種通信方式主要存在如下缺點:1.缺少組幀機制;2.通信過程中沒有指定的數(shù)據(jù)流,缺少確認是否收到數(shù)據(jù)的應答機制;3.無任何校驗,缺少控制傳輸差錯的機制;
4.缺少對數(shù)據(jù)流的控制;5.缺少對數(shù)據(jù)鏈路的維護機制,無建立、維持、釋放的管理機制等。
[0004]為改善上述缺點,現(xiàn)有的研究有的通過增加一條握手信號線用于從設備通知主設備處理結(jié)束?;蛘?,在不增加任何握手信號線的情況下利用SPI全雙工的特點實現(xiàn)一定的協(xié)議來完成通信。即,從設備每次接收到主設備發(fā)過來的一個字節(jié)的數(shù)據(jù)后根據(jù)既定的協(xié)議進行解析處理,并返回一個字節(jié)的數(shù)據(jù)通知當前處理的狀態(tài)。該返回的單字節(jié)數(shù)據(jù)被放于發(fā)送緩沖器中,待主設備發(fā)送下一個字節(jié)的數(shù)據(jù)的同時把上一個從設備返回的字節(jié)讀回去。同時,從設備根據(jù)新接收的數(shù)據(jù)進行相應處理后把下一個要返回的數(shù)據(jù)放于發(fā)送緩沖器中,待主設備來讀取,如此周而復始直至一幀數(shù)據(jù)發(fā)送結(jié)束。
[0005]上述方案中,對于增加握手信號線的情況,在某些情況下受到硬件資源的制約無法增加這樣的信號線,因而其受硬件資源的限制較大。
[0006]而對于上述不增加任何握手信號線的情況,其通信能夠成功的前提是:在主設備開始下一個字節(jié)的傳輸前,從設備已處理好上一個字節(jié)數(shù)據(jù)并準備好表示處理狀態(tài)的返回數(shù)據(jù)。為了使得通信成功,目前的處理方式是:主設備只能在向從設備傳輸前后兩個字節(jié)的數(shù)據(jù)時保持足夠的時間間隔,以確保從設備有充足的時間進行數(shù)據(jù)處理并準備好要返回主設備的數(shù)據(jù)。但是往往主設備很難按照要求的合適的時間間隔傳輸數(shù)據(jù),要么間隔時間過大,大大降低了通信速度,要么時間間隔太小無法滿足要求的時間間隔。另一方面,當從設備負載變化時,要確定一個合理的時間間隔往往是比較困難的。

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

[0007]本發(fā)明解決的問題是提供一種基于SPI的通信方法,既不需要增加任何握手信號線,也不需要在前后數(shù)據(jù)傳輸間留任何的等待時間。
[0008]為了解決上述問題,本發(fā)明提供的基于SPI的通信方法,包括:主從設備初始化,其中主從設備均至少包括移位寄存器;從設備在獲得主設備發(fā)送的起始數(shù)據(jù)后,在其移位寄存器中準備好預設有效數(shù)據(jù)并對起始數(shù)據(jù)進行處理;從設備在后續(xù)每一次獲得主設備發(fā)送的數(shù)據(jù)后,在其移位寄存器中準備好對上一次所獲得的數(shù)據(jù)處理后的返回數(shù)據(jù)并對當前所獲得的數(shù)據(jù)進行處理;主設備在每一次向從設備發(fā)送數(shù)據(jù)期間,在通過由從設備的移位寄存器獲得返回數(shù)據(jù)后繼續(xù)下一次的數(shù)據(jù)發(fā)送。
[0009]與現(xiàn)有技術相比,上述方案具有以下優(yōu)點:在從設備處理完主設備發(fā)送的起始數(shù)據(jù)之前,就預先準備預設有效數(shù)據(jù)來代替對起始數(shù)據(jù)處理后的真實返回數(shù)據(jù),以使得主設備即使立刻發(fā)送下一次數(shù)據(jù)也能夠收到從設備返回的有效數(shù)據(jù)。并且,利用主設備下一次的數(shù)據(jù)發(fā)送時間,給予了從設備充足處理起始數(shù)據(jù)的時間。由此,保證了主設備再下一次進行數(shù)據(jù)發(fā)送時,其可以通過從設備獲得對應起始數(shù)據(jù)的真實返回數(shù)據(jù)。依此類推,使得主設備始終能通過從設備獲得對應其所發(fā)送數(shù)據(jù)的真實返回數(shù)據(jù)。從而,保證了主從設備間通信過程的持續(xù)進行。并且,無需主設備在兩次數(shù)據(jù)傳輸間設置時間間隔,既降低了通信實現(xiàn)的難度,也提高了整體的通信效率。
[0010]此外,由于無需再額外增加一條握手信號線用于從設備對主設備的響應,也無需再增加相應的硬件接口,因此也節(jié)省了硬件資源。
【附圖說明】
[0011]圖1是本發(fā)明基于SPI的通信方法的一種實施方式示意圖;
[0012]圖2是一種典型的基于SPI的主從設備通信結(jié)構(gòu)示意圖;
[0013]圖3是對應圖2中移位寄存器的數(shù)據(jù)傳輸示意圖;
[0014]圖4是根據(jù)本發(fā)明基于SPI的通信方法的一種實施例的主從設備數(shù)據(jù)傳輸實現(xiàn)過程不意圖。
【具體實施方式】
[0015]在下面的描述中,闡述了許多具體細節(jié)以便使所屬技術領域的技術人員更全面地了解本發(fā)明。但是,對于所屬技術領域內(nèi)的技術人員明顯的是,本發(fā)明的實現(xiàn)可不具有這些具體細節(jié)中的一些。此外,應當理解的是,本發(fā)明并不限于所介紹的特定實施例。相反,可以考慮用下面的特征和要素的任意組合來實施本發(fā)明,而無論它們是否涉及不同的實施例。因此,下面的方面、特征、實施例和優(yōu)點僅作說明之用而不應被看作是權利要求的要素或限定,除非在權利要求中明確提出。
[0016]如前述提及的,現(xiàn)有技術為了不增加任何握手信號線而提供的解決方案可能面臨通信失敗的問題。而為了使得通信成功,又不得不設置時間間隔,但顯然并不能很好地解決問題。對此,本發(fā)明的發(fā)明人認為:造成通信失敗的瓶頸在于從設備的處理能力無法滿足“在主設備下一個字節(jié)數(shù)據(jù)傳輸前,準備好表示上一個字節(jié)數(shù)據(jù)處理狀態(tài)的返回數(shù)據(jù)”的要求。而設置時間間隔的方式由于仍然依賴于從設備的處理能力,并不能很好地解決問題。而通過對現(xiàn)有這種解決方案的進一步分析后發(fā)現(xiàn),只要主設備在每一次數(shù)據(jù)發(fā)送完時能夠由從設備處獲得有效數(shù)據(jù),其就會繼續(xù)向從設備發(fā)送數(shù)據(jù),從而通信過程可以繼續(xù)。因此,本發(fā)明的發(fā)明人提出:在從設備的處理能力無法改變的情況下,可以通過在一開始在從設備處預設一個有效數(shù)據(jù)作為響應主設備第一次數(shù)據(jù)發(fā)送的返回數(shù)據(jù),使得主設備可以繼續(xù)第二次數(shù)據(jù)發(fā)送,而利用主設備發(fā)送完第二次數(shù)據(jù)前的一段時間來處理第一次接收的數(shù)據(jù)并得到返回數(shù)據(jù),依此類推,以此來使得通信過程持續(xù)。
[0017]參照圖1所示,根據(jù)本發(fā)明基于SPI的通信方法的一種實施方式,其具體說明如下:
[0018]首先,均至少包括移位寄存器的主從設備各自進行初始化操作。例如,主設備的初始化可以包括準備起始數(shù)據(jù)。
[0019]接下來,主設備開始向從設備發(fā)送起始數(shù)據(jù),在此期間,從設備將其移位寄存器中的初始數(shù)據(jù)返回給主設備。并且,從設備在接收到起始數(shù)據(jù)后先在其移位寄存器中準備好預設有效數(shù)據(jù),然后開始對起始數(shù)據(jù)進行處理。可選地,從設備處理起始數(shù)據(jù)的操作和在其移位寄存器中準備預設有效數(shù)據(jù)的操作也可以是并行執(zhí)行的。
[0020]而對于主設備,如上述的,當主設備發(fā)送完起始數(shù)據(jù)后,其已通過移位寄存器獲得從設備返回的數(shù)據(jù)。主設備收到的該從設備返回數(shù)據(jù)是從設備移位寄存器中的初始數(shù)據(jù),無任何實際的意義,主設備完全可以忽略。
[0021 ] 當主設備準備好后,其會開始向從設備發(fā)送第二次數(shù)據(jù)。此時,從設備已經(jīng)在其移位寄存器中準備好了預設有效數(shù)據(jù)。而利用主設備發(fā)送第二次數(shù)據(jù)的時間,從設備可以處理完起始數(shù)據(jù)。在此期間,從設備將其移位寄存器中的預設有效數(shù)據(jù)返回給主設備。并且,從設備在接收到第二次數(shù)據(jù)后立即在其移位寄存器中準備好對應處理起始數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù),并可以繼續(xù)開始處理所獲得的第二次數(shù)據(jù)。同樣地,準備對應處理起始數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù)和處理第二次數(shù)據(jù)也可以是并行執(zhí)行的。
[0022]而對于主設備,如上述的,當主設備發(fā)送完第二次數(shù)據(jù)后,其已通過移位寄存器獲得從設備返回的預設有效數(shù)據(jù),則當主設備獲得該有效數(shù)據(jù)后,則會開始準備第三次的數(shù)據(jù)發(fā)送。
[0023]當主設備準備好后,其會開始向從設備發(fā)送第三次數(shù)據(jù)。此時,從設備已經(jīng)在其移位寄存器中準備好了對應處理起始數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù)。而利用主設備發(fā)送第三次數(shù)據(jù)的時間,從設備可以處理完第二次數(shù)據(jù)。在此期間,從設備將其移位寄存器中的對應處理起始數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù)返回給主設備。并且,從設備在接收到第三次數(shù)據(jù)后立即在其移位寄存器中準備好對應處理第二次數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù),并可以繼續(xù)開始處理所獲得的第三次數(shù)據(jù)。同樣地,準備對應處理第二次數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù)和處理第三次數(shù)據(jù)也可以是并行執(zhí)行的。
[0024]依此類推,當主設備開始向從設備發(fā)送第N次數(shù)據(jù)時,從設備已經(jīng)在其移位寄存器中準備好了對應處理第N-2次數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù)。從設備利用這段時間可以處理完第N-1次數(shù)據(jù)。在此期間,從設備將其移位寄存器中的對應處理第N-2次數(shù)據(jù)狀態(tài)的真實返回數(shù)據(jù)返回給主設備。并且,從設備在接收到第N次數(shù)據(jù)后立即
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
壶关县| 湘潭市| 庆元县| 荣昌县| 莲花县| 江油市| 麟游县| 淮安市| 奉新县| 龙山县| 突泉县| 丹江口市| 牡丹江市| 桃江县| 磐石市| 乌恰县| 大石桥市| 巴彦淖尔市| 宁都县| 瑞金市| 炎陵县| 航空| 田东县| 花莲市| 虞城县| 琼海市| 永仁县| 贡嘎县| 炉霍县| 陇南市| 思茅市| 长垣县| 凤城市| 阳城县| 桂东县| 沅江市| 博罗县| 仁怀市| 德江县| 沈阳市| 阜康市|