1、DMX512协议简介

DMX 是Digital MultipleX 的缩写,意为多路数字传输(具有512条信息的数字多路复用”)。DMX512控制协议是美国舞台灯光协会(usITT)于1990年发布的灯光控制器与灯具设备进行数据传输的工业标准,全称是USITTDMX512(1990);

DMX512 在其物理层采用EIA-485差分信号,结合可变尺寸,基于分组的通信协议。它是单向的。DMX512不包含自动错误检查和纠正功能,因此不适用于危险应用,如烟火或舞台装置的移动。电磁干扰,静电放电,不正确的电缆端接,电缆过长或电缆质量都可能造成虚假触发,但是在连接控制器(如照明控制台)与调光器和特效设备等都有广泛应用。

2、DMX512协议分析

2.1、DMX512指令帧介绍:

每一个DMX 控制字节叫做一个指令帧,称作一个控制通道,可以控制灯光设备的一个或几个功能。一个DMX 指令帧由1个开始位(S)、8个数据位(D0-D8)和2个结束位(E)共11位构成,采用单向异步串行传输,如图1所示。

图1 DMX512 定时程序的帧结构(上图)和信息包结构(下图)

图1 中虚线内控制指令中的S 为开始位,宽度为一个比特,是受控灯具准备接收并解码控制数据的开始标志;

E为结束位,宽度为两个比特,表示一个指令帧的结束;

D0~ D7为8 位控制数据,其电平组合从00000000一11111111 共有256个状态(对应十进制数的0~255),控制灯光的亮度时,可产生256个亮度等级,0000~ (0)对应灯光最暗,11111111(255)对应灯光最亮。

DMX512指令的位宽(每比特宽度)是4 us,每一个指令帧11位,故指令帧宽度为44 us,传输速率为1/44us = 250 kbps。

2.2、DMX512信息包

一个完整的DMX512信息包(Packet)由一个MTBP位、一个Break 位、一个MAB位、一个SC 和512个数据帧构成。

MTBP(Mark TimeBetween Packets)标志着一个完整的信息包发送完毕,是下一个信息包即将开始的“空闲位”,高电平有效。

Break为中断位,对应一个信息包结束后的程序复位阶段,宽度不少于两个帧(22 比特)。程序复位结束后应发送控制数据,

MAB位,由于每一个数据帧的第一位(即开始位)为低电平,所以必须用一个高电平脉冲间隔前后两个低电平脉冲,这个起间隔、分离作用的高电平脉冲即MAB(Mark After Break),此脉冲一到,意味着“新一轮”的控制又开始了。

SC(Start Code)意为开始代码帧(图1中的第0帧),和此后到来的数据帧一样,也是由11 位构成,除最后的两个高电平的结束位之外,其他9位全部是低电平,通常将其叫做第0 帧或第0通道(Ch~nel No 0),可理解为一个不存在的通道(Non一~istent Channe1)。

表1 DMX512 信息包定时表

表1 是DMX512 信息包的定时表,表中NS意为自己设定,宽度没有严格限制,由程序设计者自行决定,比如MTBP的宽度可以介于0~1秒之间,其他建议采用典型值。

调光控制台每发送一个信息包,可以对全部512个受控通道形成一次全面的控制。发送一个信息包的时间大约是23 ms,每秒钟将对所有512个受控通道完成44 次控制,即受控光路的刷新频率44 Hz,如果实际受控通道少于512个,那么刷新频率将相应提高。

3、DMX512接口电路

以下是使用RJ45连接器的接线及驱动电路 :

(XLR-5和RJ45基本类似)

表2 DMX512 设备使用RJ45连接器的接线表

图2 DMX512 设备接口驱动电路

4、C51开发的DMX512发送程序

[cpp] view plain copy

1. // 串口工作在方式3

2. void send_dmx (void)

3. {

4. unsigned int count;

5. EA = 0;

6. TXD = 1; //break

7. TXD = 0;

8. Delay88us();

9. TXD = 1;

10. Delay8us();

11. TB8 = 1; //MAB

12. SBUF = 0x00;

13. while (!TI);

14. TI = 0;

15. for (count=0 ; count

16. TB8 = 1;

17. SBUF = XBYTE[count];

18. while(!TI);

19. TI = 0;

20. }

21. TXD = 1;

22. EA = 1;

23. }

5、C51开发的DMX512接收程序

[cpp] view plain copy

1. // 串口工作在方式3

2. void uart(void) interrupt 4

3. {

4. static bit flag = 0;

5. if(RI) {

6. if(RB8 == 0) {

7. if(SBUF == 0)

8. flag = 1; //set flag when meet a break

9. Recv.count = 0; //reset uart data counter

10. }

11. else if (flag == 1) {

12. if(Recv.count == 0) //byte after reset

13. if(SBUF != 0) //not a start code

14. flag = 0; //error, reset flag

15. if(Recv.count >= Recv.addr && Recv.count < Recv.addr + CTL_LEN) {

16. Recv.dat.Byte[Recv.count - Recv.addr] = SBUF;

17. }

18. If (Recv.count < 512) Recv.count++;

19. else flag = 0;

20. }

21. RI = 0;

22. }

23. }

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

(点击找小助理领取)

DMX512协议及对接口电路的分析相关推荐

  1. dmx512协议c语言编程,DMX512协议+c程序代码.pdf

    DMX512 协议 1.协议简介 DMX 是Digital MultipleX 的缩写 ,意为多路数字传输.DMX512 控制协议 是美国舞台灯光协会(USITT)于1990 年发布的灯光控制器与灯具 ...

  2. Matlab实现 线性动态电路可视化分析

    Matlab实现 线性动态电路可视化分析 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 编程思路 这个编程总体采用面向过程的编程思想,将人在 ...

  3. dmx计算机,DMX512协议是什么 DMX512数字灯光控制系统介绍

    引言 基于DMX512控制协议进行调光控制的灯光系统叫做数字灯光系统.目前,包括电脑灯在内的各种舞台效果灯.调光控制器.控制台.换色器.电动吊杆等各种舞台灯光设备,以其对DMX512协议的全面支持,已 ...

  4. 模拟电子技术不挂科学习笔记3(放大电路的分析方法)

    文章目录 一.放大电路基础(2~4分) 二.放大电路的分析方法(10分) 写在最后 一.放大电路基础(2~4分) 1.放大电路基础知识 2.放大电路基础例题 二.放大电路的分析方法(10分) 1.放大 ...

  5. IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析

    IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析 1.蓝牙简介 什么是蓝牙4.0 蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0版本涵盖了三种蓝牙技术,即传统蓝牙.高速蓝牙和低 ...

  6. 三极管发射极偏置原理应用于LED驱动电路的分析

    图示为一个应用于实际的基于NPN三极管发射极偏置的LED驱动电路设计. 首先,说明一下所谓的三极管发射极偏置,即是让三极管有一个固定的发射极电流Ic,是属于共发射极电路(CE)的一种.该电路常见的应用 ...

  7. 第四周 放大电路的分析

    放大电路的分析方法 一.等效电路法 1.直流通路 1.1.Q点(直流静态工作点) 1.2.rbe=r`bb+(1+β)UT/IEQ r`bb:基区体电阻(100-300欧) UT:26mV 1.交流通 ...

  8. 2.3 放大电路的分析方法

    一.直流通路与交流通路 通常在放大电路中,直流电源的作用和交流信号的作用是共存的,即静态电流.电压和动态电流.电压总是共存的.但是由于电容.电感等电抗元件的存在,直流量所流经的通路与交流信号所流经的通 ...

  9. 【科普贴】I2C通讯协议详解——偏软件分析和逻辑分析仪实例分析

    一. I2C标准协议流程 1. I2C协议--规定命令 开始:当SCL为高电平时,SDA从高电平向低电平切换 停止:当SCL为高电平时,SDA从低电平向高电平切换 应答(ACK):发送侧发送完8bit ...

  10. Virtual-Network--—DHCP协议学习以及对应报文分析

    文章目录 Virtual-Network---DHCP协议学习以及对应报文分析 转载 1. DHCP 简介 1.1 DHCP 作用 1.2 DHCP 工作机制 2. DHCP 交互流程 2.1 正常交 ...

最新文章

  1. GPIO 输入—按键检测
  2. vector can通信源码_汽车电子CAN网络dbc文件
  3. spring(7)spring mvc 的高级技术
  4. Leetcode--837. 新21点(java)
  5. oracle10g中获得可更新的(修改、增加等) ResultSet
  6. 前端传json对象后台接收
  7. Ubuntu12.04上编译PlateGatewayQt
  8. 10月第4周回顾:欧盟垄断案微软低头 BEA为收购讨价还价
  9. 让面试官赞扬的IO读取方法:大文件进行词频统计(单线程与多线程分别解决)利用Buffer流简单又快捷
  10. xvid开放源码xvidcore-1.1.3.zip在VC下成功编译的方法
  11. 游戏模型提取_腾讯手Q游戏中心的个性化推荐实战
  12. 坦克大战小游戏——新手练习用的
  13. linux mono 安装
  14. python win32con_Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_窗体控制模块(win32con、win32gui)...
  15. oracle对某两列求和再求和_分手后4个阶段这样挽回,再狠的他也会心软求和
  16. IT(计算机/软件/互联网)专业词汇宝典
  17. Final Cut Pro资源库占用内存太大如何释放磁盘空间?
  18. C#winform小demo-串口传输实现硬件数据回传(数据处理/输出txt文件保存)
  19. 莫言出力、章泽天站台!京东百万豪奖作家背后是文娱野心
  20. 《机器学习实战》学习笔记(八)

热门文章

  1. IDEA 谷歌翻译报错 TKK
  2. php gmssl,GmSSL是什么
  3. ubuntu中颜色拾取器的安装以及16进制ARGB值在线转颜色
  4. chrome 历史版本下载
  5. 采用POD以及DMD方法实现圆柱绕流流动分解(DMD篇)
  6. 启发式算法/人工鱼群算法
  7. 嵌入式linux 面试题
  8. 【下载】快速通过Python笔试?学大家一样先把LeetCode答案私藏了
  9. Nginx的keeplive
  10. matlab 颜色代码 大全_空客 | 红、绿、蓝、白,各类颜色代码的含义