《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于STM32F103XX微處理器的Micr0 SD卡讀寫
基于STM32F103XX微處理器的Micr0 SD卡讀寫
徐建功,趙 捷,李 偉,田 杰
摘要: 基于STM32F103XX微控制器的遠程智能心臟檢測儀采用Micro SD作為存儲介質保存特定的心電信號。所存Micro SD卡中的存儲數據要能夠在計算機上直接存取,需要存儲的數據以FAT32文件格式寫入Micro SD卡。研究了使用STM32F103XX微處理器,采用SPI模式與Micro SD接口,將數據寫入Micro SD的軟件方法及硬件設計。采用的FAT開源文件系統FATFS是專門為小型嵌入式系統而設計的,容易移值和使用,占用硬件資源相對較小而且功能強大。
Abstract:
Key words :

O 引言
    由于遠程智能心臟檢測儀器對采集到的心電信號是實時處理與存儲的。因此,本文在STM32F103XX微處理器的基礎上,采用Micro SD存儲卡實現了關鍵心電信號的存儲。

1 硬件電路設計
1.1 STM32F103xx微處理器簡介
    STM32F103XX基于高性能32位RISC的ARMCortex-M3核,工作頻率為72 MHz。片上集成了高速存儲器,通過APB總線連接了豐富、增強的外設和I/O。所有的設備都提供標準的通信接口。
1.2 SPI協議
    由于SPI(setial peripheralinterface)總線占用的接口線少,通信效率高,并且支持大部分處理器芯片,因而是一種理想的選擇。SPI是利用4根信號線進行通信的串行接口協議,包括主/從兩種模式。4個接口信號為:串行數據輸入(MISO,主設備輸入、從設備輸出)、串行數據輸出(MOSI,主設備輸出、從設備輸入)、移位時鐘(SCK)、低電平有效的從設備使能信號(cs)。SPI最大的特點是由主設備時鐘信號的出現與否來確定主/從設備間的通信。一旦檢測到主設備的時鐘信號,數據開始傳輸。
1.3 Micro SD卡簡介
    Micro SD卡的接口可以支持2種操作模式:SDIO模式和SPI模式。設計者可以選擇其中任一模式。SDIO模式允許4線的高速數據傳輸,傳輸速率高,但是大部分微控制器無此接口,使用軟件模擬協議復雜。SPI模式使用簡單通用的SPI通道接口,即可實現數據傳輸,目前大多數微控制器都提供SPI接口。SPI模式相對于SDIO模式的缺點是損失了傳輸速度,但目前微處理器的處理速度越來越高,利用SPI模式大多都能滿
足工程需要。
    Micro SD卡要求用全雙工、8位的SPI操作。STM32F103XX微處理器和Micro SD卡之間只需要4根信號線就可以完成數據的讀/寫,當CS片選信號線為低電平時,微處理器開始所有的總線傳輸。數據從微處理器的MOSI引腳同步輸入Micro SD卡的DI引腳,并由Micro SD卡的DO線同步輸入微處理器的MISO引腳,數據在CLK信號的上升沿同步輸入和輸出。在每個數據傳輸的結尾還必須提供8個額外的時鐘,以允許Micro SD卡完成任何未完結的操作。另外,使用SPI模式時,為了防止在無卡接入或卡驅動器呈高阻態時總線懸空,根據SD卡規范,這些信號需要在微處理器端用10~100 kΩ的上拉電阻,其硬件連接電路如圖1所示。

a.JPG

2 軟件設計
    軟件設計一部分是基于STM32固件庫,該固件庫針對基于ARM的32位微處理STM32F101XX和STM32F103XX。其中,包括程序、數據結構和覆蓋所有外設特性的宏單元,還包括設備驅動的描述以及每個外圍模塊的實例。因此,使用該固件庫可以節省許多時間,將更多的時間花費在編程方面,從而減少了在應用開發中的綜合開銷。
2.1 Micro SD卡初始化為SPI總線模式
    STM32F103XX微處理器包括2個串行外設接口(SPI),可以方便地對Micro SD卡接口進行配置。首先對要用到的SPIl接口采用命令SPI_In-it(SPIl,&SPI_InitStructure)進行初始化,并使能SPIl。
    剛上電時,Micro SD卡缺省使用專有的SD總線協議,將Micro SD卡切換到SPI模式,主機需要發出命令CMDO(GO-IDLE-STATE)。Micro SD卡會檢測到SPI模式選擇信息,因為卡選擇(CS)引腳在該命令和其他所有SPI命令傳送過程中都保持為低電平,故MicroSD卡以R1作為響應,空閑狀態位被置為高電平,此時MicrlO SD卡進入空閑狀態,此階段的SPI時鐘頻率不能超過400 kHz。Micro SD卡進入SPI模式后,主機應該先發一條初始化指令CMD1(ActiVates the card process),此時可將SPI頻率設置為高速模式。然后發送命令CMD59決定是否開啟CRC校驗,設置讀/寫塊數據長度,最后延遲8個時鐘后返回。Micro SD初始化流程如圖2所示。
b.JPG

2.2 Micro SD卡讀寫單塊數據
    從Micro SD卡中讀取一個數據塊只需要主機發送CMD17(MSD_READ_SINGLE_BLOCK)命令,并將起始地址作為參數(此地址必須和介質上一個塊的起始位置對齊),然后Micro SD卡會驗證這個字節地址,并以一個R1命令作為響應。在完成Micro SD卡讀取操作后,先發送一個起始數據命令,接著發送固定數量的數據,最后是2個字節CRC校驗。讀取一個數據塊由函數u8 MSD_ReadBlock(u8*pBuffer,u32 ReadAddr,u16 NumByteToRead)來完成,pBuffer是一個指針,它指向接受Micro SD卡數據內存緩沖區的地址,ReadAddr是要讀取數據在Micro SD卡中的地址,NumByteToRead是要讀取的字節數,一般為512 B。
    從Micro SD卡中寫入一個數據塊與讀取數據塊相似。主機發送CMD24(MSD_WRITE_BLOCK)命令啟動寫操作過程,Micro SD卡將以R1命令響應格式進行應答。如果命令響應,則進行寫操作,主機發送起始令牌,然后發送固定數量的數據字節(512 B),返回一個數據響應令牌,指示需要寫入的數據是否完成,最后是2個字節的CRC校驗,寫入一個數據塊由函數u8 MSD_WriteBuffer(u8*pBuffer,u32 WriteAddr,u32 Num-ByteToWrite)來完成,向Micro SD卡寫數據函數中的參數與向Micro sD卡讀數據函數中的參數相同。讀/寫單塊數據流程如圖3所示。
c.JPG

2.3 Micro SD卡的文件存儲
    由于需要Micro SD卡上的數據能夠在計算機上直接讀/寫,所以Micro SD卡文件系統必須與計算機的文件系統一致。目前常用的文件系統主要有微軟的FATl2,FATl6,FAT32,NTFS,以及Linux系統下的 EXT2,EXT3等。由于微軟Windows的廣泛應用,在當前的消費類電子產品中,用得最多的還是FAT文件系統,如U盤、MP3,MP4,數碼相機等,所以找到一款容易移植和使用、占用硬件資源相對較小而功能又強大的FAT開源文件系統,對于單片機系統設計者來說是很重要的。所以在Micro SD卡存儲機制上,移植了FAT FS文件系統。FAT FS是一種完全免費開源的FAT文件系統模塊,是專門為小型嵌入式系統而設計的。它完全用標準C語言編寫,所以具有良好的硬件平臺獨立性,可以移植到多種平臺而只需做簡單的修改。需要使用者編寫移植代碼的是FAT FS提供的底層接口,包括存儲介質讀/寫接口DiskIO和供給文件創建修改時間的實時時鐘RTC。
    FAT FS Module一開始就是為了能在不同的單片機上使用而設計的,所以具有良好的層次結構,如圖4所示。最頂層是應用層,使用者無需理會FAT FSModule的內部結構和復雜的FAT協議,只需要調用Module提供給用戶的一系列應用接口函數,如f-open,f-read,f- write,f-Close等就可以像在PC上讀/寫文件那樣簡單。
2.3.1 文件(或目錄)創建
    在Micro SD卡上創建文件(或目錄)的過程就是在文件目錄表中申請登記項的過程。首先程序要檢測文件目錄表(FDT)中是否已經存在該文件,然后申請空閑的FDT 表項。如果存在同名的文件,則返回,創建文件(或目錄)失敗。申請FDT表項成功后,程序會檢測磁盤剩余的空間是否滿足新創文件數據長度的需要,而后尋找第一個空閑的簇號,并修改對應的FDT表項。根據文件的大小,不斷循環查找下一個空閑的簇,同時修改當前FAT項目為下一個簇號,直到最后一個FAT項寫入0xFFFFH,以表示文件結束。新建目錄時,只需要提供函數CreateDir()函數新建目錄的目錄名,其過程和創建文件一樣,只是不需要提供數據相關的信息。
2.3.2 文件的讀寫
    Micro SD卡上的文件都是以簇(Cluster)為單位存取的。當讀取Micro SD卡上的文件時,首先要根據文件名查找到文件加目錄登記項(F-DT),根據文件中目錄登記項中起始簇號即可以找到文件在數據DATA區中的第一簇內容,并且可以在FAT表中找到第二個簇號。根據第二個簇號又能讀取第二簇的數據和FAT中第三個簇號,這樣就可以讀取全部文件數據。寫文件時要保證 FAT1和FAT2內容的一致性,即要對兩個FAT進行同樣的寫操作。當要在已有的文件中增添數據時,程序首先要分析原有文件最后一個扇區還有多少剩余空閑字節數,以便新添加數據與這最后一個扇區匯合,超過扇區的數據在申請新的空閑FAT表項時,其過程與新建文件類似。在文件的最后一簇填寫0xFFFFH 表示文件結束。
2.3.3 文件(或目錄)的刪除
    刪除文件的操作需要提供函數DeleteFile()刪除文件的文件名和擴展名。刪除文件時,不涉及數據區的操作,只須在文件的目錄登記項(FDT)上做一個刪除標記,并把文件在FAT表中所占用的簇標記為“空簇”。
    程序先在FDT中查找是否有同名文件,如果存在同名文件,則將在對應的FDT表項中第一個字節內容改為0xE5H,表示該FDT表項的內容已經被刪除,新建文件可以使用該表項。最后還需要將FAT表中所有文件相關簇項目的內容都改成Ox0000,釋放出所對應的Micro SD卡磁盤空間。若未找到同名文件,則返回一個錯誤值。刪除目錄的操作只需要提供函數DeleteDir()刪除目錄的目錄名。程序先在FDT中查找是否有同名目錄項,如果存在同名目錄項,則將對應的FDT表項中第一個字節內容改為0xE5H。然后讀出對應目錄的起始簇號,在該簇號中去刪除該目錄下的所有文件。

3 結語
    該方案已經成功應用于遠程智能心臟檢測儀器中,為心臟檢測儀器的數據采集提供了一種非易失性存儲器的解決方案,遠程智能心臟檢測儀器采集得到的數據信息以FAT32標準文件的格式保存于Micro sD卡中,數據文件可在Windows下讀取,在保證高性價比的同時,又方便了數據的進一步分析和處理。
 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲精品一区在线| 韩国成人理伦片免费播放| 亚洲男女自偷自拍| 国产亚洲精品aa| 国产精品一二三视频| 国产欧美日本| 国产精品视频精品视频| 久久免费视频在线观看| 一区二区欧美在线观看| 亚洲视频精品在线| 国产欧美精品va在线观看| 亚洲国产91精品在线观看| 久久aⅴ乱码一区二区三区| 欧美日韩在线影院| 亚洲第一天堂av| 亚洲国产免费看| 午夜欧美电影在线观看| 激情视频一区二区三区| 99re6这里只有精品视频在线观看| 亚洲综合成人婷婷小说| 一区二区高清在线| 亚洲欧美日韩国产成人| 亚洲欧美日韩久久精品| 亚洲精品免费一二三区| 久久婷婷人人澡人人喊人人爽| 亚洲小说欧美另类社区| 欧美区二区三区| 亚洲自拍偷拍一区| 久久久噜噜噜久久中文字幕色伊伊| 女人色偷偷aa久久天堂| 国产精品成人一区二区三区吃奶| 一区二区在线免费观看| 国产无一区二区| 欧美极品在线播放| 久久亚洲风情| 在线免费观看一区二区三区| 国产欧美日韩一区二区三区在线| 国产亚洲精品美女| 麻豆精品一区二区综合av| 欧美韩国日本一区| 亚洲精品国产欧美| 国产欧美日韩专区发布| 久久夜色精品国产| 久久全球大尺度高清视频| 亚洲国产欧美日韩另类综合| 亚洲综合色在线| 亚洲电影自拍| 在线精品视频一区二区三四| 亚洲欧美国产日韩天堂区| 伊人婷婷久久| 99精品国产高清一区二区| 国产精品久久久亚洲一区| 国产精品资源| 国产精品日韩一区二区| 国模精品一区二区三区色天香| 一区二区毛片| 欧美日本韩国一区| 国产精品三级久久久久久电影| 久久久久久久久久久久久9999| 亚洲欧美日韩中文在线制服| 美女国内精品自产拍在线播放| 国产一区二区三区自拍| 欧美日韩国产精品一卡| 欧美在线视频免费观看| 欧美在线中文字幕| 樱桃成人精品视频在线播放| 欧美亚洲免费高清在线观看| 国产精品久久久久久久9999| 最近中文字幕mv在线一区二区三区四区| 国内精品模特av私拍在线观看| 国产精品va在线播放我和闺蜜| 羞羞答答国产精品www一本| 亚洲激精日韩激精欧美精品| 欧美在线视频一区二区三区| 国内精品视频一区| 国产自产v一区二区三区c| 亚洲第一偷拍| 国产精品久久777777毛茸茸| 国产在线一区二区三区四区| 欧美日本中文字幕| 一本色道久久综合亚洲精品不| 亚洲成色精品| 亚洲激情在线激情| 亚洲国产综合在线看不卡| 欧美亚洲三区| 亚洲第一区在线观看| 夜夜爽www精品| 欧美成人一区二免费视频软件| 亚洲一区二区毛片| 国产精品久久久对白| 久久天天躁夜夜躁狠狠躁2022| 欧美一区二区高清| 欧美精品一区在线| 欧美视频中文字幕在线| 欧美在线视频播放| 国产在线精品二区| 亚洲欧美卡通另类91av| 国产视频久久| 国产视频观看一区| 亚洲尤物影院| 1024精品一区二区三区| 国产毛片久久| 国产精品入口夜色视频大尺度| 国内久久婷婷综合| 亚洲一区二区视频在线观看| 国产精品卡一卡二| 欧美男人的天堂| 久久人人看视频| 一区二区三区不卡视频在线观看| 欧美视频一区二区三区| 欧美va亚洲va香蕉在线| 伊人夜夜躁av伊人久久| 亚洲精品免费在线播放| 一区二区三区精品视频在线观看| 噜噜噜在线观看免费视频日韩| 国产精品久久久久久久久搜平片| 欧美日一区二区三区在线观看国产免| 欧美激情成人在线| 黄色工厂这里只有精品| 欧美巨乳在线观看| 国产喷白浆一区二区三区| 欧美精品三级在线观看| 久久先锋影音| 午夜亚洲精品| 亚洲伦理精品| 韩国一区二区在线观看| 亚洲国内欧美| 国产精品视频福利| 136国产福利精品导航| 在线视频免费在线观看一区二区| 亚洲精品一二三| 1204国产成人精品视频| 国产在线拍揄自揄视频不卡99| 亚洲激情视频网站| 亚洲另类一区二区| 亚洲午夜久久久久久久久电影网| 欧美一区二区三区久久精品茉莉花| 久久免费视频一区| 国产午夜精品一区二区三区视频| 国产精品午夜在线观看| 亚洲最黄网站| 免费观看一级特黄欧美大片| 欧美色图一区二区三区| 久久久综合香蕉尹人综合网| 欧美性大战久久久久久久| 久久精品亚洲一区二区三区浴池| 欧美精品激情blacked18| 性一交一乱一区二区洋洋av| 久久久视频精品| 欧美一级专区免费大片| 亚洲免费在线视频| 国产一区二区高清不卡| 国产欧美日韩亚洲一区二区三区| 久久久国产亚洲精品| 欧美一区二视频在线免费观看| 欧美一区二区久久久| 亚洲视频精选| 欧美日韩综合不卡| 亚洲欧美综合网| 亚洲精品国产精品乱码不99按摩| 欧美日韩一级大片网址| 欧美日韩国产综合视频在线观看中文| 一区二区三区www| 久久人人97超碰精品888| 欧美精品三区| 久久久精品视频成人| 欧美jizzhd精品欧美喷水| 在线观看视频一区| 国产精品久久久一区二区三区| 国产一区二区三区在线观看精品| 欧美高清视频一区二区三区在线观看| 国产精品剧情在线亚洲| 伊人成人网在线看| 雨宫琴音一区二区在线| 嫩草影视亚洲| 亚洲精品在线视频| 亚洲理伦在线| 亚洲精品美女久久7777777| 亚洲日韩欧美视频一区| 欧美区亚洲区| 一区二区视频免费完整版观看| 国产精品一区二区三区四区五区| 欧美日韩国产在线看| 亚洲伊人伊色伊影伊综合网| 99精品99| 亚洲欧美国产毛片在线| 国产精品专区一| 午夜国产欧美理论在线播放| 亚洲国产精品一区二区www在线| 亚洲调教视频在线观看| 久久久www免费人成黑人精品| 欧美在线精品免播放器视频| 亚洲尤物在线视频观看| 国产精品麻豆va在线播放| 欧美日韩大陆在线| 亚洲国产精品999| 国产麻豆91精品| 激情欧美国产欧美| 国产精品成人观看视频国产奇米| 国产欧美精品一区二区三区介绍| 亚洲一区二区三区777| 亚洲一区二区三区在线| 国产乱码精品1区2区3区| 亚洲欧美精品suv| 日韩五码在线| 欧美精品色一区二区三区| 玖玖国产精品视频| 最新日韩在线视频| 欧美系列亚洲系列| 狠狠色综合网| 国产欧美一区二区三区沐欲| 国产精品igao视频网网址不卡日韩| 亚洲天堂黄色| 久久精品欧洲| 国产精品久久久久永久免费观看| 免费久久久一本精品久久区| 亚洲性图久久| 久久精品成人欧美大片古装| 欧美久久久久久久久久| 亚洲一区二区视频| 国产精品久久久久高潮| 久久免费精品日本久久中文字幕| 亚洲欧美一区二区精品久久久| 欧美国产日产韩国视频| 国产日韩在线看片| 老司机aⅴ在线精品导航| 久久精品国产清自在天天线| 欧美a一区二区| 免费久久99精品国产| 欧美视频在线观看免费网址| 国产日韩在线一区| 欧美一区二区免费视频| 亚洲三级毛片| 国产自产女人91一区在线观看| 久久精品一本久久99精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美精品在线一区二区| 亚洲欧美日韩专区| 国产精品乱码一区二区三区| 午夜视频在线观看一区| 国产精品一区二区久久国产| 中文精品99久久国产香蕉| 国产精品一区二区三区久久| 国产精品永久免费视频| 一区二区三区国产在线观看| 亚洲精品久久| 亚洲电影欧美电影有声小说| 欧美激情第4页| 麻豆9191精品国产| 国产精品欧美一区喷水| 国产日韩欧美综合| 亚洲蜜桃精久久久久久久| 91久久在线观看| 欧美一区二区播放| 日韩亚洲成人av在线| 国产精品日韩在线一区| 一区二区三区成人| 欧美日韩国产在线播放| 亚洲香蕉伊综合在人在线视看| 蜜臀久久久99精品久久久久久| 欧美日韩国产不卡在线看| 国产精品国产三级国产aⅴ浪潮| 免费日韩av| 在线观看日韩av先锋影音电影院| 欧美网站大全在线观看| 日韩视频在线你懂得| 最新高清无码专区| 久久综合九色综合欧美狠狠| 国产精品一区免费观看| 亚洲欧美国产高清va在线播| 国产一区二区精品丝袜| 欧美久久视频| 永久免费视频成人| 久久久久免费观看| 欧美激情一区二区三区成人| 欧美亚洲一区在线| 亚洲人成网在线播放| 欧美日韩亚洲不卡| 久久久综合香蕉尹人综合网| 国产精品视频yy9099| 国产一区二区日韩精品| 亚洲一区图片| 久久青青草综合| 国产精品主播| 亚洲精品国产精品乱码不99按摩| 蜜臀av国产精品久久久久| 在线午夜精品自拍| 国内成人精品一区| 欧美一区二区三区喷汁尤物| 国产欧美精品日韩| 亚洲午夜电影网| 欧美激情一区二区三区在线视频观看| 国产日韩欧美精品| 欧美精品18videos性欧美| 欧美有码在线视频| 欧美日韩一区二区免费在线观看| 久久免费精品日本久久中文字幕| 国产精品wwwwww| 美女精品网站| 久久夜色撩人精品| 亚洲精品视频在线看| 国产亚洲人成a一在线v站| 国产美女精品视频免费观看| 欧美国产日韩二区| 亚洲综合大片69999| 狂野欧美性猛交xxxx巴西| 亚洲精品一区二区三区av| 欧美精品一区在线播放| 国产精品videosex极品| 久久久亚洲国产美女国产盗摄| 欧美96在线丨欧| 欧美不卡一区| 欧美性一区二区| 亚洲综合三区| 最新高清无码专区| 久久亚洲影音av资源网| av不卡免费看| 欧美三级网页| 国产精品久久久久9999高清| 国产精品人人做人人爽人人添| 亚洲激情第一页| 欧美性感一类影片在线播放| 亚洲狼人精品一区二区三区| 国产亚洲欧美一区| 欧美影院成人| 久久久久国色av免费观看性色| 免费短视频成人日韩| 午夜精品国产|