如何设计一个工作稳定、可靠的基于CY7C68013A单片机的USB控制系统?

发布者:Joyful888Life最新更新时间:2024-01-25 来源: elecfans关键字:CY7C68013A  单片机  USB控制系统 手机看文章 扫描二维码
随时随地手机看文章

引言

通用串行总线(Universal Serial Bus,USB)作为计算机上的新型接口技术,越来越受到人们的青睐。与以前的RS 232,RS 485,ISA,PCI和并行接口等接口相比,USB避免了接口体积大、接口规范不统一、不支持热插拔等缺陷,具有使计算机与外部设备连接十分方便的优点。目前,很多设备都开始使用USB接口来实现,如鼠标、键盘、打印机等。在实际设计工作当中,也越来越多地采用了USB技术,如数据采集等。USB的设计和应用已经成为现代电子设计中一个非常重要的部分。


1 USB 2.0特点

USB是一种高效、快速、价格低廉、体积小的新型串行通信接口,其最大的特点是支持热插拔,可以在不重新启动计算机的情况下直接将USB外部设备连接到计算机并开始通信。


USB具有以下主要特点:

(1)节省系统资源。在计算机中,系统为USB主控制器分配一根中断控制线和一些输入/输出地址,USB再为外部设备分配惟一的地址。

(2)可以提供电源。计算机上的USB接口可以向外部设备提供一定的电力支持,其输出电流最小值为100 mA,最大值为500 mA,输出电压为5 V。

(3)良好的兼容性。USB规范已经有USB 1.O,USB 1.1,USB 2.O,无线USB等多个版本的协议,这些协议都有很好的向下兼容性。

(4)共享式接口。USB采用“菊花链”式的连接方式,同时支持多个设备的连接,一个USB主控制器最多可以连接126个外部设备。

2 CY7C68013A的主要特点

CY7C68013A是Cypress公司的EZ-USB FX2LP系列低功耗版本单片机,具有和8051兼容的CPU和指令系统,同时包括USB接口和完整的USB 2.0协议引擎,并且提供了完善的固件及主机程序开发包。该单片机的CPU采用的是增强型805l内核,比标准的8051的速度快,硬件资源更为丰富,功能更强大。主要具有以下特点:

(1)具有第二个数据指针;

(2)具有第二个USATRT;

(3)I2C总线接口;

(4)8个额外的中断(INT2~INT6,WAKEUP,T2,USARTl);

(5)CPU时钟可以运行在12 MHz,24 MHz,48 MHz。

3 控制系统设计

基于USB的控制系统设计主要包含两个方面的内容,分别为固件程序的开发和上位机(主机)控制界面的设计。CY7C68013A芯片采用的是一种软配置模式,即程序和数据都存放在内部RAM中,并从RAM中开始执行。

3.1 启动模式的选择

EZ-USB在没有固件的情况下列举为一个缺省的USB设备,并且将其固件和描述符等下载到EZ-USB后,开始执行固件程序,此时模拟一个物理上的断开重新连接过程。在列举为一个USB设备时,根据芯片有没有连接E2PROM,以及E2PROM中第一个字节值的不同,其处理方式有很多。主要有:不连接E2PROM的缺省设备列举、CO加载、C2加载等启动方式。在此系统的设计过程中,采用第一种方式,即芯片没有连接任何片外存储器,USB的描述符以及VID,PID和DID等均由芯片内置的逻辑提供,然后根据驱动程序中提供的VID,PID和DID把主机上对应的固件程序下载到片内的RAM中,并执行固件代码。该方式具有硬件连接简单,节省器件等特点。

3.2 硬件系统框图

整个系统的硬件框图如图1所示。可以看出USB控制系统在整个系统中起到桥梁作用,用于连接上位机和外部设备。

如何设计一个工作稳定、可靠的基于CY7C68013A的USB控制系统?

上位机发送控制指令给USB设备,信息处于下行状态,解码后用来控制外围设备执行相应功能。上位机需要从外设获得信息(如数据采集),信息处于上行状态,由USB设备负责控制外设并将数据传送到上位机,由上位机分析、显示。

3.3 固件程序设计

在固件中,主要实现芯片外围设备的控制,以及对USB设备的功能描述等任务,同时负责与上位机通信,响应上位机的标准请求和自定义请求。

描述符主要是让上位机了解USB功能设备的基本配置信息和能力,如端点、接口等。在此主要使用标准描述符来说明USB设备,如设备描述符、配置描述符、接口描述符、端点描述符、设备限定描述符等。在该设备中,这些描述符的层次结构如图2所示。

如何设计一个工作稳定、可靠的基于CY7C68013A的USB控制系统?

系统中使用了2个配置描述符,分别为高速配置和全速配置,每个配置使用1个接口,并对应1个接口描述符,每个接口应用了4个端点,对应4个端点描述符。同时端点配置为块传输模式,2、4端点为OUT,6、8端点为IN,最大数据包长度为512 B,上位机通过O端点来操作、控制USB设备。设备描述符中VID=Ox04B4,PID=0x1304,用于指示设备供应商和产品信息,并用于上电时帮助主机加载合适的驱动程序,进而下载相应的固件程序。固件中对标准请求的响应部分,主要是让上位机能够对描述符进行读取和写操作。自定义请求响应主要实现上位机发送控制命令,来使能USB功能设备、以及执行相应的功能的目的,如DR_SendData,DR_ReadData。

固件设计流程图如图3所示。

如何设计一个工作稳定、可靠的基于CY7C68013A的USB控制系统?

用户初始化设备部分放在TD_Init()子程序中,负责整个USB设备的初始化过程。在定向描述符之后,需要把所用中断打开,并开启8051全局中断EA=1。由于EZ-USB设备启动需要重列举,因而需要通过设置和判断USBCS寄存器的RENUM和DISCON位来模拟设备物理上的断开和连接过程。用户外围设备控制功能的实现放在TD_Poll()子程序中,同时主循环中的SetupCommand()子程序用于接收、分析上位机的控制信号,响应上位机请求(标准请求和用户自定义请求)。

3.4 上位机界面设计

为了能够很好地控制USB设备,需要编写上位机控制界面。界面程序在VC++6.O环境下开发,该环境具有编程简单、快捷等的特点,便于开发可视化程序。Cypress公司为EZ_USB系列芯片提供了开发库CyAPI.lib,使用其中的控制函数类,可以在VC++6.0环境下开发界面程序。建立MFC(exe)工程后,在工程中加入CyAPI.lib,并且在主文件头部添加EZ-USB开发环境中提供的CyAPI.h,cyioctl.h头文件。利用库中的控制函数,如VendorID,ProductID等,可以获取USB设备的描述信息,同时也可以编写相关的控制功能程序。

3.5 系统设计中关键问题

(1)一个设备只能有一个设备描述符,可以有多个配置描述符,多个接口描述符,以及多个端点描述符。

(2)设备描述符中VID,PID要与驱动中的相一致,否则不能自动加载相应的固件程序。

(3)固件程序必须转换为.spt格式,用于固件加载的驱动程序和固件程序应放在一个文件夹。

(4)端点0为缺省控制端点,其可设置最大数据包长度为64 B,在设备描述符中wMaxPacketSize字段描述。

(5)传输模式有中断传输、块传输、同步传输、控制传输四类,需根据自己设计需求选择,同时注意最大数据包长度的设置。

4 驱动程序

对于USB设备,Windows操作系统要想对其实现操作,必须借助于驱动程序来实现。主机和驱动程序直接通信,交换数据,而驱动程序则和硬件资源进行通信,从而很好地控制USB设备。Cypress提供的开发环境中自带了相关的驱动程序CyLoad.sys和CyUSB.sys,可以直接使用,缩短了系统的开发周期。其中CyLoad.sys用于主机向USB设备下载固件程序,CyUSB.sys实现主机和固件程序通信。为了在CyLoad.sys的帮助下实现固件的自动下载,固件程序CyLoad.HEX必须转换为适合自动下载的CyLoad.spt文件,并且与CyLoad.sys一起放在CyLoad文件夹下,拷贝到系统system32目录下。在安装文件CyUSB.inf中设置的PID,VID必须和描述符中的一致,使得能够自动加载对应固件。

5 实验

实验系统,采用CY7C68013A-56pin作为USB设备芯片,实现控制LED和读取I/O数据功能。由于芯片采用3.3 V电压供电,因此可以从主机USB口取电,经LM317电压调整芯片转换为3.3 V,也可外接3.3 V电压供电。在PD口接LED,显示TD_Poll(void)实现的功能(灯亮/灭间隔300 ms),而PA口LED用于显示判断主机发送数据。PB口接高/低电平,用于主机读取该口数据,可以验证主机接收数据的正确性。

初始化子程序:

如何设计一个工作稳定、可靠的基于CY7C68013A的USB控制系统?

主机控制界面运行如图4所示。

如何设计一个工作稳定、可靠的基于CY7C68013A的USB控制系统?

界面中的USB Information分类框中为USB描述相关信息,由主机通过标准请求获得。Operation分类框中为主机向USB设备PA口发送数据,以及从USB设备的PB读取数据的情况。

6 结语

采用CY7C68013A实现USB控制系统,无论在固件程序编写、主机控制界面开发,以及设备驱动程序的使用等方面,都具有简单、方便的优点。系统采用设备固件存放在主机上的方法,不但简化了硬件设计,节约元器件成本,而且也提高了设备的可靠性。同时,此法对以后固件升级或更改设备功能,也十分简便,只需把固件修改好并放到主机相应位置,在USB设备再次插入主机时,就可以实现固件自动更新。文中给出一些设计过程中需要注意的关键问题,对于USB控制设备的设计具有一定的指导作用。上述系统和程序经过实际运行,工作稳定、可靠。


关键字:CY7C68013A  单片机  USB控制系统 引用地址:如何设计一个工作稳定、可靠的基于CY7C68013A单片机的USB控制系统?

上一篇:如何在液晶显示器上显示汉字、ASCII字符和彩色图形
下一篇:基于高速A/D转换与快速存储操作总线接口的高速同步数据采集系统设计

推荐阅读最新更新时间:2024-11-16 21:15

单片机最小系统复位电路图原理
复位电路 图 复位电路图 单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。 单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。 复位电路由按键复位和上电复位两部分组成。 (1)上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单
[单片机]
<font color='red'>单片机</font>最小系统复位电路图原理
单片机简介与单片机的发展历史
一、前言 科技的进步需要技术不断的提升。一块大而复杂的模 拟电路花费了您巨大的精力,繁多的元器件增加了您的成 本。而现在,只需要一块几厘米见方的单片机,写入简单 的程序,就可以使您以前的电路简单很多。相信您在使用 并掌握了单片机技术后,不管在您今后开发或是工作上, 一定会带来意想不到的惊喜。 二、单片机简介 我国开始使用单片机是在 1982 年,短短五年时间里 发展极为迅速。 1986 年在上海召开了全国首届单片机开 发与应用交流会,有的地区还成立了单片微型计算机应用 协会,那是全国形成的第一次高潮。截止今日,单片机应 用技术飞速发展,我们上因特网输入一个
[单片机]
PIC单片机中重要指令介绍
PIC的指令系统 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 PIC汇编语言指令格式   PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:   标号 操作码助记符 操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令
[单片机]
采用AVR单片机控制实现太阳能光伏直流控制器设计
当今世界能源短缺以及环境污染问题日益严重,这些问题迫使人们寻找和使用新的代替能源。随着电子技术、太阳能电池板生产技术的提高,使得太阳能的利用越来越普遍。太阳能具有无地域限制的特点,而我国很多地方仍然处于缺电状态,特别是一些边远地区、旅游景区,由于非常分散,依靠电网供电难度大、成本高,因而选择太阳能供电十分必要,而在太阳能发电系统中,控制器是十分关键的部件之一。 目前市面上一些太阳能控制器提高效率的手段仅仅局限在单一物理量算法研究(比如只对电压、电流的跟踪),效率的提高是很有限的。我们经过多次实际考察与测量,发现发电效率较高的产品往往价格昂贵,且适应性差,一般都用于固定场合,如大型太阳能发电站等;一些低价的控制器为了降低成本,内
[单片机]
采用AVR<font color='red'>单片机</font>控制实现太阳能光伏直流控制器设计
单片机部分缩写对照
帮助理解记忆 PC = progammer counter //程序计数器 ACC = accumulate //累加器 PSW = progammer status word //程序状态字 SP = stack point //堆栈指针 DPTR = data point register //数据指针 寄存器 IP = interrupt priority //中断优先级 IE = interrupt enable // 中断使能 TMOD = timer mode //定时器 方式 (定时器/计数器 控制寄存器) ALE = alter (变更,可能是) PSEN = progammer saving enable //程
[单片机]
SN 8 位单片机 SN8P2743 应用实践(5)
接SN8P2743 的比较器+放大器初试 在昨天测试 2743 比较器的基础上,考虑到付诸实用,决定按照标准双积分测量方式进行测试.. 要搞双积分,就要使用积分器,恰好,2743 本身就有一个相当不错的放大器,于是,首先利用放大器达成一个积分器,再利用一个 TL431 产生一个精密稳压标准电压,并且经过电阻分压到0.5V,作为反积分电压. 而正向积分电压就分压到0.25V . 由于双积分测量需要使用开关切换输入的正向积分,信号,反向积分等几种不同的输入电压,所以,在放大器的同相输入端加上一只 74HC4052 ,它是一只 2*4 路模拟开关,这里仅仅使用其中 4 路转1就可以了! 使用 243 的内部振荡器,代码选项是 16
[单片机]
SN 8 位<font color='red'>单片机</font> SN8P2743 应用实践(5)
51单片机入门 - EEPROM(24C02的使用)
24C02:256 个字节的 EEPROM。一般情况下,EEPROM 拥有 30 万到 100 万次的寿命。基于 I2C 通信协议的器件。I2C 是一个通信协议,它拥有严密的通信时序逻辑要求,而EEPROM 是一个器件,只是这个器件采样了 I2C 协议的接口与单片机相连而已,二者并没有必然的联系,EEPROM 可以用其它接口, I2C 也可以用在其它很多器件上。 1、EEPROM写数据流程 第一步,首先是 I2C 的起始信号,接着跟上首字节,也就是我们前边讲的 I2C 的器件地 址,并且在读写方向上选择“写”操作。 第二步,发送数据的存储地址。24C02一共 256 个字节的存储空间,地址从 0x00~0xFF,我们想把数
[单片机]
内嵌USB设备的ARM微控制器
  爱特梅尔推出基于ARM9 的微控制器AT91SAM9R64,目标市场为高性能的、具有USB接口的嵌入式控制应用。AT91SAM9R64可通过USB、SD卡或外接NAND闪存启动,从而减少保存程序和批量数据的存储器的数量。芯片采用球间距为0.8mm的10x10 mm BGA封装。    高速USB   传输速率高达480 Mbits/sec的高速USB正迅速成为连接设备与PC的标准。SAM9R64可以将现有的全速USB (速率为12 Mbits/sec)产品升级到高速USB,而无需对连接器进行任何物理改动。    可编程的存储器总线电压   除了支持传统的静态存储器外,SAM9R64的存储器总线接口还支持SDRAM和NA
[新品]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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