ionicons-v5-f

基于单片机的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 实验报告要求

实验报告需要反映以下工作:

  1. 实验需求分析——正确理解项目要求,有任务分解,标出重点和难点;

  2. 实现方案论证——有多种实施方案的比较以及择优选择,注意考查性价比;
    有总体方案框图,有可行性验证结果;

  3. 电路设计与参数选择——提供标准的原理图和 PCB 图;

  4. 模块功能程序实现——有详细的程序流程图和关键性代码(或伪代码);

  5. 电路调试过程——有具体的调试结果,包括原始数据、原始信号波形等;

  6. 样机系统测试——描述测试环境,提供具体的测试结果;

  7. 实验结果总结——个人的心得体会必不可少!

10 考核要求与方法(限 300 字)

实验考核采用“目标 $^ +$ 环节 $^ +$ 报告”考核方式,实验结果验收占 $4 0 %$ ,过程考核占$4 0 %$ ,最终实验报告占 $2 0 %$ ,重点考核以下事项:

  1. 实物验收:功能与性能指标的完成程度(基本任务,拓展部分)以及完成的时间;
  2. 实验质量:包括3个方面——电路方案的合理性;硬件设计质量(包括焊接工艺、组装工艺等);软件质量(包括流程图、数据流图、代码质量等);
  3. 自主创新:功能构思、电路设计的创新性,自主思考与独立实践能力;
  4. 实验成本:是否充分利用实验室已有条件,材料与元器件选择的合理性,电路设计考虑的性价比;
  5. 调试结果:测试数据和有关波形的原始图片;
  6. 实验报告:实验报告的规范性与完整性。

整个考核过程一直持续在实验过程中,大致分为三个阶段:

前期:主要考核项目方案设计的合理性、电路设计的正确性;
中期:主要考核系统功能模块的完成进度,考查实验过程中的动手能力;
后期: 主要是实物验收,考核实验报告的质量以及答辩的现场表现。

11 项目特色或创新(可空缺,限 150 字)

本项目的特色在于:项目的工程性强,需要综合应用知识,且实现方法多样。

1.本项目具有工程背景,需要综合应用知识,理论联系实际,使学生对电子产品的整个设计流程有了整体认识;是个开放性实验,学生可自主组队和安排时间;
2. 实现方法多样性,在方案设计中能让学生体会到:电子系统设计中软硬不分家,有些硬件功能可以“软”实现,有些软件功能可以“硬”实现;
3. 本实验内容的实施,全面培养了学生的团队合作精神和综合动手能力。

实验案例信息表

案例提供单位中南大学信息科学与工程学院相关专业自动化、测控、电气等电类相关专业
设计者姓名毛先柏电子邮箱maoxb1980@163.com
移动电话13054166287通讯地址(含邮编)湖南省长沙市岳麓区中南大学校本部民主楼(410083)
设计者姓名电子邮箱
移动电话通讯地址(含邮编)
设计者姓名电子邮箱
移动电话通讯地址(含邮编)
相关课程名称单片机原理与应用、数字电子技术、EDA技术等学生年级电类相关专业大三、大四学时(课内+课外)32课时(8课内+24 课外)
支撑条件仪器设备数字存储示波器、万用表、计算机、程控电源、数控焊台等
软件工具Keil MDK、AltiumDesigner、以太网调试助手、串口调试助手
主要器件STM32F103单片机、W5500、MAX485

获奖信息

获奖等级 二等奖
年份 2017

作品信息

作者信息

作者
毛先柏
学校
中南大学

电工电子实验教学资源平台 苏ICP备09069895号-19