基于RS485 的颜色采集系统设计∗

2022-07-10 02:15程书晗苏宇锋
电子器件 2022年2期
关键词:上位数据包命令

程书晗苏宇锋

(郑州大学机械与动力工程学院,河南 郑州 450001)

随着现代工业生产向高速化、自动化方向的发展[1],颜色识别被越来越多地应用于现代工业生产。由颜色传感器识别到颜色信息传递给控制单元进行处理,相比人眼获得更客观准确的数据。颜色识别可应用于工业自动化、遥感技术、图像处理、产品质检以及一些需要色彩检测的模糊检测技术中。这些应用中,许多对颜色检测精度要求并不高,往往只需要区分不同颜色,比如:图书馆中利用给图书添加各种颜色贴条对文献分类;不同颜色的包装或者装潢表示内部产品的不同特性;医疗行业,批量检测试管中血样的有无等。

本文设计一种低功耗、可扩展的颜色检测系统,此系统保证颜色数据传输准确,过程稳定,单次采集量可控,采集过程可满足整个流程自动化,精度满足一般工业对颜色采集的要求。

1 系统整体设计

该系统整体框架如图1 所示,分为上位机、数据采集模块和颜色检测模块三部分,其中后两部分都是以STC8F2K16S2 为核心,颜色检测模块通过阵列的排布,利用颜色传感器对多个待检测目标的RGB值进行检测,得到的数据经过处理后传给数据采集模块;数据采集模块再把采集到的数据传送给上位机,通过上位机的监测窗口可以看到待测物体的RGB 值。

图1 系统总体框架图

系统中各部分通过RS485 总线进行通信,收发器选择MAX487 芯片,保证颜色检测模块在数量上可以实现128×128 的扩展。

2 硬件电路设计

2.1 供电电路

供电电路如图2 所示,通过开关电压调节器LM2596 将24 V 直流电转换为5 V 直流电供系统使用。也可通过调节拨码开关,不经过降压模块,直接接入5 V 直流电。其中每个采集设备与检测设备都分别与一个电源模块相连,且同级设备并联,降低总线电流,减小电路损耗。

图2 系统供电电路

2.2 RS485 通信电路

RS485 通信模块电路如图3 所示,硬件电路采用自动收发式设计,电路可根据TXD 发送数据的起始位自动将收发器设置为发送模式,发送完毕后设置为监听模式。

图3 RS485 通信电路图

2.3 颜色检测电路

颜色检测芯片为AMS 公司生产的TCS3200D芯片,该芯片通过将颜色信号转换为频率信号[2],通过单片机计数器接收到芯片信号,从而进行颜色转换。此部分主要目的就是对物体颜色进行检测,得到相应的RGB 数据、处理后传送给数据采集设备。颜色检测模块的电路如图4 所示。

图4 颜色检测电路图

颜色检测电路中每个颜色检测设备包含一个含有6 个LED 灯的照明灯,用于增加检测精度。颜色检测设备实物如图5 所示,检测设备分两部分,一部分为颜色检测,模块化管理,另一部分为检测部分供电以及与数据采集设备连接。

图5 颜色检测设备实物图

3 软件设计

软件部分主要对整体流程框架进行设计,包含对数据采集模块与颜色检测模块之间的RS485 通信协议的设计,对采集模块得到数据的处理。以及根据通信的命令对上位机的设计。在软件设计时全部采用模块化处理,便于后续命令的扩展和对程序的移植。

3.1 RS485 通信协议

通信部分都为点对多点的形式,将主机发送的数据按照地址帧与数据帧进行分类,地址帧发送地址与命令,数据帧进行主从机握手之后的数据传输。数据帧以数据包的形式发送。

(1)数据包结构

颜色检测模块与数据采集模块数据发送采用数据包的模式,方便对数据进行解析和校验。数据包格式如下:

表1 数据包格式

其中数据字段为核心内容数据字段,此部分长度可调节。

(2)数据包发送模块

数据包在颜色检测模块的串口中断2 中发送,串口中断处理程序流程如图6 所示。在串口中断中进行了颜色的检测和数据的发送。

图6 发送数据流程图

其中数据处理包含传感器多次测量去极值后所取的平均值和对数据包中的数据添加16 位的CRC校验码,在数据发送过程中为数据包中添加1 byte的校验和。

(3)数据包接收模块

数据包由数据采集模块接收,接收部分在采集模块串口2 中断服务程序中,程序流程如图7 所示,数据采集模块接收来自多个颜色检测模块的RGB数据,采用了数据和校验与循环冗余校验(Cyclic Redundancy Check,CRC)校验相结合的方式,CRC是通信领域常用的一种校验码,用于检测数据在传输过程中是否发生了被篡改的错误[3]。两种校验共3 byte,此冗余设计保证了接收数据的准确性。

图7 接收数据流程图

在轮询从机时,对接收数据失败的从机,在第一轮轮询从机结束后,再对通信失败的从机进行第二次询问,重新进行数据接收。

3.2 上位机与数据采集设备通信

设计采用由主机控制从机机制,将命令分为广播命令与点对点命令,广播命令完成对所有从机的控制,点对点命令进行主机与指定从机的通信。

为保证颜色检测的实时性,颜色传感器进行颜色读取的时间由上位机确定,上位机发送命令给数据采集设备,使其向所有颜色检测设备发送读取颜色命令;上位机发送命令使采集器对检测并处理后的数据进行分别采集;最后逐个收集采集器采集到的数据,以此完成应用层与感知层的间接通信。

(1)数据采集设备数据发送模块

其中上位机与数据采集设备通信过程中,采集设备通过串口1 完成对上位机命令的接收以及采集数据的发送。其串口1 中断流程如图8 所示。

图8 上位机与采集设备通信流程图

(2)上位机模块

上位机采用C#软件编写,软件界面如图9 所示,各部分功能清晰可视化。可实现在命令区单独发送命令或者在配置区与工作区进行一些配置后,通过开始检测按钮直接对各采集设备与检测设备自动化控制,完成从检测到在上位机显示RGB 值,以及间隔一定时间重新采集的自动化流程。在上位机接受区可以接收到各从机检测到的RGB 数据。

图9 上位机与采集设备通信流程图

4 结果及分析

根据上述系统的设计,使用C 语言完成软件部分各模块的编程,生成hex 文件后使用STC-ISP 软件烧录到数据采集设备和颜色检测设备中,连接通信电路、打开上位机软件,使用自动检测模式对系统进行测试。

(1)数据准确性测试

将程序中由颜色检测传感器采集RGB 值并处理后的数据改为已知的固定数据,分别在设置不同CRC 校验码与数据和校验码的情况下对数据传输的准确性进行测试。

结果表明,只有当CRC 校验码与数据和校验码检测正确时,才能传输成功,否则数据采集设备内部关于相应颜色检测设备的传输标志位不置位,即表示传输失败。由此可以看出此系统能够准确地传输数据,并且在传输过程中出现错误导致数据不准确时会由于双重冗余校验导致传输失败。

(2)稳定性测试

将检测系统数据采集设备设置为四个,颜色采集设备设置为五个。系统连接好后,在自动检测模式下进行自动化检测待测物体RGB 值,经测试,系统在连续工作13 h 的情况下检测与传输过程未中止,且在此期间内未丢失任何一组RGB 数据,可以看出系统稳定可靠。

(3)RGB 值检测测试

使用此系统,经白平衡测试后,由颜色传感器TCS3200D 检测到的RGB 值对应的颜色与实物的对比如表2 所示。

表2 RGB 值测试

该对比图在待测物体与检测装置光源约3 mm处测得,从该对比图可以看出检测效果较为理想。但限于TCS3200D 颜色传感器性能,对待测物体与检测装置之间距离以及白平衡测试准度要求比较严格,需要仔细调试,否则得到的检测结果误差可能较大。

对于一些对RGB 值精度要求不高或者只需要进行对颜色进行区分的应用场合,比如进行糖尿病患者尿液血糖水平检测[4],家具封装中激光封边的颜色检测[5]等。本系统完全满足此类工业中对颜色识别的使用要求。

5 结束语

该系统以STC8F2K16S2 为核心,通过颜色检测设备对大量待测物体进行RGB 值读取,处理后通过RS485 协议对数据进行准确、稳定的传输至数据采集设备,最后由数据采集设备将数据发送给上位机,通过上位机检测到每一个待测物体对应的RGB 值。整个系统可以完全自动化的循环检测,且可根据需求对单次检测数量进行扩展。经测试后系统精度适中、成本低、功耗低、性能稳定,可以满足一般工业中对颜色检测的要求。

猜你喜欢
上位数据包命令
只听主人的命令
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
安装和启动Docker
C#串口高效可靠的接收方案设计
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
特斯拉 风云之老阿姨上位
移防命令下达后
基于ZigBee和VC上位机的教室智能监测管理系统
对卢沟桥事变期间一份“作战命令”的考析