基于CY7C68013A芯片的USB键盘的设计

发布者:浅唱清风最新更新时间:2013-08-06 来源: dzsc关键字:CY7C68013A  USB键盘  应用系统 手机看文章 扫描二维码
随时随地手机看文章
  USB接口具有传输速率高,体积小,可向外供电等特点,因此使得计算机与外部硬件设备之间的连接和使用都十分方便。目前,计算机的外围设备中,例如鼠标、键盘、打印机都开始采用USB接口实现。本文中,将介绍Cypress公司的USB接口芯片--CY7C68013A,并介绍基于CY 7C68013A实现的USB键盘。

  1 CY7C68013A芯片简介

  一个典型的USB应用系统由USB设备、USB主机和USB电缆组成,USB主机一般指具有USB接口的计算机,连接到主机USB端口的外部设备一般称为USB设备。

  Cypress的EZ-USB FX2系列芯片是世界上第一款集成了USB2.0协议的微处理器,EZ-USB FX2LP系列是其低功耗版本,使用比较多的是CY7 C68013A。

  FX2LP芯片的内部主要包括高性能微处理器内核、USB2.0收发器、智能引擎(SIE)、增强8051内核、16K的RAM,4K的FIFO、IO接口、数据总线、地址总线和通用可编程接口等。EZ-USB FX2LP的CPU采用的是增强型8051内核,指令集和标准的8051完全兼容,因此非常便于熟悉51单片机的用户使用。

  根据内部资源和引脚数量的不同,CY7C68013A芯片一共提供了三种不同的封装。本文以CYTC68013A-56pin为例进行说明,该封装提供了PA、PB、PD共3个8位并行I/O端口。

  2 开发环境的搭建

  USB接口设备的开发比较复杂,需要涉及USB固件程序、USB驱动程序、上位机程序开发和电路板设计等诸多方面。

  2.1 固件开发环境

  USB功能设备的硬件功能主要由硬件上的微处理器来实现,微处理器是由芯片上的固件程序控制的。由于FX2LP的CPU采取了8051内核,因此,固件开发环境仍然可以使用51系列单片机的常用开发软件--Keil μVision。

  2.2 Cypress开发包

  Cypress公司为EZ-USB芯片提供了一个开发包,CY3684 EZ-USB FX2LP Development Kit,里面包含了典型的固件代码,用户可以参考使用。另外,该开发包还提供了通用USB驱动程序、典型的硬件电路、上位机操作函数说明等。

  2.3 上位机开发环境

  USB功能设备需要连接到计算机上使用,因此需要上位机的程序开发,一般可以使用微软的Visual Studio来实现。USB设备开发的上位机程序通过USB设备的驱动程序来和USB设备进行通信。

  驱动程序的开发可以使用微软的DDK开发驱动程序,也可以使用Driver Studio软件。针对Cypress公司的EZ-USB系列芯片,也可以直接使用Cypress的通用驱动程序,这是一种更加简单的开发方式。

  3 USB键盘的设计

  3.1 电路设计

  图1是CY7C68013A-56pin的典型连接。电压调整芯片将USB接口的5 V电压转换为芯片的工作电压3.3 V;类似51系列单片机,时钟振荡电路接入晶振和两个瓷片电容;SCL与SDL引脚接上拉电阻。

图1 CY7C68013A端口的连接方式

  键盘设计十分简单,CYTC68013A-56pin有PA、PB、PD三组24个IO端口,利用这些IO端口,就可设计常用的矩阵键盘,如图2所示,键的数目可达12*12个。和51单片机实现的键盘一样,固件程序需要对行和列进行扫描,采用轮询或中断的方式,对按下的键值进行判断。

  另外,在制作电路板的时候,注意D+和D-的走线尽量的短而且相等,晶振尽量靠近芯片。

图2 键盘与CYTC68013A的连接[page]

    3.2 USB芯片的固件程序设计

  EZ-USB FX2LP芯片采用的是一种软配置模式。也就是USB设备的各种驱动程序都保存在上位机,上电后,USB主机首先将程序下载到RAM中,然后从RAM开始执行。在这个过程中,有两次"枚举":刚加电时,USB内核中没有固件,将被枚举为一个默认的USB设备;主机下载固件程序之后,在内核中执行固件程序,就会重新识别并枚举这个USB设备,这个过程被称为"重枚举".在第一次枚举时,根据芯片有没有连接E2PROM,以及E2PROM中第一个字节的值,有不同的处理方式。当没有外接E2PROM时,将根据驱动程序中提供的VID,PID和DID,把主机上对应的固件程序下载到片内的RAM中,并执行固件代码。

  USB固件程序是USB设备功能的核心,通过两次枚举,固件程序被下载到CY7C68013A的芯片里(程序也可以放在外接的EEPROM芯片里),用于配置芯片工作在需要的状态下。

  固件程序使用Keil μVision来编写。可以参考Cypress的例程。大体步骤是:

  (1)初始化休眠模式、远程唤醒等。

  (2)初始化用户设备,主要是\'TD_Init()子程序。负责整个USB设备的初始化过程。

  (3)定向描述符。

  (4)把所用中断打开,并开启8051全局中断EA=1.由于EZ-USB设备启动需要重列举,因而需要通过设置和判断USBCS寄存器的RENUM和DISCON位来模拟设备物理上的断开和连接过程。

  (5)用户外围设备控制功能的实现放在TD_Poll()子程序中,同时主循环中的SetupCommand()子程序用于接收、分析上位机的控制信号,响应上位机请求(标准请求和用户自定义请求)。

  3.3 USB通用驱动程序的使用

  USB设备的使用需要驱动程序的支持,Cypress提供了通用的USB驱动程序。

  该驱动包括两部分:CyLoad.sys和CyUsb.sys,前者用于固件程序的下载,后者用于主机和固件程序的通信。这两个驱动程序提供的引导文件分别是CyLoad.inf和CyUSB.inf,用户可以直接使用,也可以根据需要进行改动。

  为了在CyLoad.sys的帮助下实现固件的自动下载,固件程序CyLoad.HEX必须转换为适合自动下载的CyLoad.spt文件,并且与CyLoa d.sys一起放在CyLoad文件夹下,拷贝到系统system32目录下。在安装文件CyUSB.inf中设置的PID,VID必须和描述符中的一致,使得能够自动加载对应固件。

  USB设备使用时,必须首先安装驱动程序,注意分别安装上面提到的下载驱动CyLoad.sys和通信驱动CyUsb.sys.安装驱动之后,可以使用Cypress提供的主机控制函数库CyAPI.lib开发主机程序,通过驱动程序和USB设备进行通信。

  3.4 USB主机的应用程序设计

  USB主机程序可以使用Cypress提供的CyAPI.lib库来进行编程。CyAPI.lib对应Cypress提供的驱动程序CyUsb.sys,为其提供了简单而且功能强大的C++编程接口,通过CyAPI.lib库提供的函数,可以对USB设备进行读写操作,这些函数主要是Open,Close和XferData.

  本文以VC++6.0为例,描述创建USB设备应用程序的步骤。

  (1)新建工程,并将CyAPI.h,CyAPI.lib,cyioctl.h三个文件加载到项目中。

  CyAPI.h中定义了CCyUSBDevice、CCyControlEndPoint等几个重要的类;而cyioctl.h中则定义了读取USB设备的几个重要的结构和宏。

  (2)在相应的文件中(视、框架或者对话框,依具体情况),包含头文件CyAPI.h和cyioefl.h.

  然后定义USB设备全局变量和控制端点全局变量,并进行初始化:

  CCyUSBDevice*USBDevice=new CCyUSBDevice();

  CCyControlEndPoint*ept=USBDevice->ControlEndPt;

  (3)在程序执行时,采用中断方式,或者轮询方式交换数据。以轮询方式为例,则在帧循环中加入如下代码:

  首先判断设备是否打开,然后指定操作码,ept->XferData()完成传输,实现从端口读数据,或者向端口写数据。数据传输的方向由ept->Direction来设置。

  (4)结束程序时,关闭USBDevice.

  USBDevice->Close;

  4 结论

  EZ-USB FX2芯片实现USB系统,软硬件程序设计,相比较而言,简单、方便。本文介绍了设计USB系统的大体步骤,给出了USB键盘设计的实例。

  上述系统和程序经过实际运行,工作稳定、可靠

参考文献:

[1]. CY7C68013A datasheet http://www.dzsc.com/datasheet/CY7C68013Ahtml.
[2]. EZ-USB datasheet http://www.dzsc.com/datasheet/EZ-USB_305660.html.

关键字:CY7C68013A  USB键盘  应用系统 引用地址:基于CY7C68013A芯片的USB键盘的设计

上一篇:USB读数装置及上位机的设计
下一篇:索尼“疯狂的专利”曝光 可旋转的传感器和LCD

推荐阅读最新更新时间:2024-05-02 22:44

单片机最小应用系统的组成
  1.确定 单片机 为核心的控制系统   根据应用系统要求,并以性价比作参考, 设计实用够用的应用系统。   (1)单片机型号选取,如89C51或89S52   (2) 基本的配置部件:晶振/复位/ 电源 等   2.单片机接口电路   (1) 应用系统要求的基本输入接口和输出接口,键盘、显示、外接存储器等   (2)其它一些功能接口   功率接口、标准时钟电路、红外接收、A/D等
[单片机]
DSP应用系统电磁兼容的设计
1 引言   随着DSP芯片的迅猛发展,其运算速度和处理能力不断提高,使得DSP系统的成本、体积、重量及功耗都有很大程度的下降。但与此同时,周围环境的电磁干扰源越来越多,使得DSP系统和产品设计人员也面临着更加严峻的挑战,即如何抑制日益严重的电磁干扰(EM I) ,提高系统性能,使各种电气及电子设备达到电磁兼容(EMC) 。   2 电磁兼容设计   2. 1 电磁兼容   电磁兼容(EMC)是指在有限的时间、空间和频谱资源等条件下,各种用电设备可以共存并不至于引起性能降级的一门学科。而电磁兼容性通常是指设备或系统在其电磁环境下能正常工作,并且不对该环境中任何事物构成不能承受的电磁骚扰的能力。   电磁干扰( EM I
[嵌入式]
DSP<font color='red'>应用系统</font>电磁兼容的设计
基于PDA的应用系统框架的设计和实现
随着信息时代的高速发展.人们对信息的需求越来越呈现出多样化、专业化的趋势。对各种获取信息的终端设备也提出了更高的要求,既要快速、准确、方便地获取信息,又要便于携带。作为既要快速方便地获取信息。又要便于携带的信息终端设备.PDA具有不可比拟的优势。随着PDA容量增大、存取速度变快.网络连接越来越方便。PDA的应用前景将越来越广泛。本文在PDA环境下,提出了一种新型的应用系统架构。并成功将其应用在长江航道局信息化系统之中。 1  嵌入式 操作系统 WinCE WinCE是一个抢先式多任务并具有强大通信能力的嵌入式操作系统。它的多线程性、多任务、全优先的操作系统环境是专门针对资源有限而没计的.这种模块化设计使嵌入式系统开发者和应用开发者
[嵌入式]
基于单片机应用系统的串行通信设计
 1 引 言   在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪。该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低。而且通用性好。   2 串行通信的硬件设计   串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设
[工业控制]
基于单片机<font color='red'>应用系统</font>的串行通信设计
综述单片机应用系统的抗干扰设计
1 概述   在进行单片机应用产品的开发过程中,我们经常会碰到一个很棘手的问题,即在实验室环境下系统运行很正常,但小批量生产并安装在工作现场后,却出现一些不太规律、不太正常的现象。究其原因主要是系统的抗干扰设计不全面,导致应用系统的工作不可靠。本文主要分析单片机应用系统出错的起因,并结合自己的工作经验,探讨一些解决的办法。 2 单片机应用系统出错的主要现象和原因 2.1 单片机应用系统出错的主要现象和内因   大量的电源和磁场干扰,会造成以下各种系统内部出错。表1列出了单片机应用系统出 错的主要现象和内部原因。 2.2 单片机应用系统出错的外部原因   从设计和制造的角度来看,造成应用系统容易受干扰的主要原因是:   (1)系
[单片机]
综述单片机<font color='red'>应用系统</font>的抗干扰设计
基于AT89C51应用系统的串行通信设计
1 引 言 在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪.该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。串行通信技术在测控系统中占有很重要的地位,只用三根线.就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低.而且通用性好。 2 串行通信的硬件设计 在所开发的系统中.红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在线工作组态
[单片机]
基于嵌入式USB的以太网应用系统设计
    随着USB技术的迅速发展,人们对USB的期望也越来越高。虽然USB技术在台式计算机领域的地位已经固如磐石,但是由于其以主机为中心的拓扑结构,任何一次USB的数据传输都必须由主机来发起和控制,所有的 USB设备都只能与主机建立连接。不仅如此,软件复杂性以及较高的功率要求,使得人们对嵌入式设备中使用USB的兴趣与日俱增 [1] 。嵌入式USB结合以太网技术可以将USB设备转换到TCP/IP,让USB 设备不再受距离限制,可以通过网络随时随地访问USB设备,可以让一个USB设备供多个用户使用,从而提高USB设备的利用率。通过使USB设备具备联网能力的设备联网服务器,可以实现联网使用USB存储、USB视频和USB打印等。本文提出了
[嵌入式]
单片机在嵌入式系统应用中的抗干扰措施
  单片机在嵌入式系统应用中,抗干扰性能是系统可靠性的重要指标,抗干扰设计是单片机系统研制中不可忽视的一个重要内容。本文根据笔者在实际工作中的体会,就单片机在嵌入式系统应用中的抗干扰问题进行探讨,并给出了排错设计、容错设计的一些方法和措施。   随着科学技术的迅速发展,单片机在各个领域中的应用越来越广泛。在众多的应用系统中共同面临的一个问题,就是它在应用系统中的可靠性,这就要求我们在设计时应根据现场具体情况,在硬件设计、线路板设计、软件设计等方面来采取相应的抗干扰措施。    一、抗电源干扰的措施   大部分单片机嵌入式系统都采用市电电源供电,在应用系统中一个很重要的干扰就来自电源。市电的各种干扰,如雷电、大容量感性负载的起
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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