本文介绍利用低成本PIC微控制器通过USB2.0全速桥接器芯片连接USB闪存盘之设计方法,其着眼于PIC微控制器及VNC1L智能型USB Host桥接器芯片之嵌入式接口的硬件设计,以及说明如何在PIC微控制器进行程序开发,使普遍存在的USB闪存盘能在广泛的嵌入式应用中作为卸除式的储存媒体。
背景简介
今日USB装置几乎无所不在,市面上充斥着各式各样的USB闪存盘和各种USB外围装置,由于这些装置大多是属于 USB Slave,应用领域也就局限在PC市场。近来USB闪存盘的价格快速滑落,刺激出新的应用,如何在原有产品上使用USB闪存盘成为许多公司的难点。想要在8与16位微控制器中增加USB Host的功能,设计过程、成本与功耗便成为了重要的考量因素。部份原因源自于这类系统使用的嵌入式控制器,目前尚缺乏适合的接口、资源、以及效率来连结USB Host控制器。
在此应用范例中,将以Vinculum VNC1L智能型USB Host桥接器IC做为一个例子,说明如何为系统控制器PIC16F688增加一个USB 2.0全速连结埠。使这个系统能连结USB闪存盘,并能在耗用最少的设计时间与资源下完成设计。
VNC1L简介
VNC1L为Vinculum家族的第一颗芯片。此智能型USB Host桥接器采用客制化的处理器,并搭配两个加速数据传输的直接内存存取(DMA)引擎及一个32位数值协同处理器,以达到最高的文件操作效率-且全部整合于一内置64Kbyteflash、以及4Kbyte内部数据SRAM的单一芯片中。Vinculum家族锁定嵌入式USB控制器市场,这类产品仅需少量外部支持组件。Vinculum家族核心的主要特点之一,就是其程序代码长度明显短于一般微控制器实现该功能代码的长度,而降低核心程序代码的资源后,将可使更多功能能得以收纳至芯片内部的e-Flash内存中。VNC1L可处理整个USB协议并内建12MHz 到48MHz 的时钟。这些特性恰巧与PIC嵌入式系统形成互补。图1为此系统之架构说明,其利用VNC1L连结一个小型PIC16F688 微控制器及USB Type “A”连结器,进而可连接USB闪存盘。
设计说明
此PIC16F688为系统控制器,由其通用I/O引脚(9、10、11引脚上的 RC1、RC0、RA2) 来取得传感器或其它来源的数据,并转换数据格式且将串流格式数据写入USB闪存盘的文件中,指令与数据系通过TXD(6号引脚)传送至VNC1L RXD (32号引脚)。VNC1L可处理FAT 12/16/32文件系统和储存在USB闪存盘的数据。VNC1L通过28号针脚的USB2DP和29号针脚的USB2DM与USB闪存盘进行通讯。通过相同的引脚,数据能从USB闪存盘存取,并从VNC1L TXD (31号引脚)传送到PIC的RXD(5号引脚),以供PIC程序使用。
PIC16F688上的程序控制整个系统,此外,由PIC16F688发出的指令控制其与VNC1L之间的传输作业。VNC1L的标准程序会解读并执行来自PIC16F688的指令。以上只是系统的简单介绍,若欲完成整个设计还需要更多的资源,而这些组件尚须电源、控制时钟的石英晶体以及程序设计。
运用PIC中第2与第3针脚的20 MHz晶体,让UART接口能达到比115200 bit/s更高的的波特率(baud rate),相对于使用内部8MHz振荡器最高仅能达到9600 bit/s,因此其能提升系统效率。PIC程序把RC2与RC3 I/O引脚模拟成RTS/CTS来与VNC1L的UART接口连接。
此时,系统需要5伏特/ 250mA的额定电源,其中对于USB “A”连结器提供200mA电流,并为VNC1L提供25mA电流,另25mA电流则用以供电PIC16F688。VNC1L所要求的3.3伏电压由3.3v LDO稳压器供应,其中尚有兼容5伏的IO口,能使其连接至PIC,而不需电位切换器。
针对低功耗应用,VNC1L在不使用时能切换至2mA休眠模式。如欲唤醒该组件,则可通过UART接口的响铃侦测(RI)引脚(38号引脚)达成;若其已连接至RXD线路,如图中所示,则可通过接续的伪指令来唤醒该组件。
此设计同样包含一个双色状态LED指示灯,其由16与18号引脚供电。当成功登录USB闪存盘及存取文件系统时,系统便将提出显示。
关键词:
连结
闪存盘
控制器
简单
方案
VNC1L
系统