FPGA和Nios II軟核的SD卡文件系統(tǒng)實現(xiàn)方法
摘要:利用Cyclone II系列FPGA構建了一種用于SD卡讀寫的SPI控制器,并在其上實現(xiàn)了一個基于Nios II軟核處理器的嵌入式文件系統(tǒng)。此文件系統(tǒng)是通過在Nios II EDS開發(fā)平臺上移植znFAT32文件系統(tǒng)實現(xiàn)的。
關鍵詞:Cyclone II;FPGA;Nios II;SD卡;znFAT32文件系統(tǒng)
引言
在嵌入式系統(tǒng)或移動設備上使用SD卡,接口的構建和文件系統(tǒng)實現(xiàn)是必須解決的問題。本文探討在CycloneII平臺為基礎的嵌入式系統(tǒng)上,實現(xiàn)SD卡接口和文件系統(tǒng)的實現(xiàn)方法。
基于FPGA IP軟核處理器的嵌入式系統(tǒng),因其集成度高、可靈活配置和性價比方面的優(yōu)勢,已經(jīng)逐漸逼近甚至趕超采用專用集成電路(ASIC)的設計方案。
利用Nios II可定制周邊設備的特點,在FPGA中,通過DHL編程構造出SD卡需要的SPI接口和其他控制信號的方式。在此基礎上,在Nios II處理器上實現(xiàn)了一個靈活的文件系統(tǒng)。
基于FPGA和Nios II軟核構建SOPC嵌入式文件系統(tǒng),本文所做的工作包括:Nios II處理器IP軟核的最小SOPC系統(tǒng)的構建,SD卡的底層扇區(qū)讀寫驅(qū)動程序的編寫方式,znFAT32文件系統(tǒng)的移植,以及對SD卡文件操作的實現(xiàn)等。
1 基于Nios II軟核的SOPC系統(tǒng)構建
1.1 SOPC系統(tǒng)的結構
如圖1所示,基于NiosII的SOPC系統(tǒng)包括如下部分:
①系統(tǒng)核心模塊:Nios II處理器。
②處理器外圍支持電路:時鐘單元以及存儲器單元SDRAM控制器(包括存儲代碼的ROM與存儲變量的RAM)部分。
③程序下載調(diào)試模塊:JTAG接口控制器和異步通信接口(UART用于打印調(diào)試信息)。
④片上系統(tǒng)的內(nèi)部外設模塊:諸如定時器、UART、SPI、GPIO等,這部分總的功能電路可根據(jù)需要配置,在本例的實驗驗證中,主要用到SD卡的接口是SPI。
⑤EPCS控制器:由于FPGA是基于RAM的結構框架,掉電后代碼會丟失。所以FPGA需要配置一個ROM在上電后將代碼加載到RAM中運行。在SOPC系統(tǒng)中,EPCS控制器有兩個作用,一是用來幫助EDS工具將軟件程序下載到EPCS芯片中去,二是在FPGA配置完成后引導EPCS芯片中的程序加載到SDRAM中去運行。
1.2 Cyclone II構建SOPC系統(tǒng)的過程
Altera公司為在其生產(chǎn)的FPGA上構建SOPC,不僅提供了各種使用的IP核模塊,還提供了極為友好的集成開發(fā)環(huán)境Quartus II。在Quartus II中,有一個工具SOPCBuilder,可以幫助用戶通過添加和配置(給出參數(shù))IP核的方式,自動構建Verilog HDL語言硬件代碼。
在Quartus II中,構建SOPC系統(tǒng)的流程如圖2所示。
fpga相關文章:fpga是什么
51單片機相關文章:51單片機教程
c語言相關文章:c語言教程
評論