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