FPGA和Nios II軟核的SD卡文件系統實(shí)現方法
將需要的IP核模塊添加完成后,下一步是用Verilog HDL語(yǔ)言編寫(xiě)頂層文件,對定制的SOPC進(jìn)行例化處理(模塊之間的連接關(guān)系定義,I/O引腳的配置),編譯頂層文件和模塊IP核,才能生成在FPGA上運行的片上系統。
在添加IP核后,SOPCBuilder可生成資源列表,本文構建的系統列表如圖3所示。本文引用地址:http://dyxdggzs.com/article/189745.htm
在實(shí)例中使用了Nios II模塊、時(shí)鐘模塊、定時(shí)器、SDRAM模塊、EPCS模塊、UART模塊和SPI共計7個(gè)模塊。
SOPC系統構建完成后,模塊之間信號傳遞的時(shí)序并未確定。接下來(lái)的時(shí)序設計是SOPC能否正常運行的關(guān)鍵。在片上系統生成后,首先要對系統進(jìn)行時(shí)序分析,以便使系統的時(shí)序符合設計邏輯的要求,并保證系統的正常工作,必要時(shí)要對系統的時(shí)序進(jìn)行適當的約束。這一工作
可利用Quartus II軟件中內嵌的TimeQuest完成,也可以使用第三方提供的時(shí)序分析軟件,如PrimeTime軟件等來(lái)實(shí)現。
本文采用Altera公司提供的TimeQuest來(lái)進(jìn)行時(shí)序約束。經(jīng)過(guò)時(shí)序約束后,對工程再編譯,可產(chǎn)生時(shí)序報告。通過(guò)分析時(shí)序約束報告,可對約束適當修改,這個(gè)過(guò)程可反復進(jìn)行,直到滿(mǎn)足時(shí)序要求為止。
2 SD卡接口協(xié)議分析與驅動(dòng)程序設計
2.1 SD卡通信接口協(xié)議分析
SD卡一般定義了SD和SPI兩種可選的總線(xiàn)操作方式,本文采用SPI方式與SD卡接口,可以直接利用Quartus II中提供的SPI控制器IP核。S PI協(xié)議是面向位傳輸的同步串行通信協(xié)議。在SPI模式下,SD卡可以支持單塊與多塊的讀寫(xiě)操作。
SOPC上的SPI控制器與SD卡之間的讀寫(xiě)操作過(guò)程應符合SD卡的通信協(xié)議,其讀寫(xiě)交互過(guò)程如圖4所示。
從圖4中可以看出,任何操作都是由SPI控制器的SD寫(xiě)命令開(kāi)始,SD卡在接收到一個(gè)合法命令后,將給予應答來(lái)響應,接下來(lái)便是數據塊的讀或寫(xiě)操作。
2.2 SD卡驅動(dòng)層程序的編寫(xiě)
Nios II EDS是Altera公司為其Nios II處理器開(kāi)發(fā)的一款C/C++語(yǔ)言編程軟件,其軟件架構是基于HAL(Hardware Abstraction Layer)之上的,Nios II EDS為Nios開(kāi)發(fā)者提供了編程接口、底層設備驅動(dòng)、HAL API,以及C標準庫等資源。更重要的是,HAL系統庫為Nios II軟件設計人員提供了應用程序與底層硬件交互的設備驅動(dòng)接口,從而大大簡(jiǎn)化了應用程序的開(kāi)發(fā)。此外,HAL系統庫還為應用程序與底層硬件驅動(dòng)之間劃分了一條清晰的界線(xiàn),從而大大提高了應用程序的可復用性,使得應用程序不受底層硬件變化的影響。
片上系統的SPI控制器硬件邏輯,是由SOPC Builder工具將一個(gè)SPI主控器軟核封裝到系統中的,此SPI控制器與Nios II軟核以Avalon總線(xiàn)相連接。SD卡的設備驅動(dòng)層分為4層,包括硬件抽象層、命令層、CRC校驗層與操作函接口層,其結構框圖如圖5所示。
硬件抽象層主要實(shí)現Nios II處理器對SPI控制器相應的功能寄存器的操作。
命令層定義了對SD卡各種操作的交互方法,包括命令碼與應答碼的定義。
CRC校驗層主要完成校驗工作,對于命令與數據采取不同的校驗方式。命令用CRC7校驗,數據用CRC16校驗。
操作函數接口層的作用是向znFAT32文件系統提供SD卡的所有操作,這其中包括了SD卡的初始化、扇區讀寫(xiě)等函數接口(這是文件系統對SD卡進(jìn)行文件操作所必需的),以供znFAT32文件系統調用。這里利用Nios IIEDS集成開(kāi)發(fā)環(huán)境編寫(xiě)的驅動(dòng)實(shí)現SD對卡的塊讀寫(xiě)(以扇區為基本單位進(jìn)行讀寫(xiě)操作),為SD卡掛載文件系統提供API函數。
每個(gè)層的接口函數如下:
fpga相關(guān)文章:fpga是什么
51單片機相關(guān)文章:51單片機教程
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論