<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于FT245BM的快速USB接口設計

基于FT245BM的快速USB接口設計

作者: 時(shí)間:2007-07-27 來(lái)源:網(wǎng)絡(luò ) 收藏
引言

(通用串行總線(xiàn))是一種新的數據通信接口方式,它使得外圍沒(méi)備到計算機的連接更加高效、便利。接口不僅具有快速、即插即用、支持熱插拔的特點(diǎn),而且能同時(shí)連接多達127個(gè)外部設備,可以有效地解決PC機外圍接口不足的問(wèn)題。目前這一接口形式在微電子控制系統的設計中得到了廣泛應用。

在近期參與開(kāi)發(fā)的數控系統中,應客戶(hù)要求需要將USB接口引入到數控系統中。由于該USB數據通信接口設計僅是系統設計的一個(gè)很小的部分,如果仍采用傳統的設計方法實(shí)現,那么將耗費較多的時(shí)間和精力,而且最終也未必能獲得理想的效果。為了擺脫常規USB數據接口設計的難度,加快系統開(kāi)發(fā)進(jìn)程,我們引入了基于的快速USB接口設計,使系統開(kāi)發(fā)節奏加快,保證整套系統設計周期的縮短。

1 芯片簡(jiǎn)介

是FTDI(Future Technology Devices IntlLtd)公司的多種快速USB通信接口解決方案之一。它無(wú)需編寫(xiě)片內固件程序,上層PC機則使用FTDI公司提供的官方驅動(dòng)程序。FT245BM芯片的主要功能是在內部硬件邏輯的作用下實(shí)現USB串行數據格式與并行數據格式的雙向轉換。PC機通過(guò)USB接口與FT245BM進(jìn)行數據交換,FT245BM則通過(guò)并行方式與下位微控制器通信。FT25BM芯片引腳見(jiàn)圖1。

該芯片有如下特點(diǎn):

單芯片實(shí)現USB與并行FIFO緩沖區的雙向數據傳輸;FTDI公司提供VCP(虛擬串行口)和D2XX兩種驅動(dòng)程序,使用D2XX驅動(dòng)程序能獲得更好的數據傳輸性能,傳輸速率最大可達1 MB/s;通過(guò)簡(jiǎn)單的四線(xiàn)握手信號與MCU、CPLD、FPGA等邏輯器件接口;完整的片內USB協(xié)議解決方案,無(wú)需底層固件的編程;完全兼容USB1.1,USB2.0協(xié)議;)附加的EEPROM接口可定制USB接口設備。

2 USB接口的硬件設計

由USB設計規范可知,USB設備有總線(xiàn)供電和自供電兩種方式??紤]到開(kāi)發(fā)的數控系統并不屬于移動(dòng)應用,無(wú)需通過(guò)總線(xiàn)供電方式來(lái)供給芯片工作所需電源,因此采用自供電方式進(jìn)行設計。采用自供電方式的基于FT245BM的USB接口電路原理如圖2所示。

FT245BM通過(guò)8位并行數據口D[0..7]和4位讀寫(xiě)狀態(tài)/控制口 RXF#、TXE#、RD#、WR實(shí)現與微控制器交換數據,而PC機與FT245BM問(wèn)通過(guò)UISB總線(xiàn)傳輸數據??蛇x的外部EEPROM用于存儲USB設備的特定信息,呵以通過(guò)EECS、EESK、EEDATA來(lái)完成數據寫(xiě)入和讀出。由于設計采用自供電的方式,為防止USB主機或USB HUB(集線(xiàn)器)控制器在斷電情況下USB接口設備將電流灌入USB總線(xiàn)(USB主機或USB HUB控制器將突然上電而可能導致?lián)p壞),在USBDP的上拉電路中加入檢測USB總線(xiàn)電流的NPN型晶體管2N3904。當總線(xiàn)有電時(shí),2N3904飽和導通,USBDP通過(guò)1.5 kΩ電阻上拉至RSTOUT#3.3 V,USB數據通信正常進(jìn)行;當USB總線(xiàn)失電時(shí),2N3904因基極無(wú)電流而截止,阻止電流由RSTOUT#進(jìn)入USB總線(xiàn),可有效防止USB主機的突然上電。

3 USB接口的軟件設計

USB接口軟件是配合接口硬件實(shí)現USB數據的高效快速傳輸,包括微控制器端和PC端兩部分。

3.1 微控制器端軟件的設計

微控制器通過(guò)FT245BM提供的數據和控制接口實(shí)現數據的交換。

讀操作時(shí)序見(jiàn)圖3。當RxF#為低,表示當前FIFO接收緩沖區內有數據,可以執行讀操作讀取接收緩沖區數據。在RD#電平由高變低,FIFO控制器將接收緩沖區中的數據輸出到8位數據端口上,微控制器此時(shí)只需讀取I/O口就可以將數據取到內部數據總線(xiàn)上來(lái),再將RD#信號拉高完成1個(gè)字節數據的讀取。當將FIFO接收緩沖區中的數據全部取出后,RXF#被拉高表示數據為空。在RXF#為高時(shí),禁止從FIFO接收緩沖區讀取數據。

寫(xiě)操作時(shí)序見(jiàn)圖4。當TXE#為低,表示當前FIFO發(fā)送緩沖區空,可以向發(fā)送緩沖區寫(xiě)人數據。在WR為高電平時(shí),微控制器將8位數據D[0..7]送到并行I/O口上,在WR信號電平由高變低時(shí)數據被寫(xiě)入發(fā)送緩沖區中。當TXE#為高時(shí),表示當前FIFO發(fā)送緩沖區已滿(mǎn)或者正在寫(xiě)入上一個(gè)字節,此時(shí)禁止向發(fā)送緩沖區中寫(xiě)入任何數據。微控制器向FT245BM寫(xiě)人數據時(shí)應確保TXE#為低。

3.2 PC機端軟件的設計

USB設備插入PC機時(shí)操作系統會(huì )請求安裝設備驅動(dòng)程序,FTDI公司為基于FT245BM的USB接口設備提供了VCP、D2XX(動(dòng)態(tài)鏈接庫)兩種驅動(dòng)程序。選擇不同的驅動(dòng)程序,PC機端軟件設計方法也不同。

3.2.1 基于VCP的PC機端軟件設計

選擇安裝VCP驅動(dòng)程序時(shí),操作系統將基于FT245BM的USB接口設備虛擬成為串行通信口,對這一虛擬的串行口的操作就等同于對該USB接口設備的操作,因此在應用程序中可以利用串行通信控件來(lái)簡(jiǎn)化PC機端軟件的設計。目前比較成熟的串行通信控件有MSCOMM、SPCOMM、PCCOMM等,本文采用Delphi和SPCOMM來(lái)完成基于VCP的PC端軟件的設計。利用SPCOMM編寫(xiě)針對串行口操作的程序比較容易,它有豐富的與串口通信密切相關(guān)的屬性及事件,提供了對串口的各種操作。根據SPCOMM提供的屬性、方法、事件可以完成對虛擬成串行口的FT245BM的讀寫(xiě),避開(kāi)了對USB接口本身的操作。

基于VCP的軟件設計介紹如下。首先設置好需要打開(kāi)的VCP的各個(gè)屬性,調用StartComm方法打開(kāi)VCP,然后通過(guò)WriteCommData將數據寫(xiě)人到發(fā)送緩沖區,由計算機硬件實(shí)現物理層的數據發(fā)送。數據到達PC機將會(huì )觸發(fā)控件的OnReceiveData事件,在該事件下接收數據并轉存以供后續的處理。接收數據出錯時(shí)將觸發(fā)OnReceiveError事件,在該事件中可進(jìn)行出錯處理。數據傳輸完畢后調用StopComm關(guān)閉VCP,結束一次通信過(guò)程。

3.2.2 基于D2XX的PC機端軟件設計

選擇D2XX作為USB接口的設備驅動(dòng)程序,應用程序通過(guò)FTD2XX.DLL、FTD2XX.SYS、Windows USBDriver Stack來(lái)實(shí)現對FT245BM。的讀寫(xiě)。因此,在程序編寫(xiě)時(shí)只需調用FTD2XX.DLL中的函數,便可完成對USB接口設備的讀寫(xiě)操作。

FTD2XX.DLL提供了豐富的接口函數來(lái)訪(fǎng)問(wèn)FT245BM,主要函數簡(jiǎn)介如下:

FT_ListDevice:獲取當前PC機上連接的所有的FTDI USB接口設備的信息;

FT_Open,FT_OpenEx:打開(kāi)FTDI USB接口;

FT_Read:從FTDI USB接口讀取數據;

FT_Write:向FTDI USB接口寫(xiě)入數據;

FT_Close:關(guān)閉FTDI USB接口。

使用DLL(動(dòng)態(tài)鏈接庫)函數首先要在接口單元處重新聲明程序中需要使用到的函數。FTD2XX中DLL函數聲明示例如下:

采用Delphi 7編寫(xiě)的數據發(fā)送示例程序PcData_To_UsbDevice如下:


4 結束語(yǔ)

通過(guò)上述的軟硬件設計,可以快速實(shí)現USB接口的設計,滿(mǎn)足數控系統所要求的高速數據傳輸任務(wù)。采用這種USB設計方案在實(shí)際應用中表現良好,達到了預期目的,為數控系統如期交貨創(chuàng )造了條件。



關(guān)鍵詞: 245 USB FT BM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>