采用PIC16F639的被动无钥门禁系统设计

发布者:数字冲浪最新更新时间:2011-03-14 手机看文章 扫描二维码
随时随地手机看文章


免持式被动无钥门禁(PKE)正迅速成为汽车远程无钥门禁应用的主流,并成为新车型的普遍选项。该方法无需用手按发送器按钮来锁上或打开车门,只要拥有一个有效的应答器就可方便地进出车辆。

     免持式PKE应用要求基站和应答器单元之间进行双向通讯。车辆内的基站单元发出一个低频(LF)命令,搜寻周围的应答器。一旦车主的应答器被搜索到,该应答器随即自动回应基站单元。基站单元在收到有效的验证响应信号后打开车门。

     在典型的PKE应用中,将基站单元的输出功率设计为政府机构规定的电磁辐射标准所允许的最大功率。当工作于9V到12V直流电源下时,可达到的最大天线电压约为300V峰峰值。由于低频信号(125kHz)的非传播特性,距离发送基站单元约两米外的典型钥匙扣应答器所接收到的信号电平只有约几个mV峰峰值。另外,由于天线的方向特性,如果天线没有朝向基站天线,应答器的输入信号电平会非常弱。

     若PKE无法正常运行,最可能的原因是应答器输入信号电平太弱。因此,为让免持式PKE应用可靠工作,输入信号在任何期望的通讯范围内都应足够强(高于输入灵敏度电平)。为使PKE系统可靠,系统设计工程师必须考虑基站命令信号的输出功率、应答器的输入灵敏度、天线的方向性以及应答器的电池使用寿命这四个重要参数。

     PIC16F639是一款带三通道模拟前端(AFE)的MCU,其模拟前端特性由MCU固件控制。由于使用方便,该器件可用于多种智能低频检测和双向通讯应用中。本文讨论了利用PIC16F639 MCU实现智能PKE应答器的设计电路示例,并给出了电路中的MCU固件示例。设计工程师可以很方便地根据用户的特定应用对这些电路和MCU固件进行修改。

图1:采用双向通信的智能被动无钥匙门控(PKE)系统。

PIC16F639 PKE应答器

     PIC16F639包括数字MCU部分(PIC16F639内核)和模拟前端(AFE)部分,可用于多种低频检测和智能双向通讯应用。图1为一个典型的PKE系统示例,基站单元发出一个125kHz的命令信号,搜寻周围有效的应答器。如果接收到的命令有效,PKE应答器将返回一个响应信号。

      PIC16F639器件的模拟输入灵敏度很高(高达1mV峰峰值),具有三个天线连接引脚。通过连接指向X、Y和Z方向的三个天线,应答器可随时接收来自任意方向的信号,从而降低由天线的方向性而造成信号丢失的可能性。各天线引脚的输入信号的检测是相互独立的,并随后相加。通过对配置寄存器进行编程,每个输入通道可以被单独使能或禁止。被使能的通道越少,器件的功耗就越小。

     为实现免持操作,应答器连续等待并检测输入信号,这会减少电池使用寿命。因此,为减小工作电流,在模拟前端(AFE)搜寻有效输入信号的同时,数字MCU部分可以处于低电流模式(休眠模式)。只有当AFE检测到有效输入信号时,数字MCU部分才被唤醒。通过使用一个输出使能滤波器(唤醒滤波器)可实现这个功能。PIC16F639具有9个输出使能滤波器选项。用户可利用配置寄存器对滤波器进行编程。滤波器一旦被编程,则只有在输入信号达到滤波器要求时,器件才将检测到的输出传送到数字部分。

图2:被动无钥门禁(PKE)应答器的配置电路图。

     图2为PKE应答器的配置示例。这个应答器包括PIC16F639器件、外部LC谐振电路、按钮、UHF发送器、后备电池(可选)和3V锂电池。

     数字部分有PORTA和PORTC两个I/O口。每个PORTA引脚都可被单独配置为电平变化中断引脚,而PORTC各引脚没有电平变化中断的功能。AFE部分共用数字部分PORTC的RC1、RC2和RC3三个I/O引脚,这些引脚在内部分别连接到AFE的CS、SCLK/ALERT和LFDATA/CCLK/RSSI/SDIO焊盘上。LFDATA/CCLK/RRSI和ALERT为AFE输出。SDIO、SCLK和CS被用来编程或读取AFE配置寄存器。

     为节省电池能量,AFE部分在检测LF输入信号的同时,数字部分通常处于休眠模式。 尽管AFE的输出焊点在内部连接到PORTC引脚,但由于PORTC引脚不是电平变化中断引脚,所以AFE输出无法通过电平变化中断事件唤醒数字部分。因此,建议将AFE的LFDATA和ALERT引脚在外部连接到PORTA引脚,如图2所示。

     数字部分在出现以下三种情况之一时被唤醒:LFDATA引脚有AFE输出;ALERT引脚有AFE输出;按下PORTA上的开关按钮事件。

图3:由于天线的方向性,在实际应用中,两个天线平行时检测距离最大,正交时检测距离最短。

外部LC谐振天线

     PIC16F639器件具有三个低频输入通道。LCX、LCY和LCZ引脚用于连接(每个LF输入通道的)外部LC谐振天线电路。外部电路连接至天线输入引脚及LCCOM引脚。对所有外部天线电路而言,LCCOM是共用引脚。当内部检测电路检测到强输入信号时,建议在LCCOM引脚与地之间接一个电容(1~10μF),以提供稳定的工作状态。

     尽管PIC16F639有三个LC输入引脚与三个外部天线连接,但根据具体应用,用户可以只用一个或两个天线,而不是同时使用三个天线。工作电流消耗与使能的通道数成正比,使能的通道越少,消耗的电流越小,但强烈建议在免持式PKE应用中使用所有三个天线。

     为检测低频磁场,通常要使用调谐环型天线。为使天线电压最大,环型天线必须精确调谐到所需的频率。对于PKE应用,应将天线调谐到基站载波频率。环型天线由构成并联LC谐振电路的一个线圈(电感)和几个电容组成。通过增大环路表面积和电路的品质因数(Q)使天线电压最大。

     LC谐振电路的谐振频率由式1给出:

     其中,L为环路电感,C为电容。

     对于给定的LC谐振电路,接收到的天线电压可近似地用式2表达。

     其中,fc=基站载波频率(Hz);△f= |fc-fo|;fo=LC电路谐振频率(Hz);N=环路线圈的匝数;S=环路表面积(m2);Q=LC电路品质因数;Bo=磁场强度(韦伯/平方米);α=信号到达的角度。

      在式2中,品质因数(Q)是衡量调谐电路的频率选择性的指标。假设电容在125kHz时无损耗,则LC电路的Q值将主要由电感决定。

     式中fo为调谐频率,L为电感值,r为电感的阻抗。

     在典型应答器应用中,电感值的范围在1~9mH之间。对于空芯电感,LC电路的Q值大于20,对于铁氧体磁芯电感,Q值约为40。

     式2中的Scosα项代表天线的有效表面积,即为环路处于入射磁场中的面积。当cosα等于1时,天线有效表面积最大,此时基站和应答器单元的天线面对面。在实际应用中,两个天线平行时检测距离最大,正交时检测距离最短。图3用图形阐述了实际应用中的天线方向问题。

图4:推荐的应答器电路板天线布局图。

      如果三个天线在同一印刷电路板上的位置相互正交,可大大减少天线方向问题。在实际应用中,这种设计会提高任何时刻至少有一个应答器天线朝向基站天线的概率。图4为应答器电路板上布置三个天线的图示。LCZ使用一个大空芯线圈,LCX和LCY使用两个铁氧体磁芯线圈。有些公司专门生产125 kHz RFID和低频检测应用系统使用的铁氧体线圈。

     如式2和式3所示,当LC电路准确调谐到入射载波的频率时,线圈上的感应电压最大。但在实际应用中,由于LC元件的容差不同,各个应答器的LC谐振频率也不同。为补偿元件容差带来的误差,PIC16F639的每个通道都有一个内部调谐电容组。电容值可以以1pF为步长,被编程到最大63pF,电容值随配置寄存器位的增加而单调递增。

     可通过监测RSSI电流输出对电容进行有效调谐。RSSI输出与输入信号强度成正比,因此LC电路被调谐得与载波频率越接近,监测到的RSSI输出越高。总电容值随着配置寄存器位升高而增加,由此得到的内部电容被叠加到LC电路的电容上。随内部谐振电容的增加,LC谐振频率将降低。

图5:应答器电路的每个谐振天线必须调谐到基站单元的载波频率,以达到最佳信号接收状态。

后备电池与无电池模式

      实际应用有可能发生电池意外地暂时脱离电路的情况,例如当应答器掉落到硬质表面上时。如果发生此种情况,存储在MCU中的数据可能无法正确恢复。为避免电池意外脱离,用户可考虑采用后备电池电路。后备电池电路能向应答器暂时提供VDD电压。建议在精密应答器中采用这种电路,但并不是所有应用都必须采用它。在图2中,D4和C1构成了电池后备电路。当电池连接时,C1被完全充电,当电池短暂断开时,C1提供VDD电压。

      当应答器处于无电池运行时称为无电池模式。在图2中,二极管D1、D2、D3和C1构成无电池模式的电源电路。当应答器线圈产生电压时,线圈电流流过二极管D1和D2为C1充电,C1可为应答器提供VDD电压。当PIC16F639用于需要无电池运行的防碰撞应答器应用中时,这种电源电路很有用。根据不同应用,无电池模式下C1电容值从几微法到几法不等。

图6:在基站电路中,电流驱动器U1放大来自MCU的125 kHz方波脉冲的功率。U1的方波脉冲输出通过由L1、C2、C3和C4组成的LC串联谐振电路后变成正弦波。

应答器电路

     应答器电路具有三个外部LC谐振电路、五个按钮开关、一个用于UHF数据发送的433.92MHz谐振器和几个用于后备电池模式的元件。

     每个LC谐振电路都连接到LC输入和LCCOM引脚。空芯天线连接到LCX输入,两个铁氧体磁棒电感连接到LCY和LCZ引脚。LCCOM引脚为三个天线连接的公共引脚,通过C11和R9接地。每个谐振天线必须调谐到基站单元的载波频率,以达到最佳信号接收状态(图5)。可利用每个通道的内部电容将天线调谐到最佳状态。

     器件初始上电时,数字部分利用SPI(CS、SCLK/ALERT和SDIO)对AFE配置寄存器进行编程。由于AFE输入灵敏度高(约3mV峰峰值),AFE对环境噪声非常敏感,所以必须采取措施避免沿PCB走线上产生过多交流噪声。在VDD和VDDT引脚分别使用电容C6和C12滤除噪声。

     二极管D1和D2及电容C5用于电池后备模式,二极管D2、D3和D7及电容C5用于无电池模式。为使无电池模式稳定运行,需要较大的C5容值。电容C5通过二极管D3和D7保存来自电池和线圈电压的电荷。当电池暂时断开时,C5储存的电荷可维持PIC16F639器件的供电。二极管D3和D7穿过空芯线圈相互连接,在三个外部LC谐振天线中产生强大的线圈电压。

     一旦检测到有效输入信号,数字MCU部分即被唤醒,如果命令信号有效,则发出一个响应。

     应答器可使用内部调制器(LF对讲)或外部UHF发送器发出响应。每个模拟输入通道在输入和LCCOM引脚间有一个内部调制器(晶体管)。如果AFE从数字MCU部分接收到箝位或断开箝位的命令,内部调制器就会分别导通和关断。天线电压分别根据箝位或断开箝位命令进行箝位和断开箝位,这称为LF对讲。LF对讲只在近距离应用中使用。基站可以检测应答器天线电压的变化并重建调制数据。

     在长距离应用中,应答器采用UHF发送器。由UHF(433.92 MHz)谐振器U2和功率放大器Q1构成一个用按键通断的UHF发送器。电容C2和C3的容量都在约20pF的范围内,具体取决于线路布局。一般由印刷电路板的金属走线而形成的L1是一个UHF天线,增大其环路面积后效率将显著提高。

     当MCU I/O引脚输出逻辑高电平时,UHF发送器部分导通,否则关闭。RC5输出为UHF信号的调制数据,可由基站的UHF接收器重建。

基站电路

     基站单元包括一个MCU、125kHz的发送器/接收器和一个UHF接收器模块。基站发出125kHz的低频命令信号,并通过UHF和LF接收来自应答器的响应。发出LF命令后,基站通过LF或UHF链路检查是否有响应。

     125kHz发送器产生一个基于MCU的脉宽调制器(PWM)输出的载波信号。电流驱动器U1放大来自MCU的125kHz方波脉冲的功率。U1的方波脉冲输出通过由L1、C2、C3和C4组成的LC串联谐振电路后变成正弦波。L1为用于125kHz LF天线的空芯电感(图6)。

      当LC串联谐振电路调谐到PWM信号的频率时,天线辐射最强。在谐振频率处,LC电路阻抗最小,这使得L1负载电流最大,从而产生很强的电磁场。用户可通过监视L1上的线圈电压调谐LC电路。二极管D1后的各个元件用来接收来自应答器的LF对讲信号。当应答器以LF对讲作出响应后,L1上的线圈电压会由于应答器线圈电压产生的磁场而改变。由于应答器线圈电压最初是由基站天线(L1)产生的,所以响应电压与初始电压的相位相差180o。因此,在给定条件下,L1上的电压将随着应答器的线圈电压变化。

      可通过包络检波器和由D1和C5构成的低通滤波器检测L1上线圈电压的变化。检测到的包络信号通过有源增益滤波器U2A和U2B。经过解调的模拟输出被馈送到MCU的比较器输入引脚,以进行脉冲整形。比较器输出可在TP6上得到,并由MCU解码。

引用地址:采用PIC16F639的被动无钥门禁系统设计

上一篇:PIC16C55单片机控制多用电子钟
下一篇:基于PIC单片机的SPWM控制技术

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved