0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FT25BM芯片实现微电子控制系统的USB接口设计

电子设计 来源:电子工程师 作者:徐锋 2020-07-03 07:44 次阅读

引言

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

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

1、 FT245BM芯片简介

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

基于FT25BM芯片实现微电子控制系统的USB接口设计

该芯片有如下特点:

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

2、USB接口的硬件设计

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

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

3 、USB接口的软件设计

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

3.1 微控制器端软件的设计

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

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

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

3.2 PC机端软件的设计

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

3.2.1 基于VCP的PC机端软件设计

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

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

3.2.2 基于D2XX的PC机端软件设计

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

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

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

FT_Open,FT_OpenEx:打开FTDI USB接口;

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

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

FT_Close:关闭FTDI USB接口。

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

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

4 、结束语

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

责任编辑::gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50791

    浏览量

    423482
  • 控制系统
    +关注

    关注

    41

    文章

    6611

    浏览量

    110601
  • usb
    usb
    +关注

    关注

    60

    文章

    7945

    浏览量

    264592
收藏 人收藏

    评论

    相关推荐

    FT245BM芯片简介

    的问题。目前USB这一接口形式在微电子控制系统的设计中得到了广泛应用。 在近期参和研发的数控系统中,应客户需求需要将
    发表于 04-18 10:26

    USB接口芯片FT245BM的功能及其应用

    ,锁相环,串行接口引擎(SIE),FIFO控制器,USB协议引擎,FIFO接收缓冲区,发送缓冲区以及6M振荡器,8倍频时钟倍频器等组成。FT245BM
    发表于 12-20 11:02

    采用FT245BM和FPGA实现USB接口设计

    USB协议芯片FT245BM实现了FPGA与PC机的USB通信,该方法不用微控制器,减少了元器
    发表于 04-22 07:00

    采用FT245BM和FPGA实现USB接口设计

    3.2.2发送状态机发送状态机完成的主要功能是将外设产生的数据通过FT245BMUSB总线传送到PC机。外设将数据准备好后,将发送允许信号(SendEN)置为有效,当状态机检测到SendEN=1
    发表于 04-22 07:00

    采用FT245BM和FPGA实现USB接口设计

    USB协议芯片FT245BM实现了FPGA与PC机的USB通信,该方法不用微控制器,减少了元器
    发表于 04-26 07:00

    基于FT245BM的快速USB接口设计

    解决PC机外围接口不足的问题。目前USB这一接口形式在微电子控制系统的设计中得到了广泛应用。在近期参与开发的数控
    发表于 01-11 06:56

    如何快速实现USB接口的设计?

    FT245BM芯片简介FT245BM芯片的特点 USB接口的硬件设计
    发表于 04-21 07:02

    基于FT8U232BMUSB-HART通信接口的开发

    基于FT8U232BMUSB-HART通信接口的开发 Development of FT8U232BM Based USB-HART C
    发表于 03-16 11:04 60次下载

    FT245BM中文资料,pdf datasheet

    FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。详细介绍FT245BM芯片的工作原理、内部结构、引脚分布及功能;给出基于FT245
    发表于 06-16 08:43 234次下载

    FT245BM USB FIFO ( USB - Paral

    The FT245BM is the 2nd generation of FTDI’s popular USB FIFO I.C. This device not only adds extra
    发表于 03-02 11:16 24次下载

    USB接口芯片FT245BM的功能及其应用

    通用串行总线USB(Universal Serial Bus)由于具有数据传输速率高、易于使用、支持热插拔等特点,越来越成为一种流行的计算机通信接口FT245BM芯片是由FTDI(F
    发表于 05-14 15:47 4568次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>接口</b><b class='flag-5'>芯片</b><b class='flag-5'>FT245BM</b>的功能及其应用

    FT245BMUSB接口电路设计

    FT245BM接口电路设计 设计采用USB总线供电,图2中FT245BM与一片MCU相连,MCU的一个8位端口用来传输数据,另外一个端口用来控制
    发表于 05-14 18:12 2280次阅读
    <b class='flag-5'>FT245BM</b>的<b class='flag-5'>USB</b><b class='flag-5'>接口</b>电路设计

    基于FT245BM的简易USB接口开发

    基于FT245BM的简易USB接口开发 FT245BM的主要功能是进行USB和并行I/O口之间的协议转换。详细介绍
    发表于 06-16 08:42 1716次阅读

    基于FT8U232BMUSB-HART通信接口开发

    基于FT8U232BMUSB-HART通信接口开发
    发表于 09-04 14:24 15次下载
    基于<b class='flag-5'>FT8U232BM</b>的<b class='flag-5'>USB</b>-HART通信<b class='flag-5'>接口</b>开发

    基于FT245BM芯片实现USB双向转换的快速接口设计

    USB(通用串行总线)是一种新的数据通信接口方式,它使得外围没备到计算机的连接更加高效、便利。USB接口不仅具有快速、即插即用、支持热插拔的特点,而且能同时连接多达127个外部设备,可
    发表于 04-10 09:30 2454次阅读
    基于<b class='flag-5'>FT245BM</b><b class='flag-5'>芯片</b><b class='flag-5'>实现</b><b class='flag-5'>USB</b>双向转换的快速<b class='flag-5'>接口</b>设计