|
基于單片機(jī)實(shí)現(xiàn) PT 2262 通用編碼器的軟件解碼
李東陽(yáng), 姚凱學(xué)
( 貴州大學(xué) 計(jì)算機(jī)科學(xué)與信息學(xué)院, 貴州 貴陽(yáng) 550025)
摘 要: 介紹一種基于 ST C12C5201AD 單片機(jī)的 P T 2262 通用編碼器的軟件解碼方法, 該方法解除了使用
PT 2272 專用解碼芯片和進(jìn)行地址配對(duì)的限制, 使得開(kāi)發(fā)人員有了更多的選擇. 解碼結(jié)果的片內(nèi) EEP ROM 存儲(chǔ)使
單片機(jī)在無(wú)線遙控系統(tǒng)的應(yīng)用得到了擴(kuò)展. 在無(wú)信號(hào)輸入的時(shí)候, 單片機(jī)進(jìn)入掉電模式大大降低了譯碼模塊的電
流, 使得該方法更適合于電池供電的嵌入式開(kāi)發(fā)中. 該方法不僅能簡(jiǎn)化電路、節(jié)約成本, 還提高了無(wú)線遙控系統(tǒng)設(shè)
計(jì)的靈活性.
關(guān)鍵詞: ST C12C5201AD; PT 2262; 嵌入式系統(tǒng); 無(wú)線遙控
中圖分類號(hào): T P311 文獻(xiàn)標(biāo)識(shí)碼 : A 文章編號(hào): 1000- 7180( 2011) 08- 0077- 03
The Software Decoding of Universal Encoder PT2262 Based on SCM
LI Dong -yang, YAO Ka- i x ue
( Co lleg e of Computer Science & Informat ion, G uizhou U niver sity , Guiy ang 550025, China)
Abstract: Intro duce a so ftwar e deco ding metho d of univ ersal encoder PT 2262 based o n SCM ST C12C5201AD, w hich
relieves the limitatio n o f using ex clusiv e decoder chip P T 2272 to match the address, and allow s develo per s to hav e
more choices. T he sto rag e of deco ding results by EEPRO M in t he SCM can expand the micro co nt roller applicat ions
in w ireless remote co ntr ol system. T he M CU enter Pow er - dow n mode w hen there is N o signal input, this can reduces the cur rent of deco ding module highly, M akes the method mor e suitable fo r the develo pment o f bat tery - po wer ed embedded. T his method can no t o nly simplify the circuit, cost savings, but also impro ve the flexibilit y of w ireless r emote contro l sy stem.
Ke
y words: ST C12C5201A D; P T 2262; embedded sy stem; wireless r emo te contro l
1 引言
臺(tái)灣普城公司生產(chǎn)的 PT2262/ PT2272 是一對(duì)
通用編碼、解碼芯片, 是無(wú)線遙控領(lǐng)域中應(yīng)用最為廣
泛的芯片之一[ 1] . 編碼芯片 PT 2262 發(fā)出的編碼信
號(hào)由地址碼、數(shù)據(jù)碼、同步碼組成一個(gè)完整的碼字.
并從編碼輸出腳串行輸出, 可用于無(wú)線遙控發(fā)射電
路. ST C12C5201AD 單片機(jī)是宏晶科技生產(chǎn)的單時(shí)
鐘/ 機(jī)器周期( 1T ) 的單片機(jī), 是高速/ 低功耗/ 超強(qiáng)
抗干擾的新一代 8051 單片機(jī), 速度比傳統(tǒng) 8051 快
8~ 12 倍[ 2] .
PT 2262 可有 6~ 12 位三態(tài)地址端管腳, 任意
組合可提供最多 531441 地址碼, 但只能有 4~ 6 位
二態(tài)數(shù)據(jù)端管腳, PT2262 可有 6~ 12 位三態(tài)地址
端管腳, 任意組合可提供最多 531441 地址碼, 但只
能有 4~ 6 位二態(tài)數(shù)據(jù)端管腳, 這就限制了數(shù)據(jù)傳輸
的應(yīng)用[ 3] . 并且 PT2272 作為 PT 2262 的接收解碼
器, 二者經(jīng)常要使用相同的地址碼來(lái)配對(duì)使用, 這不
僅限制了電路設(shè)計(jì)的靈活性, 而且為已有系統(tǒng)增加
通信設(shè)備帶來(lái)了地址配對(duì)的不便. 設(shè)計(jì)以紅外和無(wú)
線接收電路為例, 從 PT 2262 發(fā)出的信號(hào)特征入手,
利用 STC12C5201AD 單片機(jī)對(duì)由接收電路收到的
信號(hào)進(jìn)行軟件解碼, 得到 PT2262 發(fā)出的 12 位數(shù)
據(jù), 并將接收數(shù)據(jù)記錄于單片機(jī)的片內(nèi) EEPROM
微電子學(xué)與計(jì)算機(jī) 2011 年
( 電可擦可編程只讀存儲(chǔ)器) 中以備它用, 使其應(yīng)用
得到了擴(kuò)充.
2 硬件選型和設(shè)計(jì)
2. 1 紅外接收模塊
紅外接收裝置采用集紅外接收、放大、整形功能
與一體的 FT-009 紅外線接收頭, 因?yàn)榧t外接收頭
內(nèi)部放大器的增益很大, 很容易引起干擾, 因此在接
收頭的供電腳上須加上濾波電容, 一般在 22 F 以
上. 在供電腳和電源之間接入 10 電阻, 進(jìn)一步降
低電源干擾. 在無(wú)信號(hào)輸入的情況下, 該接收頭的輸
出為高電平. 為了提高接收的靈敏度, FT-009 輸出
的高低電平和發(fā)射端是反相的, 所以在 FT009 紅外
頭的輸出端接了一個(gè) NPN 型三極管來(lái)實(shí)現(xiàn)信號(hào)的
反相, 以還原接收信號(hào).
2. 2 無(wú)線接收模塊
無(wú)線接收裝置采用低成本、小體積、低功耗超再
生接收模塊 DSPJ04P, DSPJ04P 的接收頻率是 315
MH z 或 433 M H z, 最佳工作電壓為 3. 0~ 3. 5 V, 由
于本設(shè)計(jì)的電源是 4. 2 V, 此處用 2. 2 k 電阻降壓
及 100 F 的電解電容濾波從 4. 2 V 得到 3. 3 V 的
最佳工作電壓給 DSPJ04P 接收頭供電. 在 DSPJ04P
的輸出端接一個(gè) 4. 7 k 的電阻, 以降低干擾.
2. 3 單片機(jī)譯碼模塊
單 片 機(jī) 采 用 SOP16 貼 片 封 裝 的
STC12C5201AD 單片機(jī), 該單片機(jī)性能穩(wěn)定、 價(jià)格
便宜, 為電路和設(shè)計(jì)節(jié)約了成本. 圖 1 為本設(shè)計(jì)的電
路圖. 利用電容 C1 和電阻 R1 來(lái)實(shí)現(xiàn)單片機(jī)的上電
復(fù)位電路[ 4] , FT009 和 J04P 的輸出均為與本單片
機(jī)兼容的 TT L 電平, 將紅外接收模塊的輸出信號(hào)
經(jīng)反相后, 與無(wú)線頭收模塊的輸出信號(hào)一起接到
STC12C5201AD 單片機(jī)的普通 I/ O 口 P1. 7, 由于
單片機(jī)要對(duì)信號(hào)高低電平寬度進(jìn)行計(jì)算, 為了提高
譯碼準(zhǔn)確率, 單片外接 11. 059 2 MH z 的晶體振蕩
器, 由單片機(jī)來(lái)完成信號(hào)的譯碼.
ST C12C5201AD 單片機(jī)支持掉電模式, 為了降
低本設(shè)計(jì)的功耗, 在兩接收模塊均無(wú)信號(hào)輸出的時(shí)
候, 讓單片機(jī)進(jìn)入掉電模式. 此單片機(jī)在掉電模式下
需外部中斷低電平觸發(fā)或下降沿觸發(fā)中斷模式喚
醒. 因?yàn)閮蓚(gè)接收模塊在無(wú)信號(hào)時(shí)輸出電平為低, 所
以設(shè)計(jì)中將無(wú)線和紅外接收模塊的輸出信號(hào)經(jīng)一個(gè)
NPN 型三極管反相后接到單片機(jī)的 INT1/ P3. 3
口, 當(dāng)有信號(hào)輸入時(shí), 輸入信號(hào)必有一個(gè)下降沿, 可
實(shí)現(xiàn)有信號(hào)輸入時(shí)將單片機(jī)從掉電模式中喚醒.
圖 1 接收譯碼電路圖
2. 4 電源模塊
無(wú)線接收模塊 J04P 不適合開(kāi)關(guān)電源, 可采用電
池或線性電源[ 5] , 在本設(shè)計(jì)中采用 4. 2 V 鋰電池
供電.
3 解碼原理
3. 1 PT2262 碼位波形
PT2262 數(shù)字碼有 0, 1 和 f( 懸空碼) 三種[ 6] , 如
圖 2 所示為 PT2262 的數(shù)字碼及同步與波形的對(duì)應(yīng)
關(guān)系, 可以看出 PT2262 是以每段高電平的寬窄來(lái)
描述碼位的, 窄窄表示 0 碼, 寬寬表示 1 碼, 窄
寬則表示懸空碼. 因此只要將每個(gè)碼字中的兩段高
電平的持續(xù)時(shí)間計(jì)算出來(lái), 即能實(shí)現(xiàn)一位數(shù)字碼的
譯碼.
圖 2 數(shù)字碼及同步碼頭與波形的對(duì)應(yīng)關(guān)系
3. 2 PT2262 波形特征
PT2262 的每組碼字之間是由同步碼頭隔開(kāi)
的, 因此要對(duì)此信息進(jìn)行解碼, 程序必需先判斷出同
步碼頭, 并在同步碼結(jié)頭束以后開(kāi)始解碼. 如圖 3 所
示是用示波器觀察到的一組碼字的波形, 可以看出
PT2262 一次至少發(fā)送 4 串碼字, 每串碼字都有一
斷較長(zhǎng)的低電平部分. 觀察圖 2 中 PT2262 同步碼
頭的特征, 同步碼頭有很長(zhǎng)的一斷低電平部分, 把該
波形放大以后可以看出每串碼字的低電平部分即為
圖 2 所示的同步碼頭的低電平部分.
圖 3 一組碼字波形圖
將圖 3 中的一串碼字放大, 如圖 4 所示, 一串碼
78
第 8 期 李東陽(yáng), 等: 基于單片機(jī)實(shí)現(xiàn) PT 2262 通用編碼器的軟件解碼
字除了一個(gè)同步碼頭之外還有 12 位數(shù)字碼, 每個(gè)數(shù)
字碼又包含兩段高電平, 根據(jù)圖 2 所示數(shù)字碼與波
形對(duì)應(yīng)關(guān)系, 可以依次判斷出 12 位數(shù)字碼.
圖 4 一串碼字波形圖
3. 3 單片機(jī)解碼
由前兩節(jié)的分析可知, 要實(shí)現(xiàn)該信號(hào)的譯碼, 單
片機(jī)要在識(shí)別出同步碼頭以后連續(xù)識(shí)別出 24 位高
電平的持續(xù)時(shí)間, 并根據(jù)圖 2 所示對(duì)應(yīng)關(guān)系還原出
12 位數(shù)字碼. ST C12C5201AD 單片機(jī)有 4 個(gè)定時(shí)/
計(jì)數(shù)器, 本設(shè)計(jì)采用計(jì)數(shù)器計(jì)數(shù)的方法來(lái)判定高電
平的持續(xù)時(shí)間, 這樣不僅能提高時(shí)間判定的準(zhǔn)確性,
而且能降低 CPU 開(kāi)銷、簡(jiǎn)化程序.
4 程序設(shè)計(jì)
4. 1 掉電模式及喚醒
通過(guò)將 STC12C5201AD 單片機(jī)的 PCON 寄存
器的 PD( Po w er Dow n) 位值 1 可實(shí)現(xiàn)單片機(jī)進(jìn)入掉
電模式, 在單片機(jī)工作在掉電模式時(shí), 單片機(jī)的外部
時(shí)鐘停振, CPU 、定時(shí)器、串行口全部停止工作, 只
有外部中斷繼續(xù)工作, 因此可以大大降低單片機(jī)的
電流, 以節(jié)約電能.
此單片機(jī)工作在掉電模式時(shí), 可由外部中斷低
電平觸發(fā)或下降沿觸發(fā)中斷模式喚醒, 本單片機(jī)的
外部中斷管腳只有 P3. 3 口. 在無(wú)線接收電路無(wú)信
號(hào)輸入到單片機(jī)時(shí), P3. 3 口的輸入為高電平, 單片
機(jī)工作在掉電模式. 當(dāng)有信號(hào)輸入時(shí), 信號(hào)脈沖必有
一個(gè)下降沿, 該下降沿可將單片機(jī)從掉電模式喚醒,
程序返回到掉電模式時(shí)的位置繼續(xù)運(yùn)行, 建議在程
序返回位置多加幾條空語(yǔ)句.
4. 2 單片機(jī)解碼模塊
當(dāng)接收電路有信號(hào)輸入到單片機(jī)時(shí), 單片機(jī)工
作在正常模式, 程序通過(guò)單片機(jī)內(nèi)部定時(shí)器 T0 來(lái)
記錄低電平的寬度, 并根據(jù)寬度判斷碼頭是否到來(lái).
為了進(jìn)一步降低誤碼率, 在檢測(cè)碼頭到來(lái)以后, 程序
一次接收 2 串?dāng)?shù)據(jù), 這 2 串?dāng)?shù)據(jù)是由 48 個(gè)高電平表
示的 24 位數(shù)據(jù). 之后判斷這 48 個(gè)高電平寬度是否
在誤差允許的范圍內(nèi), 根據(jù)連續(xù)兩位高電平的寬度
來(lái)得出接收到的 2 串( 24 位) 數(shù)據(jù), 并對(duì)兩串譯碼結(jié)
果逐位進(jìn)行比較. 只有在兩次接收的數(shù)據(jù)完全一致
的情況下, 程序才認(rèn)為接收成功, 并調(diào)用此單片機(jī)的
EEPROM 讀寫模塊, 存儲(chǔ)譯碼結(jié)果. 由此設(shè)計(jì)如圖
5 所示的算法流程圖. 圖 5 中所指電平為單片 P1. 7
口的輸入電平.
圖 5 算法流程圖
4. 3 EEPROM 讀寫模塊
ST C12C5201A D 單片機(jī) 內(nèi)部有兩 個(gè)扇區(qū)的
EEPROM , 每個(gè)扇區(qū)有 512 個(gè)字節(jié)的存儲(chǔ)空間. 可
對(duì) EEPROM 執(zhí)行字節(jié)讀、字節(jié)編程和扇區(qū)擦除功
能. 執(zhí)行字節(jié)編程的前提是該字節(jié)為空( 0FFH ) , 要
某字節(jié)為空, 則要擦除整個(gè)扇區(qū). 設(shè)計(jì)將譯碼結(jié)果保
存在第一個(gè)扇區(qū), 將譯碼結(jié)果的個(gè)數(shù)放到第二個(gè)扇
區(qū). 當(dāng)單片機(jī)有新的譯碼結(jié)果時(shí), 首先判斷該結(jié)果是
否已存在于第一個(gè)扇區(qū)的譯碼結(jié)果中, 存在則丟棄,
否則調(diào)用字節(jié)編程功能, 將結(jié)果保存到第一扇區(qū), 并
將譯碼結(jié)果讀出保存到程序中, 擦除第二扇區(qū), 將結(jié)
果加 1 再調(diào)用字節(jié)編程寫到第二扇區(qū).
5 結(jié)束語(yǔ)
本設(shè)計(jì)已成功應(yīng)用于某智能導(dǎo)游系統(tǒng)中, 其譯
碼準(zhǔn)確率高, 節(jié)電效果好, 可擴(kuò)充性強(qiáng), 用戶反應(yīng)良
好. 將作為景點(diǎn)地址信息的譯碼結(jié)果保存到 EEP -
ROM 中以供查看, 也為景點(diǎn)收費(fèi)及查詢游客經(jīng)過(guò)
景點(diǎn)信息等工作提供了參考.
本設(shè)計(jì)用單片機(jī)的一個(gè) I/ O 口和一個(gè)中斷口
來(lái)替換 PT2272 解碼芯片及其附帶電路, 且不影響
單片機(jī)其他引腳的使用. 不僅簡(jiǎn)化了電路、省去了地
址匹配的麻煩、節(jié)約了成本, 而且解碼信息的片內(nèi)保
存可以擴(kuò)展無(wú)線遙控系統(tǒng)的應(yīng)用. 在無(wú)信號(hào)輸入的
時(shí)候, 單片機(jī)進(jìn)入掉電模式以節(jié)約電能, 使本設(shè)計(jì)能
更廣泛的應(yīng)用于手持儀器中. 以此為基礎(chǔ), 單片機(jī)在
無(wú)線遙控系統(tǒng)中的應(yīng)用將更為廣泛.
( 下轉(zhuǎn)第 82 頁(yè))
79
微電子學(xué)與計(jì)算機(jī) 2011 年
( 1) v oid setQrco deErrorCor rect ( char arg 0) ;
該方法是設(shè)置糾錯(cuò)等級(jí), 參數(shù)只能是 L、M 、Q、H , 分
別代表 QRCode 的四個(gè)糾錯(cuò)等級(jí).
圖 3 按鈕處理流程圖
( 2) v oid setQ rcodeV ersion( int arg 0) ;
該方法是設(shè)置版本號(hào), 參數(shù)可以是 0- 40.
( 3) boo lean[ ] [ ] calQr code( by te[ ] ar g0) , 將待
編碼的字符串轉(zhuǎn)換為 boo lean 型二維數(shù)組存儲(chǔ), 參
數(shù)是待編碼的字符串. 生成的 boolean 型二維數(shù)組
就是條碼 0、1 分布. 執(zhí)行效果如圖 4 所示.
4 結(jié)束語(yǔ)
智能手機(jī)是一種移動(dòng)的互聯(lián)網(wǎng)平臺(tái), A ndroid
是一種智能手機(jī)軟件開(kāi)發(fā)平臺(tái). 從這個(gè)開(kāi)放性平臺(tái)
圖 4 程序執(zhí)行后的效果圖
出發(fā), 軟件開(kāi)發(fā)人員能設(shè)計(jì)出基于基于二維條碼的
識(shí)別模塊, 用戶可以通過(guò)手機(jī)掃描二維碼, 或者輸入
二維碼所代表的 10 進(jìn)制號(hào)碼即可進(jìn)行上網(wǎng), 在網(wǎng)上
遨游, 手機(jī)二維碼將應(yīng)用應(yīng)用到各行各業(yè)中.
參考文獻(xiàn):
[ 1] Yao he L iu. Barco de recog nition and voice broadcast
based o n distr ibut ed system semantic sear ch [ C] / / Pr oceeding 2009 int er national conference Eng ineer ing CISE
2009. China: Wuhan, 2009.
[ 2] 劉幺和. 物聯(lián)網(wǎng)原理與應(yīng)用技術(shù)[ M ] . 北京: 機(jī)械工業(yè)出
版社, 2011.
[ 3] Yang Yang, Y aohe L iu. T he inter net of thing s based on
em
bedded mo de desig n [ C ] / / IT AP 2010. China: Wuhan, 2010.
作者簡(jiǎn)介:
劉幺和 男, ( 1954- ) , 教授. 研究方向?yàn)槲锫?lián)網(wǎng).
王 治 男, ( 1986- ) , 碩士研究生. 研究方向?yàn)橹悄芸刂婆c
設(shè)計(jì).
( 上接第 79 頁(yè))
參考文獻(xiàn):
[ 1] 王曉東. 用軟、硬件結(jié)合的方法實(shí)現(xiàn)對(duì) P T 2262 的解碼
[ J] . 山西電子技術(shù), 2008( 5) : 40- 41.
[ 2] 姚永平. ST C12C5201AD 系列單片機(jī)器件手冊(cè)[ M ] . 深
圳: 宏晶科技, 2008.
[ 3] 郝迎吉, 劉義剛, 樊潤(rùn)麗. 基于單片機(jī)實(shí)現(xiàn)遙控編碼器
PT 2262 的軟件解碼[ J] . 國(guó)外電子元器件, 2008( 5) : 36- 39.
[ 4] 張義和, 王敏男, 許宏昌. 例說(shuō) 51 單片機(jī) [ M ] . 北京: 人
民郵電出版社, 2008.
[ 5] 趙秋. 利用編解碼芯片的無(wú)線收發(fā)電路 [ J] . 信息化研
究, 2009, 33( 9) : 35- 38.
[ 6] 安穎, 王研. 遙控編碼芯片 PT 2262 的單片機(jī)譯碼模塊
[ J] . 計(jì)算機(jī)與數(shù)字工程, 2005, 33( 8) : 121- 123.
作者簡(jiǎn)介:
李東陽(yáng) 男, ( 1987- ) , 碩士研究生. 研究方向?yàn)橛?jì)算機(jī)控制
技術(shù)與嵌入式系統(tǒng).
姚凱學(xué) 男, ( 1962- ) , 教授. 研究方向?yàn)橛?jì)算機(jī)控制技術(shù)與
嵌入式系統(tǒng).
|
評(píng)分
-
查看全部評(píng)分
|