|
基于單片機實現 PT 2262 通用編碼器的軟件解碼
李東陽, 姚凱學
( 貴州大學 計算機科學與信息學院, 貴州 貴陽 550025)
摘 要: 介紹一種基于 ST C12C5201AD 單片機的 P T 2262 通用編碼器的軟件解碼方法, 該方法解除了使用
PT 2272 專用解碼芯片和進行地址配對的限制, 使得開發人員有了更多的選擇. 解碼結果的片內 EEP ROM 存儲使
單片機在無線遙控系統的應用得到了擴展. 在無信號輸入的時候, 單片機進入掉電模式大大降低了譯碼模塊的電
流, 使得該方法更適合于電池供電的嵌入式開發中. 該方法不僅能簡化電路、節約成本, 還提高了無線遙控系統設
計的靈活性.
關鍵詞: ST C12C5201AD; PT 2262; 嵌入式系統; 無線遙控
中圖分類號: T P311 文獻標識碼 : A 文章編號: 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 引言
臺灣普城公司生產的 PT2262/ PT2272 是一對
通用編碼、解碼芯片, 是無線遙控領域中應用最為廣
泛的芯片之一[ 1] . 編碼芯片 PT 2262 發出的編碼信
號由地址碼、數據碼、同步碼組成一個完整的碼字.
并從編碼輸出腳串行輸出, 可用于無線遙控發射電
路. ST C12C5201AD 單片機是宏晶科技生產的單時
鐘/ 機器周期( 1T ) 的單片機, 是高速/ 低功耗/ 超強
抗干擾的新一代 8051 單片機, 速度比傳統 8051 快
8~ 12 倍[ 2] .
PT 2262 可有 6~ 12 位三態地址端管腳, 任意
組合可提供最多 531441 地址碼, 但只能有 4~ 6 位
二態數據端管腳, PT2262 可有 6~ 12 位三態地址
端管腳, 任意組合可提供最多 531441 地址碼, 但只
能有 4~ 6 位二態數據端管腳, 這就限制了數據傳輸
的應用[ 3] . 并且 PT2272 作為 PT 2262 的接收解碼
器, 二者經常要使用相同的地址碼來配對使用, 這不
僅限制了電路設計的靈活性, 而且為已有系統增加
通信設備帶來了地址配對的不便. 設計以紅外和無
線接收電路為例, 從 PT 2262 發出的信號特征入手,
利用 STC12C5201AD 單片機對由接收電路收到的
信號進行軟件解碼, 得到 PT2262 發出的 12 位數
據, 并將接收數據記錄于單片機的片內 EEPROM
微電子學與計算機 2011 年
( 電可擦可編程只讀存儲器) 中以備它用, 使其應用
得到了擴充.
2 硬件選型和設計
2. 1 紅外接收模塊
紅外接收裝置采用集紅外接收、放大、整形功能
與一體的 FT-009 紅外線接收頭, 因為紅外接收頭
內部放大器的增益很大, 很容易引起干擾, 因此在接
收頭的供電腳上須加上濾波電容, 一般在 22 F 以
上. 在供電腳和電源之間接入 10 電阻, 進一步降
低電源干擾. 在無信號輸入的情況下, 該接收頭的輸
出為高電平. 為了提高接收的靈敏度, FT-009 輸出
的高低電平和發射端是反相的, 所以在 FT009 紅外
頭的輸出端接了一個 NPN 型三極管來實現信號的
反相, 以還原接收信號.
2. 2 無線接收模塊
無線接收裝置采用低成本、小體積、低功耗超再
生接收模塊 DSPJ04P, DSPJ04P 的接收頻率是 315
MH z 或 433 M H z, 最佳工作電壓為 3. 0~ 3. 5 V, 由
于本設計的電源是 4. 2 V, 此處用 2. 2 k 電阻降壓
及 100 F 的電解電容濾波從 4. 2 V 得到 3. 3 V 的
最佳工作電壓給 DSPJ04P 接收頭供電. 在 DSPJ04P
的輸出端接一個 4. 7 k 的電阻, 以降低干擾.
2. 3 單片機譯碼模塊
單 片 機 采 用 SOP16 貼 片 封 裝 的
STC12C5201AD 單片機, 該單片機性能穩定、 價格
便宜, 為電路和設計節約了成本. 圖 1 為本設計的電
路圖. 利用電容 C1 和電阻 R1 來實現單片機的上電
復位電路[ 4] , FT009 和 J04P 的輸出均為與本單片
機兼容的 TT L 電平, 將紅外接收模塊的輸出信號
經反相后, 與無線頭收模塊的輸出信號一起接到
STC12C5201AD 單片機的普通 I/ O 口 P1. 7, 由于
單片機要對信號高低電平寬度進行計算, 為了提高
譯碼準確率, 單片外接 11. 059 2 MH z 的晶體振蕩
器, 由單片機來完成信號的譯碼.
ST C12C5201AD 單片機支持掉電模式, 為了降
低本設計的功耗, 在兩接收模塊均無信號輸出的時
候, 讓單片機進入掉電模式. 此單片機在掉電模式下
需外部中斷低電平觸發或下降沿觸發中斷模式喚
醒. 因為兩個接收模塊在無信號時輸出電平為低, 所
以設計中將無線和紅外接收模塊的輸出信號經一個
NPN 型三極管反相后接到單片機的 INT1/ P3. 3
口, 當有信號輸入時, 輸入信號必有一個下降沿, 可
實現有信號輸入時將單片機從掉電模式中喚醒.
圖 1 接收譯碼電路圖
2. 4 電源模塊
無線接收模塊 J04P 不適合開關電源, 可采用電
池或線性電源[ 5] , 在本設計中采用 4. 2 V 鋰電池
供電.
3 解碼原理
3. 1 PT2262 碼位波形
PT2262 數字碼有 0, 1 和 f( 懸空碼) 三種[ 6] , 如
圖 2 所示為 PT2262 的數字碼及同步與波形的對應
關系, 可以看出 PT2262 是以每段高電平的寬窄來
描述碼位的, 窄窄表示 0 碼, 寬寬表示 1 碼, 窄
寬則表示懸空碼. 因此只要將每個碼字中的兩段高
電平的持續時間計算出來, 即能實現一位數字碼的
譯碼.
圖 2 數字碼及同步碼頭與波形的對應關系
3. 2 PT2262 波形特征
PT2262 的每組碼字之間是由同步碼頭隔開
的, 因此要對此信息進行解碼, 程序必需先判斷出同
步碼頭, 并在同步碼結頭束以后開始解碼. 如圖 3 所
示是用示波器觀察到的一組碼字的波形, 可以看出
PT2262 一次至少發送 4 串碼字, 每串碼字都有一
斷較長的低電平部分. 觀察圖 2 中 PT2262 同步碼
頭的特征, 同步碼頭有很長的一斷低電平部分, 把該
波形放大以后可以看出每串碼字的低電平部分即為
圖 2 所示的同步碼頭的低電平部分.
圖 3 一組碼字波形圖
將圖 3 中的一串碼字放大, 如圖 4 所示, 一串碼
78
第 8 期 李東陽, 等: 基于單片機實現 PT 2262 通用編碼器的軟件解碼
字除了一個同步碼頭之外還有 12 位數字碼, 每個數
字碼又包含兩段高電平, 根據圖 2 所示數字碼與波
形對應關系, 可以依次判斷出 12 位數字碼.
圖 4 一串碼字波形圖
3. 3 單片機解碼
由前兩節的分析可知, 要實現該信號的譯碼, 單
片機要在識別出同步碼頭以后連續識別出 24 位高
電平的持續時間, 并根據圖 2 所示對應關系還原出
12 位數字碼. ST C12C5201AD 單片機有 4 個定時/
計數器, 本設計采用計數器計數的方法來判定高電
平的持續時間, 這樣不僅能提高時間判定的準確性,
而且能降低 CPU 開銷、簡化程序.
4 程序設計
4. 1 掉電模式及喚醒
通過將 STC12C5201AD 單片機的 PCON 寄存
器的 PD( Po w er Dow n) 位值 1 可實現單片機進入掉
電模式, 在單片機工作在掉電模式時, 單片機的外部
時鐘停振, CPU 、定時器、串行口全部停止工作, 只
有外部中斷繼續工作, 因此可以大大降低單片機的
電流, 以節約電能.
此單片機工作在掉電模式時, 可由外部中斷低
電平觸發或下降沿觸發中斷模式喚醒, 本單片機的
外部中斷管腳只有 P3. 3 口. 在無線接收電路無信
號輸入到單片機時, P3. 3 口的輸入為高電平, 單片
機工作在掉電模式. 當有信號輸入時, 信號脈沖必有
一個下降沿, 該下降沿可將單片機從掉電模式喚醒,
程序返回到掉電模式時的位置繼續運行, 建議在程
序返回位置多加幾條空語句.
4. 2 單片機解碼模塊
當接收電路有信號輸入到單片機時, 單片機工
作在正常模式, 程序通過單片機內部定時器 T0 來
記錄低電平的寬度, 并根據寬度判斷碼頭是否到來.
為了進一步降低誤碼率, 在檢測碼頭到來以后, 程序
一次接收 2 串數據, 這 2 串數據是由 48 個高電平表
示的 24 位數據. 之后判斷這 48 個高電平寬度是否
在誤差允許的范圍內, 根據連續兩位高電平的寬度
來得出接收到的 2 串( 24 位) 數據, 并對兩串譯碼結
果逐位進行比較. 只有在兩次接收的數據完全一致
的情況下, 程序才認為接收成功, 并調用此單片機的
EEPROM 讀寫模塊, 存儲譯碼結果. 由此設計如圖
5 所示的算法流程圖. 圖 5 中所指電平為單片 P1. 7
口的輸入電平.
圖 5 算法流程圖
4. 3 EEPROM 讀寫模塊
ST C12C5201A D 單片機 內部有兩 個扇區的
EEPROM , 每個扇區有 512 個字節的存儲空間. 可
對 EEPROM 執行字節讀、字節編程和扇區擦除功
能. 執行字節編程的前提是該字節為空( 0FFH ) , 要
某字節為空, 則要擦除整個扇區. 設計將譯碼結果保
存在第一個扇區, 將譯碼結果的個數放到第二個扇
區. 當單片機有新的譯碼結果時, 首先判斷該結果是
否已存在于第一個扇區的譯碼結果中, 存在則丟棄,
否則調用字節編程功能, 將結果保存到第一扇區, 并
將譯碼結果讀出保存到程序中, 擦除第二扇區, 將結
果加 1 再調用字節編程寫到第二扇區.
5 結束語
本設計已成功應用于某智能導游系統中, 其譯
碼準確率高, 節電效果好, 可擴充性強, 用戶反應良
好. 將作為景點地址信息的譯碼結果保存到 EEP -
ROM 中以供查看, 也為景點收費及查詢游客經過
景點信息等工作提供了參考.
本設計用單片機的一個 I/ O 口和一個中斷口
來替換 PT2272 解碼芯片及其附帶電路, 且不影響
單片機其他引腳的使用. 不僅簡化了電路、省去了地
址匹配的麻煩、節約了成本, 而且解碼信息的片內保
存可以擴展無線遙控系統的應用. 在無信號輸入的
時候, 單片機進入掉電模式以節約電能, 使本設計能
更廣泛的應用于手持儀器中. 以此為基礎, 單片機在
無線遙控系統中的應用將更為廣泛.
( 下轉第 82 頁)
79
微電子學與計算機 2011 年
( 1) v oid setQrco deErrorCor rect ( char arg 0) ;
該方法是設置糾錯等級, 參數只能是 L、M 、Q、H , 分
別代表 QRCode 的四個糾錯等級.
圖 3 按鈕處理流程圖
( 2) v oid setQ rcodeV ersion( int arg 0) ;
該方法是設置版本號, 參數可以是 0- 40.
( 3) boo lean[ ] [ ] calQr code( by te[ ] ar g0) , 將待
編碼的字符串轉換為 boo lean 型二維數組存儲, 參
數是待編碼的字符串. 生成的 boolean 型二維數組
就是條碼 0、1 分布. 執行效果如圖 4 所示.
4 結束語
智能手機是一種移動的互聯網平臺, A ndroid
是一種智能手機軟件開發平臺. 從這個開放性平臺
圖 4 程序執行后的效果圖
出發, 軟件開發人員能設計出基于基于二維條碼的
識別模塊, 用戶可以通過手機掃描二維碼, 或者輸入
二維碼所代表的 10 進制號碼即可進行上網, 在網上
遨游, 手機二維碼將應用應用到各行各業中.
參考文獻:
[ 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] 劉幺和. 物聯網原理與應用技術[ M ] . 北京: 機械工業出
版社, 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.
作者簡介:
劉幺和 男, ( 1954- ) , 教授. 研究方向為物聯網.
王 治 男, ( 1986- ) , 碩士研究生. 研究方向為智能控制與
設計.
( 上接第 79 頁)
參考文獻:
[ 1] 王曉東. 用軟、硬件結合的方法實現對 P T 2262 的解碼
[ J] . 山西電子技術, 2008( 5) : 40- 41.
[ 2] 姚永平. ST C12C5201AD 系列單片機器件手冊[ M ] . 深
圳: 宏晶科技, 2008.
[ 3] 郝迎吉, 劉義剛, 樊潤麗. 基于單片機實現遙控編碼器
PT 2262 的軟件解碼[ J] . 國外電子元器件, 2008( 5) : 36- 39.
[ 4] 張義和, 王敏男, 許宏昌. 例說 51 單片機 [ M ] . 北京: 人
民郵電出版社, 2008.
[ 5] 趙秋. 利用編解碼芯片的無線收發電路 [ J] . 信息化研
究, 2009, 33( 9) : 35- 38.
[ 6] 安穎, 王研. 遙控編碼芯片 PT 2262 的單片機譯碼模塊
[ J] . 計算機與數字工程, 2005, 33( 8) : 121- 123.
作者簡介:
李東陽 男, ( 1987- ) , 碩士研究生. 研究方向為計算機控制
技術與嵌入式系統.
姚凱學 男, ( 1962- ) , 教授. 研究方向為計算機控制技術與
嵌入式系統.
|
評分
-
查看全部評分
|