电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:USB接口芯片FT245BM的功能及其应用
来源:   时间: 2007-4-25 16:44:08    


The Function and Application of USB Interface Chip FT245BM

  摘  要: FT245BM芯片是FTDI(Future Technology Devices Intl. Ltd)公司生产的一种USB接口芯片,支持USB协议与并行I/O协议之间的转换,文中主要介绍了FT245BM芯片的内部结构、功能、工作原理,以及基于FT245BM芯片的硬件接口设计及软件编程。
  关键字:FT245BM;USB


概要
  通用串行总线USB(Universal Serial Bus)由于具有数据传输速率高、易于使用、支持热插拔等特点,越来越成为一种流行的计算机通信接口。FT245BM芯片是由FTDI(Future Technology Devices Intl. Ltd)公司推出的第二代USB接口芯片,与其他USB芯片相比,应用FT245BM芯片进行USB外设开发,只需熟悉单片机(MCU)编程及简单的VC或VB 编程,而无需考虑固件设计以及驱动程序的编写,从而能大大缩短USB外设产品的开发周期。此外,FT245BM支持USB1.1及USB2.0规范,数据传输速度可达到1M byte/s。因此,FT245BM是开发USB外设所需接口芯片的极佳选择。

FT245BM的结构与功能
  FT245BM芯片是一种32脚,LQFP封装的芯片,管脚定义如下:
  D[0-7](25,24,23,22,21,20,19,18):双向数据信号线;
  RD#(16):读信号;
  WR(15):写信号;
  TXE#(14): FIFO发送缓冲区空标志信号;
  RXF#(12): FIFO接收缓冲区非空标志信号;
  USBDP(7),USBDM(8):USB数据信号正端,USB数据信号负端;
  EECS(32),EESK(1),EEDATA(2):EEPROM片选线,时钟线,数据线;
  PWREN(10):电源使能信号;
  SI/MU(11):立即发送或唤醒信号;
  RESET(4):复位信号;
  RSTOUT(5):内部复位生成器的输出信号;
  XTIN(27),XTOUT(28):时钟输入信号,输出信号;
  TEST(31):测试信号;
  3V3OUT(6):3.3V输出信号;
  VCC(3,26),VCCIO(13),AVCC(30):芯片电源,控制引脚电源,内部模拟电源;
  GND(9,17),AGND(29):芯片地,内部模拟地。
  芯片内部由3.3V稳压器,USB收发器,锁相环,串行接口引擎(SIE),FIFO控制器,USB协议引擎,FIFO接收缓冲区,发送缓冲区以及6M振荡器,8倍频时钟倍频器等组成。
  FT245BM芯片可实现USB接口与并行I/O接口之间数据的双向转换。一方面,当USB收发器从主机接收USB串行数据后,由串行接口引擎将数据转换成并行数据,存储在FIFO接收缓冲区, FIFO控制器检测到读信号RD为低,就把接收缓冲区的数据送到并行数据线D0-D7上;另一方面当FIFO控制器检测到写信号WR为高时,就从数据线D0-D7上读取并行数据,存储在FIFO发送缓冲区,并行数据经串行接口引擎转换成USB串行数据,再通过USB收发器传送到主机。可见FT245BM芯片自身就可完成数据转换,而不需要设计者考虑硬件设计。其内部结构功能如图1。

图1 FT245BM芯片功能框图(略)

硬件接口设计
  接口电路原理图见图2。
  设计采用USB总线供电,图2中FT245BM与一片MCU相连,MCU的一个8位端口用来传输数据,另外一个端口用来控制和产生FT245BM需要的4根握手信号线,即RXF#、TXE#、RD#、WR。TXE#为低,表示当前FIFO发送缓冲区空,这时WR脉冲由高变低就将数据线D0-D7上数据写入FIFO发送缓冲区中;当TXE#变高时,表示当前FIFO发送缓冲区满或者正在存储上一个字节,禁止向发送缓冲区中写数据。RXF#为低,表示当前FIFO接收缓冲区有数据,这时RD#脉冲由低变高,将从FIFO接收缓冲区中读取数据;读信号RD#为低时,把数据读到数据线D0...D7上;当RXF#为高时,禁止从FIFO接收缓冲区读数据。读写时序见图3与图4。

图2 硬件设计原理(略)

  图2中的93C46(93C56或93C66)是一片EEPROM,用于存储产品的VID、PID、设备序列号及一些说明性文字等。该EEPROM是可选的,若没有EEPROM,FT245BM将使用默认的VID、PID、产品描述符和电源描述符,并且没有设备的序列号。

图3 读数据时序(略)

图4 写数据时序(略)

  设计时需在USB接口的电源端连接一个磁珠,以减少设备的噪声和USB电缆辐射对主机产生的电磁干扰;电源端增加了去耦和旁路电容,以提高电路的抗干扰性能。还需注意的是,电路中RSTOUT#用来提供上电复位MCU。如果MCU本身有复位逻辑,那么通常就不需使用RSTOUT#来复位设备,这部分连接与47K下拉电阻就能省略。

软件设计
  当外设连到主机USB接口时,主机会检测到新硬件,这时需要安装一个可从FTDI公司的网站上免费下载的虚拟串口(VCP)驱动程序,该驱动程序适用于WINDOWS98/2000/ME/XP等不同操作系统。设计者需要完成的是,编写一个针对虚拟串口通信的应用程序,把虚拟串口(VCP)当作一个标准的串口去访问。
  设计的软件部分可使用VB或VC语言中提供的串口通信MSComm控件进行应用程序编写,下面我们以VC语言为例介绍如何编写应用程序,主要介绍MSComm控件的设置及串口消息事件MSComm.CommEvent响应函数的编写。
  1)MSComm控件设置:编程时通常把虚拟串口设置为COM3,即将MSComm.SetCommPort置为3, MSComm.SetSettings置为"9600,n,8,1"(该速率为默认设置,实际上VCP驱动程序总是使数据以最快速率传输);通过MSComm.SetPortOpen设置COM3的开关状态;通过MSComm.SetInput和MSComm.SetOutput读入或输出数据。在读取数据时,设置MSComm.Rthreshold的值为1。
  2)有数据传到PC机时,就立即触发串口消息事件MSComm.CommEvent,自动读取COM3的数据。下面是本文作者编写的应用程序,处理这个串口消息事件的OnComm函数,其完成的是从串口接收数据并显示在一个编辑框中。
  发送数据则可自动发送或者手动发送,这由用户根据具体情况自己设定。
void CAaDlg::OnComm()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(MSComm.GetCommEvent()==2); //事件值为2表示接收缓冲区内有字符
{ / /以下可以根据通信协议加入处理代码
variant_inp= MSComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k )
safearray_inp.GetElement(&k,rxdata k);

//转换为BYTE型数组
for(k=0;k<len;k ) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_redit =strtemp; //加入接收编辑框对应字符串 }
}
UpdateData(FALSE); //更新编辑框内容
}

结论
  上述接口设计的硬件与软件部分作者均已调试通过,成功的实现了外设与计算机的USB接口通信。FT245BM成本不高,使用灵活方便,开发周期短,设计者即可用于工程实践,如USB接口的工业控制,也可用于产品开发,如数码相机的USB接口等。

相关信息
发表评论
打印本页 关闭本页
基于FT245BM的快速USB接口设计
  引 言 USB(通用串行总线)是一种新的数据通信接口方式,它使得外围没备到计算机的连接更加高效、便利。USB接口不仅具有快速、即插即用、支持热插拔的特点,而且能同时连接多达127个外部设备,可以有效地解决PC机外围接口不足的问题。目前USB这一接口形式在微电子控制系统的设计中得到了广泛应用。 在近期参与开发的数控系统中,应客户要求需要将USB接口引入到数控系统中。由于该USB数据...
>>详细内容
93C46系列应用问题
  93C46系列串行EEPROM储存器调试心得 无线传感器网络中,需要一个EEPROM来存路由表,93C46系列算是比较老的器件了,速度也不快,但手头正好有几个,就先拿来试验一下,本以为很容易搞定的,却遇到了个奇怪的现象,搞了一阵才解决。在实验之前,查了些93C46资料,读写函数都很正常,和大部分SPI器件一样,所以没仔细看数据手册,确定了通讯格式就开始实验,奇怪的问题就开始了,我用指定地...
>>详细内容
最新的93C46/93c06/93c46/93c56/93c66/93c86的驱动程序(C51)
  /*————————————————————〖说明〗SPI总线驱动程序 包括的普通封装标准模式,特殊封装标准模式 默认11.0592Mhz的晶振。〖文件〗93CXX.C ﹫2003/5/12〖作者〗董石权(司马东飞) dongshiquan@163.com QQ:52455690 http://www.mcuzb.com/〖修改〗修改建议请到论坛公布http://www.mcuzb.com〖版本〗V3.00A Build 0803〖公告〗请各位同僚尊重使用权!!!!!!!!!!! ...
>>详细内容
PCI主模式设备开发套件PDC4000介绍(93C56)--开发PCI板卡软硬件的模板
  一、 硬件说明 特点: 1,支持PCI2.2规范。 2,直接支持Block DMA(块传输),Scatter/Gather List DMA。 3,支持中断,DMA中断,硬件中断等等。 4,局部总线时钟自由设定。 5,局部总线配置自由设定,支持8位、16位、32位的ISA总线、复用和非复用模式总线。而且总线时序可以改变。可以适应各种总线。 6,支持预读功能,提高性能,比如局部总线的时钟频率较小,可以通过该功能提高性...
>>详细内容
USB通信芯片FT245BM的应用
  摘要:FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。详细介绍FT245BM芯片的工作原理、内部结构、引脚分布及功能;给出基于FT245BM接口电路的典型设计及驱动和应用软件的编写方法。 关键词:FT245BM USB接口 并行I/O口 引 言 1 概 述   当前,USB外设的开发是一个热点。由于USB总线具有传输速度快、占用资源少及真正的即插即用等优点,越来越受到业界的青睐。可是,USB...
>>详细内容
93C46读的程序
  注解:address为地址,为0---63,字地址,而不是字节地址.字节地址:00 ,01 用字地址为0字节地址:02,03 用字地址为1....最后一句reg01=0x00,表示向9346CR写入0,退出93C46的读写. 这句不能忽略返回值为16位的uint(unsigned int).返回值中的高字节为位0--7,低字节为8-15,注意跟单片机的相反.操作命令为上面的Instution Set里的read.时序为上面的Read Timing. 93C46的写程序: 注解:写程序...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com