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、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作为外部存储,结合软件设计出喷头控制系统。通过实践和理论研究证明,系统不仅简捷、方便,而且更改容易且执行过程中在一定程度上提高了系统的效率,达到了理想的预期效果,但此控制设计系统没能面向市场,还存在不少缺陷和不足,需以后加以弥补和改进。也希望将来此设计系统可以广泛应用于喷绘机喷头控制系统中。