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

        ?

        基于FPGA與USB2.0的溫度數(shù)據(jù)采集與控制

        2014-03-22 01:50:39王選擇曾志祥范宜艷楊練根
        儀表技術與傳感器 2014年9期
        關鍵詞:固件驅(qū)動程序寄存器

        王選擇,曾志祥,范宜艷,楊練根

        (1.湖北工業(yè)大學機械工程學院,湖北武漢 430068;2.湖北省現(xiàn)代制造質(zhì)量工程重點實驗室,湖北武漢 430068)

        0 引言

        實時高速數(shù)據(jù)采集與處理在現(xiàn)代工業(yè)生產(chǎn)及科學研究中的重要地位日益突出,要求也不斷提高。在信號測量、圖像處理等一些高速,高精度,大數(shù)據(jù)量的測量場合中都要求設備接口簡單靈活并且具有較高的數(shù)據(jù)傳輸率,同時要求主機能夠?qū)?shù)據(jù)做出快速反應,并及時分析和處理[1-2]。

        目前數(shù)據(jù)采集與控制系統(tǒng)的接口方式常見的有RS232串口、ISA總線、PCI總線、USB等。RS232串口的速率達不到要求,ISA和PCI總線雖然在數(shù)據(jù)存取速度上可以達到系統(tǒng)要求,但是接口方式通用性比較差,價格昂貴,不利于系統(tǒng)的小型化。USB2.0(通用串行總線)傳輸速度最快可達480Mbps,支持熱插拔和即插即用,方便快捷,通用性強[3]。因此將USB技術應用于系統(tǒng)數(shù)據(jù)采集傳輸與控制非常合適。

        系統(tǒng)數(shù)據(jù)采集的處理器控制部分,F(xiàn)PGA(現(xiàn)場可編程門陣列)以其開發(fā)周期短,費用低,工作頻率和集成度高,穩(wěn)定性良好、抗干擾能力強等優(yōu)點,在數(shù)據(jù)采集數(shù)字電路中被廣泛應用[4]。

        負溫度系數(shù)熱敏電阻器(NTC)作為溫度傳感器,應用RC串聯(lián)電路系統(tǒng)產(chǎn)生的相位差與熱敏電阻阻值存在的數(shù)學關系以及熱敏電阻與溫度的負溫度系數(shù)的關系,設計了溫度傳感方法。利用FPGA對相差進行數(shù)字邏輯處理,將處理結(jié)果通過USB接口芯片CY7C68013A傳輸給PC機,上位機交互界面在 Visual C++ 6.0 開發(fā)環(huán)境下設計開發(fā),完成數(shù)據(jù)的顯示以及對下位機的控制。

        1 基本原理及電路設計

        RC串聯(lián)電路如圖1中間部分所示,正弦激勵信號作為輸入信號,經(jīng)過RC串聯(lián)電路后,從中間端輸出的信號將會滯后輸入信號一定的相位差α.

        假設輸入信號為Ui=sinwt,電路中電阻電容分別為R,C,α的大小為:

        α=-arctanwRC

        圖1 原理電路

        將被測物與溫度傳感元件熱敏電阻組合在一起,根據(jù)上式,在C和w確定的情況下,通過對相位差α的測量,就可以換算出熱敏電阻R的大小,也就知道了被測物當前工作溫度。如圖右邊部分所示,將兩個正弦信號分別過零比較之后得到具有一定相差,同頻率的兩個方波信號a,b.而α大小的計算需要將相差通過一定的邏輯運算,利用FPGA對相差的脈寬進行脈沖計數(shù)得到[5]。

        2 FPGA控制模塊的設計

        系統(tǒng)采用型號為EP2C8的FPGA為控制核心,CY7C68013A為USB接口芯片。上位機發(fā)出數(shù)據(jù)采集指令,經(jīng)USB發(fā)給FPGA,系統(tǒng)開始對脈沖計數(shù)數(shù)據(jù)采集,并緩存在FPGA的內(nèi)部,同時工作在slavefifo模式下的USB芯片訪問FPGA,取出數(shù)據(jù),通過USB端點傳給上位機,計數(shù)值通過數(shù)學運算得到當前溫度值并顯示。同時,上位機將預設溫度換算成計數(shù)值通過USB發(fā)給FPGA,F(xiàn)PGA把獲得的實時脈沖計數(shù)值與預設值比較,即實時溫度與預設溫度,從而通過電路控制TEC的制冷或者制熱,達到自動控溫的效果。整個工作過程涉及到相差脈寬計數(shù)模塊和USB控制模塊,模塊之間相互配合完成數(shù)據(jù)的采集與傳輸。

        2.1相差脈寬計數(shù)模塊

        為了對圖1中兩個信號的相差脈寬進行脈沖計數(shù),首先對2個輸入方波信號a、b進行異或處理,得到我們要測量的相差cout,然后將cout信號與FPGA的時鐘信號clk進行相與得到ck信號。其處理結(jié)果如圖2所示。

        圖2 邏輯處理結(jié)果

        設計計數(shù)模塊時,為了提高精度,利用PLL將時鐘信號倍頻到200 MHz.根據(jù)上面的處理結(jié)果,模塊不用直接對cout信號直接脈沖計數(shù),只用對ck信號計數(shù)即可。由于a與b的周期相等,為了消除單次計數(shù)的誤差,利用a信號得到一個10倍于a信號周期的方波信號c,然后以c信號為基準,在c信號高電平區(qū)間對ck信號進行脈沖計數(shù),因此得到10次測量的總和。這個總和的結(jié)果我們在Nios II中對其取平均之后傳輸。

        利用Verilog語言將上述處理過程以及計數(shù)方法生成計數(shù)模塊,并在SOPC中為其輸出添加一個PIO連接到計數(shù)模塊。這樣,在Nios II中就可以對數(shù)據(jù)進行讀取。

        2.2USB控制模塊

        FPGA為系統(tǒng)的控制器,并內(nèi)嵌32位Nios II嵌入式軟核處理器,用硬件描述語言設計USB外設接口控制模塊,然后在SOPC(可編程片上系統(tǒng))平臺上將其封裝成IP核,在Nios II IDE集成開發(fā)環(huán)境中通過IP核與寄存器的操作對USB設備進行控制。EZ-USB FX2LP系列芯片CY7C68013A內(nèi)部提供了多個FIFO緩沖區(qū),外部邏輯可以對這些端點的FIFO緩沖區(qū)進行讀寫操作[6]。FPGA的引腳電平信號控制USB數(shù)據(jù)的讀和寫,因此要編寫USB控制模塊通過FPGA向USB設備發(fā)送控制信號以及數(shù)據(jù)。slavefifo模式[7]下FX2與FPGA的接口電路如圖3所示。

        圖3 異步slavefifo讀寫接口

        根據(jù)上述的讀寫接口以及讀寫時序編寫接口模塊,設計中將各寄存器映射成Avalon Slave端口地址空間內(nèi)一個單獨的偏移地址。可以通過Avalon接口采用“基址+地址偏移量”的方式來訪問IP核內(nèi)寄存器。USB接口模塊還需要一個簡單的Slave端口地址空間內(nèi)一個單獨的偏移地址??梢酝ㄟ^Avalon接口采用“基址+地址偏移量”的方式來訪問IP核內(nèi)寄存器。USB接口模塊還需要一個簡單的Slave端口來處理復位、片選、尋址以及對內(nèi)部寄存器進行讀寫,完成從Nios II處理器接收指令與數(shù)據(jù)[8-9]。其中包含clk、resetn、chipselect、address、readdata、writedata等。根據(jù)讀寫接口,該設計一共有8個寄存器,如表1所示。為了能訪問這些寄存器,需要設計三位地址,從而8個地址空間。

        有了上述Verilog HDL編寫的USB接口模塊文件,利用SOPC Builder創(chuàng)建新原件,并將其集成在SOC中,在Nios II中利用自帶的Avalon函數(shù)和底層驅(qū)動對上述寄存器進行操作完成數(shù)據(jù)的讀寫與傳輸。

        3 系統(tǒng)的軟件設計

        系統(tǒng)軟件是數(shù)據(jù)采集與控制系統(tǒng)的重要組成部分。主要包括3個部分:上位機應用程序、驅(qū)動程序和固件程序。上層應用程序用以完成數(shù)據(jù)的顯示、處理以及發(fā)送指令等功能。固件程序完成初始化工作和對USB各類寄存器進行配置。驅(qū)動程序作為橋梁連接在上位機應用程序和USB固件程序之間。

        表1 USB接口模塊寄存器邏輯列表

        3.1CY7C68013固件程序設計

        USB固件程序是USB設備功能的核心,用于完成USB設備的識別,重列舉,設備請求,USB協(xié)議處理,外部硬件的功能,負責與USB主機之間的數(shù)據(jù)通信等。為了簡化編程,利用Cypress公司提供的固件程序框架進行固件開發(fā)[10-12]。設定FX2的工作模式為slavefifo模式,總線為16位雙向數(shù)據(jù)總線。IFCLK由內(nèi)部時鐘提供,且輸入不反向。配置EP2為OUT端點,BULK傳輸,雙緩沖,每個緩沖區(qū)的大小為512字節(jié),上位機通過OUT端點給下位機FPGA發(fā)送指令與數(shù)據(jù)。配置EP6為IN端點,BULK傳輸,雙緩沖,每個緩沖區(qū)大小為512字節(jié),下位機FPGA采集的數(shù)據(jù)通過IN端點上傳給上位機。同時配置FLAGB為EP6滿標志,F(xiàn)LAGC為EP2空標志。設置EP2FIFO為自動輸入模式,EP6FIFO為自動輸出模式。這樣,F(xiàn)PGA連續(xù)不斷地將數(shù)據(jù)發(fā)送到FIFO中,F(xiàn)IFO自動向USB提交數(shù)據(jù)包,使得EZ-USB的CPU不參與數(shù)據(jù)包的傳輸控制,不需要在固件程序中執(zhí)行任何代碼,因此用戶函數(shù)TD_Poll()內(nèi)部不用編寫代碼。系統(tǒng)初始化函數(shù)TD_Init(void)的主要代碼如下:

        void TD_Init(void)

        {……

        IFCONFIG =0xCB;//使用內(nèi)部時鐘

        SYNCDELAY;

        EP2CFG=0xA2;//二緩沖,大小為512字節(jié)

        SYNCDELAY;

        EP6CFG=0xE2;//二緩沖,大小為512字節(jié)

        SYNCDELAY;

        PINFLAGSAB =0xe6;//FLAGB為 EP6滿標志

        SYNCDELAY;

        PINFLAGSCD =0xf8;//FLAGC 為EP2空標志

        SYNCDELAY;

        EP2FIFOCFG =0x11;//EP2為自動輸入,數(shù)據(jù)總線寬度為16位

        SYNCDELAY;

        EP6FIFOCFG =0x09;//EP6為自動輸出,數(shù)據(jù)總線寬度為16位

        SYNCDELAY;

        ……

        }

        3.2設備驅(qū)動程序

        USB設備的開發(fā),需要進行USB驅(qū)動程序的設計,在Windows操作環(huán)境下,一般不能直接對硬件接口進行操作,必須采用驅(qū)動程序作為橋梁連接在上位機應用程序和USB固件程序之間,使上位機的操作系統(tǒng)能夠識別USB設備,并與USB設備能夠進行通訊[13-14]。該設計采用了為EZ-USB系列芯片提供的通用驅(qū)動程序ezusb.sys以及驅(qū)動程序的INF文件,可以根據(jù)需要修改設備的VID和PID的值,這樣USB設備才能夠被正確識別并加載。

        3.3上位機應用程序

        在設備開發(fā)中上位機應用程序用于與用戶進行接口,對硬件獲取的數(shù)據(jù)進行顯示、存儲以及實時顯示波形圖等。該系統(tǒng)的上位機應用程序在Visual C++ 6.0 開發(fā)環(huán)境下設計開發(fā),首先調(diào)用CreateFile()打開設備,并返回設備的句柄,然后通過句柄調(diào)用DeiceIoControl()函數(shù)向驅(qū)動程序發(fā)送控制字。驅(qū)動程序根據(jù)控制字向硬件層發(fā)送IRQ并與設備通信。

        應用程序通過USB先向FPGA發(fā)送執(zhí)行脈沖計數(shù)模式的指令,F(xiàn)PGA收到指令后開始獲取計數(shù)值并向上位機傳輸,通過數(shù)學關系轉(zhuǎn)換,將計數(shù)值換算成相差值以及被測物當前的溫度值,并實時顯示。同時可以在應用程序的編輯框中輸入預設溫度值,將這預設溫度值轉(zhuǎn)換成計數(shù)值通過USB發(fā)給FPGA,F(xiàn)PGA將預設計數(shù)值與剛剛發(fā)送的實時計數(shù)值進行比較,從而對TEC進行驅(qū)動制冷或者制熱,達到溫控目的,同時返回TEC的當前狀態(tài),在應用程序界面中顯示。系統(tǒng)的應用程序界面如圖4所示。

        圖4 應用程序界面

        4 TEC驅(qū)動電路設計

        實驗中將熱敏電阻,半導體制冷器TEC和被測物組合在一起。當被測物溫度升高時,熱敏電阻的阻值減小,相位差脈寬將會變小,F(xiàn)PGA測量的計數(shù)值就會減少。由于一定脈寬計數(shù)值下對應一個溫度,將被測物實時溫度對應的計數(shù)值與上位機發(fā)來的預設溫度對應的計數(shù)值進行比較,對FPGA的一個I/O口寫1,另一個I/O寫0操作,通過型號為TC4427的雙列驅(qū)動器,使得P1為5 V,P2為0 V,Q2與Q3兩個三極管導通,電流由Q2流向Q3,從而驅(qū)動TEC進行制冷。相反,Q1與Q4導通,電流由Q1流向Q4,TEC制熱。驅(qū)動器的輸入來自FPGA的I/O口,輸出與圖中的P1和P2相連。當I/O口為邏輯1時,輸出則為5 V;I/O口為邏輯0時,輸出則為0 V.

        圖5 TEC控制電路

        5 結(jié)束語

        通過以上的設計,成功實現(xiàn)了FPGA與EZ-USB FX2 CY7C68013A之間的通信,工作在slavefifo模式下的EZ-USB能夠準確,高速地將FPGA從外圍電路獲取的溫度數(shù)據(jù)傳輸?shù)接嬎銠C,同時計算機也可以快速,準確地將數(shù)據(jù)發(fā)到FPGA從而控制TEC,TEC響應迅速。實驗表明,該系統(tǒng)工作穩(wěn)定,能夠確保實驗數(shù)據(jù)的準確性。

        參考文獻:

        [1]李明勃,張洪平.基于USB2.0的高速數(shù)據(jù)采集系統(tǒng).電子技術應用,2009(10):109-112.

        [2]李露,段新文.基于FPGA的高速數(shù)據(jù)采集卡的設計.現(xiàn)代電子技術,2012,35(18):146-148.

        [3]張敏,趙宜楠,林滿照.基于USB接口的便攜式信號采集器.現(xiàn)代電子技術,2011,34(4):138-140.

        [4]王水魚,何文華.便攜式數(shù)據(jù)采集系統(tǒng).儀表技術與傳感器,2012(10):76-78.

        [5]王選擇,曾志祥,鐘毓寧,等.基于相差識別的半導體激光器溫度精密測量與控制.光電子·激光,2013,24(2):239-245.

        [6]薛圓圓,趙建領.USB應用開發(fā)寶典.北京:人民郵電出版社,2011.

        [7]薛飛,寧鐸,黃建兵,等.基于SOPC圖像采集系統(tǒng)的設計.儀表技術與傳感器,2011(12):49-51.

        [8]歐海平,周硯江,張華葉,等.基于SOPC的步進電機加減速PWM控制器IP核設計.機電工程,201128(6):708-711.

        [9]馮志華,高社生,張云安.Nios II軟核處理器的PWM控制器設計.微處理機,2008(1):134-137.

        [10]劉志華,郭付才,彭新偉,等.基于CY7C68013A的FPGA配置和通信接口設計.電子技術應用,2013,39(2):18-21.

        [11]鄭恭明,沈媛媛.基于Nios II的偽隨機序列信號發(fā)生器IP核設計.工礦自動化,2011(2):52-55.

        [12]齊新軍.基于USB總線的NIOS系統(tǒng)與主機通信實現(xiàn).煤炭技術,2011,30(1):197-199.

        [13]代月松,裴東興,徐菲.USB在數(shù)據(jù)采集系統(tǒng)中的應用.電子測試,2012,(8):63-67.

        [14]謝勇,姚遠程,秦明偉.基于USB2.0與LabVIEW的高速數(shù)據(jù)采集系統(tǒng)設計.電子設計工程,2012,20(19):5-7;10.

        猜你喜歡
        固件驅(qū)動程序寄存器
        Lite寄存器模型的設計與實現(xiàn)
        計算機應用(2020年5期)2020-06-07 07:06:44
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        基于固件的遠程身份認證
        提取ROM固件中的APP
        電腦愛好者(2015年7期)2015-04-09 08:54:02
        一種通過USB接口的可靠固件升級技術
        奧林巴斯XZ—2新固件升級
        中國攝影(2014年1期)2014-02-24 01:50:23
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應用
        一種可重構(gòu)線性反饋移位寄存器設計
        通信技術(2010年8期)2010-08-06 09:29:16
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        h动漫尤物视频| 国产成人无码av一区二区| 日本边添边摸边做边爱的网站| 国产美女69视频免费观看| 国产黄三级三级三级三级一区二区| 99人中文字幕亚洲区三| 中文人妻熟妇乱又伦精品| 亚洲狠狠网站色噜噜| 国产好片日本一区二区三区四区 | 91成人午夜性a一级毛片| 五十路一区二区中文字幕| 最新国产精品拍自在线观看| 免费特级毛片| 亚洲一区二区婷婷久久| 青青草在线公开免费视频| 午夜熟女插插xx免费视频| 中文字幕av一区中文字幕天堂| 在线视频青青草猎艳自拍69| 青青草手机在线免费视频| 天天躁日日躁aaaaxxxx| 午夜福利视频合集1000| 中文国产成人精品久久一区| 中文字幕一区二区三区乱码人妻| 最新日本一道免费一区二区| chinesefreexxxx国产麻豆| 偷拍女厕尿尿在线免费看| 极品一区二区在线视频观看| 国精品无码一区二区三区在线蜜臀 | 久久久亚洲精品免费视频| 久久人妻一区二区三区免费| 免费a级作爱片免费观看美国| 巨爆乳中文字幕爆乳区| 日本av一区二区三区四区| 国产精品毛片va一区二区三区| 久久亚洲精品ab无码播放| 国产一区二区在线观看我不卡| 99久久99久久久精品蜜桃| 亚洲aⅴ在线无码播放毛片一线天| 午夜影视啪啪免费体验区入口| 国产人妖伦理视频在线观看| 人妻无码一区二区三区免费|