FPGA最小系統(tǒng)之:最小系統(tǒng)電路分析
2.2.1 FPGA管腳設(shè)計(jì)
FPGA的管腳主要包括:用戶I/O(User I/O)、配置管腳、電源、時(shí)鐘及特殊應(yīng)用管腳等。其中有些管腳可有多種用途,所以在設(shè)計(jì)FPGA電路之前,需要認(rèn)真的閱讀相應(yīng)FPGA的芯片手冊。
下面以Altera公司的Cyclone系列FPGA為例,介紹FPGA的各種功能管腳。
(1)用戶I/O。
I/Onum(LVDSnumn):可用作輸入或輸出,或者雙向口,同時(shí)可作為LVDS差分對的負(fù)端。其中num表示管腳序號。
一般在繪制FPGA原理圖時(shí),將同一種功能和用途的管腳放在一個(gè)框圖中,如圖2.3所示是用戶I/O的原理圖。
(2)配置管腳。
- MSEL[1..0]:用于選擇配置模式。FPGA有多種配置模式,比如主動(dòng)、被動(dòng)、快速、正常、串行、并行等,可以此管腳進(jìn)行選擇。
- DATA0:FPGA串行數(shù)據(jù)輸入,連接至配置器件的串行數(shù)據(jù)輸出管腳。
- DCLK:FPGA串行時(shí)鐘輸出,為配置器件提供串行時(shí)鐘。
- nCSO(I/O):FPGA片選信號輸出,連接至配置器件的nCS管腳。
- ASDO(I/O):FPGA串行數(shù)據(jù)輸出,連接至配置器件的ASDI管腳。
- nCEO:下載鏈器件使能輸出。在一條下載鏈(Chain)中,當(dāng)?shù)谝粋€(gè)器件配置完成后,此信號將使能下一個(gè)器件開始進(jìn)行配置。下載鏈的最后一個(gè)器件的nCEO應(yīng)懸空。
圖2.3 FPGA用戶I/O原理圖
- nCE:下載鏈器件使能輸入,連接至上一個(gè)器件的nCEO。下載鏈第一個(gè)器件的nCE接地。
- nCONFIG:用戶模式配置起始信號。
- nSTATUS:配置狀態(tài)信號。
- CONF_DONE:配置結(jié)束信號。
如圖2.4所示是FPGA配置管腳原理圖。
圖2.4 FPGA配置管腳原理圖
(3)電源管腳。
- VCCINT:內(nèi)核電壓。通常與FPGA芯片所采用的工藝有關(guān),例如130nm工藝為1.5V,90nm工藝為1.2V。
- VCCIO:端口電壓。一般為3.3V,還可以支持選擇多種電壓,如5V、1.8V、1.5V等。
- VREF:參考電壓。
- GND:信號地。
(4)時(shí)鐘管腳。
- VCC_PLL:鎖相環(huán)管腳電壓,直接連VCCIO。
- VCCA_PLL:鎖相環(huán)模擬電壓,一般通過濾波器接到VCCINT上。
- GNDA_PLL:鎖相環(huán)模擬地。
- GNDD_PLL:鎖相環(huán)數(shù)字地。
- CLKnum(LVDSCLKnump):鎖相環(huán)時(shí)鐘輸入。支持LVDS時(shí)鐘輸入,p接正端,num表示PLL序號。
- CLKnum(LVDSCLKnumn):鎖相環(huán)時(shí)鐘輸入。支持LVDS時(shí)鐘輸入,n接負(fù)端,num表示PLL序號。
- PLLnum_OUTp(I/O):鎖相環(huán)時(shí)鐘輸出。支持LVDS時(shí)鐘輸入,p接正端,num表示PLL序號。
- PLLnum_OUTn(I/O):鎖相環(huán)時(shí)鐘輸出。支持LVDS時(shí)鐘輸入,n接負(fù)端,num表示PLL序號。
如圖2.6所示是FPGA時(shí)鐘管腳原理圖。
圖2.5 FPGA電源管腳原理圖 圖2.6 FPGA時(shí)鐘管腳原理圖
另外,F(xiàn)PGA的管腳中,有一些是全局時(shí)鐘,這些管腳在FPGA中已經(jīng)做好了時(shí)鐘樹。使用這些管腳作為關(guān)鍵時(shí)鐘或信號的布線可以獲得最佳性能。
(5)特殊管腳。
- VCCPD:用于選擇驅(qū)動(dòng)電壓。
- VCCSEL:用于控制配置管腳和鎖相環(huán)相關(guān)的輸入緩沖電壓。
- PORSEL:上電復(fù)位選項(xiàng)。
- NIOPULLUP:用于控制配置時(shí)所使用的用戶I/O的內(nèi)部上拉電阻是否工作。
- TEMPDIODEn/p:用于關(guān)聯(lián)溫度敏感二極管。
2.2.2 下載配置與調(diào)試接口電路設(shè)計(jì)
FPGA是SRAM型結(jié)構(gòu),本身并不能固化程序。因此FPGA需要一片Flash結(jié)構(gòu)的配置芯片來存儲(chǔ)邏輯配置信息,用于進(jìn)行上電配置。
以Altera公司的FPGA為例,配置芯片分為串行(EPCSx系列)和并行(EPCx系列)兩種。其中EPCx系列為老款配置芯片,體積較大,價(jià)格高。而EPCSx系列芯片與之相比,體積小、價(jià)格低。
另外,除了使用Altera公司的配置芯片,也可以使用Flash+CPLD的方式去配置FPGA。
在把程序固化到配置芯片之前,一般先使用JTAG模式去調(diào)試程序,也就是把程序下載到FPGA芯片上運(yùn)行。雖然這種方式在斷電以后程序會(huì)丟失,但是充分利用了FPGA的無限擦寫性。
所以一般FPGA有兩個(gè)下載接口:JTAG調(diào)試接口和AS(或PS)模式下載接口。所不同的是前者下載至FPGA,后者是編程配置芯片(如EPCSx),然后再配置FPGA。
如圖2.7和圖2.8所示分別是JTAG模式和AS模式的電路原理圖。
圖2.7 JTAG模式原理圖
2.2.3 高速SDRAM存儲(chǔ)器接口電路設(shè)計(jì)
SDRAM可作為軟嵌入式系統(tǒng)的(NIOS II)的程序運(yùn)行空間,或者作為大量數(shù)據(jù)的緩沖區(qū)。SDRAM是通用的存儲(chǔ)設(shè)備,只要容量和數(shù)據(jù)位寬相同,不同公司生產(chǎn)的芯片都是兼容的。
一般比較常用的SDRAM包括現(xiàn)代HY57V系列、三星K4S系列和美光MT48LC系列。例如,4M×32位的SDRAM,現(xiàn)代公司的芯片型號為HY57V283220,三星公司的為K4S283232,美光公司的為MT48LC4M32。這幾個(gè)型號的芯片可以相互替換。SDRAM典型電路如圖2.9所示。
圖2.8 AS模式原理圖
圖2.9 SDRAM典型電路
2.2.4 異步SRAM(ASRAM)存儲(chǔ)器接口電路設(shè)計(jì)
由于ASRAM的讀寫時(shí)序相對比較簡單,因此一般使用SRAM作為數(shù)據(jù)的緩沖,但其成本相對SDRAM高。而且作為異步設(shè)備,ASRAM對于時(shí)鐘同步的要求也不高,可以在低速下運(yùn)行。ASRAM主要為8位和16位數(shù)據(jù)寬度,用戶可根據(jù)需要進(jìn)行選擇。ASRAM的典型電路如圖2.10所示。
圖2.10 ASRAM典型電路
2.2.5 Flash存儲(chǔ)器接口電路設(shè)計(jì)
Flash可作為軟嵌入式系統(tǒng)的程序存儲(chǔ)空間,或者作為程序的固件空間。最常使用的是AMD公司或者Intel公司的Flash。在小容量的Flash選擇上,AMD公司的Flash性價(jià)比較高,而高容量的Flash選擇上,Intel公司的Flash性價(jià)比較高。
Flash同樣也可以通過設(shè)置實(shí)現(xiàn)8位和16位的數(shù)據(jù)位寬,下面是幾種典型的Flash應(yīng)用。
16位模式下的(AMD)Flash連接如圖2.11所示。
8位模式下的(AMD)Flash連接如圖2.12所示。
8位模式下(Intel)Flash連接如圖2.13所示。
圖2.11 16位模式下(AMD)Flash連接
圖2.12 8位模式下(AMD)Flash連接
圖2.13 8位模式下(Intel)Flash連接
2.2.6 開關(guān)、按鍵與發(fā)光LED電路設(shè)計(jì)
發(fā)光LED參考電路如圖2.14所示。
圖2.14 數(shù)碼管參考電路
撥碼開關(guān)參考電路如圖2.15所示。
圖2.15 撥碼開關(guān)參考電路
按鍵開關(guān)參考電路如圖2.16所示。
圖2.16 按鍵開關(guān)參考電路
2.2.7 VGA接口電路設(shè)計(jì)
紅色颶風(fēng)開發(fā)板提供了VGA顯示功能與接口,可以用普通的VGA電纜連接到計(jì)算機(jī)的顯示器上。VGA 連接器定義如圖2.17所示。
圖2.17 VGA連接器定義
包括的信號有Red(R)、Green(G)、Blue(B)、Horizontal Sync(水平掃描HS)以及Vertical Sync(垂直掃描 VS)。系統(tǒng)結(jié)構(gòu)示意圖如圖2.18所示。
圖2.18 VGA接口結(jié)構(gòu)示意圖
2.2.8 PS/2鼠標(biāo)及鍵盤接口電路設(shè)計(jì)
早期的PS/2鼠標(biāo)及鍵盤采用5V電壓標(biāo)準(zhǔn),目前的PS/2鼠標(biāo)及鍵盤主要采用3.3V電壓標(biāo)準(zhǔn),如圖2.19所示的參考電路可以實(shí)現(xiàn)對兩種標(biāo)準(zhǔn)的兼容。
圖2.19 PS/2參考電路
2.2.9 RS-232串口
RS-232接口定義如表2.1所示。
表2.1 RS-232接口定義表
25芯 | 9芯 | 信號方向來自 | 縮 寫 | 描 述 |
2 | 3 | PC | TXD | 發(fā)送數(shù)據(jù) |
3 | 2 | 調(diào)制解調(diào)器 | RXD | 接收數(shù)據(jù) |
4 | 7 | PC | RTS | 請求發(fā)送 |
5 | 8 | 調(diào)制解調(diào)器 | CTS | 允許發(fā)送 |
6 | 6 | 調(diào)制解調(diào)器 | DSR | 通信設(shè)備準(zhǔn)備好 |
7 | 5 | GND | 信號地 | |
8 | 1 | 調(diào)制解調(diào)器 | CD | 載波檢測 |
20 | 4 | PC | DTR | 數(shù)據(jù)終端準(zhǔn)備好 |
22 | 9 | 調(diào)制解調(diào)器 | RI | 響鈴指示器 |
DTE DCE設(shè)備信號電流方向如表2.2所示。
表2.2 DTE DCE設(shè)備信號電流方向表
9芯DTE | 25芯DTE | 電 流 方 向 | 縮寫DCE | 描述DCE |
3 | 2 | DTE→DCE | 2 | 3 |
2 | 3 | DTE←DCE | 3 | 2 |
7 | 4 | DTE→DCE | 4 | 7 |
8 | 5 | DTE←DCE | 5 | 8 |
6 | 6 | DTE←DCE | 6 | 6 |
5 | 7 | DTE←DCE | 7 | 5 |
1 | 8 | DTE←DCE | 8 | 1 |
4 | 20 | DTE→DCE | 20 | 4 |
9 | 22 | DTE←DCE | 22 | 9 |
RS-232參考電路如圖2.20所示。
圖2.20 RS-232參考電路
2.2.10 字符型液晶顯示器接口電路設(shè)計(jì)
字符型液晶顯示器電路原理圖如圖2.21所示。
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10kW的電位器調(diào)整對比度。
第4腳:RS為寄存器選擇線,高電平時(shí)選擇數(shù)據(jù)寄存器低電平時(shí)選擇指令寄存器。
第5腳:RW為讀寫信號線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平、RW為高電平時(shí)可以讀忙信號,當(dāng)RS為高電平、RW為低電平時(shí)可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
圖2.21 字符型液晶顯示器電路原理圖
2.2.11 USB 2.0接口芯片CY7C68013電路設(shè)計(jì)
通過開發(fā)系統(tǒng)上的USB接口,可以用USB電纜直接將系統(tǒng)與主機(jī)(比如PC機(jī))相連。USB接口使用了Cypress公司的CY7C68013芯片來實(shí)現(xiàn),其電路原理圖如圖2.22所示。
圖2.22 CY7C68013原理圖
1.芯片介紹
Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB 2.0的微處理器。它集成了USB 2.0收發(fā)器、SIE(智能串行引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56MB/s,即USB 2.0允許的最大帶寬。
在FX2中,智能SIE可以硬件處理許多USB 1.1和USB 2.0協(xié)議,從而減少了開發(fā)時(shí)間和確保了USB的兼容性。GPIF(General Programmable Interface)和主/從端點(diǎn)FIFO(8位或16位數(shù)據(jù)總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡單和無縫連接接口。
CY7C68013集成了以下特性。
(1)USB 2.0收發(fā)器、SIE(智能串行引擎)和增強(qiáng)性8051微處理器。
(2)軟件運(yùn)行。8051程序從內(nèi)部RAM開始運(yùn)行,可借助下列幾種方式進(jìn)行程序裝載。
- 通過USB下載。
- 從EEPROM中裝載。
- 通過外部存儲(chǔ)器設(shè)備。
(3)4個(gè)可編程(BULK/INTERRUPT/ISOCHRONOUS)端點(diǎn),可選雙緩沖、三緩沖和四緩沖。
(4)8位或16位外部數(shù)據(jù)接口。
(5)通用可編程接口(GPIF)。
- 可以直接連接到并口,分為8位和16位。
- 可編程波形描述符和配置寄存器。
- 支持多個(gè)Ready輸入和Control輸出。
(6)集成標(biāo)準(zhǔn)8051內(nèi)核,且具有下列增強(qiáng)特性。
- 可以達(dá)到48MHz時(shí)鐘。
- 每條指令占4個(gè)時(shí)鐘周期。
- 2個(gè)UARTS。
- 3個(gè)定時(shí)/計(jì)數(shù)器。
- 擴(kuò)展的中斷系統(tǒng)。
- 兩個(gè)數(shù)據(jù)指針。
(7)采用3.3V電源系統(tǒng)。
(8)矢量USB中斷。
(9)獨(dú)立的數(shù)據(jù)緩沖區(qū)供SETUP和DATA包控制傳輸。
(10)集成I2C控制器,運(yùn)行速度可達(dá)100kHz。
(11)4個(gè)FIFO,可與ASIC和DSP等無縫連接。
(12)專門的FIFO和GPIF自動(dòng)矢量中斷。
(13)可用于DSL Modems、ATA接口、相機(jī)、Home PNA、WLAN、MP3播放器、網(wǎng)絡(luò)等。
2.USB啟動(dòng)方式和枚舉
上電時(shí),內(nèi)部邏輯會(huì)檢查連接到I2C總線上的EEPROM中的第一個(gè)字節(jié)(0xC0或0xC2)。如果是0xC0,就會(huì)使用EEPROM中的VID/PID/DID來替代內(nèi)部存儲(chǔ)值;如果是0xC2,內(nèi)部邏輯就會(huì)把EEPROM中的內(nèi)容裝入到內(nèi)部RAM中;如果沒有檢查到EEPROM,F(xiàn)X2就會(huì)使用內(nèi)部存儲(chǔ)的描述符來枚舉。其缺省值是0x04B4/ 0x8613/ 0xxxyy。
當(dāng)首次插入U(xiǎn)SB時(shí),F(xiàn)X2會(huì)通過USB電纜自動(dòng)枚舉并下載固件和USB描述符表。然后FX2將再次枚舉,通過下載的信息來定義設(shè)備。這兩個(gè)步驟就叫做重枚舉,當(dāng)設(shè)備插入時(shí)它們就立即執(zhí)行。
3.程序/數(shù)據(jù)存儲(chǔ)器
(1)內(nèi)部數(shù)據(jù)RAM。
FX2的內(nèi)部數(shù)據(jù)RAM被分成3個(gè)不同的區(qū)域:低(LOW)128字節(jié),高(Upper)128字節(jié)和特殊功能寄存器(SFR)空間。低128字節(jié)和高128字節(jié)是通用RAM,SFR包括FX2控制和狀態(tài)寄存器。
(2)外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。
FX2有8KB片上RAM(位于0x0000~0x1FFF范圍內(nèi))和512字節(jié)Scratch RAM(位于0xE000~0xE1FF)。盡管Scratch RAM從物理上來說位于片內(nèi),但是通過固件可以把它作為外部RAM一樣來尋址。FX2保留7.5KB(0xE200~0xFFFF)數(shù)據(jù)地址空間作為控制/狀態(tài)寄存器和端點(diǎn)緩沖器。
注意 | 只有數(shù)據(jù)內(nèi)存空間保留,而程序內(nèi)存(0xE000~0xFFFF)并不保留。 |
4.端點(diǎn)緩沖區(qū)
FX2包含3個(gè)64字節(jié)端點(diǎn)緩沖區(qū)和4KB可配置成不同方式的緩沖,其中3個(gè)64字節(jié)的緩沖區(qū)為EP0、EP1IN和EP1OUT。
EP0作為控制端點(diǎn)用,它是一個(gè)雙向端點(diǎn),既可為IN也可為OUT。當(dāng)需要控制傳輸數(shù)據(jù)時(shí),F(xiàn)X2固件讀寫EP0緩沖區(qū),但是8個(gè)SETUP字節(jié)數(shù)據(jù)不會(huì)出現(xiàn)在這64字節(jié)EP0端點(diǎn)緩沖區(qū)中。
EP1IN和EP1OUT使用獨(dú)立的64字節(jié)緩沖區(qū),可配置為BULK、INTERRUPT或ISOCHRONOUS傳輸方式,這兩個(gè)端點(diǎn)和EP0一樣只能被固件訪問。這一點(diǎn)與大端點(diǎn)緩沖區(qū)EP2、EP4、EP6和EP8不同,這4個(gè)端點(diǎn)緩沖區(qū)主要用來和片上或片外進(jìn)行高帶寬數(shù)據(jù)傳輸而無需固件的參與。EP2、EP4、EP6和EP8是高帶寬、大緩沖區(qū),它們可被設(shè)置成不同的方式來適應(yīng)帶寬的需求。
5.外部FIFO接口
EP2、EP4、EP6和EP8大端點(diǎn)緩沖區(qū)主要用來進(jìn)行高速(480Mbit/s)數(shù)據(jù)傳輸。可以通過FIFO數(shù)據(jù)接口與外部ASIC和DSP等處理器無縫連接來實(shí)現(xiàn)高速數(shù)據(jù)傳輸。它具有的通用接口有:Slave FIFO或GPIF(內(nèi)部主)、同步或異步時(shí)鐘、內(nèi)部或外部時(shí)鐘等。
6.中斷資源
FX2的中斷結(jié)構(gòu)是在一個(gè)標(biāo)準(zhǔn)8051單片機(jī)的基礎(chǔ)上增強(qiáng)和擴(kuò)展了部分中斷資源,中斷資源如表2.3所示。
表2.3 FX中斷資源表
FX2中斷 | 中 斷 來 源 | 中 斷 向 量 | 優(yōu) 先 級 |
IE0 | INT0 Pin | 0x0003 | 1 |
TF0 | Timer0 Overflow | 0x000B | 2 |
IE1 | INT1 Pin | 0x0013 | 3 |
TF1 | Timer1 Overflow | 0x001B | 4 |
RI_0 TI_0 | USART0 Rx Tx | 0x0023 | 5 |
TF2 | Timer2 Overflow | 0x002B | 6 |
Resume | WAKEUP/WU2 Pin | 0x0033 | 0 |
RI_1 TI_1 | USART1 Rx Tx | 0x003B | 7 |
USBINT | USB | 0x0043 | 8 |
I2CINT | I2C BUS | 0x004B | 9 |
IE4 | GPIF/FIFOs/INT4 Pin | 0x0053 | 10 |
IE5 | INT5 Pin | 0x005B | 11 |
IE6 | INT6 Pin | 0x0063 | 12 |
其中27個(gè)USB請求共享USB中斷,14個(gè)FIFO/GPIF源共享INT4。
芯片的詳細(xì)介紹與使用方法可參看芯片數(shù)據(jù)手冊。
2.2.12 電源電路設(shè)計(jì)
電源是整個(gè)系統(tǒng)能夠正常工作的基本保證,如果電源電路設(shè)計(jì)的不好,系統(tǒng)有可能不能工作,或者即使能工作但是散熱條件不好,導(dǎo)致系統(tǒng)不穩(wěn)定等異常情況。所以如何選用合適的電源芯片,以及如何合理地對電源進(jìn)行布局布線,都是值得下大功夫研究的。
在選用電源之前要仔細(xì)閱讀FPGA的芯片手冊,一般來說FPGA用到的管腳和資源越多,那么所需要的電流就越大,當(dāng)電路啟動(dòng)時(shí)FPGA的瞬間電流也比較大。通過數(shù)據(jù)手冊中提供的電氣參數(shù),確定FPGA最大需要多大的電流才能工作。
下面是幾種常使用的FPGA參考電源。
- AS117可以提供1A電流,線型電源(適用144管腳以下、5萬邏輯門以下的FPGA)。
- AS2830(或LT1085/6)可以提供3A電流,線性電源(適用240管腳以下、30萬邏輯門以下的FPGA)。
- TPS54350可以提供3A電流,開關(guān)電源(適用大封裝大規(guī)模的高端FPGA)。
AS2830電源應(yīng)用電路如圖2.23所示。
對于線性電源芯片,輸出電壓和輸入電壓的關(guān)系為:Vout=(1+RP3/RP2)×Vref。
Vref一般是1.25V,輸出假定輸入Vin為5V,Vout為1.5V,那么RP2/RP3=1/5,而RP3一般要求100~150W,那么可以選RP3=100W,RP2=500W。如果采用了固定電平輸出的芯片,只需要把RP3焊0W,RP2不焊接即可。
圖2.23 AS2830電源應(yīng)用電路
2.2.13 復(fù)位電路設(shè)計(jì)
一般復(fù)位電路采用的是低電平復(fù)位,只有個(gè)別單片機(jī)采用高電平復(fù)位方式。
常見的電平復(fù)位電路分為芯片復(fù)位和阻容復(fù)位。前者的復(fù)位信號比較穩(wěn)定,而后者容易出現(xiàn)抖動(dòng)。因此在成本允許的范圍內(nèi)我們一般推薦使用芯片復(fù)位。
常用的芯片復(fù)位有MAX708S/706S系列,它們可提供高、低電平兩種復(fù)位方式和電源監(jiān)控能力(監(jiān)控電源電壓低到一定程度自動(dòng)復(fù)位)。
IMP811是一款比較低廉的復(fù)位芯片,只有低電平復(fù)位功能,但是其體積非常小。
阻容復(fù)位典型連接電路如圖2.24所示。
圖2.24 阻容復(fù)位典型連接電路
MAX708S典型連接電路如圖2.25所示。
圖2.25 MAX708S典型連接電路
IMP811典型連接電路如圖2.26所示。
圖2.26 IMP811典型連接電路
2.2.14 時(shí)鐘電路設(shè)計(jì)
時(shí)鐘電路典型連接如圖2.27所示。
圖2.27 時(shí)鐘電路典型連接
評論