• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      STM32的FatFS在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

      2015-07-02 00:17:24
      關(guān)鍵詞:微控制器命令單片機(jī)

      秦 偉

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

      ?

      秦 偉

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

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

      STM32;FatFS文件系統(tǒng);SD卡;高精度數(shù)據(jù)采集

      引 言

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

      1 采集系統(tǒng)方案設(shè)計(jì)

      本系統(tǒng)由模擬量輸入模塊、USB傳輸模塊、大容量存儲模塊和人機(jī)交互模塊組成,系統(tǒng)框圖如圖1所示。模擬信號經(jīng)信號調(diào)理輸入模塊處理后,通過模數(shù)轉(zhuǎn)換器ADC轉(zhuǎn)換為數(shù)字信號,再由STM32微控制器進(jìn)行濾波等數(shù)據(jù)處理后,存儲在SD卡里,并通過串口傳輸?shù)缴衔粰C(jī)進(jìn)行數(shù)據(jù)分析。

      圖1 采集系統(tǒng)方案圖

      1.1 STM32F107微控制器[1]

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

      1.2 24位A/D轉(zhuǎn)換器控制原理[2]

      圖2 A/D轉(zhuǎn)換器讀取時序圖

      1.3 SD卡簡介[4]

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

      1.4 FatFS文件系統(tǒng)[5]

      圖3 FatFs 模塊層次結(jié)構(gòu)圖

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

      2 SD卡操作

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

      2.1 SD卡初始化操作[7]

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

      2.2 SD卡讀寫操作

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

      圖4 SD卡初始化流程圖

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

      圖5 SD卡讀取數(shù)據(jù)流程圖

      SD卡寫數(shù)據(jù)和讀取數(shù)據(jù)差不多,只不過是通過命令CMD24來實(shí)現(xiàn)。

      3 FatFS文件系統(tǒng)移植[8]

      FatFS文件系統(tǒng),最頂層是應(yīng)用層,使用時無需理會FatFS內(nèi)部結(jié)構(gòu)和復(fù)雜的Fat協(xié)議,只需要調(diào)用FatFS模塊提供的API接口函數(shù)即可,比如f_open、f_read、f_write和f_close等,就像在PC機(jī)上讀寫文件那樣簡單。中間層是FatFS模塊,實(shí)現(xiàn)了Fat文件讀寫協(xié)議,使用時不作修改,包含頭文件即可。

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

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

      首先,修改數(shù)據(jù)類型,修改integer.h,使其中定義的數(shù)據(jù)類型與keil mdk4.74編譯器相對應(yīng)。

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

      最后,編寫底層函數(shù),因?yàn)镕atFS模塊完全與磁盤I/O層分開,因此需要下面的函數(shù)來實(shí)現(xiàn)底層物理磁盤的讀寫與獲取當(dāng)前時間。打開diskio.c,進(jìn)行底層驅(qū)動編寫,編寫6個接口函數(shù),如圖6所示。

      圖6 底層接口函數(shù)

      DSTATUS disk_initialize()函數(shù)初始化磁盤驅(qū)動器,本系統(tǒng)采用SD卡作為存儲介質(zhì),因此該函數(shù)主要就是對SD卡進(jìn)行初始化操作,初始化成功后返回狀態(tài)0。需要注意的是應(yīng)用程序不能調(diào)用此函數(shù),否則文件卷上的FAT結(jié)構(gòu)可能會損壞。

      DSTATUS disk_status()函數(shù)返回當(dāng)前驅(qū)動器的狀態(tài),例如磁盤驅(qū)動初始化是否成功,驅(qū)動器中有無設(shè)備,設(shè)備是否寫保護(hù)等。

      DRESULT disk_read()函數(shù)從磁盤驅(qū)動器上讀取扇區(qū)內(nèi)容,調(diào)用SPI讀取單個或多個塊的內(nèi)容。

      DRESULT disk_write()函數(shù)調(diào)用SPI向磁盤寫入一個或多個扇區(qū)。

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

      DWORD get_fattime()函數(shù)獲取當(dāng)前時間。

      通過以上3個步驟,完成了對FatFS文件系統(tǒng)的移植,在應(yīng)用程序中可以調(diào)用該文件系統(tǒng)的API函數(shù)。

      4 硬件電路設(shè)計(jì)

      4.1 SD卡電路連接

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

      圖7 SD卡硬件連接圖

      4.2 采集電路設(shè)計(jì)

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

      結(jié) 語

      本文完成了開源軟件FatFS文件系統(tǒng)在STM32F107微控制器上的移植,設(shè)計(jì)了基于24位高精度A/D轉(zhuǎn)換器。

      圖9 采集電路原理圖

      ADS1252的數(shù)據(jù)采集電路,將SD卡作為存儲介質(zhì),對基于單片機(jī)的大容量數(shù)據(jù)采集系統(tǒng)具有借鑒意義。

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

      [2] 張中平.∑-Δ模數(shù)轉(zhuǎn)換器的原理及應(yīng)用[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文件系統(tǒng)原理及實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2005,9(33):105-108.

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

      [7] 周熠.基于SPI協(xié)議的MMC卡讀寫機(jī)制的實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2005,1(22):97-99.

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

      秦偉(工程師),主要研究方向?yàn)榈V山救援技術(shù)和工程物探儀器。

      Marvell新一代ZigBee無線微控制器SoC促進(jìn)智能家居和IoT創(chuàng)新

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

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

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

      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)

      猜你喜歡
      微控制器命令單片機(jī)
      只聽主人的命令
      基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機(jī)的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于單片機(jī)的便捷式LCF測量儀
      電子制作(2019年9期)2019-05-30 09:42:02
      移防命令下達(dá)后
      物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
      電子制作(2017年14期)2017-12-18 07:07:58
      這是人民的命令
      Microchip推出兩個全新PIC單片機(jī)系列
      Atmel針對新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
      最新STM32設(shè)計(jì)工具增加對混合信號微控制器的支持
      马公市| 高淳县| 裕民县| 石台县| 聂荣县| 灵台县| 牡丹江市| 云安县| 格尔木市| 通州区| 贵德县| 喀喇沁旗| 灵丘县| 新巴尔虎右旗| 平陆县| 兰州市| 建水县| 宝兴县| 乐山市| 昭平县| 察雅县| 苏州市| 静宁县| 安丘市| 鲜城| 甘洛县| 红河县| 渝北区| 龙里县| 巴塘县| 宜章县| 黄骅市| 麻江县| 永城市| 湘阴县| 宁安市| 蒙自县| 寻甸| 青铜峡市| 类乌齐县| 福建省|