无线模块通过UART串口与系统相连,所以必须对UART进行初始化,LPC2104的UART串口符合RS232标准,也支持550工业标准。
LPC2104有两个通用的异步串行接口(UART),启动时UART默认状态是无法使用的,必须通过编程GPIO寄存器来使能它们。
本系统使用UART1与nRF401进行连接,UART1带有调制解调器接口,16字节接收和发送FIFO。内置波特率发生器以及包含标准的调制解调器接口信号。
在使用UART1时,先要设置TXD1、RXD1引脚连接方式,然后设置串口的波特率及工作模式,即可进行数据的发送和接收,本系统使用11.0592MHz晶体振荡器,不适用PLL,VPB为4分频,设置UART1波特率为9600bit/s,则除数值N=18,即12H,UART1的初始化程序如下:
在操作系统环境下,系统启动时会自动初始化串行口,所以应用程序调用串行口资源将变得更容易,值得注意的是,应用程序往往是多任意系统,为了实时监测串行口消息,在操作环境中一般单开一个串行口扫描任务,保证信息不丢失,在一个已有的工程文件的主函数中添加串行口的寄存器初始化代码,并添加串口扫描任务,由于对无线模块的控制还有系统的GPIO,所以扫描程序中还要包括对I/O的操作,当系统收到串口信息时,将会主动向主任务发送一个串行口信息,主任务接收到该信息将会调用响应函数,响应该消息。
7 结束语
无线通信模块nRF401集发射、接收于一体,大大简化了灯光控制器设计的复杂程度,智能灯光控制器通过RS485接口很容易组网,为实现智能家居网络化提供了方便。
由图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所示。