USB接口芯片F(xiàn)T245BM的功能及其應(yīng)用
通用串行總線USB(Universal Serial Bus)由于具有數(shù)據(jù)傳輸速率高、易于使用、支持熱插拔等特點(diǎn),越來(lái)越成為一種流行的計(jì)算機(jī)通信接口。FT245BM芯片是由FTDI(Future Technology Devices Intl. Ltd)公司推出的第二代USB接口芯片,與其他USB芯片相比,應(yīng)用FT245BM芯片進(jìn)行USB外設(shè)開(kāi)發(fā),只需熟悉單片機(jī)(MCU)編程及簡(jiǎn)單的VC或VB 編程,而無(wú)需考慮固件設(shè)計(jì)以及驅(qū)動(dòng)程序的編寫(xiě),從而能大大縮短USB外設(shè)產(chǎn)品的開(kāi)發(fā)周期。此外,FT245BM支持USB1.1及USB2.0規(guī)范,數(shù)據(jù)傳輸速度可達(dá)到1M byte/s。因此,F(xiàn)T245BM是開(kāi)發(fā)USB外設(shè)所需接口芯片的極佳選擇。
FT245BM的結(jié)構(gòu)與功能
FT245BM芯片是一種32腳,LQFP封裝的芯片,管腳定義如下:
D[0-7](25,24,23,22,21,20,19,18):雙向數(shù)據(jù)信號(hào)線;
RD#(16):讀信號(hào);
WR(15):寫(xiě)信號(hào);
TXE#(14): FIFO發(fā)送緩沖區(qū)空標(biāo)志信號(hào);
RXF#(12): FIFO接收緩沖區(qū)非空標(biāo)志信號(hào);
USBDP(7),USBDM(8):USB數(shù)據(jù)信號(hào)正端,USB數(shù)據(jù)信號(hào)負(fù)端;
EECS(32),EESK(1),EEDATA(2):EEPROM片選線,時(shí)鐘線,數(shù)據(jù)線;
PWREN(10):電源使能信號(hào);
SI/MU(11):立即發(fā)送或喚醒信號(hào);
RESET(4):復(fù)位信號(hào);
RSTOUT(5):內(nèi)部復(fù)位生成器的輸出信號(hào); XTIN(27),XTOUT(28):時(shí)鐘輸入信號(hào),輸出信號(hào);
TEST(31):測(cè)試信號(hào);
3V3OUT(6):3.3V輸出信號(hào);
VCC(3,26),VCCIO(13),AVCC(30):芯片電源,控制引腳電源,內(nèi)部模擬電源;
GND(9,17),AGND(29):芯片地,內(nèi)部模擬地。
芯片內(nèi)部由3.3V穩(wěn)壓器,USB收發(fā)器,鎖相環(huán),串行接口引擎(SIE),F(xiàn)IFO控制器,USB協(xié)議引擎,F(xiàn)IFO接收緩沖區(qū),發(fā)送緩沖區(qū)以及6M振蕩器,8倍頻時(shí)鐘倍頻器等組成。
FT245BM芯片可實(shí)現(xiàn)USB接口與并行I/O接口之間數(shù)據(jù)的雙向轉(zhuǎn)換。一方面,當(dāng)USB收發(fā)器從主機(jī)接收USB串行數(shù)據(jù)后,由串行接口引擎將數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),存儲(chǔ)在FIFO接收緩沖區(qū), FIFO控制器檢測(cè)到讀信號(hào)RD為低,就把接收緩沖區(qū)的數(shù)據(jù)送到并行數(shù)據(jù)線D0-D7上;另一方面當(dāng)FIFO控制器檢測(cè)到寫(xiě)信號(hào)WR為高時(shí),就從數(shù)據(jù)線D0-D7上讀取并行數(shù)據(jù),存儲(chǔ)在FIFO發(fā)送緩沖區(qū),并行數(shù)據(jù)經(jīng)串行接口引擎轉(zhuǎn)換成USB串行數(shù)據(jù),再通過(guò)USB收發(fā)器傳送到主機(jī)。可見(jiàn)FT245BM芯片自身就可完成數(shù)據(jù)轉(zhuǎn)換,而不需要設(shè)計(jì)者考慮硬件設(shè)計(jì)。其內(nèi)部結(jié)構(gòu)功能如圖1。
圖1 FT245BM芯片功能框圖 |
硬件接口設(shè)計(jì)
接口電路原理圖見(jiàn)圖2。
設(shè)計(jì)采用USB總線供電,圖2中FT245BM與一片MCU相連,MCU的一個(gè)8位端口用來(lái)傳輸數(shù)據(jù),另外一個(gè)端口用來(lái)控制和產(chǎn)生FT245BM需要的4根握手信號(hào)線,即RXF#、TXE#、RD#、WR。TXE#為低,表示當(dāng)前FIFO發(fā)送緩沖區(qū)空,這時(shí)WR脈沖由高變低就將數(shù)據(jù)線D0-D7上數(shù)據(jù)寫(xiě)入FIFO發(fā)送緩沖區(qū)中;當(dāng)TXE#變高時(shí),表示當(dāng)前FIFO發(fā)送緩沖區(qū)滿或者正在存儲(chǔ)上一個(gè)字節(jié),禁止向發(fā)送緩沖區(qū)中寫(xiě)數(shù)據(jù)。RXF#為低,表示當(dāng)前FIFO接收緩沖區(qū)有數(shù)據(jù),這時(shí)RD#脈沖由低變高,將從FIFO接收緩沖區(qū)中讀取數(shù)據(jù);讀信號(hào)RD#為低時(shí),把數(shù)據(jù)讀到數(shù)據(jù)線D0...D7上;當(dāng)RXF#為高時(shí),禁止從FIFO接收緩沖區(qū)讀數(shù)據(jù)
評(píng)論