FT232-USB转串口设计

概况

  FT232系列,提供的USB转RS422/RS485,在RS422/RS485和USB口之间建立可靠的连接。利用USB接口具有的即插即用和热插拔的能力可以给RS422/RS485设备提供非常容易使用的环境。同时利用RS422/RS485具有的远距离传输和抗干扰性能好等特点赋予了USB口远距离传输的功能。它的设计可以让你方便地连接诸如PLC和PLD、条码扫描器、工控自动化等设备,并提供高达3Mbps的传输速率。

  特点:

  单芯片的USB转异步串口工作模式(ASNC)

  满握手信号、MODEM接口信号,硬件及Xon/Xoff流量控制

  接口支持UART 7 / 8 Bit 数据位、1 / 2 停止位、奇偶校验、Mark/Space校验或无校验。

  通信速率: 300=>3M(TTL)、300 => 1M(RS232), 300 => 3M(RS422/RS485)

  384 Byte传输缓冲区,128 Byte传输缓冲区。

  接收缓冲区timeout可调。

  硬件及Xon/Xoff流量控制

  事件突发特性,Line Break

  RS485,缓冲区自动控制。

  USB总行供电

  集成了电平转换器,I/O口电平支持5V-3.3V伏电平逻辑。

  USB IO集成了3.3V 稳压器。

  集成电源复位电路

  集成6MHz – 48Mhz时钟乘法器(PLL)Bulk

  USB隔离数据传输模式。

  4.35V to 5.25V外部电源供电。

  兼容UHCI/OHCI/EHCI主控芯片

  完全兼容USB 2.0

  EEPROM,存放VID、PID、序列号、产品简单描述等信息。

  USB在线编程EEPROM

  RoHS, 32-LD LQFP封装。

  虚拟串口的驱动程序,支持: Windows 98/2000/ME/XP Windows CE MAC OS-8, OS-9, OS-X操作系统等。

  D2XX驱动程序,支持;Windows 98,Windows 98 SE、Windows 2000 / ME / Server、2003 / XP、Windows XP 64 Bit、Windows XP Embedded、Windows CE 4.2、Linux 2.40 and greater

  应用范围

  USB óRS232

  USB óRS422 / RS485转换器

  Upgrading RS232 Legacy Peripherals to USB

  便携式电话的US

  MCU的USB接口扩张

  USB音频、低速射频数据传输

  PDA、USB读卡器。

  机顶盒USB扩张

  USB MODEM设备。

  无线USB Modems

  仪器仪表。

  条码读写器。

  FPGA,PLD接口应用

  设计注意:

  一个需要注意的问题是电力的消耗,如果你设计了一个总线供电的设备,必须让它小于100mA的电流。你的设备还必须支持USB挂起模式(Suspend),USB处于挂起模式时,要求设备的耗电量必须小于0.5mA.如果你的设备不支持USB挂起模式,FT232提供了一个简单有效的方法在USB处于挂起模式时去关闭你的设备电源。具体状态请查看USB电源脚控制状态,PWREN.

  时钟电路,调试时钟电路时注意EECS脚上拉电阻值,48Mhz时在EECS和地之间下拉一个10k的电阻,6MHz晶振时不需要电阻。

  方法一、不修改PC端驱动中的PID_VID,把FT232的USB接口当作一个通用的USB转串口

  当FT232BM的USB口与PC端相连时,PC端会提示发现USB Serial Converter,并自动弹出查找新硬件向导对话框,如下图:

  找到FT232BM对应的通用驱动程序安装,安装完毕设备管理器则显示一个USB串行接口:

  方法二、把FT232的USB接口当作专用的USB转串口

  (需要在FT232外部加串行的EEPROM,用来存储USB VID、PID及设备信息。)

  FT232内部存有VID和PID,且每一个同型号的芯片的VID和PID都是一样的,FT232在上电时首先读取外部的VID、PID及设备信息,如果外部没有EEPROM存储器件,则使用芯片内部的VID、PID及设备信息。

  由于是专用的USB转串口,FT232需要重新配制VID 和PID 以及设备描述信息,EERPOM的配制可用专用的EERPOM烧写工具,也可用MProg3.0_Setup.exe+配制文件。ept文件来配制,方法如下

  1、配制EEPROM

  安装并运行 MProg3.0_Setup.exe .打开配制文件:

FT232-USB转串口设计_第1张图片

  点编程,将配制文件写入EEPROM(FT232外置)。

  2、修改PC端驱动的INF文件

  将PID和VID的序号改成和配制文件中的一致

  [FtdiHw]

  %USB\VID_1987&PID_0724.DeviceDesc%=FtdiBus,USB\VID_1987&PID_0724

  %USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6001

  %USB\VID_0403&PID_6007.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6007

  %USB\VID_0403&PID_6008.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6008

  %USB\VID_0403&PID_6009.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6009

  %USB\VID_0403&PID_0232.DeviceDesc%=FtdiBus,USB\VID_0403&PID_0232

  [Strings]

  Ftdi="liu_xf"

  DriversDisk="FTDI USB Drivers Disk"

  USB\VID_1987&PID_0724.DeviceDesc="《小发和你共同玩USB》之USB转串口"

  USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_6007.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_6008.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_6009.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_0232.DeviceDesc="USB Serial Converter"

  WINUN="Software\Microsoft\Windows\CurrentVersion\Uninstall"

  FtdiBus.SvcDesc="USB Serial Converter Driver"

  3、插上USB,按照提示安装驱动

  注意:如果PC端驱动中的PID VID与配制文件中的PID VID不一致,将照成驱动程序无法安装。

  三、配制EEPROM时出现MPorg与硬件不能正常连接时的几点说明

  用MProg配制EEPROM时,请确保配制文件。ept正确且配制成功后再拔插USB接口,否则配制完成重新拔插USB端口时,会自动弹出查找新硬件向导,此时若要点击MProg重新配制,则会出现无法连的情况。只有安装完驱动,再打开MProg才能重新建立连接。

  如果EEPROM配制成功的情况下,驱动安装却出现错误并导致硬件无法使用,并且出现硬件与MProg无法连接的现象,需要重新安装才能正确使用;由于windows系统内保存了该硬件的VID和PID,可能会导致正确的驱动不能被安装。解决办法可尝试换一台电脑,在新的电脑上将正确的驱动安装后,再用MPorg将硬件的EEPROM内的配制文件擦除即可;此时再回来原来的电脑上,即可与MPorg正常连接。

FT232-USB转串口设计_第2张图片

FT232-USB转串口设计_第3张图片

FT232-USB转串口设计_第4张图片

  四、配制文件。ept和PC端驱动安装信息文件。inf的修改

  通用的FT232M.ept文件

  ―――――――――――――――――――――――――

  [Basic Details]

  Device Type="3" //设备类型为FT232BM

  VID PID Type="2"

  USB VID="1987" //生产厂商ID

  USB PID="0724" //产品ID

  [USB Power Options]

  Bus Powered="1"

  Self Powered="0"

  Max Bus Power="100"

  [USB Serial Number Control]

  Prefix=FT

  Use Fixed Serial Number="0"

  Fixed Serial Number="20090414"

  [USB Remote WakeUp]

  Enable Remote WakeUp="0"

  [Windows Plug and Play]

  Enable Plug and Play="1"

  [USB String Descriptors]

  Manufacturer=Liu_xf //制造商名称

  Product=USB Serial Port //产品名称

  [Programming Options]

  Only Program Blank Devices="0"

  [BM Device Specific Options]

  USB Version Number="1"

  Disable Serial Number="1"

  IO Pin Pull Down in Suspend="0"

  [Dual Device Specific Options A]

  RS 232 mode="0"

  245 FIFO mode="0"

  245 CPU FIFO mode="1"

  OPTO Isolate mode="0"

  High Current Drive=0

  [Dual Device Specific Options B]

  RS 232 mode="1"

  245 FIFO mode="0"

  245 CPU FIFO mode="0"

  OPTO Isolate mode="0"

  High Current Drive=0

  [Dual Device Driver Options A]

  Virtual Com Port Driver="0"

  D2XX Driver="1"

  [Dual Device Driver Options B]

  Virtual Com Port Driver="1"

  D2XX Driver="0"

  [R Device Specific Options]

  Invert TXD="0"

  Invert RXD="0"

  Invert RTS#=0

  Invert CTS#=0

  Invert DTR#=0

  Invert DSR#=0

  Invert DCD#=0

  Invert RI#=0

  C0 Signal="-1"

  C1 Signal="-1"

  C2 Signal="-1"

  C3 Signal="-1"

  C4 Signal="-1"

  Enable Ext Osc="0"

  High Current I/O=0

  Load D2XX Driver="0"

  In EndPoint Size="0"

  ―――――――――――――――――――――――――

  PC端的。inf文件

  ――――――――――――――――――――――――――――――

  ; FTDIBUS.INF

  ; Copyright (c) 2000-2004 FTDI Ltd.

  [Version]

  signature="$CHICAGO$"

  Class=USB

  ClassGUID={36fc9e60-c465-11cf-8056-444553540000}

  Provider=%FTDI%

  CatalogFile=ftdibus.cat

  DriverVer=04/14/2009,1.00.2154

  [SourceDisksNames]

  1=%DriversDisk%,,,

  [SourceDisksFiles]

  ftcomms.vxd = 1

  ftserial.sys = 1

  ftsenum.vxd = 1

  ftsenum.sys = 1

  ftsermou.vxd = 1

  ftserui.dll = 1

  ftlang.dll = 1

  ftdibus.sys = 1

  ftdiunin.exe = 1

  ftdiunin.ini = 1

  ftdiun2k.ini = 1

  [DestinationDirs]

  FtdiBus.Copy1 = 11

  FtdiBus.Copy2 = 17

  FtdiBus.NT.Copy = 10,system32\drivers

  FtdiBus.NT.Copy2 = 11

  [Manufacturer]

  %Ftdi%=FtdiHw

  [FtdiHw]

  %USB\VID_1987&PID_0724.DeviceDesc%=FtdiBus,USB\VID_1987&PID_0724

  %USB\VID_0403&PID_6001.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6001

  %USB\VID_0403&PID_6007.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6007

  %USB\VID_0403&PID_6008.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6008

  %USB\VID_0403&PID_6009.DeviceDesc%=FtdiBus,USB\VID_0403&PID_6009

  %USB\VID_0403&PID_0232.DeviceDesc%=FtdiBus,USB\VID_0403&PID_0232

  [ControlFlags]

  ExcludeFromSelect=USB\VID_0403&PID_8372

  ExcludeFromSelect=USB\VID_0403&PID_6001

  ExcludeFromSelect=USB\VID_0403&PID_6007

  ExcludeFromSelect=USB\VID_0403&PID_6008

  ExcludeFromSelect=USB\VID_0403&PID_6009

  ExcludeFromSelect=USB\VID_0403&PID_0232

  [FtdiBus]

  CopyFiles=FtdiBus.Copy1,FtdiBus.Copy2

  AddReg=FtdiBus.AddReg, FtdiBusUnInst.Reg

  RemoveDevice=FtdiBus.RemDev

  [FtdiBus.HW]

  AddReg=FtdiBus.AddReg.HW

  [FtdiBus.AddReg]

  HKR,,DevLoader,,*ntkern

  HKR,,NTMPDriver,,ftserial.sys

  [FtdiBus.AddReg.HW]

  HKR,,"UpperFilters",0x00010000,"ftsenum.sys"

  [FtdiBus.Copy1]

  ftcomms.vxd

  ftsenum.vxd

  ftsermou.vxd

  ftserial.sys

  ftsenum.sys

  ftserui.dll

  ftdiunin.exe

  ftdiunin.ini

  [FtdiBus.Copy2]

  ftdibus.inf

  ftdiport.inf

  ftsermou.inf

  [FtdiBus.RemDev]

  DelFiles=FtdiBus.Delfiles

  DELKEY=HKLM,%WINUN%\FTDICOMM

  [FtdiBusUnInst.Reg]

  HKLM,%WINUN%,"FTDICOMM"

  HKLM,%WINUN%\FTDICOMM , "UninstallString",,"%11%\ftdiunin.exe %11%\ftdiunin.ini"

  HKLM,%WINUN%\FTDICOMM , "DisplayName",,"FTDI USB-to-Serial Converter Drivers"

  [FtdiBus.DelFiles]

  FTCOMMS.VXD

  ftsenum.vxd

  ftsermou.vxd

  FTSERIAL.SYS

  FTPORTS.INF

  FTDICOM.INF

  ftdibus.inf

  ftdiport.inf

  ftsenum.sys

  ftserui.dll

  ftdiunin.exe

  ftdiunin.ini

  ;---------------------------------------------------------------;

  ; For Win2000 …

  ;

  [FtdiBus.NT]

  CopyFiles=FtdiBus.NT.Copy,FtdiBus.NT.Copy2

  AddReg=FtdiBus.NT.AddReg,FtdiBusUnInst.NT.Reg

  [FtdiBus.NT.Services]

  AddService = FTDIBUS, 0x00000002, FtdiBus_AddService

  [FtdiBus_AddService]

  DisplayName = %FtdiBus.SvcDesc%

  ServiceType = 1 ; SERVICE_KERNEL_DRIVER

  StartType = 3 ; SERVICE_DEMAND_START

  ErrorControl = 1 ; SERVICE_ERROR_NORMAL

  ServiceBinary = %10%\system32\drivers\ftdibus.sys

  LoadOrderGroup = Base

  AddReg = FtdiBus_AddService.AddReg

  [FtdiBus.NT.AddReg]

  HKR,,DevLoader,,*ntkern

  HKR,,NTMPDriver,,ftdibus.sys

  [FtdiBus_AddService.AddReg]

  HKR,Parameters,"MaximumTransferSize",0x10001,4096

  ;HKR,Parameters,"DebugLevel",0x10001,2

  [FtdiBus.NT.Copy]

  ftdibus.sys

  [FtdiBus.NT.Copy2]

  ftdiunin.exe

  ftdiun2k.ini

  [FtdiBusUnInst.NT.Reg]

  HKLM,%WINUN%,"FTDICOMM"

  HKLM,%WINUN%\FTDICOMM , "UninstallString",,"%11%\ftdiunin.exe %11%\ftdiun2k.ini"

  HKLM,%WINUN%\FTDICOMM , "DisplayName",,"FTDI USB Serial Converter Drivers"

  ;---------------------------------------------------------------;

  [Strings]

  Ftdi="liu_xf"

  DriversDisk="FTDI USB Drivers Disk"

  USB\VID_1987&PID_0724.DeviceDesc="《小发和你共同玩USB》之USB转串口"

  USB\VID_0403&PID_6001.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_6007.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_6008.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_6009.DeviceDesc="USB Serial Converter"

  USB\VID_0403&PID_0232.DeviceDesc="USB Serial Converter"

  WINUN="Software\Microsoft\Windows\CurrentVersion\Uninstall"

  FtdiBus.SvcDesc="USB Serial Converter Driver"

  ―――――――――――――――――――――――――――

  五、符录

FT232-USB转串口设计_第5张图片

  硬件原理图


转载地址:

http://bbs.dzsc.com/space/viewspacepost.aspx?postid=94428

你可能感兴趣的:(FT232-USB转串口设计)