<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的簡(jiǎn)易USB接口開(kāi)發(fā)

基于FT245BM的簡(jiǎn)易USB接口開(kāi)發(fā)

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:245的主要功能是進(jìn)行和并行I/O口之間的協(xié)議轉換。詳細介紹245芯片的工作原理、內部結構、引腳分布及功能;給出基于245接口電路的典型設計及驅動(dòng)和應用軟件的編寫(xiě)方法。

關(guān)鍵詞:FT245BM 接口 并行I/O口

引 言

1 概 述

  當前,外設的開(kāi)發(fā)是一個(gè)熱點(diǎn)。由于USB總線(xiàn)具有傳輸速度快、占用資源少及真正的即插即用等優(yōu)點(diǎn),越來(lái)越受到業(yè)界的青睞??墒?,USB的開(kāi)發(fā)要求設計人員對USB的標準、Firmware(固件)編程及驅動(dòng)程序的編寫(xiě)等有較深入的理解,因此限制了USB的開(kāi)發(fā)人員;而基于FT245BM芯片的USB產(chǎn)品開(kāi)發(fā),能夠使研發(fā)人員在最短的周期內開(kāi)發(fā)出相應的USB產(chǎn)品。該芯片由FTDI (Future Technology Devices Intl. Ltd.)公司推出,使用簡(jiǎn)單、性能卓越,只要熟悉單片機編程及簡(jiǎn)單的VB、VC應用程序編程,就可很容易地進(jìn)行用戶(hù)產(chǎn)品開(kāi)發(fā)。

2 FT245BM芯片功能簡(jiǎn)介

  FT245BM的主要功能是進(jìn)行USB和并行I/O口之間的協(xié)議轉換。芯片一方面可從主機接收USB數據,并將其轉換為并行I/O口的數據流格式發(fā)送給外設;另一方面外設可通過(guò)并行I/O口將數據轉換為USB的數據格式傳回主機。中間的轉換工作全部由芯片自動(dòng)完成,開(kāi)發(fā)者無(wú)須考慮固件的設計。

  FT245BM內部主要由USB收發(fā)器、串行接口引擎(SIE)、USB協(xié)議引擎和先進(jìn)先出(FIFO)控制器等構成,如圖1所示。USB收發(fā)器提供USB1.1/ 2.0的全速物理接口到USB總線(xiàn),支持UHCI/OHCI主控制器;串行接口引擎主要用于完成USB數據的串/并雙向轉換,并按照USB1.1規范來(lái)完成USB數據流的位填充/位反填充,以及循環(huán)冗余校驗碼(CRC5/CRC16)的產(chǎn)生和檢錯;USB協(xié)議引擎管理來(lái)自USB設備控制端口的數據流;FIFO控制器處理外部接口和收發(fā)緩沖區間的數據轉換。

  FIFO控制器實(shí)現與單片機(如AT89C51等)的接口,主要通過(guò)8根數據線(xiàn)D0~D7及讀寫(xiě)控制線(xiàn)(、WR、和)來(lái)完成和單片機的數據交互。FT245BM內含兩個(gè)FIFO數據緩沖區,一個(gè)是128字節的接收緩沖區,另一個(gè)是384字節的發(fā)送緩沖區。它們均用于USB數據與并行I/O口數據的交換緩沖區。

  另外,FT245BM還包括1個(gè)內置的3.3 V的穩壓器,1個(gè)6 MHz的振蕩器、8倍頻的時(shí)鐘倍頻器、USB鎖相環(huán)和EEPROM接口。FT245BM采用32腳的PQFP封裝,體積小巧,易于和外設做到一塊板上。其外形及引腳分布如圖2所示,各引腳的功能描述如表1所列。

表1 FT245BM引腳功能

引腳號引腳名稱(chēng)類(lèi) 型引腳功能
25D0I/O雙向數據總線(xiàn)
24D1I/O雙向數據總線(xiàn)
23D2I/O雙向數據總線(xiàn)
22D3I/O雙向數據總線(xiàn)
21D4I/O雙向數據總線(xiàn)
20D5I/O雙向數據總線(xiàn)
19D6I/O雙向數據總線(xiàn)
18D7I/O雙向數據總線(xiàn)
16RDIN由低變高時(shí),允許從接收數據緩沖區讀取數據
15WRIN由高變低時(shí),允許將數據發(fā)送到數據緩沖區
14TXEOUT為低時(shí),允許數據寫(xiě)入發(fā)送數據緩沖區
12RXFOUT為低時(shí),允許數據緩沖區的數據被讀取
7USBDPI/OUSB數據信號線(xiàn)D+,接1.5kΩ的上位電阻到3.3V
8USBDMI/OUSB數據信號線(xiàn)D-
32EECSI/OEEPROM片選線(xiàn)
1EESKOUTEEPROM時(shí)鐘線(xiàn)
2EEDATAI/OEEPROM數據線(xiàn)
10PWRENOUT電源使能線(xiàn)
11SI/WUIN發(fā)送立刻消息或喚醒信號線(xiàn)
4RESETIN復位腳
5RSTOUTOUT內部復位生成器的輸出腳
27XTININ時(shí)鐘輸入腳
28XTOUTOUT時(shí)鐘輸出腳
31TESTIN測試腳
63V3OUTOUT3.3V輸出腳
3、26VCCPWR電池,+4.4~5.25V
13VCCIOPWR控制引腳10~12、14~16、18~25的信號電平,+3.0~+5.25V
9、17GNDPWR電源地
30AVCCPWR內部模擬電源
29AGNDPWR內部模擬電源地

3 硬件設計

  FT245BM的典型硬件電路如圖3所示。該電路采用總線(xiàn)供電模式,同時(shí)采用上電復位方式,通過(guò)的輸出使單片機復位。時(shí)鐘電路可采用4腳的6 MHz晶振模塊或由1個(gè)6 MHz的晶體及2個(gè)33 pF的電容組成。腳和I/O 24腳相連,用于判斷USB總線(xiàn)是處于掛起狀態(tài)還是正常狀態(tài)。在USB接口的電源端采用一個(gè)磁珠,以減少主機和設備的干擾;同時(shí),電源端增加了去耦和旁路電容,以提高電路的抗干擾性能。在PCB板的設計中,數據線(xiàn)的走線(xiàn)應盡可能短并且長(cháng)度相等。圖3中的93C46(93C56或93C66)是一片EEPROM,用于存儲產(chǎn)品的VID、PID、設備序列號及一些說(shuō)明性文字等。這些需要用戶(hù)自己編寫(xiě),編寫(xiě)的應用程序由FTDI提供。用戶(hù)只須運行相應的VB應用程序,寫(xiě)入自己相應的信息即可。該EEPROM是可選的。若沒(méi)有EEPROM,FT245BM將使用默認的VID、PID、產(chǎn)品描述符和電源描述符,并且沒(méi)有設備的序列號。

圖3 FT245BM的典型硬件電路

4 軟件編程

  當FT245BM的USB接 口連接到主機后,必須在PC機上安裝一個(gè)由FTDI公司免費提供的虛擬串行口VCP(Virtual COM Port)驅動(dòng)程序。該驅動(dòng)程序兼容Windows 98/ 98 SE、Windows 2000/ME/XP等不同版本。用戶(hù)可以在這虛擬串口上進(jìn)行應用程序的開(kāi)發(fā)。該虛擬串口可以像一個(gè)標準的物理串口那樣被訪(fǎng)問(wèn),可本質(zhì)上所有針對虛擬串口的數據通信都是通過(guò)USB總線(xiàn)完成的,在設備端則通過(guò)并行I/O口完成。

  在PC端,應用VB對虛擬串口(通常為COM3)進(jìn)行應用編程。我們直接應用MSComm控件,將MSComm3.CommPort置為3,MSComm3.Seetings置為“9600,n,8,1”(該速率為默認設置,實(shí)際上VCP驅動(dòng)程序總是使數據以最快速率傳輸);通過(guò)MSComm3.PortOpen設置COM3的開(kāi)關(guān)狀態(tài);通過(guò)MSComm3.Input和MSComm3.Output讀入或輸出數據。在讀取數據時(shí),設置MSComm3.Rthreshold的值為1。只要有數據傳到PC機,就立即觸發(fā)MSComm3.CommEvent事件,自動(dòng)讀取COM3的數據;而發(fā)送數據則可自動(dòng)或手動(dòng)發(fā)送,由用戶(hù)自己設置。根據這些,用戶(hù)就可以輕松編寫(xiě)自己的應用程序了。

  在設備端,基于萬(wàn)利的Insight SE-52仿真器進(jìn)行編程。根據圖4所示接收數據時(shí)序圖,首先,須采樣到信號為低,若為低,表明有接收到來(lái)自PC機的數據,允許單片機通過(guò)八位數據總線(xiàn)D0~D7讀取數據。接著(zhù),通過(guò)信號由低到高的變化鎖存數據(讀入數據)。最后,延遲一段時(shí)間,重新開(kāi)始下一字節的讀取。軟件流程如圖5所示。發(fā)送數據過(guò)程,可根據圖6所示發(fā)送數據時(shí)序圖,同理編寫(xiě)發(fā)送數據的程序。設備程序可以在此基礎上進(jìn)一步開(kāi)發(fā),即用戶(hù)根據自己的具體項目進(jìn)行編程。

5 結 論

  利用FT245BM進(jìn)行USB接口的開(kāi)發(fā),簡(jiǎn)單、容易,開(kāi)發(fā)周期短,易于為工程實(shí)踐所采用;同時(shí),也可以直接用于新產(chǎn)品的開(kāi)發(fā),如數碼相機的USB接口、MP3播放器的USB接口及無(wú)線(xiàn)Modem的USB接口等。



關(guān)鍵詞: 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>