《SD卡文件傳輸技術(shù)研究》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《SD卡文件傳輸技術(shù)研究(2頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于STM32芯片的U盤(pán)/SD卡文件傳輸技術(shù)研究
摘要:基于STM32F107VCT6微控制器,在μC/OS?Ⅲ系統(tǒng)下針對(duì)U盤(pán)與SD卡之間的文件傳輸進(jìn)行研究??刂破鞣謩e通過(guò)SPI串行總線(xiàn)和OTG接口與SD卡和U盤(pán)實(shí)現(xiàn)數(shù)據(jù)傳輸,控制系統(tǒng)通過(guò)FATFS文件系統(tǒng)將U盤(pán)的文件數(shù)據(jù)存入控制器的緩存之中,再將數(shù)據(jù)寫(xiě)入SD卡,實(shí)現(xiàn)了U盤(pán)與SD卡之間的數(shù)據(jù)傳輸。實(shí)驗(yàn)說(shuō)明:該文件傳輸原理簡(jiǎn)單、功能穩(wěn)定,可廣泛應(yīng)用于日常生活和工農(nóng)業(yè)的小型嵌入式設(shè)備當(dāng)中。關(guān)鍵詞:STM32;μC/OS?Ⅲ;U盤(pán);SD卡;文件傳輸中圖分類(lèi)號(hào):TP274.2文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004?373X〔2021〕18?0107?03
2、StudyonfiletransmissionbetweenUdiskandSDcardbasedonSTM32chipLIUZhi?yong,CHENPeng?fei,SULei,LIAOGuang?lan〔StateKeyLaboratoryofDigitalManufacturingEquipmentandTechnology,HuazhongUniversityofScienceandTechnology,Wuhan430074,China〕Abstract:ThefiletransmissionbetweenUdiskandSDcardintheμC/OS?Ⅲsystembasedo
3、nSTM32F107VCT6chipisstudiedinthispaper.ThecontrollerachievesdatatransmissionbySDcardandUdiskrespectivelythroughSPIserialbusandUSBOTGinterface.ThecontrolsystemsavesthefiledataofUdiskintothecacheofcontrolleritselfbyFATFSfilesystem,andthenwritesthedataintotheSDcardtorealizethedatatransmissionbetweenUSB
4、andSDcard.Thefilecommunicationmodeissimpleandstable,andcanbewidelyappliedtosmallembeddeddevicesusedindailylife,agricultureandindustry.Keywords:STM32;μC/OS?Ⅲ;Udisk;SDcard;filetransmission隨著科技的開(kāi)展,微控制器本錢(qián)越來(lái)越低,性能越來(lái)越強(qiáng)大,這使得其應(yīng)用越來(lái)越廣泛,普及各個(gè)領(lǐng)域之中。由于控制器本身的存儲(chǔ)空間是非常有限的,因此通常自身不承擔(dān)存儲(chǔ)大量數(shù)據(jù)的任務(wù),而由控制器的外設(shè)比方SD卡、U盤(pán)等存儲(chǔ)設(shè)備承擔(dān)。本文以A
5、RM微控制器STM32F107VCT6作為系統(tǒng)的核心,針對(duì)SD卡、U盤(pán)外圍存儲(chǔ)設(shè)備的通信進(jìn)行了研究,詳細(xì)分析了它們之間文件傳輸過(guò)程。1硬件設(shè)計(jì)1.1STM32F107VCT6STM32F107VCT6是意法半導(dǎo)體公司〔STMicroelectronics,ST〕推出的一款STM32互聯(lián)型微控制器。該控制器集成了各種高性能工業(yè)標(biāo)準(zhǔn)接口,且STM32不同型號(hào)產(chǎn)品在引腳和軟件上具有完美的兼容性,可以輕松適應(yīng)更多的應(yīng)用。它包括10個(gè)定時(shí)器、2個(gè)12位A/D〔模/數(shù)轉(zhuǎn)換器〕、2個(gè)12位D/A〔數(shù)/模轉(zhuǎn)換器〕、2個(gè)I2C接口、5個(gè)USART接口和3個(gè)SPI端口和高質(zhì)量數(shù)字音頻接口IIS,另外STM32F1
6、07擁有全速USB〔OTG〕接口,2路CAN2.0B接口,以及以太網(wǎng)10/100MAC模塊,可以滿(mǎn)足工業(yè)、醫(yī)療、自動(dòng)化和家電市場(chǎng)等多種需求【1】。采用32位ARMCortex??ⅢμC/OS?Ⅲ【2】是一個(gè)可裁剪、可固話(huà)、可剝奪型的實(shí)時(shí)內(nèi)核,管理任務(wù)的數(shù)目不受限制,是由著名的μC/OS?Ⅱ開(kāi)展而來(lái),是第三代內(nèi)核。μC/OS?Ⅲ針對(duì)以ARMCortex為代表的新一代CPU,面向帶有可用于優(yōu)先級(jí)查表的硬件指令的32位CPU的嵌入式應(yīng)用。μC/OS?Ⅲ允許利用這類(lèi)高端CPU的特殊硬件指令來(lái)實(shí)現(xiàn)高效的任務(wù)調(diào)度算法,而無(wú)須使用μC/OS?Ⅱ的軟件任務(wù)調(diào)度算法,而且μC/OS?Ⅲ支持時(shí)間片輪轉(zhuǎn)調(diào)度算法。從
7、核心任務(wù)調(diào)度算法的改變來(lái)看,μC/OS?Ⅲ已經(jīng)是一個(gè)全新的嵌入式RTOS內(nèi)核。從μC/OS算起,該內(nèi)核已有20余年應(yīng)用史,在諸多應(yīng)用領(lǐng)域得到了廣泛的認(rèn)可。2.2FATFS文件系統(tǒng)FATFS是面向小型嵌入式系統(tǒng)的一種通用FAT文件系統(tǒng)。它完全是由ANSIC語(yǔ)言編寫(xiě)并且完全獨(dú)立于底層的I/O介質(zhì)。因此它可以很容易移值到其他處理器當(dāng)中,如8051,PIC,AVR,SH,Z80,H8,ARM等【3】。在配置了SD卡以及USB的驅(qū)動(dòng)之后,把FATFS文件系統(tǒng)代碼移值到工程工程的建立本次研究所完成的內(nèi)容是將儲(chǔ)存有一定文件的U盤(pán)熱插到開(kāi)發(fā)板上的USB接口上時(shí),系統(tǒng)會(huì)自動(dòng)將U盤(pán)中的文件復(fù)制到連接在開(kāi)發(fā)板上的S
8、D卡當(dāng)中。軟件工程建立所用的集成開(kāi)發(fā)編譯環(huán)境為keilMDK4.12,再將μC/OS?Ⅲ移值到工程當(dāng)中,初始化后,通過(guò)μC/OS?Ⅲ的任務(wù)機(jī)制建立兩個(gè)任務(wù),分別對(duì)SD卡以及USB接口進(jìn)行初始化。還需要將對(duì)SD卡以及USB讀寫(xiě)的函數(shù)放入到FATFS的底層函數(shù)中去,供上層函數(shù)調(diào)用,系統(tǒng)需要實(shí)時(shí)檢測(cè)是否有U盤(pán)連接上。系統(tǒng)程序流程圖如圖4所示。圖4系統(tǒng)程序流程圖當(dāng)設(shè)備檢測(cè)到有U盤(pán)插入時(shí),系統(tǒng)會(huì)對(duì)USB設(shè)備進(jìn)行枚舉操作,即USB主機(jī)通過(guò)一系列命令要求USB設(shè)備發(fā)送描述符信息,從而知道設(shè)備具有什么功能、屬于哪一類(lèi)設(shè)備、要占用多少帶寬、使用哪類(lèi)傳輸方式及數(shù)據(jù)量大小,只有主機(jī)確定了這些信息之后,設(shè)備才能真正的
9、正常工作【4】。枚舉通過(guò)后USB設(shè)備會(huì)觸發(fā)名為OTG_FS_IRQHandler的中斷,在該中斷下最后會(huì)執(zhí)行用戶(hù)應(yīng)用程序USBH_MSC_Application,在該程序下將U盤(pán)中文件拷貝到SD當(dāng)中。文件傳輸過(guò)程如圖5所示。實(shí)驗(yàn)中將U盤(pán)中的文件數(shù)據(jù)通過(guò)FATFS系統(tǒng)代碼讀取到STM32F107主芯片的緩存之中,然后再通過(guò)FATFS系統(tǒng)代碼將緩存中的數(shù)據(jù)寫(xiě)入SD卡當(dāng)中。該過(guò)程是雙向的,且一次傳輸?shù)臄?shù)據(jù)多少取決于緩存的大小。假設(shè)是出現(xiàn)文件數(shù)據(jù)大于緩存的情況,系統(tǒng)也能完成拷貝,但拷貝后的文件并不完整。故定義緩存的大小對(duì)文件的傳輸過(guò)程是非常重要的。程序編寫(xiě)完成后通過(guò)J?LINK將程序燒寫(xiě)入STM32芯
10、片內(nèi)部的FLASH中。圖5文件傳輸過(guò)程圖3實(shí)驗(yàn)結(jié)果與討論本實(shí)驗(yàn)中定義了3KB的緩存,選用了1.93KB的BMP圖片文件〔a.bmp〕。BMP〔Bitmap?File〕圖形文件是Windows采用的圖形文件格式,在Windows環(huán)境下運(yùn)行的所有圖像處理軟件都支持BMP圖像文件格式。實(shí)驗(yàn)過(guò)程是將圖片a.bmp并拷貝到U盤(pán),再將U盤(pán)插入開(kāi)發(fā)板上??梢园l(fā)現(xiàn),SD卡中也存入了a.bmp位圖文件,成功實(shí)現(xiàn)了文件由U盤(pán)到SD卡的傳輸。4結(jié)語(yǔ)本文重點(diǎn)介紹了基于STM32F107VCT6主芯片在μC/OS?Ⅲ系統(tǒng)下USB與SD卡的文件傳輸過(guò)程,描述了系統(tǒng)的硬件設(shè)計(jì)以及軟件設(shè)計(jì)流程。該傳輸過(guò)程簡(jiǎn)單、穩(wěn)定,充分利用
11、了STM32F107系列芯片的OTG接口功能,適用于小型嵌入式系統(tǒng)的文件傳輸,可應(yīng)用于日常生活、農(nóng)業(yè)以及工業(yè)中的各種中小型設(shè)備。參考文獻(xiàn)【1】意法半導(dǎo)體.STM32F107參考手冊(cè)[EB/OL].[2021?08?09]. :// ?Ⅲ[M].宮輝,譯.北京:北京航空航天大學(xué)出版社,2021.【3】劉火良,楊森.STM32庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2021.【4】王川北,劉強(qiáng).USB系統(tǒng)開(kāi)發(fā):基于ARMCortex?M3[M].北京:北京航空航天大學(xué)出版社,2021?M3核微控制器開(kāi)發(fā)與應(yīng)用[M].北京:清華大學(xué)出版社,2021.【6】佚名.STM32神舟IV號(hào)用戶(hù)手冊(cè)[EB/OL].[2021?05?13]. :// armjishu .【7】譚浩強(qiáng).C++程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2021.[8]譚浩強(qiáng).C++程序設(shè)計(jì)題解與上機(jī)指導(dǎo)[M].2版.北京:清華大學(xué)出版社,2021?Ⅱ經(jīng)典實(shí)例[M].北京:北京航空航天大學(xué)出版社,2021?Ⅱ原理及應(yīng)用[M].2版.北京:北京航空航天大學(xué)出版社,2021.