基于STM32的USB控制LED光源控制器设计与应用

需积分: 26 27 下载量 146 浏览量 更新于2024-09-11 收藏 525KB PDF 举报
本文主要探讨的是"数字光源控制器"的设计与应用,针对机器视觉系统中照明系统的重要性,提出了一种创新的解决方案。这种控制器采用了ARM Cortex-M3内核的STM32F107微控制器,这是因其高性能和低功耗特性,特别适合于对精度要求高的实时控制应用。 STM32F107作为核心,其USB2.0通信协议的应用使得控制器可以方便地与外部设备进行高速数据传输,不仅提高了控制效率,也简化了与PC机的交互过程,相比传统的手动调节或RS232通信方式,大大降低了成本和提升了用户体验。通过PWM(Pulse Width Modulation)调光技术,数字光源控制器可以避免模拟调光带来的色偏问题,确保了光源输出的稳定性和颜色一致性,这对于机器视觉系统获取高质量、无偏色的图像至关重要。 控制器设计了三种照明模式,包括普通照明、频闪模式以及外部触发模式,以适应不同场景的需求,比如在生产线上的不同阶段可能需要不同的光照条件。这些功能的集成使得系统更加灵活,满足了机器视觉检测系统的多变性。 此外,文章还强调了该控制器在成本控制方面的优势,通过集成化设计和微控制器的高效能,显著降低了整个机器视觉系统的硬件成本。这款数字光源控制器的出现,对于提升机器视觉系统的整体性能,优化工作流程,降低运营成本,都具有显著的推动作用。 关键词:STM32微控制器、USB2.0协议、光源控制器、机器视觉、PWM调光技术。这篇论文的研究成果不仅填补了国内在自动化控制系统中的部分空白,也为同类产品的研发提供了有价值的参考和技术支持。
2009-05-15 上传
TM DP系列LED光源控制器使用说明书 奥普特自动化科技有限公司 OPTIC MACHINE VISION TECH.CO,.LTD. 2007年7月修订 公司地址:中国广东省东莞市长安镇乌沙牌坊口怡丰商业大厦4F 公司网址:www.optmv.com 电话:0769-86068808 传真:0769-81606698 版权所有 本手册中所提及的其它软硬件产品的商标与名称,都属于相应公司所有。 本手册的版权属于东莞市奥普特自动化科技有限公司所有。未得到本公司的正式许可,任何组织或个人均不得以任何手段和形式对本手册内容进行复制或传播。本手册的内容若有任何修改,恕不另行通知。 注意事项: 警告 本产品外接220VAC,在插拨电源时,请保证控制器的电源开关是关闭状态,以防触电。 在使用本产品前,请详读此说明书;使用本产品时,请按照本说明书中的操作进行。 出现非正常情况时,请致电我司,请勿自己对产品进行拆装。 请保证本产品的良好接地,以防触电。 请勿直视光源发出的光线,以防对眼睛造成损伤。 目录 第一章 产品介绍 3 概述 3 型号分类型号 3 性能参数 3 第二章 使用方法 4 面板说明 4 接线 6 第三章 手动操作 7 亮度设置 7 通道开关设置 7 关闭输出 7 打开输出 7 第四章 演示程序 8 第五章 触发功能 9 第六章 通信协议 10 硬件规范 10 数据格式(帧格式) 10 第七章 附录 13 机械参数 13 第一章 产品介绍 概述 首先感谢您选用OPT的产品。DP系列LED光源亮度控制器,是一款可编程数字控制器。其具有以下几种功能:255级亮度调节功能(标准型通道最多4路,每一路亮度单独可控)、计算机通信功能(RS232接口)、触发功能(软件触发和硬件触发均可)。 型号分类型号 型 号 串口控制方式 通 道 外部触发 控制光源类型 DP1024-1 yes 1 Yes 24V光源 DP1024-2 yes 2 Yes 24V光源 DP1024-3 yes 3 Yes 24V光源 DP1024-4 yes 4 Yes 24V光源 性能参数 项 目 参 数 说 明 LED电源输出电压 24V 总功率最大可达45W 亮度可调级别 255级 外部触发输入 5V输入 触发延时时间 <10us 外部触发频率 <1/T 由频闪时间决定:如T=1ms,则外部触发频率最大可达1K。 RS-232通讯波特率 9600bps 为用户开放通讯协议 工作环境温度 0~60oC 单路输出 1A 注意:4路总输出不超过1.8A 电 源 100~240VAC 1.5A 宽电压输入 功 耗 <3W 外型尺寸 165mm×105mm×95mm 重 量 0.85kg 注意:控制器中的寄存器寿命为10万次。使用寿命到期后,寄存器便不再具有数据储存的功能(重启后,并不恢复为上次关机时的值)。 第二章 使用方法 面板说明 操作面板三按键输入,三位数码管显示输出,见下图: 图1 前面板 图2 后面板 界面 说明 备注 1 三位数码管显示输出 左起第一位为通道显示位,数值从1~4可调; 例:150表示第1通道亮度为50,注意,50是是十六进制表示的。 后两位为参数状态位,以十六进制表示,数值从00~FF可调(对应十进制0~255)。 2 信号灯 信号灯分别一一对应每路通道,信号灯的状态有两种,为亮和灭,亮时表示此通道处于打开状态,灭时表示此通道处于关闭状态 当外部接入触发信号,或使用频闪功能时,信号灯将和光源同步进行频闪,即一亮一灭。此时就可以通过观察信号灯的状态得知光源的工作状态。 3 三按键输入 左起第一位按键(S)为选择键。可以切换数码管当前位。 左起第二位按键(+)为参数加,每按1次,数码管当前位加1,直到最大; 左起第三位按键(-)为参数减,每按1次,数码管当前位减1,直到最小。 注: 1 当参数选择位数值为“00”时,再按一次参数减按键,则参数选择位将变为“--”,此时对应的通道被关闭,无电压输出。 2 任一通道的参数状态位的数值在00~FF范围内时,信号灯等处于亮的状态,通道被关闭时,信号灯状态为灭。 3 每次接通电源后打开控制器,数码管显示输出为上一次关闭控制器前的状态,如上一次关闭控制器前的显示输出“368”,本次打开显示输出也为“368”。 接线 图3 接线图 步骤 1 将光源与控制器连接好(参考图3) 步骤 2 如果需要进行外部触发,请将外部触发信号源与控制器连接好(参考图3) 步骤 3 接入电源(220VAC),把红色开关按钮“-”按下,“○”凸起,指示灯亮,表示已上电。 步骤 4 如果需要用计算机对光源亮度进行控制,请关机的状态下 用RS232数据线将PC和控制器接好,然后用我司提供的Demo程序或贵公司自己编写的程序进行控制即可。在用串口方式进行操作时,仍然可用手动的方式对各通道的参数进行设置,即上位机和控制器都可对参数进行设置,而不需要进行模式转换。Demo程序介绍请参考第四章 步骤 5 如需要用到频闪功能,请参照第五章 说明操作。同样,在使用频闪功能时,上位机和控制器仍然可对参数进行设置,而不需要进行模式转换,操作简单、方便 第三章 手动操作 亮度设置 每次接通电源后打开控制器,数码管显示输出为上一次关闭控制器前的状态,如上一次关闭控制器前的显示输出“368”,本次打开显示输出也为“368”。按选择键S,数码管中通道显示位“3”开始闪烁,按功能键+和-,便可对通道进行选择。通道选择确定后,按S键,数码管中参数状态位的高位“6”开始闪烁,按功能键+和-,便可对其进行选择,范围从0~F,光源亮度也随之变化;同理再次按S键,可对参数状态位的低位进行选择,范围同样从0~F。以上动作完成后,按S键,对你的设置进行保存,数码管也不再闪烁,如还需要设置,则按S键,重新进行以上操作。 通道开关设置 关闭输出 步骤 1 选择需要关闭的通道。 步骤 2 用“-”按键将亮度值设为00,此时,再按一次“-”按键,则参数选择位将变为“--”,此时对应的通道被关闭,无电压输出。 例:数码管显示输出为“200”时(2通道的信号灯亮),再按一次参数减按键,则变为“2--”(2通道的信号灯灭),此时2通道被关闭。 打开输出 步骤 1 选择需要打开的通道。相应的亮度显示为“--”。 步骤 2 按“+”按键,则对应通道打开,(对应通道的信号灯亮), 步骤 3 调整对应通道的亮度值至合适的值 第四章 演示程序 图4 Demo界面 串口选择:选择控制器所连接的通信串口。 功能选择:选择执行何种功能。 通道选择:选择光源的通道。 数值选择:选择光源的亮度等级。 执行键:执行相应的操作(点击执行键,上位机会根据功能选择、通道选择和数值选择的相应设置向控制器发送命令)。 退出键:退出演示程序。 状态栏:上位机和控制器通信的状态。 滑块和亮度调节:同一作用,调节光源的亮度。 通道开关:控制某一通道的关和开。 第五章 触发功能 外部触发: 外部触发的条件是,对TR端口输入TTL高电平时,光源灭,输入TTL低电平时,光源亮。通过控制TTL电平的高低,就可以控制光源的频闪周期。 外部端子 控制器内部 图5 触发端接线图 软件触发: 用软件实现触发功能,即使用串口对通道进行控制,使通道按照做好的设定打开和关闭,以此控制光源频闪。请参照第五章 说明操作。 第六章 通信协议 硬件规范 波特率 9600 bps 数据长度 8 bits 停止位 1 bit 奇偶校验 无 数据格式(帧格式) 1字节 1字节 1字节 3字节 2字节 特征字 命令字 通道字 数据 异或和校验字 注: 所有通讯字节都采用ASCII代码 特征字 = $ 命令字 = 1,2,3,4 1: 打开对应通道电源 2: 关闭对应通道电源 3: 设置对应通道电源参数 4: 读出对应通道电源参数 对于第1,2,3项接收正确时返回特征字$,接收错误时返回&。 对于第4项接收正确时返回对应通道的电源设置参数(返回格式跟发送格式相同),接收错误时返回&。 通道字 = 1,2,3,4。分别代表4个输出通道。 数据 = 0XX(XX=00~FF内的任一数值),对应通道电源的设置参数,高位在前,低位在后。 异或和校验字 = 除校验字外的(从特征字-数据)异或校验和,校验和的高半字节ASCII码在前,低半字节ASCII码在后。 例:将第1通道亮度设为50,则以ASCII码向下写“$3103217” 异或校验字运算过程如下: 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 3 51 33 0011 0011 通道字 1 49 31 0011 0001 数据 0 48 30 0011 0000 3 51 33 0011 0011 2 50 32 0011 0010 异或和 0001 0111 异或校验字 1 7 注:打开对应通道电源、关闭对应通道电源和读出对应通道电源参数3个功能的异或校验字的运算过程中,数据的3个字节的值对异或结果无影响,保证格式为0XX(XX=00~FF内的任一数值)即可。 以下为若干组实验数据,若用户自行编写Demo程序,可以下列数据进行对比测试 关闭2通道:$2206416 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 2 50 32 0011 0010 通道字 2 50 32 0011 0010 数据 0 48 30 0011 0000 6 54 36 0011 0110 4 52 34 0011 0100 异或和 0001 0110 异或校验字 1 6 打开2通道:$1206415 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 1 49 31 0011 0001 通道字 2 50 32 0011 0010 数据 0 48 30 0011 0000 6 54 36 0011 0110 4 52 34 0011 0100 异或和 0001 0101 异或校验字 1 5 读取2通道电源参数:$4206410 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 4 52 34 0011 0100 通道字 2 50 32 0011 0010 数据 0 48 30 0011 0000 6 54 36 0011 0110 4 52 34 0011 0100 异或和 0001 0000 异或校验字 1 0 第七章 附录 机械参数 前视图 侧视图 后视图