www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]ATmega128L單片機(jī)的MiCrOSD卡讀寫(xiě)

摘要 針對(duì)電腦橫機(jī)控制系統(tǒng)對(duì)花型文件數(shù)據(jù)存儲(chǔ)的要求,在ATmegal28L單片機(jī)基礎(chǔ)上采用Micro SD卡實(shí)現(xiàn)嵌入式文件系統(tǒng)。文章介紹了Micro SD卡的特點(diǎn)、FAT文件系統(tǒng)、SPI模式協(xié)議以及硬件接口的實(shí)現(xiàn)。通過(guò)ATmegal28L的SPI模式與Micro SD卡進(jìn)行同步數(shù)據(jù)傳輸,實(shí)現(xiàn)Micro SD卡的讀寫(xiě),以FAT32文件格式建立相應(yīng)的文件系統(tǒng),把數(shù)據(jù)以文件方式寫(xiě)入Micro SD卡。通過(guò)單片機(jī)向Micro SD卡發(fā)送讀寫(xiě)扇區(qū)命令,完成文件的創(chuàng)建、打開(kāi)、讀寫(xiě)、刪除等操作。
關(guān)鍵詞 ATmegal28L Micro SD卡 串行外設(shè)協(xié)議 文件分配表


引 言
    隨著工業(yè)控制系統(tǒng)功能的增強(qiáng),系統(tǒng)對(duì)于存儲(chǔ)介質(zhì)的安全、容量、性能的要求越來(lái)越高。Micro SD卡是在SD卡和Mini SD卡基礎(chǔ)上發(fā)展起來(lái)的一種多功能存儲(chǔ)卡,具備串行和隨機(jī)存取能力,可以通過(guò)專用優(yōu)化速度的串行接口訪問(wèn),數(shù)據(jù)傳輸可靠,安全性好,傳輸速度快,存儲(chǔ)容量大,體積小,被列為目前全球最小的迷你存儲(chǔ)卡。Micro SD卡支持SD模式和SPI模式。隨著高性能單片機(jī)的性能不斷提高,利用高性能、低功耗的AVR 8位ATmegal28L單片機(jī)的串行外設(shè)接口SPI與Micro SD卡之間進(jìn)行高速同步數(shù)據(jù)傳輸,設(shè)計(jì)開(kāi)發(fā)了一種嵌入式文件系統(tǒng)。


1 硬件電路設(shè)計(jì)
    MicrO SD卡的接口可以支持兩種操作模式:SD模式和SPI模式。主機(jī)系統(tǒng)可以選擇其中任一模式。SD卡模式允許4線的高速數(shù)據(jù)傳輸,傳輸速率高,但是大部分單片機(jī)無(wú)此接口,使用軟件模擬協(xié)議復(fù)雜。SPI模式使用簡(jiǎn)單通用的SPI通道接口就可實(shí)現(xiàn)數(shù)據(jù)傳輸,目前大多數(shù)單片機(jī)提供SPI接口。SPI模式的優(yōu)勢(shì)在于可以使用標(biāo)準(zhǔn)主機(jī),從而把外設(shè)減少到最低。SPI模式相對(duì)于SD模式的缺點(diǎn)是損失了傳輸速度;但是目前的微處理器的處理速度越來(lái)越高,利用SPI模式大都能滿足工程需要。
    Micro SD卡要求用全雙工、8位的SPI操作。
ATmegal28L單片機(jī)和Micro SD卡之間只需要4根信號(hào)線就可以完成數(shù)據(jù)的讀寫(xiě),當(dāng)CS信號(hào)線為低電平時(shí),主機(jī)開(kāi)始所有的總線傳輸。數(shù)據(jù)從單片機(jī)的MOSI引腳同步輸入Micro SD卡的DI引腳,并由Micro SD卡的DO線同步輸入單片機(jī)的MISO引腳,數(shù)據(jù)在CLK信號(hào)的上升沿同步輸入和輸出。在每個(gè)數(shù)據(jù)傳輸?shù)慕Y(jié)尾還必須提供8個(gè)額外的時(shí)鐘,以允許Micro SD卡完成任何未完結(jié)的操作。由于Micro SD卡的電壓為3.3 V,所以選擇需要支持3.3 V的I/O端口輸出的ATmegal28L單片機(jī)。另外,使用SPI模式時(shí),為了防止在無(wú)卡接人或卡驅(qū)動(dòng)器呈高阻態(tài)時(shí)總線懸空,根據(jù)SD卡規(guī)范,這些信號(hào)需要在主機(jī)端用10 kQ~100 kΩ的上拉電阻,其硬件連接電路如圖1所示。

2 軟件設(shè)計(jì)
2.1 Micro SD卡初始化為SPI總線模式
    ATmegal28L單片機(jī)包含一個(gè)串行外設(shè)接口SPI,可以方便地對(duì)Micro SD卡接口進(jìn)行配置。為了配置時(shí)鐘和數(shù)據(jù)長(zhǎng)度,需要對(duì)SPI控制寄存器SPCR和SPI狀態(tài)寄存器SPSR進(jìn)行設(shè)置:使能SPI,選擇單片機(jī)為主機(jī)模式,時(shí)鐘上升沿鎖存數(shù)據(jù),并且對(duì)SPI時(shí)鐘進(jìn)行設(shè)置。Micro SD卡的SPI模式通信由主機(jī)控制。每一個(gè)指令或數(shù)據(jù)塊由8位的字節(jié)和CS標(biāo)志構(gòu)成,SPI通信由指令、響應(yīng)和數(shù)據(jù)組成。主機(jī)先將Micro SD卡的片選CS置低,激活MicroSD卡進(jìn)人工作狀態(tài)。[!--empirenews.page--]
    剛上電時(shí),Micro SD卡缺省使用專有的SD總線協(xié)議。將Micro SD卡切換到SPI模式,主機(jī)需要發(fā)出命令(2MD0(GO_IDLE_STATE)。Micro SD卡會(huì)檢測(cè)到SPI模式選擇信息,因?yàn)榭ㄟx擇(CS)引腳在該命令和其他所有SPI命令傳送過(guò)程中都保持為低電平。Micro SD卡以R1作為響應(yīng)??臻e狀態(tài)位被置為高電平,此時(shí)Micro SD卡進(jìn)入空閑狀態(tài),此階段的SPI時(shí)鐘頻率不能超過(guò)400kHz(將SPCR寄存器設(shè)置為0x53)。Micro SD卡進(jìn)入SPI模式后,主機(jī)應(yīng)該先發(fā)一條初始化指令CMD1。此時(shí)可將SPI頻率設(shè)置為高速模式(將SPCR寄存器設(shè)置為0x50)。然后發(fā)送命令CM1359決定是否開(kāi)啟CRC校驗(yàn),設(shè)置讀、寫(xiě)塊數(shù)據(jù)長(zhǎng)度,最后延遲8個(gè)時(shí)鐘后返回。MicroSD初始化流程如圖2所示。

2.2 Micro SD卡讀寫(xiě)單塊數(shù)據(jù)
    從Micro SD卡中讀取一個(gè)數(shù)據(jù)塊只需要主機(jī)發(fā)送CMDl7(READl_SINGLE_BLOCK)命令,并將起始地址作為參數(shù)(此地址必須和介質(zhì)上一個(gè)塊的起始位置對(duì)齊),然后.Micro SD卡會(huì)驗(yàn)證這個(gè)字節(jié)地址,并以一個(gè)R1命令作為響應(yīng)。完成了Micro SD卡讀取操作后,先發(fā)送一個(gè)起始數(shù)據(jù)命令,接著發(fā)送固定數(shù)量的數(shù)據(jù),最后是兩個(gè)字節(jié)CRC校驗(yàn)。
    從Mimro SD卡中寫(xiě)入一個(gè)數(shù)據(jù)塊和讀取數(shù)據(jù)塊相似,需要主機(jī)發(fā)送CMI)24(wRITE_BLOCK)命令啟動(dòng)寫(xiě)操作過(guò)程,Micro SD卡將以R1命令響應(yīng)格式進(jìn)行應(yīng)答。如果命令響應(yīng),則進(jìn)行寫(xiě)操作,主機(jī)發(fā)送起始令牌,然后發(fā)送固定數(shù)量的數(shù)據(jù)字節(jié)(512字節(jié)),返回一個(gè)數(shù)據(jù)響應(yīng)令牌指示需要寫(xiě)入的數(shù)據(jù)是否完成,最后是兩個(gè)字節(jié)的CRC校驗(yàn),讀寫(xiě)單塊數(shù)據(jù)流程如圖3所示。

2.3 Micro SD卡的文件存儲(chǔ)
    為了方便ATmegal28L單片機(jī)對(duì)Micro SD卡中文件進(jìn)行操作,以及要使Micro sD卡的數(shù)據(jù)能在PC機(jī)上得到正確的訪問(wèn),需要在Micro SD卡上創(chuàng)建它們支持的文件系統(tǒng),這就需要設(shè)計(jì)自己的文件管理系統(tǒng)FAT。FAT文件系統(tǒng)有FATl2、FATl6、FAT32,它們的主要不同是在磁盤分配表結(jié)構(gòu)中每個(gè)記錄所占的位數(shù)不同。FAT32文件分配表每一表項(xiàng)為32位。本文選擇建立FAT32文件系統(tǒng)。
    文件分配表系統(tǒng)的分區(qū)應(yīng)該有以下幾部分:
    ①保留區(qū),F(xiàn)AT32稱這個(gè)區(qū)域?yàn)橐龑?dǎo)扇區(qū)(bootsec-tOr)。它是操作系統(tǒng)可以直接訪問(wèn)的第一個(gè)扇區(qū),主要包括與引導(dǎo)操作系統(tǒng)有關(guān)的引導(dǎo)參數(shù)和引導(dǎo)程序,還有就是與FAT文件系統(tǒng)有關(guān)的BPB參數(shù)(Bios ParameterBlock)。
    ②文件分配表,記錄磁盤上簇的分配情況,在條件允許的情況下,通常都會(huì)把文件分配表全部讀到內(nèi)存中去。
    ③根目錄區(qū),記錄根目錄的信息。文件和目錄數(shù)據(jù)區(qū),是各種文件數(shù)據(jù)的實(shí)際存放區(qū)域。
    一個(gè)文件管理系統(tǒng)的工作過(guò)程主要有三步:第一步是讀取MBR區(qū),主要是讀DPT表,了解存儲(chǔ)設(shè)備分區(qū)情況。第二步,讀取BPB信息,確定FAT文件系統(tǒng)的各種基本參數(shù)。第三步,顯示當(dāng)前目錄位置。文件系統(tǒng)的實(shí)現(xiàn),就是把對(duì)應(yīng)的文件目錄操作拆成相應(yīng)的扇區(qū)讀寫(xiě)命令就可以了。因此,應(yīng)該在FAT初始化的時(shí)候?qū)⒆x寫(xiě)扇區(qū)函數(shù)指針指向Micro SD卡的讀寫(xiě)函數(shù):
   

2.4 FAT32文件系統(tǒng)應(yīng)用接口函數(shù)的實(shí)現(xiàn)
    FAT32文件系統(tǒng)向應(yīng)用層提供的接口有:FAT_FindFreeCluster(),查找空簇;FAT_ModifyFAT(),修改FAT項(xiàng);FAT_OpenDir(),打開(kāi)目錄;FAT_MkDir(),建目錄;FAT_RmI)ir(),刪除目錄;FAT_Rename(),重命名;FAT_Create(),創(chuàng)建文件;FAT_Open(),打開(kāi)文件;FAT_write(),寫(xiě)文件;FAT_Read(),讀文件;FAT_Close(),關(guān)閉打開(kāi)文件;FAT_Delete(),刪除文件。下面對(duì)文件的打開(kāi)、讀/寫(xiě)和刪除函數(shù)接口作詳細(xì)介紹。[!--empirenews.page--]
2.4.1 文件的打開(kāi)
    在該文件系統(tǒng)中,要讀/寫(xiě)一個(gè)文件必須先打開(kāi)它,這里通過(guò)調(diào)用函數(shù)FAT_Open()實(shí)現(xiàn),文件的打開(kāi)可以用只讀、只寫(xiě)、讀寫(xiě)的方式打開(kāi)。其中,以只讀的方式打開(kāi)文件時(shí),如果文件不存在,則打開(kāi)文件錯(cuò)誤;以只寫(xiě)的方式打開(kāi)文件,如果文件存在,則文件先被刪除然后再建立這個(gè)文件;以讀寫(xiě)的方式打開(kāi)文件與只寫(xiě)方式不同,若文件存在,則不會(huì)被刪除而是直接打開(kāi),否則就和只寫(xiě)方式一樣。下面以只寫(xiě)方式打開(kāi)文件為例:
    首先,函數(shù)要查找空閑的打開(kāi)文件登記項(xiàng),如果沒(méi)有找到則不能打開(kāi)文件,如果找到則記錄。然后,獲取文件的內(nèi)部名稱及所在目錄的首簇號(hào),判斷目錄是否存在。最后,獲?。篎DT登記項(xiàng),判斷是否為目錄,刪除文件,添加FDT表項(xiàng),修改打開(kāi)文件的信息登記項(xiàng),返回句柄。文件以只寫(xiě)方式打開(kāi)文件的流程如圖4所示。

2.4.2 文件的讀/寫(xiě)
    SD卡上文件都是以簇為單位存取的。讀SD卡上的文件,首先要在FAT初始化之前對(duì)SD卡初始化,將FAT中讀寫(xiě)一個(gè)扇區(qū)指向SD卡中讀寫(xiě)扇區(qū)函數(shù),然后獲取文件所在邏輯盤的信息,計(jì)算數(shù)據(jù)所在扇區(qū),讀取扇區(qū)中的數(shù)據(jù),最后調(diào)整文件指針。


2.4.3 文件的刪除
    刪除文件時(shí),不涉及數(shù)據(jù)區(qū)的操作,只須在文件的目錄登記項(xiàng)上作一個(gè)刪除標(biāo)記,并把文件在FAT表中所占用的簇標(biāo)記為“空簇”。


結(jié) 語(yǔ)
    本設(shè)計(jì)將Micro SD卡的存儲(chǔ)方式應(yīng)用到電腦橫機(jī)控制系統(tǒng)中,簡(jiǎn)化了花型文件數(shù)據(jù)存儲(chǔ)設(shè)計(jì),減小了系統(tǒng)的尺寸,提高了系統(tǒng)的可靠性,使得花型文件的讀出和存取簡(jiǎn)單易行,裁剪了FAT32實(shí)現(xiàn)了嵌入式文件系統(tǒng),提高了系統(tǒng)的存儲(chǔ)能力。采用ATmegal28L高性能單片機(jī)的串行外設(shè)接口SPI,滿足訪問(wèn)Micro SD卡的功能要求,加快了整個(gè)系統(tǒng)的設(shè)計(jì)進(jìn)程。實(shí)踐證明,該文件系統(tǒng)讀取Mi—cro SD卡上花型文件的速度滿足該控制系統(tǒng)的要求。該嵌入式文件系統(tǒng)只需對(duì)底層驅(qū)動(dòng)進(jìn)行簡(jiǎn)單修改就可移植到CF卡、閃存等其他的存儲(chǔ)介質(zhì)上。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉