background image

格式的配置,使系统处于正常工作状态。此时主发射模块等待

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(MarkafterBreak)信号

出现后,配置串口端口为普通串口,开始缓存数据帧。