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