作为现今普遍接受的移动存储工具,USB闪存盘在各种嵌入式系统中也获得广泛应用。本文介绍低成本PIC控制器通过USB2.0全速接口与闪存盘进行连接的实现过程,并着重针对PIC微控制器和VinculumUSB接口芯片说明有关嵌入式接口的硬件设计以及程序的编写。
如今各种闪存盘和USB外设价格已相当低廉,并被广泛应用到带USB接口的PC中.而要将它们应用于8位或16位嵌入式系统中,如何解决成本和功耗等问题才是关键.这其中的原因主要是这类系统中用到的嵌入式控制器,如Microchip公司推出并得到广泛应用的PIC系列器件具有多种存储密度和外设,但由于缺乏接口、资源和性能,无法作为USB的主控制器。
在实际应用中,可用VNC1LVinculum控制器来实现这种连接,该芯片提供了作为系统控制器的PIC和USB2.0全速端口之间的接口,顺利实现与USB闪存盘的连接,同时该方案具有很短的执行时间和最小系统成本。Vinculum基于定制处理器内核,有两个直接存储访问(DMA)引擎以加快数据传输和32位数字协处理器优化文件系统的计算,所有这些都在一个芯片里完成,芯片带有64K嵌入式闪存和4K内部数据SRAM。
Vinculum专门针对嵌入式USB控制器市场,只需要很少外部支持元件。Vinculum核与常用MCU核相比的一个主要特点是其代码长度大幅缩短,减少内核在代码上的开销,因此可以在单芯片e- Flash存储器里装入更多功能,这一特点也正好可以弥补基于PIC的嵌入式系统的不足。系统原理图见图1,通过Vinculum将小型PICMCU连到 USB“A”连接器上,然后就可以连接USB闪存盘了。
搭建模拟系统
PIC是系统控制器,通过通用I/O引脚(引脚9、 10、11上的RC0、RC1、RA2)接收从传感器或其他来源传过来的数据,对数据格式进行转换,然后用数据流将数据写入闪存盘上的文件里。命令和数据通过TXD(引脚6)传到VNC1L的RXD(引脚32),VNC1L在USB闪存盘上生成FAT12/16/32文件并存储数据,并通过USB2DM (引脚28)和USB2DP(引脚29)和闪存盘通信。数据也用同样引脚读出,然后将数据通过VNC1L的TXD(引脚31)传到PIC的PXD(引脚 5)以供系统固件使用。
在PIC引脚2和3之间接入一个20MHz晶振可在其UART接口获得高达115200bit/s波特率,而使用内部8MHz振荡器只能获得最高9600bit/s波特率,因此加接晶振可提高系统性能。 PIC的IO引脚RC2和RC3都被固件使用,以模拟与VNC1LUART连接的RTS/CTS握手信号。系统由PIC上的固件控制,数据传输则由PIC 发出的指令控制,该指令由Vinculum上的标准固件进行解释。虽然说起来很简单,但完成设计还有其他一些工作要做,例如器件还需要电源、控制时钟的晶振以及编程。
系统需要标准的5V250mA电源(PSU),可为 USB“A”连接器提供高达200mA电流,同时为VNC1L和PIC各提供25mA驱动电流。VNC1L采用3.3v电源,由一个3.3vLDO调压器提供,它带有一个5v容限IO引脚,可使其连到PIC而不需要用到电平转换器。在低功耗应用中,VNC1L不工作时可进入2mA睡眠模式,如需唤醒器件,只需触发RART接口的振铃指示(RI)引脚(引脚38)。如果它连到RXD线上(如图所示),就可以用一个空命令触发以唤醒器件。
该设计还包括一个双色LED指示器,由引脚16和18推动。它可以显示是否成功连上USB闪存盘并可以访问文件系统。
球
VNC1L和PIC编程
该设计包括两个程序头文件,每个器件需要一个,同时还要有相应的开发环境。对于生产设计而言,两个器件都要在插入PCB之间预先编程,以减少连接头和跳线。
在正常工作状态下,J1和J2需要连上,而其他跳线保持断开。对VNC1L编程的时候,将J1和J2跳线移开以使VNC1LUART输入与PIC输出分开。把5VPSU断开,然后将TTL-232R-3V3线缆接到H2上,将该线缆的USB端接到PC上,而在PC上安装好VPROG编程软件。将J4连上以便将VNC1L的PROG#引脚拉低,并短暂将J3短路以使器件复位使其进入编程状态。编程完成后,记住恢复跳线设定到工作位置。
对PIC编程时编程头连到器件的RA0、RA1和MCLR#引脚,通过编程头提供5V编程电压。PIC微控制器编程前先将5VPSU断开,编程头连到标准PIC编程环境如PICKit2上,可以使用Microchip的调试与下载工具。
本文所附的C代码实例显示PIC等待闪存盘检测,然后打开一个名为hello.txt的文件,接着将“HelloWorld”以及回车换行符写入该文件中,最后关闭文件并等待将闪存盘移开。
VNC1L固件
VNC1L 采用标准固件进行编程,称为VDAP,它可以解释来自于PIC的命令。这些VDAP命令有些类似于DOS指令,如DIR、RD以及WR等,命令集也支持容易被微处理器控制的单字节十六进制命令,VDAP命令包含在PIC固件中,可控制USB闪存盘的接入,典型命令序列可以是生成一个文件、从文件中读出/写入数据然后关闭文件。
结论
FTDI 的VinculumVNC1L提供了一个低成本微控制器与USB2.0低/全速外设之间的接口,易于使用和编程,其指令集类似于DOS命令,可在微控制器环境下很容易地编写调试数据以及传输例程,同时设计简单,使嵌入式系统能以较低成本实现USB主机功能。因此用户将可以采用低成本通用USB闪存盘作为系统存储媒介,而且还能在现场进行软件升级。此外VNC1L还可用于连接除了大容量存储设备之外的很多其他USB外设,不过这部分内容在本文讨论范围之外。
关键字:USB闪存盘 PIC微控制器 Vinculum
引用地址:
浅谈USB闪存盘与PIC微控制器系统的连接
推荐阅读最新更新时间:2024-03-16 13:29
PIC单片机开发环境_PIC单片机引脚的三种状态
PIC单片机开发环境 1.PIC单片机的开发环境常用的是MPLAB, MPLAB可以从微芯公司网站上下载;这个开发环境自带的是汇编程序的编译器,如果想用C语言做开发,那么需要下载相应的C语言编译器并安装,配套的C语言编译器为 MPLAB-C18, 可以从微芯公司网站上下载。 2.首先下载好MPLAB和MPLAB-C18两个软件并解压。 首先安装MPLAB,解压好的MPLAB如下图所示: 双击setup,前半部分直接点击next即可,到中间部分会出现如下图所示的选择框: 这里可以选择是,后面的点击next即可。MPLAB安装完成之后,重启系统(这一步很重要)。 接着安装 MPLAB-C
[单片机]
用PIC10F202单片机制作两路开关源程序
//=======================================用户配置区,供用户修改=========================================== #define TIME2 1000 //长按键时间设置,单位ms ,1000 = 1s 范围:1~10s //========================================================================================================= //************************************
[单片机]
PIC单片机asm与C混合编程
一、如何从汇编转向PICC 首先要求你要有C 语言的基础。C代码的头文件一定要有#include,它是很多头文件的集合,C 编译器在pic.h 中根据你的芯片自动载入相应的其它头文件。这点比汇编好用。载入的头文件中其实是声明芯片的寄存器和一些函数。顺便摘抄一个片段: static volatile unsigned char TMR0 @ 0x01; static volatile unsigned char PCL @ 0x02; static volatile unsigned char STATUS @ 0x03; 可以看出和汇编的头文件中定义寄存器是差不多的。如下: TMR0 EQU 0X01; PCL EQU 0X02;
[单片机]
Microchip推出15款全新8位PIC®单片机
Microchip Technology Inc.(美国微芯科技公司)宣布,推出三个全新增强型中档8位MCU系列,扩展了其经认证的全速USB 2.0设备PIC®单片机产品组合。新产品包括15款拥有高达128 KB闪存、14至100引脚可扩展的MCU。所有产品均具备USB通信所需的精确度为0.25%的内部时钟源,因而无需外部晶振,节省了成本。此外,所有三个系列均采用XLP超低功耗技术,运行功耗低至35 μA/MHz,休眠模式功耗低至20 nA。
14引脚和20引脚PIC16F145X MCU是Microchip迄今为止成本最低且外形尺寸最小的USB MCU。该系列的三款产品采用小至4×4 mm封装,具有广泛集成外设,有助于实
[单片机]
基于PIC单片机的无线实时监控防盗系统的设计与实现
一. 正文 前言 这款产品的制作历经了三个多月,这三个多月以来,我们组除了上课时间外,都埋头于实验室,就连过年我们小组也都没能在家多呆几天,马不停蹄的就赶到了学校。在这期间我们得到了老师和学校领导的大力支持,我们在心里由衷的感激,现在产品终于做出来了,但还有很多不如意的地方,比如由于时间紧,产品仅仅还停留在功能实现完全的阶段,还没有进行封装和外形的设计,当然产品可能还有许多其他的不足之处,希望评委能够批评指正,谢谢! 在此感谢MIPS、Microchip、DIGILENT 公司对这次比赛的大力支持,我们将不遗余力的推广你们的产品,让更多的用户能够体验到你们产品的无穷魅力! 产品结构示意图
[单片机]
PIC16F877单片机运算子程序
1 PIC16F877汇编语言程序主体框架 以下是一个典型的程序结构: ;***************程序说明区******************* LIST p=16f877 ;指定微控制器型号和文件输出格式 INCLUDE p16f877.inc ;读入MPLAB提供的定义文件P16F877.INC ;***片内RAM常用资源、变量定义和相应的说明********* ACCALO EQU 20 ;存放加数或减数低8位 ACCAHI EQU 21 ;存放加数或减数高8位 ACCBLO EQU 23 ;存放被加数或被减数低8位 ACCBHI EQU 24 ;存放
[单片机]
PIC单片机与触摸屏串行通信的MODBUS协议实现
摘要:介绍一种在PIC单片机与触摸屏之间采用Modbus协议实现异步串行通信的方法。简单介绍了Modbus通信协议,给出了硬件电路连接图、程序流程图以及用PIC单片机C语言编写的部分通信程序。实际使用证明该方法数据传输稳定可靠,并提供了良好的人机交互环境。
关键词:触摸屏 PIC单片机 Modbus协议 通信
工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国M
[工业控制]
基于PIC单片机构成的环境温湿度实时测控装置设计
环境条件中的温湿度指标是许多工作场合的重要参数,不论是仓库管理、图书保存还是工业测量与计量检定,都需要符合操作规定的温湿度环境条件。而温湿度也是最不易保障的指标,针对这一情况,研制可靠且实用的温湿度控制器显得非常重要。本文介绍的温湿度实时控制装置可在0~50℃和20%~98%RH(相对湿度)的范围内任意设定温湿度值,其附加的通信接口可方便地实现与计算机的实时通信,而且便于功能的扩展,可保证温度、湿度满足设计指标。此外,该装置还可自动控制多个设备的多点时间控制电路,因而具有更广泛的应用前景。该装置可实现的功能如下:
●在0~50℃和20%~98%RH间可任意设定温湿度控制点;
●可以实时监测环境温湿度的变化情况,并记录、存储
[单片机]