亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SoPC的SD卡控制器IP核的設(shè)計*

        2011-08-13 06:33:02余征華劉平凈
        電子技術(shù)應(yīng)用 2011年3期
        關(guān)鍵詞:扇區(qū)命令時鐘

        何 偉,余征華,張 玲,劉平凈

        (重慶大學(xué) 通信工程學(xué)院,重慶 400044)

        隨著電子產(chǎn)品的音頻、視頻等多媒體功能的不斷增強,嵌入式系統(tǒng)對存儲介質(zhì)的容量、安全、性能、價格等提出了更高的要求,而SD卡因其價格低廉、速度快、容量大和兼容性好(兼容MMC卡協(xié)議)等特點在嵌入式平臺中得到了廣泛的使用。目前在嵌入式平臺中使用SD卡的方式主要有:(1)系統(tǒng)中使用帶SD卡控制器的電路模塊或芯片。(2)將I/O口與SD卡接口連接以軟件模擬SPI時序控制其讀寫。方式(1)使用方便、控制簡單,但是增加了硬件電路復(fù)雜度和成本;方式(2)電路雖然結(jié)構(gòu)簡單,但是讀寫速度慢。

        針對上述缺陷,本文提出了基于SoPC技術(shù)的SD卡控制器的架構(gòu)方案,即在Altera公司提供的Quartus II軟件中開發(fā)SD卡控制器并在SoPC Builder中將其作為一個獨立的IP核集成到SoPC中,通過軟件驅(qū)動控制器以實現(xiàn)SD卡讀寫及文件操作,使其系統(tǒng)設(shè)計靈活、集成度高、讀寫速度快,為SOPC設(shè)計中使用非易失性存儲提供了新的方案。

        1 SD卡協(xié)議規(guī)范

        SD聯(lián)盟在2000年和2006年分別發(fā)布了SD卡規(guī)范1.0和2.0版本,SD卡規(guī)范主要包括物理層規(guī)范[1]、文件系統(tǒng)規(guī)范和安全規(guī)范三部分內(nèi)容,最大支持容量為32GB,支持的文件系統(tǒng)為FAT16和FAT32。

        SD卡內(nèi)部不僅有大量的存儲單元,還有卡接口控制器、寄存器等,外部控制器不能直接訪問存儲器,所有對SD卡的操作如讀/寫、設(shè)置塊長度、擦除等都是由卡接口控制器根據(jù)收到的命令自動完成,減少了外部控制器對存儲器操作的負擔[2]。SD卡支持SD和SPI兩種工作模式,兩種模式下SD卡的管腳意義如表1所示。SD模式下數(shù)據(jù)采用4線并行傳輸,速度較快。而SPI模式接口協(xié)議簡單,在各嵌入式平臺中的通用性好,故本設(shè)計中采用SPI模式。

        表1 SD卡管腳及其意義

        2 SD卡控制器IP核設(shè)計

        SD卡工作在SPI模式下,其總線主要有時鐘線CLK、命令線CMD、數(shù)據(jù)線 DAT和片選線 CS。SD卡控制器主要實現(xiàn)三大功能:

        (1)復(fù)位和初始化SD卡??刂破靼凑誗D卡總線協(xié)議產(chǎn)生控制時序?qū)ζ溥M行復(fù)位和初始化。

        (2)讀寫SD卡??刂破魇紫韧ㄟ^CMD線發(fā)送讀或?qū)懨詈蜕葏^(qū)地址,等收到正確的命令回執(zhí)后,將DAT線上傳輸?shù)拇袛?shù)據(jù)進行串/并轉(zhuǎn)換,然后存儲在控制器內(nèi)部緩存中 (寫數(shù)據(jù)則將控制器內(nèi)部緩存中的數(shù)據(jù)并/串轉(zhuǎn)換后從DAT線發(fā)送到SD卡),一個扇區(qū)數(shù)據(jù)(512 B)傳輸完畢后將就緒信號置為有效。

        (3)設(shè)置SD卡。設(shè)置操作與讀寫操作相同,都是發(fā)送命令和參數(shù),只是不接收和發(fā)送數(shù)據(jù)。

        需要特別指出的是:CLK信號由控制器產(chǎn)生,對SD卡的命令或數(shù)據(jù)傳輸?shù)纫幌盗胁僮骶c該時鐘同步(SD卡的最大工作時鐘為25 MHz)。

        SD控制器的功能模塊劃分如圖1所示。

        圖1 SD控制器功能模塊劃分圖

        2.1 總線接口模塊

        總線接口模塊SDInterface是整個SD卡控制器的核心,其端口信號遵循 Avalon協(xié)議規(guī)范[3],主要負責連接Avalon總線、緩存SD卡命令、緩存扇區(qū)地址、將要發(fā)送的數(shù)據(jù)送至緩存(雙口RAM)以及從緩存中讀取數(shù)據(jù)等。

        當處理器要對SD卡進行初始化時,需要寫SDInterface模塊的特定地址,之后SDInterface選擇啟動復(fù)位/初始化模塊(SDInit),由SDInit完成SD卡的初始化工作。

        向SD卡寫數(shù)據(jù)時,需要先通過SDInterface模塊將要寫的數(shù)據(jù)緩存到雙口RAM中,然后將扇區(qū)地址和寫命令(CMD24)發(fā)送到SDInterface模塊的特定地址,之后SDInterface會啟動命令控制(SDcmd)模塊并將命令和地址傳遞給后者,最后由SDcmd模塊完成一次寫操作。

        從SD卡中讀數(shù)據(jù)或?qū)D卡進行其他操作與向SD卡寫數(shù)據(jù)過程基本一致,處理器首先向SDInterface發(fā)送命令和參數(shù)(如果是讀寫操作,則參數(shù)即為扇區(qū)地址),之后SDInterface啟動SDCmd模塊并由SDCmd模塊完成后續(xù)操作 (如果是讀操作則將讀得的數(shù)據(jù)緩存到雙口RAM中)。

        在創(chuàng)建國家森林城市期間,濟寧堅持城鄉(xiāng)統(tǒng)籌上下聯(lián)動、四級聯(lián)創(chuàng)一體推進,山水林田湖草系統(tǒng)治理,實施城區(qū)森林網(wǎng)絡(luò)、環(huán)城森林、森林村鎮(zhèn)、山區(qū)森林生態(tài)屏障、濕地生態(tài)環(huán)境、森林健康體系、林業(yè)產(chǎn)業(yè)體系、森林文化旅游體系、森林管護能力、科技支撐體系等10項重點建設(shè)任務(wù),以及“水韻圣城森林濟寧”大綠化行動。今年10月成功創(chuàng)建為國家森林城市,鄒城市、曲阜市成功創(chuàng)建為縣級國家森林城市,市級以上森林公園16處,其中國家級3處,初步形成區(qū)域化森林城市群。

        2.2 初始化模塊

        對SD卡進行讀寫或其他操作前首先應(yīng)將其初始化。初始化模塊SDInit主要負責完成SD卡的初始化工作,主要工作流程如下:

        (1)當總線接口模塊使能SDInit后,SDInit通過SPITrans模塊向SD卡發(fā)送復(fù)位命令(CMD40)。

        (2)等待復(fù)位命令的回執(zhí),如果復(fù)位成功(返回值為0x01),則轉(zhuǎn)向步驟(3),否則繼續(xù)等待。

        (3)向 SD卡發(fā)送初始化命令(CMD41),等待初始化命令的回執(zhí)并將執(zhí)行結(jié)果返回給SDInterface以便通知處理器。

        2.3 命令控制模塊

        命令控制模塊SDCmd主要完成SD卡命令、參數(shù)、命令校驗值的發(fā)送和命令回執(zhí)的讀取 (如果是讀寫操作,則還要進行數(shù)據(jù)的發(fā)送和接收)。

        SDInterface模塊使能SDCmd前會將SD命令、參數(shù)傳遞給SDCmd,這樣SDCmd使能后,首先通過SPITrans模塊將得到的命令、參數(shù)發(fā)送到SD卡,然后等待命令回執(zhí),如果當前命令是讀、寫之外的其他命令,則將執(zhí)行結(jié)果返回給SDInterface模塊即可;如果是讀、寫命令則收到正確的命令回執(zhí)后,則還要將數(shù)據(jù)接收并存到緩存或發(fā)送到SD卡。

        2.4 選擇器和雙口RAM

        選擇器模塊Mux主要用來根據(jù)當前操作從SDInit模塊和SDCmd模塊的輸出信號中選擇一路送至SPITrans模塊。雙口RAM是SD控制器的緩存,用來存儲發(fā)送到SD卡和從SD卡上讀取的數(shù)據(jù)。

        2.5 串/并、并/串轉(zhuǎn)換及時鐘產(chǎn)生模塊

        SPITrans模塊主要負責串/并轉(zhuǎn)換、并/串轉(zhuǎn)換和 SD卡時鐘產(chǎn)生。當SPITrans模塊使能后,它通過對輸入時鐘進行分頻產(chǎn)生SD卡時鐘,并在8個SD卡時鐘周期內(nèi)將選擇器輸出的8位并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)發(fā)送到SD卡,同時將SD卡DAT線上的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)返回給SDInit模塊和SDCmd模塊。

        3 基礎(chǔ)讀寫設(shè)計

        4 文件系統(tǒng)移植

        讀寫操作均以扇區(qū)為單位,SD卡僅相當于一塊容量較大的Flash,移植文件系統(tǒng)可方便地與PC機或其他電子產(chǎn)品數(shù)據(jù)交換以及后期分析處理。μC/FS是一種為其提供基本的硬件訪問功能即可應(yīng)用于任何存儲介質(zhì)的FAT文件系統(tǒng),其使用標準ANSI C編寫可應(yīng)用于幾乎任何CPU。μC/FS 具有以下特點[4]:(1)支持 DOS/Windows環(huán)境下的FAT12,F(xiàn)AT16和FAT32。(2)支持多個存儲器共同工作,可以同時訪問多個存儲器。(3)多操作系統(tǒng)支持,可以很方便地移植到幾乎任何操作系統(tǒng)。(4)可以很容易地集成使用SPI模式的MMC/SD卡通用設(shè)備驅(qū)動等?;谝陨系奶攸c,μC/FS非常適用于嵌入式系統(tǒng)。

        4.1 μC/FS文件系統(tǒng)結(jié)構(gòu)分析

        μC/FS采取分層工作方式,每一層負責不同的功能,由高層的數(shù)據(jù)抽象到底層的硬件實體分工明確,其系統(tǒng)結(jié)構(gòu)層次劃分如圖2所示。

        圖2 μC/FS系統(tǒng)結(jié)構(gòu)圖

        4.2 文件系統(tǒng)實現(xiàn)

        在完成SD卡控制器及其軟件驅(qū)動并實現(xiàn)SD卡基礎(chǔ)讀寫的基礎(chǔ)上,按照μC/FS文件系統(tǒng)的接口函數(shù)編寫設(shè)備驅(qū)動程序并對系統(tǒng)參數(shù)做相應(yīng)設(shè)置即可實現(xiàn)SD卡文件操作。μC/FS文件系統(tǒng)的接口函數(shù)主要通過一個結(jié)構(gòu)體(FS__device_type)進行描述,該結(jié)構(gòu)體包含了驅(qū)動設(shè)備的名稱以及4個基本的驅(qū)動設(shè)備掛接函數(shù)的函數(shù)指針:

        其中,dev_status()函數(shù)主要實現(xiàn)FAT表狀態(tài)信息的讀取,并表明該SD設(shè)備可以使用;dev_read()函數(shù)實現(xiàn)對SD卡進行文件系統(tǒng)塊數(shù)據(jù)的讀取;dev_write()函數(shù)實現(xiàn)對SD卡進行文件系統(tǒng)塊數(shù)據(jù)的寫入;dev_ioctl()函數(shù)則主要實現(xiàn)文件操作的相關(guān)指令,包括文件格式化、數(shù)據(jù)cache回寫等操作。

        5 仿真與驗證

        對SD卡控制器的仿真驗證工作主要從時序仿真和軟件驅(qū)動控制器讀寫SD卡進行文件操作驗證兩方面進行。

        5.1 SD卡控制器的時序仿真

        在Quartus II中創(chuàng)建波形激勵文件后,得到的時序仿真結(jié)果如圖3所示。在仿真圖中可以看出,控制器在初始化過程中,首先將 CMD0(0x40)、參數(shù)(0x00000000)和命令校驗位(0x95)通過SPITrans模塊進行并/串轉(zhuǎn)后發(fā)送到SD卡的CMD線進行復(fù)位,等收到SD卡DAT線上發(fā)送回來的回執(zhí)(0x01)后,接著發(fā)送 CMD1(0x41)、參數(shù)(0x00000000)和命令校驗位(0xFF)到SD卡進行初始化。由此可見,SD卡控制器設(shè)計符合SD卡協(xié)議標準。

        5.2 文件操作驗證

        通過調(diào)用μC/FS文件系統(tǒng)提供的API函數(shù),如:FS_Fopen()打開文件 、FS_FRead()讀文件、FS_FWrite()寫文件等編寫測試程序如下:

        選用4 GB容量的SDHC卡,在PC機上將其格式化為FAT文件系統(tǒng)并創(chuàng)建文件夾HELLO和文件WORD.DOC。SD卡在線運行調(diào)試結(jié)果如圖4所示。由運行結(jié)果可知,初始化成功并識別此SD卡為SDHC(Secure Digital High Capacity)卡,卡容量為 964 256(總簇數(shù))×8(每簇扇區(qū)數(shù))×512(每扇區(qū)字節(jié)數(shù))≈3.7 GB。創(chuàng)建 test.txt文件成功后讀取根目錄 (有文件目錄hello、文件word.doc和文件test.txt),讀取文件test.txt內(nèi)容為test sd card write與寫入一致。運行結(jié)果表明文件操作正確可靠。

        通過對SD卡物理層協(xié)議和μC/FS文件系統(tǒng)的研究,成功設(shè)計了具有Avalon總線接口的SD卡控制器,并通過時序仿真、軟件驅(qū)動的方式進行仿真和調(diào)試,驗證了SD卡控制器的工作情況,在此基礎(chǔ)上實現(xiàn)了SD卡中的文件操作,使SOPC設(shè)計能與PC機或各種電子產(chǎn)品方便地進行數(shù)據(jù)交換。本設(shè)計已成功應(yīng)用在基于SOPC架構(gòu)的多用途無線防盜監(jiān)控系統(tǒng)中。

        [1]SD Group.SD specifications part 1:physical layer simplified specification version 2.0,september 25,2006.

        [2]李錦,呂柏權(quán).基于 AT91RM9200的 SD卡主控制器的設(shè)計[J].微計算機應(yīng)用,2009,30(1):64-67.

        [3]Altera.Avalon bus specificational reference manual[EB/OL].http://www.altera.com,2002.

        [4]User′s&reference manual for μC/FS V1-34a.Micriμm Technologies Corporation.2003.

        [5]鄭千洪,王黎,高曉蓉.嵌入式平臺上NAND Flash的驅(qū)動實現(xiàn)[J].微計算機信息,2009,25(4-2):102-105.

        猜你喜歡
        扇區(qū)命令時鐘
        分階段調(diào)整增加扇區(qū)通行能力策略
        南北橋(2022年2期)2022-05-31 04:28:07
        只聽主人的命令
        別樣的“時鐘”
        古代的時鐘
        移防命令下達后
        U盤故障排除經(jīng)驗談
        有趣的時鐘
        基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
        時鐘會開“花”
        這是人民的命令
        午夜桃色视频在线观看| 精品人妻无码视频中文字幕一区二区三区| 亚洲精品成人av一区二区| 久久这黄色精品免费久| 欲女在线一区二区三区| 国产亚洲2021成人乱码| 尤物99国产成人精品视频| 久久成人黄色免费网站| 精品三级国产一区二区三| 国产黄大片在线观看| 精品少妇ay一区二区三区| 九九99久久精品在免费线97| 国产精品毛片一区二区三区| 国产av久久久久精东av| 69久久夜色精品国产69| 国产精品va在线观看一| 韩国一区二区三区黄色录像| 天天躁夜夜躁狠狠躁2021a2| 亚洲男人av香蕉爽爽爽爽| 亚洲一区二区三区免费av在线| 日韩精品在线观看在线| 久久精品中文字幕大胸| 在线天堂中文字幕| 人妻尤物娇呻雪白丰挺| 亚洲中文字幕人妻久久| 麻豆精品久久久久久久99蜜桃| 午夜a福利| 国产丝袜美腿嫩模视频诱惑| 国产亚洲综合一区二区三区| 装睡被陌生人摸出水好爽| 亚洲欧美v国产蜜芽tv| 亚洲先锋影院一区二区| 日本免费精品免费视频| 国模冰莲自慰肥美胞极品人体图 | 日韩精品视频久久一区二区 | 午夜秒播久久精品麻豆| 成人区人妻精品一熟女| 国产av专区一区二区三区 | 麻豆资源在线观看视频| 无码综合天天久久综合网| 久久久久成人精品免费播放网站|