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