本帖最后由 eyesee2008 于 2021-3-25 16:59 编辑
#申请原创#@小跑堂@小跑堂@21小跑堂
多点矩阵控制系统多点矩阵控制系统包括软件部分和硬件部分,下面主要介绍下硬件设计部分,其构架如图1所示。
1多点矩阵控制系统 多点矩阵控制系统原理主要是通过控制电机来达到相关的效果,在视觉上有冲击感,给人印象深刻。 该系统主要由硬件和软件两大部分组成,硬件部分包括主控器,中继器和驱动器,软件部分包括客户 端,协议,主控程序和驱动程序等。 2多点矩阵控制系统构架 其构架图如图1所示: 图1 多点矩阵控制系统架构 3硬件部分 3.1主控器 主控器的功能主要是接收客户端发送的指令,通过USB来进行通信,目前主控这部分 采用的是STM32F103CB,其主要参数指标如图2所示: 其工作电压是0~3.6V,最高工作频率可达72MHz,所对应的接口有USB2.0,3路UART,2路IIC, 2路SPI以及还有CAN,其Flash为128Kbytes,SRAM为20Kbytes。
在能耗方面具有三种工作模式:睡眠模式,待机模式和停止模式,其模式的设置可以详见手册。 图2 STM32F103CB 参数特点
其主控的MCU部分原理图如图3所示,其工作电压为是3.3V,工作温度范围:-40~85℃。在功耗方 面也很低,工作模式下电流约为50mA,待机模式下电流约为300uA。这里把需要能用的通信接口 都 预留出来,方便后期开发。 图3STM32F103CB 3.1.1串口转485 485的接口IC采用的SN75176A,性能方面优于MAX485,具体表现如表1所示: 表1 SN75176A与MAX485对比 SN75176A内部逻辑见图4 图4SN75176A内部逻辑图 MAX485内部逻辑见图5 图5MAX485内部逻辑图 由图4和图5可见,内部逻辑大体类似。 UART转485电路如图6所示:接口做了防静电处理,静电等级空气8kV,接触6kV,对应的自恢复保 险丝能够起到良好的保护作用。 图5UART转RS485 3.1.2TF卡 考虑到后期会用到脱机工作的需求,所以可以将程序保存在TF卡里,MCU通过SPI的通信方式将命令 读取来执行相关的动作。TF卡如图6所示 图6TF卡引脚说明
其电路如图7所示,工作电压是3.3V 图7TF卡SPI通信方式 3.1.3BOOT选择启动方式 BOOT的启动方式有用户闪存,ISP下载以及内部的RAM,通过BOOT0置零和置1来 选择对应的启动方式,具体见图8所示: 图8 BOOT启动方式的选择 3.1.4MicroUSB接口
通过该接口可以和上位机进行通信,收发命令。接口防静电采用了TPD2E001DZDR通过它可以有效的 抑制静电干扰,保护了后级主控MCU。电路如图9所示: 图9Micro USB接口 3.1.5DC TO DC 该主控器是采用了外部适配器供电,适配器规格为AC220V TO DC24V2.5A,该
MCU的工作电压为3.3V,SN75176A的工作电压为5.0V,所以先将24V通过AP1509稳压出5V,然后见5V通过 LDO稳压出3.3V,具体如图10所示: 图10 DC TO DC 3.1.6下载接口 该MCU具有两种下载接口模式,分别为JTAG和SWD,为了操作简便,使用起
来更加便利,因而采用了SWD的方式,SWD下载线的定义为:VCC,SWDIO,SWCLK,GND。具体如图11所示: 图11 SWD下载接口 3.1.7复位电路 该复位电路是在关键时刻能起到复位作用,通过按下按键,复位口检测到低电平,然
后触发MCU进行复位操作,电路具体如图12所示: 图12复位电路 3.1.8指示灯 该指示灯可以通过程序来控制灯的亮灭,从而知道程序是否有响应等等,其状态可以
自由定义,很便捷。具体如图13所示: 图13指示灯 3.2中继器 中继器的功能主要是将一路485分成8路485输出,保证其每一路的输出能力,能够
将承载的设备最大化。 图14 一路分多路输出 在输入口通过SN75176A识别485接口,然后转换成串口来发送信号,其供电方式是采用了AP1509,其最大输出电 流可达2A,完全满足要求,具体如图15所示: 图15 分路供电
在接收到分路信号后,需要通过光耦进行隔离处理,然后在通过SN75176A转换出485电器接口,总共有8路输出, 单路两路如图16所示: 图16 两路485接口
为了保证每两路都有足够的工作电流,而不浪费资源,采用AP1509能够足够的提供每两路的工作电流,具体电路 如图17所示: 图17 每两路供电部分 3.3驱动器 驱动器的功能主要是驱动步进电机的正转,反转,转动角度,速度调节等。 3.3.1 主控MCU
该MCU采用的和主控器上的是一样的,方便后期物料管理方便,详细参数就不一一罗列,具体可见图18所示: 图18 驱动器主MCU STM32F103CB 3.3.2 驱动电路 该步进电机驱动采用的是TI 的DRV8825,其工作电压范围:8.2V~45V,最大可达2.5A。
的驱动能力,在步进电机驱动控制方面应用比较广,可以达到32细分。电路图如图19所示 图19 步进电机驱动 细分模式选择如图20所示: 图20 细分模式选择 3.3.4 RS485转UART
RS485通过SN75176A转换成UART,把数据发给MCU来做处理。如图21所示: 图21 RS485转UART 3.3.5 DC TO DC
该驱动器采用独立的适配器供电,电源是AC220V~DV24V2.5A,稳压方式和主控器是一样,具体如图22所示: 图22 DC TO DC电路 3.3.6 BOOT启动方式选择
BOOT通过选择0或1来切换启动方式,具体如图23所示: 图23 BOOT启动方式选择 4软件部分 4.1客户端 客户端只要是将图片的灰阶度转换成对应的ID和数据,然后通过USB接口传送到主控器,经过主控器识别解码 后,再生成DMX512的数据格式来通讯。在客户端的图片采集其每个对应的ID的图片值,也就是灰度值,通过 灰度值来确定电机要转的圈数。举例如图24所示: 图24 举例图
灰度色值表如图25所示: 图25 灰度色值 4.2协议 DMX 是Digital MultipleX 的缩写,意为多路数字传输(具有512条信息的数字多路复用”)。DMX512控制协议是美国舞台灯光 协会(usITT)于1990年发布的灯光控制器与灯具设备进行数据传输的工业标准,全称是USITTDMX512(1990); DMX512 在其物理层采用EIA-485差分信号,结合可变尺寸,基于分组的通信协议。它是单向的。DMX512不包 含自动错误检查和纠正功能,因此不适用于危险应用,如烟火或舞台装置的移动。电磁干扰,静电放电,不正确 的电缆端接,电缆过长或电缆质量都可能造成虚假触发,但是在连接控制器(如照明控制台)与调光器和特效设备 等都有广泛应用。 4.2.1 DMX512指令帧介绍
每一个DMX 控制字节叫做一个指令帧,称作一个控制通道,可以控制灯光设备的一个或几个功能。一个DMX 指令帧由1个开 始位(S)、8个数据位(D0-D8)和2个结束位(E)共11位构成,采用单向异步串行传输,如图26所示。 图26 DMX512 定时程序的帧结构(上图)和信息包结构(下图) 图26 中虚线内控制指令中的S 为开始位,宽度为一个比特,是受控灯具准备接收并解码控制数据的开始标志; E为结束位,宽度为两个比特,表示一个指令帧的结束; D0~ D7为8 位控制数据,其电平组合从00000000一11111111 共有256个状态(对应十进制数的0~255),控制灯光的亮度时, 可产生256个亮度等级,0000~ (0)对应灯光最暗,11111111(255)对应灯光最亮。 DMX512指令的位宽(每比特宽度)是4 us,每一个指令帧11位,故指令帧宽度为44 us,传输速率为1/44us = 250kbps。 4.2.2 DMX512信息包
一个完整的DMX512信息包(Packet)由一个MTBP位、一个Break 位、一个MAB位、一个SC 和512个数据帧构成,如图27所示: 图27 数据帧 MTBP(MarkTimeBetween Packets)标志着一个完整的信息包发送完毕,是下一个信息包即将开始的“空闲位”,高电平有效。 Break为中断位,对应一个信息包结束后的程序复位阶段,宽度不少于两个帧(22 比特)。程序复位结束后应发送控制数据, MAB位,由于每一个数据帧的第一位(即开始位)为低电平,所以必须用一个高电平脉冲间隔前后两个低电平脉冲,这个起间隔、 分离作用的高电平脉冲即MAB(MarkAfter Break),此脉冲一到,意味着“新一轮”的控制又开始了。 SC(StartCode)意为开始代码帧(图1中的第0帧),和此后到来的数据
帧一样,也是由11 位构成,除最后的两个高电平的结束位之外,其他9位全部是低电平,通常将其叫做第0 帧或第0通道(Channel No 0), 可理解为一个不存在的通道(NonexistentChanne1)。 表2 DMX512 信息包定时表 表2 是DMX512 信息包的定时表,表中NS意为自己设定,宽度没有严格限制,由程序设计者自行决定,比如MTBP的宽度可以介于 0~1秒之间,其他建议采用典型值。 控制台每发送一个信息包,可以对全部512个受控通道形成一次全面的控制。发送一个信息包的时间大约是23 ms,每秒钟将对所有 512个受控通道完成44 次控制,即受控光路的刷新频率44 Hz,如果实际受控通道少于512个,那么刷新频率将相应提高。 5 软件流程图
软件流程如图28所示: 以上所说的硬件主要包括主控器,中继器和驱动器,主控器主要是起到主机的作用,中继器主要起到中继的作用,驱动器主要起到驱动电机的作用。
|