0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FT25BM芯片實現(xiàn)微電子控制系統(tǒng)的USB接口設(shè)計

電子設(shè)計 ? 來源:電子工程師 ? 作者:徐鋒 ? 2020-07-03 07:44 ? 次閱讀

引言

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

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

1、 FT245BM芯片簡介

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

基于FT25BM芯片實現(xiàn)微電子控制系統(tǒng)的USB接口設(shè)計

該芯片有如下特點:

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

2、USB接口的硬件設(shè)計

由USB設(shè)計規(guī)范可知,USB設(shè)備有總線供電和自供電兩種方式。考慮到開發(fā)的數(shù)控系統(tǒng)并不屬于移動應(yīng)用,無需通過總線供電方式來供給芯片工作所需電源,因此采用自供電方式進(jìn)行設(shè)計。采用自供電方式的基于FT245BM的USB接口電路原理如圖2所示。

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

3 、USB接口的軟件設(shè)計

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

3.1 微控制器端軟件的設(shè)計

微控制器通過FT245BM提供的數(shù)據(jù)和控制接口實現(xiàn)數(shù)據(jù)的交換。

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

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

3.2 PC機(jī)端軟件的設(shè)計

USB設(shè)備插入PC機(jī)時操作系統(tǒng)會請求安裝設(shè)備驅(qū)動程序,F(xiàn)TDI公司為基于FT245BM的USB接口設(shè)備提供了VCP、D2XX(動態(tài)鏈接庫)兩種驅(qū)動程序。選擇不同的驅(qū)動程序,PC機(jī)端軟件設(shè)計方法也不同。

3.2.1 基于VCP的PC機(jī)端軟件設(shè)計

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

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

3.2.2 基于D2XX的PC機(jī)端軟件設(shè)計

選擇D2XX作為USB接口的設(shè)備驅(qū)動程序,應(yīng)用程序通過FTD2XX.DLL、FTD2XX.SYS、Windows USBDriver Stack來實現(xiàn)對FT245BM。的讀寫。因此,在程序編寫時只需調(diào)用FTD2XX.DLL中的函數(shù),便可完成對USB接口設(shè)備的讀寫操作。

FTD2XX.DLL提供了豐富的接口函數(shù)來訪問FT245BM,主要函數(shù)簡介如下:

FT_ListDevice:獲取當(dāng)前PC機(jī)上連接的所有的FTDI USB接口設(shè)備的信息;

FT_Open,F(xiàn)T_OpenEx:打開FTDI USB接口;

FT_Read:從FTDI USB接口讀取數(shù)據(jù);

FT_Write:向FTDI USB接口寫入數(shù)據(jù);

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

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

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

4 、結(jié)束語

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

責(zé)任編輯::gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50206

    瀏覽量

    420888
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6509

    瀏覽量

    110381
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7876

    瀏覽量

    263698
收藏 人收藏

    評論

    相關(guān)推薦

    FT245BM芯片簡介

    的問題。目前USB這一接口形式在微電子控制系統(tǒng)的設(shè)計中得到了廣泛應(yīng)用。 在近期參和研發(fā)的數(shù)控系統(tǒng)中,應(yīng)客戶需求需要將
    發(fā)表于 04-18 10:26

    USB接口芯片FT245BM的功能及其應(yīng)用

    ,鎖相環(huán),串行接口引擎(SIE),F(xiàn)IFO控制器,USB協(xié)議引擎,F(xiàn)IFO接收緩沖區(qū),發(fā)送緩沖區(qū)以及6M振蕩器,8倍頻時鐘倍頻器等組成。FT245BM
    發(fā)表于 12-20 11:02

    采用FT245BM和FPGA實現(xiàn)USB接口設(shè)計

    USB協(xié)議芯片FT245BM,實現(xiàn)了FPGA與PC機(jī)的USB通信,該方法不用微控制器,減少了元器
    發(fā)表于 04-22 07:00

    采用FT245BM和FPGA實現(xiàn)USB接口設(shè)計

    3.2.2發(fā)送狀態(tài)機(jī)發(fā)送狀態(tài)機(jī)完成的主要功能是將外設(shè)產(chǎn)生的數(shù)據(jù)通過FT245BMUSB總線傳送到PC機(jī)。外設(shè)將數(shù)據(jù)準(zhǔn)備好后,將發(fā)送允許信號(SendEN)置為有效,當(dāng)狀態(tài)機(jī)檢測到SendEN=1
    發(fā)表于 04-22 07:00

    采用FT245BM和FPGA實現(xiàn)USB接口設(shè)計

    USB協(xié)議芯片FT245BM,實現(xiàn)了FPGA與PC機(jī)的USB通信,該方法不用微控制器,減少了元器
    發(fā)表于 04-26 07:00

    基于FT245BM的快速USB接口設(shè)計

    解決PC機(jī)外圍接口不足的問題。目前USB這一接口形式在微電子控制系統(tǒng)的設(shè)計中得到了廣泛應(yīng)用。在近期參與開發(fā)的數(shù)控
    發(fā)表于 01-11 06:56

    如何快速實現(xiàn)USB接口的設(shè)計?

    FT245BM芯片簡介FT245BM芯片的特點 USB接口的硬件設(shè)計
    發(fā)表于 04-21 07:02

    基于FT8U232BMUSB-HART通信接口的開發(fā)

    基于FT8U232BMUSB-HART通信接口的開發(fā) Development of FT8U232BM Based USB-HART C
    發(fā)表于 03-16 11:04 ?60次下載

    FT245BM中文資料,pdf datasheet

    FT245BM的主要功能是進(jìn)行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。詳細(xì)介紹FT245BM芯片的工作原理、內(nèi)部結(jié)構(gòu)、引腳分布及功能;給出基于FT245
    發(fā)表于 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
    發(fā)表于 03-02 11:16 ?24次下載

    USB接口芯片FT245BM的功能及其應(yīng)用

    通用串行總線USB(Universal Serial Bus)由于具有數(shù)據(jù)傳輸速率高、易于使用、支持熱插拔等特點,越來越成為一種流行的計算機(jī)通信接口。FT245BM芯片是由FTDI(F
    發(fā)表于 05-14 15:47 ?4464次閱讀
    <b class='flag-5'>USB</b><b class='flag-5'>接口</b><b class='flag-5'>芯片</b><b class='flag-5'>FT245BM</b>的功能及其應(yīng)用

    FT245BMUSB接口電路設(shè)計

    FT245BM接口電路設(shè)計 設(shè)計采用USB總線供電,圖2中FT245BM與一片MCU相連,MCU的一個8位端口用來傳輸數(shù)據(jù),另外一個端口用來控制
    發(fā)表于 05-14 18:12 ?2271次閱讀
    <b class='flag-5'>FT245BM</b>的<b class='flag-5'>USB</b><b class='flag-5'>接口</b>電路設(shè)計

    基于FT245BM的簡易USB接口開發(fā)

    基于FT245BM的簡易USB接口開發(fā) FT245BM的主要功能是進(jìn)行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。詳細(xì)介紹
    發(fā)表于 06-16 08:42 ?1687次閱讀

    基于FT8U232BMUSB-HART通信接口開發(fā)

    基于FT8U232BMUSB-HART通信接口開發(fā)
    發(fā)表于 09-04 14:24 ?15次下載
    基于<b class='flag-5'>FT8U232BM</b>的<b class='flag-5'>USB</b>-HART通信<b class='flag-5'>接口</b>開發(fā)

    基于FT245BM芯片實現(xiàn)USB雙向轉(zhuǎn)換的快速接口設(shè)計

    USB(通用串行總線)是一種新的數(shù)據(jù)通信接口方式,它使得外圍沒備到計算機(jī)的連接更加高效、便利。USB接口不僅具有快速、即插即用、支持熱插拔的特點,而且能同時連接多達(dá)127個外部設(shè)備,可
    發(fā)表于 04-10 09:30 ?2399次閱讀
    基于<b class='flag-5'>FT245BM</b><b class='flag-5'>芯片</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>USB</b>雙向轉(zhuǎn)換的快速<b class='flag-5'>接口</b>設(shè)計