亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DS18B20的小環(huán)境測(cè)溫控制的FPGA實(shí)現(xiàn)

        2014-05-12 03:18:50王春玲王美紅寧崇森薛長(zhǎng)忠
        泰山學(xué)院學(xué)報(bào) 2014年3期
        關(guān)鍵詞:狀態(tài)機(jī)高電平時(shí)隙

        王春玲,王美紅,寧崇森,薛長(zhǎng)忠

        (泰山學(xué)院物理與電子工程學(xué)院,山東泰安 271021)

        1 引言

        溫度是最常見的測(cè)量和控制對(duì)象.常規(guī)溫度測(cè)控系統(tǒng)一般采用熱電阻、熱電偶等傳感器元件,輸出信號(hào)是模擬信號(hào),需要經(jīng)過A/D轉(zhuǎn)換、放大等信號(hào)處理后,送入單片機(jī)、DSP等微控制器中進(jìn)行相應(yīng)數(shù)據(jù)處理,并通過軟件設(shè)計(jì)實(shí)現(xiàn)針對(duì)控制對(duì)象特征的控制算法,再經(jīng)D/A轉(zhuǎn)換后輸出溫度控制驅(qū)動(dòng)信號(hào),實(shí)現(xiàn)溫度控制.這種溫度測(cè)控系統(tǒng)結(jié)構(gòu)的缺陷,首先是硬件組成元件較多,成本較高;其次,信號(hào)在處理過程中抗干擾能力較差,容易失真,造成測(cè)控精度偏低;第三,針對(duì)不同控制對(duì)象,在元器件選用、算法設(shè)計(jì)上都需要單獨(dú)進(jìn)行,設(shè)計(jì)通用性差,難以在線升級(jí).在我們?cè)O(shè)計(jì)的小環(huán)境溫控系統(tǒng)中,我們采用并使用FPGA器件替代單片機(jī)進(jìn)行控制,大大簡(jiǎn)化了外圍電路的設(shè)計(jì),同時(shí)保證了測(cè)量的準(zhǔn)確性,便于功能擴(kuò)展和升級(jí).本文主要闡述FPGA+DS18B20的測(cè)溫控制設(shè)計(jì)實(shí)現(xiàn)方法.

        2 系統(tǒng)方案設(shè)計(jì)

        小環(huán)境溫控系統(tǒng)面向便攜式設(shè)備需要進(jìn)行設(shè)計(jì),采用直流開關(guān)電源和熱電制冷器件實(shí)現(xiàn)恒溫控制,控制要求較復(fù)雜,對(duì)精度和速度要求較高,用戶要求功能可裁剪和升級(jí).為此,我們利用FPGA器件集成度高、體系結(jié)構(gòu)和邏輯單元豐富、靈活、系統(tǒng)功能和結(jié)構(gòu)可重構(gòu)等特點(diǎn),選取了Altera公司高性價(jià)比的颶風(fēng)系列FPGA器件Cyclone EP1C6,其工作電壓為3.3V,內(nèi)核電壓1.5V,內(nèi)嵌兩個(gè)鎖相環(huán)電路,工作頻率高達(dá)200MHz,以簡(jiǎn)化設(shè)計(jì),降低成本,并可實(shí)現(xiàn)軟件移植和設(shè)計(jì)升級(jí).

        由于空間狹小,溫度場(chǎng)均勻,選用一只DS18B20測(cè)溫即可[1].DS18B20是美國(guó)DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,價(jià)格低廉,體積小.其與控制器之間通信只需一根數(shù)據(jù)線,測(cè)量溫度范圍為-55℃到125℃,精度為±0.5℃.與傳統(tǒng)溫度傳感器不同的是,它的溫度轉(zhuǎn)換精度9-12位可編程,直接將溫度轉(zhuǎn)換值以二進(jìn)制碼的方式串行輸出;同時(shí),芯片內(nèi)部將模擬信號(hào)轉(zhuǎn)換為12位數(shù)字量的時(shí)間最大為750ms,對(duì)于一般溫控系統(tǒng),完全可以滿足實(shí)時(shí)性需要.

        相應(yīng)的硬件電路方案如圖1所示,DS18B20的三個(gè)引腳中,引腳VDD通過濾波電容接3.3V TTL電平,對(duì)傳感器供電.引腳DQ是數(shù)據(jù)傳輸線,即一線總線,F(xiàn)PGA通過該引腳控制DS18B20采集溫度.通過一個(gè)4.7KΩ的上拉電阻,使得數(shù)據(jù)線在空閑狀態(tài)下能自動(dòng)上拉為高電平.GND為公共地.

        圖1 DS18B20與FPGA的連接電路圖

        3 DS18B20的功能特征及FPGA控制方案

        3.1 DS18B20的功能特征分析

        DS18B20作為單總線數(shù)字測(cè)溫器件,其硬件連接簡(jiǎn)單,相對(duì)地控制過程比較復(fù)雜,時(shí)序要求非常嚴(yán)格.通過對(duì)DS18B20功能的分析可知,單片DS18B20的工作流程相對(duì)多片系統(tǒng)可以適當(dāng)簡(jiǎn)化,其工作流程如圖2所示.

        圖2 單片DS18B20的工作控制流程示意圖

        由圖2可見,DS18B20的工作流程具有顯著的順序控制和循環(huán)工作特點(diǎn);一個(gè)完整的工作周期分為溫度檢測(cè)轉(zhuǎn)換和數(shù)據(jù)傳輸兩大階段;兩個(gè)階段均以初始化開始,并通過主(控)設(shè)備(此處是FPGA)向其(從設(shè)備)發(fā)送ROM命令和功能命令,實(shí)現(xiàn)其工作循環(huán).

        ROM命令和功能命令均為字節(jié)型命令.在只有一片DS18B20的情況下,ROM命令只有一個(gè),即跳過ROM命令(SKIP ROM,代碼是CCH),其功能是使主設(shè)備判斷該芯片存在并可以工作.功能命令包括溫度轉(zhuǎn)換指令(CONVERT CMD,代碼是44H)和讀暫存器指令(READ RESULT,代碼是4EH),分別用于啟動(dòng)溫度轉(zhuǎn)換和讀取DS18B20暫存的溫度數(shù)據(jù).

        由于DS18B20的單線通信特征,所有操作必須分時(shí)完成,時(shí)隙(Time slot,即完成一位傳輸所用的時(shí)間)是其操作時(shí)序的重要特征和基本時(shí)間單位.主要操作時(shí)隙包括初始化、應(yīng)答、主機(jī)寫0、主機(jī)寫1、主機(jī)讀0、主機(jī)讀1等.除應(yīng)答時(shí)隙外,所有時(shí)隙都由主設(shè)備發(fā)出同步信號(hào),并且發(fā)送所有的命令和數(shù)據(jù)都是字節(jié)的低位在前(這一點(diǎn)與多數(shù)串行通信一般字節(jié)高位在前的格式是不同的).兩個(gè)時(shí)隙之間最小的時(shí)間間隔是1μs.

        圖3 為DS18B20的讀寫時(shí)隙

        對(duì)DS18B20進(jìn)行讀操作時(shí),F(xiàn)PGA先將數(shù)據(jù)線從高電平拉至低電平,進(jìn)入讀時(shí)間隙.FPGA保持低電平1μs以上,然后釋放總線.在讀時(shí)隙的下降沿后15μs之內(nèi),DS18B20會(huì)將數(shù)據(jù)送到總線上.FPGA必須在這15μs之內(nèi)完成讀數(shù).在讀取數(shù)據(jù)結(jié)束時(shí),I/O引腳應(yīng)拉回到高電平.對(duì)于主設(shè)備master而言,無論讀入數(shù)據(jù)是1還是0,其本身的操作及時(shí)序相同.

        對(duì)DS18B20進(jìn)行寫操作時(shí),F(xiàn)PGA先將數(shù)據(jù)線從高電平拉至低電平,進(jìn)入寫時(shí)間隙.15μs之內(nèi),F(xiàn)PGA應(yīng)將數(shù)據(jù)送到總線上,DS18B20在15~60μs內(nèi)對(duì)總線采樣.低電平則寫入0,高電平則寫入1,連續(xù)寫入數(shù)據(jù)位的間隙應(yīng)大于1μs.

        輸入時(shí)鐘頻率取1MHz,即周期為1μs時(shí),1個(gè)時(shí)隙至少需要60μs,且兩個(gè)時(shí)隙間最小間隔1μs.故可以設(shè)定基本時(shí)隙時(shí)間為70μs,具體如圖3所示.

        3.2 DS18B20的FPGA控制方案

        DS18B20的工作周期和操作時(shí)隙具有顯著的順序控制特征,適于用有限狀態(tài)機(jī)(FSM)實(shí)現(xiàn)[2].實(shí)現(xiàn)DS18B20測(cè)溫控制的有限狀態(tài)機(jī)DS18B20_CTRL的狀態(tài)轉(zhuǎn)換圖如圖4所示.

        圖4 DS18B20_CTRL的狀態(tài)圖

        3.2.1 DS18B20測(cè)溫控制狀態(tài)機(jī)DS18B20_CTRL的程序設(shè)計(jì)

        DS18B20_CTRL狀態(tài)圖中,定義了11個(gè)狀態(tài),如表1所示.

        表1 DS18B20_CTRL狀態(tài)定義

        我們用硬件描述語(yǔ)言VHDL編寫該狀態(tài)機(jī)程序.編譯后的原理圖元件符號(hào)如圖5所示.其中clk1μs和rst端口分別是1MHz時(shí)鐘信號(hào)和系統(tǒng)復(fù)位輸入端;dq是與DS18B20單總線的連接線,定義為雙向(INPUT)端口[3];temp_h和temp_l兩個(gè)8位寄存器分別用于存儲(chǔ)接收到的溫度數(shù)據(jù)高低字節(jié).

        圖5 DS18B20_CTRL的元件圖

        DS18B20_CTRL狀態(tài)機(jī)的設(shè)計(jì)關(guān)鍵有兩點(diǎn):初始化狀態(tài)和三個(gè)8位字節(jié)型命令的執(zhí)行狀態(tài)的設(shè)計(jì).

        初始化狀態(tài)根據(jù)其時(shí)序要求,利用一個(gè)計(jì)數(shù)器cnt控制其進(jìn)程.在490μs復(fù)位脈沖后釋放總線(輸出高阻),然后占用190μs以確定DS18B20器件是否存在,并根據(jù)DS18B20器件存在與否決定返回初始化還是進(jìn)入后續(xù)狀態(tài).核心程序段如下:

        三個(gè)8位命令即CMD_CC、CMD_44和CMD_BE的執(zhí)行共同點(diǎn)在于均為8位寫入,所以在進(jìn)入其中某一狀態(tài)后均需要轉(zhuǎn)入字節(jié)寫狀態(tài).并且由于寫1和寫0的區(qū)別,需對(duì)將要寫入數(shù)據(jù)位的數(shù)據(jù)進(jìn)行判斷,以確定進(jìn)入WRITE_LOW還是WRITE_HIGH狀態(tài).其次,需要設(shè)置一個(gè)寫字節(jié)位數(shù)計(jì)數(shù)器WRITE_BYTE_CNT來控制字節(jié)寫狀態(tài)的結(jié)束.并且考慮到在圖2所示的一個(gè)完整的工作周期中共需要順序執(zhí)行四次8位命令,所以設(shè)置了字節(jié)寫標(biāo)志W(wǎng)RITE_BYTE_FLAG用來控制三個(gè)8位命令的狀態(tài)轉(zhuǎn)換次序.具體程序段如下:

        3.2.2 DS18B20測(cè)溫控制狀態(tài)機(jī)的仿真結(jié)果分析

        選用ALTERA公司EP1C6Q240C8芯片,在QuartusII平臺(tái)上編譯仿真DS18B20_CTRL的結(jié)果如圖6所示.

        圖6 DS18B20_CTRL程序仿真結(jié)果

        圖6中給出了系統(tǒng)復(fù)位后DS18B20一個(gè)基本完整的工作周期.第一個(gè)初始化狀態(tài)(state.reset=0)后,字節(jié)寫標(biāo)志W(wǎng)RITE_BYTE_FLAG依次從0、1、2加到3,完成四次8位命令的寫入,依次是CMD_CC→CMD_44→CMD_CC→CMD_BE,完成溫度采集與轉(zhuǎn)換;然后,即可讀入測(cè)得溫度數(shù)據(jù),經(jīng)過12個(gè)位讀狀態(tài)(GET_TMP_CNT從1遞增至12),將12位溫度數(shù)據(jù)格式轉(zhuǎn)換后存入兩個(gè)字節(jié)型寄存器temp_l和temp_h.注意圖中4個(gè)8位命令字均為從低位到高位的格式寫入,作為總線輸出寄存器的dq_result以粗實(shí)線表示高阻態(tài).

        4 結(jié)論

        本文在對(duì)單總線數(shù)字溫度傳感器DS18B20進(jìn)行時(shí)序分析的基礎(chǔ)上,完成了利用FPGA控制DS18B20實(shí)現(xiàn)溫度數(shù)據(jù)采集的軟硬件設(shè)計(jì),重點(diǎn)剖析了采用有限狀態(tài)機(jī)方法進(jìn)行程序設(shè)計(jì)的關(guān)鍵點(diǎn),仿真結(jié)果驗(yàn)證了設(shè)計(jì)的可行性.考慮到本設(shè)計(jì)采用的狀態(tài)個(gè)數(shù)達(dá)11個(gè),可以進(jìn)一步采用層次狀態(tài)機(jī)的方法對(duì)其加以改進(jìn).

        [1]袁偉亭,周潤(rùn)景.FPGA與DS18B20組成的測(cè)溫系統(tǒng)的設(shè)計(jì)[J].內(nèi)蒙古大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,37(7):459-463.

        [2]王曉磊,李宏生.基于有限狀態(tài)機(jī)的數(shù)字溫度傳感器控制系統(tǒng)設(shè)計(jì)[J].艦船電子工程,2010,30(12):182-185.

        [3]穆振海.基于FPGA的智能溫度采集控制器[J].微計(jì)算機(jī)信息(嵌入式與 SOC),2008,7(20):225-243.

        猜你喜歡
        狀態(tài)機(jī)高電平時(shí)隙
        一種基于FPGA的PWM防錯(cuò)輸出控制電路
        基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
        TS-03C全固態(tài)PDM中波發(fā)射機(jī)開關(guān)機(jī)控制電路原理及故障分析
        科技傳播(2019年15期)2019-08-22 08:07:44
        復(fù)用段單節(jié)點(diǎn)失效造成業(yè)務(wù)時(shí)隙錯(cuò)連處理
        DM 50KW中波廣播發(fā)射機(jī)欠推動(dòng)故障分析
        一種高速通信系統(tǒng)動(dòng)態(tài)時(shí)隙分配設(shè)計(jì)
        時(shí)隙寬度約束下網(wǎng)絡(luò)零售配送時(shí)隙定價(jià)研究
        PDM 1kW中波廣播發(fā)射機(jī)保護(hù)電路分析
        基于TDMA的無沖突動(dòng)態(tài)時(shí)隙分配算法
        FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
        中国内射xxxx6981少妇| 国产精品成人av一区二区三区| 成人区人妻精品一区二区三区| 亚洲男人av天堂午夜在| 久久频道毛片免费不卡片| 玩弄放荡人妻一区二区三区| 亚洲精品国产成人久久av| 亚洲精品一品区二品区三品区| 国产亚洲婷婷香蕉久久精品 | av中国av一区二区三区av| 国产产区一二三产区区别在线| 亚洲国产精品一区二区第四页 | 看黄网站在线| 亚洲高清美女久久av| 人妻少妇中文字幕久久| 久久无码专区国产精品s| 亚洲毛片αv无线播放一区| 国产一区二区三区乱码在线| 狠狠躁夜夜躁av网站中文字幕| 好日子在线观看视频大全免费动漫| 无遮挡中文毛片免费观看| 中文字幕一区二区三区综合网| 欧美嫩交一区二区三区| 亚洲人成亚洲精品| 伊在人亚洲香蕉精品区麻豆| 五月婷婷开心五月激情| 国产中文字幕一区二区视频| 亚洲国产精品无码av| 宝贝把腿张开我要添你下边动态图| 久久婷婷国产综合精品| av网站大全免费在线观看| 40岁大乳的熟妇在线观看| 欧美亚洲国产人妖系列视| 日本在线观看三级视频| 亚洲人成精品久久久久| 国产精品一区二区暴白浆| 美女被插到高潮嗷嗷叫| 成人日韩熟女高清视频一区| 成人午夜性a级毛片免费| 久久91综合国产91久久精品| 国产激情视频在线观看首页|