DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1061|回复: 0
打印 上一主题 下一主题

[接口电路] 单片机在USB设计中的应用

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:47:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    随着USB技术的快速发展以及USB外设在越来越多场合的广泛应用,支持USB接口技术的芯片也越来越多。对于USB接口的设计,如非扩展之用,选用带有MCU的USB控制器当然是设计师们的首选,因为这样不仅可以大大简化硬件电路、减小外设体积,而且还可以提高产品的可靠性。文中介绍的C8051F320就是顺应这种需求而推出的一种新型USB控制器芯片。

  1 C8051F320的主要特点

  C8051F320是Cygnal公司推出的一款具有全速USB功能的混合信号flash微控制器芯片,该器件内部集成有2304 Byte RAM和16k Byte的flash存储器。实际上,C8051F320是一个完整的小型片上系统(SoC)。由于利用该芯片进行设计时可以不需要任何外部元件(包括电阻和晶振),因而是小型USB应用的理想选择。与其它同类产品相比,C8051F320主要具有如下一些特点:
  




  ●全速的USB 2.0功能控制器;

  ●内部集成了时钟恢复电路,且不需要外接晶体振荡器;

  ●可支持8个USB端点;

  ●带有1k字节的USB缓冲存储器;

  ●内部集成了USB接口的数据收发器,设计中无需外部上拉电阻;

  ●具有高速增强型8051 MCU内核,该MCU内核采用流水线式指令结构,70%的指令执行时间为一个或两个系统时钟周期,处理速度可达25MIPS(时钟频率为25MHz时)。
此外,C8051F320还有许多其它特性,如支持在系统编程(ISP),带有可编程的数字I/O和数字交叉开关,可提供全速、非侵入式的在系统片内调试电路等。

  2 C8051F320的引脚功能

  C8051F320的引脚排列如图1所示。主要引脚的功能如下:

  D+、D-:USB电缆的USB D+和USB D-连接端;

  VDD:2.7~3.6V片上电源输入端或片内电压调节器的3.3V输出端;

  REGIN:片内电压调节器的5V输入端;

  VBUS:USB电缆VBUS引线的感应输入端,当该脚出现5V高电平信号时,表示该设备已经和主机连接好;

  RST/C2CK:多功能引脚,内部上电复位POR(Power On Reset)和VDD监视器的漏极开路输出,使该脚保持低电平15μs以上可对系统进行一次复位。此外,该脚还可作为C2接口的时钟信号输入端;

  P3.0/C2D:多功能引脚,可作为I/O端口或C2接口的双向数据信号传输端口。
3 应用举例

  笔者以C8051F320为核心设计了一个USB和CAN总线的接口转换模块,运用该接口转换模块可以方便地把具有USB接口的测控设备连接到一个CAN总线测控网络中,以对系统的运行状况进行系统和整体的测试和分析。在该接口转换模块的设计中,最主要的工作就是USB接口部分的设计,包括硬件电路和固件程序的设计。
  




  3.1 USB 接口硬件电路设计

  由于C8051F320微控制器具有简单易用的特点,因此,用C8051F320进行USB接口的硬件设计也显得十分简单,主要包括两部分的内容,一是接口转换模块供电方式的选择,二是USB引脚的连接,图2是其USB接口电路图。

  由于整个模块的功率估计在3W左右,而USB总线的供电量只适合小功率模块的供电,最大也只有500mA,因此不能满足整个模块的安全供电,所以模块选择自供电模式,图2所示的整个模块(包括C8051F320和模块中所有其它部分)的供电电源都来自外部5V电源。由于C8051F320中的USB收发器内部集成了上拉电阻,因而不需要任何外部器件便可直接与USB接口相连。

  3.2 USB固件程序设计

  USB固件程序设计是USB接口部分的主要工作,它的主要目的是:当USB设备连接到主机上时,主机可以发现新设备,然后建立连接并完成数据传输任务,也就是能够让Windows正常检测和识别USB设备。因此在USB固件程序中,最重要的工作就是USB描述符的定义和USB传输中断的处理。

  (1)USB描述符

  USB描述符是USB协议定义的一套描述设备功能和属性的固定结构的描述语言。USB2.0中的描述符包括设备描述符、配置描述符、接口描述符、端点描述符等8种标准描述符和其它一些非标准描述符。USB主机通过USB描述符完成设备类型的识别和配置,同时为设备提供相应的客户端驱动程序,运行于USB协议栈上层的客户端驱动程序通过这些信息来正确访问设备并与其通信,从而达到即插即用的目的。其中,配置中用到的两个端点描述符如表1所列。




点击看原图



    (2)USB中断服务程序的编写

  当USB中断到达时,C8051F320首先通过读取USB功能控制器的三个中断寄存器CMINT、IN1INT和OUT1INT来判断中断来源(USB复位中断、端点0中断、端点1输入中断、端点2输出中断),然后根据不同的中断来源跳入相应的处理模块以进行不同的中断处理,并在处理完毕后返回。

  其中,端点0是每个USB设备都必须支持的默认控制传输端点,主要用于主机对USB设备的配置、状态信息的获取和设备错误的纠正等,它的中断处理模块由控制输出和控制输入两部分组成。每次传输首先由设置事务开始,然后根据设置事务数据包中的USB标准命令请求判断该次传输是控制输入还是控制输出。由于作用和地位的特殊性和重要性,端点0中断处理模块是一个最为复杂的中断处理模块。结合C8051F320端点0控制状态寄存器E0CSR的特点和应用的具体需求,图3给出了该中断处理模块的流程图,主要是对控制传输中设置事务的分析和处理。


         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-4 22:55 , 耗时 0.082997 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表