C8051F320-GQR 代理热卖SiliconLabs传感器 无线和射频

地区:广东 深圳
认证:

深圳市英利盛电子有限公司

普通会员

全部产品 进入商铺

C8051F320 的主要特点

C8051F320 是由美国Cygnal 公司推出的C8051F 系列单片机中的一款用于USB 设备的小型单片机。该器件内部集成有2304 Byte RAM 和16K Byte 的Flash 存储器。由于利用该芯片进行设计时可以不需要任何外部元件(包括电阻和晶振),因而是小型USB 应用的理想选择。与其它同类USB 产品相比,C8051F320 主要具有如下一些特点:

① 满足 USB2.0 协议;

② 可在全速(12 Mbps)或低速(1.5 Mbps)下运行;

③ 集成有一个时钟源,对于全速或低速传输均可不用外部晶振;

④ 支持 8 个灵活通用的USB 端点;

⑤ 内置一个 1K 的USB 专用缓冲存储器;

⑥ 集成了一个 USB 接收器,不需要外部电阻。

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

2.2 C8051F320 的引脚及封装

C8051F320 的引脚排列如图1 所示,封装为TQFP-32。其中VDD 为数字电源;GND为模拟地;REGIN 为5V 校准器的输入端;RST/C2CK 为设备的复位引脚或EC2 调试接口的时钟信号;P3.0/C2D 为端口P3.0 或EC2 调试接口的双向信号引脚;VBUS 为USB 总线输入脚;D+为USB 的D+;D-为USB 的D-;P0.2/XTAL1 为端口0.2 或外部晶振输入;


P0.3/XTAL2 为端口P0.3 或外部晶振输出;P0.6/CNVSTR 为端口P0.6 或ADC0 外部转换开始输入脚;P0.7/VRFF 为端口P0.7 或外部参考电源的输入端或输出端;P0.0、P0.1、P0.4、P0.5、P1.0~P1.7、P2.0~P2.7 均为相应的端口引脚。

3 USB 接口电路设计

3.1 USB 接口硬件电路设计

由于 C8051F320 微控制器内部集成了一个USB 接收器,简单易用,因此,用它进行USB 接口的硬件设计也显得比较简单。主要包括两部分的内容,一是接口转换模块供电方式的选择,二是USB 引脚的连接。图2 是其USB 接口电路图。模块选择自供电模式,图2所示的整个模块的供电电源都来自外部5V 电源。C8051F320 中的USB 收发器内部已经集成了上拉电阻,不需要任何外部器件就可直接与USB 接口相连。


USB 设备固件程序是USB 设备必须实现的部分,它的主要目的是:当USB 设备连接到主机上时,主机可以发现新设备,然后建立连接并完成数据传输任务,也就是能够让上位机能够正常检测和识别USB 设备。因此,本固件设计的目的是使主机能够识别C8051F320设备,以及正确的与它进行通信。同时为了在USB 上达到最大的传输速度,C8051F320 固件设计成中断驱动。

C8051F320固件分为两个部分:前台主程序和后台中断服务程序(ISR)。在USB固件程序中,最重要的工作就是USB描述符的定义和USB传输中断的处理。USB描述符是USB协议定义的一套描述设备功能和属性的固定结构的描述语言。USB2.0中的描述符包括设备描述符、配置描述符、接口描述符、端点描述符等8种标准描述符和其它一些非标准描述符。USB主机通过USB描述符完成设备类型的识别和配置,客户端驱动程序通过这些信息来正确访问设备并与其通信。本文在对C8051F320的配置中除了端点0外还用到了端点1和端点2,它们的描述符如表1所示。


USB传输中断的处理也是一个重要的部分。传输中断的处理由ISR和前台主程序共同完成。这两部分的数据交换通过事件标志和数据缓冲区来实现[6]。当C8051F320的USB引擎从主机收到一个数据包时,就会产生一个中断请求,C8051F320立即响应中断,通过读取USB功能控制器的三个中断寄存器CMINT、IN1INT和OUT1INT来判断中断来源(USB复位中断、端点0中断、端点1输入中断、端点2输出中断),然后根据不同的中断来源跳入相应的处理模块以进行不同的中断处理,并在处理完毕后返回。其中,端点0是每个USB
设备都必须支持的默认控制传输端点,主要用于主机对USB设备的配置、状态信息的获取和设备错误的纠正等,它的中断处理模块由控制输出和控制输入两部分组成。每次传输首先由设置事务开始,然后根据设置事务数据不同的中断来源跳入相应的处理模块以进行不同的中断处理,并在处理完毕后返回。同时在ISR中,固件将数据包从C8051F320的USB引擎内部缓冲区移到一个自定义的数据缓冲区,并在随后请求清零其内部缓冲区,以使其能够继续接收新的数据包。然后返回到主循环,检查自定义缓冲区内是否有新的数据并开始其它的任务。由于这种结构,主循环只用检查自定义缓冲区内需要处理的新数据,专注于新数据的处理,而ISR也能够以最大速度进行数据的传输。这样,程序对USB的操作更加简单,也便于程序的维护。主程序和端点0的控制传输程序流程分别如图3、图4所示。端点1和端点2的程序流程与之类似。

型号/规格

C8051F320-GQR

品牌/商标

Siliconlabs

内存大小

8位

封装

LQFP32

批号

17+