【正文】
9 RDY1/SLWR I GPIF 的輸入信號(hào)端/ 從屬FIFO 的寫選送端36~38 CTL0CTL2/FLAGAFLAGC O GPIF 的控制輸出端/從屬FIFO 的輸出狀態(tài)標(biāo)志信號(hào)20 IFCLK I/O/Z 從屬FIFO 的同步時(shí)鐘信號(hào)21 Reserved I 保留,接地51 WAKEUP I USB的喚醒信號(hào)輸入端22,23 SCL,SDA OD I 2C 總線的時(shí)鐘信號(hào)線和數(shù)據(jù)信號(hào)線 CY7C68013A 的端點(diǎn)緩沖區(qū)端點(diǎn)(Endpoint) 是USB規(guī)范中很重要的一個(gè)概念,從 CY7C68013A的觀點(diǎn)來(lái)看,端點(diǎn)是一個(gè)通過(guò)USB總線來(lái)傳送與接收字節(jié)的數(shù)據(jù)緩沖區(qū)。CY7C68013A在數(shù)據(jù)傳輸?shù)臅r(shí)候主要用到了4KB的FIFO和 7個(gè)端點(diǎn)。CY7C68013A的7個(gè)端點(diǎn)如表43所示。 表43 CY7C68013A 的7個(gè)端點(diǎn)Table43 the seven endpoints of the CY7C68013A端點(diǎn) 大小 備注EP0 64B 控制傳輸EP1IN 64B 輸入EP1OUT 64B 輸出EP2 4KB 輸入/輸出EP4 4KB 輸入/輸出EP6 4KB 輸入/輸出EP8 4KB 輸入/輸出USB協(xié)議中將端點(diǎn)做了如下定義:它是窗口,是數(shù)據(jù)的接受器和發(fā)送器。EP0是一個(gè)默認(rèn)的雙向控制端點(diǎn),它即可寫數(shù)據(jù)也可讀數(shù)據(jù)。當(dāng)傳輸控制命令有需求時(shí),CY7C68013A中的固件程序就可以讀寫EP0。EP1IN 和EP1OUT 使用獨(dú)立的64字節(jié)緩存區(qū),可以配置為同步、中斷和塊傳輸方式,這2個(gè)端點(diǎn)也只能被固件訪問(wèn)。EP EP EPEP8這幾個(gè)端點(diǎn)緩存區(qū)主要用來(lái)進(jìn)行高帶寬數(shù)據(jù)傳輸,不需要固件程序的參與。這四個(gè)端點(diǎn)可以設(shè)為IN或者OUT,自動(dòng)模式或者手動(dòng)模式。另外為了解決帶寬的問(wèn)題以及讀寫雙方互相等待的時(shí)間過(guò)長(zhǎng)等問(wèn)題,可以將這4個(gè)端點(diǎn)配置成雙重、三重和四重緩沖,這樣就可以很好解決這些問(wèn)題了。這些端點(diǎn)在內(nèi)部的傳輸控制是通過(guò)滿和空兩個(gè)控制信號(hào)來(lái)完成的,內(nèi)部寫滿了就不能再寫數(shù)據(jù),讀空了就不再對(duì)FIFO進(jìn)行讀。西安理工大學(xué)碩士學(xué)位論文20 CY7C68013A 的接口模式CY7C68013A芯片提供了Slave FIFO(從屬FIFO)和GPIF(通用可編程接口)兩種不同類型的接口模式。其中可以通過(guò)設(shè)置寄存器IFCFG來(lái)選擇相對(duì)應(yīng)的接口模式。GPIF代表主機(jī)模式,對(duì)于這種模式,主控制器是CY7C68013A 芯片,可以通過(guò)軟件編程自動(dòng)讀寫控制波形。對(duì)于8/16位接口的控制器、存儲(chǔ)器可以進(jìn)行數(shù)據(jù)的主動(dòng)讀寫,沒(méi)有必要外加控制器。Slave FIFO模式顧名思義即從機(jī)模式,在本模式下,系統(tǒng)中的邏輯控制器FPGA就猶如普通 FIFO一樣,可以輕松完成對(duì)CY7C68013A中端點(diǎn)數(shù)據(jù)緩沖區(qū)的讀寫工作。對(duì)應(yīng)的芯片的工作時(shí)鐘有內(nèi)部產(chǎn)生和外部輸入兩種不同方式可供選擇;相關(guān)電平的設(shè)置由芯片的控制信號(hào)控制;工作方式同時(shí)也對(duì)應(yīng)有二種模式即異步模式或者同步模式,所謂異步就是讀寫數(shù)據(jù)的時(shí)候只與讀寫使能信號(hào)有關(guān),與時(shí)鐘IFCLK 無(wú)關(guān);所謂同步就是同時(shí)受時(shí)鐘信號(hào)以及讀寫信號(hào)的控制。同步與異步的時(shí)序如圖43所示。S L R DS L W R異步S L R DS L W R同步I F C L K圖 43 異步和同步模式下的時(shí)序圖Figure43 Asynchronous and synchronous mode timing diagramCY7C68013A的固件程序代碼和數(shù)據(jù),先存儲(chǔ)在PC機(jī)上,然后再通過(guò)USB接口從PC機(jī)直接下載到CY7C68013A芯片內(nèi)部的16KBRAM 里面,這樣可以縮短產(chǎn)品的開發(fā)周期,同時(shí)還可以方便對(duì)固件進(jìn)行更新,以及完成對(duì)產(chǎn)品進(jìn)行升級(jí)工作等。本設(shè)計(jì)中選擇FPGA作為控制器,那么對(duì)應(yīng) CY7C68013A就選擇工作在 Slave FIFO模式(從機(jī)模式)。 AD 電路設(shè)計(jì) 接口的電平轉(zhuǎn)換,而對(duì)應(yīng)的FPGA的I/O口工作電壓通常狀況下。TLC5510的時(shí)鐘信號(hào)ClK和輸出使能信號(hào) OE能夠被FPGA 輸出的電平驅(qū)動(dòng),所以TLC5510的時(shí)鐘信號(hào)CLK和使能信號(hào)OE與FPGA的I/O口能直接相連,但TLC5510的數(shù)據(jù)輸出端D1D8 與FPGA的I/O 口之間不能直接相連的。為了不損壞器件以及完成正常的數(shù)據(jù)通信,那就必須在TLC5510與FPGA之間進(jìn)行電平轉(zhuǎn)換。設(shè)計(jì)中選用74LVC4245A 電平轉(zhuǎn)換芯片,該芯片的特點(diǎn)是雙向、8路、電平可控, 和5V 兩種供電電源。其各個(gè)引腳功能各個(gè)參數(shù)如下:VCCA電源電壓(5V177。);VCCB電源電壓(177。);GND 地; A1A7數(shù)據(jù)輸入 /輸出;B1B7數(shù)據(jù)輸入/ 輸出;DIR方向控制器;OE輸入輸出系統(tǒng)硬件設(shè)計(jì)21使能(低電平有效) 。電路中74LVC4245A的VCC接+, 電源 【13】 。A1A8與TLC5510輸出的8位數(shù)字信號(hào)連接,OE、B1B8 與FPGA 的I/O口連接,DIR為方向控制器,通過(guò)一個(gè)選擇開關(guān)P1可以控制數(shù)據(jù)的傳輸方向。 高電平時(shí),允許數(shù)據(jù)從A端(TLC5510) 傳到B端(FPGA);當(dāng)選擇連接到低電平時(shí)允許數(shù)據(jù)從B 端(FPGA)傳到A端(TLC5510) 。TLC5510與FPGA 的接口連接示意如圖44所示。F P G AA I N C L KO ET L C 5 5 1 0D 1 D 8A 1 A 8B 1 B 8模擬輸入信號(hào)D A T AD A T A O EC L KO E O E7 4 L V C 4 2 4 5 A 圖44 TLC5510與FPGA的連接示意圖Figure44 The connection diagram of the TLC5510 and FPGA TLC5510 外圍電路設(shè)計(jì)設(shè)計(jì)中采用 TLC55l0 內(nèi)部+2V 參考電壓,因此將 REFTS 和 RETF 短接,REFB 和REFBS 短接,使 REFT=,REFB= ,并通過(guò)旁路電容接地。 VDDA 和 VDDD 應(yīng)就近與 AGND 和 DGND 連接一個(gè) 的高頻陶磁濾波電容。其中 FB2~FB4 代表高頻磁珠,主要是模擬電源 AVDD 經(jīng)過(guò) FB2~FB4 為 TLC5510 提供模擬工作電流。加上FB2~ FB4 高頻磁珠,主要目的是為了獲得更好的高頻去耦效果。TLC5510 的時(shí)鐘 CLK不用單獨(dú)設(shè)置,由 FPGA 提供。數(shù)據(jù)的轉(zhuǎn)換控制可通過(guò) FPGA 按照 AD 轉(zhuǎn)換的時(shí)序直接控制 OE 的電平狀態(tài)。模擬輸入信號(hào)從 AIN 引腳輸入,在經(jīng)過(guò)轉(zhuǎn)換的 8 位數(shù)字信號(hào)從D1D8 輸出。 TLC5510 的外圍電路如圖 45 所示。西安理工大學(xué)碩士學(xué)位論文22+76539D2OELKVGNAIRTSBUHPeadr 圖 45 TLC5510 外圍電路連接Figure45 The connectionof the the TLC5510 peripheral circuit USB 電路設(shè)計(jì)以CY7C68013A為核心的數(shù)據(jù)傳輸電路,主要完成FPGA與PC機(jī)的數(shù)據(jù)傳輸以及命令的傳輸。 USB 與 FPGA 的接口電路本系統(tǒng)設(shè)計(jì)中由FPGA作為控制器,只是簡(jiǎn)單地利用CY7C68013A作為一個(gè)數(shù)據(jù)通道來(lái)實(shí)現(xiàn)數(shù)據(jù)采集卡與上位機(jī)應(yīng)用程序二者之間的高速數(shù)據(jù)傳輸。那樣的話本系統(tǒng)就應(yīng)該采用Slave FIFO連接模式,其中Slave FIFO模式傳輸示意圖如圖46所示。P CF P G A( 主控制器 )8 0 5 1F X 2 芯片內(nèi)部U S B 2 .0 收發(fā)器F I F O端點(diǎn)緩存區(qū)S l a v eF I F O從控制器批量傳輸?shù)萐 l a v e F I F O接口系統(tǒng)硬件設(shè)計(jì)23圖46 Slave FIFO傳輸示意圖Figure46 transmission schematic of the Slave FIFO在該方式下,CY7C68013A內(nèi)嵌的固件功能就只是配置Slave FIFO相關(guān)寄存器以及控制CY7C68013A什么時(shí)候工作在Slave FIFO模式下。當(dāng)固件將相關(guān)的寄存器和工作模式配置完畢,F(xiàn)PGA就可按照Slave FIFO 傳輸時(shí)序,高速與PC機(jī)進(jìn)行通信然而固件卻不參與通信。如果我們將CY7C68013A的端點(diǎn)配置成自動(dòng)輸入或輸出的話,端點(diǎn)內(nèi)的數(shù)據(jù)就會(huì)自動(dòng)打包,接著傳給FPGA或者計(jì)算機(jī)。本數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)時(shí)采用的是異步方式,數(shù)據(jù)總線是8位,控制端點(diǎn)為端點(diǎn)0,其主要作用是傳輸系統(tǒng)控制命令,而端點(diǎn)6則用來(lái)傳輸我們采集的數(shù)據(jù)。在異步Slave FIFO方式下,CY7C68013A接口芯片的I/O管腳直接連接到相應(yīng)的FPGA管腳。FPGA與CY7C68013A的Slave FIFO連接示意圖如圖47所示 【1415】 。F P G AE P 1 C 6 Q 2 4 0 C 8U S B 2 . 0C Y 7 C 6 8 0 1 3 AF D [ 7 : 0 ]F I F O a d r [ 1 : 0 ]P D [ 7 : 0 ]F L A G BF L A G CS L C SI F C L KS L W R圖47 FPGA與CY7C68013A的連接示意圖Figure 47 The connection diagram of the FPGA and CY7C68013ACY7C68013A為FPGA提供內(nèi)部端點(diǎn) 6的空(Empty) 滿(Full)標(biāo)志信號(hào)和上位機(jī)發(fā)來(lái)的控制信號(hào),F(xiàn)LAGB 表示EP6的空狀態(tài),F(xiàn)LAGC 表示EP6 的滿狀態(tài),PD[7:0]傳輸上位機(jī)發(fā)出的各種命令如:開始采集、停止采集以及采樣頻率。主控制器FPGA對(duì)CY7C68013A數(shù)據(jù)通道的控制則主要通過(guò)如下控制信號(hào)來(lái)實(shí)現(xiàn):FIFOadr[1:0] (端點(diǎn)選擇信號(hào))、SLWR( 寫使能信號(hào)) 、SLCS( 片選信號(hào) ),F(xiàn)D(8位數(shù)據(jù)線)。 USB 的外圍電路FD[0:7]為Slave FIFO的8位數(shù)據(jù)接口,直接與FPGA 的I/O口相連。PD[0:7] 傳輸上位機(jī)發(fā)出的各種命令,直接與FPGA的IO口相連。FLAGB 、FLAGC分別為CY7C68013A端點(diǎn)6的空狀態(tài)和滿狀態(tài)標(biāo)志信號(hào)管腳。FIFOADR0 和FIFOADR1為CY7C68013A 端點(diǎn)FIFO 的選擇信號(hào)管腳,可通過(guò)PFGA 選擇4個(gè)FIFO(EP2 、EPEPEP8)中的一個(gè)與數(shù)據(jù)總線FD相連。Slave FIFO接口模式的使能有 SLWR(寫使能)、SLRD( 讀使能)、SLOE( 輸出使能)和西安理工大學(xué)碩士學(xué)位論文24SLCS(片選信號(hào)管腳)。XTALIN和XTALOUT則代表外接晶振管腳,它們是需要外接24MHz的晶振的。CY7C68013A內(nèi)部的鎖相環(huán)PLL可以將24MHz振蕩器倍頻到48MHz ,內(nèi)部的計(jì)數(shù)器可將其分頻用作8051時(shí)鐘,默認(rèn)的8051時(shí)鐘頻率為12MHz。CY7C68013A的I 2C引腳SCL 和SDA 外部的上拉電阻,即使沒(méi)有EEPROM也要接。DPLUS和DMINU即是USB總線中的D+和D的全稱。CY7C68013A可以通過(guò)IFCLK向外提供時(shí)鐘或者由引入外部的時(shí)鐘源 【1618】 。本文中由FPGA內(nèi)部PLL 鎖相環(huán)產(chǎn)生的時(shí)鐘通過(guò)IFCLK 引腳接入CY7C68013A芯片中去的。這里必需提出的是AGND(模擬地)和DGND(數(shù)字地)是不能直接連在一起,使用應(yīng)該用0歐姆電阻把它們隔開,以減少二者的相互干擾。其中USB的外圍連接電路如圖48所示。 AV14WKEUP5RST9LD3FOMN678GBXY .ud+vHzp%圖 48 USB的外圍連接Figure48 peripheral connection of the usb系統(tǒng)硬件設(shè)計(jì)25 FPGA 外圍電路設(shè)計(jì)FPGA的外圍電路設(shè)計(jì)包括晶振電路、復(fù)位電路、下載配置電路與調(diào)試電路。 時(shí)鐘電路及復(fù)位電路FPGA系統(tǒng)的全局時(shí)鐘輸入采用了有源晶振。FPGA芯片的I/ ,所以選,24MHz晶振。AD芯片所需要的時(shí)鐘通過(guò)FPGA內(nèi)部鎖相環(huán)產(chǎn)生,而FX2CLK提供給CY7C68013A芯片作為該芯片的外部時(shí)鐘源。,它可以濾除電源噪聲對(duì)晶振輸出時(shí)鐘信號(hào)的影響,而時(shí)鐘輸出端的電阻的作用也不容小視,因?yàn)樗鼘?duì)電路起到限流、防止過(guò)沖的作用。當(dāng)我們把硬件系統(tǒng)電源連接好后,因?yàn)镕PGA內(nèi)部鎖相環(huán)電路穩(wěn)定是需要一定時(shí)間的,所以這時(shí)候在復(fù)位管腳上配置了一個(gè)RC電路,以提供有效的復(fù)位信號(hào)。復(fù)位電路同時(shí)可以保證系統(tǒng)電路穩(wěn)定可靠工作,是電路中不空缺少的一部分。本系統(tǒng)時(shí)鐘及復(fù)位電路如圖49所示。 pshbton85r+6dv,9Q圖 49 時(shí)鐘及復(fù)位電路圖Figure49 Clock and reset circuit diagram 下載配置與調(diào)試接口電路設(shè)計(jì)本系統(tǒng)選擇的FPGA芯片是SRAM型結(jié)構(gòu)的,它本身的缺陷即不能將程序永久存儲(chǔ)在FPGA里邊,一斷電的話程序就沒(méi)有了。這時(shí)候FPGA就需要一片F(xiàn)lash(非易失性)結(jié)構(gòu)的配置芯片以彌補(bǔ)上述缺陷,而它的主要作用就是來(lái)儲(chǔ)存邏輯配置信息。EPCSx系列配置芯片是串行的,而EPCx 系列配置芯片是并行的。利用它們可以對(duì)Altera公司生產(chǎn)的FPGA進(jìn)行配置。EPCSx系列芯片有舊款的EPCx系列芯片無(wú)法媲美的優(yōu)勢(shì)即它的體積小,價(jià)格低,