嵌入式测色仪系统设计

   2023-10-05 互联网2090
核心提示:  以往人们通常用语言或文字来表达各种颜色,但不同的地区、不同的人种对同一种颜色的表达是不一致的。而且颜色种类繁多,不可能

  以往人们通常用语言或文字来表达各种颜色,但不同的地区、不同的人种对同一种颜色的表达是不一致的。而且颜色种类繁多,不可能用语言将各种颜色清楚地表达出来。为了定量地将颜色表达出来并且具有一定的通用性,必须遵循一定的规范和标准。颜色科学是一门综合性科学,关系到视觉学、生理、心理、光学、电子、精密机械等学科。颜色测量仪器是应用以上学科原理并结合计算机技术,把颜色数值量化的仪器,这样人们只要根据仪器所测得的数值就能分辨出所测的是一种什么颜色。

  随着计算机及微电子技术的不断发展,嵌入式计算机的硬件及软件系统被逐渐广泛应用到测量仪器领域。数字化测量仪器逐渐向高集成度,多功能、智能化、网络化以及微型化发展。近年来,用于微控制行业的单片微型控制计算机得到了前所未有的发展,经历了从单片微型计算机到微控制器(MCU)和混合信号系统级芯片(SoC)的变迁。采用嵌入式混合信号系统级微控制器(MCU)芯片以及嵌入式编程语言可以方便快速开发出高集成度和复杂度的测量仪器。

  1 系统概述

  颜色测量的原理、数据和计算方法是以2组现代色度学的基本视觉实验数据为基础的,一组是CIE 1931标准色度观察者光谱三刺激值(即XYZ表色系统),适于1°~4°视场的颜色测量;另一组是CIE 1964补充标准观察者光谱三刺激值(即X10、Y10、Z10表色系统),适于大于4°视场的颜色测量。并且CIE规定必须在明视觉条件下使用这2组标准观察者的数据。我国国家标准(GB3977-83)“颜色的表示方法”中要求,在XYZ色度系统中,采用色品坐标x、y和刺激值Y10表示;X10, Y10,Z10色度系统中,采用色品坐标x10,y10和刺激值Y10表示,也就是一组x,y, Y值就对应一种颜色。

  本测色系统要求通过一定的探测器模仿标准眼,获得被探测物体表面的红、绿、蓝反射光,然后进行光电转换,将其转换成三路0~2.4 V电压信号。进一步将获得的电压信号转换为符合国际通用表色系统X, Y,Z。根据转换成的X, Y,Z值计算获得以下数值:

  ①物体颜色的绝对值:X10Y10Z10,x10y10z10,L*a*b*,Lab;

  ②色差:ΔE*ab,ΔL*,Δa*,Δb*,ΔEH,ΔL,Δa,Δb;

  ③白度W:由于国内各行业分别制定了适于本行业的理想白度公式,为了使系统尽量适用于各行业,分别根据各行业的白度公式计算白度,其中包括甘茨白度、亨特白度、兰光白度、建材白度、白水泥白度、日用陶瓷白度。

  ④黄度指数Yi及变黄度ΔYi

  ⑤彩度C及色调角H

  ⑥根据我国纺织行业标准FZ/TO1023-93,纺织品沾色牢度SSR及变色牢度GS[1]。

  根据以上要求,该测色仪系统需要完成从光信号到电信号以及再从模拟信号到数字信号的转换(A/D),同时还要进行大量的数据处理和复杂计算以获得所需要的各种颜色数值。另外,为了具备良好的人机交互界面,需要在液晶显示屏上显示一定的菜单和图标,以及将计算结果以数值和曲线的方式显示给用户,并且要根据用户要求将数据打印输出。嵌入式系统单片机的计算功能及运算速度是有限的,为了进行更复杂的计算,还需要与通用计算机进行通信,将数据上传到计算机进行单片机无法处理的复杂运算,以及为了以后软件的升级,需要有一定的接口与计算机进行连接,将升级程序直接下载到系统的闪存中即可以完成系统软件的升级。

  2 系统硬件结构分析

  2.1 测量单元设计分析

  测量单元由光源、透镜、S7505型硅光电池、积分球等组成。光源产生的白光照射到被测物体后产生的反色光经积分球漫反射后照射到S7505型硅光电池,该硅光电池带有红、绿、兰三色滤光片,可以将反射光中的红、绿、兰三种颜色转换为微电流信号,以此微电流信号作为主机的输入信号。

  2.2 信号处理及计算单元设计分析

  根据测色仪的系统要求,选择CYGNAL公司的C8051F020单片机作为处理芯片。该芯片是完全集成的混合信号系统级MCU芯片(SoC),具有64(C8051F020/2)或32(C8051F021/3)个数字I/O引脚,具有高速、流水线结构的与8051兼容的高速CIP-51内核,与MCS-51指令集完全兼容,片内集成了数据采集和控制系统中常用的模拟、数字外设及其他功能部件;内置FLASH程序存储器、内部RAM,大部分器件内部还有位于外部数据存储器空间的RAM,即XRAM。C8051F单片机具有片内调试电路,通过4脚的JTAG接口可以进行非侵入式、全速的在系统调试。

  C8051F020具有一个片内12位SAR ADC,一个9通道输入多路选择开关和可编程增益放大器,该ADC工作在100 ksps的最大采样速率时可提供真正的12位精度,INL为±LSB,所以不需要另外设计A/D转换电路,可以将探测器输出的微电流经过放大、电流电压转换以及滤波抗噪处理后输入到C8051F020的模拟输入引脚进行A/D转换。

  该测色仪采用分辨率为320×240的8色液晶显示器,单片机通过并行接口P7与液晶显示器的驱动模块进行通讯,液晶显示器的片选和中断信号分别连接P3口。由于该款单片机的工作电压为3 V,其输出电压为3 V,而液晶显示器驱动模块的工作电压为5 V,所以要实现两者之间的通讯, P7及P3口必须外接上拉电阻,通过外接5 V数字电源将电压上拉到5 V,并且端口工作方式必须选择漏极开路方式。C8051F020具有2个串行通信接口UART0、UART1,这2个串行接口经过RS232芯片转换为RS232串行通信协议后分别用于连接微型汉字打印机以及与计算机进行通讯。为了便于串口波特率的设定,使用频率为22.1184 MHz的片外晶振。按键直接连接到P4~P6口,共有24个按键。P4~P6口工作方式选择为漏极开路方式,通过向P4~P6各口写1将其配置为输入。另外,为了显示系统的工作状态,将P1.6接一发光二极管LED,通过定时器控制其每隔一定时间闪烁一次,表示系统工作正常。为了指示按键已按下以及错误操作,将P1.7接一晶体三级管控制蜂鸣器发声。另外,为了能够显示实时时钟以及在打印时间,系统采用了实时时钟芯片DS1302,该芯片只有8个引脚,通过I2C总线方式与单片机进行通信[2~4]。测色仪硬件系统原理如图1所示。

  3 系统软件设计分析

  嵌入式C语言是一种结构化的高级语言,支持自顶向下的结构化程序设计技术,它具有完善的模块程序结构,在软件开发过程中可以采用模块化程序设计方法。使用C语言进行8051系列单片机系统开发,编程者可以专注于应用软件部分的设计,不必将大量的精力花在内存分配等基础工作上从而大大加快了元件开发速度。该测色仪的软件系统采用嵌入式C语言进行开发,编译器使用Keil C51,考虑到调试方便,开发环境使用CYGNAL自带的集成开发环境[5]。

  C8051F020单片机属于混合信号系统级芯片,系统工作频率可以选择,功能可定制,很多引脚都是多功能复用的,所以需要固化程序先进行一系列的初始化,例如选择片外晶振并使其启振,初始化端口,通过配置交叉开关将所需要的功能赋予相应的引脚。系统初始化结束后,显示欢迎画面后进入键盘监视程序,等待用户按键以进行各项测量任务。程序流程图如图2所示。

  4 结束语

  目前的很多测色仪颜色测量精度不够高,同时人机交互界面过于简单,多以英文方式显示数据,操作起来很不方便,以及不能与通用计算机交互数据。本系统使用CYGNAL公司的C8051F020单片机并结合一定的硬件电路实现了对物体颜色的测量,通过嵌入式C语言进行系统软件的设计,实现了对测量数据的分析处理,提高了颜色测量精度,同时缩小了仪器体积,提高了仪器的便携性。通过采用彩色液晶显示器显示测量分析结果,实现了良好的中文人机交互界面,使操作者使用起来更加方便。该测色仪还可以通过微型打印机将测量数据以中文方式打印输出,同时还实现了与计算机的通信,便于数据的管理和进一步的分析。

  参考文献:

  [1]张红鸣.工业产品着色与配色技术[M].北京:中国轻工业出版社,1999.

  [2]潘琢金.C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册[M].沈阳:沈阳新华龙电子有限公司,2002.

  [3]张培仁.MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.

  [4]王福瑞.单片微机测控系统设计大全[M].北京:北京航空航天大学出版社,1998.

  [5]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1999.

  作者简介:谷玉海(1976-),男,山东泰安人,北京机械工业学院机械工程系硕士研究生,主要从事机械电子工程方面的研

  究。


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅