基于CC2430的多功能电动车遥控电子锁的设计
2012-11-24李良光屈庆琳
胡 敏,李良光,屈庆琳
(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)
近几年,随着ZigBee技术的发展,无线通信和无线传感网络正在向人们生活的各个方面渗透。它不仅应用到建筑和家庭自动化、工业监控、无线传感器网络,而且越来越多地应用到日常生活中。由于世界能源的匮乏及环境污染的影响,国家在进一步提倡使用电动车,藉此,电动车会慢慢普及,随之相关的遥控电子锁技术显得尤为重要。现有的电动车电子锁是采用单片机和无线发射模块共同实现的。若使用ZigBee技术设计电子锁时就只需使用CC2430片上系统就可以了,不再需要单独的射频芯片,其集成度高,降低了系统的复杂性。CC2430无线单片机待机时电流小于0.6 μA,在32 kHz晶体时钟下运行,电流消耗小于1 μA,使用纽扣电池寿命可以长达 10年。本文研制了一种基于ZigBee芯片CC2430片上系统的电动车遥控电子锁,并采用了睡眠/唤醒机制,大大降低了整个系统的功耗;系统软件编程通过了IAR7.30B环境的测试。
1 CC2430简介
CC2430是Chipcon公司生产的并沿用了以往的CC2420芯片的结构,在单个芯片上集成了ZigBee射频前端、内存和微控制器。CC2430的休眠模式和转换到主动模式的超短时间的特性,特别适合那些要求电池寿命非常长的应用。其主要特点是高性能、低功耗的8051微控制器内核;适应2.4 GHz频段IEEE 802.15.4的RF收发器;极高的接收灵敏度和强大的抗干扰性能;具备在各种供电方式下的数据保持能力;掉电方式下,电流消耗只有 0.9 μA,外部中断或者实时钟(RTC)能唤醒系统;挂起方式下,电流消耗小于 0.6 μA,外部中断能唤醒系统;电源电压范围宽(2.0~3.6 V);高级加密标准(AES)协处理器;2个支持多种串行通信协议的USART;1个 IEEE 802.15.4媒体存取控制(MAC)定时器;1个通用的16位和2个8位定时器;支持硬件调试。CC2430具有两个工作频率,一个是32 MHz的正常工作频率,一个是32.768 kHz的睡眠工作频率。本设计采用了睡眠/唤醒机制,当遥控器和电动车电子锁正常通信时,工作频率为32 MHz,而当遥控器和电动车电子锁都处于睡眠状态时,工作频率为32.768 kHz,这样可以降低系统的功耗。
2 硬件设计
遥控电子锁系统包括两部分:第一部分是遥控器,此部分硬件有CC2430、按键电路、3 V的纽扣电池。第二部分是电动车主控电路:此部分的硬件有CC2430控制核心、输出驱动与控制电路。控制电路主要是由继电器、电机等构成。
2.1 遥控器的硬件设计
遥控器的硬件框图如图 1所示,由 CC2430、LED、天线、按键电路组成。LED用来指示系统的工作状态,一共有3个按键,分别为:开锁键、关锁键(寻车键)、无钥匙开启键(即不需要钥匙也一样能使电动车启动)。按键值是通过几个电阻的分压值来判断的,通过P0.7口连接到ADC,经ADC采样后去触发中断。
2.2 主控电路的硬件设计
主控电路的硬件框图如图2所示,包括CC2430、LED、蜂鸣器、输出驱动电路及控制器电路。输出驱动电路由两个三极管的放大作用来实现。其控制器电路由继电器、电机及电磁铁等组成。遥控器通过按键值传来不同的信号 a(锁车信号)、b(开锁信号)、c(无钥匙开启信号)。a信号一方面被蜂鸣器接收电路接收,使蜂鸣器开始报警,指示灯闪烁,进入警戒状态;而同时又被另一控制器电路接收,输出信号控制继电器1工作,使电磁铁动作和电动机正转,实现上锁。此功能还可以当作是寻车功能来使用。b信号被蜂鸣器电路接收后解除警报状态,另一方面又被控制器电路接收,使继电器2工作,控制电磁铁和带动电动机反转,实现开锁。c信号被蜂鸣器接收,使蜂鸣器开始鸣响,而控制电路使启动继电器工作吸合(启动继电器与电按钥匙并联),电瓶电流从继电器的闭合触电传到主控制器,如此,电动车就被启动了,实现了无钥匙开启功能。其系统框图如图3所示。
3 软件设计
软件部分包括硬件的初始化程序、协议栈初始化程序、数据的接收和发送程序。接收程序运行于电子锁接收节点当中,接收来自遥控器发送节点传来的数据信息,如:开锁、锁车、开启等信息。应用程序和协议栈都被下载到CC2430的闪存中。
3.1 遥控器的软件设计
首先初始化所有要用到的硬件,如:ADC、DMA、I/O等,然后调用 aplInit()函数来初始化协议栈。因为发射节点担负的是协调器的角色,首先得定义工作频率和网络号,然后调用apl Form Net Work()来尝试建立网络。其定义为:
默认的个人局域网的PANID号是1347,协调器扫描所有被ZCD_NV_CHANLIST参数制定的通道和选择一个最小能量的通道。如果有2个或2个以上的最小能量通道,则协调器选择在ZigBee网络中存在序号最小的通道。所以此设计中在信道定义为可选的最小的11信道。然后协调器将选择用默认的个人局域网的PANID。建立好网络后,遥控器发送“加入网络”信号,若收到主控节点的应答信号,则表示网络建立成功,进入遥控状态;如果没有收到则进入到睡眠/唤醒状态。发射节点程序的流程图如图4所示。遥控器的按键值是通过CC2430的ADC对几个电阻的分压值采样而得到的,然后通过DMA传到TXFIFO缓存中,最后通过射频前端发送出去。当遥控器的唤醒键按下时,红色的LED灯闪一下,表明自己被唤醒了;而当接收到主控节点的应答信号时,绿色的LED灯闪烁一下,说明电子锁已经被唤醒。当开锁、锁车、开启键按下时,红色LED灯闪一下,而绿灯闪时则表明主控节点已经完成了相应的动作。
3.2 主控节点的软件设计
当接收节点上电后,接收模块主程序也首先开始初始化所有用到的硬件,然后就初始化协议栈,若LED灯闪烁一下,表明程序已经进入到等待遥控器发来信息并开始无线检测监听,如果收到“加入网络”数据时,则开始判断是否是“开锁、锁车、启动”按键,进而进行相关的操作。若是“开锁键”,则蜂鸣器响一下,并置开锁状态;如不是,则接着判断是否是“启动键”,若是则置启动状态,蜂鸣器响。如不是再接着判断是否是 “锁车键”,是则置锁车状态,蜂鸣器响,指示灯亮,否则进入到无线侦听状态。没有收到“加入网络”数据,则进入唤醒/睡眠状态的判断。接收节点的程序流程图如图5所示。然后根据遥控器节点中已经定义好的网络号和信道号来同样定义主控节点,这样才能完成正常的通信功能,才能保证两节点可靠的传输数据,因为只有它们自己才知道频号和网络号,外在的控制信号不能控制锁的动作。
传统的电动车的安全加密都是采用固定编码或滚动编码技术,而ZigBee本身就有非常严密安全的加密机制,其采用的是AES加密标准,ZigBee技术针对不同的应用,提供了不同的安全服务。这些服务分别施加在MAC层、NWK层和APL层上,其对数据的安全保护是在CCM*模式下执行AES-128加密算法。CCM*是CCM的增强版本,它包含CCM的所有特征,并提供加密和完整性检测的功能,CCM模式是由计数器模式和密码块链接消息鉴权代码模式相结合构成的。使用基于CCM*模式的安全级别来保护输入输出帧,是最基本的ZigBee安全性需求。另外,与其他安全模式不同,CCM*模式对于所有CCM*安全级别只使用一个密钥,也就是说,由于 ZigBee栈使用 CCM*模式,MAC、NWK、APL层可重复使用相同密钥。
本文的创新点是基于ZigBee技术及睡眠/唤醒机制在电动车遥控电子锁方面的应用,此设计采用的是成都无线龙的CC2430的开发套板,软件程序和协议栈都是在IAR7.30B的环境下通过调试的,通过协议分析仪对数据包的序列号、源地址、目的地址、数据包长度和传输时间等重要参数进行监控、分析。因为本设计采用的是点对点的数据传输方式,传输的距离较远,经试验传输距离可达到100 m以上,而且系统功耗低,大大延长了电池的使用寿命。并且其系统组成所需的硬件少,从而组成设备不但体积小,而且方便轻巧。
[1]高守玮,吴灿阳.ZigBee技术实践教程[M].北京:北京航空航天大学出版社,2009:100-106.
[2]吕钊钦,薛彦全,沈景新,等.多功能电动车遥控电子锁设计[J].农业装备与车辆工程,2010(2):39-41.
[3]蔡凡弟.电子遥控电路及其应用[J].电子世界,1995(2):45-48.
[4]李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京:北京航空航天大学出版社,2007.