基于C8051F38x和C8051T62x主控器件的USB MCU解决的方案
原标题:显著减少组件数量的USB MCU解决的方案
USB在工业和消费领域的快速普及对于嵌入式方案设计者在保持或者降低总成本的基础上进行USB连接的设计是一种挑战。早期版本的基于USB的MCU被开发出来以便增加USB功能,但它们缺乏支持其他功能和设备的能力。在USB应用的初期,这些设备在推动USB接口的全面普及起到了关键作用,即使是在今天,采用这些桥接设备来快速添加全速USB接口依然是一种有效的解决方案,并且避免了重新设计整个系统。然而,对于对成本敏感的应用,这种方案可能不是很理想。
为了克服成本高的缺点,新一代的基于USB的MCU集成了更多的功能和外设。然而,尽管基于USB并且与不同的外设进行组合的MCU的数量在显著的增长,但是与那些不仅正确组合了外围设备,并且确保了这些功能足够强大以支持关键应用的要求的高集成度解决方案相比还是存在着差距。尽管应用的需求高度依赖于最终产品的特性和功能要求,但有三个领域是大多数应用都感兴趣的。
首先要探讨的领域是MCU的性能以及当USB作为一个外设被集成了以后,对MCU性能的影响;第二个需要考虑的领域是在与真实世界信息交互中起到重要作用的模拟功能以及外设;最后(还要考虑的领域是成本),而无需外部元件的USB的实现对于目前几乎每一个都是成本敏感的应用来说是非常需要的。
大多数情况下,CPU负责执行用户代码,而且其执行指令以及处理数据的实时性是极为重要的。一个典型的低成本USB控制器集成了一个先入先出(FIFO)功能模块用于缓存收到和即将发出的USB数据包,而MCU除了从FIFO中读取或向FIFO中写入这些数据,还要执行其他的任务。
CPU性能和USB功能之间的相互影响
让我们来分析下一个USB转串口桥接的应用中,MCU的性能会受到怎样的影响。在此桥接的应用中,假设要求是将一个基于UART的设备桥接到一个基于USB的系统中。在最底层,CPU应该具备能够从UART接口(UART FIFO)中读取数据并将数据写入到USB FIFO中的能力,反之亦然。但是,如果此应用中需要执行其他的简单功能,如扭转数据包的端顺序,或者复杂的功能,如应用到软件滤波等,那么这些本来是很简单的应用,就突然变的复杂起来,需要特别注意进行妥善的处理,给CPU造成了更大的负担。
一个典型的协议桥接是希望在两个设备间几乎是实时的传输数据,因此CPU需要有必要的性能来在一个可接受的延迟范围内进行数据的读、写及处理。Silicon labs的C8051F38x和C8051T62x USB MCU系列是低成本USB解决方案中的一个很好的例子,它具备高速的51内核,70%的指令能够在一个或者两个时钟周期内执行完成。这种类型的MCU性能不仅足以满足协议桥接应用的需要,并且能够满足大多数其他全速USB的应用,同时具有另外一个好处,就是高速的CPU在更短的执行时间内能够完成更多的工作,反过来,可以通过使系统保持在低功耗模式下来降低整体的功耗,如图1所示。
图1 高性能的MCU允许系统在低功耗模式保持更长的时间
【C8051F38x】
C8051F38x系列
C8051F380/C8051F381/C8051F382/C8051F383/C8051F384/C8051F385/C8051F386/C8051F387/C8051F38C
Analog Peripherals
- 10-Bit ADC (C8051F380/1/2/3/C only)
• Up to 500 ksps
• Built-in analog multiplexer with single-ended and
differential mode
• VREF from external pin, internal reference, or VDD
• Built-in temperature sensor
• External conversion start input option
- Two comparators
- Internal voltage reference (C8051F380/1/2/3/C only)
- Brown-out detector and POR Circuitry USB Function Controller
- USB specification 2.0 compliant
- Full speed (12 Mbps) or low speed (1.5 Mbps) operation
- Integrated clock recovery; no external crystal required for full speed or low speed
- Supports eight flexible endpoints
- 1 kB USB buffer memory
- Integrated transceiver; no external resistors required On-Chip Debug
- On-chip debug circuitry facilitates full speed, non-intrusive in-system debug (No emulator required)
- Provides breakpoints, single stepping, inspect/modify memory and registers
- Superior performance to emulation systems using ICE-chips, target pods, and sockets Voltage Supply
Input: 2.7 to 5.25 V
- Voltages from 2.7 to 5.25 V supported using On-Chip Voltage Regulators High Speed 8051 μC Core
- Pipelined instruction architecture; executes 70% of instructions in 1 or 2 system clocks
- Up to 48 MIPS operation
- Expanded interrupt handler
Memory
- 4352 or 2304 Bytes RAM
- 64, 32, or 16 kB Flash; In-system programmable in
512-byte sectors
Digital Peripherals
- 40/25 Port I/O; All 5 V tolerant with high sink current
- Hardware enhanced SPI™, two I2C/SMBus™, and two
enhanced UART serial ports
- Six general purpose 16-bit counter/timers
- 16-bit programmable counter array (PCA) with five capture/compare
modules
- External Memory Interface (EMIF)
Clock Sources
- Internal Oscillator: ±0.25% accuracy with clock recovery
enabled. Supports all USB and UART modes
- External Oscillator: Crystal, RC, C, or clock (1 or 2 Pin
modes)
- Low Frequency (80 kHz) Internal Oscillator
- Can switch between clock sources on-the-fly
Packages
- 48-pin TQFP (C8051F380/2/4/6)
- 32-pin LQFP (C8051F381/3/5/7/C)
- 5x5 mm 32-pin QFN (C8051F381/3/5/7/C)
Temperature Range: –40 to +85 °C
【C8051T62x】
C8051T62x/T32x USB 微控制器
对于要求、健壮的模拟和数字外围设备和高性能处理能力的成本敏感型应用来说,C8051T62x/T32x 的基于 EPROM 的存储器系列是理想之选。USB MCU 具有一个板载完全集成的通用串行总线 (USB) 2.0、控制器和收发器。无需外部电阻、晶体振荡器或稳压器。最优的片上模拟外媒设备包括一个高达 500 Ksps 的多通道高性能 ADC、比较器和内部参考电压(还有非 ADC 版本)。
Silicon Labs 的 USB 微控制器 (MCU) 包括一个嵌入式全速 USB 2.0、行业最佳的模拟外围设备和一个高性能 CPU。此外,USBXpress 开发套件还可以提供完整的主机和设备软件解决方案。
特点
48 MIPS 8051 CPU
8-64 kB EPROM 存储体
1280-3328 B RAM 存储体
全速 USB 2.0
256 B 或 1 kB USB 缓冲存储器
高达 500 Ksps 的 10 位多通道 ADC(可选)
两个比较器(可选)
内部参考电压
SPI
SMBus/I²C
两个 UART
四个 16-位计时器
16-位可编程计数器阵列
C8051T62x/T32x 产品矩阵
通用规格
MCU 内核:8051 MHz:48 USB:是 电容式感应:否 计时器(16 位):4 PCA 通道:5 比较器:2 状态NRND显示
系列
C8051T320-GQ
C8051T322-GQ
C8051T323-GM
C8051T326-GM
C8051T327-GM
C8051T620-GM
C8051T621-GM
C8051T622-GM
C8051T623-GM
C8051T626
集成模拟功能的USB解决方案
模拟功能及外设,如模拟-数字转换器(ADC)和比较器,通常在很多应用中被使用。例如,从最基本的电池管理实现到复杂的数据采集系统中的高速传感器接口,ADC和比较器都必不可少。为了支持这样广泛的应用,必须具备一定性能的ADC和比较器来实现这些不同的要求,同时能够以较低的成本集成到USB MCU内。
例如,很多Silicon Labs的USB MCU片上都集成了高性能优化的ADC,这些ADC具有500Ksps的转换速率,同时具备跟踪和保持的特性以使得在每次AD采样转换都能够插入特定的时钟周期。例如,在每次转换开始信号后,插入3个ADC时钟周期的跟踪期然后开始转换。这种模式对于多通道的AD采样非常有用,因为这提供了合适的稳定时间(使得能够在通道切换完成并稳定后)来进行精确的AD转换。另外,一个可编程的窗口检测功能可以被用来比较ADC输出寄存器与用户编程的阀值,这一功能特别适用于那些可以由用户来设置低电池电压触发警报的电池管理应用中,并且由于这个过程无需CPU的干预,消除了触发警报的短延时,这样进一步增强了这类电池应用的安全性。
图2:ADC跟踪模式
比较器提供了另外一个被在众多应用中被广泛使用的模拟功能。典型的设备,如血糖仪,其中一个比较器用于检测测试条的插入,或者如胰岛素泵,需要一个快速的关断机制来防止电机堵转。在这两个例子中,同很多其他应用一样,比较器的响应时间以及功耗是关键,然而传统的基于USB的设备,对这些比较器有一个比较宽松的规范,而Silicon labs的C8051F38x和C8051T62x/32x系列提供了一个具有可编程响应时间,最低至100ns的比较器,同时功耗也可由用户来选择,最低至1uA。从这些方面可以看出,这些集成在MCU内的设备与那些典型的独立模拟IC相比,也能达到相应的模拟性能。集成了高性能模拟外设的USB MCU能够替代外部模拟芯片,提供一个低成本、单芯片的解决方案。
集成的USB MCU解决方案的优点
集成的USB MCU解决方案可能需要以不同的方式来考虑如何设计最优成本的系统。例如,在一个设计中添加USB,则有可能对原有的时钟树系统造成很大的影响,为了确保可靠的USB连接,至关重要的是,USB时钟的精度要得到保障和维持。典型的USB MCU要求设计人员增加外部晶体和相关组件,以满足USB时钟的精度要求,这种方法不仅增加了解决方案的成本,同时也增加了PCB设计的复杂性和总体尺寸。另外,通常需要一个外部终端电阻来识别USB的速度(低速、全速或者高速),从而进一步增加了USB实现的成本。
集成在C8051F38x和C8051T62x 全速USB MCU内的时钟恢复特性是一个优秀的创新特性,它省去了通常其他USB MCU需要的外部晶振,通过使能内部时钟并根据输入的USB数据流来调整内部时钟,以满足USB对时钟精度的要求。除了通过去除外部元件来实现成本的降低外,去掉外部晶振的同时也带来了另外一个好处,即显著的降低了与时钟噪音相关的电磁干扰。此外这种解决方案集成了完全可由软件控制的终端电阻。消除外部晶振及相关组件,并集成终端电阻是一个重大进展,帮助设计人员降低了USB系统设计的成本及复杂性。
通常与USB设计相关的另一个挑战是复杂和耗时的软件开发,USB驱动程序和代码实例的可用性可以帮助克服这一障碍,并大幅缩短开发时间。例如,Silicon Labs的USB MCU开发工具套件包括调试主机和设备的USB驱动,使用这些开发套件并不需要USB协议或者主机驱动程序相关的专业知识,从而能够快速简单的实现USB应用。
USB连接是很多嵌入式应用的关键要求,高集成度的USB MCU解决方案,不仅提供最简单的途径来实现USB连接,并且提供了集成模拟特性的高性能MCU,从而帮助减少了组件数量以及BOM消耗。USB MCU解决方案在降低成本的同时大幅简化了嵌入式系统开发人员的设计。
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
MCU同温度传感器之间通过I2C总线连接。I2C总线占用2条MCU输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根I2C总线上可以同时连接8个这样的传感器。本方案中,传感器的7位地址已经设定为1001000。MCU需要访问传感器时,先要发出一个8位的寄存器指针,然后再发出传感器的地址(7位地址,低位是WR信号)。传感器中有3个寄存器可供MCU使用,8位寄存器指针就是用来确定MCU究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。
要读取传感器测量值寄存器的内容,MCU必须首先发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。
为了读出传感器测量值寄存器中的16位数据,MCU必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量精度为9位,分辨力为0.5 C/LSB(量程为-128.5 C至128.5 C)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 C就可以满足要求了。这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 C的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,第一是可以缩短MCU和传感器的工作时间,降低功耗;第二是不影响分辨力指标。
MCU读取传感器的测量值后,接下来就要进行换算并将结果显示在LCD上。整个处理过程包括:判断显示结果的正负号,进行二进制码到BCD码的转换,将数据传到LCD的相关寄存器中。
数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。
责任编辑:Davia
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。