江西省户籍更名制度:用单片机模拟2272软件解码

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 23:43:47
在无线遥控领域,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,以防止大量的干扰信号的误解码。
  三、参考解码软件
  MCS51单片机汇编程序
 
    ;软件解码程序(仿真PT2272) ;
    ;晶体频率为11.0592Mhz ;
    ;本程序中的时间定位联系只适用于接3.3M振荡电阻的PT2262解码 ;
    ;运用其它阻值电阻时,应将定位时间按电阻比例缩放
    ;下面的程序中
    ;REM 为信号输入端 ;
    ;RECEIVE 检测到有效信号标志位 ;
    ;ENABLE_DETE 连续按键标志 ;
    ;3AH,3BH用作定时器 ; ;
    ;PT2262共12根地址线 ;
    ;31H,32H:接收的前8 位地址编码 ;
    ;33H,30H:接收的后4 位地址编码(若结尾 4位用作数据端,则只须读第33H单元的内容即可) ;
    ;当用作数据端时,PT2262对应脚悬空被认为是低电平。
    ;地址数据表明 ;
    ;以31H.0 和32H.0 为例 ;
    ; 悬空 : 31H.0=0 32H.0=1 ;
    ;   1  : 31H.0=1 32H.0=1 ;
    ;   0  : 31H.0=0 32H.0=0 ;
    ; 出错 : 31H.0=1 32H.0=0 ; ; ;
    ; 表明:为了能可靠检测到有效信号,建议每次接收至少检测3次,然后比较3次检测值
    ;3次值相似才认为收到了正确信号。可在主程序中如下处理:第1次检测时调用REMOTE
    ;第2、3次检测时调用REMOTES,请留心必需连续调用,否则得不到正确的数据 ; ;
    ;留心:将T1设定为16位定时器,准许中断,否则将导致接收数据错误
REMOTE: CLR RECEIVE  ;;检测50ms 内有没有编码接收 ;
    MOV 3AH,#55
REMOTEA:MOV 3BH,#250
REMOTEB:JB REM,REMOTE0;有码发送则跳转
    DJNZ 3BH,REMOTEB
    DJNZ 3AH,REMOTEA
REMOTE_END_1:
    CLR ENABLE_DETE
REMOTE_END:
    CLR REMOTING ;整理 探头检测标志
    RET
REMOTE0:JB ENABLE_DETE,REMOTE_END_1  ;按键没有放开则返回
REMOTES:MOV 34H,#12  ;接收12位编码 ;解码 ; ;先找出接收码的开头即10ms左右的高电平 ;
    MOV TH1,#00H ;;配置高电日常间为8~12ms ; ;检测和等待8ms 的 低电平,70ms门限 ;
    CLR T_OVER
    MOV TL1,#00H
    SETB TR1
REMOTE1:MOV 3AH,#50
REMOTE2:MOV 3BH,#25
REMOTE3:JB REM,REMOTE1
    JB T_OVER,REMOTE_END
    DJNZ 3BH,REMOTE3
    DJNZ 3AH,REMOTE2   ;; ;等待在4ms 内接收到的高电平 ;
    CLR T_OVER
    MOV TH1,#0F1H
    MOV TL1,#0F0H
    SETB TR1
REMOTE_4:
    JB T_OVER,REMOTE_5
    JNB REM,REMOTE_4
    CLR TR1
    AJMP REMOTE6 ;;超出12ms 接收错误返回 ;
REMOTE_5:
    AJMP REMOTE_END
REMOTE6:MOV 3AH,#00  ;等待550us 后采集接收信号 ;
    DJNZ 3AH,$  ;;采集接收信号并记载 ;
    MOV C,REM
    MOV A,33H
    RLC A
    MOV 33H,A
    MOV A,31H
    RLC A
    MOV 31H,A   ;;等待第二个上升沿,限时1.5ms ;
    CLR T_OVER
    MOV TH1,#0FAH
    MOV TL1,#099H
    SETB TR1
RM1:  JB T_OVER,REMOTE_END
    JB REM,RM1
    CLR TR1    ;;
    CLR T_OVER
    MOV TH1,#0FAH
    MOV TL1,#099H
    SETB TR1
RM2:  JB T_OVER,REMOTE_END
    JNB REM,RM2
    CLR TR1    ;;等待550us 后采集接收信号 ;
    MOV 3AH,#00
    DJNZ 3AH,$
    MOV C,REM
    MOV A,30H
    RLC A
    MOV 30H,A
    MOV A,32H
    RLC A
    MOV 32H,A   ;;等待第二个码值的上升沿 ;
    CLR T_OVER
    MOV TH1,#0FAH
    MOV TL1,#099H
    SETB TR1
RM3:  JB T_OVER,RM5
    JB REM,RM3
    CLR TR1    ;;
    CLR T_OVER
    MOV TH1,#0FAH
    MOV TL1,#099H
    SETB TR1
RM4:  JB T_OVER,RM5
    JNB REM,RM4
    CLR TR1
    DJNZ 34H,REMOTE6   ;;把接收的编码左移4 位将8 位密码放在同一字节上
    MOV 34H,#4
    AJMP REMOTE7
RM5:  AJMP REMOTE_END
REMOTE7:CLR C
    MOV A,33H
    RLC A
    MOV 33H,A
    MOV A,31H
    RLC A
    MOV 31H,A
    CLR C
    MOV A,30H
    RLC A
    MOV 30H,A
    MOV A,32H
    RLC A
    MOV 32H,A
    DJNZ 34H,REMOTE7   ;;把4 位数据编码由高4 位移到低4 位上 ;
    MOV A,33H
    SWAP A
    MOV 33H,A
    MOV A,30H
    SWAP A
    MOV 30H,A
    SETB ENABLE_DETE
    SETB RECEIVE ;;
    AJMP REMOTE_END_1
    END
四、硬件抗干扰
  在无线通讯中运用单片机会对通讯系统造成严重的干扰,相信许多技能人员必须有过同样的苦恼。假如硬件设计不当,会造成原先硬件解码时通讯距离为200米,而用软件解码后可能只有十几米,因此处理硬件抗干扰疑问在很大程度上可降低软件解码的误码率。
  1、收发模块:早期常用的频率为47MHz,在这种频率下,很难有好的处理要领;建议采用当前国家准许无线遥控运用的频率315 MHz。
  2、单片机振荡频率:大量的MCS51教材中推选大众运用的是12MHz及11.0592MHz的晶体,这些晶体在通常场合运用没有疑问,但在此却不能够,它们在300MHz左右仍然能够产生较大的干扰,为处理单片机运行速度与电磁干扰的矛盾,建议采用频率为4MHz或3.58MHz的晶体。
  3、隔离:为了有效抑制单片机对接收模块的电磁干扰,建议采用①电源隔离;②端口隔离;端口隔离可采用三极管或比较器。实践表明采用隔离的成效特别清楚。
  五、结束语
  PT2262 的软件解码在实际运用 中有较好的用武之地。采用软件解码的系统,厂家再也无须对收发装备执行 配套,以利于生产于保管;对客户来说,运用软件解码无须求助,厂家只须再软件中参加自动学习功能,用户可自行运用该功能,只须轻按学习键即可学习新的通讯装备,如遥控器等。当前,该软件解码已经在某
  无线报警装备中采用,客户反映运用简便,成效良好。