基于usb接口的打标控制器的制作方法

文档序号:2511676阅读:329来源:国知局
专利名称:基于usb接口的打标控制器的制作方法
技术领域
本实用新型属于激光打标机的打标控制器,具体涉及一种基于通用串行总线USB 接口的打标控制器。
技术背景在振镜扫描式激光打标系统中,控制系统的硬件电路都是基于计算机ISA总线或 PCI总线而设计的控制卡,必须安装在计算机主板的ISA总线或PCI总线扩展槽中, 给整个系统的稳定运行带来影响,降低了打标系统的稳定性;控制卡输出的模拟电压 信号要通过一段较长的电缆才能传输到振镜控制电路中,打标系统中的激光电源产生 的强电磁干扰很容易通过传输电缆引入到振镜控制电路中,影响振镜的正常工作控 制卡要和计算机一起使用,增加了控制系统的体积,也增加了控制系统的成本。还有 一种由单片机控制的激光打标控制器虽然脱离了计算机的ISA总线或PCI总线,但 是单片机的存储容量有限,而且其进行插补运算的速度很慢,只能进行一些简单的插 补算法,因而不能对一些复杂的图案进行标刻,其使用范围有限,不能充分发挥激光 打标使用灵活的优点。 发明内容本实用新型提供一种基于USB接口的打标控制器,目的是克服现有技术的缺陷, 既满足客户对复杂图形打标的要求,又满足对简单图案打标的要求,同时调整、修改、 安装方便,工业现场运行稳定可靠,即插即用。本实用新型的一种基于USB接口的打标控制器,包括USB接口控制器单元、数 据存储单元、程序存储单元、D/A转换单元、逻辑控制单元和人机接口单元;其中USB接口控制器单元,支持USB1.:1规范,具有独立的8位数据总线和16位地 址总线,有利于芯片的外围电路扩展;通过数据总线与数据存储单元、程序存储单元 及逻辑控制单元电信号连接;通过地址总线与数据存储单元、程序存储单元、逻辑控 制单元、D/A转换单元及人机接口单元的LCD显示模块电信号连接;数据存储单元,在联机使用模式时作为本打标控制器的数据缓冲区,暂存上位 机传输过来的打标数据,在脱机使用模式时存储打标文件的打标数据;与逻辑控制单 元电信号连接;程序存储单元,存储USB接口控制器单元的固件程序;与逻辑控制单元电信号连接;D/A转换单元,具有3路D/A转换通道,对打标数据进行D/A转换,分别输出模 拟电压信号去控制振镜X轴、Y轴以及激光功率与逻辑控制单元电信号连接;逻辑控制单元,对USB接口控制器单元的地址进行译码,产生D/A转换单元、 数据存储单元、程序存储单元、人机接口单元的选通信号,对数据存储器的高位地址 进行锁存,为外围电路提供I/0口;人机接口单元,由键盘和LCD显示模块组成,在脱机使用时对控制器进行打标文 件选取、设定打标参数、删除打标文件等操作;与逻辑控制单元电信号连接。所述的基于USB接口的打标控制器,其特征在于所述D/A转换单元中控制振镜 X轴和控制振镜Y轴的2路D/A同时转换,其输出经过运算放大器以使其输出电压 信号与振镜的输入电压信号兼容;控制激光功率的D/A电路只有1路数/模转换通道, 为与8位数据总线兼容的12位电压输出型DAC,其电压输出信号与激光功率控制信 号要求的输入电压兼容。所述的基于USB接口的打标控制器,其特征在于所述人机接口单元中,键盘的 接口方式采用独立方式,每个独立按键以一对一的方式直接接到I/0瑜入线上,LCD 显示采用点阵图形液晶显示模块。本实用新型既能与计算机联机使用,又能脱离计算机单独使用。当打标的内容复 杂,生成的打标数据比较大时,控制器就与计算机联机使用,由计算机经过插补处理 的打标数据通过USB总线传输给控制器进行实时数/模转换,直接控制打标系统。当 打标的内容比较简单,生成的打标数据比较小时,可以把山计算机经过插补处理的打 标数据通过USB接口保存在控制器的存储器中,然后由控制器中的单片机來控制打 标数据的数/模转换,再去控制打标系统,这样单片机就不需要对打标数据进行插补 处理,从而大幅度地提高了控制器的打标速度。另外,其中的打标内容还可以由计算 机通过USB接口随意改写,并可以通过控制器上的键盘和LCD显示对其进行编辑、 设定打标参数等操作。

图l是本实用新型组成示意图;图2为USB接口控制器单元电路;图3为数据存储单元和程序存储单元电路;图4为D/A转换单元电路;图5为逻辑控制单元电路;图6为控制器逻辑控制单元的逻辑控制关系图; 图7为人机接口单元电路;图8为联机工作USB传输过程的流程图;图9为脱机工作USB传输过程流程图;图10为固件程序框架流程图; 图ll为打标数据输出流程图; 图12为键盘输入和LCD显示流程图。
具体实施方式
以下结合附图对本实用新型加以说明。图1是本实用新型的总体框架示意图,包括USB接口控制器单元、数据存储单 元、程序存储单元、D/A转换单元、逻辑控制单元和人机接口单元。 下面结合图2 图7通过实施例对本实用新型进行详细说明 1. USB接口控制器单元USB接口控制器单元电路如图2所示,它由芯片U1、 U7、 U8、 U9、 U10,插座 和跳线J1、 J2、 J3、 J5以及拔码开关S4组成。Ul选用Cypress公司的EZ-USB系列的AN2131Q作为USB接口控制器,它是 支持USB1.1规范的全速USB接口控制器芯片,是整个电路的核心,具有80个引脚, 有独立的8位数据总线和16位地址总线,有利于芯片的外围电路扩展,它的处理器 是增强型的8051内核,与通用的8051指令兼容,但平均运行速度快2,5倍,有利于 提高打标数据输出的速度;外接12MHz的晶振,在芯片内部通过倍频电路倍频到 24HMz, USBD-和USBD+引脚通过两个22 Q电阻分别和B型USB插座Jl的D+和 D-相连。PA2/OE弁、PA3/CS弁、PA4/FWR弁、PA5/FRD#、 PC6/WR#、 PC7/RD弁等6个 引脚是多功能引脚,使用第二功能时引脚必须接上拉电阻,以确保没有控制信号输出 时引脚信号无效。WAKEUP弁引脚接下拉电阻是为了防止8051进入挂起状态,确保 EZ-USB —直都能运行。跳线J2决定EZ-USB复位时是否进行断开重新连接操作,当1-2相连时,有断 开重新连接操作,当2-3相连时没有断开重新连接操作。跳线J3决定8051内核是从 EZ-USB芯片内部程序RAM中开始获得程序代码还是从外部程序存储器开始获得代 码,当l-2相连时,从外部程序存储器开始获得代码,PSEN引脚从程序存储器的地 址0x0000开始有效,当2-3相连时从内部程序RAM中开始获得程序代码,PSEN引 脚从程序存储器的地址0xlB40开始有效。跳线J5在对控制器的硬件电路进行测试时
使用,当2-3相连时,EZ-USB的所有功能引脚浮空以便对EZ-USB的外围电路进行 在板测试,正常使用时,使l-2相连。U7是TI公司的SN75240PW芯片,它是USB接口瞬变抑制器,用来防止静电损坏 USB接口电路。U8是MAXIM公司的MAX687芯片,它是3.3V线性稳压器,用来把5V电压变 为3,3V。 EZ-USB是3.3V供电,而目前大多数的直流电源只能提供5V电压,因此 必须把5V电压变为3.3V。 U8的输入电压的范围为2.7V到11.5V,输出电压的范围 为3.15V到3.45V,典型值为3.3¥,能够提供200mA的电流,完全满足EZ-USB对 电源的要求。U9是Microchip公司的I2C串行EEPROM 24LC02,其容量为2Kbit(256X8),Vcc 的范围为1.8V到5.5V,可以擦写一百万次。它主要用来存储产品标识码PID、厂家标 识码VID和设备标识码DID,此时串行EEPROM的第一个字节必须为0xB0。它也 可以用来存储EZ-USB固件程序,此时串行EEPROM的第一个字节必须为0xB2,当 AN2131Q上电时,其USB内核会自动把固件程序装入AN2131Q的RAM的程序存 储区。U10是MAXIM公司的MAX706微处理器监控芯片,具有系统上电掉电时输出 复位信号、低电平有效的手动复位输入、看门狗定时器、1.25V门限值检测器等功能。 PFI引脚为电源故障输入端,Rll和R12为分压电阻,当+ 5V电源的电压低于4.7V 时,PFI引脚的输入电压低于1.25V, MAX706的电源故障输出端PFO输出一个低电 平信号,通知AN2131Q为电源掉电做准备。WDI引脚为看门狗输入端,当WDI引 脚的输入信号在1.6s内没有变化时,看门狗输出端WDO会变为低电平,通过二极管 D4与手动输入端相连,使复位输出端产生一个低电平信号,使AN2131Q复位。看 门狗定时器可以使单片机摆脱死机状态。2.数据存储单元和程序存储单元数据存储单元和程序存储单元由数据存储器U3和程序存储器U4组成,其硬件 电路如图3所示。数据存储单元数据存储容量为2048KX8,它具有20位地址总线,地址总线分为 低15位和高6位两部分,低15位地址由AN2131Q的地址总线的低15位输出,高6 位由AN2131Q的数据总线通过在CPLD中设置的锁存器输出。数据存储单元在联机 使用模式时作为本打标控制器的数据缓冲区,暂存上位机传输过来的打标数据,在脱 机使用模式时存储打标文件的打标数据,所以它应该具有读写速度快、擦写次数不限、 掉电后数据不丢失和存储容量大等特点。因此可以釆用TI公司的非易失性存储器 BQ4016MC作为数据存储单元的存储芯片,容量为1024KX8, +5V供电。它的内 部是由锂电池和标准的SRAM以及电压监控电路组成。当电压监控电路发现 BQ4016MC的Vcc引脚电压低于电压失压检测阈值4.62V时,内部控制电路自动对 SRAM采取写保护措施保护其内部的数据不被破坏,所有的输出引脚为高阻状态,所 有的输入引脚无效,当Vcc降低到3V时,内部控制电路把SRAM的供电由外部自 动切换到锂电池,直到Vcc恢复正常电压为止。因此,在上电后,其使用和一般的 SRAM—样,具有读写速度快(70ns),擦写次数没有限制,掉电后内部数据不会丢失, 而且至少可以保存10年。考虑到TI公司容量为2048KX8的非易失性存储器 BQ4017MC的引脚与BQ4016MC的引脚兼容,BQ4016MC中没连接的引脚2在 BQ4017MC中为地址总线的A20引脚,其他引脚都对应相同,因此CPLD中的锁存 器实际上输出的是6位地址线,以便以后对数据存储器进行扩容。程序存储单元存储USB接口控制器的固件程序。虽然AN2131Q芯片内部具有 8KB的RAM,可以用来存储从计算机主机下载的固件程序,但是其内部RAM的程 序存储空间不能超过6976字节,考虑到控制器要实现的功能比较多,固件程序会比 较大,所以固件程序全部放在外部的程序存储空间,因此在USB接口控制器的外围 扩展了一个程序存储单元,程序存储芯片U4采用Atmel公司的AT29C512 Flash存储芯片。它是一种釆用CMOS 工艺制成的容量为64KX8位32引脚的快速读取、可快速编程可电擦除的只读存储 器,读访问时间为70ns,可以与一般高速微处理器匹配而不需要插入等待周期。为 了避免总线冲突,芯片上有两个选通控制引脚芯片使能CEX和输出使能Om。它可 以进行页编程操作,有128B的内部地址和数据锁存。具有快速的编程周期时间,页 擦除和编程周期时间都为lOms。单一电源电压,用于工作电源和编程电源都为+5V ±10%。三态输出,输入与输出都与TTL电平兼容。可循环擦写次数为1万次。固 件程序的写入是在编程器上进行的,芯片正常工作时应该禁止写入,芯片的写使能引 脚Wm应该接高电平。为了使程序存储器在AN2131Q运行过程中一直选中,芯片使 能CEWI脚应该接地。程序存储器读使能引脚Om由PSEN弁引脚控制。 3. D/A转换单元D/A转换单元对打标数据进行D/A转换,输出模拟电压信号去控制振镜X轴和 Y轴以及激光功率,因此它有3路D/A转换通道。D/A转换单元的硬件电路图如图4所示,它由两个D/A转换芯片U5和U6、两 个运算放大器U12和U13以及精密电压基准芯片Ull组成。U5的作用是对打标数据的振镜X轴和Y轴控制信号进行数/模转换,使它们变为模 拟电压信号去控制振镜X轴和Y轴电机。为了使打标的曲线平滑变化,控制振镜X轴 和Y轴的2路D/A应该同时转换,以使这两个轴的电机在打标输出时同时转动,所以选 用MAXIM公司的数/模转换芯片MX7837,它是双通道、12位、乘法、电压输出型D/A 转换器,每路D/A转换器都有一个输出放大器和一个反馈电阻。它具有双缓冲的8位 数据总线接口,与单片机的8位总线兼容,12位转换数据的输入需要两次写操作。所 有的逻辑信号都是低电平触发并且与TTL电平和CMOS电平兼容。U5采用土12V或土 15V供电,转换误差为土1LSB,电压输出建立时间为4ys。控制激光功率的D/A电路Ull选用MAXIM公司的精密电压基准芯片MAX675, 它只有1路数/模转换通道,为与8位数据总线兼容的12位电压输出型DAC,其电 压输出信号与激光功率控制信号要求的输入电压兼容。U5内部没有自带参考电压, 其参考电压需要通过VREFA引脚和VREFB引脚输入。为了获得高精度的D/A转换, 必须有高稳定度的参考电压源。Ull的作用是为U5提供高稳定度的参考电压。它是 +5V精密电压基准芯片,具有优异的温度稳定性,能够保证极低的温度漂移系数, 同时还具有低的吸入电流和低噪声等特性,输入电压的范围为8V到33V,典型值为 15V。可以通过电位器Rpl对U5的输出电压进行微调,调节的范围为5V士150mV。U12、 U13是MAXIM公司的低噪声、高精度运算放大器MAX427。 U5的电压 输出范围为-5V—0V,而振镜控制电路要求的输入电压范围为-5V—+5V,因此,必须 通过运算放大器把-5V—0V变为-5V—+5V。 U12、 U13具有低噪声、超低的偏移电压 和温度漂移、高电压增益等特性,采用士15V供电。可以通过电位器Rp2和Rp3分 别对两路运算放大器的输入偏移电压进行微调。U6是MAXIM公司的数/模转换芯片MX7248,它是单通道12位电压输出型D/A转 换器,内部自带齐纳电压参考和电压输出放大器,因此不需要外部的基准电压源。它 具有双缓冲逻辑接口, 8位数据总线,12位转换数据的输入需要两次写操作。所有逻 辑信号都是低电平触发并且与TTL电平和CMOS电平兼容。U6采用+15V供电,转换 误差为士1LSB,电压输出建立时间为5iis。U6的作用是对打标数据的功率控制信号进行数/模转换,使它变为模拟电压信号 去控制激光器的输出功率。U6的电压输出范围为0V—+10V,与激光功率控制信号 要求的输入电压兼容,所以不需要运算放大电路对其进行电压变换。4.逻辑控制单元
逻辑控制单元采用Altera公司的MAX3000A系列CPLD芯片,其硬件电路如图 5所示。逻辑控制单元完成对AN2131Q的地址进行译码,产生外围电路各功能单元的选 通信号,对数据存储器的高位地址进行锁存,为外围电路提供I/0口。由于逻辑控制 单元需要的I/0引脚比较多,为了避免大量芯片带来的不便,所以选用Altera公司的 MAX3000A系列可编程逻辑器件CPLD中的EPM3128ATC100,它具有100个引脚, 80个可分配I/O。由于逻辑控制关系可以由MAX+PLUS和Quartus等EDA软件通 过JTAG接口下载到CPLD中去,而且可以在CPLD的硬件电路不变的情况下更改其 逻辑控制关系。MAX3000A系列CPLD是高性能、低成本可编程逻辑器件。它釆用MAX体系 结构,具有通过JTAG接口进行3.3V在系统编程的能力。高密度的PLD,具有600 至廿10,000的可用门。引脚之间的逻辑延时为4.5ns,多电压接口,能够使器件内核工 作在3.3V而I/O引脚与5V、 3.3V、 2.5V逻辑电平兼容,引脚数量的范围从44到256。 它采用CMOSEEPROM工艺,编程和擦除次数可达100次。具有可编程加密位,可 对芯片内的设计加密,使别人不能轻易地读出芯片内的设计数据。图6是控制器逻辑控制单元的逻辑控制关系图。可以用图形输入的方法把它输入 至IJAltera公司的EDA软件MAX+PLUS或Quartus中进行编译,然后通过JTAG下载 线下载到CPLD中。AN2131Q的地址总线为16位,可以访问外部64KB存储空间,但是在地址为 0x0000—0xlFFF和0x7B40—0x7FFF的存储空间,其RD#、 WR#、 CS#、 OE弁等控制 信号无效,因而当AN2131Q访问外部存储器时,不能连续寻址外部64KB存储空间。 为了对外部数据存储器实现连续存取,充分利用其存储空间,对存储器按页来读写, 每页大小为32KB,其存储单元地址由单片机的低15位地址线A0—A14来提供,为了 避免读写控制信号无效的地址空间,把每页存储单元的地址定为0x8000—0xFFFF。 存储器的高位地址为页地址,对于2048KX8的存储器,其页地址从0x00到0x40。 从图6的逻辑控制关系图可以看出,当AN2131Q访问0x0000到0x7FFF的存储空间 时,A15引脚为低电平,外部数据存储器的片选信号CE为高电平,外部数据存储器 没有被选中,单片机不能访问外部数据存储器,而当AN2131Q访问0x8000到OxFFFF 的存储空间时,A15引脚为高电平,外部数据存储器的片选信号CE为低电平,外部 数据存储器被选中,单片机可以访问外部数据存储器。外部数据存储器的页地址(存 储器高6位)1A15 — 1A20由数据总线通过锁存器输出。
地址线A4—A15参加译码,通过译码器产生外部1/0 口的片选信号。各端口地 址如下1. DAC1—2: D/A转换开始信号端口 LDACa地址一0x300X(X为任意值,下同);片选信号输出端口 CSa地址一0x301X;2. DAC3: D/A转换开始信号端口 LDACb地址—Ox302X;低8位输出端口 CSLSB地址一0x303X; 高4位输出端口 CSMSB地址一0x304X;3. LCD: 片选信号输出端口 CS1地址一0x305X;4. 声光Q开关 控制信号输出端口 Q地址一0x306X;5. 数据存储器高位地址输出端口 AddrH地址一0x307X;6. 键盘 接口 A端口 KeyA地址一0x308X;接口 B端口 KeyB地址—0x309X。 AN2131Q的读写信号RD和WR以及数据总线DO—D7经过CPLD输出,是为 了提高它们的驱动能力。AN2131Q的每个引脚的最大输出电流只有土1.6mA,而 AN2131Q数据总线和控制总线要驱动的芯片有5个之多,考虑到MAX3000A系列 CPLD的每个I/O引脚的最大输出电流达到土25mA,因此这样做既提高了单片机的 数据总线和控制总线的驱动能力,又省去了使用缓冲器的麻烦,充分利用了CPLD的 I/O引脚。微处理器监控芯片U10输出的RESET信号是低电平有效,而AN2131Q的复位 信号是高电平有效,因此使RESET信号在CPLD中反相后输出。 5.人机接口单元人机接口单元主要是在脱机使用时对控制器进行打标文件的选取、设定打标参 数、删除打标文件等控制操作,它由键盘和LCD显示模块组成,其硬件电路如图7 所示,它主要包括键盘接口插座P9和LCD显示模块接口插座P2以及带施密特触发 器的反相器U15。为了利用充分利用CPLD的I/0引脚,简化按键査询程序,键盘的接口方式采用 独立方式,每个独立按键以一对一的方式直接接到CPLD的I/0输人线上,每个输入 引脚都接上一个上拉电阻,使键盘的输入为低电平有效。键盘端口 A的8位按键 KEYA0—KEYA7的状态和端口 B的8位按键KEYB0—KEYB7的状态由单片机通过 数据总线读入,而其他输入引脚通过带施密特触发器的反相器U15直接与单片机的 INTO、 INT1、 INT4、 INT6等中断请求信号输入引脚相连。带施密特触发器的反相器 使按键的输入信号波形变得陡直,保证单片机能够可靠地检测到中断请求信号。 各个按键的功能定义如下S1—数字键0;S2 —数字键l;S3 —数字键2;S4 —数字键3;S5 —数字键4;S6-数字键5; S7 —数字键6; S8 —数字键7; S9—数字键8; S10—数字键4;Sll—保留;S12—" + "号;S13—"—"号;S14 —确认; S15 —取消;S16 —保留;S17 —停止; S18 —开始; S19—复位; S20 —功能;LCD显示模块的型号为YM12864F,其接口引脚如图7所示。YM12864F是128 X64点阵图形液晶显示模块,它自带T6963C LCD控制器和T6A39、 T6A40 LCD驱 动器,8KB的外部显示存储器(SRAM), 128个字符的内部字符发生器CGROM,有 图形、字符、图形和字符混合三种显示模式以及6X8和8X8两种显示字体。YM12864F可以采用负电源和+5V供电,也可以采用单一 + 5V供电。采用负电 源和+5V供电时可以通过电位器Rp4来调节LCD显示的对比度。可调电阻R52用 来调节显示模块的背光亮度。以下结合图8至图12说明本实用新型的工作过程USB批量数据传输是大批串行数据的传输,光有打标数据的格式还不行,还得规 定打标数据的传输顺序,让单片机知道打标数据什么时候传输开始,什么时候传输结 束,各个字节属于哪一个打标插补点数据的哪一部分。我们规定,在第一个批量传输事务的开始为一个打标文件的打标数据传输开始, 当打标文件的打标数据传输完毕后,主机通过控制传输发送一个打标数据传输完毕信 号,单片机就知道打标数据传输完毕。在批量传输过程中,打标数据是按第l个插补 点的打标数据一第2个插补点的打标数据一第3个插补点的打标数据…这样的 顺序传输的,而每个插补点数据的每个字节是按如下顺序传输的1. 矢量打标时振镜X轴定位控制信号低8位XL —振镜X轴定位控制信号 高8位XH —振镜Y轴定位控制信号低8位YL —振镜Y轴定位控制信号高8位 YH—声光Q开关控制信号Q;2. 点阵打标时振镜X轴定位控制信号低8位XL —振镜X轴定位控制信号 髙8位XH —振镜Y轴定位控制信号低8位YL —振镜Y轴定位控制信号髙8位 YH。当控制器中的单片机正确从USB总线传输过来的数据中取出打标数据后,再加 上相应的控制信号,如延时控制信号、激光功率控制信号(用2个字节表示,PL表
示低8位,PH表示高8位),以插补点为单位,按USB总线传输过来的顺序输出。 每次输出一个插补点时,其数据的每个字节的输出顺序如下-1. 矢量打标时振镜X轴定位控制信号低8位XL —振镜X轴定位控制信号 高8位XH —振镜Y轴定位控制信号低8位YL —振镜Y轴定位控制信号高8位 YH—激光功率控制信号低8位PL —激光功率控制信号高8位PH —声光Q开关 控制信号Q —延时控制信号;2. 点阵打标时振镜X轴定位控制信号低8位XL —振镜X轴定位控制信号 高8位XH —振镜Y轴定位控制信号低8位YL —振镜Y轴定位控制信号高8位 YH—激光功率控制信号低8位PL —激光功率控制信号高8位PH —声光Q开关 出光控制信号Q —延时控制信号一声光Q开关关光控制信号Q;联机工作USB传输过程的流程图如图8所示。首先上位机通过控制传输向控制 器发出获取控制器状态请求,控制器使用1个字节的数据返回控制器状态,如果控制 器返回"打标中"或"出错"状态或在规定时间内没有返回控制器状态数据,贝U上位 机报告控制器的状态,如果控制器返回"空闲"状态,则上位机向控制器发出设置工 作模式请求和设置打标参数请求,告诉控制器打标工作模式为"联机工作、矢量打标 或点阵打标",并确定插补周期和激光功率。如果上位机在控制传输的状态阶段收到 控制操作成功完成的应答信号,则上位机就可以使用批量传输中的OUT事务(数据 净负荷区的长度为64字节)依次传送各个插补点的打标数据。控制器把上位机传来 的打标数据存放在32KB的缓冲器中,当缓冲器中存满16KB打标数据时,控制器以 插补周期定时产生中断,每次中断输出l个插补点。当打标数据不足16KB时,上位 机通过发出开始打标请求来启动控制器的打标输出。当打标数据传输完毕时,上位机 通过控制传输发出数据传输结束请求,告诉控制器打标数据己传输完毕。在联机打标 过程中,如果需要中途停止打标,上位机可以通过放弃打标请求来结束打标操作。脱机工作USB传输过程的流程图如图9所示。首先,上位机通过控制传输向控 制器发出获取控制器状态请求,控制器使用1个字节的数据返回控制器状态,如果控 制器返回"打标中"或"出错"状态或在规定时间内没有返回控制器状态数据,则上 位机报告控制器的状态,如果控制器返回"空闲"状态,则上位机再向控制器发出获 取剩余存储器空间请求,控制器用4个字节的数据返回控制器剩余存储器空间大小, 用1个字节返回存储的文件数量。如果剩余存储器空间小于打标文件大小或文件数量 为10,则上位机就报告控制器剩余空间不足或文件数量超额,如果如果剩余存储器 空间大于或等于打标文件大小且文件数量小于10,则上位机再使用控制传输向控制
器发出设置工作模式请求和设置打标参数请求,告诉控制器打标工作模式为"脱机工 作、矢量打标或点阵打标",并确定插补周期和激光功率。如果上位机在控制传输的状态阶段收到控制操作成功完成的应答信号,则上位机使用批量传输中的OUT事务 (数据净负荷区的长度为64字节)依次传送各个插补点的打标数据,控制器把上位 机传来的数据存储在控制器的数据存储器中。当打标数据传输完毕时,上位机通过控 制传输发出数据传输结束请求,告诉控制器打标数据已传输完毕,等待脱机工作。激光打标控制器固件是固化到EZ-USB代码区的底层程序,可以用汇编语言或 C51编写,它主要完成USB协议处理与数据交换,配置控制器,实现与计算机的USB 通信以及输出打标数据等功能。固件是USB设备开发的重点和难点,要对固件进行 设计,就必须既熟悉USB协议,又了解USB接口控制器芯片的内部硬件资源,还得 有汇编语言或C51的编程经验。固件既要实现USB设备与主机的USB传输,又要实 现USB设备的功能,因此它的性能直接决定USB通信的实际传输速度和USB设备 的性能。由于使用了EZ-USB芯片,厂方提供了控制器程序框架和通用驱动程序,大 大加快了程序开发的进度,以及开发程序的难度。固件程序框架要完成EZ-USB的初始化、处理标准USB设备请求和自定义设备 请求以及USB挂起时的电源管理,而控制器功能的实现由固件的打标数据传输、打 标数据输出、人机接口等三个功能模块来完成。控制器固件的程序框架流程图如图10所示。EZ-USB上电复位后,程序框架首 先初始化所有的内部状态变量,然后调用用户初始化函数TD—Init(),初始化用户的全 局状态变量,并同时打开中断。当完成上面的任务后,EZ-USB固件程序就每隔1秒 进行一次设备重枚举直到端点0接收到一个SETUP包为止。 一旦EZ-USB收到SETUP 包,固件程序框架就开始进行任务分配。任务分配就是依次重复地执行下面的过程1.判断是否有键按下,如果有,则调用人机接口函数Key—Display()。函数 Key—Display()的任务是对按键进行判断,分析其功能,并对其进行相应的处理,如 选择打标文件、设定打标参数、删除打标文件等,并通过LCD显示模块对其相应的 信息进行显示。2.调用用户函数TD—Poll()。用户函数TD—Poll()就是打标数据USB 传输固件模块,其任务是接收计算机通过USB总线传输到EZ-USB批量传输端点的 打标数据,并根据控制器的工作模式(联机工作或脱机工作)来决定是把它们暂时存 储在控制器的缓冲器中还是存储在打标文件的存储空间中。3.判断是否有设备请求, 如果有,则分析该请求并做出相应的操作。控制器固件程序不但要对USB标准设备 请求做出响应,还要对自定义设备请求做出相应的处理。在打标数据传输之前,计算
机还要向控制器传输一些控制命令,如查询控制器状态、控制器复位、选择打标方式 以及传输打标延时参数和激光功率参数等,这些信号都以自定义设备请求的形式通过 SETUP包传输给控制器,从而达到对控制器进行控制的目的。在联机工作模式的情 况下,当打标数据传输到一定数量时,计算机通过SETUP包发出开始打标指令,启 动TimerO开始打标输出,当一个文件的打标数据传输完毕后,计算机通过SETUP包 发出数据传输完毕指令,使控制器能够正常结束打标操作。如果打标需要中途停止, 计算机通过SETUP包发出放弃打标请求,使打标过程中止。4.判断是否需要初始化 Timer0,如果需要,则调用Tirner0的初始化函数TimerOjnit()。每一个打标文件输 出之前都要对TimerO进行初始化。初始化的操作包括设定TimerO的工作模式,计数 数值、打开TimerO中断等。5.判断USB内核是否接收到USB挂起信号。如果接收 到,贝ij调用用户函数TD—Suspend(),此函数可使设备处于低功耗状态并返回TRUE 或FALSE。当TD_Suspend()返回为TRUE时,再检测是否发生USB唤醒事件,如 果未检测到,则处理器进入挂起状态,如果检测到,则调用用户函数TD—Resume(), 对处理器进行重启,程序继续运行。如果从TD一Suspend()函数返回为FALSE,则程 序继续运行。打标数据输出由TimerO的时钟中断服务程序来完成的。打标数据传输固件模块TD一Poll()主要完成接收通过USB总线传输过来的打标 数据的任务,其执行过程的流程图如图9所示。固件程序首先对变量进行初始化,然后根据通过控制传输发送的设置工作模式请 求分析打标文件的工作模式,判断是联机矢量打标、联机点阵打标、脱机矢量打标和 脱机点阵打标中的哪一种。当打标文件的工作模式为联机矢量打标时,固件程序按顺序执行如下过程1. 判断EZ-USB的批量传输端点0UT2(假设接收打标数据的批量传输端点为 OUT2端点)有没有打标数据。如果OUT2端点没有打标数据,则直接从TD—PoU() 函数返回到固件的程序框架,执行程序框架中其他的语句和函数。2. 判断缓冲器中暂存的打标数据是否超过16KB,并且判断正在打标的标志变量 MarkFlag的值是否等于0。当这两个条件同时满足时,就启动TimerO开始计时,并 且把1赋值给MarkFlag,以表明打标正在进行中,当TimerO计时时间到时就产生 TimerO中断,进行打标数据输出。3. 判断缓冲器是否己经存满打标数据。为了避免打标数据的丢失,在往缓冲器 存打标数据之前要判断缓冲器是否己经存满数据。如果缓冲器已满,则进入等待状态,
直到有打标数据输出使缓冲器空出一个缓冲单元为止。4. 从OUT2端点取一个插补点的打标数据存入缓冲器,然后使缓冲器输入指针 指向下一个缓冲单元,再使计数器i的值增加5。 i用来计数已从OUT2端点取走数据 的字节数,i的值加5是因为矢量打标插补点的打标数据由5个字节构成。5. 比较i值和OUT2端点的字节计数器OUT2BC值的大小。如果i小于OUT2BC, 说明OUT2端点的数据还没取完,还得继续从前面的过程2开始执行,把OUT2端点 中下一个插补点的打标数据存到缓冲器中。如果i大于OUT2BC,说明OUT2端点的 数 据 已 经 取 完 , 然 后 写0到OUT2BC中,再返回到固件的程序框架。写0到OUT2BC中是为了使OUT2 端点在下次调用TD—Poll()函数时准备好接收下一个数据包。当打标文件的工作模式为联机点阵打标时,打标数据的传输过程与联机矢量打标 的数据传输过程基本相同。由于点阵打标的插补点数据由4个字节构成,因而每次取 完一个插补点的打标数据后,计数器i的值增加4。当打标文件的工作模式为脱机矢量打标和脱机点阵打标时,它们的打标数据传输 过程都相同,固件程序按顺序执行下面的过程1. 判断EZ-USB的批量传输端点OUT2有没有打标数据。如果OUT2端点没有 打标数据,则直接执行过程5。2. 判断数据开始传输标志变量StartFlag的值是否等于0。如果StartFlag的值等 于0,则调用Start_Addr()函数。Start—Addr()函数主要实现把通过控制传输的自定义 设备请求传输过来的打标参数和打标类型存储在数据存储器中,设定打标文件存储的 起始地址,并使打标数据输入指针指向起始地址等功能。当程序从Start—Addr()函数 返回后,使变量StartFlag的值为1,以表明打标数据已经开始传输。如果变量StartFlag 的值不等于0,则说明已经开始打标数据的传输,不需要调用Start一Addr()函数,直 接执行过程3。3. 从OUT2端点取1个字节的打标数据存入打标数据输入指针指向的存储单元, 然后使打标数据输入指针指向下一个存储单元,接着使计数器i的值加1。4. 比较i值和OUT2端点的字节计数器OUT2BC值的大小。如果i小于OUT2BC, 说明OUT2端点的数据还没取完,还得继续执行前面取打标数据的步骤,把OUT2 端点中下一个字节的打标数据存到存储器中。如果i大于OUT2BC,说明OUT2端点 的数据已经取完,然后写0到OUT2BC中,使OUT2端点准备好接收下一个数据包。5. 判断打标数据传输完毕标志变量DataFinish的值是否等于0。如果DataFinish的值等于0,则说明打标数据传输完毕,然后调用End一Addr()函数,设定打标文件的 结束地址,当程序从End一Addr()函数返回后,再使变量DataFinish的值为1,使变量 StartFlag的值为0,这样就使这两个变量的值恢复到打标数据传输之前的初始状态, 然后返回到固件的程序框架,准备下一次打标数据的传输。如果变量DataFinish的值 不等于0,则说明打标数据还没有传输完毕,然后返回到固件的程序框架,准备接收 打标数据的下一次USB批量传输。打标数据输出固件模块是Timer0的中断服务程序,主要完成把存储在缓冲器或 数据存储器中的打标数据进行D/A转换输出的任务,其执行过程的流程图如图11所 示。当TimerO计时时间到时,产生TimerO中断,进入Timer0的中断服务程序。固 件程序首先停止TimerO计时,然后分析打标文件的工作模式,判断是联机矢量打标、 联机点阵打标、脱机矢量打标和脱机点阵打标中的哪一种。当打标文件的工作模式为联机矢量打标时,中断服务程序按顺序执行如下过程1. 判断缓冲器是否为空。如果缓冲器为空,说明其中没有打标数据,则关掉激 光,再判断打标数据传输完毕标志变量DataFinish的值是否等于0。如果DataFinish 等于0,就说明打标数据已经输出完毕,则使变量MarkFlag等于O,变量DataFinish 等于1,并使打标输入和输出指针都复位,这样使它们都恢复到打标输出之前的状态, 然后中断返回,等待下一次打标输出。如果DataFinish不等于O,说明打标数据还没 有输出完毕,则启动TimerO计时,然后中断返回,等待再次进行打标输出。2. X轴的定位控制信号送入DAC1, Y轴的定位控制信号送入DAC2,然后同时 启动DAC1和DAC2。3. 激光功率信号送入DAC3,然后启动DAC3。4. 输出声光Q开关控制信号,然后使打标输出指针指向下一个缓冲单元。5. 启动TimerO计时,然后中断返回,等待下一个插补点的打标数据输出。 当打标文件的工作模式为联机点阵打标时,中断服务程序执行过程与工作模式为联机矢量打标时基本相同,不同的是联机点阵打标输出时,用在判断缓冲器是否已满的过程之前的关闭激光和在启动DAC3之后打开激光这两个操作代替联机矢量打标输出时的声光Q开关控制信号输出操作。当打标文件的工作模式为脱机矢量打标时,中断服务程序按顺序执行如下过程 1.判断正在打标标志变量MarkFlag的值是否等于0。如果MarkFlag的值等于0,说明这次打标数据输出是这个打标文件的第一次输出,则调用Set—Pointer()函数。Set一Pointer()函数主要实现从数据存储器中读取打标文件的起始地址并把它赋给打标 输出指针的功能。然后再使变量MarkHag的值为1,以表明打标数据正在输出。2. 判断打标数据是否输出完毕。如果输出完毕,则使变量MarkFlag的值为0, 然后关闭激光,再中断返回,等待下一个打标文件的输出。3. X轴的定位控制信号送入DAC1, Y轴的定位控制信号送入DAC2,然后同时 启动DAC1和DAC2。4. 激光功率信号送入DAC3,然后启动DAC3。5. 输出声光Q开关控制信号,然后使打标输出指针指向下一个存储单元。6. 启动TimerO计时,然后中断返回,等待下一个插补点的打标数据输出。 当打标文件的工作模式为脱机点阵打标时,中断服务程序执行过程与工作模式为脱机矢量打标时基本相同,不同的是脱机点阵打标输出时,用判断标志变量MarkFlag 的值是否等于0的过程之前的关闭激光和启动DAC3之后打开激光这两个操作代替脱 机矢量打标输出时的声光Q开关控制信号输出操作。人机接口固件模块Key一Display()函数主要在脱机使用时完成对数据存储器中打 标文件的选择、打标参数的修改、删除其中的打标文件、开始打标、放弃打标、控制 器复位等操作,从而实现对控制器的控制,其执行过程的流程图如图12所示。固件模块首先对变量进行初始化,然后根据输入的键值分析其要实现的功能,确 定是选择打标文件、修改打标参数、删除打标文件等3种操作中的哪一种。当输入的功能键是选择打标文件时,首先判断有没有文件编号输入,如果没有就 一直等待,直到有文件编号输入为止。如果有文件编号输入,则判断文件选择是否确 认,如果没有确认,就直接从函数返回。如果文件选择确认,就指定选择的文件编号, 接着再把选择的文件编号通过LCD显示模块显示出来,然后从函数返回到固件的程 序框架。当输入的功能键是修改打标参数时,首先选择要修改的参数。如果选择的是修改 激光功率首先判断有没有参数输入,如果没有参数输入就一直等待,直到有参数输 入为止;如果有参数输入,则判断修改是否确认,如果修改没有确认,就直接从函数 返回,如果修改确认,就保存修改的打标参数并通过LCD显示模块显示出来,接着 再返回到固件的程序框架。如果选择的是修改延时参数,其执行的过程和修改激光功 率的过程相同。当输入的功能键是删除打标文件时,首先选择删除方式。如果选择的是删除最后 一个文件首先判断删除是否确认,如果没有确认,就直接从函数返回;如果删除得
到确认,就从数据存储器中清除编号最后的一个文件的信息,然后再通过LCD显示 模块显示"删除完毕"信息,最后再从函数返回到固件的程序框架。如果选择的是删 除全部文件,其执行过程基本与删除最后一个文件的过程相同,不同的是,当删除确 认后,就把所有文件的信息从数据存储器中删除。另外,开始打标、放弃打标、控制器复位等功能键直接与EZ-USB的外部中断输入引 脚相连,它们的功能实现是通过各自的中断服务程序来完成。
权利要求1.一种基于USB接口的打标控制器,其特征在于,其包括USB接口控制器单元、数据存储单元、程序存储单元、D/A转换单元、逻辑控制单元和人机接口单元;其中USB接口控制器单元,支持USB1.1规范,具有独立的8位数据总线和16位地址总线,有利于芯片的外围电路扩展;通过数据总线与数据存储单元、程序存储单元及逻辑控制单元电信号连接;通过地址总线与数据存储单元、程序存储单元、逻辑控制单元、D/A转换单元及人机接口单元的LCD显示模块电信号连接;数据存储单元,在联机使用模式时作为本打标控制器的数据缓冲区,暂存上位机传输过来的打标数据,在脱机使用模式时存储打标文件的打标数据;与逻辑控制单元电信号连接;程序存储单元,存储USB接口控制器单元的固件程序;与逻辑控制单元电信号连接;D/A转换单元,具有3路D/A转换通道,对打标数据进行D/A转换,分别输出模拟电压信号去控制振镜X轴、Y轴以及激光功率;与逻辑控制单元电信号连接;逻辑控制单元,对USB接口控制器单元的地址进行译码,产生D/A转换单元、数据存储单元、程序存储单元、人机接口单元的选通信号,对数据存储器的高位地址进行锁存,为外围电路提供I/O口;人机接口单元,由键盘和LCD显示模块组成,在脱机使用时对控制器进行打标文件选取、设定打标参数、删除打标文件等操作;与逻辑控制单元电信号连接。
2. 如权利要求1所述的基于USB接口的打标控制器,其特征在于所述D/A转 换单元中控制振镜X轴和控制振镜Y轴的2路D/A同时转换,其输出经过运算放大 器以使其输出电压信号与振镜的输入电压信号兼容;控制激光功率的D/A电路只有1 路数/模转换通道,为与8位数据总线兼容的12位电压输出型DAC,其电压输出信 号与激光功率控制信号要求的输入电压兼容。
3. 如权利要求1或2所述的基于USB接口的打标控制器,其特征在于所述人机 接口单元中,键盘的接口方式采用独立方式,每个独立按键以一对-一的方式直接接到 I/O输入线上,LCD显示采用点阵图形液晶显示模块。
专利摘要基于USB接口的打标控制器,属于激光打标机的打标控制器,目的是克服现有技术的缺陷,既满足客户对复杂图形打标的要求,又满足对简单图案打标的要求,同时调整、修改、安装方便,工业现场运行稳定可靠,即插即用。本实用新型包括USB接口控制器单元、数据存储单元、程序存储单元、D/A转换单元、逻辑控制单元和人机接口单元;本实用新型既能与计算机联机使用,又能脱离计算机单独使用,其中的打标内容还可以由计算机通过USB接口随意改写,并可以通过控制器上的键盘和LCD显示对其进行编辑、设定打标参数等操作。
文档编号B41J29/38GK201017305SQ20062015755
公开日2008年2月6日 申请日期2006年11月24日 优先权日2006年11月24日
发明者应花山, 廖洪海, 洵 李, 兵 胡, 飞 郭 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1