基于PIC微控制器和Vinculum USB接口芯片的硬件设计及其编程,使USB闪存驱动可做为各种嵌入式应用中的可移动存储。现在有带低成本闪存驱动和各种USB外设的USB接口,但是多数是集中在PC市场。把这些外设用在8位和16位嵌入式市场,其成本和功耗成为主要的考虑因素。
做为嵌入式系统中的嵌入式控制器,如PIC系列控制器,虽然具有丰富的存储器和外设,但缺少USB主控制器所具有的接口、资源和性能。在本实例应用中,Vinculum的控制器VNCIL提供PIC(做为系统控制器)和USB2.0全速口之间的接口。这可以最少的时间和开销实现USB闪存驱动连接
VNCIL
Vinculum的VNCIL控制器是基于定制处理器芯核,它有双直接存储器存取(DMA)引擎来加速数据传输以及使文件系统计算最佳化的32位协处理器。在单芯片上带有64Kbytes嵌入式闪存程序存储器和4Kbytes内部数据SRAM。此芯片的目标是嵌入式USB控制器市场和需要最少外部支持元件的用户。
此芯核的一个关键特性是码长与一般MCU芯核相比有显著的缩短。芯核码开销的降低可使更多功能压缩进片上闪存中。此特性是对PIC基嵌入式系统的补充。可以用此芯片连接一个小的PIC MCU到USB(A)连接器,从而到USB闪存驱动(见图1)。
USB2DM和USB2DS(28引脚和29引脚)处理在USB闪存驱动中的FAT12/16/32文件生成和数据存储与驱动之间的通信。通过相同引脚系统固件从闪存驱动读数据和从VNCIL的TXD(引脚31)送数据到PIC的RXD(引脚5)。
PIC固件控制系统靠PIC发出的指令控制传输和Vinculum的标准固件。虽然这是一个简单的系统,但完成设计要有更多的要求。器件需要电源、控制时钟的晶振,而且器件需要编程。
晶振
用20MHz晶振可使PIC的VART接口波特率高达115200bit/s,这比用内部8MHz振荡器达到的最高9600bit/s,改善了系统性能。用PIC固件的I/O引脚RC2和RC3仿真与VNCIL的VART接口的RTS/CTS交换信号。
需要1个5V稳压电源装置,提供250mA电流,其中200mA提供给USB‘A’连接器,25mA供电VNCIL和25mA供电PIC 16F688?。VNCIL需要3.3V电源(由3.3V LDO稳压器提供),而且具有5V容限的I/O引脚,使其与PIC连接不用电平转换器。
对于低功率应用,在不需要时可以置VNCIL进入2mA休眠模式。选通UART的RI引脚可唤醒器件。假若连接到RXD线,则可以用输入的空命令触发来唤醒器件。
此设计也包括双色状态LED指示器(由16和18引脚供电)。它指示USB闪存驱动的成功枚举和文件系统的存取。
VNCIL固件
用标准固件VDAP(Vinculum Disk and Peripheral)编程VNCIL,VDAP解释来自PIC的命令。这些命令是DOS类指令,如DIR、RD和WR。命令集也支持更适合于处理器控制的单字节十六进制命令。包含在PIC固件中的VDAP命令,控制到USB闪存驱动的存取。一个典型的序列是:生成文件,读/写数据到文件,然后关闭文件。
VNCIL和PIC编程
此设计包含两个编程插头,假定每个器件是所希望的开发环境。对于产品设计,这两个器件在插入PCB前可以预先编程,然后去掉插头和跳线。
在正常工作期间应接通跳线,而其他跳线断开。为了编程VNCIL,J1和J2跳线应断开以隔离来自PIC输出的VNCIL UART输入。断开5V电源,连接TTL-232R-3V3缆线到H2。此缆线的USB端连接PC。J4使VNCIA的PROG#引脚为低态,而J3暂时短路使器件复位,置器件进入编程模式。编程之后,跳线设置必须恢复到工作位置。
PIC的编程插头连接到器件的RA0、RA1和MCLR#,通过此插头为器件提供5V编程电压。在编程PIC微控制器前断开5V电源装置。插头应连接到一个标准PIC开发环境,如PICKit2,允许用调试和下载工具。
结语
Vinculum的VNCIL提供低成本微控制器和USB2.0低速/全速外设之间的易用、易编程接口。DOS类命令集使得在微控制器环境下容易写和高度数据传输程序。这使得价廉、普遍存在的USB内存驱动可做为系统的数据存储媒体并能在现场提供软件升级。VNCIL器件也可以用于连接大容量存储器件的很多其他USB外设。
图1 USB内存驱动到PIC微控制器的接口
图2 Vinculum架构
责任编辑:glisten
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)