1、ASK調(diào)制:
“幅移鍵控”又稱為“振幅鍵控”,也有稱為“開關(guān)鍵控”(通斷鍵控),所以又記作OOK信號。ASK是一種相對簡單的調(diào)制方式。幅移鍵控(ASK)相當(dāng)于模擬信號中的調(diào)幅,只不過與載頻信號相乘的是二進(jìn)制數(shù)碼而已。幅移就是把頻率、相位作為常量,而把振幅作為變量,信息比特是通過載波的幅度來傳遞的。二進(jìn)制振幅鍵控(2ASK), 由于調(diào)制信號只有0或1兩個電平,相乘的結(jié)果相當(dāng)于將載頻或者關(guān)斷,或者接通,它的實際意義是當(dāng)調(diào)制的數(shù)字信號為“1”時,傳輸載波;當(dāng)調(diào)制的數(shù)字信號為“0”時,不傳輸載波。一般載波信號用余弦信號,而調(diào)制信號是把數(shù)字序列轉(zhuǎn)換成單極性的基帶矩形脈沖序列,而這個通斷鍵控的作用就是把這個輸出與載波相乘,就可以把頻譜搬移到載波頻率附近。
2、幾個周期:
2.1、時鐘周期:也稱為振蕩周期或晶振周期,定義為時鐘頻率的倒數(shù),即晶振的振蕩頻率的倒數(shù),計為:T(時)=1/f(osc)。時鐘周期是計算機(jī)中最基本的、最小的時間單位。在一個時鐘周期內(nèi),CPU僅完成一個最基本的動作。對于某種單片機(jī),若采用了1MHZ的時鐘頻率,則時鐘周期為1us。
2.2、狀態(tài)周期:狀態(tài)周期是振蕩周期的二倍。振蕩周期也稱為晶振周期,振蕩周期是單片機(jī)的基本時間單位。振蕩脈沖經(jīng)二分頻成為時鐘信號,時鐘信號的周期稱為狀態(tài)周期。若時鐘晶振的振蕩頻率為fosc,則時鐘信號的狀態(tài)周期Tosc=(1/fosc)*2。(即為振蕩頻率的倒數(shù)的2倍)。例如:晶振頻率為12MHZ,則時鐘周期Tosc=(1/12us)*2。
2.3、機(jī)器周期:單片機(jī)的基本操作周期。在計算機(jī)中,為了便于管理,常把一條指令的執(zhí)行過程劃分為若干個階段,每一階段完成一項工作。例如,取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。一個操作周期內(nèi),單片機(jī)完成一項基本操作。
2.4、指令周期:執(zhí)行一條指令所需要的時間,一般由若干個機(jī)器周期組成。指令不同,所需的機(jī)器周期數(shù)也不同。對于一些簡單的的單字節(jié)指令,在取指令周期中,指令取出到指令寄存器后,立即譯碼執(zhí)行,不再需要其它的機(jī)器周期。對于一些比較復(fù)雜的指令,例如轉(zhuǎn)移指令、乘法指令,則需要兩個或者兩個以上的機(jī)器周期。
綜上所述:一個機(jī)器周期 = 6個狀態(tài)周期 = 12個時鐘周期。
3、位碼:
紅外編碼波形的基本單位,為分AD(地址碼、數(shù)據(jù)碼)位和SYNC(同步碼)位,每“位”波形由兩個脈沖周期構(gòu)成,每個脈沖周期含有16個時鐘周期。位碼使用兩個脈沖信號表示一個編碼值,其中,兩個連續(xù)窄脈沖表示編碼值“0”;兩個連續(xù)寬脈沖表示編碼值“1”;一個窄脈沖和一個寬脈沖表示“F”,也就是地址碼的“懸空”。即每個位碼bit用2bit表示:00 或01或10表示0碼;11表示1碼。
如下圖所示,編碼芯片PT2262發(fā)出的編碼信號經(jīng)過整形電路之后得到的脈沖波形圖。由:地址碼、數(shù)據(jù)碼、同步碼組成。地址碼和數(shù)據(jù)碼都用寬度不同的脈沖來表示,兩個窄脈沖表示“0”; 兩個寬脈沖表示“1”; 一個窄脈沖和一個寬脈沖表示“F”,也就是地址碼的“懸空”;同步碼為時間較長的低電平間隔,下圖為PT2262編碼圖:
如上圖,發(fā)射端每發(fā)送一次信號都會攜帶多組編碼字碼,每段編碼字碼值相同,二進(jìn)制值為0B010101010101010100001100,對應(yīng)的十六進(jìn)制碼值為:0x55550C。從圖中可以看出,發(fā)送碼的周期是相等的,只是脈沖寬度不同(寬脈沖與窄脈沖之比為3:1)。而同步碼的低電平時間約為這個周期的8倍。
解碼的關(guān)鍵是識別同步碼,然后對后面的字碼的脈沖寬度進(jìn)行識別,就可以解出這個編碼。PT2262每次發(fā)射時至少發(fā)射4組字碼,每組字碼由25個脈沖組成,前24個脈沖為地址和數(shù)據(jù),最后一個脈沖和一低電平間隔組成同步碼。
4、單片機(jī)解碼思路:
下面我們來說說如何用51單片機(jī)對其進(jìn)行解碼。由于程序結(jié)構(gòu)不復(fù)雜,就不再畫程序流程圖了。
紅外線經(jīng)一體化接收模塊解碼后送到單片機(jī)的外部中斷0,單片機(jī)設(shè)置外部中斷下降沿觸發(fā)(即外部中斷0為跳變沿觸發(fā)方式,從高到低的負(fù)跳變觸發(fā)進(jìn)入中斷處理函數(shù)進(jìn)行解碼操作);
首先我們把T0設(shè)置為16位定時器模式,工作在定時狀態(tài),初始化值為0,在晶振的工作頻率為11.0592MHz時計滿最大值計數(shù)值的時間為:71111us。由于同步碼周期與地址數(shù)據(jù)周期都遠(yuǎn)小于定時器0的定時時間,所在定時器0正常工作時,是不會溢出的;
T1用作延時,設(shè)置其定時為1ms(本示例中沒有用到T1功能);
在EX0=1(外部中斷0啟動)并且EA=1(使能所有中斷)后,當(dāng)下降沿到來時進(jìn)入到中斷處理函數(shù),T0在TR0的控制下啟動與停止計時;
當(dāng)接收到下降沿后,先判斷當(dāng)前的電平狀態(tài),檢測到是低電平時則把T0計時器歸零開始計數(shù)低電平的時間寬度,電平狀態(tài)發(fā)生變化時停止計數(shù)。取TH0和TL0之和即可根據(jù)該低電平的時間寬度值來識別是否為同步碼。只有先識別出同步碼,才開始接收后續(xù)脈沖數(shù)據(jù)進(jìn)行24位解碼操作。
判斷電平寬度,檢測是否為同步碼時,事實上超過10ms即有可能為同步碼。初步找出同步碼后,根據(jù)同步碼低電平寬度取得寬脈沖低電平寬度值,根據(jù)同步碼低電平寬度取得窄脈沖低電平寬度值,由上面的PT2262編碼格式圖可以看出,同步碼低電平持續(xù)時間是寬脈沖低電平持續(xù)時間的32倍,是窄脈沖低電平持續(xù)時間的10(或11)倍,后續(xù)的24位數(shù)據(jù)的寬、窄脈沖低電平持續(xù)時間寬度進(jìn)行比較,滿足一定的范圍時,即可解析出發(fā)射端送出的編碼。
注意:因為生產(chǎn)接收模塊的廠家不同,標(biāo)準(zhǔn)不一,我遇到過有的模塊把接收信號反向了,這時就需要找尋時間寬度較長的高電平來初步識別同步碼了。
以下為示例代碼說明部分:
/*******************
* 文件名:Decode.c (zqjun@HK 2014-05)
* 描 述:用一個外部中斷IO腳配合定時器0實現(xiàn)對2262系列編碼信號進(jìn)行軟解碼, PT2262的輸出信號經(jīng)LM358整形放大后由單片機(jī)P3.2口輸入,作為單片機(jī)的外部中斷源。
* 編 碼:A0 -- A11 中的每bit用2bit表示:0碼:00 ;1碼:11
* 硬 件:PT2262發(fā)射模塊、LM358+R25.接收模塊、STC89C52RC單片機(jī)
* 晶 振:11.0592MHz
* 說 明:
1、PT2262輸出編碼包括8位地址碼、4位數(shù)據(jù)碼、1位同步碼,共13位,順序:A0 A1 -- A10 A11 + 同步碼 + A0 A1 -- A10 A11 + 同步碼,連續(xù)發(fā)四次。
2、四個振蕩周期為1個編碼計時單位,記作T,除同步碼外,編碼中只有2種類別的組合脈沖取名長脈沖和短脈沖,其中:長脈沖由3T高電平、1T低電平組成;短脈沖由1T高電平、3T低電平組成。
3、同步碼,由1T高電平31T低電平組合(實際測試同步碼低電平寬度基本在10ms以上)。
4、只需測量低電平或者高電平長短,即可知是長還是短脈沖,超過12T時間沒有脈沖變化就有可能是同步碼。
PT2262軟件解碼的單片機(jī)程序
PT2262/2272是一種CMOS工藝制造的低功耗低價位通用編解碼電路,PT2262/2272最多可有12位(A0-A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441地址碼,PT2262最多可有6位(D0-D5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無線遙控發(fā)射電路。編碼芯片PT2262編碼信號是由地址碼、數(shù)據(jù)碼、同步碼組成一個完整的碼字,從17腳輸出到射頻發(fā)射模塊的數(shù)據(jù)輸入端發(fā)射出去。
射頻接收模塊接收后送到解碼芯片PT2272,其地址碼經(jīng)過三次比較核對后,PT2272的VT腳才輸出高電平,與此同時與PT2262相應(yīng)的數(shù)據(jù)腳也輸出高電平,如果PT2262連續(xù)發(fā)送編碼信號,PT2272第17腳和相應(yīng)的數(shù)據(jù)腳便連續(xù)輸出高電平。PT2262停止發(fā)送編碼信號,PT2272的VT端便恢復(fù)為低電平狀態(tài)。高頻發(fā)射電路完全收控于PT2262的17腳輸出的數(shù)字信號,從而對高頻電路完成幅度鍵控(ASK調(diào)制)相當(dāng)于調(diào)制度為100%的調(diào)幅。
單片機(jī)解碼電路
單片機(jī)解碼電路由128*64液晶顯示屏,AT89C51單片機(jī),AT24C512存儲器,CD40106,315M收發(fā)模塊和433M收發(fā)模塊組成。液晶顯示屏用于顯示參數(shù)和解碼后的結(jié)果,存儲器用于保存解碼數(shù)據(jù),CD40106由六個施密特觸發(fā)器電路組成。每個電路均為在兩輸入端具有施密特觸發(fā)器功能的反相器,CD40106用于改善波形并對波形反相的作用,因為大部分無線遙控器都是采用315MHZ和433Mhz的無線電頻率,所以采用了這2種頻率的收發(fā)模塊,用于接收待解碼的無線電信號,實物如下圖。
集成編碼PT2262解碼器設(shè)計
2、 硬件電路
2.1、 發(fā)射電路
發(fā)射電路由PT2262編碼器和無線發(fā)射模塊組成,如圖2所示。當(dāng)PT2262和無線發(fā)射模塊同時上電時(這里用開關(guān)S1代替,實際使用中可以加入控制電路),設(shè)定的地址碼和數(shù)據(jù)碼與固定的同步碼組成一組編碼從17腳串行輸出到315 MHz的無線數(shù)據(jù)發(fā)送模塊。振蕩電阻Rosc用來調(diào)節(jié)編碼發(fā)射頻率,適當(dāng)調(diào)高電路工作電源VCC可以增大發(fā)射距離。12位編碼共531 441種組合可以滿足各種智能控制和低速、少數(shù)據(jù)量、短距離數(shù)據(jù)通信。
2.2 、接收電路
接收電路由無線接收模塊,信號變換模塊和89C51單片機(jī)組成。無線接收模塊集無線接收、解調(diào)、放大、整形于一體,并能輸出與TTL電平信號兼容的數(shù)字信號。信號變換模塊主要完成信號隔離、編碼反相、為單片機(jī)提供中斷信號功能,如圖3所示。
當(dāng)接收到編碼信號后,編碼信號反相后送到單片機(jī)的P0口進(jìn)行解碼,同時在INT端會產(chǎn)生下降沿,并在整個信號接收過程中保持低電平,當(dāng)發(fā)送端停止發(fā)送編碼信號后,INT回到高電平,INT端口信號為單片機(jī)解碼提供中斷信號。89C51單片機(jī)完成軟件解碼和控制外部執(zhí)行電路功能,外接4 MHz晶體振蕩器,如圖4所示。由于采用中斷方式判斷有無發(fā)射信號到來,從而大大減少了單片機(jī)處理開銷,降低了功耗,也提高了抗干擾性能。
3 、解碼原理
3.1、 波形分析
PT2262每次發(fā)射時至少發(fā)射4組碼字,每組字碼之間有同步碼隔開,一個碼字包括同步碼、地址位、和數(shù)據(jù)位,波形振蕩頻率f=2x1000x 16/Rosc kHz,其中Rosc為振蕩電阻。圖5所示的一個碼字從左到右依次由“f”、“f”、“f”、“f”、“f”、“f”、“f”、“f”、“0”、“0”、“1”、“0”、同步碼組成。
3.2、 解碼方法
單片機(jī)軟件解碼時,程序需要判斷出同步碼,然后對后面的碼字進(jìn)行脈沖寬度識別即可。為方便判讀同步碼,在解碼前將信號反相,如圖6所示,上半部分為反相前信號,下半部分為反相后信號。
碼字中的每一位都可以分成兩段,以每段中的高電平寬度來描述碼位,如表1所示。
4 、軟件設(shè)計
解碼過程分為自學(xué)習(xí)和數(shù)據(jù)解析兩個步驟完成。自學(xué)習(xí)實現(xiàn)從一個碼字中檢測出同步碼頭和計算同步碼高電平寬度(反相后),其流程圖如圖7所示。
數(shù)據(jù)解析實現(xiàn)從碼字中解析出地址位和數(shù)據(jù)位的值,解析過程如圖8所示。由于加入了自學(xué)習(xí)過程,程序自動完成同步碼高電平寬度的計算,從而根據(jù)同步碼高電平寬度和數(shù)據(jù)“0”、“1”、“f”的波形高電平寬度之間的倍數(shù)關(guān)系計算出數(shù)據(jù)“0”、“1”、“f”波形的高電平寬度。所以解碼軟件不受PT2262編碼芯片振蕩電阻(Rosc)的限制,即使在未知發(fā)射電路中的Rosc參數(shù)值或者是Rosc參數(shù)值發(fā)生了改變,也不必更改解碼軟件。
-
解碼
+關(guān)注
關(guān)注
0文章
181瀏覽量
27378 -
PT2262
+關(guān)注
關(guān)注
9文章
67瀏覽量
37462
發(fā)布評論請先 登錄
相關(guān)推薦
評論