1、 PDF外文:http:/ 应用微控制器进行标准 DMX512 通信 1. 引言 DMX512 是一种传输协议用于最专业的剧院灯光组件 ,例如调光器 ,扫描仪 ,移动灯、追光灯、扫描等等。这个应用笔记介绍了一个用于传输和接收标准 DMX512 通信协议的解决方案,这样就可以实现使用任何 PIC 微控制器提供一个通用异步收发器( UART)模块。特别需要指出的是,通用设备PIC18F24J10,被用来在本应用笔记提供的代码示例。它提供了 1024 字节的数据存储器 ,它允许演示代码来存储数据 ,为整个 512 通道缓冲 (尽管这并不是必需的对于典型的应用 )。只有一个外部
2、 RS-485 兼容的收发器必须完成应用程序的框架。 DMX 解决方案分为两部分: 1.DMX512 发送部分: 这部分将解释如何生成和传输标准 DMX512 数据包。这是分为两个小节: (a)如何生成和传输标准 DMX512 包 ; (b)一个演示程序,说明如何发送命令到一个标准 DMX512 调光接收器。 2.DMX512 接收部分:这部分将解释如何接收标准 DMX512 数据包。再次,它分为两个小节: (a)如何接收数据 ; (b)一个演示程序,它接收到的数据发送到 PWM 模块用于控制一个 LED 的亮
3、度。 2. 背景 在过去,变自耦变压器 被用来控制剧场舞台灯光。这需要长期在台上线供电的灯具,整个团队将需要手动控制变压器。后来,电动机接通了自耦变压器,使控制少麻烦。最后,模拟控制采取了自耦变压器的地方,变的很受欢迎,尤其是 0 - 10V 模拟游戏机。尽管如此,该系统有三大缺点: 1.这容易产生噪音。 2.非线性调光可根据不同类型的灯具。 3.一个单独的控制线,需要每个灯。 随着计算机技术变得更具成本效益,新的数字调音台来到市场,并与他们需要一个新的标准,使来自不同制造商的设备进行互操作的需要。 美国剧场技
4、术研究所, USITT 的,首先制定了在 1986 年之间的调光器和阿司匹林标准数字接口DMX512 协议浓度,后来扩大并于 1990 年改善。该电流的发展标准 DMX512 - A 是目前管理的娱乐服务与技术协会(的 ESTA)。服务与技术协会(的 ESTA)。( ANSI)的标准( E1.11)的发展标准 DMX512 - A是目前管理的娱乐服务与技术协会(的 ESTA)。您可以从 www.esta.org 或者 www.ansi.org 网站获取(购买)一个由万维网协议规范的副本。 3. 分析 DMX512 协议 标准 DMX512(用于数字复缩写),是极其简单,
5、成本低,相对强劲。由于这些优势,标准 DMX512已获得了很大的普及。顾名思义,它可以支持多达 512 个独立的控制通道 /设备。它是一个单向的异步串行传输协议,它不提供任何接收机和发射机之间的握手方式,也没有提供任何错误检查,或更正机制的形式。 因此,它是不是适合任何安全关键应用。在 25 万的数据传输波特率使用物理接口与两个多线和地线的 RS - 485 传输标准兼容。 2 一个 DMX512 系统只 有一个发射器和多个接收器。一个标准 DMX512 发射机通过的 XLR 连接一个 5芯或 XLR 三针连接器标准 DMX512 接收器。甲母连器连接到一个发射器和接
6、收器上的一个插头连接器。这个说明书规定的 2 屏蔽电缆对应该使用。然而,第二条电缆的使用是可选的。表 1 显示了当一个物理引脚的 XLR 5 针连接器。 表 1: XLR 5针连接器 注: XLR 接口,通常用于专业音频,视频和照明应用。该连接器具有一个坚固的外壳和一个锁定机制。 每个标准 DMX512 发射器发送 512 路 8位调光值,调光值的大小范围在 0 到 255 之间,其中 0代表灯关闭 , 255 表示最大亮度。 连接到标准 DMX512 线可以选择 512 个通道(地址选择)各一个接收器来控制它的输出灯(负载)。DMX512 协
7、议要求发射机,不断重复(至少一次秒)帧的传输,在时序图如图 1 和表 2。 图 1:标准 DMX512 时序图 表 2:标准 DMX512 时间值 4. 标准 DMX512 变送器 要生成标准 DMX512 数据包,该软件解决方案采用一个简单的状态机,该状态机四 个状态组成: 1 SENDMBB - 数据线空闲的 DMX 2 SendData - 字节 0到 511 的 DMX 框架 3 3 SENDMAB - 数据线空闲的 DMX 4 SENDBREAK - DMX 资料线被拉低 图 2:发送状态机
8、 在此应用中,为了简化代码,但仍保持在时间限制,在 SENDBREAK, SENDMAB 和 SENDMBB 间隔为100 微秒都设置。这些时间可以很容易改变,如果需要。 Timer0 模块是用来控制在 100 微秒的时间和传输的字节之间的间距。 例 1:标准 DMX512 变送器状态机代码 。 示例 1 显示了实施的 DMX 发送状态机子程序轮廓。 发送子程序的 DMX 在合作设计的多任务应用程序使用。为了避免任何的时间问题上,应称为状态机频繁地从主程 序循环(约每 40 微秒或以下)。该 Dmx 发送状态变量是用来表示当前的状态和跳转表中的一个偏移量来访问状态机中的子程序相应的代码段 。