国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ATmega128的U盤高速數(shù)據(jù)記錄儀的設(shè)計(jì)

2019-05-07 02:03聶強(qiáng)廣
關(guān)鍵詞:波特率U盤電平

王 龍,聶強(qiáng)廣

隨著科技的進(jìn)步,工業(yè)應(yīng)用中數(shù)據(jù)采集技術(shù)標(biāo)準(zhǔn)要求的提高,數(shù)據(jù)采集的增多,數(shù)據(jù)記錄儀的設(shè)計(jì)必須考慮存儲(chǔ)設(shè)備的存儲(chǔ)容量、速度、質(zhì)量、便攜性及工業(yè)應(yīng)用環(huán)境等因素[1].

本設(shè)計(jì)構(gòu)成的模塊有:主控處理器、數(shù)據(jù)通信模塊、flash讀取模塊、U盤讀取模塊、電源管理模塊,具體構(gòu)成如圖1所示.

圖1 整體框架圖

首先ATmega128主控芯片將外部接收到的數(shù)據(jù),緩存到大容量flash中,再?gòu)膄lash中將緩存的數(shù)據(jù)讀出,借助U盤控制芯片CH376s將數(shù)據(jù)存入U(xiǎn)盤中.其采用flash作為前級(jí)數(shù)據(jù)緩存的目的,是實(shí)現(xiàn)數(shù)據(jù)寫入的速率與flash的存儲(chǔ)速率的匹配,不會(huì)因?yàn)閿?shù)據(jù)在采集時(shí)受U盤存儲(chǔ)數(shù)據(jù)的速率限制,達(dá)成數(shù)據(jù)采集與存儲(chǔ)的最佳效果.本設(shè)計(jì)有以下優(yōu)點(diǎn).

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

(2)采用flash作為前級(jí)數(shù)據(jù)緩存的目的是實(shí)現(xiàn)數(shù)據(jù)在采集存儲(chǔ)時(shí)寫入的速率與flash的存儲(chǔ)速率完成有效的匹配,避免數(shù)據(jù)在采集存儲(chǔ)時(shí)受到U盤存儲(chǔ)數(shù)據(jù)速率的限制,完成數(shù)據(jù)采集與存儲(chǔ)的最佳效果.

由U盤構(gòu)成的數(shù)據(jù)儲(chǔ)存記錄儀,實(shí)現(xiàn)了快速實(shí)時(shí)數(shù)據(jù)采集,能在單片機(jī)的控制下快速將數(shù)據(jù)存儲(chǔ)到大容量U盤中,并且能脫離計(jì)算機(jī)控制實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),滿足了在特殊條件下使用USB接口傳輸存儲(chǔ)數(shù)據(jù).本設(shè)計(jì)可面向海量數(shù)據(jù)采集存儲(chǔ)、設(shè)備黑匣子、考勤機(jī)數(shù)據(jù)記錄、水文監(jiān)測(cè)、無(wú)紙記錄儀及自動(dòng)化生產(chǎn)線等應(yīng)用場(chǎng)合.例如在原始生態(tài)自然保護(hù)區(qū),需要記錄某段時(shí)間內(nèi)的降雨量或者是實(shí)時(shí)溫度變化情況,就可以通過(guò)雨量計(jì)量?jī)x或者溫度測(cè)量?jī)x檢測(cè)出相應(yīng)數(shù)據(jù),再結(jié)合數(shù)據(jù)存儲(chǔ)器實(shí)時(shí)準(zhǔn)確記錄數(shù)據(jù),為生態(tài)環(huán)境研究提供可靠的數(shù)據(jù)[2].

1 flash電路模塊設(shè)計(jì)

flash芯片型號(hào)是W25Q128BV,容量有128M-bit,工作電壓2.7~3.6V,最大工作頻率100MHz[3],可以通過(guò)串行方式,將代碼映射到RAM中,再通過(guò)spi控制方式來(lái)調(diào)控代碼和實(shí)現(xiàn)聲音、文本、數(shù)據(jù)的存儲(chǔ).W25Q128BV主要采用四條數(shù)據(jù)總線即CLK、/CS、DI、DO,他們分別對(duì)應(yīng)片選信號(hào)、數(shù)據(jù)輸入端、數(shù)據(jù)輸出端、時(shí)鐘控制信號(hào),spi特點(diǎn)就是在發(fā)送每個(gè)數(shù)據(jù)的同時(shí)也會(huì)接收到對(duì)方一個(gè)字節(jié)的數(shù)據(jù).

本設(shè)計(jì)中flash芯片W25Q128BV采用spi通信操作方式.spi控制方式主要有四條數(shù)據(jù)控制線,即MISO、MOSI、SCLK三條主要的數(shù)據(jù)線,另外一條是片選線CS,它主要控制spi接口的主從方式,當(dāng)設(shè)置為0時(shí)即為從設(shè)備,設(shè)置1也就是主設(shè)備.主從選擇非常方便,只需控制CS信號(hào)線的高低電平便可以快速選擇主從設(shè)備.

單片機(jī)與flash連接如圖2所示,CLK連接PB5、/CS連接PB4、DO連接PB6、DI連接PB7,程序配置流程,配置引腳使能,spi時(shí)鐘,系統(tǒng)IO口初始化,進(jìn)入spi初始化,判斷指定的spi標(biāo)志位是否已經(jīng)設(shè)置好,讀取發(fā)送緩存的空標(biāo)志位,判斷是否配置好spi緩存標(biāo)志.

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

2 U盤讀取模塊設(shè)計(jì)

2.1 CH376使用分析

驅(qū)動(dòng)CH376s步驟.

配置頭文件,這其中有Atmega128相應(yīng)的頭文件及CH376應(yīng)用層和硬件層、文件系統(tǒng)層頭文件,例如#include、#include等.設(shè)置緩存區(qū)BUFFFER,其中buf根據(jù)需要設(shè)置為64,設(shè)置串口調(diào)試信息,配置硬件的波特率.

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

2.2 CH376s的UART通信方式

異步串口通訊方式主要包括:數(shù)據(jù)讀RXD和串行數(shù)據(jù)輸出引腳TXD.

CH376使用的串行數(shù)據(jù)傳輸格式采用字節(jié)傳輸方式,包含1位起始位和8位數(shù)據(jù)位及1位停止標(biāo)志位[4].默認(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)答是寫入器向用戶命令返回的響應(yīng).

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

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

2.3 CH376模塊電路設(shè)計(jì)

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

圖3 ch376模塊電路圖

3 串口通信模塊設(shè)計(jì)

數(shù)據(jù)采集是通過(guò)rs232標(biāo)準(zhǔn)串口通信,用串口軟件將數(shù)據(jù)發(fā)送給單片機(jī),再通過(guò)單片機(jī)spi傳輸方式傳輸給flash,進(jìn)行緩存.atmega128將flash緩存數(shù)據(jù)讀取出來(lái),通過(guò)uart通信將數(shù)據(jù)存入U(xiǎn)盤.數(shù)據(jù)采取通過(guò)RS-232數(shù)據(jù)線與電腦的串口調(diào)試助手進(jìn)行通信,從而達(dá)到模擬數(shù)據(jù)采集,當(dāng)數(shù)據(jù)存入U(xiǎn)盤后會(huì)返還一個(gè)代碼14給單片機(jī),告知它一次數(shù)據(jù)存入完成,也會(huì)通過(guò)串口調(diào)試助手進(jìn)行顯示,便于監(jiān)測(cè).

在單片機(jī)中TXD、RXD是TTL電平,要將接收的信號(hào)轉(zhuǎn)成TTL電平,必須借助max323芯片來(lái)實(shí)現(xiàn),將USB數(shù)據(jù)信號(hào)換成TTL電平數(shù)據(jù),或?qū)TL電平轉(zhuǎn)換成USB信號(hào),數(shù)據(jù)發(fā)送以100ms為周期,進(jìn)行自動(dòng)數(shù)據(jù)傳輸,便于直觀監(jiān)測(cè).電平轉(zhuǎn)換電路如圖4所示.

圖4 電平轉(zhuǎn)換電路

4 軟件程序設(shè)計(jì)

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

主程序流程如圖5所示.主程序首先對(duì)定時(shí)器、I/O口資源、wrd128flash、CH376s、串口通信等進(jìn)行初始化.初始化后應(yīng)答正常就進(jìn)入中斷,中斷函數(shù)是CH376DiskConnect,等待U盤插入,緊接著檢查U盤相關(guān)信息,比如U盤的容量,接著創(chuàng)建文本文檔,通過(guò)串口返回監(jiān)測(cè)結(jié)果,初始化成功后,寫數(shù)據(jù)到緩沖區(qū),讀緩沖區(qū)數(shù)據(jù)到寫入U(xiǎn)盤.

圖5 主程序流程圖

數(shù)據(jù)采集最先在flash中緩存,其中flash中是以數(shù)組形式進(jìn)行存儲(chǔ),數(shù)據(jù)分為一位空閑檢測(cè)位、一位地址位、八位數(shù)據(jù)位.主要采用的讀取方式是spi,讀取寄存器sprd.

將flash數(shù)據(jù)轉(zhuǎn)存到U盤中,采用異步串行通信數(shù)據(jù)幀格式傳輸,數(shù)據(jù)幀是一位數(shù)據(jù)起始位、八位數(shù)據(jù)位、一位校驗(yàn)位和一位停止位.

4.2 CH376程序結(jié)構(gòu)分析

主程序除了對(duì)所用到的外設(shè)資源進(jìn)行初始化之外還調(diào)用了3個(gè)子程序,分別是模擬數(shù)據(jù)傳感器的數(shù)據(jù)讀寫程序、flash暫存讀取程序、對(duì)CH376s數(shù)據(jù)處理程序.CH376工作流程圖如圖6所示,初始化成功后,進(jìn)入接收數(shù)據(jù)狀態(tài).首先檢測(cè)U盤的狀態(tài)(如插入,拔出),創(chuàng)建文件和目錄,打開一個(gè)已經(jīng)創(chuàng)建的文件和目錄,從文件中讀取指定長(zhǎng)度和指定位置的數(shù)據(jù),最后等待設(shè)備的移除.

圖6 CH376工作流程圖

5 測(cè)試與檢驗(yàn)

5.1 數(shù)據(jù)采集測(cè)試與檢驗(yàn)

串口助手調(diào)試如圖7所示,開機(jī)上電,自檢初始化,返回U盤信息狀態(tài),返回指令字符14,初始化成功,通過(guò)串口通信發(fā)送數(shù)據(jù)給單片機(jī),波特率為9600bps,自動(dòng)寫數(shù)據(jù)周期為1000ms,模擬數(shù)據(jù)發(fā)送,每次數(shù)據(jù)寫入成功會(huì)返回字符代碼14,并自動(dòng)換行.

圖7 串口助手調(diào)試

5.2 數(shù)據(jù)存取測(cè)試與檢驗(yàn)

借助串口調(diào)試助手XCOM V1.4進(jìn)行調(diào)試,需要安裝串口驅(qū)動(dòng)程序和CH340串口驅(qū)動(dòng),連接硬件打開串口,波特率設(shè)置9600bps,CH376模塊指示燈亮燈,表明連接正常,串口助手與單片機(jī)握手,進(jìn)行U盤數(shù)據(jù)信息讀取,并且在U盤中創(chuàng)建一個(gè)txt文件用于存儲(chǔ)數(shù)據(jù).一切正常時(shí)會(huì)返回初始化成功的命令,并通過(guò)串口助手進(jìn)行顯示,這時(shí)就能進(jìn)行模擬數(shù)據(jù)采集了.

利用串口軟件將數(shù)據(jù)發(fā)送給單片機(jī),單片機(jī)接收到數(shù)據(jù)后通過(guò)spi傳輸方式傳給flash進(jìn)行緩存.atmega128將flash緩存中的數(shù)據(jù)讀取出來(lái),然后通過(guò)uart通信將數(shù)據(jù)存入U(xiǎn)盤.數(shù)據(jù)采集是通過(guò)RS-232數(shù)據(jù)線與電腦的串口調(diào)試助手進(jìn)行通信,從而達(dá)到模擬數(shù)據(jù)采集,當(dāng)數(shù)據(jù)存入U(xiǎn)盤后會(huì)返還代碼14給單片機(jī)告知它一次數(shù)據(jù)存入完成,也會(huì)通過(guò)串口調(diào)試助手進(jìn)行顯示,能直觀地看到一次數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)和完成,還可以通過(guò)電腦訪問(wèn)U盤中存儲(chǔ)的數(shù)據(jù),圖8就是U盤中接收的數(shù)據(jù),存儲(chǔ)在一個(gè)txt文件中.

圖8 數(shù)據(jù)存儲(chǔ)效果圖

猜你喜歡
波特率U盤電平
UART 波特率檢測(cè)電路的FPGA 設(shè)計(jì)算法與實(shí)現(xiàn)
二電平和三電平網(wǎng)側(cè)變流器控制及諧波比較*
三電平PWM整流器下的地鐵牽引供電系統(tǒng)探討
CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
采用U盤文件冗余方案實(shí)現(xiàn)TSP系統(tǒng)的可靠裝載
自動(dòng)辨認(rèn)插口方向的U盤
淺談西門子S7—400與S7—200的通訊實(shí)現(xiàn)方法
波特率自適應(yīng)的CAN驅(qū)動(dòng)在嵌入式Linux下的實(shí)現(xiàn)①
三電平H橋逆變器差模干擾源研究
U盤“鬧肚子”
铜山县| 千阳县| 永吉县| 岱山县| 孝义市| 三河市| 白玉县| 泰顺县| 德江县| 龙江县| 舒兰市| 四会市| 泰州市| 松滋市| 广河县| 丰原市| 杭锦旗| 嘉荫县| 株洲县| 西昌市| 汶川县| 铜梁县| 武冈市| 灵宝市| 安阳市| 奉化市| 凤城市| 沙雅县| 星子县| 西和县| 晴隆县| 玉环县| 宜兰县| 潍坊市| 山阳县| 通化市| 团风县| 文登市| 枣阳市| 新蔡县| 宣城市|