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

PT2262/PT2272編解碼集成電路原理說明
pt2262解碼程序

PT2262單片機(jī)解碼思路和原理

評(píng)論