datasheet

USB闪存盘驱动器与PIC微控制器的接口设计

2008-05-13来源: 电子系统设计 关键字:PIC  USB闪存盘  微控制器  引脚  WR  VPROG  文件操作  驱动器  接口设

  本文以Vinculum VNC1L智能型USB Host桥接器为例,说明如何为系统控制器PIC16F688增加USB 2.0全速连接埠以便系统能连接USB闪存盘,并在最少的设计时间与资源下完成此设计。讨论内容包括PIC微控制器和VNC1L智能型USB Host桥接器芯片的嵌入式接口硬件设计,并说明如何在PIC微控制器进行程序开发,以便让USB闪存盘能在广泛的嵌入式应用中用作可移除储存媒体。

  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程序使用。

  

  图: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暂时短路以重设器件,并切换至烧录模式。完成烧录后,应将连接器设定操作模式。

关键字:PIC  USB闪存盘  微控制器  引脚  WR  VPROG  文件操作  驱动器  接口设

编辑:孙树宾 引用地址:http://www.eeworld.com.cn/afdz/2008/0513/article_648.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:CAN总线互连中网关的设计与实现
下一篇:VxWorks几种常用的延时方法

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC单片机C知识点汇总

 PICC变量及定义1、当变量为多字节数据时,PICC按低字节存放在低地址、高字节存放在高地址的原则存放变量,并以最低字节的地址作为该变量的地址。例如int型变量i的值为0X1234,低字节0x34存放在0X30,高字节0x12存放在0X31,并以0x30作为变量i的地址。2、单片机的带符号的整数均以补码方式存放。对于二进制数来说,先减一后取反和先取反后加1得到的结果是一样的。3、标准C中没有位变量,位变量是PICC C语言中特有的。有了位变量,就可以方便的进行位操作,设置某一引脚是高电平还是低电平。4、强制类型转换的一般表达式为 (类型说明符)(表达式) 作用:把表达式的运算结果强制转换成类型说明符所表达的类型
发表于 2018-11-23

实例讲解PIC单片机之中断程序

标志寄存器 PIRX 注: X可以是1 2 3 4.。。。不同型号的单片机数目不同INTCON 中断控制寄存器讲解:1开启或关闭 全体的中断功能(GIE)2开启或关闭全体外设的中断功能(PEIE)外设就是在外设中断允许/标志寄存器里面所写的设备。3开启一些中断事件。PIEX 与 PIRX 是相互对应的如:当把PIE1的TMR1IE设置为1 定时器timr1将开启中断。等到TMR1定时器溢出后,则会在PIR1的TMRIF将为1,并且执行中断程序。实例讲解:我们把上一讲的《PIC单片机之定时器》中的实例修改成中断方式 实现 每隔 50MS亮起LED,每隔50MS灭掉LED。/*开发环境MPLAB X IDE 芯片型号PIC
发表于 2018-11-22

单片机基础之PIC单片机之I/O控制

;= ~0x20;第三种 TRISA =0x00;PORTA寄存器是数据控制寄存器。如果是输出状态:PORTA寄存器中的RA5位为0 则RA5口输出低电平,PORTA寄存器中的RA5位为1 则RA5口输出高电平。如果是输入状态:PORTA寄存器中的RA5位为0 则说明RA5口当前为低电平,PORTA寄存器中的RA5位为1 则说明RA5口当前为高电平。实例程序:如果在RA5口上连接着一个LED灯。我们将如何点亮他呢?/*开发环境为 MPLAB X IDE,芯片型号为PIC16LF1823*/#include //头文件__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&
发表于 2018-11-21
单片机基础之PIC单片机之I/O控制

PIC单片机基础知识之AD转换

 AD转换我们先看看R1和R2,R2是个可调电阻 如果我们将R2变大 RA0这个管脚上的电压就越大。R2变小 RA0这个管脚上的电压就越小。那单片机是怎么知道电压变化的。这就需要AD转换。就是将模拟量转换成数字量。PIC单片机如何表示电压PIC用十位二进制位的数来表示电压,也就是数值0~1023来表示电压。那比如现在这个数值是400那这代表多少的电压?这就要根据参考电压来确定了。比如我们设置正参考电压为3.3V ,当输入的电压为0时,数值就为0。当输入的电压为3.3V时,数值就是1023. 那如果输入的电压是1.2V代表多少电压。首先,先算出一个数值代表多少的电压 3.3V除以1023 约等于 0.003V
发表于 2018-11-20
PIC单片机基础知识之AD转换

单片机抗干扰能力那家强?PIC、AVR....

单片机的抗干扰性能历来为大家所重视,现在市面上的单片机就我所接触过的,就有十家左右了,韩国的三星和现代;日本的三菱,日立,东芝,富士通,NEC;台湾的EMC,松汉,麦肯特,合泰;美国的摩托罗拉,国半的cop8系列,microchip系列,TI的msp430系列,AVR系列,51系列,欧洲意法半导体的ST系列。。。。。。这些单片机的抗干扰性能大多数鄙人亲自测试过,所用机器是上海三基出的两种高频脉冲干扰仪,一种是欧洲采用的标准,一种是日本采用的标准;日本的标准歉咂德龀辶⒊觯龀蹇矶却?0ns到250ns可调,欧洲采用的标准是脉冲间歇(间歇时间和发出时间可调)发出,脉宽也是从50ns到250ns可调;我们国家采用的是欧洲标准。一般
发表于 2018-11-20

PIC单片机编程入门之超简单的点灯程序

 IO口控制方向寄存器 TRISA~TRISAE 比如 TRISB=0x00; // 1为输入, 0为输出 , 这样就把portB端口全部设为输出数据寄存器 PORTA~PORTE 比如 PORTB=0x01; // 1为置高,0为置低 , 这样就把portB1口置高,其它portB口置低例: 点灯程序#include__CONFIG (0x3B31);// pic单片机需要进行寄存器配置,详见手册void main(){TRISD=0xfe; // 把RD1端口设为输出PORTD=0x01; // 把RD1端口置高//RD1=1; PORTD 和 RD一样的while(1);}
发表于 2018-11-20

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
pt type="text/javascript" src="//v3.jiathis.com/code/jia.js?uid=2113614" charset="utf-8">