当前位置:首页 > 智能硬件 > 智能硬件
[导读]介绍FT245BM芯片的工作原理、内部结构、引脚分布及功能;给出基于FT245BM接口电路的典型设计及驱动和应用软件的编写方法。

摘要:FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。详细介绍FT245BM芯片的工作原理、内部结构、引脚分布及功能;给出基于FT245BM接口电路的典型设计及驱动和应用软件的编写方法。

    关键词:FT245BM USB接口 并行I/O口

引 言

1 概 述

  当前,USB外设的开发是一个热点。由于USB总线具有传输速度快、占用资源少及真正的即插即用等优点,越来越受到业界的青睐。可是,USB的开发要求设计人员对USB的标准、Firmware(固件)编程及驱动程序的编写等有较深入的理解,因此限制了USB的开发人员;而基于FT245BM芯片的USB产品开发,能够使研发人员在最短的周期内开发出相应的USB产品。该芯片由FTDI (Future Technology Devices Intl. Ltd.)公司推出,使用简单、性能卓越,只要熟悉单片机编程及简单的VB、VC应用程序编程,就可很容易地进行用户产品开发。

2 FT245BM芯片功能简介

  FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。芯片一方面可从主机接收USB数据,并将其转换为并行I/O口的数据流格式发送给外设;另一方面外设可通过并行I/O口将数据转换为USB的数据格式传回主机。中间的转换工作全部由芯片自动完成,开发者无须考虑固件的设计。

  FT245BM内部主要由USB收发器、串行接口引擎(SIE)、USB协议引擎和先进先出(FIFO)控制器等构成,如图1所示。USB收发器提供USB1.1/ 2.0的全速物理接口到USB总线,支持UHCI/OHCI主控制器;串行接口引擎主要用于完成USB数据的串/并双向转换,并按照USB1.1规范来完成USB数据流的位填充/位反填充,以及循环冗余校验码(CRC5/CRC16)的产生和检错;USB协议引擎管理来自USB设备控制端口的数据流;FIFO控制器处理外部接口和收发缓冲区间的数据转换。

  FIFO控制器实现与单片机(如AT89C51等)的接口,主要通过8根数据线D0~D7及读写控制线(、WR、和)来完成和单片机的数据交互。FT245BM内含两个FIFO数据缓冲区,一个是128字节的接收缓冲区,另一个是384字节的发送缓冲区。它们均用于USB数据与并行I/O口数据的交换缓冲区。

  另外,FT245BM还包括1个内置的3.3 V的稳压器,1个6 MHz的振荡器、8倍频的时钟倍频器、USB锁相环和EEPROM接口。FT245BM采用32脚的PQFP封装,体积小巧,易于和外设做到一块板上。其外形及引脚分布如图2所示,各引脚的功能描述如表1所列。

表1 FT245BM引脚功能

引脚号 引脚名称 类  型 引脚功能
25 D0 I/O 双向数据总线
24 D1 I/O 双向数据总线
23 D2 I/O 双向数据总线
22 D3 I/O 双向数据总线
21 D4 I/O 双向数据总线
20 D5 I/O 双向数据总线
19 D6 I/O 双向数据总线
18 D7 I/O 双向数据总线
16 RD IN 由低变高时,允许从接收数据缓冲区读取数据
15 WR IN 由高变低时,允许将数据发送到数据缓冲区
14 TXE OUT 为低时,允许数据写入发送数据缓冲区
12 RXF OUT 为低时,允许数据缓冲区的数据被读取
7 USBDP I/O USB数据信号线D+,接1.5kΩ的上位电阻到3.3V
8 USBDM I/O USB数据信号线D-
32 EECS I/O EEPROM片选线
1 EESK OUT EEPROM时钟线
2 EEDATA I/O EEPROM数据线
10 PWREN OUT 电源使能线
11 SI/WU IN 发送立刻消息或唤醒信号线
4 RESET IN 复位脚
5 RSTOUT OUT 内部复位生成器的输出脚
27 XTIN IN 时钟输入脚
28 XTOUT OUT 时钟输出脚
31 TEST IN 测试脚
6 3V3OUT OUT 3.3V输出脚
3、26 VCC PWR 电池,+4.4~5.25V
13 VCCIO PWR 控制引脚10~12、14~16、18~25的信号电平,+3.0~+5.25V
9、17 GND PWR 电源地
30 AVCC PWR 内部模拟电源
29 AGND PWR 内部模拟电源地

3 硬件设计

  FT245BM的典型硬件电路如图3所示。该电路采用总线供电模式,同时采用上电复位方式,通过的输出使单片机复位。时钟电路可采用4脚的6 MHz晶振模块或由1个6 MHz的晶体及2个33 pF的电容组成。脚和I/O 24脚相连,用于判断USB总线是处于挂起状态还是正常状态。在USB接口的电源端采用一个磁珠,以减少主机和设备的干扰;同时,电源端增加了去耦和旁路电容,以提高电路的抗干扰性能。在PCB板的设计中,数据线的走线应尽可能短并且长度相等。图3中的93C46(93C56或93C66)是一片EEPROM,用于存储产品的VID、PID、设备序列号及一些说明性文字等。这些需要用户自己编写,编写的应用程序由FTDI提供。用户只须运行相应的VB应用程序,写入自己相应的信息即可。该EEPROM是可选的。若没有EEPROM,FT245BM将使用默认的VID、PID、产品描述符和电源描述符,并且没有设备的序列号。

图3 FT245BM的典型硬件电路

4 软件编程

  当FT245BM的USB接 口连接到主机后,必须在PC机上安装一个由FTDI公司免费提供的虚拟串行口VCP(Virtual COM Port)驱动程序。该驱动程序兼容Windows 98/ 98 SE、Windows 2000/ME/XP等不同版本。用户可以在这虚拟串口上进行应用程序的开发。该虚拟串口可以像一个标准的物理串口那样被访问,可本质上所有针对虚拟串口的数据通信都是通过USB总线完成的,在设备端则通过并行I/O口完成。

  在PC端,应用VB对虚拟串口(通常为COM3)进行应用编程。我们直接应用MSComm控件,将MSComm3.CommPort置为3,MSComm3.Seetings置为“9600,n,8,1”(该速率为默认设置,实际上VCP驱动程序总是使数据以最快速率传输);通过MSComm3.PortOpen设置COM3的开关状态;通过MSComm3.Input和MSComm3.Output读入或输出数据。在读取数据时,设置MSComm3.Rthreshold的值为1。只要有数据传到PC机,就立即触发MSComm3.CommEvent事件,自动读取COM3的数据;而发送数据则可自动或手动发送,由用户自己设置。根据这些,用户就可以轻松编写自己的应用程序了。

  在设备端,基于万利的Insight SE-52仿真器进行编程。根据图4所示接收数据时序图,首先,须采样到信号为低,若为低,表明有接收到来自PC机的数据,允许单片机通过八位数据总线D0~D7读取数据。接着,通过信号由低到高的变化锁存数据(读入数据)。最后,延迟一段时间,重新开始下一字节的读取。软件流程如图5所示。发送数据过程,可根据图6所示发送数据时序图,同理编写发送数据的程序。设备程序可以在此基础上进一步开发,即用户根据自己的具体项目进行编程。

5 结 论

  利用FT245BM进行USB接口的开发,简单、容易,开发周期短,易于为工程实践所采用;同时,也可以直接用于新产品的开发,如数码相机的USB接口、MP3播放器的USB接口及无线Modem的USB接口等。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

台北 2025年7月16日 /美通社/ -- 作为物联网(IoT)智能系统及嵌入式平台领域的全球领导者,研华科技(Advantech)今天宣布推出其AMAX物联网控制平台。这一创新解决方案将可编程逻辑控制器(PLC)、...

关键字: 物联网 控制平台 I/O PLC

高 I/O、低功耗及先进的安全功能,适用于成本敏感型边缘应用

关键字: FPGA I/O 机器视觉

在嵌入式Linux系统编程中,文件I/O(Input/Output)和标准I/O库是实现文件操作不可或缺的两种方式。这两种方法各有特色,适用于不同的应用场景。本文将深入探讨文件I/O和标准I/O库的工作原理、区别及应用,...

关键字: 嵌入式Linux I/O

在Linux操作系统中,文件I/O和标准I/O是两种常见的输入输出(I/O)操作方式。尽管它们的目标都是实现数据的读写,但在数据缓冲的原理和机制上却存在显著的差异。理解这些差异对于优化应用程序的性能至关重要。

关键字: Linux文件 I/O

USB转串口是实现计算机USB接口和通用串口之间的转换,有些计算机或者笔记本没有串口则需要安装USB转串口驱动,这样才能够将传统的串口转变成即插即用的USB设备。

关键字: 串口线 USB接口

北京2024年9月27日 /美通社/ -- 9月25日,MLCommons协会发布最新MLPerf™ Storage v1.0 AI存储基准测试成绩。浪潮信息分布式存储平台AS13000G7表现出众,在3D-UNet和C...

关键字: RF AI 测试 I/O

在C语言的世界里,输入输出(I/O)操作是程序与用户或外部数据源进行交互的基本方式。无论是从键盘接收用户输入,还是将处理结果显示到屏幕上,亦或是读写文件,都离不开C语言提供的输入输出函数。本文将深入探讨C语言中几种核心的...

关键字: C语言 I/O

在Linux系统运维和性能调优的过程中,对CPU、内存、网络及I/O进行压力测试是至关重要的环节。这些测试能够帮助系统管理员和开发人员了解系统在高负载条件下的性能和稳定性,从而优化系统配置,提高整体性能。本文将从这四个方...

关键字: Linux I/O 压力测试

在当今科技日新月异的数字时代,USB接口技术不断进化以满足日益增长的数据传输速度、充电效率和设备兼容性需求。其中,Type-C数据线作为一种创新的接口标准,自2014年正式推出以来,迅速席卷了消费电子市场,并成为各类智能...

关键字: type-c USB接口

Type-C接口是一种新型的USB接口标准,其设计简约且功能强大,支持正反插拔,传输速度快,且具有视频传输能力。自问世以来,Type-C接口已经逐渐成为智能手机和平板电脑等移动设备的主流接口。本文将详细介绍Type-C接...

关键字: Type-C接口 USB接口 视频传输
关闭