历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2021年03月05日 | 基于STM32在喷绘机喷头控制系统的设计与实现

2021-03-05 来源:eefocus

0 引言

由于喷绘机喷绘过程中采用的是压电喷头工作原理,为保证喷绘出图像清晰细腻,喷绘机需要在同一温度下提供稳定的驱动电压对压电晶体进行控制。如何在精准的条件下根据室内温度实时、快速、方便地更改驱动电压和配置数据值得研究。


1 系统设计理念

喷头的驱动电压VDD2(t)取决于喷头容积电压Vrank、基于不同厂家不同颜色的油墨粘滞度而提供每色油墨与标准油墨的修正值Voffset电压、不同颜色的油墨在不同温度下需要的驱动电压补偿值Vdiff(t),即VDD2(t)=Vrank+Voffset+Vdiff(t)。不同颜色的油墨在不同的温度下驱动电压的补偿值Vdiff(t),称之为T-V数据。


不同厂家油墨温压数据不同,厂家会根据每种墨水的种类和颜色在出厂前给出一组关于墨水在不同温度下的电压补偿值,根据喷头墨腔内部墨水温度变化动态地调整每个喷头的驱动电压以保证喷射出的墨水点滴大小一致、视觉效果更清晰。为防止在掉电的情况下数据丢失和避免不小心更改,数据通常存储在只读存储器中。EEPROM存储量有限又需存储不同种类的T—V数据时,可以将数据通过算法[2]进行压缩后存储在ROM中。当今市场喷绘机数量越来越多,出于对喷绘机性能考略,本设计在温压数据读取时避免使用算法降低速度,借助嵌入式经典的“空间换时间”理论,以日本精工集团的IRH1513D喷头为研究对象,在24C16EEPROM中存储配置数据。每次初始化后通过I2C通信机制读数据,工作时喷头需要更新电压时通过DMA方式快速传送温度数值(A/D转化值),迅速更新喷头所需驱动电压。过程中发现喷头工作有误差时借助显示工具设置按键对其校验,过程中适当改进运算形式来提高喷头控制系统效率。


2 基于系统的硬件设计


图1为控制系统硬件结构建构。从图可看出设计中以STM32为主控,选取支持I2C通信机制、2 KB存储量的24C16EEPROM作为外部存储器,主控中集成的I2C 2的时钟线SCL(PB10引脚)和SDA线(PB11引脚)与EEPROM的SCL和SDA分别通过外接一个上拉4.7 k?赘电阻连接。设计中主控集成I2C 2作为外部数据存储器的时钟和数据的发送,24c16EEPROM作为从设备,选取200 kHz的读取速度。通过主控中的I/O口读取温度模拟量,显示调整数据时采用UART或128x64LCD,采用128x64的静态LCD主要方便客户使用,研发者主要使用UART进行校正,外扩按键为了校验误差或测试喷头状态等。上电开始和结束时需给喷头发送开关波形数据、命令,工作时读取喷头的状态需要实时更改主控PWM即补偿电压。系统中硬件按键消抖在主控中延时实现,通过按键可进入校验、T-V数据输入、喷头测试状态。为快速处理数据,主控内A/D转化值借助DMA传输方式。


控制系统采用一个主控STM32控制一个喷头形式,所以外存储上不需存储墨水的颜色和控制喷头型号等数据,喷头采用日本精工集团的IRH1513D。系统上电初始化后,主控通过I2C通信机制把24C16EEPROM作为从设备读取喷头Vrank容积电压、温压曲线、开关波形等数据。而且此程序中使用容积电压Vrank、Voffset和ADCValOff以十倍进行存储运算,每个数据定义2 B即16 bit。综合考略24C16EEPROM外存储单元,地址分配设计为:地址0x00~0x166共358 B存储温压偏移曲线数据;地址0x200~0x201存储16 B墨水的容积电压Vrank;地址0x202~0x203存储此种油墨修正电压Voffset;地址0x204~0x205存储喷头25℃时需要校准参数本底偏移值AdcValBOff;地址0x206~0x207存储当PWM OCR1为高点电压比较值时所对应十倍电压Hm;地址0x208~0x209存储当PWM OCR1为低点电压比较值时所对应十倍电压Lm;0x210~0x221共12个地址空间存储喷头必要的配置数据;地址0x300~0x33c共60 B用于存储喷头的开波形数据;地址0x340~73c共60 B用于存储喷头的关波形数据。


3 基于系统的软件设计

整个软件的架构中分别对串行通信、24c16EEPROM存储、改进运算形式、主控状态机切换等进行设计与研究。最后借助PC上串口调试器或外扩128x64LCD显示人机交互来校正喷绘机的喷头。


3.1 通信界面的设计



通信界面是为用户简单、方便地更换墨水的T-V数据和校正喷绘机喷头而设置的显示工具。图2为串行通信的流程,从图中可以看出,主菜单在调试过程中,通过选项来进入温度校准、电压校准、容积电压Vrank输入或是配置数据的输入。借助于串口通信,在需要更新墨水的T—V数据时,无论用户是否熟练新产品的使用,都可直观操作把厂家提供的温压数据通过选择不同命令符写入24c16EEPROM。


3.2 基于24c16EEPROM存储设计

根据I2C的通信机制,首先主机发送一个起始条件,从机接收到后回发一个ACK响应信号。然后主机发送地址字节(地址字节为7位,最后一位为读写标志位),进行数据的读写传输。每次接收方回发一个ACK。最后主机发送停止信号结束通信。24c16EEPROM芯片手册,在发送地址7位中前四位必须是1010,此处DEVICE ADDRESS(设备地址)是通过(0xao|(读写地址))发送。通信时调用函数E2416_BufWr((u8*)&D0_confOn[0],ONWAVE_ADDR,NbrOfReg)来进行写操作设计,其中函数的参数(u8*)&D0_confOn[0]定义为首个无符号字节数据地址,ONWAVE_ADDR参数是指向写入到EEPROM的地址,参数NbrOfReg是写入数据的个数。


此处I2C通信模块的整体设计可通过程序图3进行描述,图中发送两个EEPROM地址,第一个EEPRON地址是EEPROM设备地址,从第二个EEPROM是存储数据首地址。2416EEPROM规定每一页为16 B,程序在设置过程中以E2416_PageWr()对页进行写操作,以E2416_ByteWr()对字节进行写操作,写入到EEPROM指定的地址,同样设置E2416_BufRe()、E2416_PageRe()进行页读操作以及E2416_ByteRe()进行字节读操作,从指定的地址中读数据。若需更改墨水的数据时借助串口交互的选择,把需要数据通过I2C通信机制直接写入到24c16数据存储EEPROM中,实际上写入到了预留的同一块ROM中。而且在喷头实际工作过程中可把确定的数据在上电初期通过函数E2416_BufRe()以及E2416_PageRe()来读取开关波形及喷头配置数据。

3.3 改进运算形式

根据以上设计,喷头开始工作前,STM32主控制器从24c16EEPROM的外存储通过I2C通信机制读配置数据,其中包括存储高电压时PWM OCR1比较值Hm和存储低电压时PWM OCR1比较值Lm,程序中定义两个比较值,高低电压Hx、Lx是对应的实际高低电压的10倍。根据理论知PWM OCR1的值和对应STM32输出电压成正比。当PWM OCR1的值高时,STM32输出的电压高。所以得比例(Hm-Lm)/(Hx-Lx)=(m-Lm)/(x-Lx),其中m代表任意时刻PWM OCR1的比较值,x代表任意时刻当PWM OCR1的比较值为m时所对应输出电压的10倍,化简得m=(H_Lm*(x-Lx)+Lm*H_Lx)/H_Lx。读到一个温度,通过查表找到需要补偿电压,最后把补偿电压、修正电压、容积电压相加算出最后喷头需要的电压x,通过以上化简知m=(H_Lm*(x-Lx)+Lm*H_Lx)/H_Lx,计算出PWM OCR1中需要值m改变PWM。喷头工作的电压是12 V~29 V,精确到0.1 V,在设计过程中把实际高低电压Hx、Lx以及更改的输出电压扩大10倍。不难看出运算形式及结果没有改变,而存储上需占更多空间,但是不改则需要浮点型数的运算。相比较而言,提高10倍虽增加存储空间但较少计算时间,提高执行效率。


3.4 主控状态机切换设计


STM32主控程序设计是整个控制系统核心。为了优化系统设计,提高主控的处理速度,此处设计采用如图4主控状态切换机制。从图中可看出,系统上电开始后进入InitConfig状态初始化时钟、I/O口、串口、DMA、A/D、定时器、I2C、缓冲区等。若使能液晶屏,则液晶屏开始显示,然后通过DMA发送I2C从设备地址进入Send Slave Add状态。如果地址匹配,则进入Read Data状态,即从EEPROM中读取喷头的配置数据。若VERIFY_ON=1(PA^8=0),则按键按下进入UART adjust状态(文件的配置),若Sw1_on==1,即按键按下进入Nozzle text状态即喷头测试,否则进入ADC状态。转化完后通过DMA传送数据进入DMA IRQ状态,在此状态下进行16次平滑处理,计算完后进入Update Voltage状态然后输出PWM即电压提供给喷头,使喷头精确工作。初始工作读完数据后首次A/D转化由软件启动,工作后A/D转化是在DMA中断下进行,16次平滑处理后开启A/D转化使能。


4 系统测试



结合系统总体架构的软件和硬件平台以及过程方法步骤的阐述,最终测试结果如图5、6所示。图5显示了基于I2C通信机制EEPROM存储验证。为验证结果的正确,向24C16EEPROM写入数据0x0a、0x0b并用示波器观察波形图,其中通道2为SCL波形,通道1为SDA波形,结合两个通道信号和写入数据验证此系统存储设计可行。图6是借助串口收发机制来更新墨水T-V数据、喷头配置文件以及校验显示,从图可看出UART采用的是并口COM1、波特率为115 200 b/s,8 bit数据位和1 bit停止位,无奇偶校验收发机制下可正确显示主控的收发信息与程序设计一致。图6中主校菜单下通过串口向STM32发送“数字选项”来进入温度校准、12 V输出校准、29 V输出校准、容积电压Vrank输出等菜单。图中是在选择“9”下喷头的配置数据输入时的显示,包括喷头配置数据、开关波形数据以及没有显示全的温压曲线等数据。


5 总结

随着喷绘技术的发展,对喷头控制系统的要求越来越高。本设计基于简单、方便的考虑,以STM32作为主控制平台,以24c16EEPROM作为外部存储,结合软件设计出喷头控制系统。通过实践和理论研究证明,系统不仅简捷、方便,而且更改容易且执行过程中在一定程度上提高了系统的效率,达到了理想的预期效果,但此控制设计系统没能面向市场,还存在不少缺陷和不足,需以后加以弥补和改进。也希望将来此设计系统可以广泛应用于喷绘机喷头控制系统中。

推荐阅读

史海拾趣

国兴(GOODSKY)公司的发展小趣事

对于带有1HZ低通滤波器的电桥放大器电路,网友可能的问题及回答如下:

问题一:1HZ低通滤波器在电桥放大器电路中的作用是什么?

回答:1HZ低通滤波器在电桥放大器电路中的主要作用是滤除高于1Hz频率的信号,只允许低于或等于1Hz的信号通过。这对于需要从复杂信号中提取低频分量或去除高频噪声的场合尤为重要。在电桥放大器中,由于传感器输出信号可能包含多种频率成分,通过1HZ低通滤波器可以有效减少高频噪声的干扰,提高测量信号的信噪比和精度。

问题二:如何设计带有1HZ低通滤波器的电桥放大器电路?

回答:设计带有1HZ低通滤波器的电桥放大器电路时,需要综合考虑电桥电路的设计、放大器的选择以及滤波器的设计。以下是大致的设计步骤:

  1. 电桥电路设计:首先,根据被测物理量的特性选择合适的电阻传感器,并设计相应的电桥电路。电桥电路应能准确地将非电量转换为电压或电流信号,并具有一定的抗干扰能力。

  2. 放大器选择:选择合适的运算放大器(运放)作为放大元件。运放应具有低噪声、高精度和适当的增益带宽积,以满足信号放大的需求。

  3. 滤波器设计:设计1HZ低通滤波器时,可以选择一阶或更高阶的有源滤波器。一阶有源低通滤波器由电阻、电容和运放组成,具有简单的电路结构和较好的滤波效果。设计时,需要根据所需的截止频率(本例为1HZ)选择合适的电阻和电容值。

  4. 电路整合与调试:将电桥电路、放大器和滤波器整合在一起,形成完整的电桥放大器电路。然后,对电路进行调试,确保电路工作正常,并满足预期的滤波和放大效果。

问题三:带有1HZ低通滤波器的电桥放大器电路在实际应用中有哪些注意事项?

回答:在实际应用中,带有1HZ低通滤波器的电桥放大器电路需要注意以下几点:

  1. 元件选择:应选择精度高、稳定性好的元件,如精密电阻、低噪声运放等,以确保电路的测量精度和稳定性。

  2. 布局与布线:合理的电路布局和布线可以减少电磁干扰和噪声耦合,提高电路的抗干扰能力。

  3. 温度补偿:由于温度变化可能影响电阻的阻值,进而影响电桥的输出电压,因此需要考虑温度补偿措施,以提高电路的温度稳定性。

  4. 校准与标定:定期对电路进行校准和标定,以确保测量结果的准确性和可靠性。

  5. 安全保护:在电路设计中应加入必要的保护措施,如过流保护、过压保护等,以防止电路在异常情况下损坏。

FTDI [Future Technology Devices International Ltd.]公司的发展小趣事

2013年,FTDI推出了最新的嵌入式视频引擎(EVE)技术产品,这一创新标志着公司进入了一个新的技术领域。EVE技术将高度先进的图形控制器、显示器、音频和触摸功能集成到单一芯片中,为智能显示器在各种终端应用中的实现提供了强大支持。这一技术的推出不仅展示了FTDI在图像处理和显示领域的深厚积累,也为其后续在更多领域的拓展奠定了基础。

ACEINNA公司的发展小趣事

随着市场需求的变化,FTDI并未满足于初期的成就,而是积极拓展产品线。他们推出了如MM232R和USB-COM232-PLUS1等接口产品,这些产品在连接性和兼容性上展现了公司强大的技术实力和创新精神。同时,FTDI还涉足USB和其他通信协议的转换领域,满足了多样化的市场需求,进一步巩固了其在电子行业中的地位。

Austek Microsystems公司的发展小趣事

在追求经济效益的同时,Austek Microsystems也积极履行社会责任。公司严格遵守环保法规,采用环保材料和生产工艺,减少对环境的影响。此外,Austek Microsystems还积极参与公益事业,为社区的发展和进步贡献自己的力量。

这五个故事展示了Austek Microsystems在电子行业中的发展历程和取得的成就。通过创新研发、建立合作伙伴关系、技术升级与产品迭代、市场拓展与品牌建设以及履行社会责任等方式,Austek Microsystems逐渐在市场中崭露头角,成为了电子行业中一颗璀璨的明星。

固驰(GUERTE)公司的发展小趣事

浙江固驰电子有限公司,即固驰(GUERTE)品牌的发源地,于1995年在浙江省丽水市创立。公司由范*先生创立,初期专注于半导体器件的生产。经过数年的不懈努力,固驰电子逐渐在行业内崭露头角,通过持续的技术创新和产品优化,成功开发出ZQ系列整流管芯、CELL芯片、5-200A单三相整流桥及电力半导体模块等核心产品。这些产品广泛应用于变频器、逆变焊机、UPS电源等领域,为公司的快速发展奠定了坚实基础。

ANSHAN [Anshan Suly Electronics]公司的发展小趣事

ANSHAN公司成立于上世纪末,当时正值电子行业的蓬勃发展期。创始人李先生凭借对电子技术的深厚理解和敏锐的市场洞察力,决定投身于这个充满机遇的领域。初创时期的ANSHAN面临资金短缺、人才匮乏和技术壁垒等多重挑战。然而,李先生带领团队日夜兼程,不断研发新产品,拓展市场渠道。他们坚持自主创新,不断攻克技术难题,逐渐在电子行业中崭露头角。

问答坊 | AI 解惑

单片机解密,芯片解密PCB抄板,烧录IC

深圳市南源电子科技有限公司 芯片解密/单片机解密/IC解密/PLD解密/CPLD解密: (慎重声明:仅限合法研究用途) 单片机(MCU)解密、IC解密 、PLD解密、CPLD解密、鉴定芯片型号;成功率高,周期短,费用合理. 大量供应PIC/EMC兼容IC,性能稳定, ...…

查看全部问答>

wince 5.0 如何加载touch驱动

各位大侠,我在wince5.0的PB中搞了好久加载touch驱动就是没有搞出来,各位帮帮忙了,告诉小女子怎么加载?…

查看全部问答>

wavescan 可以一下子读入批量psf吗?

cadence 中的 wavescan 能够一下子读取多个psf吗? 比如ocean产生多个corner的结果,放在不同的路径下。 sx可以实现,不过sx的结果会有一点点差别,所以不是很愿意用。 我试着找些文档,看看能否用skill/tcl等command的方式进行,不过没有找到。 ...…

查看全部问答>

vs2005下安装platform builder插件后设置winceroot问题

先安装好vs2005,再装上Embedded CE 6.0   用vs2005建立Platform Builder for CE 6.0工程时,提示要先设置好 WINCEROOT才能使用。 请问高人,怎么设置WINCEROOT?? 十分感谢 …

查看全部问答>

请教,怎样对STM32FARM中Flash的某一位擦除?

    想把数据分块存储在Flash中,想单独对Flsh中某一部分进行擦除和写入,而不是对整个业擦除。     看了Flash.c文件中的选择擦除函数,没看懂什么意思,这个函数没有指定擦除地址竟然能实现擦 ...…

查看全部问答>

关于MPY和MAC的溢出饱和问题

本帖最后由 dontium 于 2015-1-23 13:33 编辑      .mmregs      .def  _Lmac      .text _Lmac  .equ $      SSBX   OVM ...…

查看全部问答>

24LC02B有时候不能读写

MSP430F149与24LC02B I2C通讯,存储电机脉冲数据,每次动作结束的时候存储一次,用写进去再读出来的方法验证数据是否存储成功,当存储成功时,指示灯亮,不成功时,while循环再次写读指示灯闪烁。问题是:读写成功的机会是随机的,有时候能读写成功 ...…

查看全部问答>

有关修改设备逻辑类型的问题?

在协议栈中添加了NV_INIT,不知为何第一次无法修改设备逻辑类型,总是以协调器的身份启动 而不是我配置的路由器设备启动。而没加却可以,请问下这是为什么呢? #if defined ( BUILD_ALL_DEVICES )   // The \"Demo\" target is setup ...…

查看全部问答>

2013电子设计大赛

本帖最后由 paulhyde 于 2014-9-15 03:02 编辑 2013电子设计大赛    …

查看全部问答>