最近為了開發無線資料傳輸專案,看了不少無線資料傳送與接收的資料,其中無線遙控315模組比較便宜和應用比較廣泛,以下是微控制器模擬2272軟體解碼;
在無線遙控領域,pt2262/2272是目前最常用的晶元之一,但由於晶元要求配對使用,在很大程度上影響了該晶元的使用,筆者從pt2262波形特徵入手,結合應用實際,提出軟體解碼的方法和具體措施。
一、概述
pt2262/2272是一種cmos工藝製造的低功耗低價位通用編譯碼電路,是目前在無線通訊電路中作位址編碼識別最常用的晶元之一。pt2262/2272最多可有12位(a0-a11)三態位址端管腳(懸空,接高電平,接低電平),任意組合可提供531441位址碼,pt2262最多可有6位(d0-d5)資料端管腳,設定的位址碼和資料碼從17腳序列輸出。
pt2262/2272必須用相同位址碼配對使用,當需要增加乙個通訊機時,使用者不得不求助於技術人員或廠家來設定相同位址碼,客戶自己設定相對比較麻煩,尤其對不懂電子的人來說。隨著人們對操作的要求越來越高,pt2262/2272的這種配對使用嚴重制約著使用的方便性,人們不斷地要求使用一種無須請教專業人士,無須使用特殊工具,任何人都可以操作的方便的手段來彌補pt2262/2272的缺陷,這就是pt2262軟體解碼。
二、解碼原理
上面是pt2262的一段波形,可以看到一組一組的字碼,每組字碼之間有同步碼隔開,所以我們如果用微控制器軟體解碼時,程式只要判斷出同步碼,然後對後面的字碼進行脈衝寬度識別即可。
2262每次發射時至少發射4組字碼,2272只有在連續兩次檢測到相同的位址碼加資料碼時才會把資料碼中的「1」驅動相應的資料輸出端為高電平和驅動vt端同步為高電平。因為無線發射的特點,第一組字碼非常容易受零電平干擾,往往會產生誤碼,所以程式可以丟棄處理。
下面我們來仔細看一下pt2262的波形特徵:
振盪頻率 f=2*1000*16/rosc(kω) khz 其中rosc為振盪電阻 這裡我們選用的是一種比較常用的頻率f≈10 khz, rosc=3.3mω(以下同)。下圖是振盪頻率與碼位波形的對應關係:同步碼頭波形:
pt2262有三種編碼:0,1,和懸空(表示為f)。 1、 資料「0」傳送的碼位如下: 2、 資料「1」傳送的碼位如下: 3、 資料「f」傳送的碼位如下:
有了以上具體的波形,我們就可以進行軟體解碼了。t2262每次至少傳送4次編碼,首先我們可以通過檢測11ms寬度的同步碼頭,有碼頭才開始進行編碼解碼,無碼頭則繼續等待。當收到碼頭時,還要檢測是否已經收到過碼頭,若無,則丟棄第一次編碼的訊號,以防止誤碼。
從編碼圖中可以看出,每一位碼字都是從低電平開始到高電平,到低電平,再到高電平。為了檢測方便,在接收端我們把編碼訊號進行了180°倒相,使碼位開始的上公升沿轉化為下降沿,這樣當我們使用mcs51系列微控制器解碼時可使用中斷方式及時截獲編碼。從編碼圖中還可以看出,每一位碼字都可以分成兩段,我們以每段中的電平寬度來描述碼位:
碼位 第一段 第二段 數值表示 反碼表示 0 窄 窄 00 11 1 寬 寬 11 00 f 窄 寬 01 10 無效碼 寬 窄 10 01
軟體解碼方法1(反碼): 從第乙個下降沿開始延時700us左右,檢測電平高低,記為a1,再檢測第二個下降沿,延時700us左右,檢測電平高低,記為a2,這樣乙個碼位就可以譯出來了,連續檢測12個碼位。
軟體解碼方法2(反碼): 從第乙個下降沿開始記時,並不斷檢測電平變化,一有電平變化,立即記錄電平寬度b1,再繼續記時直至出現第二個下降沿,記錄兩個下降沿的間隔b2,重複以上步驟,得到b3,b4,判斷b1,b2,b3,b4是否在各自允許的誤差範圍內,是則儲存b1,b3,譯出乙個碼位,否則認為誤碼,丟棄。連續正確檢測12個碼位。
兩種解碼方式各有優缺點如下: 解碼方式 優點 缺點 1 程式簡單,cpu開銷少 解碼精度差 2 程式複雜,cpu開銷大 解碼精度較高
為了獲得較高的解碼精度,我們推薦使用方法2,以避免大量的干擾訊號的誤解碼。
三、參考解碼軟體
說明:add1,add2中為8位位址,dat0中為4位資料 remote: clr tr2 ;探頭訊號檢測子程式 clr receive ; mov dete_loop,#12 ;接收12位編碼 remo0: clr dete_t_over ; mov th2,#0feh ;測第1位電平寬度 mov tl2,#041h ; setb tr2 ; remo1: jb rem,remo2 ;等待出現高電平 jb dete_t_over,remo3 ;限時1500us,超時則認為誤碼 ajmp remo1 ; remo2: mov a,th2 ;測低電平寬度,0ff為寬脈衝,0fe為窄脈衝 cjne a,#0ffh,remo4 ; mov a,tl2 ; clr c ; cjne a,#098h,$+3 ; jnc remo3 ;電平過寬(超過1150us),退出 clr c ; cjne a,#020h,$+3 ; jc remo3 ;電平過窄(小於780us),退出 setb c ; ajmp remo5 ; remo3: ajmp remote_end ; remo4: cjne a,#0feh,remo3 ; mov a,tl2 ; clr c ; cjne a,#0c7h,$+3 ; jnc remo3 ;電平過寬(超過450us),退出 clr c ; cjne a,#060h,$+3 ; jc remo3 ;電平過窄(小於210us),退出 clr c ; remo5: mov a,dat0 ;儲存電平值 rlc a ; mov dat0,a ; mov a,add1 ; rlc a ; mov add1,a ; remo6: jnb rem,remo7 ;等待出現低電平 jb dete_t_over,remo3 ;脈衝下降沿間隔限時1500us,超時則認為誤碼 ajmp remo6 ; remo7: clr tr2 ; clr dete_t_over ; mov a,th2 ; cjne a,#0ffh,rem13 ;脈衝間隔過小 mov a,tl2 ; clr c ; cjne a,#050h,$+3 ; jc rem13 ;電平過窄(小於1200us),退出 mov th2,#0feh ;測第2位電平寬度 mov tl2,#041h ; setb tr2 ; rem11: jb rem,rem12 ;等待出現高電平 jb dete_t_over,rem13 ;限時1500us,超時則認為誤碼 ajmp rem11 ; rem12: mov a,th2 ;測低電平寬度,0fe為寬脈衝,0ff為窄脈衝 cjne a,#0ffh,rem14 ; mov a,tl2 ; clr c ; cjne a,#098h,$+3 ; jnc rem13 ;電平過寬(超過1100us),退出 clr c ; cjne a,#020h,$+3 ; jc rem13 ;電平過窄(小於1000us),退出 setb c ; ajmp rem15 ; rem13: ajmp remote_end ; rem14: cjne a,#0feh,rem13 ; mov a,tl2 ; clr c ; cjne a,#0c7h,$+3 ; jnc rem13 ;電平過寬(超過450us),退出 clr c ; cjne a,#060h,$+3 ; jc rem13 ;電平過窄(小於210us),退出 clr c ; rem15: mov a,temp ;儲存電平值 rlc a ; mov temp,a ; mov a,add2 ; rlc a ; mov add2,a ; rem16: jnb rem,rem18 ;等待出現低電平 jb dete_t_over,rem13 ;脈衝下降沿間隔限時1500us,超時則認為誤碼 ajmp rem16 ; rem17: ajmp remo0 rem18: clr tr2 ; clr dete_t_over ; mov a,th2 cjne a,#0ffh,rem13 ;脈衝間隔過小 mov a,tl2 ; clr c ; cjne a,#050h,$+3 ; jc rem13 ;電平過窄(小於1200us),退出 djnz dete_loop,rem17 ; rem19: mov dete_loop,#4 ;把接收的編碼左移4位 rem20: clr c ;將8位密碼放在同一位元組上 mov a,dat0 ; rlc a ; mov dat0,a ; mov a,add1 ; rlc a ; mov add1,a ; clr c ; mov a,temp ; rlc a ; mov temp,a ; mov a,add2 ; rlc a ; mov add2,a ; djnz dete_loop,rem20 ; ;把4 位資料編碼由高4 位移到低4 位上 ; mov a,dat0 ; swap a ; mov dat0,a ; mov a,temp ; swap a ; mov temp,a ; anl dat0,#0fh ; setb receive ; remote_end: ; clr tr2 clr remoting ; ret ;
四、硬體抗干擾
在無線通訊中使用微控制器會對通訊系統造成嚴重的干擾,相信許多技術人員一定有過同樣的苦惱。如果硬體設計不當,會造成原先硬體解碼時通訊距離為200公尺,而用軟體解碼後可能只有十幾公尺,因此解決硬體抗干擾問題在很大程度上可減少軟體解碼的誤位元速率。
1、收發模組:早期常用的頻率為47mhz,在這種頻率下,很難有好的解決方法;建議採用目前國家允許無線遙控使用的頻率315 mhz。
2、微控制器振盪頻率:大量的mcs51教材中推薦大家使用的是12 mhz及11.0592mhz的晶體,這些晶體在一般場合使用沒有問題,但在此卻不可以,它們在300mhz左右仍然能夠產生較大的干擾,為解決微控制器執行速度與電磁干擾的矛盾,建議採用頻率為4mhz或3.58mhz的晶體。
3、隔離:為了有效抑制微控制器對接收模組的電磁干擾,建議採用①電源隔離;②埠隔離;埠隔離可採用三極體或比較器。實踐表明採用隔離的效果非常明顯。
五、結束語
pt2262的軟體解碼在實際應用中有較好的用武之地。採用軟體解碼的系統,廠家再也無須對收發裝置進行配套,以利於生產於保管;對客戶來說,使用軟體解碼無須求助,廠家只須再軟體中加入自動學習功能,使用者可自行使用該功能,只須輕按學習鍵即可學習新的通訊裝置,如遙控器等。目前,該軟體解碼已經在某無線報警裝置中採用,客戶反映使用簡便,效果良好。
關於無線WLAN漫遊與移動速度的問題
關於無線wlan漫遊與移動速度的問題,這也是今天在論壇上看到一位問到這樣的問題,其實,我也一直在找尋更準確的答案,但一直沒有找到相關的理論支撐,受影響的因素無非是跟移動速度,移動範圍,訊號覆蓋範圍,訊號重疊範圍,訊號強度,訊號的干擾,終端接收訊號的靈敏度 障礙物 引起的反射 折射 衍射及吸收等 等,...
關於無線WLAN漫遊與移動速度的問題
關於無線wlan漫遊與移動速度的問題,這也是今天在論壇上看到一位問到這樣的問題,其實,我也一直在找尋更準確的答案,但一直沒有找到相關的理論支撐,受影響的因素無非是跟移動速度,移動範圍,訊號覆蓋範圍,訊號重疊範圍,訊號強度,訊號的干擾,終端接收訊號的靈敏度 障礙物 引起的反射 折射 衍射及吸收等 等,...
關於餐飲無線點菜模組上傳PDA的資料庫結構說明
資料庫檔案資料結構 menu menuid 菜譜編號 0000 9999,其中0000為自點菜譜上沒有的菜 spellcode 拼音碼 dishname 菜名 unitid 計量單位 price 單價 iscurrentprice 是否時令價 kitchenerid 後廚 sortid 類別編號 c...