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

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]ATmega128L單片機的MiCrOSD卡讀寫

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


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


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

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

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

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

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

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


2.4.3 文件的刪除
    刪除文件時,不涉及數據區(qū)的操作,只須在文件的目錄登記項上作一個刪除標記,并把文件在FAT表中所占用的簇標記為“空簇”。


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

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

串口作為單片機開發(fā)的一個常用的外設,應用范圍非常廣。大部分時候,串口需要接收處理的數據長度是不定的。那么怎么才能判斷一幀數據是否結束呢,今天就以STM32單片機為例,介紹幾種接收不定長數據的方法。

關鍵字: 單片機 串口 STM32

單片機誕生于1971年,經歷了SCM、MCU、SoC三大階段。單片機由以前的1位、4位、8位、16位,發(fā)展到現在的32位甚至64位。當前國內MCU廠商已有上百家,對標進口芯片的情況非常嚴重,導致國內MCU產品將陷入同質化...

關鍵字: 單片機 MCU 市場

(微控制單元 MCU(Microcontroller Unit),又稱單片機,是把中央處理器(CentralProcess Unit; CPU)的頻率與規(guī)格做適當縮減,并將內存(memory)、計數器(Timer)、US...

關鍵字: 單片機 芯片 CPU

在疫情的影響下,出門后、用餐前使用酒精消毒已成了人們的日常,而酒精噴霧機也因此變得十分熱銷。為了避免交叉感染的風險,自動酒精噴霧器也就應運而生。不同于傳統(tǒng)手動噴霧器不美觀、手部接觸不衛(wèi)生的bug,此款自動感應酒精噴霧器使...

關鍵字: 芯嶺技術 方案開發(fā) 解決方案 單片機

在實際的單片機控制系統(tǒng)中,有時候會使用數字邏輯芯片對單片機和受控元件進行隔離,以保護單片機,或者令單片機更好地對后級進行控制。

關鍵字: 單片機 數字邏輯芯片 受控元件

MH32F103AVET6使用高性能的32位內核,內置了多達2個高級定時器、10個通用定時器、2個基本定時器、3個12位的ADC、2個12位的DAC,還包含標準和先進的通信接口包括:3個SPI接口、2個I2S接口、2個I...

關鍵字: 單片機 MCU

最近由于換季,天氣突然的轉涼,大家也是直呼好冷。天冷了自然是要注意防寒保暖。一個能夠當充電寶用的暖手寶會是你最好的陪伴。暖手寶是一種非常便捷易用的發(fā)熱工具,并且體形小巧,可以隨身攜帶并輕易握在手中,也可以放置在身上的其它...

關鍵字: 芯嶺技術 方案開發(fā) 解決方案 單片機

XL32F003 系列微控制器采用高性能的 32 位 ARM?Cortex?- M0+ 內核,寬電壓工作范圍的MCU。嵌入高達64 Kbytes flash和8 Kbytes SRAM存儲器,最高工作頻率32 MHz。包...

關鍵字: 單片機 MCU

電動洗鼻器是一種全新的鼻腔清潔工具,一般是通過水壓將生理鹽水送進鼻腔,借助于生理鹽水的殺菌作用及水流的沖擊力,將鼻腔內已聚集的致病菌及污洉排出,從而使鼻腔恢復正常的生理環(huán)境,恢復鼻腔的自我排毒功能,達到保護鼻腔的目的。讓...

關鍵字: 芯嶺技術 方案開發(fā) 解決方案 單片機

大家好,我是小舒,今天我?guī)砹艘粋€開源項目。學習單片機的小伙伴,對J-link一定不會陌生。J-link可以使用JATA和SWD接口進行在線Debug和程序的燒錄,曾經一段時間,某寶上J-Link鋪天蓋地,各種各樣,價格...

關鍵字: 開源項目 J-link 單片機

嵌入式軟件

15715 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉