登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

好的东东总想和大家分享

作者:wings1314 栏目:单片机

PT2262编码芯片的软件解码

中国电子科技集团公司第三十六研究所   邬伟奇

[摘要] 在无线遥控领域,PT2262/2272是目前最常用的芯片之一,但由于芯片要求配对使用,在很大程度上影响了该芯片的使用,笔者从PT2262波形特征入手,结合应用实际,提出软件解码的方法和具体措施。

关键词: 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为振荡电阻

这里我们选用的是一种比较常用的频率f10 kHz, Rosc=3.3MΩ(以下同)。

下图是振荡频率与码位波形的对应关系:

同步码头波形:

PT2262有三种编码:01,和悬空(表示为f)

1、  数据“0”发送的码位如下:

2、  数据“1”发送的码位如下:

3、  数据“f”发送的码位如下:

有了以上具体的波形,我们就可以进行软件解码了。T2262每次至少发送4次编码,首先我们可以通过检测11ms宽度的同步码头,有码头才开始进行编码解码,无码头则继续等待。当收到码头时,还要检测是否已经收到过码头,若无,则丢弃第一次编码的信号,以防止误码。

从编码图中可以看出,每一位码字都是从低电平开始到高电平,到低电平,再到高电平。为了检测方便,在接收端我们把编码信号进行了180°倒相,使码位开始的上升沿转化为下降沿,这样当我们使用MCS51系列单片机解码时可使用中断方式及时截获编码。从编码图中还可以看出,每一位码字都可以分成两段,我们以每段中的电平宽度来描述码位:

2楼: >>参与讨论
wings1314


码位

第一段

第二段

数值表示

反码表示

0



00

11

1



11

00

f



01

10

无效码



10

01

软件解码方法1(反码):

从第一个下降沿开始延时700us左右,检测电平高低,记为A1,再检测第二个下降沿,延时700us左右,检测电平高低,记为A2,这样一个码位就可以译出来了,连续检测12个码位。

软件解码方法2(反码):

从第一个下降沿开始记时,并不断检测电平变化,一有电平变化,立即记录电平宽度B1,再继续记时直至出现第二个下降沿,记录两个下降沿的间隔B2,重复以上步骤,得到B3B4,判断B1B2B3B4是否在各自允许的误差范围内,是则保存B1B3,译出一个码位,否则认为误码,丢弃。连续正确检测12个码位。

两种解码方式各有优缺点如下:



解码方式

优点

缺点

1

程序简单,CPU开销少

解码精度差

2

程序复杂,CPU开销大

解码精度较高

为了获得较高的解码精度,我们推荐使用方法2,以避免大量的干扰信号的误解码。

三、参考解码软件

    说明:ADD1ADD2中为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),退出

3楼: >>参与讨论
wings1314

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                   ;

4楼: >>参与讨论
wings1314

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                       ;

  &n

5楼: >>参与讨论
wings1314
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                             ;

6楼: >>参与讨论
wings1314

四、硬件抗干扰

   在无线通讯中使用单片机会对通讯系统造成严重的干扰,相信许多技术人员一定有过同样的苦恼。如果硬件设计不当,会造成原先硬件解码时通讯距离为200米,而用软件解码后可能只有十几米,因此解决硬件抗干扰问题在很大程度上可减少软件解码的误码率。

    1、收发模块:早期常用的频率为47MHz,在这种频率下,很难有好的解决方法;建议采用目前国家允许无线遥控使用的频率315 MHz

    2、单片机振荡频率:大量的MCS51教材中推荐大家使用的是12 MHz11.0592 MHz的晶体,这些晶体在一般场合使用没有问题,但在此却不可以,它们在300 MHz左右仍然能够产生较大的干扰,为解决单片机运行速度与电磁干扰的矛盾,建议采用频率为4 MHz3.58 MHz的晶体。

    3、隔离:为了有效抑制单片机对接收模块的电磁干扰,建议采用①电源隔离;②端口隔离;端口隔离可采用三极管或比较器。实践表明,采用隔离的效果非常明显。

五、结束语

PT2262的软件解码在实际应用中有较好的用武之地。采用软件解码的系统,厂家再也无须对收发设备进行配套,以利于生产于保管;对客户来说,使用软件解码无须求助,厂家只须再软件中加入自动学习功能,用户可自行使用该功能,只须轻按学习键即可学习新的通讯设备,如遥控器等。

目前,该软件解码已经在某无线报警设备中采用,客户反映使用简便,效果良好。

参考:1PT2262 PT2272P87LPC764 单片机的接口设计(广州周立功单片机);

      2、www.xie-gang.com网站资料;

7楼: >>参与讨论
wzxlff
多谢楼主分享~~~
8楼: >>参与讨论
lanyazhi

谢谢!             我现在正要用无线通信模块呢.    十分感谢!!!!!!!!!!!!

参与讨论
昵称:
讨论内容:
 
 
相关帖子
[分享][下载]平凡老师的LED仿真实例板
单片机控制的吊扇多功能控制器
什么是ARM?
初学者的心得
求助啊~~~
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号