USB闪存盘驱动器与PIC微控制器的接口设计
扫描二维码
随时随地手机看文章
VNC1L为Vinculum家族的第一颗芯片,它采用定制化处理器,并搭配两个加速数据传输的直接内存存取(DMA)引擎和一个32位数字协同处理器,以达到最高的文件操作效率。它还在单一芯片中集成了64kB e-Flash和4kB内部数据SRAM。Vinculum家族锁定嵌入式USB控制器市场,这类产品仅需少量外部支持元件。Vinculum家族核心的主要特点之一,是其程序代码长度明显短于一般微控制器实现该功能所需代码的长度。这样,减少核心程序代码的资源后,便可让更多功能代码保存芯片内部的e-Flash内存中。VNC1L还能处理整个USB协议并内建了12MHz到48MHz时钟。这些特性与PIC嵌入式系统形成互补。在如图所示的电路中,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程序使用。
驱动器与PIC微控制器的接口电路。 src="/upload/2008_05/080504101888771.jpg" border=0> |
图:USB闪存盘驱动器与PIC微控制器的接口电路。 |
PIC16F688内的程序控制整个系统。此外,由PIC16F688发出的指令控制其与VNC1L之间的传输操作。VNC1L的标准程序会解读并执行来自PIC16F688的指令。以上只是系统的简单介绍,若欲完成整个设计还需要更多的资源,而这些组件尚须电源、控制时钟的石英晶体以及程序设计。
利用PIC中第2引脚与第3引脚的20MHz晶体能让UART接口能达到比115,200bps更高的的波特率,而使用内部8MHz振荡器最高仅能达到9,600bps,因此该设计能提升系统效率。PIC程序把RC2与RC3 I/O引脚模拟成RTS/CTS来与VNC1L的UART接口进行连接。
该系统需要额定5V/250mA电源,其中对USB"A"连接器提供200mA电流,并为VNC1L提供25mA电流,另外25mA电流则供给PIC16F688。VNC1L所要求的3.3V电压由3.3V LDO稳压器提供。它具有兼容5伏的I/O口,能使其连接至PIC,而不需电位切换器。
针对低功耗应用,VNC1L在不使用时能切换至2mA休眠模式。如欲唤醒VNC1,可通过UART接口的响铃侦测(RI)引脚(38号引脚)实现,若它们已连接至RXD线路,则可通过连续的伪指令来唤醒。
此设计同样包含一个双色状态LED指示灯,由16与18引脚供电。当成功登录USB闪存盘及存取文件系统时,系统便给出显示。
VNC1L与PIC程序开发
VNC1L内部固化有标准的程序,名为VDAP。该程序能解读从PIC传来的指令。这些指令类似DOS指令,如DIR、RD、以及WR等,指令集亦支持单一字节的hex指令,更适合由微处理器进行控制。位于PIC程序中的VDAP指令可用来控制USB闪存盘的存取操作。典型的指令顺序为建立文件、读/写数据至文件、关闭文件。
该设计包含两个烧录程序的接头,各个接头分别支持器件所需要的开发环境。在产品设计环境中,每个器件可以在被焊在印刷电路板前被预先烧录,因此不需接头与连接器。
在正常运作模式中,J1与J2应接上,其它连接器应为开路状态。VNC1L在烧录时需移除J1与J2的连接器,以隔离VNC1L UART的输入端和PIC输出端,然后切断5伏特电源,将TTL-232R-3V3线连接至H2。通过已安装的VPROG程序工具,把线路的USB端连接到PC,之后接上J4连接器,将VNCL1A的PROG#引角拉低,让J3暂时短路以重设器件,并切换至烧录模式。完成烧录后,应将连接器设定操作模式。
英商飞特帝亚有限公司(FTDI)在网站上(http://www.vinculum.com/projects/SampleCsource.zip)提供关闭文件后,USB闪存盘便可移除。