连结USB随身碟与PIC微控制器的简单方案

连结usb随身碟与pic微控制器的简单方案
本文介绍利用低成本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位数值协同处理器,以达到最高的文件操作效率-且全部整合于一内置6?kbyteflash、以及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程序
vnc1l内部固化有标准的程序,名为vdap (vinculum disk and peripheral),该程序能解读从pic传来的指令。这些指令类似dos指令,如dir、rd、以及wr等等。指令集亦支持单一字节的hex指令,更适合由微处理器进行控制。
而收录于pic程序中的vdap指令可用来控制usb闪存盘的存取作业。典型的指令顺序为建立文件、读/写数据至文件,之后关闭文件。
vnc1l与pic程序开发
此设计含有两个烧录程序的接头,各个接头分别支持器件所需要的开发环境。在产品设计环境中,每个器件可在焊上印刷电路板前被预先烧录,因此不需接头与jumpers。
在正常运作模式中,j1与j2应接上,其它jumpers应为开路状态。vnc1l在烧录时需移除j1与j2 的jumpers,以隔离vnc1l uart的输入端和pic输出端。之后先切断5伏特电源,然后将ttl-232r-3v3 线连结至h2。通过已安装的vprog程序工具,把线路的usb端连结到pc,之后接上j4 jumper,将vncl1a的prog#引角拉低,让j3暂时短路以重设器件,并切换至烧录模式。完成烧录后,并请将jumpers设定回复至运作模式。
pic的烧录接头需连结至器件的ra0、ra1、以及mclr#引脚,5伏特烧录电压/电源则通过接头传送至组件。待切断5伏特电源后,再对pic微控制器进行烧录。接头应连结至如pickit2等标准pic开发环境,以便利用microchip的除错与下载工具。
ftdi在网站上提供了一个pic的范例程序。在这个c范例程序中,pic将等待usb闪存盘被侦测出,然后开启一个名为hello.txt的档案。“hello world”字符串以及换行指令码和line feed字符将被写入文件,待关闭文件后,usb闪存盘便可移除。
结论
ftdi的vinculum vnc1l是一个容易使用、容易设计的智能型usb host桥接器,使得低成本微控制器可轻易地增加usb 2.0低/全速的usb接口。在电源方面,vinculum vnc1l 仅在usb接口增加少于10%的消耗。类似dos的指令集,让传输的数据能在微控制器环境中轻易进行编写与除错,伴随着简易的硬件周边则大大地减轻工程师的负担,为嵌入式系统提供一个usb主控端设计方案不再是件艰难的工作。这使得低成本、高普及率的usb闪存盘能作为系统的储存媒体,并能提供现场升级软件之功能。在本文讨论范围外,值得附带一提的是,除了高容量储存装置以外,vnc1l还能用来连结许多其它usb外围装置。
作者:fred dart
英商飞特帝亚有限公司(ftdi, future technology devices international) ceo

IDC机房用UPS冗余供电系统的配置和设计
四川绵阳召开全国首次在“云端”呈现的国家级高科技展会
Adobe创意云字体,为iOS和iPadOS提供17000种字体
北自所紧抓技术创新,在融创中推动制造业的发展和进步
浅谈keil软件的使用方法
连结USB随身碟与PIC微控制器的简单方案
高合汽车否认暂停所有业务
活跃用户数超3亿 我国已真正使用IPv6地址
基于MPY634的有效值电路设计
一个嵌入式通用软件包:ToolKit
苹果申请无线显示新专利 适用平板与笔记本混合设备
我们在选择电力电缆时,需要参考的要素都有哪些
刮板流量计检定运行过程中的注意事项
壁仞科技发布首款通用GPU芯片BR100
三星表示正在优化GalaxyS10系列的超声波指纹体验
2018年国资委明确推进电信、电力等战略性重组
酷比魔方KNoteX新品PC平板,搭载新英特尔处理器,性能较上代提升了30%
盘点英特尔内外候选CEO
华为发布智能计算新战略 推进AI战略落地
泄漏电流的测试方案分享