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.

主站蜘蛛池模板: 精品無碼一區在線觀看 | 国产无人区一区二区三区| 欧美人与动牲交a欧美精品| 一级香蕉人体视频| 国产人成在线观看| 久青草网站| 久久精品亚洲热综合一区二区| 欧美在线天堂| a级毛片免费网站| 亚洲人成电影在线播放| 亚洲人成网站在线观看播放不卡| 内射人妻无码色AV天堂| 国内熟女少妇一线天| 五月婷婷中文字幕| 国产欧美亚洲精品第3页在线| 亚洲人成影视在线观看| 日本一本在线视频| 欧美a在线视频| 深爱婷婷激情网| 亚洲精品不卡午夜精品| 免费国产高清视频| 毛片视频网址| 97在线国产视频| 91系列在线观看| 国产精品任我爽爆在线播放6080| 久久久久亚洲AV成人网站软件| 四虎成人在线视频| 欧美午夜在线视频| 国产自在自线午夜精品视频| 伊人久久大香线蕉综合影视| 国产一在线| 这里只有精品国产| 国产h视频在线观看视频| 国产精品jizz在线观看软件| 精品三级在线| 最近最新中文字幕免费的一页| 久久成人国产精品免费软件 | 污网站在线观看视频| 日韩高清欧美| 国产成人综合亚洲欧美在| 女人18毛片久久| 在线网站18禁| 亚洲欧美成人在线视频| 青草视频免费在线观看| 久久精品一品道久久精品| 国产在线精品网址你懂的| 国产老女人精品免费视频| 午夜激情福利视频| 国产免费久久精品99re丫丫一| 国产成年女人特黄特色大片免费| 欧美日韩国产在线播放| 99视频只有精品| 中文字幕乱妇无码AV在线| 国产精品丝袜视频| 国产xx在线观看| 日本a级免费| 国产迷奸在线看| 欧美精品成人| 国产黄在线免费观看| 国产成人久视频免费| 欧美国产综合色视频| 幺女国产一级毛片| 亚洲成人77777| 国产原创演绎剧情有字幕的| 美女国产在线| 欧美有码在线| 国产91成人| 国产国拍精品视频免费看 | 国产成人精品一区二区免费看京| 国产无码精品在线| 在线免费无码视频| 国产男女免费视频| 一级一级一片免费| 国产一在线观看| 中文字幕在线一区二区在线| 国产正在播放| 四虎影院国产| 澳门av无码| 97国产成人无码精品久久久| 国产成人精品三级| 91精品啪在线观看国产91| 国产精品免费露脸视频|