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

发布者:SparklingDreams最新更新时间:2007-09-05 来源: 电子产品世界关键字:接口  通信  显示  共阴 手机看文章 扫描二维码
随时随地手机看文章

引言

随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在通过键盘作为人机交互工具时,按键的数目与功能上与其他的数控系统是不同的,实时性和高速率是工业现场所重视的,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液晶显示器上。

PDIUSBD12固件程序

固件设计的目标就是使PDIUSBD12在USB上达到最大的传输速率。PDIUSBD12的固件设计成完全的中断驱动。当CPU处理前台任务时,USB的传输可以在后台进行。这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。

后台ISR(中断服务程序)和前台主程序之间的数据交换可以通过事件标志和数据缓冲区来实现,其原理图如图4所示。在ISR中,固件将数据包从PDIUSBD12内部缓冲区移到循环数据缓冲区,并在随后清零PDIUSBD12的内部缓冲区,以便接受新的数据包。CPU可以继续当前的前台任务直到完成。

对于这种结构,主循环不关心数据是否来自USB、串口还是并口,其只检查循环缓冲区内需要处理的新数据。主循环程序专注于数据的处理,而ISR能够以最大可能的速度进行数据的传输,相似的控制端点在数据包处理时采用了同样的概念,ISR接收和保存数据缓冲区中的控制传输并设置相应的标志寄存器,主循环向协议处理程序发出请求,由于所有的标准器件级别和厂商请求都是在协议处理程序中进行处理,ISR得以保持它的效率而且一旦增加新的请求只需要在协议层进行修改。

USB在WiniCE下驱动程序和应用程序

整个系统采用的是ARM9微处理器作为主机,并且选用ARM9中的S3C2410作为系统的核心控制器。S3C2410内部集成了USB设备控制器,完全兼容USB1.1协议并且集成了USB收发器。WinCE操作系统下有自带的一些驱动程序,但是这些驱动程序不能满足本系统的设计需求,所以需要编写USB Host驱动程序。

应用程序是系统与用户的接口,它通过通用驱动程序完成对外设的控制和通信。主机用户程序的编写使用EVC++编译环境下的API函数实现。程序中主要用到两个APl函数:CreateFile()和DeviceIoControl()。首先查找设备,打开设备的句柄:调用Win32函数CreatFile()得到设备驱动程序的句柄。然后进行读写和控制操作:调用wi n 3 2 函数DeviceIoControl(),通过得到的句柄把IoControlCode和相关的输入输出缓冲区提交给驱动程序。最后关闭设备句柄:当退出应用程序时,用CloseHandle()关闭设备。

结语

本文提出的嵌入式数控键盘已经设计完成,在项目组测试中达到了预期的效果。用USB键盘输入时,在WinCE操作系统下使用记事本的方式在LCD上显示键值,并且在应用程序中可以根据用户需求定制按键的具体功能,满足数控系统的需要。

关键字:接口  通信  显示  共阴 引用地址:基于WinCE操作系统的通用USB数控键盘设计

上一篇:AP384XC系列PWM控制器的设计考虑
下一篇:智能车运动状态实时监测系统的设计及实现

推荐阅读最新更新时间:2024-05-13 18:37

基于LabVIEW和NI USRP进行射频/通信物理层研究
   图1:抑制前后检测仪上显示的符号、BER、SNR、电流估计值、传输状态信息概览。    LabVIEW系统设计软件在并行编程上确实很出色,是我研究过程中开发信号处理和通信算法的好帮手。我用过C++、Java和其他语言进行编程,但我还没发现有其他方法比LabVIEW更直接、更直观地反映这种并行机制。   -JanDohl,Ph.DcandidateattheVodafoneChair,TUDresden   挑战:   设计更佳的数字信号处理方法,校正非线性射频损伤;使用真实无线信号验证该方法。   解决方案:   将仅仿真代码移植到NILabVIEW软件,采用实时数字信号处理(DSP)技术并借助两个NIUSRP
[测试测量]
基于LabVIEW和NI USRP进行射频/<font color='red'>通信</font>物理层研究
SigmaSense推业界首个电容成像技术 可实现曲面或柔性显示
据外媒报道,电容成像技术先驱 SigmaSense公司宣布推出业内首个on-cell(将触摸屏嵌入到显示屏的彩色滤光片基板和偏光片之间,即在液晶面板上配触摸传感器)交互式显示屏,具备无与伦比的信号-噪声性能灵敏度,而且只需要1.5V的通道驱动电压就可驱动。 (图片来源:SigmaSense公司官网) 即使显示屏表面有液体或有其他污染物,SigmaSense公司的电容成像技术也能实现触控和物体成像。触点电阻超过1百万欧姆时带来的性能和功能障碍,该技术也能克服,是行业首创,能够使各种传感器材料和传感器设计成为可能,以满足应用、成本和机械要求。 由于屏幕尺寸变得越来越大,甚至达到仪表板的宽度,即超过50英寸,在交互式信息娱
[汽车电子]
SigmaSense推业界首个电容成像技术 可实现曲面或柔性<font color='red'>显示</font>屏
真空管荧光显示器(VFD)供电电源的解决方案
1 引言 该参考设计提供了一个能够获得 真空管荧光显示器 (VFD) 供电电源 的解决方案,非常适合汽车应用。并给出负载/电源调节率的测试数据及其他测试结果。 2 VFD设计基础 真空管荧光显示器(VFD)是消费类电子设备中一种常见的显示器。广泛用于录像机、车载收音机、微波炉等。与液晶显示器(LCD)不同,VFD发光亮度较强,而且对比度比较清晰,能够方便地支持不同颜色的显示单元。该项技术与阴极射线和阴极管有关,与LCD不同,大多数VFD能够在零度以下保持有效工作,非常适合寒冷气候下的户外设备。 VFD包含3个基本电极,即阴极灯丝、阳极(磷光物质)和栅极,一个高真空玻璃壳。阴极由钨丝、碱土金属氧化物涂层(发射电子)组
[电源管理]
真空管荧光<font color='red'>显示</font>器(VFD)供电电源的解决方案
动车组列车的车载数据通信网络方案
  随着技术的进步和市场需求的变化,铁路机车车辆工业对列车微机控制系统中的车载数据 通信网络 提出了新的要求,期望建立一个在机车车辆内部及列车和地面控制系统之间交换控制命令、状态、故障诊断信息以及旅客信息等的数据通信网络。为此,国际电工委员会制定了IEC61375—1:1999《列车通信网络》,它包括2种 总线 ,即列车总线WTB和多功能车辆总线MVB,分别用来连接列车的各个车厢和车厢内的电气设备。本文结合“北亚”号内燃动车组,研究基于TCN技术的内燃动车组列车通讯 网络 。   “北亚”号内燃动车组是一种自带动力、具有载客功能、成组运行的轨道交通工具,动车组设头尾2辆动车,中间由几节拖车组成。司机在头车操纵,尾车不配司
[安防电子]
动车组列车的车载数据<font color='red'>通信</font>网络方案
51单片机串口通信的注记
最近折腾51单片机,当然学到的都是比较基础的东西,可能我认为比较复杂的概念有 中断 和 串口通信 ,这篇主要是讲串口通信 使用的自然是山大王STC89C52RC的芯片来学习 串口通信主要是C51单片机的RXD 和TXD 与上位机进行通信,由于上位机一般是电脑,所以要TTL转成电脑能读出的RS232的电路来支持 一般使用MAX232 芯片 串口通信电路如下 之后就可以电脑的串口与这里的串口头子接了,注意 串口先要交叉一下 即电脑的TXD 对应下位机的RXD C51单片机串口通信模式有4种,最常用的是第一种 方式0 同步移位寄存器方式 ,一般用来扩展I/O口, 方式1 10位异步收发(8位数据),
[单片机]
51单片机串口<font color='red'>通信</font>的注记
手持式RFID读写器网络接口设计
  RFID 技术目前广泛应用于身份识别、防伪应用、供应链应用、公共交通管理、物流管理、生产线自动化与过程控制、容器识别等领域。由于手持式RFID读写器的存储器容量有限,保存在读写器中的数据可以通过USB 等接口传送到计算机中进行处理,但为更方便快捷地将读写器中的数据传送到远程的计算机系统中,将便携设备网络化是解决上述问题的有效途径之一。但目前的手持式RIFD 读写器并不具备与互联网进行网络连接的网络接口。另外,手持式RFID 读写器是通过内部所装有的电池进行供电,所以降低其工作功耗也是主要问题之一。而MSP430F149 单片机是一款16 位超低功耗的处理芯片,它将多个不同功能的模拟电路,数字电路模块集成于一身,适合应用与需要电
[单片机]
手持式RFID读写器网络<font color='red'>接口</font>设计
STM32F103 SPI接口9MHz时钟和18Mhz时钟的波形对比
最近工作上的原因使用了STM32F103V8T6这款CPU,用到了SPI接口来读取AD器件AD7685的数据。按该CPU的手册说明,该SPI接口最大的时钟频率为18MHz,即主时钟72MHz的4分频。抓取了两种时钟频率下SPI接口的波形,保留,待以后有时机细研究。 关于时钟的说明: 1.9MHz采32个AD值 2.9MHz采32个AD值中的1个进行放大观察 3.18MHz采32个AD值 4.18MHz采32个AD值
[单片机]
STM32F103 SPI<font color='red'>接口</font>9MHz时钟和18Mhz时钟的波形对比
液晶显示器TTL接口液晶面板举例
1.单路6bit TTL接口液晶面板 单路TTL 6bit接口一般仅在小尺寸低分辨率的液晶面板中使用,下面以LO-PHILIPS公司生产的12.1in液晶面板LB12151-A2为例进行说明。 LB121S1-A2是单路6bit TTL接口液晶面板,分辨率800×600,RGB像素按垂直条状排列,显示方式为常亮型(像素两端不加电压时光线通过),电源电压3.3V,使用两支背光灯。图1所示为LB121S1-A2液晶面板框图。     图1 LB121S1-A2胆液晶面板框图 LB121S1-A2液晶面板组件配置了三个输入插口CN1、CN2和CN3,CN1为41脚单路6bit TTL信号接口,CN2、CN3为
[电源管理]
液晶<font color='red'>显示</font>器TTL<font color='red'>接口</font>液晶面板举例
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved