基于DMX512协议的灯光控制信号无线传输设计
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有线传输转变为无线传输。为了延长系统传输距离,可以考虑在射频收发单元增加功放模块,在保证灯光数据实时传输的条件下,降低通信速率,提高系统传输的稳定性。
模拟信号相关文章:什么是模拟信号
评论