Global Sources
电子工程专辑网站
首页 | 登录 | 现在注册  

设计方案供求专区
正在为寻找合适的设计方案急得团团转?有好的设计方案困在深闺人未识?设计方案供求专区致力于满足电子设计方案交流的需求,帮助中国工程师以更快的速度设计出产品。
 


发表新主题 发表新主题 
收藏该主题... 收藏   打印这个帖子... 打印   关注该主题... 关注   推荐这个帖子... 推荐
楼主      问题: 基于FT245BM的快速USB接口设计
发布时间: 2007-12-27 下午5:02

作者: Clarksh
等级: 遁门入道
积分: 258 分

发送消息

查看用户的所有发言

<table style="WIDTH: 94%; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="94%" border="0"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 100%; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" width="100%">

基于FT245BM的快速USB接口设计
</td></tr><tr style="HEIGHT: 4.5pt"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 100%; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8; HEIGHT: 4.5pt; BACKGROUND-COLOR: transparent" width="100%">

</td></tr><tr style="HEIGHT: 13.5pt"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 100%; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8; HEIGHT: 13.5pt; BACKGROUND-COLOR: transparent" width="100%">

<table style="WIDTH: 100%; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="100%" border="0"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; BACKGROUND: #dce9fc; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 100%; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8" width="100%">

发布日期:2007-08-02 作者:徐锋 来源:电子工程师
</td></tr></tbody></table>

</td></tr><tr style="HEIGHT: 4.5pt"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 100%; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8; HEIGHT: 4.5pt; BACKGROUND-COLOR: transparent" width="100%">

</td></tr><tr style="HEIGHT: 300pt"><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; WIDTH: 100%; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8; HEIGHT: 300pt; BACKGROUND-COLOR: transparent" valign="top" width="100%">



<table style="BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" align="left" border="0"><tbody><tr><td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0cm; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">

</td></tr></tbody></table>

引言
USB(通用串行总线)是一种新的数据通信接口方式,它使得外围没备到计算机的连接更加高效、便利。USB接口不仅具有快速、即插即用、支持热插拔的特点,而且能同时连接多达127个外部设备,可以有效地解决PC机外围接口不足的问题。目前USB这一接口形式在微电子控制系统的设计中得到了广泛应用。

在近期参与开发的数控系统中,应客户要求需要将USB接口引入到数控系统中。由于该USB数据通信接口设计仅是系统设计的一个很小的部分,如果仍采用传统的设计方法实现,那么将耗费较多的时间和精力,而且最终也未必能获得理想的效果。为了摆脱常规USB数据接口设计的难度,加快系统开发进程,我们引入了基于FT245BM的快速USB接口设计,使系统开发节奏加快,保证整套系统设计周期的缩短。

1 FT245BM芯片简介

FT245BMFTDI(Future Technology Devices IntlLtd)公司的多种快速USB通信接口解决方案之一。它无需编写片内固件程序,上层PC机则使用FTDI公司提供的官方驱动程序。FT245BM芯片的主要功能是在内部硬件逻辑的作用下实现USB串行数据格式与并行数据格式的双向转换。PC机通过USB接口与FT245BM进行数据交换,FT245BM则通过并行方式与下位微控制器通信。FT25BM芯片引脚见图1

该芯片有如下特点:

单芯片实现USB与并行FIFO缓冲区的双向数据传输;FTDI公司提供VCP(虚拟串行口)D2XX两种驱动程序,使用D2XX驱动程序能获得更好的数据传输性能,传输速率最大可达1 MBs;通过简单的四线握手信号与MCUCPLDFPGA等逻辑器件接口;完整的片内USB协议解决方案,无需底层固件的编程;完全兼容USB1.1USB2.0协议;)附加的EEPROM接口可定制USB接口设备。

2 USB接口的硬件设计

USB设计规范可知,USB设备有总线供电和自供电两种方式。考虑到开发的数控系统并不属于移动应用,无需通过总线供电方式来供给芯片工作所需电源,因此采用自供电方式进行设计。采用自供电方式的基于FT245BMUSB接口电路原理如图2所示。

FT245BM通过8位并行数据口D[0..7]4位读写状态/控制口 RXF#TXE#RD#WR实现与微控制器交换数据,而PC机与FT245BM问通过UISB总线传输数据。可选的外部EEPROM用于存储USB设备的特定信息,呵以通过EECSEESKEEDATA来完成数据写入和读出。由于设计采用自供电的方式,为防止USB主机或USB HUB(集线器)控制器在断电情况下USB接口设备将电流灌入USB总线(USB主机或USB HUB控制器将突然上电而可能导致损坏),在USBDP的上拉电路中加入检测USB总线电流的NPN型晶体管2N3904。当总线有电时,2N3904饱和导通,USBDP通过1.5 kΩ电阻上拉至RSTOUT#3.3 VUSB数据通信正常进行;当USB总线失电时,2N3904因基极无电流而截止,阻止电流由RSTOUT#进入USB总线,可有效防止USB主机的突然上电。

3 USB接口的软件设计

USB接口软件是配合接口硬件实现USB数据的高效快速传输,包括微控制器端和PC端两部分。

3.1 微控制器端软件的设计

微控制器通过FT245BM提供的数据和控制接口实现数据的交换。

读操作时序见图3。当RxF#为低,表示当前FIFO接收缓冲区内有数据,可以执行读操作读取接收缓冲区数据。在RD#电平由高变低,FIFO控制器将接收缓冲区中的数据输出到8位数据端口上,微控制器此时只需读取IO口就可以将数据取到内部数据总线上来,再将RD#信号拉高完成1个字节数据的读取。当将FIFO接收缓冲区中的数据全部取出后,RXF#被拉高表示数据为空。在RXF#为高时,禁止从FIFO接收缓冲区读取数据。

写操作时序见图4。当TXE#为低,表示当前FIFO发送缓冲区空,可以向发送缓冲区写人数据。在WR为高电平时,微控制器将8位数据D[0..7]送到并行IO口上,在WR信号电平由高变低时数据被写入发送缓冲区中。当TXE#为高时,表示当前FIFO发送缓冲区已满或者正在写入上一个字节,此时禁止向发送缓冲区中写入任何数据。微控制器向FT245BM写人数据时应确保TXE#为低。

3.2 PC机端软件的设计

USB设备插入PC机时操作系统会请求安装设备驱动程序,FTDI公司为基于FT245BMUSB接口设备提供了VCPD2XX(动态链接库)两种驱动程序。选择不同的驱动程序,PC机端软件设计方法也不同。

3.2.1 基于VCPPC机端软件设计

选择安装VCP驱动程序时,操作系统将基于FT245BMUSB接口设备虚拟成为串行通信口,对这一虚拟的串行口的操作就等同于对该USB接口设备的操作,因此在应用程序中可以利用串行通信控件来简化PC机端软件的设计。目前比较成熟的串行通信控件有MSCOMMSPCOMMPCCOMM等,本文采用DelphiSPCOMM来完成基于VCPPC端软件的设计。利用SPCOMM编写针对串行口操作的程序比较容易,它有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作。根据SPCOMM提供的属性、方法、事件可以完成对虚拟成串行口的FT245BM的读写,避开了对USB接口本身的操作。

基于VCP的软件设计介绍如下。首先设置好需要打开的VCP的各个属性,调用StartComm方法打开VCP,然后通过WriteCommData将数据写人到发送缓冲区,由计算机硬件实现物理层的数据发送。数据到达PC机将会触发控件的OnReceiveData事件,在该事件下接收数据并转存以供后续的处理。接收数据出错时将触发OnReceiveError事件,在该事件中可进行出错处理。数据传输完毕后调用StopComm关闭VCP,结束一次通信过程。

3.2.2 基于D2XXPC机端软件设计

选择D2XX作为USB接口的设备驱动程序,应用程序通过FTD2XX.DLLFTD2XX.SYSWindows USBDriver Stack来实现对FT245BM。的读写。因此,在程序编写时只需调用FTD2XX.DLL中的函数,便可完成对USB接口设备的读写操作。

FTD2XX.DLL提供了丰富的接口函数来访问FT245BM,主要函数简介如下:

FT_ListDevice:获取当前PC机上连接的所有的FTDI USB接口设备的信息;

FT_OpenFT_OpenEx:打开FTDI USB接口;

FT_Read:从FTDI USB接口读取数据;

FT_Write:向FTDI USB接口写入数据;

FT_Close:关闭FTDI USB接口。

使用DLL(动态链接库)函数首先要在接口单元处重新声明程序中需要使用到的函数。FTD2XXDLL函数声明示例如下:

采用Delphi 7编写的数据发送示例程序PcData_To_UsbDevice如下:


4 结束语

通过上述的软硬件设计,可以快速实现USB接口的设计,满足数控系统所要求的高速数据传输任务。采用这种USB设计方案在实际应用中表现良好,达到了预期目的,为数控系统如期交货创造了条件。</td></tr></tbody></table>


鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 1 楼      回复主题:基于FT245BM的快速USB接口设计
发布时间: 2008-6-16 下午8:43

作者: 余小
等级: 初入江湖
积分: 134 分

发送消息

查看用户的所有发言

请问有没有让USB1.1的芯片转成USB2.0的芯片呢?即芯片本身是USB1.1的,通过芯片桥接或转换后,对外是USB2.0的。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
--- 现有 1 个回复,共 1 页,目前第 1 页 ---


积分排行榜
 

我是工程师


电子工程专辑论坛有奖活动开幕,展示你的智慧,赢得心怡大奖。

查看详情  排行榜


话题PK台

工程师是吃年轻饭的吗?

干一行爱一行还是爱一行干一行?

外企是不是比国企更适合职业发展?


经理人网站精选

热点话题

全新推出管理资源库,汇聚丰富管理知识

成功的人就是会“勉强”别人的人 

案例:被老板出卖的尴尬事

每周一问

鱼与熊掌不可兼得,什么是布里丹选择? 

博客文章

王石和万科错在哪里

(来源:世界经理人)


~
返回论坛首页

eMedia Asia EE Times - Asia | EE Times - India | | | 手机设计 | 媒体播放器 | 家庭娱乐系统 | 工业控制 | 汽车电子设计 | 电源系统
模拟混合信号 | 国际电子商情 | 电子系统设计
环球资源 环球资源企业网 | 环球资源内贸网 | 世界经理人 | 尚品人生 | Electronic Components | Computer Products | China Sourcing Fairs
TechInsights EE Times | ESM Online
 
 
RSS 新闻聚合器 | 意见反馈 | 网站导航 | 帮助 | 关于我们 | 隐私政策 | 联系我们 | 使用条款 | 安全承诺
Copyright © 2008 eMedia Asia Ltd. 本网站所有内容均受版权保护。
未经版权所有人明确的书面许可,不得以任何方式或媒体翻印或转载本网站的部分或全部内容。