微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于DMX512协议的灯光控制信号无线传输设计

基于DMX512协议的灯光控制信号无线传输设计

时间:01-19 来源:互联网 点击:
3 系统软件实现

3.1 主要程序流程

系统上电后首先进行初始化配置,包括I/O端口输入/输出状态配置、串口配置、SPI接口设置、CC1100寄存器配置,以及无线传输数据格式的配置,使系统处于正常工作状态。此时主发射模块等待DMX512总线数据的到来。一旦DMX512数据包起始标志出现,即打开单片机串口,等待串口接收中断产生。中断产生之后单片机缓存总线数据,激活CC1100,并向其发送FIFO中写入发送数据,然后无线发送出去。

接收模块的工作流程和发送模块相反。在初始化完成之后,单片机设置好CC1100的FIFO寄存器,等待FIFO产生外部中断。这里外部中断被用作无线数据接收成功的标志。FIFO中断产生后,单片机通过SPI总线缓存FIFO中的数据,并立刻通过串口模拟DMX512时序,恢复总线信号,完成信号的无线传输。发送和接收数据流程如图4所示。



3.2 自定义通信数据格式

虽然CC1100的传输数率比DMX512的时序速率要高,但毕竟CC1100的FIFO有限,不可能把一个DMX512数据包一次性全部发送出去,因此在主从端之问必须协商一种合适的数据通信格式。CC1100支持4种格式的数据包,分别是:定长(小于255字节)、变长(小于255字节)、无限长和有限长。完整的数据包包括前导码、同步字、数据长度、地址、有效数据和CRC校验。本系统采用有效数据为32字节的有限长格式,具体的数据格式如下:



DMX512的数据包中包含有512路调光数据,而CC1100发送一次数据包只包含32个有效数据,因此在发送时要在CC11OO的地址码段填入该次发送有效数据在总数据包中的序号,以保证接收端在接收的时候按顺序重组成功。

3.3 拆解和重组DMX512总线数据

系统在对DMX512总线数据的拆解和重组过程中,都利用了单片机内部的串口单元。但DMX512总线数据时序与单片机UART串口不完全相同,因此在使用的时候需要做如下修正。

主发射端对DMX512总线数据的拆解,需要先将串口端口(P3.1)配置为I/O口。当接收到DMX512的起始标志(即P3.1=0)时,开启定时器 0开始计数,88μs溢出中断后准备接收数据。单片机确认M.a.B(Mark afterBreak)信号出现后,配置串口端口为普通串口,开始缓存数据帧。

从接收端在无数据传输时,要把串口端口配置为I/O口,并置为高电平。在接收完毕无线数据后,先将串口端口拉低,利用定时器延时超过88 μs,完成起始标志(Break)信号的发送。然后配置串口端口为普通串口,按缓存的顺序将数据发送到DMX512总线上。数据发送完成之后,还需要将串口端口还原为普通I/O,发送结束信号(小于1 s的高电平),完成DMX512时序要求。

4 总结

基于CC1100设计的DMX512灯光控制信号无线传输系统,具有成本低、外围器件少、电路结构简洁的特点。虽然CC11OO标称空旷地发射距离可以达到200 m,但在实际使用时,由于楼宇等建筑物的影响,有效的通信距离为30 m左右。因此利用该系统能实现小范围(如室内环境)将DMX512有线传输转变为无线传输。为了延长系统传输距离,可以考虑在射频收发单元增加功放模块,在保证灯光数据实时传输的条件下,降低通信速率,提高系统传输的稳定性。

参考文献

1. 钱明光 DMX512信号格式及应用 2006(5)
2. 方福波.刘有源.陈定方 DMX512控制协议及其实现 [期刊论文] -照明工程学报2002(3)
3. 宏晶科技 STC系列8051单片机中文指南 2005
4. 李丽军.王代华.祖静 基于CC1100的无线数据传输系统设计 [期刊论文] -国外电子测量技术2007(12)
5. 潘旭兵.林中 基于CC1100无线手持终端设备的设计 2007(3)

作者:华南师范大学 梁艺  周卫星  陈炳锐 来源:《单片机与嵌入式系统应用》 2009(7)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top