近年來,基于波形分析的軟件解碼或者軟硬結(jié)合解碼的方法被提出來。但是,這些方法都不具有自學(xué)功能,只針對(duì)特定振蕩頻率的波形進(jìn)行解碼,當(dāng)不知道發(fā)射電路PT2262的振蕩電阻的配置的情況下無法解碼,或者需要手工調(diào)整程序的參數(shù)。
本文提出了一種具有自學(xué)習(xí)功能的基于單片機(jī)的軟件解碼方法并完成了設(shè)計(jì),這種新方法可以在未知發(fā)射電路的配置參數(shù)的情況下,通過先學(xué)習(xí)、后解碼的過程實(shí)現(xiàn)解碼,且可以實(shí)現(xiàn)自定義數(shù)據(jù)幀的格式,使編碼的地址位和數(shù)據(jù)位的設(shè)置更加靈活。從而可以將通用編碼集成電路擴(kuò)展應(yīng)用于數(shù)據(jù)通信,智能控制等領(lǐng)域。
1 PT2262工作原理
PT2262最多可有12位(A0~A11)三態(tài)地址端管腳(懸空,接高電平,接低電平)任意組合可提供531441種地址碼。最多可以有6位(D0~D5)數(shù)據(jù)位,設(shè)定的地址碼和數(shù)據(jù)碼與同步碼組成數(shù)據(jù)幀以串行數(shù)據(jù)方式輸出。
當(dāng)PT2262和PT2272配對(duì)使用時(shí),要求發(fā)端編碼芯片F(xiàn)T2262的地址編碼與收端解碼芯片PT2272的地址編碼相一致,而且振蕩頻率相匹配。而發(fā)端向收端發(fā)送的指令等信息可編碼在編碼芯片的數(shù)據(jù)端,通過無線傳送后,在解碼芯片的數(shù)據(jù)端取出。
編碼芯片PT2262發(fā)出的編碼由地址碼、數(shù)據(jù)碼、同步碼組成。地址碼和數(shù)據(jù)碼都用寬度不同的脈沖來表示,兩個(gè)窄脈沖表示“0”;兩個(gè)寬脈沖表示“1”;一個(gè)窄脈沖和一個(gè)寬脈沖表示“f”(“懸空”)。圖1所示為PT2262編碼格式圖。
圖中的T為時(shí)鐘振蕩周期的2倍,同步碼低電平寬度是窄脈沖寬度的31倍。
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ù)通信。
關(guān)鍵字:集成編碼 PT2262 解碼器
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”、同步碼組成。
關(guān)鍵字:集成編碼 PT2262 解碼器
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ā)生了改變,也不必更改解碼軟件。
5 抗干擾措施
本系統(tǒng)采取的措施包括硬件措施和軟件措施。硬件措施包括:1)為了有效抑制單片機(jī)對(duì)接收模塊的電磁干擾采用了電源隔離和端口隔離技術(shù);2)在接收電路部分,對(duì)接收信號(hào)進(jìn)行整形、放大、倒相,倒相后同步碼頭的高低電平保持時(shí)間相反,高電平保持時(shí)間由原來的4T提高到了124T,提高了抗突發(fā)脈沖干擾的能力和解碼的準(zhǔn)確率;3)在接收電路部分加入了INT信號(hào)產(chǎn)生端口,只有檢測(cè)到編碼信號(hào)到來時(shí),INT端才有下降沿產(chǎn)生,如果干擾信號(hào)是負(fù)向干擾,則INT端不會(huì)產(chǎn)生下降沿,有效抑制了負(fù)向干擾;4)收發(fā)模塊采用目前國家允許無線遙控使用的頻率315 MHz;5)單片機(jī)振蕩頻率采用頻率為4 MHz的晶體,而不是C51單片機(jī)常用的12 MHz及11.059 2 MHz的晶體。軟件措施包括:在程序中增加了自學(xué)習(xí)功能,通過自學(xué)習(xí)程序判斷出同步碼頭高電平保持時(shí)間和數(shù)據(jù)“0”、“1”、“f”的高電平保持時(shí)間之間是否滿足固定的倍數(shù)關(guān)系。只有滿足固定的倍數(shù)關(guān)系才進(jìn)行解碼,否則認(rèn)為是誤碼,不予解碼。
6 結(jié)束語
本設(shè)計(jì)的軟件解碼過程加入了自學(xué)習(xí)環(huán)節(jié),可以在未知發(fā)射端編碼芯片的振蕩電阻參數(shù)的情況下完成解碼,增加了解碼器的通用性和靈活性。本設(shè)計(jì)方案已應(yīng)用于無線報(bào)警系統(tǒng),經(jīng)實(shí)踐證明,該方案經(jīng)濟(jì),解碼器性能可靠,可以將其擴(kuò)展應(yīng)用于智能遙控、數(shù)據(jù)通信等領(lǐng)域。