深圳pcb抄板LPC2104的智能灯光控制器原理及设计
因此,设计一个可以便捷地控制灯光、同时还提供场景组合等功能的智能化灯光系统不仅具有实用价值,而且还具有广阔的市场前景。
2 设计目标
设计一个智能化灯光控制器,安装在家中的各个房间,提供无线遥控、轻触式灯光控制、场景组合、预设存储等丰富功能。通过手持遥控器来控制住宅内所有的灯光;通过遥控器上的场景设置按键,方便地设定灯光场景和迅速切换,可以通过面板上的轻触按钮控制灯光的开关和亮度,或者是多盏灯进入某种预设的场景,各灯光控制器通过RS485的总线与家庭以太网网络终端通信实现对灯光亮度的远程控制和查询。
该智能化灯光控制系统分为接收外来控制信号和执行控制操作两部分,为了接收控制信号,系统需具备无线接收功能和按键输入面板,为了对灯具执行控制,需要设计220V调光控制电路。
LPC2104具有丰富的外围接口资源,并有很高的可靠性和运算速度,非常适于该系统的设计,智能灯光控制器原理如图1所示。
3 LPC2104功能简介
LPC2104是PHILIPS公司专为嵌入式应用提供的高性价比微控制器解决方案。它采用ARM公司的16位/32位RISC结构,内核是ARM7TDMI-S,CPU操作频率可达60MHz,片上集成:具有ISP和IAP功能的128KB Flash程序存储器、16KB静态RAM、2个UART、1个I2C串行接口、1个SPI串行接口,多达6路输出的PWM、2个定时器,分别具有4路捕获/比较通道、实时时钟及看门狗定时器等,能够与常用的外围设备实现无缝连接,功能强大,本文以LPC2104为核心,设计结构简单、性能稳定的智能灯光控制器。
4 无线数传模块设计
4.1 nRF401简介
无线通信的实现有三种方案:蓝牙通信、红外无线遥控、使用短距离无线数传器件。对于蓝牙方案,传输距离和器件成本是值得考虑的问题,蓝牙主要用于短距离传输(最多10m),且成本一直偏高。红外传输虽不用考虑成本问题,但从手持设备所能提供的功耗来看,它能传输的距离实在太近,只有几米,且对红外发射角度有一定要求,存在“必须保证传输信息的两个设备正对,且中间不能有障碍物”等致命的缺陷,与前两种方案相比,采用短距离低功耗的无线射频器件nRF401是最佳选择。访问网站http://www.pcbsb.com
nRF401无线通信收发器集成了高频发射/接收、PLL合成、FSK调制/解调和多频道切换等功能,在低成本数字通信应用中具有突出的技术优势,其主要技术特点有:(1)工作在国际通用的两个频道:433.92MHz和434.32MHz,无需进行频道申请即可使用;(2)采用DSS+PLL频率合成技术,外接元件仅有1个晶体振荡器和几个电阻电容和电感,基本无需调试就可工作,且稳定性好;(3)数字通信采用具有较高的抗干扰能力的FSK调制方式,支持直接数据输入输出操作,可直接与MPU的UART串行口连接;(4)有2个可选择的工作频道,采用半双工工作模式,最高数据传输速率可达20bk/s;(5)工作电压为2.7V-5V,待机状态耗电仅为8μA,能满足低功耗设备的要求。
采用nRF401器件无需进行初始化和配置,不需要对数据进行曼彻斯特编码,并可以使用廉价的PCB天线,无需进行复杂的射频电路设计和调试,使产品的开发应用更为便捷。
4.2 nRF401与LPC2104的连接
nRF401与LPC2104的连接方式有多种选择,如GPIO、I2C、UART等,从硬件连接及通信协议最简化的角度来看,选择串口与无线模块相连是最佳方案,UART1的TXD1、RXD1分别与nRF401的DIN、DOUT连接。nRF401与LPC2104接口电路如图2所示。
由图2可见,嵌入式CPU对无线模块的控制接口主要由5根信号线组成,分别是DIN、DOUT、TXEN、PWR_UP、CS。其中,TXEN是发送使能端,通过对TXEN置位和复位实现发送状态和接收状态的切换,并通过GPIO口进行控制,PWR_UP是节能控制端,利用LPC2104的一个GPIO口对其进行编程,实现无线模块的工作模式和休眠状态的切换;电路板克隆CS可进行频道选择,通过GPIO设置,可以利用LPC2104的UART1串口控制DIN、DOUT信号。
为了节能,nRF401大多数情况下应处于关闭状态,无线部分硬件上是不具备自动唤醒功能的,必须通过软件方式采用合理的通信协议以保证节能同时数据不丢失。
5 调光控制电路设计
采用单片机I/O口灌电流的方法控制晶闸管实现开关和调光控制。用内部带有过零检测电路的光电耦合器MOC3041作为晶闸管的驱动器,同时能实现强、弱电的隔离。
传统的调光方法都采用移相触发晶闸管,控制晶闸管的导通角来控制输出功率,不
仅同步检测电路复杂,而且在晶闸管导通瞬间会产生高次谐波干扰,造成电网电压波形畸变,影响其他用电设备和通讯系统的正常工作,本系统中采用过零触发晶闸管导通与关断的时间比值来调节灯具的功率,由于过零触发不改变电压的波形而只改变电压全波通过的次数,不会对电网造成污染,因此,本系统采用过零触发方式。
MOC3041内部含有过零检测电路,当输入引脚1输入15mA的电流,输出端6引脚、4引脚之间的电压稍过零时,内部双向晶闸管导通,触发外部晶闸管导通,当MOC3041输入引脚输入电流为0时,内部双向晶闸管关断,从而外部晶闸管也关断,其调光控制电路如图3所示。
6 无线模块软件设计
无线模块通过UART串口与系统相连,所以必须对UART进行初始化,LPC2104的UART串口符合RS232标准,也支持550工业标准。
LPC2104有两个通用的异步串行接口(UART),启动时UART默认状态是无法使用的,必须通过编程GPIO寄存器来使能它们。
本系统使用UART1与nRF401进行连接,UART1带有调制解调器接口,16字节接收和发送FIFO。内置波特率发生器以及包含标准的调制解调器接口信号。
在使用UART1时,先要设置TXD1、RXD1引脚连接方式,pcb抄板然后设置串口的波特率及工作模式,即可进行数据的发送和接收,本系统使用11.0592MHz晶体振荡器,不适用PLL,VPB为4分频,设置UART1波特率为9600bit/s,则除数值N=18,即12H,UART1的初始化程序如下:
在操作系统环境下,系统启动时会自动初始化串行口,所以应用程序调用串行口资源将变得更容易,值得注意的是,应用程序往往是多任意系统,为了实时监测串行口消息,在操作环境中一般单开一个串行口扫描任务,保证信息不丢失,在一个已有的工程文件的主函数中添加串行口的寄存器初始化代码,并添加串口扫描任务,由于对无线模块的控制还有系统的GPIO,所以扫描程序中还要包括对I/O的操作,当系统收到串口信息时,将会主动向主任务发送一个串行口信息,主任务接收到该信息将会调用响应函数,响应该消息。