流水线上嵌入式喷码机系统设计
2014-06-19王宏文黄金兰董苗
王宏文 黄金兰 董苗
摘 要: 在现代的生产流水线上离不开喷码机的使用,国内传统的喷码机大部分都是以8/16位单片机为控制器的系统,依托于庞大的上位机,成本昂贵且不利于维护,为了提高喷印效率的同时又能降低喷码机的成本以及方便使用,设计一种嵌入式喷码机。采用三星公司基于ARM920T内核的S3C2440A芯片作为中央处理器,利用XAAR公司的XJ128喷头搭建嵌入式系统硬件平台,基于WinCE操作系统,开发相应的喷码器应用程序。该系统体积小巧,灵活性强,并且带有触摸屏,操作简单,成本较低易于移动,同时也更方便后期维护和升级。
关键词: 嵌入式; 喷码机; S3C2440A; WinCE
中图分类号: TN06?34; TP23 文献标识码: A 文章编号: 1004?373X(2014)09?0107?04
0 引 言
对于生产线上需要喷印的产品,喷印的图像既要清晰又要快速。如何更好地保证喷印质量和效率是喷码设备生产企业一直不断创新的方向。喷码设备对于建立产品个性化特点,通过包装展现产品的独特个性,是企业赢得消费者的关键。目前墨水喷码机的市场很大部分已被激光喷码机占据,但激光喷码机因为材质的限制也不可能完全替代墨水喷码机。而且现在国内主流的墨水喷码机一般都采用8/16位单片机作为其控制器,利用PC机做上位机,这在一定程度上加大了成本,浪费了资源,此外,由于尺寸的限制,不利于后期的维护和移动。由此设计一种体积小巧,携带方便,不依赖于PC机的基于S3C2440A的嵌入式喷码机系统。
1 总体设计
嵌入式喷码机的设计包括硬件系统和软件系统的设计,硬件系统主要以S3C2440A芯片为中央处理器,采用XAAR公司的XJ128喷头,并结合外围电路。软件系统主要基于WinCE操作系统,根据硬件电路,开发出WinCE的驱动程序,编写针对喷码机功能操作界面的应用程序。开机后,操作者只需在喷码机自带的触摸屏上点击选择喷印内容,点击打印,喷码机开始喷印工作。操作简单,喷印内容也可以随意更改。
2 硬件设计
三星公司推出的16/32位RISC微处理器S3C2440A[1]为手持设备提供了低价、低功耗、高性能小型微控制器的解决方案。S3C2440A基于ARM920T内核[1],采用了AMBA(Advanced Micro controller Bus Architecture)的总线架构。
英国赛尔(XAAR)公司的XJ128喷头由128个并行排列的通道组成,喷头中的128个喷嘴都是以“二态”形式动作的。喷头的电气接口主要是负责数据的传输和命令的控制,即外部控制器可以通过电气接口使喷头正常工作。
系统总体硬件设计图如图1所示。以S3C2440A微处理器为中心,包括电源电路和复位电路、ARM芯片的外部扩展电路及屏幕显示、串口通信等电路等。
图1 总体硬件设计图
2.1 电源和复位电路
由于芯片S3C2440A需要3.3 V的外部I/O供电,1.8 V/2.5 V/3.3 V的存储器供电,1.25 V的内核供电,而且喷头需要5 V和35 V两种供电电压,后续使用的光电传感器需要12 V的电源供电,所以在硬件设计中不得不考虑到电源部分的设计[2]。电源示意图如图2所示。
图2 电源示意图
图2中,220 V交流电压经过变压器,整流、滤波和稳压电路,输出稳定的直流电压12 V,12 V分别通过XL6009E1升压芯片和LM2596降压两种电压转换电路,得到35 V和其他较小的电压值,35 V通过滤波电容后给XJ128喷头提供电源,其他电压则给S3C2440A内核及其他外围电路供电。运用电压转换芯片的好处是结构简单,转换效率高,输出负载电流大。
复位电路采用专用的复位芯片MAX811组成复位电路,带有手动复位引脚。
2.2 外部扩展电路
S3C2440A处理器内部集成的ROM和RAM容量较小,需要扩展存储[3],而且其芯片内部集成了SDRAM控制器和NAND FLASH控制器。SDRAM相当于计算机的内存,主要用于执行程序,但是掉电后里面的数据会丢失。NAND FLASH相当于计算机的硬盘,容量较大,存储单位比特数据的成本低,但是需要按照特定的时序对它进行读写操作,CPU对其中数据的读写是通过专门的NAND FLASH 控制器来进行的,因此NAND FLASH更适合于存储数据。NOR FLASH 容量小,速度快,对它进行读写操作时输入地址,然后给出读写信号即可从数据总线上得到数据,但是价格一般比NAND FLASH 高,因此适合做程序存储器。所以,NOR FLASH 可以直接连接到ARM总线上,而NAND FLASH 需要通过NAND FLASH控制器与S3C2440A相连接。上电后通过识别OM[1:0]的电平来选择是NOR FLASH还是NAND FLASH启动。
图3 S3C2440A外部扩展
S3C2440A与外部存储器的连接示意图如图3所示,S3C2440A处理器可以寻址1 GB的空间,它将这个空间分为8个区域,每个区域称为一个bank,即整个存储空间被分成了bank0~bank7。S3C2440A有27根地址线ADDR[26:0],8个片选信号nGCS0~nGCS7,对应bank0~bank7,当nGCSx引脚为低电平时即访问bankx的地址空间,选中外设[3]。
系统采用的Micron(美光)SDRAM芯片MT48LC16M16A2?75D的nSCS管脚接在S3C2440A SDRAM控制器的nGCS6,即接在了bank6上,所以SDRAM的物理地址从0x30000000开始。因为每块内存芯片的接口线宽为16位,这里选择2片内存芯片并接成32位,与S3C2440A的32根数据线相连,总容量为64 MB,所以SDRAM的地址为:0x30000000~0x3FFFFFFF。
NOR FLASH芯片EN29LV160AB大小为2 MB,数据总线位宽为16位,接在nGCS0,即接在了bank0上,所以NOR的物理地址为0x00000000~0x001FFFFF。
NAND FLASH芯片K9F1G08UOA不需要通过CPU的地址线访问,所以存储空间大小可达1 GB。NAND是由硬件本身识别的,不存在物理地址。
2.3 TFT LCD触摸屏
本系统液晶型号选用的是WXCAT43,即东华4.3寸TFT真彩液晶屏,触摸屏集成在此液晶屏上,LCDCON1~LCDCON4初始化主要是针对时序信号的时间参数进行的初始化,LCDCON5针对的是信号极性的初始化,LCDADDR1~LCDADDR3为帧内存地址寄存器,用于告诉LCD控制器帧内存地址。
硬件连接时只需要将控制器的输出引脚和TFT LCD相应的信号线连接即可,LCD的电源接在S3C2440A的GPG4引脚上,因此初始化时,需要将该引脚配置成输出,高电平时给LCD供电。
2.4 外部接口电路
在喷码机使用中,当喷印的图形发生改变时,可以通过插入U盘的方式进行更改喷印图片内容,或者使用SD卡,来选择不同的喷印图片。此外带有RS 232串口与网络接口,方便与其他设备进行通信。
2.5 SPI通信接口
本系统运用S3C2440A集成的SPI功能模块与XJ128喷头进行通信,并驱动喷头工作。S3C2440A有两路SPI[1],每路都有8位数据移位寄存器分别进行发送和接收。喷头的nSS1、nSS2和nFIRE分别由S3C2440A的通用I/O口GPG13,GPG14,GPG1控制。S3C2440A设置为主机模式,喷头的MOSI0,CLK分别连接到S3C2440A的SPIMOSI0,SPICLK引脚,用PWM Timer 为喷头提供工作时钟,使喷头喷印过程中打印速度适中,用EINT8管脚连接喷头READY引脚用于检测喷头工作状态。如图4所示。
图4 S3C2440A与XJ128的连接
3 软件系统
喷码机图形化的操作程序是基于WinCE 6.0平台下开发的,WinCE 6.0是一种模块化的、易裁剪、定制移植方便的多任务嵌入式操作系统,支持多种硬件平台,能满足系统对实时性、稳定性的要求。软件系统设计主要分为操作系统的定制与移植、应用程序的开发。
根据硬件电路,对WinCE 6.0提供的BSP(板机支持包)进行修改,以便于上层软件能正确调用底层的硬件设备,使用WinCE 6.0操作系统的开发工具Platform Builder进行操作系统的裁剪,生成BSP。由于篇幅有限,本文仅对驱动程序结构加以说明。
在本系统中,显示驱动等特定驱动程序都不需改变,主要涉及对流接口[4]驱动程序的修改。大部分Windows CE下的驱动程序采用了分层驱动的结构,在这种结构中,驱动程序被分为两部分,上层是模型设备驱动(MDD),下层是硬件平台相关驱动(PDD)。如图5所示。
图5 流接口驱动架构
由于本系统的主要外在物理功能主要是芯片与喷头之间的数据传输,所以采用流接口驱动的方式。流接口驱动基于分层结构设计,MDD层提供框架性的实现,与具体硬件无关;而PDD层提供对硬件操作的相应代码。微软提供MDD层,对于所有的平台和函数都是通用的,既可以作为源代码也可作为链接库,无需对MDD层进行改动。MDD层提供供操作系统调用的设备驱动程序接口(DDI)。设备驱动服务供应接口(DDSI)是由PDD层提供给MDD层调用的函数集[5]。流接口驱动遵循流接口驱动模型和一般的流接口函数规范,由Device. exe直接调用,主要通过基于流接口驱动程序所需的函数实现,例如: XXX_Init,XXX_Deinit,XXX_Open,XXX_Close,XXX_Read,XXX_Write,XXX_Seek,XXX_IOControl等基本实现函数。
流接口驱动被设计为与文件系统API相匹配的形式,这些API包括ReadFile、IOControl等。应用程序可以通过文件系统来调用流接口驱动。应用程序与驱动程序之间通过文件系统中打开的特殊文件来进行交互。
喷码机工作时存储记录仪记录的喷头接口的波形图如图6所示。
图6 喷码机工作时存储记录仪记录的喷头接口的波形图
图6中,喷头接口的信号时序正确,由此可见,基于S3C2440A的嵌入式喷码机系统工作稳定。
4 结 语
各个生产领域都离不开喷码机,喷码机喷印质量和效率对于生产厂家来说就是产品流水线上最后的一个挑战。依赖PC机的基于低端单片机的喷码机成本大,并且造成PC机大材小用,浪费资源,灵活性差,势必将被基于更先进微处理器作为控制器的嵌入式喷码机所取代。嵌入式喷码机的体积小,方便移动,使其不必依赖于上位机,节省了成本,用户完全可以在触摸屏上操作控制喷头,操作简单,喷印效率高,而且方便后期维护和升级。此外,带有网络和RS 232等接口,方便与其他设备进行交互。
参考文献
[1] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [R]. Republic of Korea: Samsung Electronics, 2004.
[2] 蔡理金.嵌入式手持终端电源设计技术与实现[J].电源技术应用,2011,14(8):57?60.
[3] 王小强.ARM处理器裸机开发实战:机制而非策略[M].北京:电子工业出版社,2012.
[4] 华清远见嵌入式培训中心.Windows CE嵌入式开发标准教程(修订版)[M].北京:人民邮电出版社,2010.
[5] 胡军山,白瑞林,李浩.基于WinCE的电梯监控系统多串口通信实现[J].自动化仪表,2009,30(7):11?14.
[6] 李文新,王广龙,陈建辉.基于S3C2440和WinCE的嵌入式传感测控系统[J].计算机测量与控制,2009,17(8):1498?1500.
系统采用的Micron(美光)SDRAM芯片MT48LC16M16A2?75D的nSCS管脚接在S3C2440A SDRAM控制器的nGCS6,即接在了bank6上,所以SDRAM的物理地址从0x30000000开始。因为每块内存芯片的接口线宽为16位,这里选择2片内存芯片并接成32位,与S3C2440A的32根数据线相连,总容量为64 MB,所以SDRAM的地址为:0x30000000~0x3FFFFFFF。
NOR FLASH芯片EN29LV160AB大小为2 MB,数据总线位宽为16位,接在nGCS0,即接在了bank0上,所以NOR的物理地址为0x00000000~0x001FFFFF。
NAND FLASH芯片K9F1G08UOA不需要通过CPU的地址线访问,所以存储空间大小可达1 GB。NAND是由硬件本身识别的,不存在物理地址。
2.3 TFT LCD触摸屏
本系统液晶型号选用的是WXCAT43,即东华4.3寸TFT真彩液晶屏,触摸屏集成在此液晶屏上,LCDCON1~LCDCON4初始化主要是针对时序信号的时间参数进行的初始化,LCDCON5针对的是信号极性的初始化,LCDADDR1~LCDADDR3为帧内存地址寄存器,用于告诉LCD控制器帧内存地址。
硬件连接时只需要将控制器的输出引脚和TFT LCD相应的信号线连接即可,LCD的电源接在S3C2440A的GPG4引脚上,因此初始化时,需要将该引脚配置成输出,高电平时给LCD供电。
2.4 外部接口电路
在喷码机使用中,当喷印的图形发生改变时,可以通过插入U盘的方式进行更改喷印图片内容,或者使用SD卡,来选择不同的喷印图片。此外带有RS 232串口与网络接口,方便与其他设备进行通信。
2.5 SPI通信接口
本系统运用S3C2440A集成的SPI功能模块与XJ128喷头进行通信,并驱动喷头工作。S3C2440A有两路SPI[1],每路都有8位数据移位寄存器分别进行发送和接收。喷头的nSS1、nSS2和nFIRE分别由S3C2440A的通用I/O口GPG13,GPG14,GPG1控制。S3C2440A设置为主机模式,喷头的MOSI0,CLK分别连接到S3C2440A的SPIMOSI0,SPICLK引脚,用PWM Timer 为喷头提供工作时钟,使喷头喷印过程中打印速度适中,用EINT8管脚连接喷头READY引脚用于检测喷头工作状态。如图4所示。
图4 S3C2440A与XJ128的连接
3 软件系统
喷码机图形化的操作程序是基于WinCE 6.0平台下开发的,WinCE 6.0是一种模块化的、易裁剪、定制移植方便的多任务嵌入式操作系统,支持多种硬件平台,能满足系统对实时性、稳定性的要求。软件系统设计主要分为操作系统的定制与移植、应用程序的开发。
根据硬件电路,对WinCE 6.0提供的BSP(板机支持包)进行修改,以便于上层软件能正确调用底层的硬件设备,使用WinCE 6.0操作系统的开发工具Platform Builder进行操作系统的裁剪,生成BSP。由于篇幅有限,本文仅对驱动程序结构加以说明。
在本系统中,显示驱动等特定驱动程序都不需改变,主要涉及对流接口[4]驱动程序的修改。大部分Windows CE下的驱动程序采用了分层驱动的结构,在这种结构中,驱动程序被分为两部分,上层是模型设备驱动(MDD),下层是硬件平台相关驱动(PDD)。如图5所示。
图5 流接口驱动架构
由于本系统的主要外在物理功能主要是芯片与喷头之间的数据传输,所以采用流接口驱动的方式。流接口驱动基于分层结构设计,MDD层提供框架性的实现,与具体硬件无关;而PDD层提供对硬件操作的相应代码。微软提供MDD层,对于所有的平台和函数都是通用的,既可以作为源代码也可作为链接库,无需对MDD层进行改动。MDD层提供供操作系统调用的设备驱动程序接口(DDI)。设备驱动服务供应接口(DDSI)是由PDD层提供给MDD层调用的函数集[5]。流接口驱动遵循流接口驱动模型和一般的流接口函数规范,由Device. exe直接调用,主要通过基于流接口驱动程序所需的函数实现,例如: XXX_Init,XXX_Deinit,XXX_Open,XXX_Close,XXX_Read,XXX_Write,XXX_Seek,XXX_IOControl等基本实现函数。
流接口驱动被设计为与文件系统API相匹配的形式,这些API包括ReadFile、IOControl等。应用程序可以通过文件系统来调用流接口驱动。应用程序与驱动程序之间通过文件系统中打开的特殊文件来进行交互。
喷码机工作时存储记录仪记录的喷头接口的波形图如图6所示。
图6 喷码机工作时存储记录仪记录的喷头接口的波形图
图6中,喷头接口的信号时序正确,由此可见,基于S3C2440A的嵌入式喷码机系统工作稳定。
4 结 语
各个生产领域都离不开喷码机,喷码机喷印质量和效率对于生产厂家来说就是产品流水线上最后的一个挑战。依赖PC机的基于低端单片机的喷码机成本大,并且造成PC机大材小用,浪费资源,灵活性差,势必将被基于更先进微处理器作为控制器的嵌入式喷码机所取代。嵌入式喷码机的体积小,方便移动,使其不必依赖于上位机,节省了成本,用户完全可以在触摸屏上操作控制喷头,操作简单,喷印效率高,而且方便后期维护和升级。此外,带有网络和RS 232等接口,方便与其他设备进行交互。
参考文献
[1] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [R]. Republic of Korea: Samsung Electronics, 2004.
[2] 蔡理金.嵌入式手持终端电源设计技术与实现[J].电源技术应用,2011,14(8):57?60.
[3] 王小强.ARM处理器裸机开发实战:机制而非策略[M].北京:电子工业出版社,2012.
[4] 华清远见嵌入式培训中心.Windows CE嵌入式开发标准教程(修订版)[M].北京:人民邮电出版社,2010.
[5] 胡军山,白瑞林,李浩.基于WinCE的电梯监控系统多串口通信实现[J].自动化仪表,2009,30(7):11?14.
[6] 李文新,王广龙,陈建辉.基于S3C2440和WinCE的嵌入式传感测控系统[J].计算机测量与控制,2009,17(8):1498?1500.
系统采用的Micron(美光)SDRAM芯片MT48LC16M16A2?75D的nSCS管脚接在S3C2440A SDRAM控制器的nGCS6,即接在了bank6上,所以SDRAM的物理地址从0x30000000开始。因为每块内存芯片的接口线宽为16位,这里选择2片内存芯片并接成32位,与S3C2440A的32根数据线相连,总容量为64 MB,所以SDRAM的地址为:0x30000000~0x3FFFFFFF。
NOR FLASH芯片EN29LV160AB大小为2 MB,数据总线位宽为16位,接在nGCS0,即接在了bank0上,所以NOR的物理地址为0x00000000~0x001FFFFF。
NAND FLASH芯片K9F1G08UOA不需要通过CPU的地址线访问,所以存储空间大小可达1 GB。NAND是由硬件本身识别的,不存在物理地址。
2.3 TFT LCD触摸屏
本系统液晶型号选用的是WXCAT43,即东华4.3寸TFT真彩液晶屏,触摸屏集成在此液晶屏上,LCDCON1~LCDCON4初始化主要是针对时序信号的时间参数进行的初始化,LCDCON5针对的是信号极性的初始化,LCDADDR1~LCDADDR3为帧内存地址寄存器,用于告诉LCD控制器帧内存地址。
硬件连接时只需要将控制器的输出引脚和TFT LCD相应的信号线连接即可,LCD的电源接在S3C2440A的GPG4引脚上,因此初始化时,需要将该引脚配置成输出,高电平时给LCD供电。
2.4 外部接口电路
在喷码机使用中,当喷印的图形发生改变时,可以通过插入U盘的方式进行更改喷印图片内容,或者使用SD卡,来选择不同的喷印图片。此外带有RS 232串口与网络接口,方便与其他设备进行通信。
2.5 SPI通信接口
本系统运用S3C2440A集成的SPI功能模块与XJ128喷头进行通信,并驱动喷头工作。S3C2440A有两路SPI[1],每路都有8位数据移位寄存器分别进行发送和接收。喷头的nSS1、nSS2和nFIRE分别由S3C2440A的通用I/O口GPG13,GPG14,GPG1控制。S3C2440A设置为主机模式,喷头的MOSI0,CLK分别连接到S3C2440A的SPIMOSI0,SPICLK引脚,用PWM Timer 为喷头提供工作时钟,使喷头喷印过程中打印速度适中,用EINT8管脚连接喷头READY引脚用于检测喷头工作状态。如图4所示。
图4 S3C2440A与XJ128的连接
3 软件系统
喷码机图形化的操作程序是基于WinCE 6.0平台下开发的,WinCE 6.0是一种模块化的、易裁剪、定制移植方便的多任务嵌入式操作系统,支持多种硬件平台,能满足系统对实时性、稳定性的要求。软件系统设计主要分为操作系统的定制与移植、应用程序的开发。
根据硬件电路,对WinCE 6.0提供的BSP(板机支持包)进行修改,以便于上层软件能正确调用底层的硬件设备,使用WinCE 6.0操作系统的开发工具Platform Builder进行操作系统的裁剪,生成BSP。由于篇幅有限,本文仅对驱动程序结构加以说明。
在本系统中,显示驱动等特定驱动程序都不需改变,主要涉及对流接口[4]驱动程序的修改。大部分Windows CE下的驱动程序采用了分层驱动的结构,在这种结构中,驱动程序被分为两部分,上层是模型设备驱动(MDD),下层是硬件平台相关驱动(PDD)。如图5所示。
图5 流接口驱动架构
由于本系统的主要外在物理功能主要是芯片与喷头之间的数据传输,所以采用流接口驱动的方式。流接口驱动基于分层结构设计,MDD层提供框架性的实现,与具体硬件无关;而PDD层提供对硬件操作的相应代码。微软提供MDD层,对于所有的平台和函数都是通用的,既可以作为源代码也可作为链接库,无需对MDD层进行改动。MDD层提供供操作系统调用的设备驱动程序接口(DDI)。设备驱动服务供应接口(DDSI)是由PDD层提供给MDD层调用的函数集[5]。流接口驱动遵循流接口驱动模型和一般的流接口函数规范,由Device. exe直接调用,主要通过基于流接口驱动程序所需的函数实现,例如: XXX_Init,XXX_Deinit,XXX_Open,XXX_Close,XXX_Read,XXX_Write,XXX_Seek,XXX_IOControl等基本实现函数。
流接口驱动被设计为与文件系统API相匹配的形式,这些API包括ReadFile、IOControl等。应用程序可以通过文件系统来调用流接口驱动。应用程序与驱动程序之间通过文件系统中打开的特殊文件来进行交互。
喷码机工作时存储记录仪记录的喷头接口的波形图如图6所示。
图6 喷码机工作时存储记录仪记录的喷头接口的波形图
图6中,喷头接口的信号时序正确,由此可见,基于S3C2440A的嵌入式喷码机系统工作稳定。
4 结 语
各个生产领域都离不开喷码机,喷码机喷印质量和效率对于生产厂家来说就是产品流水线上最后的一个挑战。依赖PC机的基于低端单片机的喷码机成本大,并且造成PC机大材小用,浪费资源,灵活性差,势必将被基于更先进微处理器作为控制器的嵌入式喷码机所取代。嵌入式喷码机的体积小,方便移动,使其不必依赖于上位机,节省了成本,用户完全可以在触摸屏上操作控制喷头,操作简单,喷印效率高,而且方便后期维护和升级。此外,带有网络和RS 232等接口,方便与其他设备进行交互。
参考文献
[1] Samsung Electronics. S3C2440A 32?bit CMOS microcontroller user′s manual [R]. Republic of Korea: Samsung Electronics, 2004.
[2] 蔡理金.嵌入式手持终端电源设计技术与实现[J].电源技术应用,2011,14(8):57?60.
[3] 王小强.ARM处理器裸机开发实战:机制而非策略[M].北京:电子工业出版社,2012.
[4] 华清远见嵌入式培训中心.Windows CE嵌入式开发标准教程(修订版)[M].北京:人民邮电出版社,2010.
[5] 胡军山,白瑞林,李浩.基于WinCE的电梯监控系统多串口通信实现[J].自动化仪表,2009,30(7):11?14.
[6] 李文新,王广龙,陈建辉.基于S3C2440和WinCE的嵌入式传感测控系统[J].计算机测量与控制,2009,17(8):1498?1500.