当前位置:首页 > 电源 > 数字电源
[导读]随着USB技术的快速发展以及USB外设在越来越多场合的广泛应用,支持USB接口技术的芯片也越来越多。对于USB接口的设计,如非扩展之用,选用带有MCU的USB控制器当然是设计师

随着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所列。

表1 端点描述

偏移量域大小
(字节)端点描述符1端点描述符2数值说明数值说明0bLength10x07描述符字节数0x07描述符字节数1bDescriptorType10x05端点描述符类型0x05端点描述符类型2bEndpointAddress10x81端点地址:端点1 IN0x02端点地址:端点2 OUT3bmAttributes10x02传输类型:批量传输0x02传输类型:批量传输4wMaxPacketSize264最大数据包64字节64最大数据包64字节6bInterval10x05/0x05/

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

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

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


USB复位中断的主要作用是将相关USB变量、寄存器和各端点的状态恢复为初始状态(需要注意的是:复位后,端点0为空闲状态,端点1的 IN和端点2的OUT为暂停状态)。端点1输入中断和端点2输出中断均为批量传输中断,其主要作用是在收到中断时,在各自预先定义好的缓冲区中写入要传输给主机的数据或取走主机传输过来的数据,实际上,这是C8051F320 读写USB缓冲区的过程。

4 结束语

随着USB技术的日益成熟,越来越多的测控设备趋向于引入USB总线接口技术或者只提供USB外接接口,所以设计一种USB接口到测控网络总线的接口转换模块非常必要。文中给出的这种USB和CAN总线的接口转换模块就是立足于这类需要而进行的一项前期研究工作,该方案具有较强的实用性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

在这篇文章中,小编将对usb的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: USB USB隔离诊断

今天,小编将在这篇文章中为大家带来Type-C接口的有关报道,通过阅读这篇文章,大家可以对Type-C接口具备清晰的认识,主要内容如下。

关键字: Type-C USB

一直以来,Type-C接口都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来Type-C接口的相关介绍,详细内容请看下文。

关键字: Type-C USB

随着科技的飞速发展和智能手机的普及,USB调试模式已成为许多科技爱好者和开发者不可或缺的工具。通过USB调试模式,用户可以连接手机与电脑,实现数据传输、应用安装、系统调试等多种功能。本文将深入探讨USB调试模式的打开方法...

关键字: USB 智能手机

USB 2.0与USB 3.0到底有什么不同,今天来深入探索两者之间的区别。随着科技的不断进步和设备的不断升级,USB接口作为连接设备的重要桥梁,也在不断发展。USB 2.0和USB 3.0是两种广泛使用的USB接口标准...

关键字: USB 智能手机 USB 3.0

随着科技的飞速发展,智能手机已成为我们日常生活中不可或缺的一部分。作为手机与电脑或其他设备之间的桥梁,USB(通用串行总线)连接在我们的日常生活中扮演着重要的角色。本文将深入探讨USB如何连接手机,并详细介绍USB连接手...

关键字: USB 智能手机

虽然 USB 几乎完全取代那些旧电缆和连接器,但 UART 绝对不会成为过去。您会发现许多 DIY 电子项目都使用 UART。

关键字: UART 串口通信 USB

USB(Universal Serial Bus)是一种通用的串行总线标准,它被广泛应用于连接计算机及其外部设备。USB通信系统具有以下特点:

关键字: USB 串行总线 计算机

USB Type-C接口将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对它的相关情况以及信息有所认识和了解,详细内容如下。

关键字: USB Type-C
关闭
关闭