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.

主站蜘蛛池模板: 最新午夜男女福利片视频| 91视频日本| 国产无码精品在线| 国产欧美性爱网| 国产99视频免费精品是看6| 婷婷午夜影院| 精品国产成人三级在线观看| 亚洲中文字幕日产无码2021| 精品视频第一页| 国产精选自拍| 国产成人高精品免费视频| 精品国产三级在线观看| 国产综合在线观看视频| 国产精品妖精视频| aaa国产一级毛片| 亚洲免费人成影院| 婷婷综合色| 日韩精品一区二区三区中文无码| 波多野结衣第一页| 国产成人禁片在线观看| 九九这里只有精品视频| 亚洲黄色成人| 久久黄色小视频| 亚洲免费播放| 久久一本日韩精品中文字幕屁孩| 亚洲精品另类| 国产乱子伦精品视频| 国产精品无码久久久久AV| 日韩经典精品无码一区二区| 日韩小视频在线播放| 欧美一区国产| av一区二区三区高清久久| 三区在线视频| 免费大黄网站在线观看| 国产靠逼视频| 亚洲成网777777国产精品| 亚洲日韩图片专区第1页| 欧美无专区| 亚洲乱强伦| 久久77777| 好吊色国产欧美日韩免费观看| 国产女人水多毛片18| 日韩激情成人| 亚洲无码精品在线播放| 中文字幕欧美日韩高清| 欧美区一区| 99久久国产精品无码| 四虎精品国产永久在线观看| 日韩精品一区二区三区视频免费看| 四虎永久在线| 波多野结衣一区二区三区四区视频| 人妻中文字幕无码久久一区| 国产00高中生在线播放| 青青草原国产| 亚洲精品欧美重口| 韩日午夜在线资源一区二区| 亚洲精品亚洲人成在线| 99成人在线观看| 精品久久777| 亚洲日韩久久综合中文字幕| 26uuu国产精品视频| 免费A级毛片无码免费视频| 天堂av综合网| 毛片视频网址| 特级毛片免费视频| 丰满人妻被猛烈进入无码| 五月天婷婷网亚洲综合在线| 精品精品国产高清A毛片| 香蕉综合在线视频91| 91精品国产自产91精品资源| 一级成人a做片免费| 高清久久精品亚洲日韩Av| 精品成人一区二区三区电影| 成人一级免费视频| 久久影院一区二区h| 国产亚洲精品精品精品| 欧美成人午夜视频| 久久久久无码精品| 97超爽成人免费视频在线播放 | 国产成人综合欧美精品久久| 亚洲无码高清视频在线观看 | 国产精品极品美女自在线|