微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于WinCE操作系统的通用USB数控键盘设计

基于WinCE操作系统的通用USB数控键盘设计

时间:08-05 来源:《电子产品世界》 点击:

引言

随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在通过键盘作为人机交互工具时,按键的数目与功能上与其他的数控系统是不同的,实时性和高速率是工业现场所重视的,USB|0">USB数控键盘相对于传统的PS/2键盘具有高速率、支持热插拔、可灵活配置等特点,所以要为嵌入式数控设备研发出通用的数控键盘,来满足现代化数控系统的需求。具体设计方案如图1所示。

系统硬件电路设计

系统(图1)有四个模块组成:键盘模块、USB接口模块、USB和MCU通信模块。USB数控键盘不需要显示模块,在实验中为了便于观察结果,采用了1602液晶显示器,来显示键值和通信的状态。AT89S55单片机和ZLG7290均采用上电复位电路,减少系统的不必要开支,整个电路的供电采用USB供电,有效的减少了电源干扰。

ZLG7290键盘模块

ZLG7290键盘编码显示芯片具有I2C总线接口功能并可直接驱动8位共阴式数码管(或64只独立的LED),同时还可以扫描管理多达64只按键,其中有8只按键还可以作为功能键使用。ZLG7290内部还设置有连击计数器,能够使键按下后不松手而连续有效。并提供键盘中断信号,方便与处理器接口;可检测每个按键的连击次数,并具有键盘去抖动处理、双键互锁处理等功能。

在设计的过程中可以连接64个按键,但是在试验的过程中,选取了具有代表性的4个按键,其中有一个功能键F1,如图2所示。电路中晶振是4MHz,能够稳定地工作。MCU的地线一定要与ZLG7290的地线相连接,避免I2C通信故障,使得I2C通信顺畅。

I2C总线的器件SDA和SCL引脚都是漏极开路(或集电极开路)输出结构。因此实际使用时,它们都必须要加上拉电阻。上拉电阻一般取值3~10kΩ。

USB接口模块

USB通过4线电缆接入主机,这4条线分别为:VCC(总线电源)、GND(地线)、D+和D-(数据线)。D12DM和D12DP分别连接到PDIUSBDl2芯片的D-和D+引脚。D+和D-线上必须串接18Ω+1%的精密电阻,D+和D-线必须分别用1MΩ的上拉电阻(3.3v)和下拉电阻,USB接口的VBUS为来自PC机的+5V电源,用于供给ZLG7290、MCU和PDIUSBD12的电源,VCC和GND分别接2个电感,起到电源的滤波作用。

PDIUSBD12和MCU通信模块

PDIUSBD12是Philips(编者注:现独立为NXP)公司的一款特点突出的USB接口芯片,它支持多路复用、非多路复用和DMA并行传输。PDIUSBD12需要外接MCU来进行协议处理和数据交换。

PDIUSBD12完全遵从USB1.1协议,它内部集成有串行接口引擎(SIE)、FIFO存储器、收发器以及电压调整器。还有SoftConnectTM、PLL锁相环、可编程的时钟输出、低频晶振、终止寄存器和GoodLinkTM,以及并行和DMA传输。

由AT89S55和PDIUSBD12构成的接口电路如图3所示,在此AT89S55没有画出,但是D12与MCU的连接都已标出。PDIUSBD12的8位并行数据接入AT89S55的P0口,设计电路中只有D12一个外部总线扩展电路,那么D12的A0引脚可通过10kΩ电阻到地。D12的ALE引脚与MCU的ALE引脚相连。振荡电路采用6MHz,经过D12内部倍频电路以后,实际D12内部时钟为24MHz。注意两个电容值的大小是不一样的,采用22pF和68pF的。

GL_N通过一个电阻和红色LED串联到VCC。当USB设备枚举成功后,该LED常亮,当PC机与D12有数据通信时,该LED闪烁。因为没有用到D 1 2的D M A功能,所以DMACK_N和EOT_N必须接上拉电阻,INT_N也要通过电阻上拉到VCC,因为这个引脚是开漏的。

系统软件

软件设计包括ZLG7290控制程序、I2C通信程序、USB固件程序、在winCE下USB Host驱动程序和应用程序。各部分采用模块化程序设计,便于升级和维护。WinCE下USB数控键盘的驱动程序与硬件平台关联很少,USB数控键盘在winCE操作系统下具有通用性,并且该键盘的按键数目根据用户的要求可以剪裁,功能也可以在程序设计中定制,可以满足不同数控系统的需求。

I2C通信程序

在程序设计时要注意:数据线SDA的电平状态必须在时钟线SCL处于高电平期间保持稳定不变,SDA的电平状态只有在SCL处于低电平期间才允许改变。但是在I2C总线的起始和结束时例外。

I2C总线总是以字节为单位收发数据。每次传输的字节数量没有严格限制。首先传输的是数据的最高位(MSB,第7位),最后传输的是最低位(LSB,第0位)。另外,每个字节之后还要跟一个响应位,称为应答。

ZLG7290控制程序

该程序的主要功能是完成ZLG7290的控制及键盘的管理,读出键值并判断出是否为功能键,在系统中功能键是配合普通键完成对数控系统的操作。主要流程就是先初始化、判断是否有键按下,若有键按下,判断是普通键还是功能键,若为功能键,则进行功能键处理,若为普通键,则转化为十进制的值,将键值显示在1602液晶显示器上。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top