《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于FT232的USB轉串口設計
基于FT232的USB轉串口設計
摘要: 基于FT232的USB轉串口設計.
Abstract:
Key words :

方法一,、不修改PC端驅動中的PID_VID,,把FT232的USB接口當作一個通用的USB轉串口

當FT232BM的USB口與PC端相連時,,PC端會提示發(fā)現(xiàn)USB Serial Converter,,并自動彈出查找新硬件向導對話框,,如下圖:



     找到FT232BM對應的通用驅動程序安裝,,安裝完畢設備管理器則顯示一個USB串行接口

   

   

方法二,、把FT232的USB接口當作專用的USB轉串口

(需要在FT232外部加串行的EEPROM,,用來存儲USB  VID、PID及設備信息,。)

      FT232內部存有VID和PID,,且每一個同型號的芯片的VID和PID都是一樣的,F(xiàn)T232在上電時首先讀取外部的VID,、PID及設備信息,,如果外部沒有EEPROM存儲器件,則使用芯片內部的VID,、PID及設備信息,。

由于是專用的USB轉串口,F(xiàn)T232需要重新配制VID 和PID 以及設備描述信息,,EERPOM的配制可用專用的EERPOM燒寫工具,,也可用MProg3.0_Setup.exe+配制文件.ept文件來配制,,方法如下



1,、配制EEPROM

   安裝并運行 MProg3.0_Setup.exe 。打開配制文件:


點編程,,將配制文件寫入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="《小發(fā)和你共同玩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時出現(xiàn)MPorg與硬件不能正常連接時的幾點說明

用MProg配制EEPROM時,請確保配制文件.ept正確且配制成功后再拔插USB接口,,否則配制完成重新拔插USB端口時,,會自動彈出查找新硬件向導,此時若要點擊MProg重新配制,,則會出現(xiàn)無法連的情況,。只有安裝完驅動,再打開MProg才能重新建立連接,。

如果EEPROM配制成功,,但在安裝驅動的時候出現(xiàn)錯誤,導致硬件無法使用,同時還會出現(xiàn)硬件與MProg無法連接的現(xiàn)象,,需重新安裝正確的驅動才能正常,;由于windows系統(tǒng)內保存了該硬件的VID和PID,可能會導致正確的驅動不能被安裝,。解決辦法可嘗試換一臺電腦,,在新的電腦上將正確的驅動安裝后,再用MPorg將硬件的EEPROM內的配制文件擦除即可,;此時再回來原來的電腦上,,即可與MPorg正常連接。






四,、配制文件.ept和PC端驅動安裝信息文件.inf的修改

通用的FT232M.ept文件

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

[Basic Details]

Device Type="3"     //設備類型為FT232BM

VID PID Type="2"

USB VID="1987"     //生產(chǎn)廠商ID

USB PID="0724"     //產(chǎn)品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    //產(chǎn)品名稱

[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="《小發(fā)和你共同玩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"

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





五,、符錄

硬件原理圖

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載,。