新四季網

一種電子設備中的紅外實現裝置及其實現方法與流程

2023-06-04 17:13:36


本申請涉及一種電子設備中用於實現紅外遙控和/或紅外學習的裝置及其實現方法。



背景技術:

遙控器(remote control)是一種電子設備的組件,用來在較短距離內無線地操縱電子設備。最常見的遙控器是紅外(infrared,IR)遙控器,通過發射人眼不可見的紅外光信號來操縱電子設備。紅外遙控器通常使用紅外發光二極體(infrared light-emitting diode,IR LED)作為發射元件,所發射的紅外線波長通常在760nm至1500nm之間。典型地,紅外遙控器使用940nm波長的紅外發光二極體作為發射元件,從而最有利於接收。

紅外遙控器形成並發送紅外光信號包括如下過程:紅外遙控器上被按下的按鈕對應一個遙控指令,該遙控指令以紅外控制碼來表示,紅外控制碼被調製在載波信號上形成調製信號,該調製信號作為電信號送往紅外發光二極體對外發送紅外光信號。

電子設備接收並處理紅外光信號包括如下過程:紅外發光二極體從空間接收到紅外光信號並轉換為電信號,該轉換的電信號(對應於調製信號)經過解調去除載波信號得到紅外控制碼,紅外控制碼對應的遙控指令被識別,該遙控指令對應的動作被執行。

請參閱圖1,這是紅外遙控裝置所涉及的一些重要信號,介紹如下。

遙控指令通常為一串二進位數字,例如是八位二進位數10011101。

紅外控制碼是由不同時長的高電平和低電平交替組成的信號。紅外控制碼通常包括引導碼、系統碼、數據碼、系統碼補碼、數據碼補碼、同步碼等。其中的系統碼、數據碼、系統碼補碼、數據碼補碼通常用於表示遙控指令。例如NEC紅外傳輸協議定義:紅外控制碼用持續時間為562.5μs的高電平與持續時間為1687.5μs的低電平的組合表示二進位數字1,用持續時間為562.5μs的高電平與持續時間為562.5μs的低電平的組合表示二進位數字0。

載波信號通常是方波信號,頻率可以是20kHz、30kHz、33kHz、36kHz、38kHz、40kHz、45kHz等。載波信號的佔空比通常在1/21至1/2之間。典型地,載波信號使用頻率為38kHz、佔空比為1/10至1/2之間的方波信號。

調製信號是將紅外控制碼調製在載波信號上形成的,通常採用脈衝調幅(PAM,pulse-amplitude modulation)的信號調製方式。由於紅外控制碼和載波信號都是方波信號,調製信號是用連續的載波信號來表示紅外控制碼中的高電平,用低電平來表示紅外控制碼中的低電平。以最常見的38kHz載波信號為例,每個載波信號的周期是26.3μs,大約21個載波信號可以表示紅外控制碼中的一個持續時間為562.5μs的高電平。

紅外光信號是由發光時間段與不發光時間段交替組成的,其中的發光時間段例如對應於調製信號中的高電平,不發光時間段則對應於調製信號中的低電平。因此紅外光信號與調製信號之間呈現完全對應的關係。

以手機為代表的一些電子設備開始具有紅外遙控功能,有些電子設備還具有紅外學習功能。請參閱圖2,這是一種現有的電子設備中的紅外實現裝置。其中實線表示實現紅外遙控功能的實現過程,虛線表示實現紅外學習功能的實現過程(可選)。圖2所示的電子設備中的紅外實現裝置包括如下硬體結構。

——處理器:可以是電子設備中的中央處理器(CPU),也可以是電子設備中的圖像處理器(GPU)、數位訊號處理器(DSP)等協處理器(coprocessor,也稱輔助處理器)。在紅外遙控時處理器根據用戶操作得到遙控指令並將其轉換為紅外控制碼,在紅外學習時處理器對學到的紅外控制碼進行濾波、規整、與遙控指令相關聯並保存。

——微控制器(MCU,也稱單片機,single-chip microcomputer):在紅外遙控時將紅外控制碼調製到載波上形成調製信號,通常還將該調製信號重複一定次數連續發送給控制電路,在紅外學習時對轉換的電信號進行模數轉換,並從轉換的電信號中解調出紅外控制碼。

所述處理器和微控制器在數據處理上的工作可以按照各自的能力和資源按實際需要調整,這個架構中,關鍵特徵是:處理器將遙控指令轉換為紅外控制碼,對學到的紅外控制器與遙控指令相關聯並保存。微控制器在紅外遙控時負責發送調製信號,在紅外學習時負責將轉換的電信號由模擬信號轉換為數位訊號。而調製和解調工作、以及對紅外控制碼的濾波等工作既可由處理器執行,也可由微控制器執行。

——控制電路:在紅外遙控時將調製信號送往紅外發光二極體對外發送紅外光信號,在紅外學習時將紅外發光二極體從空間接收的紅外光信號轉換的電信號傳送給微控制器。通常,微控制器設置在一塊印刷電路板(PCB)上,控制電路就形成於該印刷電路板中。

——紅外發光二極體:受控於控制電路,用於發射和接收紅外光信號。發射時將模擬電信號轉換為紅外光信號,接收時將紅外光信號轉換為模擬電信號。

上述四個硬體結構中,處理器是借用電子設備的,微控制器、控制電路和紅外發光二極體都需要增設在電子設備內部。這不僅增加了電子設備實現紅外功能的硬體成本,還佔用了電子設備寶貴的機內空間。



技術實現要素:

本申請所要解決的技術問題是提供一種低成本、小體積的電子設備中的紅外實現裝置。為此,本申請還要提供該裝置實現紅外功能的方法。

為解決上述技術問題,本申請提供的電子設備中的紅外實現裝置包括:

——處理器,在紅外遙控時,處理器根據用戶操作得到遙控指令,並將遙控指令轉換為紅外控制碼,還將紅外控制碼調製到載波上形成調製信號並連續發送給控制電路。處理器的I/O接口發送調製信號時對其實現數模轉換。

——控制電路,在紅外遙控時,將調製信號送往紅外發光二極體。

——紅外發光二極體,在紅外遙控時,根據調製信號對外發射紅外光信號。

進一步地,所述處理器採用某一I/O接口連續發送數據時,數據由一串比特表示,所述處理器在數據到達該I/O接口之前先將預計在該I/O接口的停止時段內傳輸的比特位刪除,該I/O接口在發送數據時自動地在停止時段內保持最近發送的比特位對應的電平狀態、或者保持高電平、或者保持低電平。

本申請提供的電子設備中的紅外實現方法為實現紅外遙控功能包括如下步驟:

步驟S401:處理器根據用戶操作得到遙控指令。

步驟S402:處理器將遙控指令轉換為紅外控制碼。

步驟S403:處理器將紅外控制碼調製到載波上形成調製信號。

步驟S404:處理器將調製信號連續傳送給控制電路。

步驟S405:控制電路將調製信號送往紅外發光二極體。;

步驟S406:紅外發光二極體根據接收的調製信號,對外發射紅外光信號。

進一步地,所述步驟S404中,所述連續傳送數據具體包括如下步驟:

步驟S601,將處理器I/O接口的停止時段的時長用該I/O接口的時鐘周期的整數倍表示。

步驟S602:在數據通過處理器I/O接口發送之前,在數字形式的數據中刪除預計是在處理器I/O接口的停止時段傳輸的比特位。

步驟S603:在數據通過處理器I/O接口發送時,該I/O接口自動地在停止時段保持最近發送的比特位對應的電平狀態、或者保持高電平、或者保持低電平。

或者,步驟S601與步驟S602的順序互換或同時進行。

本申請取得的技術效果是所提供的紅外實現裝置在同樣實現紅外遙控和/或紅外學習的效果的前提下,省略了微控制器,從而降低了硬體成本,減少了對電子設備機內空間的佔用。

本申請所提供的紅外實現方法將被省略的微控制器的功能合理分配給處理器,並針對處理器的I/O接口在傳輸及採樣數據時的特性對連續傳輸及採樣數據的方法進行了改進,以便符合傳輸調製信號(或採樣轉換的電信號)的要求。

附圖說明

圖1是紅外遙控裝置所涉及的一些重要信號的示意圖。

圖2是現有的電子設備中的紅外實現裝置的結構示意圖。

圖3是本申請提供的電子設備中的紅外實現裝置的結構示意圖。

圖4是本申請提供的電子設備中的紅外實現方法的實施例一的流程圖。

圖5是本申請提供的電子設備中的紅外實現方法的實施例二的流程圖。

圖6是本申請利用SPI接口連續發送數據的方法流程圖。

圖7是本申請利用SPI接口連續接收數據並對數據進行模數轉換(數位化採樣)的方法流程圖。

圖8是例一條件下SPI接口發送數據的信號示意圖。

圖9是例一條件下SPI接口發送數據發生瞬間抖動的信號示意圖。

圖10是例一條件下SPI接口接收數據的信號示意圖。

圖11是例一條件下SPI接口接收數據發生瞬間抖動的信號示意圖。

圖12是例二條件下SPI接口發送數據的信號示意圖。

圖13是例二條件下SPI接口發送數據發生瞬間抖動的信號示意圖。

具體實施方式

如果要對圖2所示的電子設備中的紅外實現裝置進行優化,在硬體結構方面可以考慮將控制電路的職能併入微控制器從而省略控制電路,或者將微控制器的職能併入處理器從而省略微控制器。從成本考慮,省略微控制器的思路更優一些,如圖3所示。

請參閱圖3,這是本申請提供的電子設備中的紅外實現裝置。其中實線表示實現紅外遙控功能的實現過程,虛線表示實現紅外學習功能的實現過程(可選)。圖3所示的電子設備中的紅外實現裝置包括如下硬體結構。

——處理器:可以是電子設備中的中央處理器,也可以是電子設備中的圖像處理器、數位訊號處理器等協處理器。在紅外遙控時,處理器根據用戶操作得到遙控指令,並將遙控指令轉換為紅外控制碼,還將紅外控制碼調製到載波上形成調製信號,通常還將該調製信號重複一定次數並連續發送給控制電路。在紅外學習時,處理器從控制電路接收轉換的電信號,並對轉換的電信號解調即去除載波得到紅外控制碼和載波特徵(例如載波頻率、載波信號佔空比等),並根據紅外控制碼關聯對應的遙控指令,還保存遙控指令和/或載波特徵。

——控制電路:在紅外遙控時將接收處理器輸出的調製信號,並送往紅外發光二極體對外發送紅外光信號;在紅外學習時對紅外發光二極體從空間接收的紅外光信號轉換的電信號進行傳遞和放大(或僅傳遞),將該轉換的電信號傳送給處理器。通常,控制電路形成於印刷電路板中。

所述處理器內部的各個信號都是以二進位數字的形式保存和處理。在紅外遙控時,處理器向控制電路發送調製信號,處理器的I/O接口將二進位數字形式的調製信號輸出為高低電平,實現數模轉換。在紅外學習時,處理器從控制電路接收轉換的電信號,處理器的I/O接口將模擬形式的轉換的電信號通過數字採樣輸出為二進位數字,實現模數轉換。

——紅外發光二極體:受控於控制電路,用於發射和接收紅外光信號。發射時將模擬電信號轉換為紅外光信號,接收時將紅外光信號轉換為模擬電信號。

本申請提供的電子設備中的紅外實現裝置由於省略了微控制器,那麼原本由微控制器實現的信號調製、連續發送、對發射信號的數模轉換、對接收信號的模數轉換、信號解調等過程就要改由處理器實現。就處理能力而言,電子設備中的處理器完全可以勝任這些工作,比較困難的是連續發送信號和對接收信號採樣從而實現模數轉換,需要選擇處理器的I/O接口。

請參閱圖2,如果具有微控制器,那麼處理器向微控制器發送和/或接收的過程中可以臨時中斷,因此對處理器的I/O接口並沒有嚴格限制。

請參閱圖3,一旦省略微控制器,那麼處理器向控制電路發送和/或接收(採樣)數據時I/O接口最好能夠持續地工作,而不會由於處理器來了更高優先級的任務而臨時中斷這個I/O接口的傳輸。但是由於調製信號整個時長在100ms左右,且紅外接收設備普遍擁有10%左右的誤差容忍能力,所以處理器的I/O接口即使中斷幾十μs,紅外接收設備也能正常識別。

處理器的I/O接口分為串行通信(Serial communication)接口和並行通信(parallel communication)接口兩類,前者每次只能傳輸一個比特(bit)的數據,後者每次能夠傳輸多個比特的數據。由於紅外實現過程要求處理器的I/O接口逐比特傳輸,因此只能選用處理器的串行通信I/O接口。

嚴格地說,處理器的所有I/O接口都不能連續地傳輸數據。為了發送或接收數據,I/O接口通常設有寄存器(register)、緩存(cache)、緩衝器(buffer)等用於臨時存放數據。在發送數據時,I/O接口周期性地從數據緩存區域讀取數據,讀取時就會停止發送數據。在接收數據時,I/O接口周期性地向數據緩存區域寫入數據,寫入時也會停止接收數據。如果將I/O接口連續傳輸數據的時段稱為傳輸時段,停止傳輸數據的時段稱為停止時段,那麼處理器的所有I/O接口在傳輸數據時都是由傳輸時段和停止時段交替組成的。

綜合上面分析,要作為處理器與控制電路之間進行通訊的I/O接口,應該滿足下面一些條件。其中有些條件是必須的,另一些條件則是優選的(可以滿足也可以不滿足)。

必須的條件包括以下三條,滿足任何一條即可。其一,要求在不考慮I/O中斷的前提下I/O接口的停止時段以固定的周期出現(即傳輸時段的時長固定),且停止時段的時長保持一致。此時,所選用的處理器I/O接口的停止時段的時長與傳輸時段的時長之比越小越好,優選該比值在20%以下。其二,要求在不考慮I/O中斷的前提下I/O接口的停止時段的時長與傳輸時段的時長之比足夠小,例如該比值小於或等於1%,此時允許停止時段的周期不固定和/或停止時段的時長不固定。其三,要求I/O接口的停止時段的時長足夠小,例如小於或等於5μs,此時也允許停止時段的周期不固定和/或停止時段的時長不固定。

優選的條件包括以下兩條,滿足任何一條即可。其一,要求I/O接口不能中斷。其二,允許I/O接口中斷,但要求儘量少中斷。此時,如果發生中斷則中斷時長越小越好,優選的中斷時長小於或等於50μs,再優選地中斷時長小於或等於紅外載波信號的周期。

符合上述條件的處理器I/O接口包括SPI(Serial Peripheral Interface,串行外設接口)接口、IIC(Inter-Integrated Circuit,也作I2C)接口、串口(串行接口,serial port)、GPIO(General Purpose Input Output,通用輸入輸出)接口等,這些接口都可能發生中斷。支持DMA(direct memory access,直接內存訪問)的SPI接口更佳,因為不允許發生中斷。

請參閱圖4,這是本申請提供的電子設備中的紅外實現方法的實施例一,僅為紅外遙控功能的實現方法。所述紅外實現方法包括如下步驟:

步驟S401:處理器根據用戶操作得到遙控指令。

步驟S402:處理器將遙控指令轉換為紅外控制碼。

步驟S403:處理器將紅外控制碼調製到載波上形成調製信號。

步驟S404:處理器將調製信號連續發送給控制電路。優選地,處理器還將調製信號重複一定次數後連續傳送給控制電路。處理器的I/O接口實現調製信號的數模轉換。

步驟S405:控制電路將調製信號送往紅外發光二極體。

步驟S406:紅外發光二極體根據接收的調製信號,對外發射紅外光信號。

請參閱圖5,這是本申請提供的電子設備中的紅外實現方法的實施例二,僅為紅外學習功能的實現方法。所述紅外實現方法包括如下步驟:

步驟S501:紅外發光二極體接收紅外光信號並轉換為電信號傳送給控制電路。

步驟S502:控制電路將轉換的電信號傳送給處理器。優選地,控制電路還對轉換的電信號進行放大。

步驟S503:處理器連續接收控制電路傳送來的轉換的電信號。處理器的I/O接口實現轉換的電信號的模數轉換,例如通過數位化採樣。

步驟S504:處理器對轉換的電信號進行解調得到紅外控制碼和載波特徵。

步驟S505:處理器將紅外控制碼關聯對應的遙控指令並保存遙控指令和/或載波特徵。

如果某個電子設備中的紅外實現裝置同時具有紅外遙控功能和紅外學習功能,則在實現紅外遙控功能時參照圖4所示流程,在實現紅外學習功能時參照圖5所示流程。

所述步驟S404和步驟S503中,所述連續發送、連續接收是指在數據傳輸過程中允許被處理器的更高優先級任務中斷,但要求儘量少發生這種中斷,如能不發生這種中斷則更佳。下面將以選用處理器的支持DMA的SPI接口為例,對所述連續發送、連續接收進行具體說明。

SPI接口是一種同步串行通訊接口,用於在一個主設備(master)與一個或多個從設備(slave)之間傳輸數據。應用在圖3所示的硬體結構中,顯然是處理器作為主設備,控制電路作為從設備。

SPI接口具有以下三個特性。

其一,主設備控制著SPI接口的時鐘頻率,通常只能在預置的幾檔SPI時鐘頻率中進行選擇。例如,某處理器設有SPI接口,可供選擇的SPI時鐘頻率包括281.25kHz、562.5kHz、1.125MHz、2.25MHz、4.5MHz、9MHz、18MHz,顯然是由某個晶體振蕩器提供的原始時鐘頻率通過分頻或倍頻手段得到的這幾檔SPI時鐘頻率。

其二,每個SPI時鐘周期,SPI接口傳輸一個比特的數據,連續傳輸一個字(word)的數據後停止傳輸以用於讀取和/或寫入數據。字的長度是指定的,可以是8比特、12比特、16比特、32比特等。傳輸時段的時長是固定的,可以用SPI時鐘周期的整數倍來表示。停止時段的時長也是固定的,可以用SPI時鐘周期的倍數來表示,但不一定是整數倍,通常在1至2個SPI時鐘周期之間。

其三,當SPI接口在發送數據時,在停止時段中,SPI接口保持為最近傳輸的一個比特所對應的電平狀態。例如,SPI接口對外發送某個字的最後一個比特是二進位數字1對應於高電平,那麼在緊跟著的停止時段內也保持高電平,在信號意義上表現為在停止時段內仍發送二進位數字1。當SPI接口在接收數據時,在停止時段中,SPI接口放棄接收數據。例如,SPI接口從外界接收某個字之後,在緊跟著的停止時段內放棄接收數據。

由於SPI接口存在以上三個特性,採用處理器的SPI接口實現所述步驟S404和步驟S503中的連續發送、連續接收就存在著一些需要克服的技術難題,本申請對此也給出了解決方案。

請參閱圖6,本申請提供的採用處理器的SPI接口實現連續發送數據的方法具體包括如下步驟。

步驟S601,將SPI接口的停止時段的時長近似地用SPI時鐘周期的整數倍表示,可以採用累計誤差或者固定誤差的表示方法。

步驟S602:在數據通過SPI接口發送之前,將準備發送的數據根據SPI時鐘周期用一串二進位數字(即比特)表示,刪除預計是在SPI接口的停止時段傳輸的比特位。

所述步驟S601與步驟S602的順序可以互換,或者同時進行。

步驟S603:在數據通過SPI接口發送時,SPI接口自動地在停止時段保持最近所發送的比特位對應的電平狀態。

請參閱圖7,本申請提供的採用處理器的SPI接口實現連續接收數據並對數據進行模數轉換(即連續對模擬數據進行數位化採樣)的方法具體包括如下步驟。

步驟S701,將SPI接口的停止時段的時長近似地用SPI時鐘周期的整數倍表示,可以採用累計誤差或者固定誤差的表示方法。

步驟S702:在數據通過SPI接口接收時,模擬信號的數據連續傳送給SPI接口,SPI接口僅在傳輸時段內接收數據,而自動地在停止時段內放棄接收數據。

步驟S703:在數據通過SPI接口之後,得到的是一串比特表示的轉換的電信號,每個比特位表示的時長就是一個SPI時鐘周期。在預計是SPI接口的停止時段的位置補全被SPI接口放棄接收的電平所對應的比特位,補全方式例如是在停止時段補上SPI接口最近所接收的比特位。

所述步驟S701可以與步驟S702同時進行、或者放到步驟S702之後、或者與步驟S703同時進行。

需要特別強調的是,圖6所示的連續發送數據方法、圖7所示的連續接收數據方法不僅適用於處理器的支持DMA的SPI接口,也適用於處理器的一般SPI接口以及其他I/O接口,只要所用的處理器I/O接口滿足必須的三個條件中的任意一個即可,當然能同時滿足優選的兩個條件中的任意一個更佳。在任何情況下,處理器的I/O接口使用的時鐘頻率都應為載波頻率的兩倍以上。

下面以兩個例子對圖6所示的採用SPI接口連續發送方法、圖7所示的採用SPI接口連續接收方法進行說明。

例一:假設載波信號是頻率為38kHz、佔空比為1/3的方波。SPI時鐘頻率為562.5kHz,字長是8比特。SPI接口的停止時段的時長是1.8個SPI時鐘周期。

請參閱圖8,此時載波信號的周期是26.32μs。每個載波信號周期內高電平持續8.77μs,低電平持續17.54μs。SPI時鐘周期是1.78μs。

首先,由於停止時段的時長不是SPI時鐘周期的整數倍,需要近似地用SPI時鐘周期的整數倍來表示各個停止時段的時長。表1給出了一種累計誤差的表示方法示例。這種累計誤差的表示方式可以描述為:某一個停止時段的時長與之前的累計誤差之和,按照四捨五入取整得到採用SPI時鐘周期來近似地表示該停止時段的時長的數量。本次累計誤差=停止時段的時長+之前的累計誤差-本次採用SPI時鐘周期的數量。

表1:累計誤差的停止時段的表示方法示例(單位均為:SPI時鐘周期)

請參閱表1,假設第n個停止時段的時長加上之前的累積誤差是1.8個SPI時鐘周期,即之前的累積誤差是0,那麼用2個SPI時鐘周期表示第n個停止時段,本次累計誤差是-0.2個SPI時鐘周期。

第n+1個停止時段的時長加上之前的累計誤差後是1.6個SPI時鐘周期,那麼用2個SPI時鐘周期表示第n+1個停止時段,本次累計誤差是-0.4個SPI時鐘周期。

第n+2個停止時段的時長加上之前的累計誤差後是1.4個SPI時鐘周期,那麼用1個SPI時鐘周期表示第n+2個停止時段,本次累計誤差是0.4個SPI時鐘周期。

第n+3個停止時段的時長加上之前的累計誤差後是2.2個SPI時鐘周期,那麼用2個SPI時鐘周期表示,本次累計誤差是0.2個SPI時鐘周期。

第n+4個停止時段的時長加上之前的累計誤差後是2個SPI時鐘周期,那麼用2個SPI時鐘周期表示第n+4個停止時段,本次累計誤差是零。

以此類推。

採用累計誤差的停止時段表示方法,好處是調製信號(或轉換的電信號)的總時長較為穩定。以表1為例,不計算其它誤差時,整個信號通過SPI接口發送或接收後增加或縮短的時長在前例中就是±0.4倍的SPI時鐘周期。採用累計誤差的停止時段表示方法,壞處是調製信號(或轉換的電信號)中的載波周期和載波信號佔空比會發生微弱的抖動。

用SPI時鐘周期的整數倍來表示停止時段,另一種做法是將停止時段直接向上或向下取整為SPI時鐘周期的整數倍。本例中,SPI接口的停止時段的時長是1.8個SPI時鐘周期,例如統一用2個或1個SPI時鐘周期來表示停止時段的時長。這種固定誤差的停止時段表示方法,好處是調製信號(或轉換的電信號)中的載波周期和載波信號佔空比將保持穩定,壞處是整個信號的時長將改變。如果將1.8倍SPI時鐘周期的停止時段均用2個SPI時鐘周期來表示,不考慮其他誤差時,一個108ms的調製信號(或轉換的電信號)將變成110ms以上。

實際操作中,累計誤差或固定誤差的表示方法都可以。考慮到當前市場上的一般紅外接收設備的接收特性,對於同樣的調製信號,採用累計誤差的方法遙控距離要遠一些。

在數據通過SPI接口發送之前,根據SPI時鐘周期將準備發送的數據用一串比特表示。本例中,一個載波信號內的高電平時長相當於4.93個SPI時鐘周期,低電平時長相當於9.87個SPI時鐘周期,因此四捨五入近似地分別用5個、10個SPI時鐘周期來表示一個載波信號內的高、低電平。SPI接口傳輸的是二進位數字1或0,例如分別表示載波信號的高、低電平,那麼理論上需要15位二進位數字才能表示一個載波信號。這種近似地用SPI時鐘周期的整數倍來表示載波信號內的高電平和低電平的方法,也會改變調製信號(或轉換的電信號)的總時長。圖8中第一個完整的載波信號總共耗時15個SPI時鐘周期進行發送,實際傳輸的載波周期就成為26.67μs,相當於實際傳輸的載波頻率變成了37.50kHz,即產生了載波頻率偏差。調製信號是用載波信號來表示的,因此也就用二進位數字表示出了調製信號。

得到用二進位數字(比特)表示的調製信號後,在數據通過SPI接口發送之前,刪除預計是在SPI接口的停止時段內傳輸的比特位。調製信號是由二進位數字表示的,每個二進位數字對應於一個SPI時鐘周期。而前面根據累計誤差或固定誤差的方法,可以確定哪些SPI時鐘周期對應於各個SPI接口的停止時段。

在數據通過SPI接口發送時,SPI接口自動地在停止時段保持為最近所發送的比特位對應的電平狀態,但是自動保持的電平狀態不一定與刪除掉的比特位對應的電平狀態一致。

圖8中發送的載波信號的上升沿U1、U2以及下降沿D1、D2都落在了SPI接口的傳輸時段內,含傳輸時段的起始時刻,不含傳輸時段的結束時刻。所述傳輸時段的起始時刻就是上一個停止時段的結束時刻。所述傳輸時段的結束時刻就是緊跟著的下一個停止時段的起始時刻。此時SPI接口在停止時段內自動保持的電平狀態與刪除掉的比特位對應的電平狀態一致。

如果發送的載波信號的高低電平轉換恰好發生在SPI接口的停止時段內,含停止時段的起始時刻,不含停止時段的結束時刻,那麼由於SPI接口在停止時段內將保持為最近傳輸的比特位對應的電平狀態,此時SPI接口在停止時段內自動保持的電平狀態與刪除掉的比特位對應的電平狀態不一致,這將導致載波頻率瞬間抖動以及載波信號佔空比瞬間抖動。請參閱圖9,此時載波信號的下降沿D1落在了SPI接口的第n個停止時段的起始時刻,載波信號的上升沿U2落在了SPI接口的第n+1個停止時段的起始時刻。此時SPI接口在停止時段內自動保持的電平狀態與刪除掉的比特位對應的電平狀態不一致。為了發送圖9中第一個完整的載波信號,從外界來看,此時通過SPI接口先是在7個SPI時鐘周期內傳輸了高電平相當於傳輸了7位二進位數字1,然後是在10個SPI時鐘周期內傳輸了低電平相當於傳輸了10位二進位數字0。此時通過SPI接口傳輸的載波信號總共耗時17個SPI時鐘周期,實際傳輸的載波周期就成為30.22μs,相當於實際傳輸的載波頻率在這一瞬間變成了33.09kHz,即發生了載波頻率的瞬間抖動。這個實際傳輸的載波信號中,佔空比也在這一瞬間變成了7/17,即發生了載波信號佔空比的瞬間抖動。這種載波頻率和/或載波信號佔空比的瞬間抖動,並不會影響整個調製信號的時長。

在例一的條件下採用SPI接口連續接收數據並對所接收數據進行模數轉換(即連續對模擬數據進行數位化採樣),如圖10、圖11所示。

首先,將SPI接口的停止時段的時長近似地用SPI時鐘周期的整數倍表示,可以採用上述累計誤差或者固定誤差的表示方法。

其次,在數據通過SPI接口接收時,控制電路將模擬形式的轉換的電信號連續傳送給SPI接口。但是SPI接口僅在傳輸時段內接收數據,而在停止時段內放棄接收數據。SPI接口在接收數據時,按照每個SPI時鐘周期看,如果所接收數據在該SPI時鐘周期為高電平就用二進位數字1來表示,如果所接收數據在該SPI時鐘周期為低電平就用二進位數字0來表示。

再次,在數據通過SPI接口之後,得到的是一串二進位數字表示的轉換的電信號,每個比特位表示的時長就是一個SPI時鐘周期。前面根據累計誤差或固定誤差的方法,可以確定哪些SPI時鐘周期對應於各個SPI接口的停止時段。在預計是SPI接口的停止時段的位置補全被SPI接口放棄接收的比特位。補全方式例如是:在預計是SPI接口的停止時段的位置補上SPI接口最近所接收的比特位,但是所補全的比特位不一定與SPI接口放棄接收的電平所對應的比特位一致。補全方式還可以是:總是補上二進位數字1,或者總是補上二進位數字0。

請參閱圖10,如果接收的載波信號的高低電平轉換都落在了SPI接口的傳輸時段內,含傳輸時段的起始時刻,不含傳輸時段的結束時刻,那麼後續補全的比特位與SPI接口在停止時段內放棄接收的電平所對應的比特位一致。

請參閱圖11,如果接收的載波信號的高低電平轉換恰好發生在SPI接口的停止時段內,含停止時段的起始時刻,不含停止時段的結束時刻,那麼後續補全的比特位與SPI接口在停止時段內放棄接收的電平所對應的比特位不一致,這將導致載波頻率瞬間抖動以及載波信號佔空比瞬間抖動。這部分的分析與圖9相同,不再贅述。

例二:現在將SPI時鐘頻率改為2.25MHz,其他條件與例一相同。

請參閱圖12,此時SPI時鐘周期改為了444.44ns。由於停止時段的時長不是SPI時鐘周期的整數倍,也要近似地用SPI時鐘周期的整數倍來表示,可採用累計誤差或固定誤差的方法,不再贅述。

在數據通過SPI接口發送之前,根據SPI時鐘周期將準備發送的數據用一串比特表示。本例中,一個載波信號內的高電平持續時間相當於19.74個SPI時鐘周期,低電平持續時間相當於39.47個SPI時鐘周期,因此四捨五入近似地分別用20個、39個SPI時鐘周期來表示一個載波信號內的高、低電平。調製信號是用載波信號來表示的,因此也就用二進位數字表示出了調製信號。

得到用二進位數字(比特)表示的調製信號後,在數據通過SPI接口發送之前,刪除預計是在SPI接口的停止時段內傳輸的比特位。

在數據通過SPI接口發送時,SPI接口自動地在停止時段保持為最近所發送的比特對應的電平狀態,但是自動保持的電平狀態不一定與刪除掉的比特位對應的電平狀態一致。

圖12中載波信號的上升沿U1、U2以及下降沿D1都落在了SPI接口的傳輸時段內,含傳輸時段的起始時刻,不含傳輸時段的結束時刻,此時SPI接口在停止時段內自動保持的電平狀態與刪除掉的比特位對應的電平狀態一致,因此未發生載波頻率瞬間抖動以及載波信號佔空比瞬間抖動。此時通過SPI接口傳輸的載波信號總共耗時59個SPI時鐘周期,實際傳輸的載波周期就成為26.22μs,相當於實際傳輸的載波頻率變成了38.14kHz,即產生了載波頻率偏差。

請參閱圖13,此時載波信號的上升沿U1落在了SPI接口的第n個停止時段的起始時刻,下降沿D1落在了SPI接口的第n+2個停止時段的起始時刻,上升沿U2落在了SPI接口的第n+6個停止時段內第2個SPI時鐘周期的起始時刻。由於載波信號的高低電平轉換恰好發生在SPI接口的停止時段內,含停止時段的起始時刻,不含停止時段的結束時刻,此時SPI接口在停止時段內自動保持的電平狀態與刪除掉的比特位對應的電平狀態不一致,這將導致載波頻率瞬間抖動以及載波信號佔空比瞬間抖動。為了接收圖13中第一個完整的載波信號,從外界來看,此時通過SPI接口先是在19個SPI時鐘周期內傳輸了高電平相當於傳輸了19位二進位數字1,然後是在39個SPI時鐘周期內傳輸了低電平相當於傳輸了39位二進位數字0。此時通過SPI接口傳輸的載波信號總共耗時58個SPI時鐘周期,實際傳輸的載波周期就成為25.78μs,相當於實際傳輸的載波頻率在這一瞬間變成了38.79kHz,即發生了載波頻率的瞬間抖動。這個實際傳輸的載波信號中,佔空比也在這一瞬間變成了19/58,即發生了載波信號佔空比的瞬間抖動。

在例二的條件下採用SPI接口連續接收數據並對所接收數據進行模數轉換(即連續對模擬數據進行數位化採樣),與例一相同,不再贅述。

比較以上兩個例子可以發現,由於SPI時鐘頻率只能在預置的幾檔中選擇,很難用整數個SPI時鐘周期來表示載波信號,只能近似地四捨五入取整,這使得通過SPI接口傳輸的調製信號(或轉換的電信號)的載波頻率發生了固定的偏差。例一中的SPI時鐘頻率是562.5kHz,載波頻率原本為38kHz,實際傳輸的載波頻率變成了37.50kHz,即載波頻率的偏差率為-1.32%。例二中的SPI時鐘頻率是2.25MHz,載波頻率原本為38kHz,實際傳輸的載波頻率變成了38.14kHz,即載波頻率的偏差率為0.37%。一般而言,SPI時鐘頻率選取得越高,就可以用越多數量的SPI時鐘周期來表示載波信號,載波頻率偏差就越小,代價是SPI時鐘頻率越高則SPI接口需要越大容量的數據緩存區域。

除此以外,由於SPI接口在傳輸數據時由傳輸時段和停止時段交替組成,並且停止時段的時長可以是非整數倍的SPI時鐘周期,這使得通過SPI接口傳輸的調製信號(或轉換的電信號)的整個時長可能發生變化,載波周期和載波信號佔空比也可能發生微弱的抖動。

除此以外,由於SPI接口在發送數據時停止時段內保持為最近傳輸的一個比特位對應的電平狀態,在接收數據時停止時段內放棄接收,這使得通過SPI接口傳輸的調製信號(或轉換的電信號)的載波頻率和/或載波信號佔空比在特定情況下會發生瞬間抖動。所述特定情況是載波信號的上升沿和/或下降沿遇到了SPI接口的停止時段,含停止時段的起始時刻,不含停止時段的結束時刻。例一中的SPI時鐘頻率是562.5kHz,載波頻率原本為38kHz,載波信號佔空比原本為1:3。在圖9所示情況的一瞬間載波頻率變成了33.09kHz,載波信號佔空比變成了7/17,即載波頻率的瞬間抖動率為-12.92%,載波信號佔空比的瞬間抖動率為23.53%。例二中的SPI時鐘頻率是2.25MHz,載波頻率原本為38kHz,載波信號佔空比原本為1:3。在圖13所示情況的一瞬間載波頻率變成了38.79kHz,載波信號佔空比變成了19/58,即載波頻率的瞬間抖動率為2.08%,載波信號佔空比的瞬間抖動率為-1.72%。一般而言,SPI時鐘頻率選取得越高,就可以用越多數量的SPI時鐘周期來表示載波信號,在特定情況下的載波頻率抖動和/或載波信號佔空比抖動就越小,代價也是SPI時鐘頻率越高則SPI接口需要越大容量的數據緩存區域。

通過SPI接口來傳輸調製信號(或轉換的電信號),載波頻率偏差是一直發生的,整個信號的時長有可能會發生變化,載波頻率和載波信號佔空比也是有可能會發生輕微抖動,載波頻率瞬間抖動與載波信號佔空比瞬間抖動還會在特定情況發生時的一瞬間發生的。如果選取合適的SPI時鐘頻率,就能使這些偏差和瞬間抖動都在硬體設備和/或軟體算法可以接受的範圍內,不會影響傳輸結果的準確性,同時又能儘量降低對SPI接口的數據緩存區域的容量要求。特別是如果能使得紅外載波周期為SPI時鐘周期的整數倍或接近整數倍,和/或使得SPI接口的停止時段的時長為SPI時鐘周期的整數倍或接近整數倍,那麼就能使數據傳輸儘可能地保持準確。

以上是以SPI接口為例,詳細分析了採用處理器的SPI接口與控制電路之間如何實現連續傳輸數據,如何克服一些技術難點。基於相同的原理,也可將SPI接口改為串口、IIC接口、GPIO接口等。串口與SPI接口的主要區別在於:其一,串口可能發生中斷。其二,串口在發送數據時,在停止時段內固定為高電平或低電平。那麼採用圖6和圖7所示方法,通過串口發送的數據可能由於中斷而分開,還可能會在停止時段內產生毛刺現象。考慮到調製信號通常重複數次連續發射,紅外接收設備也有一定的容錯能力,根據實驗驗證,採用串口進行連續數據傳輸在紅外實現方法上是可行的,並不會影響紅外遙控效果,但是會使得紅外遙控距離縮短。

以上僅為本申請的優選實施例,並不用於限定本申請。對於本領域的技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本申請的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀