999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32芯片的U盤/SD卡文件傳輸技術研究

2014-09-15 18:23:03劉智勇陳鵬飛宿磊廖廣蘭
現代電子技術 2014年18期

劉智勇+陳鵬飛+宿磊+廖廣蘭

摘 要: 基于STM32F107VCT6微控制器,在μC/OS?Ⅲ系統下針對U盤與SD卡之間的文件傳輸進行研究。控制器分別通過SPI串行總線和OTG接口與SD卡和U盤實現數據傳輸,控制系統通過FATFS文件系統將U盤的文件數據存入控制器的緩存之中,再將數據寫入SD卡,實現了U盤與SD卡之間的數據傳輸。實驗表明:該文件傳輸原理簡單、功能穩定,可廣泛應用于日常生活和工農業的小型嵌入式設備當中。

關鍵詞: STM32; μC/OS?Ⅲ; U盤; SD卡; 文件傳輸

中圖分類號: TP274.2 文獻標識碼: A 文章編號: 1004?373X(2014)18?0107?03

Study on file transmission between U disk and SD card based on STM32 chip

LIU Zhi?yong, CHEN Peng?fei, SU Lei, LIAO Guang?lan

(State Key Laboratory of Digital Manufacturing Equipment and Technology, Huazhong University of Science and Technology, Wuhan 430074, China)

Abstract: The file transmission between U disk and SD card in the μC/OS?Ⅲsystem based on STM32F107VCT6 chip is studied in this paper. The controller achieves data transmission by SD card and U disk respectively through SPI serial bus and USB OTG interface. The control system saves the file data of U disk into the cache of controller itself by FATFS file system, and then writes the data into the SD card to realize the data transmission between USB and SD card. The file communication mode is simple and stable, and can be widely applied to small embedded devices used in daily life, agriculture and industry.

Keywords: STM32; μC/OS?Ⅲ; U disk; SD card; file transmission

隨著科技的發展,微控制器成本越來越低,性能越來越強大,這使得其應用越來越廣泛,遍及各個領域之中。由于控制器本身的存儲空間是非常有限的,因此通常自身不承擔存儲大量數據的任務,而由控制器的外設比如SD卡、U盤等存儲設備承擔。本文以ARM微控制器STM32F107VCT6作為系統的核心,針對SD卡、U盤外圍存儲設備的通信進行了研究,詳細分析了它們之間文件傳輸過程。

1 硬件設計

1.1 STM32F107VCT6

STM32F107VCT6是意法半導體公司(ST Microelectronics,ST)推出的一款STM32互聯型微控制器。該控制器集成了各種高性能工業標準接口,且STM32不同型號產品在引腳和軟件上具有完美的兼容性,可以輕松適應更多的應用。它包括10個定時器、2個12位A/D(模/數轉換器)、2個12位D/A(數/模轉換器)、2個I2C接口、5個USART接口和3個SPI端口和高質量數字音頻接口IIS,另外STM32F107擁有全速USB(OTG)接口,2路CAN2.0B接口,以及以太網10/100MAC模塊,可以滿足工業、醫療、自動化和家電市場等多種需求[1]。采用32位ARM Cortex?M3內核,最高運行頻率可達72 MHz。

1.2 SD卡接口電路設計

SD卡支持兩種接口訪問模式,即SDIO模式和SPI(Serial Peripheral Interface)模式。本次實驗采用的是SPI模式。SPI為串行外圍設備接口,是一種高速全雙工的通信總線,廣泛應用在ADC、LCD等設備與MCU間通信的場合,其通信模式如圖1所示。

圖1 SPI通信模式圖

圖1中SS(Slave Select)為片選信號線;SCK(Serial Clock)為時鐘信號線,由主通信設備產生;MOSI(Master Output, Slave Input)為主設備輸出/從設備輸入引腳;MISO(Master Input, Slave Output)主設備輸入/從設備輸出引腳。根據其通信模式設計其SD卡接口電路如圖2所示。

圖2 SD卡接口原理圖

圖2中SD_CS端為片選端口,DO、DI分別用來發送以及接受數據,SCLK為時鐘信號端口,VDD為電源端口,VSS以及GND為電源地。

1.3 USB接口電路設計

USB為通用串行總線,是電子設備中最常用的連接方式,由于它易于擴展、價格低廉、易于升級、速度快和支持熱插拔等優點被廣泛用于與PC相連的設備中。STM32F107VCT6含有一個USB 2.0 OTG全速接口,接口速率12 Mb/s,可以作為主機對外設進行操作。本實驗中采用的是USB的A型接口,接口原理圖如圖3所示。

圖3 USB接口原理圖

圖中VBUS為5 V電源線,GND為電源地線,而D-和D+組合成一組差分數據線。

2 軟件設計

2.1 μC/OS?Ⅲ

μC/OS?Ⅲ[2]是一個可裁剪、可固話、可剝奪型的實時內核,管理任務的數目不受限制,是由著名的μC/OS?Ⅱ發展而來,是第三代內核。μC/OS?Ⅲ針對以ARM Cortex為代表的新一代CPU,面向帶有可用于優先級查表的硬件指令的32位CPU的嵌入式應用。μC/OS?Ⅲ允許利用這類高端CPU的特殊硬件指令來實現高效的任務調度算法,而無須使用μC/OS?Ⅱ的軟件任務調度算法,而且μC/OS?Ⅲ支持時間片輪轉調度算法。從核心任務調度算法的改變來看,μC/OS?Ⅲ已經是一個全新的嵌入式RTOS內核。從μC/OS算起,該內核已有20余年應用史,在諸多應用領域得到了廣泛的認可。

2.2 FATFS文件系統

FATFS是面向小型嵌入式系統的一種通用FAT文件系統。它完全是由ANSI C語言編寫并且完全獨立于底層的I/O介質。因此它可以很容易移值到其他處理器當中,如8051,PIC,AVR,SH,Z80,H8,ARM等[3]。在配置了SD卡以及USB的驅動之后,把FATFS文件系統代碼移值到工程之中,就可以利用文件系統的各種函數對已經格式化的SD卡或者U盤進行讀/寫。

2.3 軟件工程的建立

本次研究所完成的內容是將儲存有一定文件的U盤熱插到開發板上的USB接口上時,系統會自動將U盤中的文件復制到連接在開發板上的SD卡當中。

軟件工程建立所用的集成開發編譯環境為keil MDK4.12,再將μC/OS?Ⅲ移值到工程當中,初始化后,通過μC/OS?Ⅲ的任務機制建立兩個任務,分別對SD卡以及USB接口進行初始化。還需要將對SD卡以及USB讀寫的函數放入到FATFS的底層函數中去,供上層函數調用,系統需要實時檢測是否有U盤連接上。系統程序流程圖如圖4所示。

圖4 系統程序流程圖

當設備檢測到有U盤插入時,系統會對USB設備進行枚舉操作,即USB主機通過一系列命令要求USB設備發送描述符信息,從而知道設備具有什么功能、屬于哪一類設備、要占用多少帶寬、使用哪類傳輸方式及數據量大小,只有主機確定了這些信息之后,設備才能真正的正常工作[4]。枚舉通過后USB設備會觸發名為OTG_FS_IRQHandler的中斷,在該中斷下最后會執行用戶應用程序USBH_MSC_Application,在該程序下將U盤中文件拷貝到SD當中。文件傳輸過程如圖5所示。

實驗中將U盤中的文件數據通過FATFS系統代碼讀取到STM32F107主芯片的緩存之中,然后再通過FATFS系統代碼將緩存中的數據寫入SD卡當中。該過程是雙向的,且一次傳輸的數據多少取決于緩存的大小。若是出現文件數據大于緩存的情況,系統也能完成拷貝,但拷貝后的文件并不完整。故定義緩存的大小對文件的傳輸過程是非常重要的。程序編寫完成后通過J?LINK將程序燒寫入STM32芯片內部的FLASH中。

圖5 文件傳輸過程圖

3 實驗結果與討論

本實驗中定義了3 KB的緩存,選用了1.93 KB的BMP圖片文件(a.bmp)。BMP(Bitmap?File)圖形文件是Windows采用的圖形文件格式,在Windows環境下運行的所有圖像處理軟件都支持BMP圖像文件格式。實驗過程是將圖片a.bmp并拷貝到U盤,再將U盤插入開發板上。可以發現,SD卡中也存入了a.bmp位圖文件,成功實現了文件由U盤到SD卡的傳輸。

4 結 語

本文重點介紹了基于STM32F107VCT6主芯片在μC/OS?Ⅲ系統下USB與SD卡的文件傳輸過程,描述了系統的硬件設計以及軟件設計流程。該傳輸過程簡單、穩定,充分利用了STM32F107系列芯片的OTG接口功能,適用于小型嵌入式系統的文件傳輸,可應用于日常生活、農業以及工業中的各種中小型設備。

參考文獻

[1] 意法半導體.STM32F107參考手冊[EB/OL].[2011?08?09].http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1564/PF221020.

[2] [美] LABROSSE J J.嵌入式實時操作系統μC/OS?Ⅲ[M].宮輝,譯.北京:北京航空航天大學出版社,2012.

[3] 劉火良,楊森.STM32庫開發實戰指南[M].北京:機械工業出版社,2013.

[4] 王川北,劉強.USB系統開發:基于ARM Cortex?M3[M].北京:北京航空航天大學出版社,2012.

[5] 喻金錢,喻斌.STM32F系列ARM Cortex?M3核微控制器開發與應用[M].北京:清華大學出版社,2011.

[6] 佚名.STM32神舟IV號用戶手冊[EB/OL].[2012?05?13].http://www.armjishu.com.

[7] 譚浩強.C++程序設計[M].北京:清華大學出版社,2007.

[8] 譚浩強.C++程序設計題解與上機指導[M].2版.北京:清華大學出版社,2011.

[9] 劉波文,孫巖.嵌入式實時操作系統μC/OS?Ⅱ經典實例[M].北京:北京航空航天大學出版社,2012.

[10] 任哲.嵌入式實時操作系統μC/OS?Ⅱ原理及應用[M].2版.北京:北京航空航天大學出版社,2009.

圖3 USB接口原理圖

圖中VBUS為5 V電源線,GND為電源地線,而D-和D+組合成一組差分數據線。

2 軟件設計

2.1 μC/OS?Ⅲ

μC/OS?Ⅲ[2]是一個可裁剪、可固話、可剝奪型的實時內核,管理任務的數目不受限制,是由著名的μC/OS?Ⅱ發展而來,是第三代內核。μC/OS?Ⅲ針對以ARM Cortex為代表的新一代CPU,面向帶有可用于優先級查表的硬件指令的32位CPU的嵌入式應用。μC/OS?Ⅲ允許利用這類高端CPU的特殊硬件指令來實現高效的任務調度算法,而無須使用μC/OS?Ⅱ的軟件任務調度算法,而且μC/OS?Ⅲ支持時間片輪轉調度算法。從核心任務調度算法的改變來看,μC/OS?Ⅲ已經是一個全新的嵌入式RTOS內核。從μC/OS算起,該內核已有20余年應用史,在諸多應用領域得到了廣泛的認可。

2.2 FATFS文件系統

FATFS是面向小型嵌入式系統的一種通用FAT文件系統。它完全是由ANSI C語言編寫并且完全獨立于底層的I/O介質。因此它可以很容易移值到其他處理器當中,如8051,PIC,AVR,SH,Z80,H8,ARM等[3]。在配置了SD卡以及USB的驅動之后,把FATFS文件系統代碼移值到工程之中,就可以利用文件系統的各種函數對已經格式化的SD卡或者U盤進行讀/寫。

2.3 軟件工程的建立

本次研究所完成的內容是將儲存有一定文件的U盤熱插到開發板上的USB接口上時,系統會自動將U盤中的文件復制到連接在開發板上的SD卡當中。

軟件工程建立所用的集成開發編譯環境為keil MDK4.12,再將μC/OS?Ⅲ移值到工程當中,初始化后,通過μC/OS?Ⅲ的任務機制建立兩個任務,分別對SD卡以及USB接口進行初始化。還需要將對SD卡以及USB讀寫的函數放入到FATFS的底層函數中去,供上層函數調用,系統需要實時檢測是否有U盤連接上。系統程序流程圖如圖4所示。

圖4 系統程序流程圖

當設備檢測到有U盤插入時,系統會對USB設備進行枚舉操作,即USB主機通過一系列命令要求USB設備發送描述符信息,從而知道設備具有什么功能、屬于哪一類設備、要占用多少帶寬、使用哪類傳輸方式及數據量大小,只有主機確定了這些信息之后,設備才能真正的正常工作[4]。枚舉通過后USB設備會觸發名為OTG_FS_IRQHandler的中斷,在該中斷下最后會執行用戶應用程序USBH_MSC_Application,在該程序下將U盤中文件拷貝到SD當中。文件傳輸過程如圖5所示。

實驗中將U盤中的文件數據通過FATFS系統代碼讀取到STM32F107主芯片的緩存之中,然后再通過FATFS系統代碼將緩存中的數據寫入SD卡當中。該過程是雙向的,且一次傳輸的數據多少取決于緩存的大小。若是出現文件數據大于緩存的情況,系統也能完成拷貝,但拷貝后的文件并不完整。故定義緩存的大小對文件的傳輸過程是非常重要的。程序編寫完成后通過J?LINK將程序燒寫入STM32芯片內部的FLASH中。

圖5 文件傳輸過程圖

3 實驗結果與討論

本實驗中定義了3 KB的緩存,選用了1.93 KB的BMP圖片文件(a.bmp)。BMP(Bitmap?File)圖形文件是Windows采用的圖形文件格式,在Windows環境下運行的所有圖像處理軟件都支持BMP圖像文件格式。實驗過程是將圖片a.bmp并拷貝到U盤,再將U盤插入開發板上。可以發現,SD卡中也存入了a.bmp位圖文件,成功實現了文件由U盤到SD卡的傳輸。

4 結 語

本文重點介紹了基于STM32F107VCT6主芯片在μC/OS?Ⅲ系統下USB與SD卡的文件傳輸過程,描述了系統的硬件設計以及軟件設計流程。該傳輸過程簡單、穩定,充分利用了STM32F107系列芯片的OTG接口功能,適用于小型嵌入式系統的文件傳輸,可應用于日常生活、農業以及工業中的各種中小型設備。

參考文獻

[1] 意法半導體.STM32F107參考手冊[EB/OL].[2011?08?09].http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1564/PF221020.

[2] [美] LABROSSE J J.嵌入式實時操作系統μC/OS?Ⅲ[M].宮輝,譯.北京:北京航空航天大學出版社,2012.

[3] 劉火良,楊森.STM32庫開發實戰指南[M].北京:機械工業出版社,2013.

[4] 王川北,劉強.USB系統開發:基于ARM Cortex?M3[M].北京:北京航空航天大學出版社,2012.

[5] 喻金錢,喻斌.STM32F系列ARM Cortex?M3核微控制器開發與應用[M].北京:清華大學出版社,2011.

[6] 佚名.STM32神舟IV號用戶手冊[EB/OL].[2012?05?13].http://www.armjishu.com.

[7] 譚浩強.C++程序設計[M].北京:清華大學出版社,2007.

[8] 譚浩強.C++程序設計題解與上機指導[M].2版.北京:清華大學出版社,2011.

[9] 劉波文,孫巖.嵌入式實時操作系統μC/OS?Ⅱ經典實例[M].北京:北京航空航天大學出版社,2012.

[10] 任哲.嵌入式實時操作系統μC/OS?Ⅱ原理及應用[M].2版.北京:北京航空航天大學出版社,2009.

圖3 USB接口原理圖

圖中VBUS為5 V電源線,GND為電源地線,而D-和D+組合成一組差分數據線。

2 軟件設計

2.1 μC/OS?Ⅲ

μC/OS?Ⅲ[2]是一個可裁剪、可固話、可剝奪型的實時內核,管理任務的數目不受限制,是由著名的μC/OS?Ⅱ發展而來,是第三代內核。μC/OS?Ⅲ針對以ARM Cortex為代表的新一代CPU,面向帶有可用于優先級查表的硬件指令的32位CPU的嵌入式應用。μC/OS?Ⅲ允許利用這類高端CPU的特殊硬件指令來實現高效的任務調度算法,而無須使用μC/OS?Ⅱ的軟件任務調度算法,而且μC/OS?Ⅲ支持時間片輪轉調度算法。從核心任務調度算法的改變來看,μC/OS?Ⅲ已經是一個全新的嵌入式RTOS內核。從μC/OS算起,該內核已有20余年應用史,在諸多應用領域得到了廣泛的認可。

2.2 FATFS文件系統

FATFS是面向小型嵌入式系統的一種通用FAT文件系統。它完全是由ANSI C語言編寫并且完全獨立于底層的I/O介質。因此它可以很容易移值到其他處理器當中,如8051,PIC,AVR,SH,Z80,H8,ARM等[3]。在配置了SD卡以及USB的驅動之后,把FATFS文件系統代碼移值到工程之中,就可以利用文件系統的各種函數對已經格式化的SD卡或者U盤進行讀/寫。

2.3 軟件工程的建立

本次研究所完成的內容是將儲存有一定文件的U盤熱插到開發板上的USB接口上時,系統會自動將U盤中的文件復制到連接在開發板上的SD卡當中。

軟件工程建立所用的集成開發編譯環境為keil MDK4.12,再將μC/OS?Ⅲ移值到工程當中,初始化后,通過μC/OS?Ⅲ的任務機制建立兩個任務,分別對SD卡以及USB接口進行初始化。還需要將對SD卡以及USB讀寫的函數放入到FATFS的底層函數中去,供上層函數調用,系統需要實時檢測是否有U盤連接上。系統程序流程圖如圖4所示。

圖4 系統程序流程圖

當設備檢測到有U盤插入時,系統會對USB設備進行枚舉操作,即USB主機通過一系列命令要求USB設備發送描述符信息,從而知道設備具有什么功能、屬于哪一類設備、要占用多少帶寬、使用哪類傳輸方式及數據量大小,只有主機確定了這些信息之后,設備才能真正的正常工作[4]。枚舉通過后USB設備會觸發名為OTG_FS_IRQHandler的中斷,在該中斷下最后會執行用戶應用程序USBH_MSC_Application,在該程序下將U盤中文件拷貝到SD當中。文件傳輸過程如圖5所示。

實驗中將U盤中的文件數據通過FATFS系統代碼讀取到STM32F107主芯片的緩存之中,然后再通過FATFS系統代碼將緩存中的數據寫入SD卡當中。該過程是雙向的,且一次傳輸的數據多少取決于緩存的大小。若是出現文件數據大于緩存的情況,系統也能完成拷貝,但拷貝后的文件并不完整。故定義緩存的大小對文件的傳輸過程是非常重要的。程序編寫完成后通過J?LINK將程序燒寫入STM32芯片內部的FLASH中。

圖5 文件傳輸過程圖

3 實驗結果與討論

本實驗中定義了3 KB的緩存,選用了1.93 KB的BMP圖片文件(a.bmp)。BMP(Bitmap?File)圖形文件是Windows采用的圖形文件格式,在Windows環境下運行的所有圖像處理軟件都支持BMP圖像文件格式。實驗過程是將圖片a.bmp并拷貝到U盤,再將U盤插入開發板上。可以發現,SD卡中也存入了a.bmp位圖文件,成功實現了文件由U盤到SD卡的傳輸。

4 結 語

本文重點介紹了基于STM32F107VCT6主芯片在μC/OS?Ⅲ系統下USB與SD卡的文件傳輸過程,描述了系統的硬件設計以及軟件設計流程。該傳輸過程簡單、穩定,充分利用了STM32F107系列芯片的OTG接口功能,適用于小型嵌入式系統的文件傳輸,可應用于日常生活、農業以及工業中的各種中小型設備。

參考文獻

[1] 意法半導體.STM32F107參考手冊[EB/OL].[2011?08?09].http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1564/PF221020.

[2] [美] LABROSSE J J.嵌入式實時操作系統μC/OS?Ⅲ[M].宮輝,譯.北京:北京航空航天大學出版社,2012.

[3] 劉火良,楊森.STM32庫開發實戰指南[M].北京:機械工業出版社,2013.

[4] 王川北,劉強.USB系統開發:基于ARM Cortex?M3[M].北京:北京航空航天大學出版社,2012.

[5] 喻金錢,喻斌.STM32F系列ARM Cortex?M3核微控制器開發與應用[M].北京:清華大學出版社,2011.

[6] 佚名.STM32神舟IV號用戶手冊[EB/OL].[2012?05?13].http://www.armjishu.com.

[7] 譚浩強.C++程序設計[M].北京:清華大學出版社,2007.

[8] 譚浩強.C++程序設計題解與上機指導[M].2版.北京:清華大學出版社,2011.

[9] 劉波文,孫巖.嵌入式實時操作系統μC/OS?Ⅱ經典實例[M].北京:北京航空航天大學出版社,2012.

[10] 任哲.嵌入式實時操作系統μC/OS?Ⅱ原理及應用[M].2版.北京:北京航空航天大學出版社,2009.

主站蜘蛛池模板: 国产成人高清精品免费5388| 手机在线看片不卡中文字幕| 欧美va亚洲va香蕉在线| 国产一级毛片在线| 久久久精品久久久久三级| 欧美中文字幕一区| 欧美a级在线| 亚洲AⅤ波多系列中文字幕| 视频二区国产精品职场同事| 亚洲中文字幕av无码区| 国产国拍精品视频免费看| 农村乱人伦一区二区| 国产高清又黄又嫩的免费视频网站| 日本欧美一二三区色视频| 国产又黄又硬又粗| 国产精品性| 亚洲中文字幕无码爆乳| av在线无码浏览| 91久久偷偷做嫩草影院电| 欧美成人区| 97在线公开视频| 丝袜亚洲综合| 一级毛片免费观看久| 99久久国产自偷自偷免费一区| 丝袜久久剧情精品国产| 波多野结衣AV无码久久一区| 99re精彩视频| 免费一级全黄少妇性色生活片| 国产亚洲高清视频| 无码AV动漫| 国产尹人香蕉综合在线电影 | 国产精品99r8在线观看| 久草视频中文| 九色视频线上播放| 久久综合色88| 亚洲免费毛片| 亚洲国产天堂久久综合226114| a亚洲视频| 99精品视频在线观看免费播放| 99精品久久精品| 欧美日韩专区| 亚洲永久色| 内射人妻无码色AV天堂| 免费国产黄线在线观看| 国产另类视频| 亚洲色婷婷一区二区| 97国产精品视频人人做人人爱| 亚洲娇小与黑人巨大交| 国产网友愉拍精品| 久996视频精品免费观看| 3344在线观看无码| 国产区免费| 国产一区二区三区在线观看视频 | 欧美日韩va| 久久人妻系列无码一区| 色AV色 综合网站| 精品福利视频导航| 欧美日韩另类在线| 欧美精品另类| 亚洲视频二| 污网站在线观看视频| 日a本亚洲中文在线观看| 一级片一区| 综合社区亚洲熟妇p| a亚洲视频| 91精品啪在线观看国产60岁| 中文字幕亚洲另类天堂| 99无码熟妇丰满人妻啪啪 | 日本人又色又爽的视频| 波多野结衣一区二区三区四区视频| 91免费在线看| 日韩无码视频专区| 99久久精品免费看国产免费软件 | 国产亚洲欧美另类一区二区| AV无码无在线观看免费| 手机在线国产精品| 免费观看国产小粉嫩喷水| 亚洲毛片网站| 亚洲综合精品第一页| 欧美激情福利| www.91在线播放| 久久国产精品麻豆系列|