當前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導讀]摘要:基于STM32F103XX微控制器的遠程智能心臟檢測儀采用Micro SD作為存儲介質保存特定的心電信號。所存Micro SD卡中的存儲數(shù)據(jù)要能夠在計算機上直接存取,需要存儲的數(shù)據(jù)以FAT32文件格式寫入Micro SD卡。研究了使用

摘要:基于STM32F103XX微控制器的遠程智能心臟檢測儀采用Micro SD作為存儲介質保存特定的心電信號。所存Micro SD卡中的存儲數(shù)據(jù)要能夠在計算機上直接存取,需要存儲的數(shù)據(jù)以FAT32文件格式寫入Micro SD卡。研究了使用STM32F103XX微處理器,采用SPI模式與Micro SD接口,將數(shù)據(jù)寫入Micro SD的軟件方法及硬件設計。采用的FAT開源文件系統(tǒng)FATFS是專門為小型嵌入式系統(tǒng)而設計的,容易移值和使用,占用硬件資源相對較小而且功能強大。
關鍵詞:STM32F1103XX;Micro SD;SPI;FATFS

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

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



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


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


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

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

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉