日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]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)勢,已經逐漸逼近甚至趕超采用專用集成電路(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ū)讀寫驅動程序的編寫方式,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)部分。
    ③程序下載調試模塊:JTAG接口控制器和異步通信接口(UART用于打印調試信息)。
    ④片上系統(tǒng)的內部外設模塊:諸如定時器、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公司為在其生產的FPGA上構建SOPC,不僅提供了各種使用的IP核模塊,還提供了極為友好的集成開發(fā)環(huán)境Quartus II。在Quartus II中,有一個工具SOPCBuilder,可以幫助用戶通過添加和配置(給出參數(shù))IP核的方式,自動構建Verilog HDL語言硬件代碼。
    在Quartus II中,構建SOPC系統(tǒng)的流程如圖2所示。

[!--empirenews.page--]
    將需要的IP核模塊添加完成后,下一步是用Verilog HDL語言編寫頂層文件,對定制的SOPC進行例化處理(模塊之間的連接關系定義,I/O引腳的配置),編譯頂層文件和模塊IP核,才能生成在FPGA上運行的片上系統(tǒng)。
    在添加IP核后,SOPCBuilder可生成資源列表,本文構建的系統(tǒng)列表如圖3所示。


    在實例中使用了Nios II模塊、時鐘模塊、定時器、SDRAM模塊、EPCS模塊、UART模塊和SPI共計7個模塊。
    SOPC系統(tǒng)構建完成后,模塊之間信號傳遞的時序并未確定。接下來的時序設計是SOPC能否正常運行的關鍵。在片上系統(tǒng)生成后,首先要對系統(tǒng)進行時序分析,以便使系統(tǒng)的時序符合設計邏輯的要求,并保證系統(tǒng)的正常工作,必要時要對系統(tǒng)的時序進行適當?shù)募s束。這一工作
可利用Quartus II軟件中內嵌的TimeQuest完成,也可以使用第三方提供的時序分析軟件,如PrimeTime軟件等來實現(xiàn)。
    本文采用Altera公司提供的TimeQuest來進行時序約束。經過時序約束后,對工程再編譯,可產生時序報告。通過分析時序約束報告,可對約束適當修改,這個過程可反復進行,直到滿足時序要求為止。

2 SD卡接口協(xié)議分析與驅動程序設計
2.1 SD卡通信接口協(xié)議分析
   
SD卡一般定義了SD和SPI兩種可選的總線操作方式,本文采用SPI方式與SD卡接口,可以直接利用Quartus II中提供的SPI控制器IP核。S PI協(xié)議是面向位傳輸?shù)耐酱型ㄐ艆f(xié)議。在SPI模式下,SD卡可以支持單塊與多塊的讀寫操作。
    SOPC上的SPI控制器與SD卡之間的讀寫操作過程應符合SD卡的通信協(xié)議,其讀寫交互過程如圖4所示。


    從圖4中可以看出,任何操作都是由SPI控制器的SD寫命令開始,SD卡在接收到一個合法命令后,將給予應答來響應,接下來便是數(shù)據(jù)塊的讀或寫操作。
2.2 SD卡驅動層程序的編寫
    Nios II EDS是Altera公司為其Nios II處理器開發(fā)的一款C/C++語言編程軟件,其軟件架構是基于HAL(Hardware Abstraction Layer)之上的,Nios II EDS為Nios開發(fā)者提供了編程接口、底層設備驅動、HAL API,以及C標準庫等資源。更重要的是,HAL系統(tǒng)庫為Nios II軟件設計人員提供了應用程序與底層硬件交互的設備驅動接口,從而大大簡化了應用程序的開發(fā)。此外,HAL系統(tǒng)庫還為應用程序與底層硬件驅動之間劃分了一條清晰的界線,從而大大提高了應用程序的可復用性,使得應用程序不受底層硬件變化的影響。
    片上系統(tǒng)的SPI控制器硬件邏輯,是由SOPC Builder工具將一個SPI主控器軟核封裝到系統(tǒng)中的,此SPI控制器與Nios II軟核以Avalon總線相連接。SD卡的設備驅動層分為4層,包括硬件抽象層、命令層、CRC校驗層與操作函接口層,其結構框圖如圖5所示。


    硬件抽象層主要實現(xiàn)Nios II處理器對SPI控制器相應的功能寄存器的操作。
    命令層定義了對SD卡各種操作的交互方法,包括命令碼與應答碼的定義。
    CRC校驗層主要完成校驗工作,對于命令與數(shù)據(jù)采取不同的校驗方式。命令用CRC7校驗,數(shù)據(jù)用CRC16校驗。
    操作函數(shù)接口層的作用是向znFAT32文件系統(tǒng)提供SD卡的所有操作,這其中包括了SD卡的初始化、扇區(qū)讀寫等函數(shù)接口(這是文件系統(tǒng)對SD卡進行文件操作所必需的),以供znFAT32文件系統(tǒng)調用。這里利用Nios IIEDS集成開發(fā)環(huán)境編寫的驅動實現(xiàn)SD對卡的塊讀寫(以扇區(qū)為基本單位進行讀寫操作),為SD卡掛載文件系統(tǒng)提供API函數(shù)。
    每個層的接口函數(shù)如下:
   
[!--empirenews.page--]
3 znFAT32文件系統(tǒng)的嵌入和SD卡的掛載
3.1 znFAT32文件系統(tǒng)概述
   
znFAT32是于振南為小型嵌入式設備完全獨立編寫,且開放源代碼的FAT32文件系統(tǒng)解決方案。znFAT32能夠支持眾多的存儲設備(SD卡、CF卡、Flash、U盤等),支持多個存儲器共同工作,可以支持同時訪問多個存儲器對文件的操作。對硬件資源要求低,能夠輕松地移植到51單片機、AVR、ARM、DSP、Nios II等處理器上,占用資源極少(僅占用800字節(jié)左右的RAM),非常適合嵌入式開發(fā)中文件系統(tǒng)的嵌入。其代碼完全由C語言編寫,能夠輕松閱讀,移植方便。其代碼結構如圖6所示。


    由圖6可知該文件系統(tǒng)包含兩層。
    文件系統(tǒng)代碼層——主要提供對存儲設備進行操作的各種函數(shù)。
    存儲設備接口層——主要是為了掛載不同的存儲設備。
3.2 文件系統(tǒng)SD卡的掛載
   
znFAT32文件系統(tǒng)掛載需要SD卡驅動層提供的扇區(qū)讀寫函數(shù)。將編寫的扇區(qū)讀寫函數(shù)SD_Read_Sector、SD_Write_Sector取代文件系統(tǒng)中的FAT32_ReadSector與FAT32_WriterSector兩個函數(shù)即可。根據(jù)需要的處理器編寫SD卡驅動程序十分重要,只有保證驅動程序的正確性,才能進行文件系統(tǒng)的正確掛接,才能在掛接完成后對SD卡進行文件操作。
    znFAT32文件系統(tǒng)的掛接需要對znFAT32文件系統(tǒng)提供的用于標定存儲設備的全局變量Dev_No設備號進行處理,znFAT32文件系統(tǒng)給我們提供的存儲設備宏定義如下:
   
    對不同設備進行文件操作,需要通過設備號來選擇不同的設備驅動函數(shù)。對SD卡操作需將Dev_NO定義為SDCARD。

4 文件系統(tǒng)在Nios II中的應用實例
   
完成SOPC系統(tǒng)的創(chuàng)建后,在生成的Nios II系統(tǒng)上通過Nios II EDS編程,便可將SD卡與文件系統(tǒng)掛接。
4.1 znFAT32文件系統(tǒng)的使用
   
znFAT32文件系統(tǒng)為用戶提供的對文件的基本操作函數(shù)讓我們能夠輕松地對文件進行操作。下面列舉了幾個基本函數(shù):
   
    通過上面的函數(shù),可以完成對SD卡的文件讀寫、刪除、數(shù)據(jù)添加、目錄創(chuàng)建、文件拷貝、文件重命名等操作。
4.2 SOPC系統(tǒng)對SD卡文件讀寫操作的驗證
   
為了驗證上述系統(tǒng)能否正常實現(xiàn)SD卡讀寫,筆者選用了4 GB容量的金士頓SDHC卡,進行了文件讀寫實驗。圖7為Nios II EDS給出的Deb ug信息窗口。信息顯示了在構建的系統(tǒng)上SD卡的初始化(實現(xiàn)文件系統(tǒng)的掛接),接著讀取SD卡的存儲容量、扇區(qū)大小、每簇扇區(qū)數(shù),并在根目錄下面打開名為TEST.TXT的文件,并對該文件的信息進行讀取。在一級子目錄下面,同樣建立一個TEST.TXT的文件,并對文件信息進行讀取。


    由運行結果可知,初始化成功并識別此SD卡為SDHC卡,容量為964 256(總簇數(shù))×8(每簇扇區(qū)數(shù))×512(每扇區(qū)字節(jié)數(shù))≈3 968 860 160。根目錄下的TEXT.TXT文件被打開,打開文件成功后在DIR1子目錄下面創(chuàng)建TEST.TXT。由主函數(shù)創(chuàng)建的文件日期在TimeCreat[6]={12,1,4,17,40,28)中存放,文件成功后讀取創(chuàng)建的新文件的詳細信息。
    為了進一步驗證本系統(tǒng)對SD卡的寫入操作,筆者將此SD卡通過讀卡器與PC機連接,在PC機的文件系統(tǒng)下,顯示了相同的結果。

結語
   
本文通過在CycloneⅡ系列FPGA上構建SOPC系統(tǒng),并在該系統(tǒng)上基于NiosⅡ處理器構建了SD卡文件系統(tǒng)。該系統(tǒng)以SPI接口方式與SD卡連接,文件系統(tǒng)是面向嵌入式系統(tǒng)的緊湊型開放源碼的系統(tǒng)。經過對SD卡的操作驗證,證明本文提供的方案具有設計靈活、集成度高、通用性強、移植性好等諸多優(yōu)點。在線陣CCD數(shù)據(jù)采集實驗系統(tǒng)以及數(shù)控貼片控制系統(tǒng)上得到了很好的應用。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在數(shù)字化浪潮席卷全球的今天,F(xiàn)PGA技術正成為驅動創(chuàng)新的核心引擎。2025年8月21日,深圳將迎來一場聚焦FPGA技術與產業(yè)應用的盛會——2025安路科技FPGA技術沙龍。本次沙龍以“定制未來 共建生態(tài)”為主題,匯聚行業(yè)...

關鍵字: FPGA 核心板 開發(fā)板

在現(xiàn)代電子系統(tǒng)中,現(xiàn)場可編程門陣列(FPGA)憑借其開發(fā)時間短、成本效益高以及靈活的現(xiàn)場重配置與升級等諸多優(yōu)點,被廣泛應用于各種產品領域。從通信設備到工業(yè)控制,從汽車電子到航空航天,F(xiàn)PGA 的身影無處不在。為了充分發(fā)揮...

關鍵字: 可編程門陣列 FPGA 數(shù)字電源

2025年8月4日 – 提供超豐富半導體和電子元器件?的業(yè)界知名新品引入 (NPI) 代理商貿澤電子 (Mouser Electronics) 即日起開售Altera?的Agilex? 3 FPGA C系列開發(fā)套件。此開...

關鍵字: FPGA 邊緣計算 嵌入式應用

內窺鏡泛指經自然腔道或人工孔道進入體內,并對體內器官或結構進行直接觀察和對疾病進行診斷的醫(yī)療設備,一般由光學鏡頭、冷光源、光導纖維、圖像傳感器以及機械裝置等構成。文章介紹了一款基于兩片圖像傳感器和FPGA組成的微型3D內...

關鍵字: 微創(chuàng) 3D內窺鏡 OV6946 FPGA

運用單片機和FPGA芯片作為主控制器件 , 單片機接收從PC機上傳過來的顯示內容和顯示控制命令 , 通過命令解釋和數(shù)據(jù)轉換 , 生成LED顯示屏所需要的數(shù)據(jù)信號和同步的控制信號— 數(shù)據(jù)、時鐘、行同步和面同步 。FPGA芯...

關鍵字: 單片機 FPGA LED顯示屏

在異構計算系統(tǒng)中,ARM與FPGA的協(xié)同工作已成為高性能計算的關鍵架構。本文基于FSPI(Fast Serial Peripheral Interface)四線模式,在150MHz時鐘頻率下實現(xiàn)10.5MB/s的可靠數(shù)據(jù)...

關鍵字: ARM FPGA FSPI

在全球FPGA市場被Xilinx(AMD)與Intel壟斷的格局下,國產FPGA廠商高云半導體通過構建自主IP核生態(tài)與智能時序約束引擎,走出差異化高端化路徑。本文深入解析高云半導體FPGA工具鏈的兩大核心技術——全棧IP...

關鍵字: FPGA 高云半導體

2025年6月12日,由安路科技主辦的2025 FPGA技術沙龍在南京正式召開,深圳市米爾電子有限公司(簡稱:米爾電子)作為國產FPGA的代表企業(yè)出席此次活動。米爾電子發(fā)表演講,并展出米爾基于安路飛龍派的核心板和解決方案...

關鍵字: FPGA 核心板 開發(fā)板

高 I/O、低功耗及先進的安全功能,適用于成本敏感型邊緣應用

關鍵字: FPGA I/O 機器視覺

本文討論如何為特定應用選擇合適的溫度傳感器。我們將介紹不同類型的溫度傳感器及其優(yōu)缺點。最后,我們將探討遠程和本地檢測技術的最新進展如何推動科技進步,從而創(chuàng)造出更多更先進的溫度傳感器。

關鍵字: 溫度傳感器 CPU FPGA
關閉