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

基于flash的U盤(pán)數(shù)據(jù)記錄儀的研制

2018-10-18 07:16:14
關(guān)鍵詞:指令單片機(jī)

王 龍

(湘南學(xué)院 電子信息與電氣工程學(xué)院,湖南 郴州 423000)

時(shí)代的進(jìn)步,促使科學(xué)技術(shù)飛速發(fā)展,其大跨步走向自動(dòng)化、互聯(lián)網(wǎng)化、智能化的方向,采用的控制系統(tǒng)構(gòu)與智能互聯(lián)網(wǎng)結(jié)合走向多元化.面對(duì)科技的進(jìn)步對(duì)工業(yè)應(yīng)用中數(shù)據(jù)采集的需要加大,數(shù)據(jù)采集技術(shù)標(biāo)準(zhǔn)提升,故此考驗(yàn)數(shù)據(jù)存儲(chǔ)設(shè)備的存儲(chǔ)容量、速度、質(zhì)量、便攜性及工業(yè)應(yīng)用環(huán)境等因素的能力.由U盤(pán)構(gòu)成的數(shù)據(jù)儲(chǔ)存記錄器可面向于海量數(shù)據(jù)采集存儲(chǔ)、設(shè)備黑匣子、考勤機(jī)數(shù)據(jù)記錄、水文監(jiān)測(cè)、無(wú)紙記錄儀及自動(dòng)化生產(chǎn)線運(yùn)作數(shù)據(jù)采集系統(tǒng)等場(chǎng)合應(yīng)用[1].

國(guó)內(nèi):最早期采用磁帶記錄技術(shù)開(kāi)啟數(shù)字化時(shí)期,高度數(shù)字記錄(HDDR)特點(diǎn)是動(dòng)態(tài)范圍寬[2].再轉(zhuǎn)變?yōu)楣虘B(tài)數(shù)據(jù)記錄器以SRAM存儲(chǔ)器芯.中國(guó)科學(xué)院研究成功高速固態(tài)數(shù)據(jù)記錄器,是國(guó)內(nèi)較早以Flash為存儲(chǔ)介質(zhì)的數(shù)據(jù)記錄器,存儲(chǔ)容量突破120GByte[3].其中主要圍繞CAN,USB2.0,PXIe等接口進(jìn)行設(shè)計(jì),隨著USB總線的高速發(fā)展,運(yùn)用USB接口技術(shù)實(shí)現(xiàn)數(shù)據(jù)記錄的方式主要特點(diǎn):傳輸速率快,即插即用等優(yōu)勢(shì)在高速數(shù)據(jù)傳輸領(lǐng)域開(kāi)始普及和推數(shù)據(jù)記錄器發(fā)展.

國(guó)外:從20世紀(jì)80年代末90年代初研制的數(shù)據(jù)記錄器應(yīng)用于諸多需要數(shù)據(jù)存儲(chǔ)的領(lǐng)域.如美國(guó)SE公司(Seakr Engineering)MMUR系列數(shù)據(jù)記錄器,具有28bit輸出接口,數(shù)據(jù)記錄的速度為3.6Gbps,容量是768Gbit[4],此時(shí)世界各國(guó)都準(zhǔn)備探究數(shù)據(jù)記錄器的技術(shù).隨著半導(dǎo)體工藝技術(shù)快速進(jìn)步的到來(lái),進(jìn)入新的起航階段,半導(dǎo)體存儲(chǔ)器芯片逐漸誕生,如 EPROM、EEPROM、SDRAM、FLASH等.上述數(shù)據(jù)存儲(chǔ)器芯片相對(duì)磁帶記錄器具有優(yōu)點(diǎn),例如占有空間小、耐高溫、儲(chǔ)存速率極快、容量大、穩(wěn)定性高等.在研究領(lǐng)域有代表性的研制公司有美國(guó)的VCI公司和歐洲的ATRIUM公司[5].

總體方案是以ATmega128為主控芯片,通過(guò)UART通信方式實(shí)現(xiàn)與串口數(shù)據(jù)的傳輸,再通過(guò)spi通信方式控制flash芯片W25Q128BV的將接收的數(shù)據(jù)暫存入flash,從而將數(shù)據(jù)在USART通信方式下控制USB接口芯片CH376將緩存在flas中的數(shù)據(jù)傳送到U盤(pán),最終實(shí)現(xiàn)的目的是外部數(shù)據(jù)快速存入U(xiǎn)盤(pán),達(dá)到高速數(shù)據(jù)存儲(chǔ)可以在脫離計(jì)算機(jī)控制的存儲(chǔ)方式下實(shí)現(xiàn).采用現(xiàn)場(chǎng)數(shù)據(jù)存儲(chǔ),事后通過(guò)計(jì)算機(jī)讀取U盤(pán)的方式獲取數(shù)據(jù).本設(shè)計(jì)構(gòu)成的模塊有主控處理器、數(shù)據(jù)通信模塊、U盤(pán)讀取模塊、電源管理模塊,具體構(gòu)成如下圖所示:

圖1 整體框架圖

創(chuàng)新點(diǎn):(1)將U盤(pán)應(yīng)用于高速數(shù)據(jù)記錄儀.U盤(pán)高速數(shù)據(jù)記錄儀因避免了操作系統(tǒng)容易崩潰的問(wèn)題而具有更高的可靠性,操作簡(jiǎn)單方便且成本低廉.

(2)采用flash作為前級(jí)數(shù)據(jù)緩存的目的是實(shí)現(xiàn)數(shù)據(jù)在采集存儲(chǔ)時(shí)寫(xiě)入的速率與flash的存儲(chǔ)速率完成有效的匹配,然后再轉(zhuǎn)存到U盤(pán),不會(huì)因?yàn)閿?shù)據(jù)在采集存儲(chǔ)時(shí)受U盤(pán)存儲(chǔ)數(shù)據(jù)的速率的限制,完成數(shù)據(jù)采集與存儲(chǔ)最佳效果.

1 Ch376使用分析

CH376s是實(shí)現(xiàn)U盤(pán)儲(chǔ)存數(shù)據(jù)的芯片,它同樣是文件管理系列的芯片,能夠配合的主控芯片有單片機(jī)、DSP、FPJA等微機(jī)芯片的工作完成對(duì)U盤(pán)或者SD卡的數(shù)據(jù)存儲(chǔ).自身帶有USB通訊協(xié)議的基本固件,芯片自身配置協(xié)議的固件就能夠完成海量存儲(chǔ)設(shè)備的專用通訊和SD卡的通訊[4].文件控制系統(tǒng)中主要包含F(xiàn)AT16、FAT32等管理固件.最大的優(yōu)點(diǎn)是能夠滿足常見(jiàn)的USB儲(chǔ)存開(kāi)發(fā),包含U盤(pán)、USB硬盤(pán)及SD卡(其中包含兩類(lèi)即標(biāo)準(zhǔn)容量和高容量的SD卡和HC-SD卡).

通訊方式三種:并口數(shù)據(jù)通信方式、SPI串行通信、異步串口通信.我們采用的是atmega128單片機(jī),選擇使用與單片機(jī)相結(jié)合的通訊方式uart,即異步串行通信方式.

U盤(pán)存儲(chǔ)方式是分扇區(qū)模式和字節(jié)模式,本設(shè)計(jì)采用扇區(qū)模式進(jìn)行的,因而U盤(pán)會(huì)給予極多個(gè)物理扇區(qū),單獨(dú)用來(lái)存儲(chǔ)數(shù)據(jù),而通常情況下單個(gè)扇區(qū)內(nèi)存的大小一般是512字節(jié)為基本單位對(duì)U盤(pán)進(jìn)行讀寫(xiě)操作,速度比字節(jié)模式快因此我們需要調(diào)整我們數(shù)據(jù)緩存區(qū)的扇區(qū)大小,基本要求大于512字節(jié)的整數(shù)倍.當(dāng)然也是適應(yīng)RAM多,數(shù)量非常大,可實(shí)現(xiàn)頻繁的操作的單片機(jī).

本設(shè)計(jì)中要用到讀函數(shù)CH376SecRead和CH376SecWrite扇區(qū)寫(xiě)函數(shù),因?yàn)槲覀冇?jì)算機(jī)一般是將U盤(pán)中的物理扇區(qū),加以組織構(gòu)造成為FAT文件系統(tǒng),其目的是讓單片機(jī)控制的U盤(pán)/SD卡的數(shù)據(jù)與計(jì)算機(jī)兩間的數(shù)據(jù)交換,單片機(jī)存儲(chǔ)U盤(pán)數(shù)據(jù)是在FAT標(biāo)準(zhǔn)規(guī)范下行使數(shù)據(jù)的讀取.我們?cè)谑褂弥型ǔ4鎯?chǔ)數(shù)據(jù)時(shí),假如數(shù)據(jù)數(shù)量非常少或數(shù)據(jù)間斷型,我們也是可以在每次讀取完數(shù)據(jù)后進(jìn)行更新文件目錄信息,這一把是更新目錄中的文件長(zhǎng)度.

Ch376的結(jié)構(gòu)圖分為應(yīng)用層包含的函數(shù)在HOST.c,文件系統(tǒng)接口包含的函數(shù)是在FILE_syst.c文件里面.設(shè)備接口所有函數(shù)包含在HAL.H文件里面,硬件部分是連線再到USB總線方式直連U盤(pán).下面我們論述硬件層和文件系統(tǒng)層.

硬件抽象層,也就設(shè)置I/O接口子函數(shù)的程序,構(gòu)成單片機(jī)與CH376芯片的通訊接口式,取決于HAL.H頭文件,UART_HW.C是硬件異步串口連接方式,在硬件層,支持波特率從9600bps到3Mbps[4].

文件系統(tǒng)層,將常用命令進(jìn)行打包,提供了常用的文件管理子程序和一些不太常用的子程序FILE_SYS.H文件系統(tǒng)層頭文件和相應(yīng)的子程序來(lái)調(diào)用.

輔助調(diào)試子程序,主要用于顯示輸出調(diào)試過(guò)程中信息,便于查看程序在運(yùn)行過(guò)程中狀態(tài)監(jiān)測(cè).

2 驅(qū)動(dòng)ch376s步驟

配置頭文件有atmega128相應(yīng)的頭文件及ch376應(yīng)用層和硬件層文件系統(tǒng)層的頭文件,例如#include <string.h>、#include <stdio.h> 等.設(shè)置緩存區(qū)BUFFFER,其中buf根據(jù)需要設(shè)置,我們是64,設(shè)置串口調(diào)試信息監(jiān)控,配置硬件的波特率我們?nèi)?600.

初始化后應(yīng)答正常就進(jìn)入中斷,中斷函數(shù)是CH376DiskConnect函數(shù),等待U盤(pán)插入,緊接著檢查U盤(pán)相關(guān)信息如U盤(pán)的容量,創(chuàng)建文本文檔,通過(guò)串口返回監(jiān)測(cè)結(jié)果返回初始化成功,進(jìn)入接收數(shù)據(jù)狀態(tài).

3 CH376S的UART的通信方式

異步串口通訊方式主要包括:數(shù)據(jù)的讀RXD和串行數(shù)據(jù)輸出也就是數(shù)據(jù)寫(xiě)的引腳TXD.芯片的RXD和TXD連接方式是在單片機(jī)的串行數(shù)據(jù)輸出引腳和串行數(shù)據(jù)輸入引腳.

CH376使用的串行數(shù)據(jù)傳輸格式采用的是通用的字節(jié)傳輸方式,這包含1個(gè)起始位和8個(gè)數(shù)據(jù)位及1個(gè)停止標(biāo)志位.默認(rèn)設(shè)置的波特率是9600bp,如果要修改波特率需要借助函數(shù)CMD_SET_BAUDRATE修改既可.

通訊過(guò)程中,分為兩個(gè)階段,即發(fā)送命令階段和命令應(yīng)答階段.這其中的發(fā)送命令也就是使用者向?qū)懭肫鳎ù趓s-233)提出的操作申請(qǐng)和數(shù)據(jù)應(yīng)答,命令應(yīng)答是采用寫(xiě)入器向用戶命令提出的響應(yīng).

軟件接口功能:首先檢測(cè)U盤(pán)的狀態(tài)(如插入,拔出),創(chuàng)建文件和目錄(支持長(zhǎng)文件名文件和目錄),打開(kāi)一個(gè)已經(jīng)創(chuàng)建的文件和目錄(支持長(zhǎng)文件名文件和目錄),從文件中讀取指定長(zhǎng)度和指定位置的數(shù)據(jù)(支持長(zhǎng)文件名文件和目錄).

寫(xiě)數(shù)據(jù)到指定文件的指定地址(支持長(zhǎng)文件名文件和目錄),列舉目錄下的文件和目錄(支持長(zhǎng)文件名文件和目錄),刪除文件和目錄(支持長(zhǎng)文件名文件和目錄)查詢U盤(pán)容量.

4 ch376模塊電路設(shè)計(jì)

CH376的通信方式是異步串行通信UART,其中包含:RXD為串行數(shù)據(jù)輸入和TXD作為數(shù)據(jù)輸出.采用這邊通信方式的優(yōu)勢(shì)就是減少與單片機(jī)最少的連線.CH376s在通信中的數(shù)據(jù)格式屬于標(biāo)準(zhǔn)的字節(jié)傳輸模式,一個(gè)起始位,八個(gè)數(shù)據(jù)位,一個(gè)停止位.CH376能夠適應(yīng)硬件設(shè)定默認(rèn)的串行通訊波特率,當(dāng)然可以跟隨單片機(jī)修改函數(shù)CMD_SET_BAUDRATE.每次上電復(fù)位后,CH376s的波特率取決自己三個(gè)引腳也就是BZ和SCK和SDI三個(gè)引腳的電平組合設(shè)定,與單片機(jī)的連線如下圖示:

圖2 ch376模塊電路圖

5 flash模塊設(shè)計(jì)

端口定義:CLK=PB5/CS=PB4 DO=PB6 DI=PB7,程序配置流程配置引腳使能spi時(shí)鐘,系統(tǒng)IO口初始化,進(jìn)入SPI初始化,判斷指定的SPI標(biāo)志位是否已經(jīng)設(shè)置好,進(jìn)一步進(jìn)入發(fā)送緩存的空標(biāo)志位,判斷是否配置好的SPI緩存標(biāo)志.

圖3 flash引腳圖

寫(xiě)狀態(tài)寄存器(01H):

主要對(duì)寫(xiě)入狀態(tài)寄存器中SRP0,SEC,LB,QE,SRP1,TB,BP,CMP進(jìn)行操作,LB位是非易失性的,也就是只要進(jìn)入編程(OTP)位,只要是寫(xiě)入1,即不能進(jìn)行清零操作.一旦開(kāi)啟寫(xiě)使能,寫(xiě)入狀態(tài)寄存器指令(01H)將以/CS置低電平開(kāi)始,然后通過(guò)DI進(jìn)行傳輸指令碼(01H),然后傳輸相應(yīng)的狀態(tài)寄存器位最后以/CS置高電平為結(jié)束.

在寫(xiě)入(01H)指令前,必須先寫(xiě)入(06H)指令也就是寫(xiě)使能指令,這一步的目的就是確保WEL位是1.

在寫(xiě)易失性的狀態(tài)寄存位,先完成指令50H寫(xiě)入.這其中SRP1和LB位都是采用一次編程,表明我們不可能做到從1寫(xiě)為0.確保完成寫(xiě)狀態(tài)寄存器指令順利進(jìn)行,/CS管腳的電平是在數(shù)據(jù)傳輸完成后拉為高電平.假使/CS電平?jīng)]有被拉高電平,會(huì)導(dǎo)致在寫(xiě)狀態(tài)寄存指令不會(huì)被執(zhí)行.如果/CS在第八個(gè)時(shí)鐘拉高電平時(shí),相關(guān)的位CMP、QE、SRP1也會(huì)快速進(jìn)行清零.假如在非易失性相關(guān)的狀態(tài)寄存器位在進(jìn)行寫(xiě)操作,也就是指令06和指令01H,如果/CS拉高電平后,在指令在執(zhí)行期間,并不會(huì)影響讀狀態(tài)寄存器指令進(jìn)行檢查BUYS位.當(dāng)BUSY=1完成指令后,BUSY位馬上變?yōu)榈碗娖剑琖EL位也變?yōu)榈碗娖剑瓿缮鲜鼍捅砻骺梢越邮苄碌闹噶盍?寫(xiě)指令50H和指令01H操作時(shí),/CS拉高電平后,狀態(tài)寄存器馬上進(jìn)行刷新.在刷新期間,BUSY位仍然是0.

圖4 寫(xiě)狀態(tài)時(shí)序圖

讀數(shù)據(jù)(03H)

讀數(shù)據(jù)指令主要功能是指通過(guò)存儲(chǔ)器讀出一個(gè)字節(jié)或者連續(xù)著的多個(gè)字節(jié).完成這個(gè)指令是從/CS置為低電平開(kāi)始的,主要在DI的clk的上升沿到來(lái)時(shí),傳輸?shù)闹噶畲a03H及24位地址位.當(dāng)芯片接收完成相關(guān)的地址位,則相應(yīng)的地址處的值會(huì)在下個(gè)時(shí)鐘下降沿到來(lái)時(shí)以高位在前面地位在后面的方式進(jìn)行地址自動(dòng)加一.表明我們可以一次性讀出整個(gè)芯片的數(shù)據(jù).判斷是否結(jié)束我們只需要判斷/CS是否是被置高.根據(jù)要寫(xiě)的其實(shí)地址,確定寫(xiě)的起始區(qū)域的sector號(hào),及其在起始sector中的偏移量.根據(jù)要寫(xiě)的起始地址和字節(jié)數(shù),確定是否要寫(xiě)的數(shù)據(jù)是夸sector.確定好操作的sector及sector的地址范圍.對(duì)每一個(gè)sector,先便利要寫(xiě)的地址區(qū)域保持的數(shù)據(jù)是否是0xff,如果是就不擦除,如果不是0xff區(qū)域,先讀出里面的數(shù)據(jù),保存在緩存flash芯片中.然后擦除里面的內(nèi)容,然后把sector要操作的數(shù)據(jù),寫(xiě)到緩存中,最后一次性把緩存在W25Q128BV的數(shù)據(jù)寫(xiě)到對(duì)應(yīng)sector中.pBuffer:數(shù)據(jù)存儲(chǔ)區(qū)開(kāi)始寫(xiě)入的地址(24bit)要寫(xiě)入的字節(jié)數(shù)(最大65535),單頁(yè)剩余的字節(jié)數(shù),判寫(xiě)入結(jié)束與否,計(jì)算字節(jié)減去已經(jīng)寫(xiě)入了的字節(jié)數(shù)一次可以寫(xiě)入256字節(jié).

圖5 讀數(shù)據(jù)(03H)

6 讀取flash電路的設(shè)計(jì)

采用atmega128模擬spi進(jìn)行讀取數(shù)據(jù),其連接方式如圖6所示CLK=PB5/CS=PB4 DO=PB6 DI=PB7

圖6 單片機(jī)與flash連接

7 系統(tǒng)程序流圖

主程序的主要功能是對(duì)定時(shí)器,I/O口資源,wrd128flash,ch376s,串口通信等所用到的資源進(jìn)行初始化.主程序流程見(jiàn)圖7所示.

圖7 流程圖

8 ch376程序結(jié)構(gòu)分析

主程序除了對(duì)所用到的外設(shè)資源進(jìn)行初始化之外還調(diào)用了3個(gè)子程序,分別是模擬數(shù)據(jù)傳感器的數(shù)據(jù)讀寫(xiě)程序、flash暫存讀取程序、對(duì)ch376s數(shù)據(jù)處理程序,單片機(jī)通過(guò)控制將程序存入U(xiǎn)盤(pán)中是以文本文檔存在.

圖8 ch376工作流程圖

表1 幾種存取方式對(duì)比

9 結(jié)論

采用單片機(jī)為主控的芯片供電方式便捷,因此使用環(huán)境靈活和功耗低,便于我們適用于森林生態(tài)數(shù)據(jù)記錄和水文觀測(cè)點(diǎn)的數(shù)據(jù)記錄,解決不通電的情況下可以采用電池或者太陽(yáng)能供電來(lái)解決電源問(wèn)題,操作簡(jiǎn)單,對(duì)于戶外記錄數(shù)據(jù)非常有幫助.當(dāng)然如果工業(yè)實(shí)際應(yīng)用需要大量調(diào)試和各種環(huán)境測(cè)試和數(shù)據(jù)論證,這需要大量實(shí)驗(yàn)測(cè)試和理論計(jì)算為依據(jù),從而達(dá)到進(jìn)一步提高.

猜你喜歡
指令單片機(jī)
聽(tīng)我指令:大催眠術(shù)
基于單片機(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測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
殺毒軟件中指令虛擬機(jī)的脆弱性分析
Microchip推出兩個(gè)全新PIC單片機(jī)系列
主站蜘蛛池模板: 久久国产乱子伦视频无卡顿| 日韩欧美国产另类| 欧美精品1区| 一级不卡毛片| 亚洲美女操| 国产成人8x视频一区二区| 欧美成人看片一区二区三区 | 99久久国产精品无码| 免费一极毛片| 亚洲AV无码一区二区三区牲色| 99久久精品国产精品亚洲| 国产伦精品一区二区三区视频优播| 波多野结衣中文字幕一区二区| 国产福利观看| 久久久久久久久亚洲精品| 中文字幕在线播放不卡| 91久久精品日日躁夜夜躁欧美| jizz国产视频| 成人在线天堂| 人人91人人澡人人妻人人爽| 亚洲国产成人精品青青草原| 老司国产精品视频91| 亚洲日韩高清在线亚洲专区| 91福利在线看| 成人午夜视频免费看欧美| 国产精品亚洲欧美日韩久久| 一本大道视频精品人妻| 久久久久久久久久国产精品| 国产主播一区二区三区| 欧美不卡视频在线| 国产精品亚洲天堂| 老司国产精品视频| 亚洲无码高清免费视频亚洲| 91精品国产自产在线老师啪l| 99精品影院| 久久女人网| 狠狠干欧美| 国产人免费人成免费视频| 高清不卡毛片| 无码综合天天久久综合网| 一级毛片在线免费视频| 五月天久久综合| AⅤ色综合久久天堂AV色综合 | 亚洲男人天堂久久| 国产va免费精品| 九九九九热精品视频| 国产va在线观看免费| 国产精品夜夜嗨视频免费视频| 欧美亚洲日韩不卡在线在线观看| 欧美特黄一级大黄录像| 一级毛片免费观看久| 久久精品嫩草研究院| 国产亚洲美日韩AV中文字幕无码成人 | 青青草91视频| 国产综合精品日本亚洲777| 国产国产人成免费视频77777| 亚洲人成影院在线观看| 欧美成人影院亚洲综合图| 欧美a级完整在线观看| 一级在线毛片| 久久国产精品麻豆系列| 最新国语自产精品视频在| 婷婷色婷婷| 国产成人艳妇AA视频在线| 99精品福利视频| 亚洲人成在线精品| 欧美色伊人| 中文无码精品a∨在线观看| 全部免费毛片免费播放| 亚洲黄色网站视频| 谁有在线观看日韩亚洲最新视频| 亚洲v日韩v欧美在线观看| 中文字幕无线码一区| 日本高清视频在线www色| 亚洲精品中文字幕无乱码| 久久久久青草大香线综合精品| 欧美亚洲欧美| 欧洲欧美人成免费全部视频 | 亚洲午夜久久久精品电影院| 国产在线观看成人91| 91麻豆国产视频| 国产一区二区视频在线|