- 相關(guān)推薦
探索PSD813F2在FPGA配置中的應(yīng)用
摘要:可編程外圍器件PSD應(yīng)用于單片機(jī)系統(tǒng)后,簡(jiǎn)化了單片機(jī)外圍電路的設(shè)計(jì),增加了系統(tǒng)的可靠性;利用PSD與單片機(jī)組成的系統(tǒng),通過(guò)計(jì)算機(jī)串口對(duì)FPGA進(jìn)行實(shí)時(shí)在線編程、仿真和配置。
關(guān)鍵詞:可編程外圍器件(PSD) 在應(yīng)用可編程(IAP) 可編程門(mén)陣列(FPGA)
隨著單片機(jī)的廣泛應(yīng)用,其性能不斷提高,集成度也日益提高。然而,傳統(tǒng)的單片機(jī)系統(tǒng)設(shè)計(jì)需要眾多分離器件(如地址鎖存器、譯碼器、RAM、EPROM、PLD等),使得系統(tǒng)復(fù)雜、可靠性低,并且調(diào)試繁瑣、效率較低。可編程門(mén)陣列(FPGA)需要外置存儲(chǔ)器,且配置存儲(chǔ)器多為OTP型,價(jià)格較高;加之,利用FPGA的JTAG口配置FPGA距離有限,調(diào)試不甚方便。
本文主要介紹一種基于閃爍存儲(chǔ)器的在線可編程微處理器外圍器件PSD813F2組成的單片機(jī)系統(tǒng),同時(shí)利用該系統(tǒng)配置FPGA。即通過(guò)計(jì)算機(jī)串口將FPGA(本文以Altera公司10K系列為例)設(shè)計(jì)在線下載到單片機(jī)系統(tǒng),由PSD813F2配置FPGA,實(shí)現(xiàn)IAP(In Application Programming)的功能。
1 PSD813F2性能特點(diǎn)
PSD813F2是PSD(Programmable System Devices)家庭的新成員,是基于閃爍存儲(chǔ)器的在線可編程外圍器件。它將單片機(jī)系統(tǒng)所需的外圍器件集成在一起,并能與單片機(jī)進(jìn)行無(wú)縫連接,因而簡(jiǎn)化了調(diào)度,提高了可靠性;同時(shí),它與當(dāng)前流行的眾多單片機(jī)有極簡(jiǎn)單的接口,便于實(shí)現(xiàn)簡(jiǎn)單、靈活的嵌入式設(shè)計(jì);它還集成了優(yōu)化的“微控制器宏單元”邏輯結(jié)構(gòu),使得系統(tǒng)地址/數(shù)據(jù)總線可以與內(nèi)部寄存器直接互連,簡(jiǎn)化了控制總線的設(shè)計(jì)。此外,PSD813F2還具有以下一些特性:
、賰(nèi)部數(shù)據(jù)總線為8位,可方便地與各類8位單片機(jī)直接相連。如要與16位單片機(jī)相連,需用2片PSD813F2構(gòu)成16位的多路復(fù)用接口,并且地址必須循環(huán)移位,以保證MCU工作時(shí)能同時(shí)正確接收不同PSD813F2 ROM中的信息。
、趦(nèi)部包含1Mbit的大容量Flash ROM,這分為8個(gè)大小相同的塊(如128K×8bit或64K×8bit),由用戶規(guī)定的地址訪問(wèn);另外還有256K的Flash OPT ROM及16KB的SRAM,其中SRAM可配置為2K×8bit或16K×1bit。
③內(nèi)存(Flash ROM)或Flash OPT ROM可同時(shí)編程,即在執(zhí)行來(lái)自一個(gè)存儲(chǔ)器的代碼時(shí)可同時(shí)對(duì)另一個(gè)存儲(chǔ)器編程。
、軒в16個(gè)輸出宏單元和24個(gè)輸入宏單元,能方便實(shí)現(xiàn)多種邏輯組合功能,包括內(nèi)外的狀態(tài)信號(hào)產(chǎn)生、地址譯碼等。
、輲в27個(gè)可重建的I/O端口,可以用作不同的I/O端口,如單片機(jī)的I/O、PLD的I/O;最多可提供19個(gè)外部片選信號(hào),其中16個(gè)I/O可配置為漏極輸出。
⑥具有可編程電源管理功能(PMU),加之低功耗的CMOS技術(shù),使得其工作時(shí)功耗很低;另外還具有自動(dòng)檢測(cè)控制器工作的功能,使之在不工作時(shí)將PSD轉(zhuǎn)入低功耗狀態(tài)。
由于PSD813F2具有以下特性,因而能方便實(shí)現(xiàn)I/O重建、擴(kuò)展,并具有通過(guò)編程改變?cè)O(shè)計(jì)的靈活性,方便與各類不同單片機(jī)實(shí)現(xiàn)無(wú)縫連接。其內(nèi)部框圖如圖1所示。
2 系統(tǒng)設(shè)計(jì)
整個(gè)設(shè)計(jì)是利用計(jì)算機(jī)將FPGA的相關(guān)設(shè)計(jì)經(jīng)單片機(jī)傳送存儲(chǔ)器,由單片機(jī)配置PSD813F2,再由PSD813F2配置FPGA,實(shí)現(xiàn)IAP的功能,特別適于較遠(yuǎn)距離在線編程、仿真。另外,利用計(jì)算機(jī)的串行口可以與單片機(jī)進(jìn)行較長(zhǎng)距離的通信。
此外,由于PSD813F2片內(nèi)有編程邏輯宏單元(CPLD),所以在MCU與PSD813F2之間不需要地址鎖存器及外部程序存儲(chǔ)器;并且PSD與LCD、FPGA的接口地直接用其PA、PB口連接,只需在軟件設(shè)計(jì)和MCU程序中相應(yīng)設(shè)計(jì)為I/O模式或地址鎖存模式。
另外,F(xiàn)PGA的使用中通常需要時(shí)鐘信號(hào),并可能需用好幾路同的時(shí)鐘信號(hào)。在系統(tǒng)中采用ICS公司的ISC501倍頻芯片,可實(shí)現(xiàn)2×~8×共8種倍頻方式,最高可實(shí)現(xiàn)160MHz時(shí)鐘;加之使用內(nèi)部分頻,可以滿足多數(shù)設(shè)計(jì)需要。
3 MCU與PSD813F接口設(shè)計(jì)
PSD813F2具有大容量Flash ROM、16個(gè)輸出宏單元和24個(gè)輸入宏單元,因而在與單片機(jī)組成系統(tǒng)時(shí)很少需要外圍分立器件,多數(shù)通過(guò)PSD813F2中的宏單元邏輯組合產(chǎn)生與單片機(jī)連接的地址總線、數(shù)據(jù)總線、控制總線;同時(shí),通過(guò)內(nèi)部的邏輯譯碼產(chǎn)生對(duì)3塊獨(dú)立存儲(chǔ)區(qū)片選信號(hào)。另外,單片機(jī)與PSD813F2D內(nèi)部宏單元的D觸發(fā)器直通,使得設(shè)計(jì)計(jì)數(shù)器、外圍邏輯控制極為方便。
PSD813F2內(nèi)部包含3塊并行、相互獨(dú)立的存儲(chǔ)器區(qū),獨(dú)立或并行的單片機(jī)在任何時(shí)候都可以從一塊存儲(chǔ)器執(zhí)行擦寫(xiě)另一塊存儲(chǔ)器的操作。這使得單片機(jī)能夠在執(zhí)行程序期間,通過(guò)改變PSD內(nèi)控制器的內(nèi)容,而動(dòng)態(tài)改變程序和數(shù)據(jù)空間的地址范圍;同時(shí),系統(tǒng)也能對(duì)邏輯資源、擴(kuò)展輸入和輸出端口進(jìn)行編程,使系統(tǒng)具有實(shí)時(shí)ISP的能力。
4 PSD813F2與FPGA接口設(shè)計(jì)
PSD813F2可以配置Altera或Xilinx的FPGA(本文以Altera的為例)。Altera公司的EPF10K10/20是其萬(wàn)門(mén)級(jí)FPGA的代表,原來(lái)需要外置存儲(chǔ)器,且配置存儲(chǔ)器EPC1441是OTP型,價(jià)格較高;而PSD813F2具有很好的在線編程功能,并且擦寫(xiě)次數(shù)10萬(wàn)次,同時(shí),1片PSD813F2可以配置10片EPF10K10,因而其具有良好的性價(jià)比。
用PSD813F2配置Altera公司的EPF10K系列FPGA,主要有以下信號(hào):
DCLK——輸入移位時(shí)鐘;
DATA——數(shù)據(jù);
nSTATUS——狀態(tài)信號(hào);
CONF_DONE——配置是否成功信號(hào);
nCONFIG——開(kāi)始配置信號(hào)。
在實(shí)際配置電路中采用FPGA的被動(dòng)串行方式,因而EPF10K系列FPGA的MSE0、MSE1均接地;同時(shí)nSTATUS、CONF_DONE、nCONFIG均需通過(guò)上拉電阻接電源。配置接口的信號(hào)線只需由PSD813F2的PA或PB口配置即可,如圖3所示。
5 軟件設(shè)計(jì)
PSD813F2編程是在硬件基礎(chǔ)上,利用專用開(kāi)發(fā)軟件PSDsoft進(jìn)行系統(tǒng)開(kāi)發(fā)的;而PSDsoft是一套在Windows環(huán)境下運(yùn)行的軟件工具,運(yùn)用可視化界面進(jìn)行編程,具有人機(jī)交互功能,其一般開(kāi)發(fā)流程如圖4所示。
然而對(duì)于單片機(jī)系統(tǒng),更熟悉的是采用C51或匯編進(jìn)行編程。利用單片機(jī)對(duì)PSD813F2進(jìn)行配置時(shí),所使用的C51程序中最主要的是對(duì)PSD813F2進(jìn)行初始化的子程序:
void InitPSD813F2(void){ ;初始化程序
//PA0 LCD_R/W ;定義PA0為L(zhǎng)CD讀寫(xiě)
//PA1 LCD_RS ;定義PA1為L(zhǎng)CD復(fù)位
//PA2 FPGA_DCLK
【探索PSD813F2在FPGA配置中的應(yīng)用】相關(guān)文章:
淺談雌雄同體理論在《啊!拓荒者》性別身份探索中的應(yīng)用05-30
目標(biāo)規(guī)劃及其在經(jīng)濟(jì)中的應(yīng)用05-11
氣管插管在院前急救中的應(yīng)用05-29
Openprocess在熱網(wǎng)監(jiān)控系統(tǒng)中的應(yīng)用06-04
幼兒文學(xué)在幼兒教育中的應(yīng)用論文04-28
多媒體技術(shù)在鋼琴教學(xué)中應(yīng)用論文04-28
思維導(dǎo)圖在美術(shù)教學(xué)中應(yīng)用論文05-10