




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
舞台灯光控制器 摘要 嵌入式系统是当今最热门的概念之一,它诞生于微型计算机,是嵌入到对 象系统中,实现嵌入对象智能化的计算机应用系统。本舞台灯光控制器就是嵌 入式系统在生活中的一个小小应用,它采用的嵌入式微控制器为 lpc2300 系列 arm,并使用了实时操作系统 c/os-ii。整个系统分为两部分,主控制器和灯 光节点。控制器和节点之间的通信使用了主流的舞台灯光控制协议 dmx512。 控制器设有良好的人机界面,可完成对各节点灯光色彩的编辑,多种现场效果 的存储与还原,并设有多个命令,可依据现场气氛的不同制作缤纷的特技效果。 节点使用 nxp 推出的 led 驱动芯片 pca9635 来驱动 4 个 rgb led 模拟舞台 灯光。 关键词:舞台灯光控制;dmx512 协议;嵌入式系统;c/os-ii 目 录 1绪论1 1.1舞台灯光控制技术的发展以及 dmx512 的产生.1 1.2嵌入式系统概述.2 2硬件电路设计4 2.1电源部分电路.4 2.2tinyarm t23 工控板介绍.5 2.3isp 跳线及核心板复位电路7 2.4rs232 通信电路.8 2.5jtag 接口电路8 2.6lcd 驱动电路设计9 2.7led 驱动电路设计9 2.8rs485 通信电路.11 2.9从机地址选择电路.14 2.10状态指示灯及按键电路.15 3控制器软件设计16 3.1整体软件分析与设计.16 3.2键盘扫描程序分析设计.18 3.3人机界面任务.19 3.4dmx512 数据发送任务设计25 3.5数据更新任务.28 4节点软件设计29 4.1dmx512 数据包解析程序29 4.2pca9635 控制30 5设计总结35 参考文献.36 致谢.37 附录 a 电路原理图.38 a.1原理图 a.38 a.2原理图 b.39 1绪论 本设计主要研究的是现代嵌入式技术在舞台灯光控制系统中的应用。当今 舞台灯光控制系统大都是基于 dmx512 通信协议的数字控制系统,那么究竟什 么是 dmx512 通信协议?什么是嵌入式系统? 1.1 舞台灯光控制技术的发展以及 dmx512 的产生 随着电视事业的不断发展壮大和舞台演出市场的日益活跃,以及人们欣赏 水平的不断提高,舞台设计越来越受到专业人士的重视。而舞台灯光作为舞台 设计的一部分在很大程度上影响着整个现场的效果,这使得现代舞台灯光系统 设计变得越来越复杂,舞台灯光控制技术也应运而生。 回顾舞台灯光控制技术的发展历程,大体可以分为三个阶段:原始控制技 术阶段;模拟控制技术阶段;数字化控制技术阶段。 最初的原始控制技术时期,舞台灯光的控制相当麻烦。演出过程中,在舞 台四周布满大大小小的各式各样的用手动控制开关,每一盏灯需要一个开关, 并且还要铺设大量的灯线,其工作量是可想而知的。受控的灯具也只有亮灭两 种状态,根本不可能调光,提供的纯粹是单纯的照明。这样的光灯控制系统是 很难顾及到舞台的艺术效果的。 随着自动化技术,电子技术和半导体技术的应用,把可控硅技术应用到漏 光器中,产生了硅箱,这标志着模拟调光时期的到来。这种技术是通过模拟调 光台(实际上是一个个电位器)输出的 010v 的模拟信号,控制可控硅的导通 角来完成灯具调光功能的,它能够做到每一个灯具有不同亮度输出,但这种技 术需要一个推杆对应一个调光回路,同时也需要连接一条信号线。可以想象一 下,如果一台演出需要控制 100 个调光回路,就要有一台具有 100 个电位器推 子的调光台,同时还需要连接 100 条信号控制线,这样的调光系统的组建和控 制都是相当麻烦的事。这种模拟调光方式只能适应于一些小型的演出活动。 随着时间的推移,电视事业不断壮大,舞台演出市场日益活跃,这对舞台 灯光控制系统提出也更高的要求。到了 20 世纪 80 年代数字化技术的应用和普 及产生了新一代的灯光控制技术,即 dmx512 数字信号控制技术。dmx512 数 字信号协议于 1986 年,首先由美国剧院研究机构(usitt)提出,后来经过进 一步的改进,于 1990 年正式公布。它利用电脑系统来完成整个灯光的控制,通 过一条信号线就可同时输出多路串行数字信号,可以任意设置推杆与灯具之间 的对应关系。这种技术大大简化了灯光的控制方式,为大规模舞台灯光控制提 供了可能。从此,这种数字控制技术得到了广泛应用。 2硬件电路设计 为简化设计、节约成本,对控制器电路和节点电路进行了综合,使得控制 器和节点采用的是同样的电路,以下对电路中的各模块进行分析介绍。 2.1 电源部分电路 本设计共需要三组电源输入:5v 的系统电源、3.3v 的模拟电源、3.3v 的 数字电源。 系统板输入电压为 9直流,所需系统电压为 5,且带有液晶这样的大功率器 件,若选用普通的线性稳压器件,则电源效率最高仅为 55.6%,其发热量可想 而知。故 5系统电压不能采用线性稳压器件。lm2575 是一种高效率的开关稳 压器件,资料显示当其输入电压为 12,输出电流为 1a 时,其效率可高达 77%, 但开关电源也有开关电源的缺点,其输出纹波较线性稳压器件大。弥补这一缺 点最好的方法是再在后面加一级线性稳压。 核心板 tinyarm t23 的供电由低压差模拟稳压器件 spx1117m3-3.3 供给, 虽然效率不高但 tinyarm t23 的功率小,实际运行过程中 spx1117 基本保持 室温。 2.2 isp 跳线及核心板复位电路 为使调试过程更加顺利,在底板上添加了 isp 跳线选择与核心板复位电路, 如图 2.1 所示。 图 2.1 isp 选择电路与核心板复位电路 当 lpc2300 芯片加密锁死时,通过 isp 对芯片内部 flash 进行整片擦除, 可解除芯片的锁死状态。 图中的 u2 为 esd 保护芯片,可屏蔽人体静电对核心芯片带来的危害。 由于 lpc2300 系列芯片自来掉电复位功能,故可省略常用复位电路中与 r4 并联的放电二极管。 2.3 rs232 通信电路 本设计中的 rs232 电路主要有两个用途,一是用于 isp 下载,二是用于与 上位计算机通信,将调光信息反馈给上位机。 rs232 通信电路如图 2.2 所示。 图 2.2 rs232 通信电路 2.4 jtag 接口电路 jtag 为一种硬件仿真调试,需要配合 ads1.2 集成开发环境、easyjtag- h 仿真器、h-jtag、h-flasher 一起使用。其接口电路如图 2.3 所示。 图 2.3 jtag 接口电路 2.5 lcd 驱动电路设计 本设计选用液晶的型号为 tg12864e-02b,它采用的内部驱器为 st7920。st7920 的特点在于它包括 6416 位元字元显示 ram(ddram 最多 可显示 16 字元4 行)及 64256 位元绘图显示 ram(gdram) ,可实现图 形、文字的混合显示。 液晶驱动电路如 error! reference source not found.所示。图中三极管 8050 用于控制液晶的背光。 2.6 led 驱动电路设计 2.6.1 led 驱动器 pca9635 pca9635 是 nxp 公司生产的一款 i2c 总线 led 驱动器,共有 16 路输出, 输出电流可达到 5ma,吸入电流可达到 25ma,可直接驱动 led。适应于作为 rgb led 或 rgba led 的调色驱动。其特性如下: (1)16 路 led 输出,每一路输出均可配置为:开,关,独立亮度控制, 独立亮度+整体闪烁/明暗控制; (2)输出可编程为推挽或开漏结构; (3)1mhz 快速 i2c 总线,且 sda 输出电流可高达 30ma; (4)256 级独立亮度控制(97 k hz pwm) ; (5)256 级集体亮度控制(190 hz pwm) ; (6)256 级集体闪烁控制,闪烁频率可在 24hz 到 10.73s 之间调节; (7)7 个地址引脚使得在同一个 i2c 总线上可连接 126 个 pca9635; (8)内部自带 25 m hz 晶振,无需外部元件; (9)可通过 i2c 总线对 pca9635 软复位; (10)上电复位; (11)sda/scl 输入噪声过滤; (12)工作电压范围:2.3到 5.5; (13)工作温度:-40 oc 到+85 oc; 2.6.2 pca9635 驱动电路 pca9635 驱动电路如图 2.4 所示。 图 2.4 pca9635 驱动电路 由于 i2c 总路线是开漏输出的,所以在使用 i2c 接口的时候,需要在外部 连接上拉电阻,如上图中 r60、r61。由于本设计中各节点只连接一个 pca9635,故可将 pca9635 地址固定。为适应大电流灯具的要求,在 pca9635 的外部仍添加了驱动电路,如图 2.5 所示。 图 2.5 led 驱动电路 图中电阻阻值的确定由具体的 led 参数决定。如图 2.6led 压降测试电路 可粗略测得红灯的压降为 1.82,绿灯的压降为 2.5,蓝灯的压降为 2.9。 图 2.6led 压降测试电路 下面以蓝色 led 为例计算图 2.7 中发射极电阻 r88 与基极电阻 r56 的值。 为使蓝色 led 点亮,三极管 8550 的射极电压 ue应在 2.9以上,假设 ue 为 2.9,则流过 r88 的电流: (2-1) 88 9233 r ie 若取 ie 为 4 ma ,则 r88 需小于 100。从 8550 的资料中可以查得其工作 在放大区时放大倍数 约为 100,则可得出三极管基极电流 (2-2)ma i i e b 04 . 0 则 r56 的取值 (2-3) 105 . 5 1004 . 0 7 . 09 . 2 56 4 3 r 经实践验证,r88 取 100,r56 取 47k 时,蓝灯可得到较好的效果。 同样的过程,可得到红、绿灯的基极与发射极电阻的取值。 2.7 rs485 通信电路 dmx512 协议中规定其通信接口采 eia-485 标准。 2.7.1 rs-232、rs-422、rs485 协议简介 rs-232、rs-422 与 rs-485 都是串行数据接口标准,最初都是由电子工业 协会(eia)制订并发布的,rs-232 在 1962 年发布,命名为 eia-232-e,作为 工业标准,以保证不同厂家产品之间的兼容。rs-422 由 rs-232 发展而来,它 是为弥补 rs-232 之不足而提出的。为改进 rs-232 通信距离短、速率低的缺点, rs-422 定义了一种平衡通信接口,将传输速率提高到 10mb/s,传输距离延长 到 4000 英尺(速率低于 100kb/s 时) ,并允许在一条平衡总线上连接最多 10 个 接收器。rs-422 是一种单机发送、多机接收的单向、平衡传输规范,被命名为 tia/eia-422-a 标准。为扩展应用范围,eia 又于 1983 年在 rs-422 基础上制 定了 rs-485 标准,增加了多点、双向通信能力,即允许多个发送器连接到同一 条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范 围,后命名为 tia/eia-485-a 标准。由于 eia 提出的建议标准都是以“rs”作 为前缀,所以在通讯工业领域,仍然习惯将上述标准以 rs 作前缀称谓。 rs-232、rs-422 与 rs-485 标准只对接口的电气特性做出规定,而不涉及 接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。eia-485 通信标准的性能如所示: 2.7.2 rs-485 电路分析 rs-485 接口电路如图 2.8 所示。 图 2.8 rs485 接口电路 图 2.8 中 u9 为 esd 保护二极管,能有效保护 sp485r 芯片。r101 为通信 阻抗匹配电阻,减少由于阻抗不匹配而引起的反射、噪声,能有效提高 rs-485 通信的可靠性。 图 2.8 中 sin 为 sp485r 通信接口方向控制线,当 sin 为高电平时, sp485r 配置为输出,为低电平时,sp485r 配置为输入。为解决上电时 rs-485 总线冲突问题,需添加上电抑制电路,如图 2.9 所示。上电时 sin 输出低电平, sp485r 配置为输入。由 ewb 仿真可得到抑制时间 t 约为 2s。 图 2.9 sp485 上电抑制电路 图 2.8 中 rrxd、ttxd 为 sp485r 的数据读写信号线,为隔离外部噪声, 保护控制芯片,在 sp485r 与核心板之间加入了隔离电路,如 error! reference source not found.所示。 图中使用到的 adum1201 为 adi 公司推出的一款磁隔离芯片,它采用的 icoupler 技术是基于芯片尺寸的变压器。adum1201 所隔离的两端有各自的电 源和参考地,电源电压为 2.75.5v。相对于普通的光隔离,adum1201 具有 如下特点: (1)速度更高:最高速率可以达到 25mbps; (2)功耗更低:功耗低于同数据传输率时传统光电隔离器的 1/10,最小 工作电流为 0.8ma; (3)性能更高:时序精度,瞬态共模抑制力,通道间匹配程度均优于传 统光电隔离器; (4)体积更小:集成度更高,印制电路板(pcb)面积为传统光电隔离器 的 40; (5)价格更低:每通道成本为传统光电隔离器的 40; (6)应用更灵活:与传统光电耦合器不同的是,多通道 icoupler 数字隔离 器能在同一芯片内提供正向和反向通信通道。 rs-485 通信电源电路如图 2.10 所示。采用的是致远电子推出一款高精度 dc-dc 电源模块。 图 2.10 rs-485 电源电路 2.8 从机地址选择电路 因从机无需接液晶,所以将从机地址选择线与液晶部分信号线复用。各地 址线均已连接上拉电阻。从机地址设置范围 0x000x1ff,电路如图 2.11 所示, s1 为拔码开关。 图 2.11 从机地址选择电路 注:用作主机时需断开 j23。 2.9 状态指示灯及按键电路 本设计共设置了 4 个状态指示灯和 6 个按键。电路如所示。 图 2.12 状态指示灯及按键电路 3控制器软件设计 3.1 整体软件分析与设计 整个系统分为主控制器和节点两部分。由设计要求分析可知,主控制器需 要完成人机交流与 dmx512 数据的发送,节点需要完成 dmx512 数据的接收 与舞台灯光的控制。控制器和节点所要完成的每一个任务都对实时性提出了很 高的要求。dmx512 的协议规定,完整的 dmx512 数据包包含一个中断标识位, 一个中断后标识位,一个起始数据和 512 个调光数据,其数据发送的波特率为 250kbps,计算可得整个数据包的发送时间长达 0.025 钞。对于主控制器来说, 若在系统设计时使用前后台系统,那么控制器的人机交流将难以得到及时的响 应,为此主控制操作系统宜采用实时操作系统。对于节点来说,dmx512 数据 的接收任务可放在 uart 中断中处理,不会影响到控制的实时性,这样节点即 可采用前后台系统也可采用实时操作系统。 c/os-ii 一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统, 且在高校教学使用是不需要申请许可证的。因此,主控制器的实时操作系统选用 c/os- ii。 3.1.1 控制器软件设计系统框图 分析设计要求,控制器共需要完成两件事情:人机交流;数据发送。人机 交流又可以划分为三个任务:键盘扫描;人机界面;数据更新。综上所述,控 制器共设计四个任务,其系统框图如图 3.1 所示。 图 3.1 控制器系统框图 3.2 键盘扫描程序分析设计 常用的键值采集方案有两种:中断服务;软件查询。 3.2.1 中断服务 lpc2300 系列 arm 的 p0 和 p2 端口的每一个引脚都可以配置为上升沿中 断或者下降沿中断。p0 和 p2 端口的中断通道与外部中断 3(eint3)相同。 在硬件设计中,按键 06 分别与 p0.9p0.17 相连,因此,只需将 p0.9p0.17 引脚配置为下降沿中断,在中断的服务程序中即可完成按键的采集 任务。但由于在硬件设计时,按键没有添加去抖电容,按键去抖的任务就需要 由软件来完成,中断服务程序中应添加一个大约 10 毫秒的沿时程序。但 c/os-ii 规定在中断服务程序中,不能使用系统延时函数 ostimedly( ),这样 就带来了大量系统资源的浪费。一旦有按键按下,系统中的其它任务都会停下 来,包括数据发送任务。这样的情况对于保证 dmx512 数据的完整性是非常不 利的。所以按键的采集不能采用中断的方式。 3.2.2 软件查询 按键的软件查询程序流程图如图 3.2 示。 图 3.2 键盘扫描流程图 在 c/os-ii 操作系统中只能使用间隔查询方式,否则比查询任务优先级低 的任务将得不到运行的机会。从程序中可以看到,每次查询都会间隔一个 ostimedly(3),即每隔 15ms 查询一次,虽然查询键值浪费了一定的系统资源, 但对于运行在 48mhz 系统时钟下具有三级流水线的 32 位处理器来说,这样的 查询过程是微不足道的。从 axd 中可以看到到整个查询过程只用了 5 条汇编 指令。 在得到键值后,调用 osmboxpost( )函数,将键值以消息邮箱的形式发送给 人机界面任务,待人机界面任务做进一步的处理。然后再次调用系统延时函数 ostimedly(40)延时 0.2 秒,作为两次按键的最小间隔时间。 3.2.3 调光功能的实现 受液晶尺寸限制,调光功能菜单被分为两级,第一级完成节点 node 和灯号 nightnum 的选择,第二级完成对应灯号 red、green、blue 三路数据的修改。 在这里设置了三个重要变量:changedsig、changedadr、changeddata。 (7)changedsig:数据改变标致; (8)changedadr:改变数据的地址,即全局变量 dmx_512 数据的下标; (9)changeddata:改变后的新数据。 为了简化设计,将对这三个数据的修改程序直接融入到了液晶界面中。对 调光数据的修改总是会伴随着界面的变化的,所以这样的融入相对来说比较省 事。 当有调光数据的修改时,changedsig 标致置 1,并将对应的修改值付给 changeddata,changedadr 的值由三个因素决定:节点号 node;灯号 nightnum; 页内标致 page5sig。具体计算方法如程序清单 3.1 所示。 程序清单 3.1 xrate +; /*修改红色数据 */ changedsig = 1; /*置数据改变标致 */ changeddata = (xrate-1)1; /* 计算修改地址 */ 其中 xrate 为调光数据,取值范围 116。x 可代表 r、g、b。函数 getnodeadr 根据节点号 node 从 tinyarm t23 自带的 eeprom 中读地址设置 信息,返回值为对应的从机地址。数组 adrmap 是根据从机的硬件连接方式 而预设的地址偏移量。 液晶界面更新完成后,依据 changed 系列变量的值,即可完成对 dmx_512 数据的修改。对调光数据的修改是实时显示的,调光效果及时的反馈给用户, 方便用户做进一步的修正。 3.2.4 效果选择功能的实现 本设计中涉及到两类灯光效果。一类效果控制器并不对调光数据做修改, 只发出命令字,而由节点接收到命令字后做出相应的变换。效果编号 15 都是 这种类型。而另一种效果是由控制器直接对光路数据进行修改,节点不接收命 令,不做变换,只刷新光路数据。效果编号 6 就属于这种类型。 在做出具体的效果变换之前,需要先完成效果编号 vision、效果速度 visionspeed 的设置。效果的变化不是实时的,当按下确认键后,效果才会更新。 效果编号 vision 的取值范围为 06。0 代表无效果,1 和 2 为两种样式不同的闪 烁效果,3 为渐明效果,4 为渐暗效果,5 为魔术色效果,6 为随机数效果。 程序清单 3.2 为在效果做出变换时,对 changedsig、changeddata、chagedadr 做出的相应设置。 程序清单 3.2 changedadr = 0x8000; /*将 changedadr 最高位置 1 作为效 果标致*/ if(vision = 6) ossempost(semrand); /*随机数效果开关*/ changedsig = 4; /*四个节点均需修改命令字*/ changeddata = vision|(visionspeed1)-1)3); 效果 6,随机数效果是完全由控制器来完成的,控制器产生随机数,并修 改相应的 dmx_512 数据。程序中用信号量 semrand 作为开关量。第一次选择 效果 6 为开,第二次选择效果 6 为关。 3.2.5 现场功能的实现及其方案分析 现场功能的实现依赖于现场数据的存储,本设计所使用的 tinyarm t23 核 心芯片为 lpc2366,核心板上配有 fm24c02(eeprom) ,数据的存储有两种 方案: (10)使用 lpc2300 系列的 iap(在应用编程)功能,将现场数据存至 lpc2366 的 flash 中; (11)使用 fm24c02。 首先分析第一种方案,lpc2366 共有 256kb 的 flash 存储空间,被划分为 14 个扇区,其分区情况如表 3.1 所示。 表表 3.1lpc2366 扇区分布情况扇区分布情况 扇区号扇区规格 (kb) 地址范围 040x0000 0000 0x0000 0fff 140x0000 1000 0x0000 1fff 240x0000 2000 0x0000 2fff 340x0000 3000 0x0000 3fff 440x0000 4000 0x0000 4fff 540x0000 5000 0x0000 5fff 640x0000 6000 0x0000 6fff 740x0000 7000 0x0000 7fff 8320x0000 8000 0x0000 ffff 9320x0001 0000 0x0001 7fff 10320x0001 8000 0x0001 ffff 11320x0002 0000 0x0002 7fff 12320x0002 8000 0x0002 ffff 13320x0003 0000 0x0003 7fff 14320x0003 8000 0x0003 ffff 因为在利用 iap 向片内 flash 存储器写入数据时,需要先对数据进行擦写, 因此数据区和代码区不能重合,否则有可能造成系统崩溃。倘若用户程序代码 加上操作系统代码在 64kb 以内(本系统代码不会超过 64k) ,那么可以使用的 flash 空间高达 192kb,如果现场数据完全存储(512 字节) ,那么可存储的现 场数多达 384 个。但是,flash 的使用次数是有限的,对于在舞台应用来说,现 场数据的存储比较频繁,所以使用片内 flash 并不明智。且如果某一现场数据 需要修改,则同一扇区中所有现场数据将会被擦除(flash 的擦除是基于扇区的) 。 分析第二种方案,使用 fm24c02 存储现场,fm24c02 为 256b 的串行 eeprom,虽然 eeprom 的使用寿命够长,但 256b 的空间很少,如果完全存 储,连一个场景也存储不了。要使用它,就必需对现场数据进行一些取舍,只 存储 dmx512 中使用到的通道数据。如果设计的是 4 个节点,每个节点需要 13 字节的数据,那么一个现场需要 52 个字节。256 个字节的 fm24c02 能存储 4 个现场。虽然可存储的现场很少,但用于演示还是够了。所以最终我采用了方 案二。 3.2.6 地址设置 地址设置的目的是为了让控制器知道自己应该修改的是 dmx512 中的哪个 位置的数据,建立一个节点号与节点地址之间的映射关系,并且还要能实现设 置信息的存储。地址的取值范围为 0511,一个地址需要占用两个字节,如果 设计的是四个节点,那么所有地址设置信息的存储将占用 8 个字节。fm24c02 在进行现场存储之后,还剩余一些没有使用的字节,刚好可以用来作为地址设 置的存储空间。 3.2.7 dmx512 协议信号格式 dmx512 信号时序图如 error! reference source not found.所示。 dmx512 信号的数据格式分为以下几个部分: (12)idle( 空闲的) or no dmx situation :当没有 dmx 数据包输出时, 将是一个高电平信号。 (13)break:dmx 数据包的开始是一个至少 88 微秒的低电平输出的预 报头。根据经验,人们发现一个大于 88 微秒的 break 将更有利于发送和 接收,一般在设计时将它设计为 120 微秒。 (14)mark after break (mab)书馆:mab 是 break 后是一个 8 微 秒的高电平或 2 个脉冲。旧版本的 dmx 标准为 4 微秒或 1 个脉冲,在连 接老的控制台时会产生数据的混乱。mab 也可设置为 12 微秒。 (15)start code (sc) 起始码:sc 是数据流开始的通道数据,它具有 与通道数据相同的格式,一般为 11 个脉冲或 44 微秒。 (16)mark time between frames (mtbf) :在每个通道起始位前 可以有 mtbf,为高电平,时间小于 1 秒。 (17)mark time between packets (mtbp ) :在有效数据发送完毕 后发送高电平,时间小于 1 秒。 dmx512 数字信号由起始码和 512 个数据帧组成。按串行方式发送和接收 数据,数据帧内包含一个开始位(低电平),8 位数据和两个停止位(高电平),没 有奇偶校验,也就是说一个数据帧有 11 个位元。每一位的宽度是 4us,发送一 个帧需要 44us 的时间。由于每一位的时间是 4us,所以 dmx512 信号的波特 率为 250kb/s 。关于 dmx512 各部分的时间规定如表 3.2 所示。 表表 3.2 dmx512(1990)时间规定表)时间规定表 名称最小值标准值最大值单位 中断(break)88881000000 s 中断后标识(mab)8 s 光路信息结构宽度(frame widch) 44 s 开始位(start bit)4 s 停止位(stop bit)8 s 光路信息码间隔标识(mtbf)0没有规定1000000 s 数据包间隔标识(mtbp)0没有规定1000000 s 3.2.8 dmx512 格式的实现与方案比较 dmx512 协议的实现比较简单,关键在于如何产生数据包前面 88 s 的 break(低电平)和 8s 的 mab(高电平) 。关于数据帧,只需将 uart 的波 特率设置为 250kbps,发送数据的格式配置为 8 位数据位,2 位停止位,无奇 偶效检位即可。 break 与 mab 的实现有两种方案。方案一:让对应的 i/o 口在输出模式与 txd 模式之间不停的转换,配合定时器产生所需高低电平。方案二:对于 lpc2300 系列 arm 还有另一种不需要模式转换的方案,lpc2300 系列 arm 的 uart 口在空闲时 txd 引脚默认为高电平,当配置线控制寄存器 unlcr6 为 1 时将使能发送间隔,txd 引脚会被强制为低电平。 故采用方案二。有了发送间隔功能后,dmx512 格式的实现只需要一个合 适的定时器就可以完成了。88s 和 8s 的定时均可由 timer1 产生。 dmx512 发送任务的流程图如图 3.3 所示。 图 3.3 dmx512 数据发送程序流程图 在 uart2 的初始化时使能发送 fifo,发送数据时连续发送 8 字节数据, 然后等待发送中断标致,这样有利于提高系统资源利用率。 使用逻辑分析仪 la1016 采集到的 uart2 txd 输出波形如 error! reference source not found.所示,从图中可以看出,时序完全符合 dmx512 协 议的要求。 3.3 数据更新任务 从前面章节的介绍可以看出,单字节的数据更新已经由人机界面任务完成 了,这里数据更新任务所要完成的是使用随机数效果“6”时所需要的大量数据 的更新。当数据更新任务在接收到效果“6”开启信号后,调用 rand 函数得到 随机数,然后对 dmx_512 中的对应数据进行更新。 4节点软件设计 节点所要完成的任务是解析控制器传来的 dmx512 数据包,提取出属于自 己的部分,依据数据内容对 pca9635 进行相应的控制。节点软件采用前后台系 统。 4.1 dmx512 数据包解析程序 4.1.1 如何解析 dmx512 从图 4.1 dmx512 协议的时序图可以看出,解析 dmx512 的关键在于如何 识别 dmx512 的起始标致 break 。 break 是一个至少 88s 的低电平,也许我们可以采用下降沿中断与定时器的 配合来识别 break,但这样过于麻烦,对于 lpc2300 系列 arm 来说,有一个 更简便的方法可以实现这一点。线状态寄存器 unlsr 的第 3 位为帧错误标致位。 在接收到 rxd 上的下降沿后,uart 会按照设定的波特率采集 rxd 引脚上的 电平,当发现停止位(下降沿以后的第 36s 至 44s 之间)为低平时,帧错 误标致将置位,若已经设置接收线状态中断,此时将产生线状态中断,具体的 中断原因可以从线状态寄存器 unlsr 中读取。 在识别出起始标致 break 之后,dmx512 数据可按照普通的串口数据进行 接收了,中断后标致 mab 不会对串口数据的接收产生任何影响。从 dmx512 中解析出来的有用数据直接存放在全局变量 uartdata13中。uart2 的中断 服务程序流程图如图 4.2 所示。 图 4.2 uart2 中断服务流程图 4.2 pca9635 控制 4.2.1 pca9635 寄存器简介 pca9635 内部共含有 29 个寄存器,其中控制寄存器(control register)不 参与编址。各个寄存器的说明如下: (18)控制寄存器(control register) 通过 i2c 总线写入到 pca9635 的第二个字节(第一个字节为 i2c 从机地址) 将被存入此寄存器,它决定 i2c 总线上随后的数据存放在哪些寄存器中。 control register75为地址递增控制位。control register40的值为 pca9635 内 部寄存器的地址。 (19)模式寄存器(mode1,mode2) 模式寄存器 mode1 片内地址 0x00,其各位的详细说明见表 4.1。 表表 4.1 mode1 寄存器位描述寄存器位描述 位符号功能 7ai2只读,同 control register7 6ai1只读,同 control register6 5ai0只读,同 control register5 4sleep0 :普通模式 1*:节能模式,内部振荡器关闭 3sub20*:子地址 2 无效 1 :子地址 2 有效 2sub10*:子地址 1 无效 1 :子地址 1 有效 1sub00*:子地址 0 无效 1 :子地址 0 有效 0allcall0*: allcall 地址无效 1 : allcall 地址有效 模式寄存器 mode2 片内地址 0x01,其各位的详细说明见表 4.2。 表表 4.2 mode2 寄存器位描述寄存器位描述 位符号功能 7-保留 6-保留 5dmblnk0*:亮度整体控制 1 :闪烁整体控制 4invrt0*:输出逻辑不反向 1 :输出逻辑反向 3och0*:当 i2c 总线出现停止位时输出更新 1 :当 i2c 总线出现应答位时输出更新 2outdrv0 :输出配置为开漏结构 1*:输出配置为推挽结构 1 to 0 outne1 :0 00 :当=1 时输出 ledn = 0oe 01*:当=1 时输出 ledn = 1(outdrv=1)或高阻态oe (outdrv=0) 10 :当=1 时输出 ledn 为高阻态oe 11 :保留 4.2.2 各种效果的设计 节点接收控制器传来的 13 个字节,第一个字节中含有 05 六种效果命令, 以及效果的速度,后面的 12 个字节,节点不做处理,直接送入 pca9635 的 pwmn 寄存器控制前 12 路 pwm 输出的占空比。如图 4.3 所示。 图 4.3 主从数据协议 节点设计的五种效果分别为:闪烁效果(两种) 、渐明效果、渐暗效果、魔 术色效果。 闪烁效果是通过修改 pca9635 的寄存器 ledoutn 来实现的,要点亮哪一 位 led,就将 ledoutn 中对应的两位置 1,否则置 0。按照想要的样式,建 立一个二维数组,在定时器发生匹配中断后,按照不同的偏移量将数组中的样 式送入 ledoutn 即可,闪烁频率由中断频率决定。 渐明渐暗效果是通过修改 pca9635 的整体亮度控制寄存器 grppwm 来实 现的。渐明时,向 grppwm 中写入依次增大的值。渐暗时向 grppwm 中写 入依次减小的值。值的修改也是发生在定时器匹配中断之后,闪烁频率由中断 频率决定。 为了实现魔术色效果,首先需建立一个包含 256 个元素的数组,数组内元 素值由 0 递增到 254,步进为 2,然后由 254 递减到 0,步减为 2。按照不同的 偏移基址+偏移量来读取数组中的数据送入到 pca9635 中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳酸锂转化工技能操作考核试卷及答案
- 大豆豆渣利用创新创业项目商业计划书
- 森林景观设计与创新创业项目商业计划书
- 加气混凝土蒸压养护工数字化技能考核试卷及答案
- 客户关系管理改进创新创业项目商业计划书
- 海洋渔业与文化创意产品结合创新创业项目商业计划书
- 油料作物智能化生产线创新创业项目商业计划书
- 新能源产业2025年市场需求动态与产品调整方案报告
- 化工离心分离工适应性考核试卷及答案
- 2025年汽车与交通设备行业新能源汽车电机驱动技术发展报告
- 统编版语文五年级上册 第一单元核心素养展示
- 患者出院健康指导
- 校本研修教学课件
- 物业客服部日常工作
- 宫颈癌的个案护理
- 一例外周静脉炎的护理个案讲课件
- 2025年云南省中考英语试卷真题(含标准答案及解析)
- 数字成瘾机制研究-洞察及研究
- 慢性便秘病人护理
- 商铺意向金协议书
- (高清版)DB13∕T 5817-2023 河流(湖泊)健康评价技术规范
评论
0/150
提交评论