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

STM32的FatFS在數據采集系統中的應用

2015-07-02 00:17:24
單片機與嵌入式系統應用 2015年6期
關鍵詞:單片機系統

秦 偉

(中煤科工集團重慶研究院有限公司,重慶400037)

?

秦 偉

(中煤科工集團重慶研究院有限公司,重慶400037)

針對單片機大容量數據采集系統,設計了一種以STM32F107微控制器為核心,以大容量SD卡為存儲介質的數據采集系統。簡述了開源的FatFS文件系統在STM32處理器上的移植及其底層驅動函數的編寫,利用24位∑-Δ模/數轉換器實現了高精度數據采集,利用FatFS文件系統實現了采集數據的大容量存儲和管理,為數據后續處理和傳輸提供了便利。

STM32;FatFS文件系統;SD卡;高精度數據采集

引 言

近年來,數據采集及其應用得到了人們越來越廣泛的關注,數據采集系統也有了迅速的發展,特別是以單片機為核心的數據采集系統,由于其超高的性價比,已經廣泛應用于很多領域。但是傳統的以51單片機為核心的數據采集系統受限于有限的存儲空間和通信方式,存在實時性差、采集容量小等缺點,已無法滿足數據量越來越大的現代社會的需求,大容量數據存儲已成為微控制器應用的瓶頸。為突破容量的限制,一般采用外擴存儲器,比如U盤、SD卡等,并移植文件系統便于對數據進行后續管理和處理。

1 采集系統方案設計

本系統由模擬量輸入模塊、USB傳輸模塊、大容量存儲模塊和人機交互模塊組成,系統框圖如圖1所示。模擬信號經信號調理輸入模塊處理后,通過模數轉換器ADC轉換為數字信號,再由STM32微控制器進行濾波等數據處理后,存儲在SD卡里,并通過串口傳輸到上位機進行數據分析。

圖1 采集系統方案圖

1.1 STM32F107微控制器[1]

系統采用了ST公司基于ARM Cortex-M3內核的32位增強型閃存微控制器STM32F107作為控制核心。Cortex-M3內核專門用于滿足集高性能、低功耗、實時應用、具有競爭性價格于一體的嵌入式領域的要求,采用哈佛結構,能夠達到1.25 DMIPS/MHz和0.19 mW/MHz,有單周期乘法指令和硬件除法指令。該芯片最高工作頻率可達到72 MHz,具有256 KB的閃存以及64 KB的SRAM,以及性能出眾的片上外設(如USB、USART、SPI、I2C、GPIO、PWM、10/100M Ethernet MAC等),最大限度地實現集成,豐富的片上資源大大簡化了系統硬件,同時降低了系統功耗,待機電流僅為2 μA 。

1.2 24位A/D轉換器控制原理[2]

圖2 A/D轉換器讀取時序圖

1.3 SD卡簡介[4]

SD卡是一種為滿足安全性、容量、性能和使用環境等各方面的需求而設計的一種新型Flash存儲器件。SD卡允許在兩種模式下工作,即SD模式和SPI模式,本系統采用SPI模式。SD卡使用卡內智能控制模塊進行Flash操作控制,包括協議、安全算法、數據存取、ECC算法、 缺陷處理和分析、電源管理、時鐘管理。SD卡被廣泛使用在便攜裝置,如數碼相機、個人數碼設備和多媒體播放器等,目前SD卡容量已經進入以G為單位的時代。

1.4 FatFS文件系統[5]

圖3 FatFs 模塊層次結構圖

FatFS是一種開源的FAT 文件系統模塊,專門為小型的嵌入式系統而設計。它完全采用標準C格式語法編寫,完全獨立于I/O 層,只需做簡單的修改即可移植到8051、PIC、AVR、SH、Z80、H8 和ARM 等系列單片機上。FatFS的特點是分離緩沖FAT結構的每個文件,可以快速訪問多個文件,支持多個驅動器和分區,支持FAT12、FAT16和FAT32,支持8.3格式的文件名,優化了8/16位微控制器。FatFS的設計思想是小塊的數據可以通過Buffer存儲,大塊的數據直接存取,提高了存取速度和效率。FatFS模塊層次結構如圖3所示。

2 SD卡操作

SD卡協議采用命令的方式進行數據操作[6],因此SD卡和STM32F107的通信采用發送應答機制,每發送一個命令,SD卡都會給出一個應答,以告知主機該命令的執行情況,或者返回主機請求的數據。SPI模式下常用的命令如表1所列。

2.1 SD卡初始化操作[7]

因為系統使用的是SPI模式,所以先得讓卡進入SPI模式,方法如下:在SD卡收到復位(CMD0)時,CS引腳為低電平,則SPI模式被啟用。不過在發送復位命令之前,要發送至少74個時鐘周期,以保證SD卡內部供電電壓的上升。在卡初始化的時候,時鐘周期最大不能超過400 kHz,初始化完成后,才能切換到SPI高速模式。初始化流程如圖4所示。

2.2 SD卡讀寫操作

通過SD卡初始化,可以得知卡的類型(V1、V2、V2HC或MMC),完成初始化后,可以開始通過命令讀寫數據。SD卡讀取數據通過命令CMD17來實現,流程如圖5所示。

圖4 SD卡初始化流程圖

命 令參 數回 應描 述CMD0(0x00)NONER1復位SD卡CMD8(0x08)VHS+CheckpatternR7發送接口狀態命令CMD9(0x09)NONER1讀取卡特定數據寄存器CMD10(0x0A)NONER1讀取卡標志數據寄存器CMD16(0x10)塊大小R1設置塊大小(字節數)CMD17(0x11)地址R1讀取一個塊的數據CMD24(0x18)地址R1寫入一個塊的數據CMD41(0x29)NONER3發送給主機容量支持信息和激活卡初始化過程CMD55(0x37)NONER1告訴SD卡,下一個是特定應用命令CMD58(0x3A)NONER3讀取OCR寄存器

圖5 SD卡讀取數據流程圖

SD卡寫數據和讀取數據差不多,只不過是通過命令CMD24來實現。

3 FatFS文件系統移植[8]

FatFS文件系統,最頂層是應用層,使用時無需理會FatFS內部結構和復雜的Fat協議,只需要調用FatFS模塊提供的API接口函數即可,比如f_open、f_read、f_write和f_close等,就像在PC機上讀寫文件那樣簡單。中間層是FatFS模塊,實現了Fat文件讀寫協議,使用時不作修改,包含頭文件即可。

需要編寫移植代碼的是FatFS模塊提供的底層接口,它包括存儲介質讀寫接口(disk I/O)和供給文件創建修改時間的實時時鐘(RTC)。

從網站上下載FatFS的R0.09a版本源代碼,解壓后有兩個文件夾:doc和src。前者是FatFS的說明文檔,后者是源代碼文件夾,移植時,只需要修改兩個文件:ffconf.h和diskio.c。

首先,修改數據類型,修改integer.h,使其中定義的數據類型與keil mdk4.74編譯器相對應。

其次,修改文件ffconf.h,按照需求配置相關功能。例如,_VOLUMES用于設置FatFS支持的邏輯設備數目,本系統只有一個存儲設備(SD卡),所以_VOLUMES設置為1,其他設置可參考注釋進行修改。

最后,編寫底層函數,因為FatFS模塊完全與磁盤I/O層分開,因此需要下面的函數來實現底層物理磁盤的讀寫與獲取當前時間。打開diskio.c,進行底層驅動編寫,編寫6個接口函數,如圖6所示。

圖6 底層接口函數

DSTATUS disk_initialize()函數初始化磁盤驅動器,本系統采用SD卡作為存儲介質,因此該函數主要就是對SD卡進行初始化操作,初始化成功后返回狀態0。需要注意的是應用程序不能調用此函數,否則文件卷上的FAT結構可能會損壞。

DSTATUS disk_status()函數返回當前驅動器的狀態,例如磁盤驅動初始化是否成功,驅動器中有無設備,設備是否寫保護等。

DRESULT disk_read()函數從磁盤驅動器上讀取扇區內容,調用SPI讀取單個或多個塊的內容。

DRESULT disk_write()函數調用SPI向磁盤寫入一個或多個扇區。

DRESULT disk_ioctl()函數通過底層SPI驅動可以讀取存儲設備中的一些特殊寄存器(SD卡中的OCR、CID、RCA等),獲得相關信息后,后續操作才能執行成功,比如格式化操作等。

DWORD get_fattime()函數獲取當前時間。

通過以上3個步驟,完成了對FatFS文件系統的移植,在應用程序中可以調用該文件系統的API函數。

4 硬件電路設計

4.1 SD卡電路連接

圖7為SD卡的硬件連接電路圖。使用了STM32F107的SPI3,引腳PC3為SD卡片選,配置為推挽輸出;PC12為MOSI,配置為推挽復用;PC11為MISO,配置為推挽復用,PC2引腳用來檢測SD是否插入,配置為輸入模式,硬件上拉;PC10引腳為SPI時鐘信號,配置為推挽輸出。

圖7 SD卡硬件連接圖

4.2 采集電路設計

采集電路包括輸入信號濾波、限幅、單端轉差分等預處理電路,ADC和STM32F107之間通過SPI1接口連接,電路圖如圖8所示。A/D轉換完成后,會在DOUT引腳產生一個下降沿,觸發STM32F107的外部中斷,在中斷程序里,通過SPI1讀取數據。讀取多個數據完成后,再寫入到SD卡。

結 語

本文完成了開源軟件FatFS文件系統在STM32F107微控制器上的移植,設計了基于24位高精度A/D轉換器。

圖9 采集電路原理圖

ADS1252的數據采集電路,將SD卡作為存儲介質,對基于單片機的大容量數據采集系統具有借鑒意義。

[1] ST.STM32F10xxx 參考手冊中文版[EB/OL]. [2015-01].http://download.csdn.net/detail/winnerben/2887762.

[2] 張中平.∑-Δ模數轉換器的原理及應用[J].電子器件,2003,12,26(4).

[3] Texas Instruments.ADS1252 datasheet [EB/OL].(2009-09-27)[2015-01].http://download.csdn.net.

[4] ScanDisk Corpate.SD memory card specification part 1:physical layer specification version 1.0,2000.

[5] 鄧劍.FAT文件系統原理及實現[J].計算機與數字工程,2005,9(33):105-108.

[6] ScanDisk Corpate.SD memory card specification part 5:SPI bus protocol,2000.

[7] 周熠.基于SPI協議的MMC卡讀寫機制的實現[J].計算機仿真,2005,1(22):97-99.

[8] FatFS官方應用詳解[EB/OL].[2015-01].http://www.docin.com/p-723009741.html.

秦偉(工程師),主要研究方向為礦山救援技術和工程物探儀器。

Marvell新一代ZigBee無線微控制器SoC促進智能家居和IoT創新

美滿電子科技(Marvell)近日推出新一代業界領先的88MZ300 802.15.4/ZigBee無線微控制器SoC。該SoC是Marvell面向IoT解決方案的無線微控制器系列的最新成員。這款高性能、低功耗、高性價比的SoC提供卓越的射頻(RF)性能,與Marvell前一代88MZ100 SoC相比,傳輸距離延長一倍以上,功耗降低50%,同時由于芯片的高集成度而最大限度地減少了所需外部器件數量。88MZ300 SoC支持包括即將出臺的ZigBee 3.0和Thread協議在內的開放標準,連同ZigBee至Wi-Fi橋接參考設計以及由硬件制造商和系統集成合作伙伴組成的生態系統,能夠幫助設備制造商(OEM)迅速將最新的創新性物聯網應用推向市場。

Marvell公司副總裁兼移動與物聯網業務部總經理Philip Poulidis表示:“Marvell不斷展示家庭自動化、聯網照明及IoT領域的創新,88MZ300 ZigBee無線微控制器在性能和成本上引領802.15.4技術。88MZ300與Kinoma以及不久前推出的智能家居云中心(Smart Home Cloud Center)相結合,為家庭自動化和IoT市場提供了一款整體解決方案。我們期望隨著88MZ300的采用,會出現一系列激動人心的新產品。”

88MZ300以Marvell大獲成功的88MZ100 ZigBee無線微控制器為基礎開發,提供XIP(Execute In Place)功能,允許直接在閃存中執行代碼,從而降低了系統成本,同時實現了可擴展的存儲器架構,為代碼較長的應用以及未來的軟件升級提供了方便。這對設備制造商很有好處,因為設備制造商設計產品時需要應對協議標準不斷演變的問題。88MZ300接收(RX)電流為8.5 mA,待機電流為1 μA,因此功耗超低;另外該SoC可用1.8~3.6 V 的各種電源工作,因此允許使用小型電池,并延長了電池壽命。此外,88MZ300提供2.4 GHz Wi-Fi與藍牙共存性能,顯著改善了數據鏈路質量,減少了信息損失,進而提升了用戶體驗。基于88MZ300的IoT解決方案不僅提供成熟可靠、基于開放標準的網絡協議棧,還提供與Marvell智能家居云中心平臺以及Kinoma軟件兼容的交鑰匙型硬件設計。

Qin Wei

(China Coal Technology Engineering Group Chongqing Research Institute,Chongqing 400037,China)

Aiming at the large-capacity data acquisition system,the paper designs a system which takes STM32F107 microcontroller as the core,and adopts SD card as the storage medium.The article outlines the transplant of the open source Fat file system on the STM32 processor and the programming of the low-level driver functions.The system achieves high-precision data acquisition by using the 24-bits Σ-Δ ADC,and uses the Fat file system to achieve a large-capacity storage and management for the collected data,which provides a convenience for the subsequent processing and transmission of the data.

STM32;Fat file system;SD card;high-precision data acquisition

TP274.2

A

迪娜

2015-01-05)

猜你喜歡
單片機系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于PowerPC+FPGA顯示系統
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
半沸制皂系統(下)
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 91极品美女高潮叫床在线观看| 国产色网站| 精品国产一二三区| a毛片基地免费大全| 9丨情侣偷在线精品国产| 欧美午夜理伦三级在线观看| 国内精品一区二区在线观看| 秋霞午夜国产精品成人片| 欧美成人午夜视频免看| 国产精品流白浆在线观看| 国产产在线精品亚洲aavv| 97se亚洲综合在线天天| 久久免费视频播放| 免费在线色| 日韩精品欧美国产在线| 乱人伦视频中文字幕在线| av大片在线无码免费| 成人毛片免费在线观看| 最新国语自产精品视频在| 最新国产你懂的在线网址| 国产毛片基地| 国产乱子伦一区二区=| 波多野结衣亚洲一区| 国产精品熟女亚洲AV麻豆| 久久99国产精品成人欧美| 一本一道波多野结衣一区二区| 啪啪啪亚洲无码| 国产乱码精品一区二区三区中文| 制服丝袜亚洲| 国产欧美在线观看一区| 免费AV在线播放观看18禁强制| 久久精品人人做人人爽电影蜜月| 黄色网址手机国内免费在线观看| 色精品视频| 欧美亚洲国产一区| 亚洲成a人片77777在线播放| 亚洲福利视频一区二区| 亚洲无码精彩视频在线观看| 欧美自拍另类欧美综合图区| 女人18一级毛片免费观看| 天堂成人在线| 亚洲成人高清无码| 亚洲国产综合精品一区| 在线精品自拍| 五月婷婷伊人网| 欧美有码在线| 亚洲精品桃花岛av在线| 亚洲大学生视频在线播放| 18禁影院亚洲专区| 久久91精品牛牛| 国产成人精品高清不卡在线| 亚洲无线观看| 麻豆国产原创视频在线播放| 久久久久亚洲Av片无码观看| 欧美劲爆第一页| 国产精品成人免费综合| 亚洲无码高清一区二区| 全免费a级毛片免费看不卡| 67194亚洲无码| 色哟哟色院91精品网站| 欧美高清视频一区二区三区| 欧美专区日韩专区| 97色伦色在线综合视频| 天堂在线www网亚洲| 亚洲午夜福利精品无码不卡| 色婷婷成人网| 久久久久久久久亚洲精品| 国产亚洲现在一区二区中文| 亚洲男人的天堂久久香蕉 | 亚欧乱色视频网站大全| 精品人妻一区二区三区蜜桃AⅤ| 亚洲av日韩av制服丝袜| 亚洲天堂首页| 玖玖精品在线| 色婷婷色丁香| 国产区免费| 欧美一级特黄aaaaaa在线看片| 国产va视频| 666精品国产精品亚洲| 欧美日本二区| 四虎精品黑人视频| 人妻精品久久无码区|