PSD813F2在FPGA配置中的應(yīng)用
關(guān)鍵詞:可編程外圍器件(PSD) 在應(yīng)用可編程(IAP) 可編程門陣列(FPGA)
隨著單片機(jī)的廣泛應(yīng)用,其性能不斷提高,集成度也日益提高。然而,傳統(tǒng)的單片機(jī)系統(tǒng)設(shè)計需要眾多分離器件(如地址鎖存器、譯碼器、RAM、EPROM、PLD等),使得系統(tǒng)復(fù)雜、可靠性低,并且調(diào)試繁瑣、效率較低。可編程門陣列(FPGA)需要外置存儲器,且配置存儲器多為OTP型,價格較高;加之,利用FPGA的JTAG口配置FPGA距離有限,調(diào)試不甚方便。
本文主要介紹一種基于閃爍存儲器的在線可編程微處理器外圍器件PSD813F2組成的單片機(jī)系統(tǒng),同時利用該系統(tǒng)配置FPGA。即通過計算機(jī)串口將FPGA(本文以Altera公司10K系列為例)設(shè)計在線下載到單片機(jī)系統(tǒng),由PSD813F2配置FPGA,實現(xiàn)IAP(In Application Programming)的功能。
1 PSD813F2性能特點
PSD813F2是PSD(Programmable System Devices)家庭的新成員,是基于閃爍存儲器的在線可編程外圍器件。它將單片機(jī)系統(tǒng)所需的外圍器件集成在一起,并能與單片機(jī)進(jìn)行無縫連接,因而簡化了調(diào)度,提高了可靠性;同時,它與當(dāng)前流行的眾多單片機(jī)有極簡單的接口,便于實現(xiàn)簡單、靈活的嵌入式設(shè)計;它還集成了優(yōu)化的“微控制器宏單元”邏輯結(jié)構(gòu),使得系統(tǒng)地址/數(shù)據(jù)總線可以與內(nèi)部寄存器直接互連,簡化了控制總線的設(shè)計。此外,PSD813F2還具有以下一些特性:
①內(nèi)部數(shù)據(jù)總線為8位,可方便地與各類8位單片機(jī)直接相連。如要與16位單片機(jī)相連,需用2片PSD813F2構(gòu)成16位的多路復(fù)用接口,并且地址必須循環(huán)移位,以保證MCU工作時能同時正確接收不同PSD813F2 ROM中的信息。
②內(nèi)部包含1Mbit的大容量Flash ROM,這分為8個大小相同的塊(如128K8bit或64K8bit),由用戶規(guī)定的地址訪問;另外還有256K的Flash OPT ROM及16KB的SRAM,其中SRAM可配置為2K8bit或16K1bit。
③內(nèi)存(Flash ROM)或Flash OPT ROM可同時編程,即在執(zhí)行來自一個存儲器的代碼時可同時對另一個存儲器編程。
④帶有16個輸出宏單元和24個輸入宏單元,能方便實現(xiàn)多種邏輯組合功能,包括內(nèi)外的狀態(tài)信號產(chǎn)生、地址譯碼等。
⑤帶有27個可重建的I/O端口,可以用作不同的I/O端口,如單片機(jī)的I/O、PLD的I/O;最多可提供19個外部片選信號,其中16個I/O可配置為漏極輸出。
⑥具有可編程電源管理功能(PMU),加之低功耗的CMOS技術(shù),使得其工作時功耗很低;另外還具有自動檢測控制器工作的功能,使之在不工作時將PSD轉(zhuǎn)入低功耗狀態(tài)。
由于PSD813F2具有以下特性,因而能方便實現(xiàn)I/O重建、擴(kuò)展,并具有通過編程改變設(shè)計的靈活性,方便與各類不同單片機(jī)實現(xiàn)無縫連接。其內(nèi)部框圖如圖1所示。
2 系統(tǒng)設(shè)計
整個設(shè)計是利用計算機(jī)將FPGA的相關(guān)設(shè)計經(jīng)單片機(jī)傳送存儲器,由單片機(jī)配置PSD813F2,再由PSD813F2配置FPGA,實現(xiàn)IAP的功能,特別適于較遠(yuǎn)距離在線編程、仿真。另外,利用計算機(jī)的串行口可以與單片機(jī)進(jìn)行較長距離的通信。
此外,由于PSD813F2片內(nèi)有編程邏輯宏單元(CPLD),所以在MCU與PSD813F2之間不需要地址鎖存器及外部程序存儲器;并且PSD與LCD、FPGA的接口地直接用其PA、PB口連接,只需在軟件設(shè)計和MCU程序中相應(yīng)設(shè)計為I/O模式或地址鎖存模式。
另外,F(xiàn)PGA的使用中通常需要時鐘信號,并可能需用好幾路同的時鐘信號。在系統(tǒng)中采用ICS公司的ISC501倍頻芯片,可實現(xiàn)2~8共8種倍頻方式,最高可實現(xiàn)160MHz時鐘;加之使用內(nèi)部分頻,可以滿足多數(shù)設(shè)計需要。
系統(tǒng)設(shè)計框圖如2所示。
3 MCU與PSD813F接口設(shè)計
PSD813F2具有大容量Flash ROM、16個輸出宏單元和24個輸入宏單元,因而在與單片機(jī)組成系統(tǒng)時很少需要外圍分立器件,多數(shù)通過PSD813F2中的宏單元邏輯組合產(chǎn)生與單片機(jī)連接的地址總線、數(shù)據(jù)總線、控制總線;同時,通過內(nèi)部的邏輯譯碼產(chǎn)生對3塊獨立存儲區(qū)片選信號。另外,單片機(jī)與PSD813F2D內(nèi)部宏單元的D觸發(fā)器直通,使得設(shè)計計數(shù)器、外圍邏輯控制極為方便。
PSD813F2內(nèi)部包含3塊并行、相互獨立的存儲器區(qū),獨立或并行的單片機(jī)在任何時候都可以從一塊存儲器執(zhí)行擦寫另一塊存儲器的操作。這使得單片機(jī)能夠在執(zhí)行程序期間,通過改變PSD內(nèi)控制器的內(nèi)容,而動態(tài)改變程序和數(shù)據(jù)空間的地址范圍;同時,系統(tǒng)也能對邏輯資源、擴(kuò)展輸入和輸出端口進(jìn)行編程,使系統(tǒng)具有實時ISP的能力。
4 PSD813F2與FPGA接口設(shè)計
PSD813F2可以配置Altera或Xilinx的FPGA(本文以Altera的為例)。Altera公司的EPF10K10/20是其萬門級FPGA的代表,原來需要外置存儲器,且配置存儲器EPC1441是OTP型,價格較高;而PSD813F2具有很好的在線編程功能,并且擦寫次數(shù)10萬次,同時,1片PSD813F2可以配置10片EPF10K10,因而其具有良好的性價比。
用PSD813F2配置Altera公司的EPF10K系列FPGA,主要有以下信號:
DCLK――輸入移位時鐘;
DATA――數(shù)據(jù);
nSTATUS――狀態(tài)信號;
CONF_DONE――配置是否成功信號;
nCONFIG――開始配置信號。
在實際配置電路中采用FPGA的被動串行方式,因而EPF10K系列FPGA的MSE0、MSE1均接地;同時nSTATUS、CONF_DONE、nCONFIG均需通過上拉電阻接電源。配置接口的信號線只需由PSD813F2的PA或PB口配置即可,如圖3所示。
5 軟件設(shè)計
PSD813F2編程是在硬件基礎(chǔ)上,利用專用開發(fā)軟件PSDsoft進(jìn)行系統(tǒng)開發(fā)的;而PSDsoft是一套在Windows環(huán)境下運行的軟件工具,運用可視化界面進(jìn)行編程,具有人機(jī)交互功能,其一般開發(fā)流程如圖4所示。
然而對于單片機(jī)系統(tǒng),更熟悉的是采用C51或匯編進(jìn)行編程。利用單片機(jī)對PSD813F2進(jìn)行配置時,所使用的C51程序中最主要的是對PSD813F2進(jìn)行初始化的子程序:
void InitPSD813F2(void){ ;初始化程序
//PA0 LCD_R/W ;定義PA0為LCD讀寫
//PA1 LCD_RS ;定義PA1為LCD復(fù)位
//PA2 FPGA_DCLK ;定義PA2為FPGA時鐘
PSDPACtrlReg=0x03 ;//設(shè)定PA口的讀寫模式
PSDPADir=0xff;
PSDPADri=0x00;
//PB0 FPGA-CON_DONE
//PB1 FPGA-nSTATUS
//PB2 FPGA-DATA
//PB3 FPGA-nCONFIG
//PB4 LCD-CS_LCD
PSDPBCtrlReg=0x00 ;//設(shè)定PB為MCU的讀寫
PSDPBDir=0x0fc ;//設(shè)定PB讀寫模式
PSDPBDri=0x00;
}
完整的PSD源程序請見網(wǎng)絡(luò)補(bǔ)充版(http://www.dpj.com.cn)。
結(jié)束語
由于PSD813F2具有高的集成度和很強(qiáng)的在線編程功能,與單片機(jī)組成系統(tǒng)后可方便地嵌入FPGA的配置中。實際開發(fā)的系統(tǒng)能夠滿足各類FPGA配置的要求,同時,實際用VC開發(fā)的應(yīng)用于實際的程序下載到PSD后,可實時下載程序到PSD,也可上載PSD的任一MainFlash的數(shù)據(jù)到計算機(jī),也可隨時監(jiān)測PSD片內(nèi)任一RAM中的數(shù)據(jù),真正做到了ISP、IAP。另外,配置Altera的FPGA與Xilinx的FPGA時,達(dá)到了與外置配置存儲器完全相同的效果。
評論