基于单片机的ArtNet-DMX512灯光效果控制器设计
实验题目:基于单片机的 ArtNet-DMX512 灯光效果控制器设计
1. 课程简要信息
实验性质:电工电子系列开放创新性实验
实验学时:32 学时(8 课内 $+ 2 4$ 课外)
实验对象:面向“中南电子”创新创业基地的入驻学生,主要是电类相关专业本科 $3 \sim$ 4年级的学生,要求有单片机基础
2. 实验内容与任务(限 500 字)
电工电子类课程的学习,尤其是单片机课程的学习,强调理论联系实际。本实验来源于一个实际工程项目并适度简化,内容是设计一个以单片机为控制核心的灯光效果控制器。该控制器将上位机下发的 ArtNet 数据包转换为 DMX512数据包, 输出到三色LED灯解码板。
基本要求及任务如下:
1)控制器具有联机控制功能,与上位机通讯是以太网接口,采用基于 UDP的ArtNet协议;
2) 控制器能同步输出多路符合 DMX512协议的灯光控制信号(3到 4路);
3) 控制器具有人机接口,能显示工作状态,可设置控制器的 IP 地址;
4) 基于总体方案设计和可行性验证结果,设计原理图,绘制 PCB;自行购买元件进行焊接;编程,进行软硬件联合调试,完成样机实物制作;
5)以论文的形式撰写实验报告,展示作品,分组答辩。
扩展功能:
要求控制器具有脱机控制功能,在没有上位机的情况下,可将存储在 SD 卡上的灯光效果文件转化为DMX512 数据包输出。
本实验以小组为单位, $3 \sim 5$ 人为一组,自行组队。
3. 实验过程及要求(限 300 字)
本实验将分多个步骤来完成,具体过程及要求如下:
1)指导老师进行任务布置与分解,介绍相关背景知识(主要介绍 ArtNet 协议和DMX512 协议);
2)学生查找相关资料,进行总体方案设计——要求对比多个方案的优缺点,选择最佳性价比方案;
3)学生进行单元环节可行性验证——要求尽可能利用“中南电子”创新创业基地的现有实验条件,验证两个关键环节:上位机与单片机的 ArtNet 数据包传输以及单片机输出多路 DMX512信号;
4)指导老师审查学生的总体方案设计和可行性验证结果;
5)学生利用 AltiumDesigner 软件设计控制器的原理图,绘制 PCB 图,完成 PCB 制作——要求在设计过程中注意设计的规范性;
6)学生自行购买元件,焊接,编写简单测试程序进行硬件单元模块测试;
7)学生编写程序实现控制器的各模块功能,对单元模块进行软硬件联合调试——要求有系统软件设计程序流程图;
8)综合联调,优化程序,形成样机,并进行测试— 要求提供具体的测试结果;
9)撰写设计总结报告,并通过分组演讲答辩,完成整个设计内容。
4. 相关知识及背景(限 150 字)
这是一个运用单片机技术解决实际工程问题的典型案例,主要涉及的相关知识和有关技能包括:
理论知识—— 单片机系统的硬件设计及程序设计方法、EDA技术、网络通讯、舞台灯光领域的两个标准协议(ArtNet 协议和DMX512 协议)等;
基本技能——焊接电路板、常用电子元件的识别、常用测试仪器及调试工具的使用。
5. 教学目标与目的(限 100 字)
综合考查学生对单片机技术、电子电路设计等相关知识的掌握;引导学生理论联系实际,针对具体工程问题设计不同的解决方案并择优选择;引导学生根据需要设计电路、选择元器件、自行焊接与调试、构建测试环境与条件,完成一个完整的电子产品设计流程,提高动手能力。
6. 实验教学设计与引导
本实验的过程是一个比较完整的工程实践工程,需要经历学习研究、方案总体设计及可行性论证、系统软硬件设计、单元模块调试及样机整体联合调试、设计总结等过程。在实验教学过程中,指导教师需要在以下几个方面加强对学生的讲解及引导:
1)对题目的仔细研究和对任务的具体分析;
2)标准协议的学习方法:泛读协议的基础上,精读所需要的有用信息。ArtNet协议和 DMX512 协议是标准协议,内容涉及比较广泛,短时间内完全消化掉有苦难,也没必要。在泛读协议的基础上,要关注到 ArtNet 数据包是基于 UDP 协议的通讯方式,IP地址构成、端口、数据包具体组成等有用信息是精读重点;同理,DMX512协议是通过RS485 异步通讯方式进行数据传输,数据格式、波特率、时序等信息是关注重点;
3)方案设计时,针对系统提出的任务、要求,查阅资料,广开思路,提出不同的解决方案,并比较每个方案的可行性和优缺点;将系统分解成若干模块,明确各模块的功能、模块间的连接关系及实现方法等,构建总体方案与框图;鼓励拔尖学生,在方案设计时就把扩展功能考虑进去。总体方案设计时,需要重点思考以下问题:
a) UDP协议栈在单片机系统上如何实现?UDP协议是一种以太网标准通讯协议,在嵌入式系统应用中既可以把LwIP等开源源码移植到单片机程序中来实现,也可借助内置了协议栈的全硬件 TCP/IP(UDP) 嵌入式以太网控制器来实现。两种方法,一种是基于代码“软”实现,一种是基于芯片“硬”实现,各自特点是啥?如何选择?
b) 多串口在单片机系统中如何实现?一般的单片机芯片只具有 $1 \sim 2$ 个硬件串口,本实验所要求设计的控制器,需要输出 4 路 DMX512 信号,硬件上则需要 4 个串口,如何来实现?可以考虑在单片机的 IO 口上用软件模拟时序,实现“软”串口,也可以外扩串口控制芯片,实现多个硬件串口。多个串口的实现,同样存在“软”实现和“硬”实现。,各自特点是啥?如何选择?
c) 标准 DMX512 数据包时序如何实现?DMX512 协议以数据包的形式,通过 RS485异步通讯方式进行传输,波特率是 250Kbit/s。一个完整的 DMX512数据包包括一个 Break 信号、一个 Mark After Break(MAB)信号、一帧 Start Code信号、512 个数据帧和一个MTBP(空闲)信号,如图1 所示。

图 1 DMX512 数据包结构
每个 DMX512数据帧由11bit 构成,分别为 1个起始位、8个数据位和2个停止位。实现一个标准的 DMX512 数据包传输,关键在于必须有 Break 和MAB信号。这两个信号时序可通过代码延时子程序来实现,也可通过定时器中断来实现。这两种方式各自的特点是啥?是否还可以另辟路径,用其他方式来实现 DMX512数据包时序?
d) 多通道 DMX512 数据包的同步发送程序如何实现?DMX512 协议本质上是RS485 异步通讯方式,发送数据在程序实现上有查询、中断、DMA 等方式,若要实现多个串口同步发送,该使用哪种方式呢?
4)绘制原理图和 PCB 图时,注意绘图的规范性,PCB 板上注意留下测试孔;元件焊接过程中,先焊接控制器的电源电路部分,确保电源正常后,再焊接其他单元电路;焊接完毕后,要求先进行硬件接口的简单测试,确保硬件正常的前提下再编程实现功能模块;
5)调试过程中,要基于实验室的现有条件,搭建合适的测试环境(例如:调试 DMX512数据包发送环节时,若没有现成的 LED 解码板,可将控制器发送的数据包通过“USB—串口”硬件转换器送到 PC 上的“串口调试工具”去监测),调试过程做好记录,包括原始数据和用照片记录原始波形;
6)实验完成后,可以组织学生以项目答辩、评比等多种方式进行交流,小组之间相互学习,了解不同解决方案及其特点,交流在实验过程中出现的问题及解决方法等,拓宽知识面。
7 实验原理及方案
1)系统原理结构

图2 系统原理结构图
本试验需要完成的灯光效果控制器系统原理结构如图 2 所示,主要包括两个环
节:通过以太网网络接口接收上位机下发的 ArtNet数据包,重新打包后通过多个串口同步输出多路DMX512 数据包。
2)实现方案设计说明
(a)以太网网络接口及协议栈的实现
方案一: 选择自带有以太网接口的单片机,例如 STM32系列单片机 STM32F107和 STM32F407 就集成了以太网 MAC;TCP/IP 协议栈需要程序代码来实现,比较有名的嵌入式以太网协议栈有 uIP协议栈,LwIP 协议栈等;协议栈的移植,需要耗费单片机的大量资源,对编程者要求较高。
方案二:单片机外扩以太网收发芯片,这类芯片包含MAC和 PHY,常见的有SPI接口的 ENC28J60(如图 3 所示),也有并口形式的 RTL8019S,CS8900A 等;这种方案中TCP/IP协议栈还是需要单片机的程序代码来实现。

图1-2: 典型的ENC28J60接口
图 3 典型的 ENC28J60 应用图
方案三:直接使用内置了协议栈的全硬件 TCP/IP(UDP) 嵌入式以太网控制器。这类芯片既包含 MAC 和 PHY,又内置了协议,常用的有 Wiznet-W5200,W5500 等。单片机一般通过 SPI 总线与这类芯片打交道,只需控制芯片内的一些寄存器,即可完成完整的以太网通讯。
(b)多串口在硬件上的实现
方案一: 选择自带有多个硬件串口接口的单片机,例如 STM32 系列的大容量单片机就自带了5个串口。
方案二:用软件模拟的方法,把单片机的普通 IO做成串口;这种接口稳定性不好,使用时波特率不能太高。
方案三:单片机外扩串口扩展芯片,这种芯片有 SPI 接口的,也有并口形式的。
(c)人机接口电路
控制器的工作状态显示既可以用 LED 显示,也可用数码管或 LCD 来显示。
更改IP可以通过数字按键电路,也可以用拨码开关或者 AD 转换电路来完成。
(d)DMX512数据包时序的实现
标准的 DMX512 数据包时序中,必须有 Break 和 MAB 信号。这两个信号产生相对比较困难,可通过代码延时子程序来实现,也可通过定时器中断来实现,两者耗费的资源都比较多;而常用的 LED 灯光效果解码板中,采用的往往是一种只判断起始码的非标准收发方式。根据 DMX512 协议,每一串数据的开始都要有一个起始码,也称复位码,其有效数据为 0,这个数据从开始位到第十位是 0,用来声明数据传输开始,随后包含 1-512个数据,也称调光数据,其是标准的数据帧,第十位是 1。一般的单片机,都支持 8-9位数据发送的,非标准收发方式实现 DMX512数据包时,数据帧格式为 9 位数据,1 位停止位,无校验位,通过检测检测第十位,也就是所谓的 RB8 来进行数据的接收与传输,不需要发送 Break 和 MAB。这种方式中,发送的时候需注意起始码的数据第九位设为 0,调光数据第九位设为 1。
(e)多通道DMX512数据包的同步发送
DMX512 协议本质上是 RS485 异步通讯方式,发送数据在程序实现上有查询、中断、DMA 等方式。查询和中断方式需要 CPU 过多干预,很难实现多通道 DMX512 数据包的同步传输,而 DMA 方式是几乎不需要 CPU 干涉的。DMA 传输是将数据从一个地址空间复制到另外一个地址空间,串口发送数据应用 DMA 方式时,只需将发送内容送到对应的缓冲区,剩下的发送过程将由硬件自动完成。基于 DMA 方式,则能实现多通道DMX512数据包的同步发送。
8 教学实施进程
教学实施过程示意图如图 4 所示,大致分为前期、中期、后期三个阶段。

图4 教学实施过程示意图
试验前期,指导教师进行题目分析和任务分解,学生自行组队,查阅资料,进行系统方案设计及验证。学生设计多个方案,择优选择,基于实验室的实验条件进行实施环节的可行性验证,基于系统方案框图和可行性验证结果,与指导教师进行讨论,确定系统总体方案。
试验中期,学生自行设计系统的原理图和 PCB,自行购买元件,进行焊接(焊接 PCB时先焊接电源电路,确保电源正常后再焊接其他部分),编写简单测试程序,进行单元模块的测试;发现问题,进行修改,优化电路。单元模块测试完毕后,画出系统程序实现流程图,编程实施系统模块,搭建合理的测试环境,对整个系统进行软硬件联合调试,发现问题,反馈,进一步优化电路。这一阶段,学生需要充分发挥主观能动性,指导教师密切跟进每一环节,尤其是在搭建测试环境时,应给予重点指导。
实验后期,学生对系统样机进行整体测试,记录测试结果,撰写实验报告,进行个人总结。指导教师组织实物验收,答辩,分组交流,全面总结实验的实施过程。
9 实验报告要求
实验报告需要反映以下工作:
-
实验需求分析——正确理解项目要求,有任务分解,标出重点和难点;
-
实现方案论证——有多种实施方案的比较以及择优选择,注意考查性价比;
有总体方案框图,有可行性验证结果; -
电路设计与参数选择——提供标准的原理图和 PCB 图;
-
模块功能程序实现——有详细的程序流程图和关键性代码(或伪代码);
-
电路调试过程——有具体的调试结果,包括原始数据、原始信号波形等;
-
样机系统测试——描述测试环境,提供具体的测试结果;
-
实验结果总结——个人的心得体会必不可少!
10 考核要求与方法(限 300 字)
实验考核采用“目标 $^ +$ 环节 $^ +$ 报告”考核方式,实验结果验收占 $4 0 %$ ,过程考核占$4 0 %$ ,最终实验报告占 $2 0 %$ ,重点考核以下事项:
- 实物验收:功能与性能指标的完成程度(基本任务,拓展部分)以及完成的时间;
- 实验质量:包括3个方面——电路方案的合理性;硬件设计质量(包括焊接工艺、组装工艺等);软件质量(包括流程图、数据流图、代码质量等);
- 自主创新:功能构思、电路设计的创新性,自主思考与独立实践能力;
- 实验成本:是否充分利用实验室已有条件,材料与元器件选择的合理性,电路设计考虑的性价比;
- 调试结果:测试数据和有关波形的原始图片;
- 实验报告:实验报告的规范性与完整性。
整个考核过程一直持续在实验过程中,大致分为三个阶段:
前期:主要考核项目方案设计的合理性、电路设计的正确性;
中期:主要考核系统功能模块的完成进度,考查实验过程中的动手能力;
后期: 主要是实物验收,考核实验报告的质量以及答辩的现场表现。
11 项目特色或创新(可空缺,限 150 字)
本项目的特色在于:项目的工程性强,需要综合应用知识,且实现方法多样。
1.本项目具有工程背景,需要综合应用知识,理论联系实际,使学生对电子产品的整个设计流程有了整体认识;是个开放性实验,学生可自主组队和安排时间;
2. 实现方法多样性,在方案设计中能让学生体会到:电子系统设计中软硬不分家,有些硬件功能可以“软”实现,有些软件功能可以“硬”实现;
3. 本实验内容的实施,全面培养了学生的团队合作精神和综合动手能力。
实验案例信息表
| 案例提供单位 | 中南大学信息科学与工程学院 | 相关专业 | 自动化、测控、电气等电类相关专业 | |||
| 设计者姓名 | 毛先柏 | 电子邮箱 | maoxb1980@163.com | |||
| 移动电话 | 13054166287 | 通讯地址(含邮编) | 湖南省长沙市岳麓区中南大学校本部民主楼(410083) | |||
| 设计者姓名 | 电子邮箱 | |||||
| 移动电话 | 通讯地址(含邮编) | |||||
| 设计者姓名 | 电子邮箱 | |||||
| 移动电话 | 通讯地址(含邮编) | |||||
| 相关课程名称 | 单片机原理与应用、数字电子技术、EDA技术等 | 学生年级 | 电类相关专业大三、大四 | 学时(课内+课外) | 32课时(8课内+24 课外) | |
| 支撑条件 | 仪器设备 | 数字存储示波器、万用表、计算机、程控电源、数控焊台等 | ||||
| 软件工具 | Keil MDK、AltiumDesigner、以太网调试助手、串口调试助手 | |||||
| 主要器件 | STM32F103单片机、W5500、MAX485 | |||||