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