新唐DMX512 舞台灯光控制方案介绍(下)

7.新唐DMX512 舞台灯光方案介绍
  • •硬件平台采用NUC240 Arduino Board+NuEdu Basic01.
  • •两套平台采用同一套程序,主/从可通过按键选择.
  • •两套平台通过UART0通信,程序中选择主/从后,将主端的TX连接从端的RX.


上电后,数码管显示“00”


黑色按键用于主/从选择
数码管显示”H*”表示平台作为主发送端.


数码管显示”S*”表示平台作为从接收端.


数码管中显示的数位表示当前LED灯对应的信道.
LED灯以二进位方式显示当前信道发送或接收的数据。
此按键用于切换信道,每按一次,信道加一.最多支持9个信道,从1到9循环改变。



信道数据加减键,主发送端有效.用于改变数码管显示信道的数据.数据值通过LED灯显示.

8.DMX512 Demo框图

使用以下资源:

  • –一路UART,用于进行DMX512通信.
  • –Systick,作为时间基准.
  • –两个TIMER.TIMER0用于7段数码管显示,TIMER1用于发送端BREAK和MAB计时.
  • –22个GPIO(10个GPIO用于数码管显示,4个GPIO用于按键扫描,8个用于LED显示)
系统框图如下

9.DMX512 Demo—信号接收说明

–接收器要检查二个停止位。

•本Demo在收到错误的停止位时,帧错误标志置1。收到错误的字段之前的数据是有效的。

–在重定信号间的最大间隔内(1 s)。

•接收器未接收到下一个重定序列(重定信号、重定后标记和起始码),即视为数据丢失。本设计采用以SYSTICK为基准时间,main中循环检测是否超时.

–本设计采用双缓冲区

–重定信号最小88 us。

•NUC240 uart模块中可通过置寄存器UA_LCR中BCB为1,可强制将TX输出’0’。本Demo中在设置UA_LCR中BCB位为1后,启动TIMER1,定时到88us后将清BCB位为0。

–MAB时间为8us.

•由于从DATA写入到UART中,到从TX端发送出来需要约4us的延时,另加代码执行时间,所以BREAK到START bit间只能延时3us,由TIMER1完成.`

10.DMX512 Demo—波形图






11.DMX512 Demo—代码



★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能