去;另一方面接收模块在接收无线数据之后,由
MCU 单元将数据整合重组,
在接收端总线恢复
DMX512 控制信号。这样设计的好处是可以将有线和无线传
输相结合。在接收端架设一个无线接收模块就可以保证该区域
DMX512 控制信
号得到有效传输,并不需要为每个设备都安置一个无线接收模块。
2.2 微控制器单元
本系统的微控制器采用了
STC 系列单片机
STC12C5410
。该单片机含有
12KB 的 Flash
存储器
、512 字节 RAM、异步串口(UART)和内部 PLL 单元等。
内置的
SPI 总线控制器可以方便地与射频芯片 CC1100 通信,而内部的 ISP(在
线可编程)模块允许用户直接通过串口下载程序,给系统软件升级带来便捷条
件。由于
DMX512 的数据波特率为 250kbps,所以选取 16MHz
晶振
作为时钟源,
以便产生同频波特率。
2.3 射频收发单元
CC1100 是一款低功耗单片射频收发芯片,具有通信距离远、功耗低、接口灵
活等优点。该芯片主要设定工作在
315MHz、433MHz、868MHz 和 915MHz 的工业、
科学和医学波段;数据速率支持
1.2~500kbps 的可编程控制;提供-30~10dBm
的输出功率;最大空地发射距离大于
200m,工作电压为 1.8~3.6V;最大支持
64 字节的接收和发送 FIFO。设计人员可以通过 SPI 接口完成内部寄存器配置,
读写接收/发送
FIFO 等内部控制。
2.4 接口电路设计
接口电路的设计主要包括
2 部分:DMX512 总线与单片机之间的通信,以
及单片机控制
CC1100 射频模块收发数据。由于 DMX512 总线数据帧格式与通用
异步串口(
UART)格式基本兼容,因此系统与 DMX512 总线的通信利用串口
通信接口。但
DMX512 信号的电气接口标准是 EIA-485,与单片机的 TTL 电平
接口不兼容,要实现相互通信,需要采用电平转换芯片作为桥接电路。在分解和
还原
DMX512 总线数据上,分别采用 MC3486 和 MC3487。在系统发送端,通过
MC3486 将 DMX512 总线的差分数据转换为 TTL 电平数据,由单片机的串口接
收数据;另外,串口的该引脚还同时连接到单片机的
P3.2/INTO 口,用于识别
DMX512 总线的起始标志(Break),提前通知单片机准备接收总线数据。在系
统接收端,通过
MC3487 将单片机串口 TTL 电平数据转换为 DMX512 差分数据。
对
CC1100 的内部寄存器配置和 FIFO 单元读写都通过单片机 4 线 SPI 总线
接口来完成。
MISO 和 MOSI 分别是数据发送、接收端口,SCLK 是同步时钟,SS
用作器件的片选信号。
CC1100 的 GD02 信号用作内部 FIFO 的状态信号,用于提
示单片机
FIFO 空间已满。发射和接收模块接口示意图如图 3 所示,发射模块与
接收模块的结构基本一致,只是通信数据流方向相反。
3 系统软
件实现
3.1 主要程
序流程
系统上电后
首先进行初始化
配置,包括
I/
O 端口输入/输
出状态配置、串口配置、
SPI 接口设置、CC1100 寄存器配置,以及无线传输数据