在过去的几年间,通用串行总线(USB)已经让连接个人计算机与计算机外设变得越来越容易,它以低成本、易于采用与稳定的接口来传输数据,已经成为多种产业都可接受的方式,如同UART与RS-232通信协议在20世纪末期主宰着嵌入式系统的串行数据接口一样,USB无疑地已经是21世纪的嵌入式系统的标准串行接口。
相较于RS-232,负责实行的工程师在想要实行USB接口时,仍在这个过渡时期需要额外的专业知识与需求而面临着一些阻力,许多嵌入式系统工程师对位、定时器、端口输入/输出(I/O)与模拟到数字转换器(ADC)都相当熟悉,但对DLL、元器件规格、Windows驱动程序,以及对遵守USB.org的注册授权与互通性准则都面临着一些困扰。
Silicon Laboratories针对要达成完整的“元器件到产品”目标所面临的这些挑战,将实行USB接口加以简化,以便让工程师能够专注在嵌入式系统的设计工作上,通过结合了广范围的具备USB功能的微控制器,以及合适的硬件与软件开发工具,搭配参考设计、应用注记与软件模板,Silicon Laboratories提供工程师在进行开发快速设计创新、高度整合产品时所需的一切。
高度集成的USB微控制器概述
C8051F34x是Silicon Laboratories最新推出可提供USB功能的混合信号微控制器的高度集成产品系列,它包含了高速管线的8051兼容微控制器核心,可以高达48 MIPS的速率运作,高达64 kB的芯片内建闪存与5376字节的RAM,70%的指令可以在一个或两个机器周期中执行,可以获得同等级中最佳的CPU传输率,集成的外部存储器接口可以提供除了芯片内RAM之外的额外资料存储,提供了结合外围更具效率的模式,核心包括了为系统开发提供了一个芯片内、全速的、非侵入式调试器,不需成本高昂的仿真器或标头配接器,芯片内的电压调节器允许微控制器直接从USB端口或从独立的电源供应器取得电源,有效的运作电压范围从2.7V~5.25 V,可以适用于广泛多样的应用领域。
USB功能控制器具有完整的USB 2.0认证,支持全速与低速操作并包含一个控制端点、6个具弹性的端点管线,与一个整合式收发器及1 kB的FIFO XRAM。内部的电压调节器可让微控制器从总线取得电源,而不需外部元器件所产生的额外成本与负担,内部精准校正的12 MHz振荡器与4倍时钟倍加器( Multiplier )都可以支持所有的USB时序需求,此外也提供一个内部的低频振荡器 ,可以动态地选择做为主要的时钟来源,以在USB待机模式下进一步地节省电源。
模拟外围包含一个真正10位200 ksps差分或是具有模拟多任务器的单端ADC,可以支持高达17个外部差分模拟输入,芯片内的参考电压消除了对独立外部参考电压的需求,而且内建一个温度传感器,精准度达到±3℃,也包含了两个异步电压比较器,可以同时支持可编程响应时间与磁滞。
数字外围包含一个SMBus、两个UART与一个增强型SPI模块。时序功能可以通过4个通用型16位定时器或一个5个通道的可编程计数器/定时器数组(PCA)模块来达成。在此有5个全功能端口可以提供40个可控制的I/O线路,全部都具有5 V的容差。系统的可靠性特色包括一个看门狗定时器、整合式启动重置、一个供应电源监视器与一个遗失时钟侦测器。
C8051F340真正地提供单芯片系统的集成,减少了不需要的成本与增加外部元器件所产生的相关问题。
USB串行接口引擎(SIE)
具备USB功能的微控制器的最重要特色是具有SIE。C8051F340相较于其它供货商具有其独一无二的特色,因为它的架构相当健全,并可完全地通过SIE来实行。C8051F340的SIE完全通过了USB 2.0认证,具备全速(12 Mbps)或低速(1.5 Mbps)功能,并包括一个集成式收发器与端点FIFO XRAM。接口架构由一个控制端点(端点0)与由3个成对的输入/输出端点(端点1到端点3)所组成的6个弹性化端点所构成,端点1到端点3支持大量、可中断与同步传输形式,在3个端点管线的任一个传输方向都有最大的传输效率。一个1 kB的RAM区块被用于做为USB的FIFO空间,并在各个端点之间进行分布。端点1~3的FIFO端口可以被配置为输入、输出或同时做为输入与输出,这也被称为“分离模式”( Split mode )。每个独立端点的最大FIFO大小为512字节,任何未使用的FIFO内存都可以被用于做为额外的系统内存来使用。所有上述的这些功能与系统弹性在实行嵌入式USB系统时均相当有用。
一个内部的4倍时钟倍加器与独立的时钟恢复电路均可以在全速与低速选项下实行,使用芯片内的精准振荡器 做为USB的时钟来源,外部振荡器 来源也可以使用4倍时钟倍加器来产生USB时钟,CPU时钟来源可以独立于USB时钟,这可以对系统增加额外的弹性,内部时钟不需要与标准的USB时钟频率相同,当在对电源与效能进行抉择或是遇到标准的USB时钟频率与核心应用不一致时,将可提供简易的解决方案。
USB收发器通过了USB 2.0认证,并包括了芯片内阻抗匹配与内部上拉电阻器,上拉电阻器可以在软件中被启用或停用,且依据软件所选择的速度设定(全速或低速)将显示在D+或D-接脚上。
就算是需要USB连接能力的最具挑战性嵌入式项目,C8051F340也包括了所有要达成目标所需的一切功能,然而,具备了强大的微控制器仅仅是第一步,强大的硬件与软件开发工具的搭配,才是整个项目能否成功最重要的要素。
支持的硬件与软件开发工具
所有的Silicon Laboratories的USB微控制器都具有独一无二的硬件开发套件,C8051F340-DK是针对所有不同的C8051F34x产品系列的开发平台,这个套件同时包括了硬件目标板,以及做为在个人计算机上执行集成式开发环境(IDE)与芯片内非侵入式除错接口之间的桥梁的USB串行接口配接器,一旦使用USB串行接口配接器来连接在目标板上的元器件时,便可以立即开始为系统开发固件。
IDE是由全功能的开发平台所构成,所有您在除错器中预期的功能都包括在Silicon Laboratories的IDE之中。独立式的缓存器映像图与内存窗口可让您检查您的系统的目前状态,单一周期的硬件断点可让您暂停MCU,检查机器运行状态。定制化的观察窗口可让您检查任何变量的值,甚至是更详尽的数据架构内容,例如指针器(pointers)与数组。
直觉的使用界面包括一个专业的文字编辑器与可靠的管理界面,项目可以用档案与工作空间(workspace)两种方式来进行管理,IDE可以与业界公认的8051 C语言编译器如Keil、Raisonance、Tasking、SDCC、Hi-Tech与IAR完全兼容。
此外,Silicon Laboratories还为常用的USB和各种设备提供它的客户主机与设备的源代码例子。这些例子包括:大量(Bulk)传输、同步(Isochronous)传输和中断(Interrupt)传输等类型以及人机接口设备(HID)、大容量存储设备(MSD)与USB音频设备等。这可让设计师建构他们的系统与标准的主机操作系统之间的接口,而不需要进行定制化的驱动程序开发,这种具备随插即用、不需安装磁盘的特性,对设计师与终端产品使用者都同样具有吸引力。USB驱动程序开发的另一个替代方法是使用USBXpress配置公用程序,这个不需成本的软件包可以提供最简单的免权利金方法来达到“大量的”(Bulk)数据传输,固件与Windows主机驱动程序都包含在内,这是一个仅需15分钟便可开箱即用的嵌入式解决方案,可方便地进行快速原型与概念验证。
包含在支持数据中的还有USB“启动加载器”(boot-loader)的源代码,这可以提供一个简易的机制来进行现场重新编程能力──这是几乎每个嵌入式系统都会需要的功能。这种可在现场进行固件升级的能力可以缩短产品的上市时间,延伸产品的生命周期,以及让嵌入式系统的供货商可以让他们先前未能拥有新功能的客户提供额外的特性。
真实范例:
具备嵌入式数据输入器的大量存储装置
想要展示如何将所有的这些系统建构模块在一起运作,Silicon Laboratories使用C8051F340-DK与一个扩展板(TB5)来建立一个嵌入式数据输入器范例,可以提供Compact Flash(CF)、SD与MMC内存接口,这个USB大量存储装置(MSD)的规格架构是直接用C8051F340来实行,在实行USB MSD时不需额外的个人计算机装置驱动程序或软件,大多数现今的操作系统在板上都有这种等级装置的标准装置驱动程序,在任何现代的操作系统上的任何档案管理器都可以用来存取这个装置。
整个实行仅需要23%(1031字节)的RAM资源,以及27%(17382字节)的可用程序内存,仍然留下大量的资源供嵌入式应用的其它功能来使用,这也可以进一步进行最佳化,以及针对特定应用的需求来重新定义,更进一步缩减所需的内存空间。
存取档案系统的内容可以通过两种方式来达成:个人计算机模式或装置模式。在个人计算机模式,系统通过USB总线来连接到主个人计算机,主机的操作系统可以通过SCSI命令来管理在存储卡上的档案系统,系统兼容于Windows 2000、XP、Mac OS X与Linux 2.4.7。在装置模式,目标板并未通过USB来连接,但通过在微控制器上两个可用UART中的一个来进行串行连接,在这个模式中,C8051F340是交由档案系统管理来负责。
在个人计算机模式中,系统的作业方式是类似于一个通过实体存储卡连接到TB5来定义USB存储卡的内存容量,将它连接到个人计算机系统将让操作系统抓到一个新的磁盘驱动器,通过档案管理员可用大家熟悉的方式来显示,操作系统将让这个磁盘驱动器的作业方式就像任何在系统中的其它磁盘驱动器一样,可以浏览、搜寻、重新命名、拖移与放置,甚至支持在网络上分享磁盘驱动器,因为它将被操作系统视为与任何其它的磁盘驱动器一样地对待。
当系统采用装置模式时,这个参考设计的真正价值才能够被体现出来,在这个例子中,微控制器执行这些工作并从管理档案系统获得效益,仔细想想,您的8位嵌入式系统现在也可以存取超过1 GB的非易失性数据存储装置,想要阐述这个特性,一个温度登记功能也包含在这个固件模板之中,启动这个功能将可让微控制器记录下它的内部温度,它是由在C8051F340中的整合式温度传感器所回报,并将其写入存储卡的一个文字文件之中,这个结果档案可以被微控制器或个人计算机来存取或操作。
温度数据输入功能仅是做为一个范例,在嵌入式领域中有许多其它应用会需要这种形式的档案系统能力,维护多重的固件修订、存取大型数据库或检索表,以及能够支持广泛的非易失性数据存储器领域的能力,正好有一些应用可以从这个诉求中得到效益。
Silicon Laboratories提供所有所需的技术文件,来协助工程师在他们自己的系统中实行这个功能,电路图、印制电路板布线图、材料表、C语言源代码固件与项目文件都完全免费提供,其它详细的USB参考设计还包括一个HID最佳实践应用注记与一个USB-FM调谐器参考设计。
卸下对嵌入式USB设计的畏惧感
Silicon Laboratories提供的不仅是一个具有USB功能的微控制器,它们提供的是实行USB嵌入式解决方案的一个经过验证之路,高度集成的C8051F340搭配了一组低成本的开发板与功能丰富的IDE,设计师可以依据已经建构好的主机与装置的软件范例来建立USB连结能力,具备USB特性的参考设计与应用注记可以为许多嵌入式系统提供设计准则,这将可加速与简化USB连结能力的实行,提供设计师他们真正的需求:花更多时间专注在他们的核心应用。