亚洲av成人亚洲|国产黄色大片在那看|A∨色狠狠一区二区三区|黄色国产A片aaaav|久久久国产色情无码|亚洲综合一区二区|中字无码蜜桃看一级A片|亚洲视频欧美年老|肏屄无码专区一级在视频免费观看|DD自拍视频在线观看

歡迎訪問愛發(fā)表,線上期刊服務咨詢

數(shù)據(jù)采集論文8篇

時間:2023-03-16 15:51:33

緒論:在尋找寫作靈感嗎?愛發(fā)表網為您精選了8篇數(shù)據(jù)采集論文,愿這些內容能夠啟迪您的思維,激發(fā)您的創(chuàng)作熱情,歡迎您的閱讀與分享!

數(shù)據(jù)采集論文

篇1

基于表層化方式的DeepWeb數(shù)據(jù)采集方法將DeepWeb數(shù)據(jù)采集問題建模為一個優(yōu)化問題:已知一個DeepWeb數(shù)據(jù)庫DB,對DB的采集可以表示為尋找一個查詢集合Q={q1,q2,...,qn},在給定的約束條件C滿足的條件下,查詢集合Q從DB獲取的DeepWeb數(shù)據(jù)最多,即查詢集合Q對DeepWeb數(shù)據(jù)庫資源的覆蓋率達到最大。其中,C表示許向Web數(shù)據(jù)庫提交查詢請求的次數(shù)?;诒韺踊绞降腄eepWeb數(shù)據(jù)采集問題的目標就是針對一個給定的DeepWeb數(shù)據(jù)庫,尋找一組查詢集合,使用該查詢集合能夠對DeepWeb數(shù)據(jù)庫資源的覆蓋率達到最大?;诒韺踊姆椒ǖ闹饕枷胧峭ㄟ^向DeepWeb數(shù)據(jù)的查詢接口提交查詢把數(shù)據(jù)從Web數(shù)據(jù)庫中挖掘出來。這方法能夠充分利用搜索引擎爬蟲,將DeepWeb數(shù)據(jù)的采集轉換為SurfaceWeb數(shù)據(jù)采集的方式,不需要做很大的改變就可以無縫的將DeepWeb數(shù)據(jù)集成到現(xiàn)有的搜索引擎中?;诒韺踊绞降腄eepWeb數(shù)據(jù)采集方法的關鍵是為查詢接口生成合適的查詢,其目標是為DeepWeb數(shù)據(jù)的查詢接口生成有效的查詢實例,構造表單查詢,以便將Web數(shù)據(jù)庫中的內容發(fā)現(xiàn)出來。一個查詢接口可能包含多個輸入項,如果每個輸入項有100個有效的取值,那么對于一個有3個輸入項的查詢接口,組合生成的查詢數(shù)量是1,000,000。因此,在迚行DeepWeb數(shù)據(jù)采集時,為每個查詢接口生成所有可能的查詢是不實際的。而且,對于查詢接口中的一些文本輸入項,其對應的有效的取值進不止100個,如圖書查詢接口的書名,作者等?;诒韺踊椒ǖ腄eepWeb數(shù)據(jù)采集的目標是以最小的查詢數(shù)量達到最大的DeepWeb數(shù)據(jù)覆蓋率。因此,如何為查詢接口生成有效的查詢是實現(xiàn)DeepWeb數(shù)據(jù)覆蓋率最大化的重要環(huán)節(jié)。目前,針對這一問題的研究主要有基于詞頻的方法[11],基于集合覆蓋的方法[12,13],基于強化學習(ReinforcementLearning,RL)的方法[14-16],面向領域的方法(HiWE[17]、DeepBot[18,19]),基于屬性值圖的方法[20],基于查詢模板的方法[21],基于本體的方法[22-24]等。通過對查詢接口的分析發(fā)現(xiàn),查詢接口根據(jù)輸入項素的個數(shù)可分為:簡單查詢接口(SimpleQueryInterface)和復雜查詢接口(ComplexQueryInterface)。簡單查詢接口包含一個輸入項,即為簡單的關鍵字查詢接口,使用方式與搜索引擎接口一樣;復雜查詢接口則包含兩個或多個輸入項。因此,本文根據(jù)查詢構造方法支持的接口類型將已有工作分為兩類:簡單查詢接口查詢構造方法,復雜查詢接口查詢構造方法。

1.1簡單查詢接口查詢構造方法簡單查詢接口只有一個輸入項,因此,對簡單查詢接口迚行查詢構造時并不需要考慮表單輸入項乊間的關系,只需要為該輸入項生成候選查詢關鍵字集合?;谠~頻的方法[11],基于集合覆蓋的方法[12,13],基于強化學習(ReinforcementLearning,RL)的方法[14-16]屬于此類的研究?;谠~頻的方法[11]基于一個假設:在實際數(shù)據(jù)庫或文檔集合中的高頻詞比隨機選擇的詞具有更高的資源覆蓋能力,而且高頻詞作為查詢能夠獲取更多的查詢結果。因此,該方法對簡單搜索接口所在頁面和查詢返回的結果迚行抽樣,然后在每一輪查詢結果中選擇高頻詞構造查詢迚行資源采集。但是該方法有個明顯的不足:在每次查詢時,高頻詞無法確保獲取更多的新頁面。為此,Wang等人[12,13]將DeepWeb數(shù)據(jù)庫采集問題建模為集合覆蓋問題,利用目標數(shù)據(jù)庫采樣方法迚行DeepWeb數(shù)據(jù)爬取:首先從目標數(shù)據(jù)庫中獲取部分樣本,引入文檔權重和查詢權重,基于文檔權重和查詢權重利用貪心選擇策略選擇能夠覆蓋樣本數(shù)據(jù)庫的文檔重復率低的查詢詞集合,使用該查詢詞集合采集目標數(shù)據(jù)庫。該方法將原始數(shù)據(jù)庫的查詢選擇轉換為對樣本數(shù)據(jù)庫的查詢選擇問題。但是該方法無法保證樣本數(shù)據(jù)與目標數(shù)據(jù)庫是同分布的,因此覆蓋樣本數(shù)據(jù)庫的查詢詞集合可能不適用于整個目標數(shù)據(jù)庫。為此,Jiang和Wu等人提出了基于強化學習(RL)的DeepWeb數(shù)據(jù)采集框架[14-16],該方法與以往方法的有很大的不同:乊前的方法大多是基于統(tǒng)計信息選擇查詢,如詞頻,文檔頻率,詞頻-逆文檔頻率:而該方法不僅利用統(tǒng)計信息,還利用語言特征(詞性、詞的長度、語)以及HTML本身的特征(關鍵詞的標簽、屬性信息、位置信息等)[14]。RL方法許爬蟲根據(jù)從已執(zhí)行的查詢中獲取經驗,自動學習查詢選擇策略,從而為每一輪查詢選擇收益最大的查詢關鍵詞迚行資源采集。該方法充分利用查詢關鍵詞的不同特征和爬蟲的爬取經驗,自動的確定當前最優(yōu)的查詢選擇,減少了爬蟲的采集負載和大量空結果集的出現(xiàn)。但是該方法學習過程相對復雜,并且僅能應用于GET提交方法的表單,無法應用于POST類型的提交表單。

1.2復雜查詢接口查詢構造方法不同于簡單查詢接口,復雜查詢接口包含兩個或多個輸入項,對于表單中的選擇輸入項(如select,radio,checkbox)其輸入值是確定的,但是文本輸入項(如text)的值則是無法確定的,文本輸入項可能只接受數(shù)值類型的輸入值(如商品價栺)也可能只接受區(qū)間類型的輸入值(如日期),而且表單不同的輸入項乊間可能存在關聯(lián)關系。值得注意的是,復雜查詢接口并不一定為所有的輸入項都準備輸入值才能獲得查詢結果,因此,對復雜查詢接口迚行查詢構造時,首先需要確定輸入項的值域或約束,然后選擇迚行查詢構造的輸入項并為其準備輸入值,生成表單查詢實例。HiWE[17],DeepBot[18,19],基于屬性值圖的方法[20],基于查詢模板的方法[21],基于本體的方法[22-24]等則屬于此類工作。HiWE[17]是一面向特定領域(仸務)的采集方法,該方法需要人工提供領域屬性及屬性取值集合,并且通過查詢接口屬性集合與領域屬性集合的相似性刞斷,自動選擇領域相關的查詢接口;接著利用人工提供的屬性取值填充表單,生成表單查詢;然后迚行DeepWeb數(shù)據(jù)的采集,并根據(jù)采集經驗利用表單選擇輸入項素的取值更新屬性取值。但是該方法沒有考慮自動為文本輸入項產生新的查詢詞,只能依賴人工提供的知識。不同于HiWE,Wu[20]提出一基于屬性值圖的查詢構造方法。該方法將基于查詢的DeepWeb數(shù)據(jù)采集建模為圖的遍歷問題:定義基于屬性值的圖模型,將一個結構化的Web數(shù)據(jù)庫看作是一個單一關系的數(shù)據(jù)表,每個屬性值為圖中的一個結點,邊為兩個不同的屬性取值在一個數(shù)據(jù)實例中的共現(xiàn)關系。該工作得出結論認為結構化的數(shù)據(jù)庫屬性值圖中結點的度分布與冪律分布(powerlaw)相似,并以此為依據(jù)采用貪心選擇策略選擇度大的結點生成表單查詢。但是該方法需要將每一次的查詢結果更新到已有的屬性值圖中,然后選擇下一個新的待提交的查詢詞,這方法更新屬性值圖的代價較高。DeepBot[18,19]是一個基于瀏覽器內核開發(fā)的DeepWeb數(shù)據(jù)采集的框架,它與HiWE類似,都采用面向特定領域的方式。DeepBot接受一組領域定義集合作為輸入,自動識別與該集合相關的表單;然后利用領域定義集合為匹配的表單素賦值,生成表單查詢。其中,領域定義集合用于定義采集仸務。該方法通過領域定義與表單乊間的相似度計算自動選擇匹配的表單,許表單素和領域定義乊間存在不完全匹配的情況。DeepBot采用瀏覽器內核解決網頁客戶端瀏覽器腳本解析問題,但是該方法完全依賴人工提供的領域定義集合,不能自動產生新的查詢詞。為此,Madhavan[21]提出了一基于查詢模板的DeepWeb數(shù)據(jù)自動采集方法,該方法自動刞斷查詢接口中輸入素接受的數(shù)據(jù)類型,選擇查詢接口中的輸入項的一個子集作為約束項構造查詢模板。在約束項乊間利用笛卡爾積的形式產生不同的查詢請求。約束項的取值有兩方式確定:對于選擇輸入項,則利用查詢接口提供的取值集合;對于文本輸入項,首先利用表單所在頁面的信息構造刜始候選詞,然后從查詢結果文檔中提取額外的關鍵詞更新候選詞列表,重復該步驟直到不能提取新的關鍵詞為止或是達到停止條件,最后將這些查詢詞作為該文本輸入項的取值集合。該方法通過表單查詢返回結果驗證查詢模板的有效性,并且采用自底向上的有效模板的增量式算法構造查詢模板。雖然該方法能夠自動實現(xiàn)DeepWeb數(shù)據(jù)查詢請求的生成,但是對于包含多個輸入項的查詢接口來說,其對應文本輸入項取值集合的確定,查詢模板有效性的驗證過程復雜,導致DeepWeb數(shù)據(jù)采集的效率較低?;诒倔w的查詢構造方法[22-24]與上述方法不同,該方法通過本體直接定義查詢接口中每個素的類型和取值以及素乊間的依賴關系,將本體作為輸入直接生成表單查詢。[22]是一針對語義網環(huán)境的DeepWeb數(shù)據(jù)查詢方法。[23]是一基于本體的屬性自動抽取和查詢轉換方法,該方法將WordNet作為本體,利用本體在DeepWeb數(shù)據(jù)中加入語義層實現(xiàn)表單查詢的生成。[24]是一基于面向實體DeepWeb數(shù)據(jù)查詢的方法,該方法將Freebase作為本體知識,利用本體和查詢日志(querylogs)產生實體查詢,用于DeepWeb數(shù)據(jù)的采集。但是基于本體的方法與HiWE和DeepBot類似都依賴外部的人工指定的輸入信息,自適應性差。

2DeepWeb數(shù)據(jù)采集查詢構造方法分析

仸何一查詢構造方法的一個非常重要的特征是其自動化程度,這是指在查詢構造過程中需要用戶完成的工作量。除此乊外,由于DeepWeb數(shù)據(jù)面向的領域廣泛,類型多樣,因此,查詢構造方法最需要具備擴展性,如:在DeepWeb數(shù)據(jù)源的類型或領域發(fā)生變化時,該方法仍然能夠正常工作。本節(jié)從支持的查詢接口提交方法,查詢詞提供方式,自動化程度,擴展性角度對比分析目前已有的查詢構造方法。表1是目前已有的查詢構造方法定性比較的結果,在自動化程度一列,“AUTO”表示完全自動、“SEMI”表示半自動、“NO”表示人工完成。在擴展性方面,劃分為三個層次,分別用“好”、“中”、“差”表示使用相關方法或工具的可擴展程度?;诒韺踊椒ǖ腄eepWeb數(shù)據(jù)采集的目標是以最小的查詢數(shù)量達到最大的DeepWeb數(shù)據(jù)覆蓋率,因此,構造的表單查詢的好壞直接影響目標的實現(xiàn)。雖然已有的查詢構造方法能夠表明確實可以使大量的DeepWeb數(shù)據(jù)內容對用戶可見,但它也存在一些局限性,如表2所示。從表1可以看出,這些查詢構造方法只能處理提交方法是GET類型的DeepWeb數(shù)據(jù)庫,不能應用于使用POST方法的DeepWeb數(shù)據(jù)庫。除此乊外,從表2可以看出,已有的查詢構造方法都存在不同程度的局限性。通過對相關工作的分析可以看出,目前,缺少一能夠同時處理GET和POST提交方法,具備自動,可擴展應用到不同領域的表單查詢構造方法。因此,DeepWeb數(shù)據(jù)采集的查詢構造方法仍然需要做迚一步的研究。表層化的方法通過向DeepWeb數(shù)據(jù)的查詢接口提交查詢把數(shù)據(jù)從DeepWeb數(shù)據(jù)庫中挖掘出來,得到的DeepWeb數(shù)據(jù)可以用于構造以數(shù)據(jù)分析和挖掘為目的的各應用或是數(shù)據(jù)集成應用。利用該方法迚行DeepWeb數(shù)據(jù)采集有以下優(yōu)點:(1)該方法能夠無縫的集成搜索引擎爬蟲,不需要對搜索引擎爬蟲做改動就可以實現(xiàn)DeepWeb數(shù)據(jù)的采集;(2)基于表層化方法的DeepWeb數(shù)據(jù)采集系統(tǒng)可以將對應的DeepWeb數(shù)據(jù)庫的數(shù)據(jù)保存到本地,這樣可以根據(jù)需求對得到的DeepWeb數(shù)據(jù)迚行預處理,如:連接來自不同DeepWeb數(shù)據(jù)庫的數(shù)據(jù),初除重復內容等;可以為DeepWeb數(shù)據(jù)預先創(chuàng)建索引,以便快速響應用戶查詢請求;(4)該方法可以使從DeepWeb數(shù)據(jù)庫得到的內容和從SurfaceWeb得到的內容以相同方式采集。雖然基于表層化處理方式的DeepWeb數(shù)據(jù)采集方法確實可以使大量的DeepWeb數(shù)據(jù)內容對搜索引擎用戶可見,但它也存在嚴重的局限性。(1)有很大一部分DeepWeb數(shù)據(jù)庫的內容無法通過現(xiàn)有的DeepWeb數(shù)據(jù)采集技術爬取到,原因在于,目前的表層化處理方法只能處理查詢接口的提交方法是GET類型的DeepWeb數(shù)據(jù)庫,不能應用于使用POST方法的DeepWeb數(shù)據(jù)庫;(2)該方法對保持采集的DeepWeb數(shù)據(jù)庫的數(shù)據(jù)的時新性(datafreshness)非常困難,因為DeepWeb數(shù)據(jù)庫的內容是動態(tài),多變的,搜索引擎爬蟲可能無法跟上快速變化的DeepWeb數(shù)據(jù)。表層化的方法面臨的最大的挑戰(zhàn)是如何為DeepWeb數(shù)據(jù)庫的查詢接口選擇合適的查詢,這涉及到兩個主要問題:第一,需要為查詢接口中的各表單輸入項找出合適的輸入值,對于表單中的選擇輸入項(如下拉、單選、多選等),它們的輸入值是已知的,可以直接利用查詢接口中提供的取值即可,但是對于表單中的文本輸入項,則需要為其預測合適的輸入值;第二,必須控制向查詢接口提交查詢請求的數(shù)量,以免對DeepWeb數(shù)據(jù)庫的提供商(DeepWeb數(shù)據(jù)所在站點)帶來不合理的負載。通過對表層化方式的DeepWeb數(shù)據(jù)采集方法分析,我們發(fā)現(xiàn)現(xiàn)有的表層化方法在解決DeepWeb數(shù)據(jù)采集的難題時,也存在不同程度的局限性,這導致現(xiàn)有的DeepWeb數(shù)據(jù)采集方法難滿足大數(shù)據(jù)的規(guī)模性,多樣性和高速性的特點,因此如何克服現(xiàn)有DeepWeb數(shù)據(jù)采集方法的局限性,在現(xiàn)有方法的基礎上做出迚一步改迚是未來需要研究的問題。

3研究展望

篇2

CC2530射頻模塊通過外引24個引腳,包括普通IO引腳P00-P24和電源、復位引腳,實現(xiàn)與電路的連接。電路包括復位電路、開關電路、傳感器接口電路、按鍵指示電路、通信調試電路、電源供電電路。主要電路功能介紹如下:按鍵指示電路:節(jié)點包括Led和蜂鳴器指示電路,用于本節(jié)點的指示功能;支持按鍵功能,進行節(jié)點工作模式的轉換。開關電路:由三極管電路組成,用于實現(xiàn)傳感器供電的通斷。通信調試電路:由串口電路和JTAG調試接口組成;串口負責與PC上位機軟件的連接,方便修改節(jié)點的參數(shù);JTAG接口方便上位機集成環(huán)境IAR等調試用。電源供電電路:基本供電由外部USB接口電源5V通過AMS1117轉3.3V以及直接電池3.3V供電組成;傳感器可由內部3.3V供電,而大于3.3V則由外部電源直接提供。傳感器接口電路:包括?;肺锪鬈囕v常見的幾種信號(0-5V、4-20mA、開關量、數(shù)字量)采集電路,可同時接四種類型的傳感器。其中數(shù)字量主要是DS18B20、DHT11溫濕度傳感器的輸出信號;0-5V主要是氣體泄露檢測、光敏、真空度傳感器的輸出信號;4-20mA主要是壓力、液位傳感器的輸出信號;開關量主要是紅外、門開關、傾斜傳感器的輸出信號;信號接入后進行了信號隔離和二極管鉗位保護電路。

2節(jié)點軟件

2.1節(jié)點軟件架構軟件設計部分主要是基于TI公司的Z-stack協(xié)議棧進行應用程序的開發(fā)。Z-stack協(xié)議棧是一款穩(wěn)定性強的Zigbee開發(fā)協(xié)議棧,是對Zigbee標準的具體實現(xiàn)。協(xié)議棧APL(應用層)包含了主要的API函數(shù)接口,方便進行應用開發(fā),從而實現(xiàn)對CC2530芯片硬件資源的控制功能。具體軟件框架設計如圖4所示。應用層軟件主要包括節(jié)點間數(shù)據(jù)的接收/發(fā)送、節(jié)點內應用層與底層的交互。應用層的數(shù)據(jù)經過應用層數(shù)據(jù)幀格式進行封裝傳給底層繼續(xù)封裝并發(fā)送出去;接收數(shù)據(jù)則由底層先進行解釋,再由應用層進行解釋,然后進行數(shù)據(jù)的計算、更新參數(shù)等步驟。應用層還可通過API控制接口對底層進行控制與信號、參數(shù)獲取。

2.2數(shù)據(jù)幀格式Zigbee采集節(jié)點和主節(jié)點模塊的數(shù)據(jù)傳輸格式采用字符串形式進行數(shù)據(jù)的發(fā)送/接收。由于是采用字符進行數(shù)據(jù)傳輸,所以可以利用上位機現(xiàn)有的字符串處理函數(shù),很容易校驗數(shù)據(jù)正確性,并從數(shù)據(jù)幀中提取有效信息,避免因幀長度判斷引起的錯誤。另外,基于Zigbee傳輸速率較低、傳感器數(shù)據(jù)量小、刷新速度慢的需求等特點盡量減小和限制了協(xié)議中各數(shù)據(jù)域的占位寬度,保證傳輸效率。具體數(shù)據(jù)格式如表1所示。幀頭:本協(xié)議節(jié)點間的應用層交互主要有命令幀和數(shù)據(jù)幀。幀頭是辨別命令幀和數(shù)據(jù)幀而設立的。幀頭包括:Set、Get、Ack、Data4種。Set指的是主節(jié)點對采集節(jié)點進行參數(shù)設定,為命令幀,是主節(jié)點需要對子節(jié)點進行參數(shù)配置的時候發(fā)送的,子節(jié)點收到此類型幀后,發(fā)回Ack幀,說明參數(shù)設置成功與否;Get指的是其他節(jié)點需要獲取本節(jié)點信息,為命令幀,本節(jié)點收到此類型幀后,發(fā)送數(shù)據(jù)幀;Ack指的是節(jié)點間通信應答狀態(tài)幀,SUCC為成功、FAIL為失??;Data指的是數(shù)據(jù)幀,攜帶節(jié)點參數(shù)、傳感器采集數(shù)據(jù)。如表2所示。目的地址:目的地址指的是Zigbee網絡中的設備唯一標識的網絡ID。為十六進制0X0000-0XFFFF之間值。其中有幾個地址值有特殊的含義,0XFFFF表示廣播地址;0XFFFE表示所有接收功能打開的設備;0XFFFC表示所有路由設備;其余地址為單一設備的網絡地址。網絡地址的獲得過程是:主節(jié)點設備啟動成功后,自設定為Zigbee網絡的主網絡ID0X0000,子節(jié)點設備在申請加入成功后獲得一個網絡身份標志ID。幀類型:在幀頭為Set、Get、Data時,此幀位置都有意義,分別代表設置、獲取、攜帶相應類型的節(jié)點信息。這些類型包括,傳感器數(shù)據(jù)(Sensor)、節(jié)點網絡地址(NAdr)、節(jié)點網絡類型(NType)、采集周期(Cycle)、產品信息(Info)、發(fā)送方式(SWay)、功率模式(PMode)、信道選擇(Channel)、AD參考電壓(ADMode)、默認發(fā)送地址(DSAdr)。信道數(shù)據(jù):DataChannel796F800\r\n(第11(0x0B)無線信號通道)載荷:載荷是整個通信幀中最重要的部分,包括了通信的主要內容。載荷的具體內容需要根據(jù)幀類型來確定。描述如下:(1)幀類型為傳感器數(shù)據(jù):此時載荷部分包括傳感器類型、傳感器ID、傳感器值。傳感器類型包括?;肺锪鬈囕v常見信號:1.溫度、2.門開關、3.真空度、4.液位、5.壓力、6.電壓、7.濕度、8.氣體、9.紅外10.光敏、11.傾斜。傳感器ID從0開始分配,表示同種類傳感器的使用編號。(2)幀類型為非傳感器數(shù)據(jù):此時載荷部分攜帶網絡地址、采集周期、發(fā)送地址等值。結尾符:本協(xié)議結尾符為字符“\r\n”,加上字符串結束符‘\0’,固定為3個字節(jié)。結尾符是一幀數(shù)據(jù)的界定符,上位機軟件可以根據(jù)此結尾符很快能判定幀的長度,避免一些數(shù)據(jù)長度判讀錯誤的發(fā)生。

2.3軟件處理流程Z-stack協(xié)議棧基于輪詢機制,事件是最小處理單元,每個事件都有相應的處理函數(shù),當事件管理數(shù)據(jù)結構相應的位置位時,協(xié)議棧通過輪詢機制就能發(fā)現(xiàn)并跳入相對應處理函數(shù)進行處理步驟,處理完再返回輪詢大循環(huán)。這里主要設置了3個事件,分別是串口事件、無線事件和采集事件。串口事件主要處理與上位機的通信;包括根據(jù)上位機命令修改本節(jié)點參數(shù)、接收發(fā)送數(shù)據(jù)等;無線事件主要處理數(shù)據(jù)的無線發(fā)送和接收;采集事件主要處理傳感器的數(shù)據(jù)讀入、封裝、發(fā)送或者接收、解析、轉發(fā)等。處理流程圖如圖5所示。

2.4上位機配置軟件Zigbee設備邏輯類型包括3種,分別是主節(jié)點、路由節(jié)點、終端節(jié)點。對于不同設備類型的具體處理流程,本設計編寫了統(tǒng)一的參數(shù)配置服務函數(shù),可通過上位機軟件方便進行配置。比如,終端節(jié)點配置成具有傳感器數(shù)據(jù)的采集功能,可選擇無線和串口兩種發(fā)送方式,而對于路由器或者協(xié)調器,基于功耗考慮,則配置成不具有傳感器數(shù)據(jù)采集功能。通過設計節(jié)點上位機配置軟件ZigConfig來實現(xiàn)參數(shù)的配置,簡單的界面操作就能通過串口以上述數(shù)據(jù)格式下載到節(jié)點,并燒寫到CC2530的flash中永久保存起來,節(jié)點下一次啟動將以新的參數(shù)啟動。上位機配置軟件介紹如下:(1)配置軟件由QtCreator開發(fā)。QtCreator是Qt被Nokia收購后推出的一款新的輕量級跨平臺集成開發(fā)環(huán)境(IDE)。支持的系統(tǒng)包括Linux(32位及64位)、MacOSX以及Windows。開發(fā)人員能利用該應用程序框架更快速及輕易地完成開發(fā)任務。(2)該配置軟件完成節(jié)點的設備類型、接口采集邏輯、入網參數(shù)等的配置??芍苯油ㄟ^串口線與待配置節(jié)點連接,也可以通過一個中間節(jié)點對待配置節(jié)點進行無線配置,中間節(jié)點通過串口線與上位機連接。操作界面如圖6所示。(3)如圖7,圖8所示,通過上位機配置軟件S1(實物圖如圖6所示)可方便地對待配置節(jié)點S2進行參數(shù)配置。對于待配置設備,如果是終端設備,配置前需先按下配置按鍵,指示燈亮后,裝置即進入配置模式;而如果是路由設備或協(xié)調器設備則無需此步驟。(4)有線配置如圖6所示:上位機通過串口線連接待配置設備,然后配置軟件上收到待配置節(jié)點S2發(fā)送過來的設備信息,并顯示在界面上,然后點擊配置按鈕,即發(fā)送配置幀到節(jié)點S2,點擊讀取配置按鈕,則將節(jié)點S2各項參數(shù)顯示在界面上,如果節(jié)點S2是數(shù)據(jù)透傳模塊,則可以直接接收數(shù)據(jù)或填寫目標地址發(fā)送數(shù)據(jù)。配置完后再按一下按鍵,指示燈不亮,表示配置完成??梢耘渲迷O備類型為Zigbee終端設備、路由設備、協(xié)調器設備和點對點透傳設備;可以配置入網參數(shù),比如PANID值、信道、網絡模型、網絡層次等;可以配置傳感器發(fā)送周期,使各傳感器通道數(shù)據(jù)可以同一周期發(fā)送,也可以不相同周期發(fā)送等。(5)無線配置如圖8所示,采用一個節(jié)點作為數(shù)據(jù)中轉與上位機有線連接,通過這個節(jié)點無線發(fā)送指令到待配置節(jié)點進行配置,配置過程中的操作步驟與有線時類似。

3節(jié)點測試

3.1信號強度RSSI(ReceivedSignalStrengthIndication)是接收端的信號強度指示,可用來判定鏈接質量。實際應用中,普遍采用簡化后的Shadowing模型,即如下公式計算RSSI值。其中Pr(d)為接收端接收信號強度,Pr(d0)為參考處接收端接收信號強度,d為接收端與發(fā)送端實際距離,d0為接收端與發(fā)送端參考距離,n為路徑損耗指數(shù),通常取2~4。取d0=1m,實測得Pr(d0)的值代入,并取n=3代入公式(1)得新的計算公式。實際測試中取兩個節(jié)點,分別設為協(xié)調器節(jié)點和終端節(jié)點。將協(xié)調器節(jié)點固定,令終端節(jié)點遠離,終端節(jié)點加入協(xié)調器節(jié)點網絡后,每隔1s發(fā)送一次數(shù)據(jù)到協(xié)調器節(jié)點。協(xié)調器接收到數(shù)據(jù)包后,從TI協(xié)議棧Z-Stack的數(shù)據(jù)結構afIncom-ingMSGPacket_t中提取RSSI值記錄下來。100M范圍每隔5M記錄一次RSSI值,每次記錄100個值,然后取100個中的隨機值和平均值分別作為本次終值繪制曲線。

3.1.1空曠環(huán)境下測得Pr(d0)=-28dbm,按照公式(2)與實際數(shù)據(jù),繪制對比曲線。從圖9和圖10對比曲線可以看出,隨著兩節(jié)點間距離增大,RSSI值會逐漸衰減,符合一般規(guī)律。0-20m范圍內,RSSI衰減較快,之后較為平緩。40m后信號質量普遍較理論值平緩,可能是受硬件條件影響,誤差增大。圖9由于每次記錄取的隨機值,存在較大誤差,圖10每次記錄取100個數(shù)據(jù)的平均值,曲線較為平緩。誤差因素包括硬件設計、周邊環(huán)境影響等。

3.1.2危化品物流車輛環(huán)境下采用深圳市中集集團液化氣罐(空罐)?;肺锪鬈囕v進行實地測試,測試車輛長度14m,寬度2.5m。將協(xié)調器節(jié)點放置在車駕駛座,終端節(jié)點自由放置于車廂體內部,加入網絡并發(fā)送數(shù)據(jù)到協(xié)調器節(jié)點。測得Pr(d0)=-44dbm,根據(jù)公式(2)和實際數(shù)據(jù)的結果曲線如下:由圖11和圖12可以看出,在車輛環(huán)境下,節(jié)點信號普遍較空曠環(huán)境下差,這主要是因為接收節(jié)點被放進車輛箱體內部,信號一定程度上受到廂體衰減。大于40m距離后信號變得不穩(wěn)定,通信斷續(xù)和重連情況發(fā)生頻繁,此時RSSI值普遍>82dbm,80m后多次測試接收端均接收不到數(shù)據(jù)。

3.2數(shù)據(jù)傳輸將協(xié)調器節(jié)點放置在車駕駛座,終端節(jié)點自由放置于車輛廂體內部,加入網絡并發(fā)送數(shù)據(jù)到協(xié)調器節(jié)點。在協(xié)調器端統(tǒng)計接收數(shù)據(jù)包個數(shù),并計算丟包情況和最大穩(wěn)定通信距離(即數(shù)據(jù)通信情況良好,極少發(fā)生重連情況),結果如下。由表3可以看出,主節(jié)點在車駕駛室情況下,車正前方和側面信號要好于車后方信號,節(jié)點丟包率較低,通信距離>=25M,滿足一般危化品物流車輛要求。另外,通信的最大穩(wěn)定傳輸RSSI值是極少斷網重連情況發(fā)生下的統(tǒng)計值,所以普遍低于信號強度曲線中的極限值。隨著距離增大,節(jié)點間的網絡傳輸也會變得不穩(wěn)定,常常發(fā)生斷網重連,甚至無法重連狀況。實際數(shù)據(jù)包傳輸受節(jié)點間不同阻擋物、不同車型、車體電磁干擾、程序執(zhí)行等因素影響。

3.3功耗通過萬用表、示波器和在程序中設計測試模塊的結合進行功耗測試,測試結果如下。從表4的測試結果可以看出,節(jié)點滿足低功耗要求,休眠情況下,節(jié)點功耗低至0.33uA。

4結語

篇3

NI-PCI6221是一款低價位多功能M系列數(shù)據(jù)采集板卡,具有單端16路/差分8路模擬輸入,分辨率高達16bit,采樣速率為250KS/s,輸入最小電壓范圍為±200mV,最大電壓范圍為±10V,板上自帶4095字節(jié)內存.

2系統(tǒng)軟件設計

2.1系統(tǒng)功能設計軟件設計是整個系統(tǒng)設計的核心,軟件設計部分采用層次化和模塊化思想,將整個系統(tǒng)劃分分若干模塊,模塊化的程序結構不但使整個系統(tǒng)清晰明了,而且方便進行程序維護.基于LabVIEW的數(shù)據(jù)采集系統(tǒng)軟件結構如圖2所示.該系統(tǒng)軟件部分包含了系統(tǒng)啟動、用戶登錄、系統(tǒng)菜單、數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)回放6個功能模塊.

2.2系統(tǒng)界面設計本文針對6個功能模塊分別開發(fā)了相應的界面.

2.2.1系統(tǒng)啟動界面系統(tǒng)啟動界面如圖3所示.它包含了簡單個人信息,綠色橫條是系統(tǒng)啟動條,顯示啟動進度,系統(tǒng)100%加載成功后,單擊進入登錄界面按鈕可以跳轉到用戶登錄界面,單擊退出啟動界面按鈕則直接退出系統(tǒng).

2.2.2用戶登錄界面用戶登錄界面如圖4所示.它要求輸入用戶名和密碼,功能是進行身份認證,認證通過后顯示登錄成功,一旦登錄成功會自動進入到系統(tǒng)菜單界面,如果不能通過認證,只能通過退出按鈕來退出系統(tǒng).

2.2.3系統(tǒng)菜單界面系統(tǒng)菜單界面如圖5所示.它由一列按鈕構成,菜單程序運行后按鈕被激活,分別單擊數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)回放按鈕可跳轉到對應界面,單擊退出按鈕返回到菜單按鈕被激活前狀態(tài).

2.2.4數(shù)據(jù)采集界面數(shù)據(jù)采集界面如圖6所示.它模擬實現(xiàn)了兩路信號的采集,一路是電壓信號,一路是溫度信號.信號選擇開關用于進行信號選擇,通過信號選擇開關既可以采集單路信號數(shù)據(jù),也可以同時采集雙路信號數(shù)據(jù).針對溫度信號設計了溫度表盤,可精確顯示溫度值,另外還設定了溫度下限和上限值,將溫度限定在一個范圍內,一旦超出這個范圍,報警指示燈就會亮起來.數(shù)據(jù)采集界面包含了一些基本參數(shù)設置,此外還有返回和暫停兩個按鈕,單擊暫停按鈕,系統(tǒng)暫停連續(xù)采集數(shù)據(jù),暫停中狀態(tài)表現(xiàn)為數(shù)據(jù)信息停留在某一刻,單擊返回按鈕,可返回至系統(tǒng)菜單界面.李琳芳等院基于LabVIEW的數(shù)據(jù)采集與處理系統(tǒng)設計

2.2.5數(shù)據(jù)處理界面數(shù)據(jù)處理界面如圖7所示.它包含了電壓和溫度兩路信號,對電壓信號分別進行了濾波、頻譜分析、峰值壓縮,對溫度信號進行了均值壓縮.此外還有溫度表盤、一列選擇開關、系統(tǒng)參數(shù)配置信息、暫停和返回按鈕.濾波處理是信號處理中常用的一種手段,對于濾波處理,觀察圖7,可發(fā)現(xiàn)濾波后的電壓信號清晰平滑,便于觀察.頻譜分析主要是求出信號的頻域描述,有助于更全面地認知信號信息,進行信號特征提取.根據(jù)奈奎斯特準則,信號帶寬小于采樣頻率的1/2,便能防止出現(xiàn)頻譜混疊現(xiàn)象,恢復出原始信號,本文設置采樣頻率為1000Hz.觀察圖7發(fā)現(xiàn)電壓幅度譜主要集中在0~50Hz,這是因為在實際工程中,為了恢復出高保真信號,要求信號帶寬小于采樣頻率的1/10,加之軟件仿真環(huán)境理想,因此信號幅度譜主要處于50Hz頻段內.壓縮采樣是利用算法在保留信號信息的同時進行壓縮處理,壓縮處理可縮減數(shù)據(jù)體積,有利于傳輸.本文對電壓信號進行了峰值壓縮,對溫度信號進行了均值壓縮,設置壓縮因子均為10,即對于電壓信號,每10個采樣值中標記出最大值,對于溫度信號,每10個采樣值中標記出平均值.電壓信號峰值壓縮后方便獲取峰值信息,溫度信號均值壓縮后方便獲取平均溫度.

2.2.6數(shù)據(jù)回放界面數(shù)據(jù)回放界面如圖8所示.可以讀取之前存儲的數(shù)據(jù),實現(xiàn)數(shù)據(jù)再現(xiàn).通過文件路徑找到之前數(shù)據(jù)所在位置,并通過選擇開關按鈕選擇回放的信號,接著運行系統(tǒng)回放程序,便可觀察回放的數(shù)據(jù).數(shù)據(jù)回放界面包含了電壓和溫度兩路信號的回放,回放的數(shù)據(jù)結果以波形和表格數(shù)值兩種形式呈現(xiàn).觀察圖8發(fā)現(xiàn)在電壓和溫度波形始端有段空白區(qū)域,這是由于之前存儲的文件中包含一些非數(shù)值的說明信息,是不能夠被讀取的.

3小結

篇4

關鍵詞:USBLabVIEW數(shù)據(jù)采集

通用串行總線USB(UniversalSerialBus)作為一種新型的數(shù)據(jù)通信接口在越來越廣闊的領域得到應用。而基于USB接口的數(shù)據(jù)采集卡與傳統(tǒng)的PCI卡及ISA卡相比具有即插即用、熱插拔、傳輸速度快、通用性強、易擴展和性價比高等優(yōu)點。

USB的應用程序一般用VisualC++編寫,較為復雜,花費的時間較長。由美國國家儀器(VI)公司開發(fā)的LabVIEW語言是一種基于圖形程序的編程語言,內含豐富的數(shù)據(jù)采集、數(shù)據(jù)信號分析分析以及控制等子程序,用戶利用創(chuàng)建和調用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,易于調試、理解和維護,而且程序編程簡單、直觀。因此它特別適用于數(shù)據(jù)采集處理系統(tǒng)。利用它編制USB應用程序,把LabVIEW語言和USB總線緊密結合起來的數(shù)據(jù)采集系統(tǒng)將集成兩者的優(yōu)點。USB總線可以實現(xiàn)對外部數(shù)據(jù)實時高速的采集,把采集的數(shù)據(jù)傳送到主機后再通過LabVIEW的功能模塊順利實現(xiàn)數(shù)據(jù)顯示、分析和存儲。

1USB及其在數(shù)據(jù)采集設備中的應用

USB自1995年在Comdex上亮相以來,已廣泛地為各PC廠家所支持?,F(xiàn)在生產的PC幾乎都配置了USB接口,Microsoft的Windows98、NT以及MacOS、Linux等流行操作系統(tǒng)都增加對USB的支持。USB具有速度快、設備安裝和配置容易、易于擴展、能夠采用總線供電、使用靈活等主要優(yōu)點,應用越來越廣泛。

一個實用的USB數(shù)據(jù)采集系統(tǒng)硬件一般包括微控制器、USB通信接口以及根據(jù)系統(tǒng)需要添加的A/D轉換器和EPROM、SRAM等。為了擴展其用途,還可以加上多路模擬開關和數(shù)字I/O端口。系統(tǒng)的A/D、數(shù)字I/O的設計可沿用傳統(tǒng)的設計方法,根據(jù)采集的精度、速率、通道數(shù)等諸元素選擇合適的芯片,設計時應充分注意抗干擾性,尤其對A/D采集更是如此。在微控制器和USB接口的選擇上有兩種方式:一種是采用普通單片機加上專用的USB通信芯片;另一種是采用具備USB通信功能的單片機。USB的另一大優(yōu)點是可以總線供電,在數(shù)據(jù)采集設備中耗電量通道不大,因此可以設計成總線供電。

一個USB設備的軟件一般包括主機的驅動程序、應用程序和寫進ROM里面的Firmware。Windows98提供了多種USB設備的驅動程序,但還沒有一種專門針對數(shù)據(jù)采集系統(tǒng),所以必須針對特定的設備編制驅動程序。盡管系統(tǒng)已經提供了很多標準接口函數(shù),但編制驅動程序仍然是USB開發(fā)中最困難的一件事。通常采用WindowsDDK實現(xiàn),但現(xiàn)在有許多第三方軟件廠商提供了各種各樣的生成工具,如Compuware的DriverWorks、BlueWaters的DriverWizard等軟件能夠輕易地生成高質量的USB驅動程序。單片機程序的編制也同樣困難,而且沒有任何一家廠商提供了自動生成的工具。編制一個穩(wěn)定、完善的單片機程序直接關系到設備性能,必須給予充分的重視。以上兩個程序是開發(fā)者所關心的,而用戶卻不太關心。用戶關心的是如何高效地通過鼠標操作設備,如何處理和分析采集進來的大量數(shù)據(jù)。因此還必須有高質量的用戶軟件。用戶軟件必須有友好的界面、強大的數(shù)據(jù)分析和處理能力以及提供給用戶進行再開發(fā)的接口。

2LabVIEW及其外部動態(tài)鏈接庫的調用

LabVIEW是美國國家儀器(NI)公司開發(fā)的一種基于圖形程序的虛擬儀表編程語言,其在測試與測量、數(shù)據(jù)采集、儀器控制、數(shù)字信號分析、工廠自動化等領域獲得了廣泛的應用。LabVIEW程序稱為虛擬儀器程序(簡稱VI),主要包括兩部分:前面板(即人機界面)和方框圖程序。前面板用于模擬真實儀器的面板操作,可設置輸入數(shù)值、觀察輸出值以及實現(xiàn)圖表、文本等顯示??驁D程序應用圖形編程語言編寫,相當于傳統(tǒng)程序的源代碼。其用于傳送前面板輸入的命令參數(shù)到儀器以執(zhí)行相應的操作。LabVIEW的強大功能在于層次化結構,用戶可以把創(chuàng)建的VI程序當作子程序調用,以創(chuàng)建更復雜的程序,而且,調用階數(shù)可以是任意的。LabVIEW這種創(chuàng)建和調用子程序的方法使創(chuàng)建的程序模塊化,易于調試、理解和維護。LabVIEW編程方法與傳統(tǒng)的程序設計方法不同,它擁有流程圖程序設計語言的特點,擺脫了傳統(tǒng)程序語言線形結構的束縛。LabVIEW的執(zhí)行順序依方塊圖間數(shù)據(jù)的流向決定,而不像一般通用的編程語言逐行執(zhí)行。在編寫方框圖程序時,只需從功能模塊中選用不同的函數(shù)圖標,然后再以線條相互連接,即可實現(xiàn)數(shù)據(jù)的傳輸。

LabVIEW雖有接口卡的驅動和管理程序,但主要是針對NI公司自己生產的卡。對于普通的I/O卡,還不能直接被LabVIEW所應用,必須采取其他方法。其中可以用LabVIEW的PortIn和PortOut功能,但此法應用簡單,無法實現(xiàn)較復雜的接口功能。而采用動態(tài)鏈接庫,可以根據(jù)具體需要編寫適當?shù)某绦?,靈活利用LabVIEW的各項功能。用戶可以自己編寫DLLs實現(xiàn)LabVIEW與硬件的鏈接。用VC++6.0編制動態(tài)鏈接庫,首先生成DLL框架,AppWizard將自動生成項目文件,但不產生任何代碼,所有代碼均需用戶自己鍵入。DLL需要的文件有:①h函數(shù)聲明文件;②c源文件;③def定義文件。H文件的作用是聲明DLL要實現(xiàn)的函數(shù)原型,供DLL編譯使用,同時還提供應用程序編譯使用。C文件是實現(xiàn)具體文件的源文件,它有一個入口點函數(shù),在DLL被初次調用的運行,做一些初始化工作。一般情況下,用戶無須做什么初始化工作,只需保留入口點函數(shù)框架即可。def文件是DLL項目中比較特殊的文件,它用來定義該DLL項目將輸出哪些函數(shù),只有該文件列出的函數(shù)才能被應用函數(shù)調用。要輸出的函數(shù)名列在該文件EXPORTS關鍵字下面。

3基于AN2131Q的單光子采集系統(tǒng)

該采集系統(tǒng)由筆者自行開發(fā)并用于單光子計數(shù)種子活性快速檢測儀中。它主要由將光子信號轉為電信號的光電倍增管(PMT)及其輔助電路和基于AN2131Q的USB采集卡組成。PMT及其前置放大器、放大器、甄別器等輔助電路能將微弱的光子信號轉換為15ns的標準TTL脈沖信號,脈沖信號經過分頻處理后再被USB采集,USB將采集的結果實時地傳給主機處理。

3.1USB采集卡的硬件組成

該采集卡由微控制器、USB通信接口、主機以及數(shù)字I/O端口組成,如圖1所示。

筆者設計了一種同步傳輸方式的單片方案,應用了內置微處理器的USB設計——EZ-USBAN2131Q。它是Cypress公司的一種內嵌微控制器的80腳USB芯片,包含三個8位多功能口,8位數(shù)據(jù)端口,16位地址端口,二個USB數(shù)據(jù)端口,二個可定義16位的定時/計數(shù)器和其他輸入輸出端口。其采用一種基于內部RAM的解決方案,允許客戶隨時不斷地設置和升級,不受端口數(shù)、緩沖大小和傳輸速度及傳輸方式的限制。片內嵌有一個增強型8051微控制器,其4個時鐘的循環(huán)周期使它比標準8051的速度快3倍。采用同步傳輸方式將單片機的計數(shù)值實時傳送給主機,而主機對計數(shù)器的控制信號則采用塊傳輸方式傳送。EZ-USB是Cypress公司推出的USB開發(fā)系統(tǒng),它為USB外設提供了一種很好的集成化解決方案。EZ-USB在其內核已做了大量繁瑣的、重復性的工作,這樣就簡化了開發(fā)代碼,進而縮短了開發(fā)周期。此外,開發(fā)商還提供了配套的開發(fā)軟件(包括編譯軟件uVision51、調試軟件dScope51、控制軟件EZUSBControllPanel)以及驅動程序GPD(GeneralPurposeDriver)接口,以便于用戶進行開發(fā)使用。

圖2開啟設備和獲取采集數(shù)據(jù)的流程圖

3.2USB采集卡的軟件構成

在USB的Firmware中,采取同步傳輸(IsochronousTransactions)和塊傳輸(BulkTransactions)兩種傳輸方式。同步方式用來實時傳送采集的數(shù)據(jù),塊傳輸主要用來傳輸主機命令信號和USB的狀態(tài)信息。塊傳輸中利用端點(Endpoint)2。兩種傳輸方式的核心中斷程序如下:

voidISR_Sutok(void)interrupt0//塊傳輸方式

{

//initializethecoutersinthe8051

TMOD=0x05;

TCON=0x10;

TH0=0;

TL0=0;

Thb=0,

TH0=0;

TL0=0;

thb=0;

EZUSB_IRQ_CLEAR();

USBIRQ=bmSUTOK;//ClearSUTOKIRQ

}

voidISR_Sof(void)interrupt0//同步傳輸方式

{

if(TCON&0x21){//Dealwiththecounteroverflow

TH0=0;

Tl0=0;

THB++;

TCON&=0xdf;}

IN8DATA=TH0;//3Bytescounterresult

IN8DATA=TL0;

IN8DATA=THB;

EZUSB_IRQ_CLEAR();

USBIRQ=bmSOF;//ClearSOFIRQ

}

在LabVIEW應用程序中設計了一Usb.dll文件作為LabVIEW與USB的驅動程序。由于EZ-USB開發(fā)系統(tǒng)中已經提供了底層驅動程序(GPD)接口函數(shù),用戶只需調用這些函數(shù)即可與USB設備連接。因此在DLL的編制中只需調用它提供的函數(shù),大大節(jié)約了開發(fā)時間,提高了開發(fā)速度。創(chuàng)建的Usb.dll文件中包含了如下五個輸出函數(shù),功能說明如表1所示。

表1Usb.dll包含函數(shù)的功能說明

Control主機對USB設備的控制

ReadResult獲取USB發(fā)送到主機的數(shù)據(jù)

StartIsoStream啟動設備的同步傳輸流

StartThread得到標準設備的設備描述符

StopThread關閉設備的同步傳輸流

其定義如下:

LPSTR_declspec(dllexport)_stdcallControl(intinput);

int_declspec(dllexport)_stdcallReadResult(void);

int_declspec(dllexport)_stdcallStartIsoStream(void);

int_declspec(dllexport)_stdcallStartThread(void);

int_declspec(dllexport)_stdcallStopThread(void);

開啟設備和獲取采集數(shù)據(jù)的過程如圖2所示。它的主要功能有:開啟或關閉USB設備、檢測USB設備、設置USB數(shù)據(jù)傳輸管道(pipe)和端點(endpoint)、實時從USB接口采集數(shù)據(jù)、顯示并分析數(shù)據(jù)。

篇5

硬件設計包括溫度與磁場探頭、供電電源、多通道數(shù)據(jù)采集儀器、PC上位機的選型以及機柜設計。

1.1溫度檢測溫度探頭類型為熱電阻,熱電阻測溫原理是給熱電阻通小電流,測量電阻上的電壓,得出熱敏電阻的阻值,對照熱敏電阻的參數(shù)曲線得出溫度。溫度探頭需要恒流源提供穩(wěn)定的電流才可以保證讀取電壓的準確性,選擇lakeshore公司生產的121系列恒流源可滿足精度要求。該恒流源既提供固定檔位電源供電也可以通過編程實現(xiàn)連續(xù)可調電流輸出。由于超導線圈采用過冷液氮浸泡冷卻[2],根據(jù)液氮溫區(qū)(70K~77K)對探頭型號進行選擇。對于需要在30K~800K之間對溫度測量的場合,可選擇PT100系列鉑電阻溫度計[3],其額定電流為1mA。在這個溫度范圍內,鉑電阻溫度計具有很好的重復性和較高靈敏度,同時滿足在電抗器的磁場環(huán)境下使用的要求。70K以上鉑電阻溫度計具有通用的標準曲線,如圖2所示。相比較于其他種類溫度探頭具有更好的通用性,而且具有互換性。另外,在溫度測量中,探頭需要貼近超導帶材,薄膜型的鉑電阻溫度計滿足設計要求。探頭的接線方式有二線制和四線制。采用二線制接線方法,會引入線路電阻,造成測量誤差。因此在35kV電抗器的數(shù)據(jù)采集系統(tǒng)中,均采用四線制接線方法。

1.2磁場檢測測量磁場強度的原理是霍爾效應,在半導體薄片兩端通以控制電流,并在薄片的垂直方向施加勻強磁場,則在垂直于電流和磁場的方向上,將產生霍爾電壓,根據(jù)產生的電壓就可以知道磁場的大?。?]。在實際測量中需要在兩個方向(軸向場與垂直場)對磁場進行測量。在35kV電抗器設計中,根據(jù)電磁設計仿真得到磁場的最大值約為2000高斯,并且該磁場探頭的工作環(huán)境為液氮溫區(qū)。Lakeshore公司生產的HGCA3020的軸向磁場探頭與HGCT3020的徑向磁場探頭,可滿足使用要求,其額定電流為100mA。

1.3數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)采集系統(tǒng)還需要對探頭電壓進行記錄以及處理顯示等一系列后續(xù)工作[5]。實驗過程中實驗對象需要監(jiān)測的信號比較多,采用數(shù)據(jù)采集儀器對各個數(shù)據(jù)進行采集記錄,節(jié)約人力成本而且可以減少由于人工錄入所導致的錯誤。在該套數(shù)據(jù)采集系統(tǒng)中,采集的信號有54路,溫度采集精度為1K,電壓精度為10mV。吉時利公司生產的3706數(shù)字開關萬用表作為數(shù)據(jù)采集儀器滿足使用要求。數(shù)據(jù)采集儀器采集數(shù)據(jù)以后,把數(shù)據(jù)傳輸?shù)街鳈C中通過程序對其進行處理,然后顯示在顯示器上供人員監(jiān)測電抗器的工作情況。在電抗器實際運行過程中,主機工作環(huán)境可能較為惡劣,對工控機的穩(wěn)定性和數(shù)據(jù)的安全性有一定要求,需要對主機進行加固、防潮、防輻射、防塵等特殊設計。研祥工控機IPC-810E滿足使用要求。

1.4硬件布局及搭建(1)溫度探頭布點方案35kV超導可控電抗器超導線圈分為內外兩圈,各由32個雙餅組成。工作在交流工況下,超導線圈存在交流損耗,根據(jù)仿真結果顯示端部線圈交流損耗功率最大,需要對線圈端部重點監(jiān)控。單個超導線圈上布點25個,總計50個鉑電阻。鉑電阻在安裝時需要對其進行加固,防止被快速流動的液氮損壞。(2)磁場探頭布點方案電抗器中,帶材受垂直磁場影響較大,端部的帶材最易受到磁場的干擾,磁場探頭安裝在電抗器的端部。由于磁場探頭受到液氮的沖刷,磁場探頭需要通過夾子進行固定。通過對端部磁場兩個垂直方向數(shù)據(jù)的讀取,得到磁場強度的實時數(shù)據(jù),為監(jiān)測電抗器運行狀態(tài)提供數(shù)據(jù)支持。各個設備的集成布局以及安裝需要以機柜的形式實現(xiàn)。機柜的設計原則是整套裝置的實用性和外在的美觀性。機柜上主要安裝的設備和儀器有:吉時利3706數(shù)據(jù)采集儀、工控機(包括工控機主機、液晶顯示屏、鍵盤和鼠標)、探頭供電電源,同時在機柜下部預留一部分空間用于放置實驗過程中常用的一些工具和儀表等,如納伏表、波形記錄儀、鎖放和功率分析儀等,設計方案如圖4所示。

2軟件開發(fā)

軟件開發(fā)即控制界面開發(fā),通過界面控制各種數(shù)據(jù)采集儀器的工作,并將采集到的數(shù)據(jù)傳輸?shù)诫娔X上進行處理、顯示和保存等[6]。圖5所示的為軟件搭建流程示意圖,首先調試設備,完成工控機與3706數(shù)據(jù)采集儀器之間的通信,使數(shù)據(jù)能夠進入主機進行處理,然后對數(shù)據(jù)進行分類處理,實現(xiàn)多通道數(shù)據(jù)處理以及數(shù)據(jù)的分類顯示?;贚abVIEW開發(fā)的程序主要包含后臺程序以及操作界面。后臺程序(1)數(shù)據(jù)采集系統(tǒng)主程序數(shù)據(jù)采集系統(tǒng)主程序實現(xiàn)對數(shù)據(jù)采集儀器中的電壓數(shù)據(jù)讀取的功能[7]。通過在主程序中對數(shù)據(jù)進行通道選擇可以實現(xiàn)不同的處理功能,包括3706儀器的通訊設置和數(shù)據(jù)初始化。(2)數(shù)據(jù)傳輸程序數(shù)據(jù)傳輸是指將數(shù)據(jù)從數(shù)據(jù)采集儀器上傳輸?shù)焦た貦C上。LabVIEW中提供了多種通訊協(xié)議,如串口、并口和以太網傳輸協(xié)議,此處選擇以太網作為傳輸方式,數(shù)據(jù)采集儀器發(fā)送數(shù)據(jù),工控機接收發(fā)送過來的數(shù)據(jù),進行處理。(3)數(shù)據(jù)記錄程序LabVIEW中可以將數(shù)據(jù)保存為多種格式,其中就包括常見的Excel表格,“寫入電子表格.vi”可以將數(shù)據(jù)保存為Excel格式,并且該VI不需要啟動Excel,寫入速度較快、使用較為簡單,所以使用該VI進行數(shù)據(jù)保存。由于EXCEL是目前比較通用的數(shù)據(jù)處理軟件,所以保存數(shù)據(jù)的格式選為EXCEL表格,方便處理數(shù)據(jù)。程序中可以設定將EXCEL文件保存在某個文件夾下,分別將磁體溫度、磁場強度保存在兩個文件夾下,并且為方便查找數(shù)據(jù),每個文件的文件名以日期和時間命名,這樣方便日后查找數(shù)據(jù)。對于不同類型數(shù)據(jù)也可以直接分開存儲,方便以后查詢使用。在以上程序的實現(xiàn)中,主要以子VI形式完成。子VI是指將特定的程序封裝,完成特定的功能的模塊。通過對程序的封裝既可以實現(xiàn)原有功能,并且使得主程序更加簡潔,便于查找錯誤,又增加了程序的可移植性,提高了程序的整體質量。操作界面該系統(tǒng)的操作界面首先確保了所有數(shù)據(jù)的顯示以及后臺記錄,另外對電抗器內部環(huán)境參數(shù)(杜瓦內部壓強)以及外部輔助設備的工作狀態(tài)(液氮制冷機流量)也進行了監(jiān)控。針對溫度監(jiān)控,單獨設置了更加直觀的波形顯示,更利于觀察超導體的溫度變化,如圖6所示。在35kV電抗器數(shù)據(jù)采集及監(jiān)控系統(tǒng)的設計方案中,界面中沒有需要用戶設置的參數(shù),在前面板中分列鉑電阻顯示控件來顯示數(shù)據(jù)。開始運行后,3706開始采集數(shù)據(jù),并且將這些數(shù)據(jù)儲存到表格當中。在前面板中,同一個波形圖中可以顯示多個通道的數(shù)據(jù),每個通道的數(shù)據(jù)有顏色不同,這樣就可以比較實驗磁體不同部分的溫度或不同超導雙餅的電壓等。

3總結

篇6

多路視頻數(shù)據(jù)實時采集的軟件實現(xiàn)

常永亮(飛行試驗研究院測試所陜西西安710089)

【摘要】介紹了視頻數(shù)據(jù)的采集、多路視頻數(shù)據(jù)間的切換、視頻數(shù)據(jù)的保存及基于C/S結構的實時視頻數(shù)據(jù)傳輸與顯示,在對四路飛行視頻數(shù)據(jù)進行實時采集的運行時,各項需求已達到要求。

【關鍵詞】視頻數(shù)據(jù)、Divx編碼、RTP/RTCP協(xié)議、TCP/UDP協(xié)議、媒體流、幀

1引言

隨著信息技術的不斷發(fā)展,人們將計算機技術引入視頻采集、視頻處理領域,用計算機處理視頻信息和用數(shù)字傳輸視頻數(shù)據(jù)在很多領域已有廣泛的應用,在我們的飛機試飛中也被大量的應用。

視頻圖像采集的方法較多,基本可分為2大類:數(shù)字信號采集和模擬信號采集。前者采用圖像采集芯片組完成圖像的采集、幀存儲器地址生成以及圖像數(shù)據(jù)的刷新;除了要對采集模式進行設定外,主處理器不參與采集過程,我們只要在相應的幀存儲器地址取出采集到的視頻數(shù)據(jù)即可得到相應的視頻數(shù)據(jù),這種方法,無論在功能、性能、可靠性、速度等各方面都得到了顯著的提高,但成本高。后者采用通用視頻A/D轉換器實現(xiàn)圖像的采集,其特點是數(shù)據(jù)采集占用CPU的時間,對處理器的速度要求高,成本低、易于實現(xiàn),能夠滿足某些圖像采集系統(tǒng)的需要。

此系統(tǒng)要求每秒采最大25幀(設為可調),客戶端實時顯示最大25幀(設為可調),保存為MPEG4格式,畫面要求為最大分辯率為1024X768。

多路視頻實時采集使用的是VisionRGB-PRO卡(英國Datapath公司),此卡可同時實時采集兩路視頻數(shù)據(jù),基本達到了本系統(tǒng)的要求,再用一臺VGA矩陣切換器將前端數(shù)據(jù)源的四路視頻數(shù)據(jù)進行人為切換采集。

2硬件環(huán)境的構建(硬件框架)

圖一系統(tǒng)硬件框架圖

上圖為整個采集系統(tǒng)的硬件框架。

此采集系統(tǒng)主要實現(xiàn)對前端四路視頻數(shù)據(jù)的人為切換式實時采集,在服務器端可同時采集和儲存兩路視頻數(shù)據(jù)(在此只用一個視頻采集卡),也可以一次只采集一路視頻數(shù)據(jù),再經網絡實時傳輸?shù)娇蛻舳孙@示,服務器端也實時顯示所采集的視頻。

在進行視頻切換方面可在服務器端或客戶端自行切換,在服務器端可通過串行口操作VGA矩陣切換進行相應的視頻輸入輸出口的切換,在客戶端可通過網絡-服務器程序相應模塊-串行口-VGA矩陣切換進行相應的視頻輸入輸出口的切換。

3軟件實現(xiàn)概述

3.1服務器端的實現(xiàn)

圖二服務器端程序流程圖

上圖為服務器端實時采集視頻的程序流程圖。視頻數(shù)據(jù)量較大,這就要求視頻數(shù)據(jù)處理系統(tǒng)具有實時采集,大容量存儲和實時處理的特點。在服務器端的實現(xiàn)是整個系統(tǒng)的關鍵,在此也承擔了大量的工作,因此對軟件和硬件方面要求也很高就成為必然。

軟件要實現(xiàn)對視頻數(shù)據(jù)的實時采集(最多兩路)、控制視頻接口、把視頻數(shù)據(jù)實時編碼保存并發(fā)送到多個客戶端。以上就是要在服務器上實現(xiàn)的主要功能。

在采集方面最主要的是要有實時性,在此以事件驅動的方法從端口獲取數(shù)據(jù),采集到視頻數(shù)據(jù)流在桌面顯示的同時再編碼保存,視頻采集的數(shù)據(jù)要經軟件的相應模塊將其設為位圖型式的視頻幀,以利于在服務器端的顯示和編碼保存,在此采用Divx編碼,Divx編碼后形成以幀為格式的MPEG4流。Divx解碼也是以幀的格式解壓,因此有利于向客戶端發(fā)送數(shù)據(jù)時以幀為單位發(fā)送視頻數(shù)據(jù)流。

此處用到Divx編碼就不得不把Divx編碼作簡要的介紹。

DivX由DivXNetworks公司開發(fā)的,即為我們通常所說的DVDrip格式,它采用了MPEG4的壓縮算法同時又綜合了MPEG-4與MP3各方面的技術,也就是使用DivX壓縮技術對DVD盤片的視頻圖像進行高質量壓縮,同時用MP3或AC3對音頻進行壓縮,然后再將視頻與音頻合成并加上相應的外掛字幕文件而形成的視頻格式。其畫質直逼DVD并且體積只有DVD的數(shù)分之一。這種編碼對機器的要求也不高,所以DivX視頻編碼技術可以說是一種對DVD造成威脅最大的新生視頻壓縮格式,實際上Divx=(視頻)MPEG4+(音頻)MP3。

媒體流分為四個流:視頻流、音頻流、文本流、MIDI流,用視頻卡采集的是兩路視頻流,保存時每路視頻流多加了一個文本流,文本流主要應客戶要求加入的服務器時間和一些人為輸入的文本信息,在記錄兩個媒體流時一般有兩種記錄方法,在此采用的是將視頻流和文本流記到一個文件中的方式,這樣有利于文件以后的保存和查閱。

在采集軟件實現(xiàn)方面主要應用了相應的SDK(Softwaredevelopmentkit)和API(應用編程接口),還可用VFW(VideoforWindows)。但后一種方法實現(xiàn)簡單單路視頻采集卡可以,對于多路視頻的采集用第一種方法更加靈活,但實現(xiàn)比第二種復雜的多。在服務器實現(xiàn)軟件方面主要有以下幾大塊:一是采集;二是保存;三是向客戶端發(fā)送;四是串口的通行;五圖像的形成;六是桌面顯示;七是對圖像亮度、顏色、位置等的調整;采集通道、采樣率、采集時間的選擇;等等。

在服務器端各方面協(xié)調工作是關鍵,程序啟動首先默認上次設定的視頻采集卡通道,如有視頻數(shù)據(jù)就顯示、保存,如果沒有視頻數(shù)據(jù)就等待,如果要調整視頻采集卡通道可用串口給VGA矩陣切換器發(fā)送相應的命令讓VGA矩陣切換器進行相應的輸入輸出通道切換。也可經客戶端經網絡到服務器串口到VGA矩陣切換器進行VGA矩陣切換器相應的輸入輸出通道切換(在后面介紹客戶端時再介紹)。每次切換后將自動保存原視頻文件,如切換后有視頻數(shù)據(jù)將自動重新生成一個新的視頻文件。

在服務器桌面顯示的畫面是沒經任何編碼處理的,但網絡傳輸和保存的視頻數(shù)據(jù)是經Divx編碼的,這樣有力的減輕了網絡間傳輸和服務器的負擔。

用局域網實時傳輸視頻數(shù)據(jù)已在一些領域大量的應用,局域網以有線局域網居多,因為有線局域網技術成熟、傳輸速度快,但是長時間傳輸大量視頻數(shù)據(jù)時也會引起傳輸速率不穩(wěn)定,引起數(shù)據(jù)堵塞,會導致視頻傳輸?shù)馁|量大幅度下降,容易引起畫面的重影、抖動、花屏、延遲等現(xiàn)象。

為了在局域網上有效的、高質量的實時傳輸媒體流,需要多種技術的支持,包括網絡傳輸層協(xié)議的選擇、編(解)碼技術,網絡傳輸層質量控制技術等等。

實時傳輸協(xié)議RTP是針對Internet上多媒體數(shù)據(jù)流的一個傳輸協(xié)議,實時傳輸控制協(xié)議RTCP負責管理傳輸質量在當前應用進程之間交換控制信息,RTP/RTCP協(xié)議只適合服務器端和客戶端相對動態(tài)的實時多媒體數(shù)據(jù)流傳輸。但是,對于圖像采集速度固定的實時視頻采集,有時會引起采集的數(shù)據(jù)來不及壓縮而直接丟棄而達不到實時的要求,所以沒有采用RTP/RTCP協(xié)議,而是從發(fā)送端出發(fā),實時判斷網絡狀況,采用暫停發(fā)送的控制策略進行實時傳輸。

網絡傳輸層質量控制技術采用的是TCP/UDP協(xié)議,UDP是一種不可靠的、無連接的協(xié)議,UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應用環(huán)境。它不提供檢錯和糾錯功能,一旦網絡出現(xiàn)堵塞時,大量的數(shù)據(jù)報文會丟失。對于Divx編解碼技術,是以幀為單位進行編解碼的,分為關鍵幀和非關鍵幀。在傳輸過程中,由于壓縮率比較高,只要一幀中錯一比特位,將影響其后的更多的比特位,直接造成圖像的模糊、花屏等現(xiàn)象。只有等到下一次關鍵幀的到來才有可能恢復圖像的清晰。為了保證傳輸?shù)恼_性,自己需要在應用層制定協(xié)議。如此一來,只能選擇使用TCP來進行網絡通信,TCP的目的是提供可靠的數(shù)據(jù)傳輸,并在相互進行通信的設備或服務之間保持一個虛擬連接。TCP在數(shù)據(jù)包接收無序、丟失或在交付期間被破壞時,負責數(shù)據(jù)恢復。它通過為其發(fā)送的每個數(shù)據(jù)包提供一個序號來完成此恢復。再輔助以暫停發(fā)送的控制策略,較好的解決局域網中實時視頻傳輸容易引起的重影、抖動、花屏的問題。

為了達到視頻傳輸?shù)膶崟r性,總的思想是最少的發(fā)送冗余信息,最大程度上發(fā)送最新的視頻。

在服務器端視頻采集采用從VisionRGB視頻采集卡捕獲視頻圖像,得到的是位圖型式的視頻幀,然后用Divx編碼進行壓縮,通過Winsock實現(xiàn)壓縮后的視頻數(shù)據(jù)在局域網中的實時傳輸,在客戶端接收完的數(shù)據(jù)交給Divx解碼器解壓,最后實現(xiàn)視頻顯示。如圖三所示:

圖三網絡間傳輸流程圖

如果局域網通信速率很高且狀態(tài)穩(wěn)定,則進行實時視頻傳輸就可以達到非常好的效果。但是在網絡出現(xiàn)異常時會導致數(shù)據(jù)傳輸率不穩(wěn)定或明顯下降,造成發(fā)送端數(shù)據(jù)積壓。此時就要采取一定的策略來控制發(fā)送端(服務器端),以達到實時性的要求,暫停發(fā)送策略很好的解決了這一現(xiàn)象。使用此策略有時會有丟幀的現(xiàn)象(100M局域網沒有發(fā)現(xiàn)丟幀現(xiàn)象),但就客戶端的要求是滿足的,在服務器端的采集、顯示、保存不受暫停發(fā)送策略的影響,也就是不會有丟幀的現(xiàn)象,雖然應用了暫停發(fā)送策略,但已經能夠滿足在客戶端實時監(jiān)控需求了。

3.2客戶端的實現(xiàn)

在上面講服務器端的實現(xiàn)時已經大概講到客戶端的實現(xiàn),因為只要把服務器端實現(xiàn)好客戶端實現(xiàn)難點就小的多。如圖四所示:

圖四客戶端程序流程圖

在客戶端也可以自行選擇要采集的通道,但對服務器端的采樣率等都不能通過客戶端進行設置,實現(xiàn)客戶端時主要是要實時監(jiān)聽和服務器網絡連接狀態(tài)和判斷接受的視頻數(shù)據(jù)是否正常是否啟用暫停發(fā)送策略等。每秒接收的幀數(shù)可自行調節(jié),但不能大于服務器端每秒采集的幀數(shù)。

在客戶端還要實時Divx解碼,如果不解碼就無法顯示,Divx解碼速度是完全可以達到實時顯示的要求。Divx解碼和顯示在不同的兩個線程中實現(xiàn)的,這樣做主要是為了顯示流暢??梢栽趦蓚€不同客戶端顯示兩個不同的視頻通道采集的數(shù)據(jù)。

4結論

本系統(tǒng)作為電視跟蹤系統(tǒng)的一部分,負責多路視頻數(shù)據(jù)的實時采集、存儲和視頻編解碼算法的實現(xiàn)、基于C/S結構的實時視頻數(shù)據(jù)傳輸顯示,在通過各種測試后在試運行期間已達到本系統(tǒng)的預期要求,本系統(tǒng)還支持事后的視頻回放。

本系統(tǒng)的開發(fā)難點和重點在服務器端,服務器端的開發(fā)直接影響到整個系統(tǒng)開發(fā)。

參考文獻

[1]《Windows核心編程》Microsoft公司〔美〕著

篇7

基于通用信號處理開發(fā)板,利用FPGA技術控制AD9233芯片對目標模擬信號采樣,再將采樣量化后的數(shù)據(jù)寫入USB接口芯片CY7C68013的FIFO中,F(xiàn)IFO寫滿后采用自動觸發(fā)工作方式將數(shù)據(jù)傳輸?shù)絇C機。利用VC++6.0軟件編寫上位機實現(xiàn)友好的人機交互界面,將傳輸?shù)絇C機上的數(shù)據(jù)進行儲存和實時回放。本系統(tǒng)主要實現(xiàn)以下兩大功能:1)ADC模塊對目標模擬信號進行采樣,利用FPGA技術將采樣后的數(shù)據(jù)傳輸?shù)経SB接口芯片CY7C68013的FIFO中存儲。2)運用USB2.0總線數(shù)據(jù)傳輸技術,將雷達回波信號數(shù)據(jù)傳輸?shù)絇C機實時回放。分為應用層、內核層和物理層3部分。應用層和內核層主要由軟件實現(xiàn)。應用層采用VC++6.0開發(fā)用戶界面程序,為用戶提供可視化操作界面。內核層基于DriverWorks和DDK開發(fā)系統(tǒng)驅動程序,主要起應用軟件與硬件之間的橋梁作用,把客戶端的控制命令或數(shù)據(jù)流傳到硬件中,同時把硬件傳輸過來的數(shù)據(jù)進行緩存。物理層主要以FPGA為核心,對USB接口芯片CY7C68013進行控制,通過USB2.0總線實現(xiàn)對中頻信號采集。系統(tǒng)設計采用自底向上的方法,從硬件設計開始逐步到最終的應用軟件的設計。

2硬件設計

FPGA在觸發(fā)信號下,控制ADC采樣輸入信號,并存入FIFO中。當存滿時,將數(shù)據(jù)寫入USB接口芯片CY7C68013,同時切換另一塊FIFO接收ADC轉換的數(shù)據(jù),實現(xiàn)乒乓存儲,以提高效率。FPGA模塊的一個重要作用是控制USB接口芯片CY7C68013。當ADC采樣后,數(shù)據(jù)進入FPGA模塊,F(xiàn)PGA控制數(shù)據(jù)流將其寫入CY7C68013的FIFO中,以便于USB向PC機傳輸。CY7C68013的數(shù)據(jù)傳輸模式采用異步slaveFIFO和同步slaveFIFO切換模式。通過實測,前者傳輸速度約為5~10Mbit/s,后者傳輸速度最高可達20Mbit/s,傳輸速度的提高可通過更改驅動程序的讀取方式實現(xiàn)。

3軟件設計

3.1USB驅動程序設計

USB2.0總線傳輸技術最高速率可達480Mbit/s。本系統(tǒng)采用批量傳輸?shù)膕laveFIFO模式。CY7C68013芯片內部提供了多個FIFO緩沖區(qū),外部邏輯可對這些端點FIFO緩沖區(qū)直接進行讀寫操作。在該種傳輸模式下,USB數(shù)據(jù)在USB主機與外部邏輯通信時無需CPU的干預,可大大提高數(shù)據(jù)傳輸速度。Cypress公司為CY7C68013芯片提供了通用的驅動程序,用戶可根據(jù)需求開發(fā)相應的固件程序。

3.2FPGA模塊程序設計

系統(tǒng)中FPGA模塊的核心作用是控制AD9233芯片進行采樣。AD9233作為高速采樣芯片,其最高采樣速率達125Mbit/s,最大模擬帶寬為650MHz。通過改變采樣速率可使該系統(tǒng)采集不同速率需求的信號,擴展了該系統(tǒng)的應用范圍。描述FPGA控制USB數(shù)據(jù)寫入接口芯片F(xiàn)IFO的狀態(tài)機如圖6所示。狀態(tài)1表示指向INFIFO,觸發(fā)FIFOADR[1:0],轉向狀態(tài)2;狀態(tài)2表示若FIFO未滿則轉向狀態(tài)3,否則停留在狀態(tài)2;狀態(tài)3表示驅動數(shù)據(jù)到總線上,通過觸發(fā)SLWR寫數(shù)據(jù)到FIFO并增加FIFO的指針,然后轉向狀態(tài)4;狀態(tài)4表示若還有數(shù)據(jù)寫則轉向狀態(tài)2,否則轉向完成。

3.3上位機設計

為實現(xiàn)人機交互,利用VC++MFC在PC機上編寫了可視化操作界面,即上位機。上位機既用于數(shù)據(jù)采集的控制,同時也用于采集數(shù)據(jù)的實時回放。上位機界面如圖7所示。上位機主要功能:1)按下“檢測USB”按鈕,可檢測USB是否連接正常,并顯示USB基本信息。2)按下“開始采集”按鈕,可將采集的數(shù)據(jù)傳輸?shù)絇C機并實時回放數(shù)據(jù)波形;再次按下“開始采集”按鈕,可暫停數(shù)據(jù)波形回放。3)按下“保存數(shù)據(jù)”按鈕,可將采集的數(shù)據(jù)以*.dat文件的形式存儲到PC機硬盤。4)按下“結束采集”按鈕,可關閉采集系統(tǒng)并退出界面;或按下“確定”和“取消”按鈕,也可直接退出界面。

4系統(tǒng)實測

為了測試數(shù)據(jù)采集與回放系統(tǒng),利用通用信號處理開發(fā)板設計了DDS模塊。該DDS模塊產生一個正弦波作為測試信號,通過AD9744芯片轉換后變?yōu)槟M信號輸出,并將此輸出信號接至示波器以便驗證系統(tǒng)。數(shù)據(jù)采集與回放系統(tǒng)的實物圖及系統(tǒng)實測波形與回放波形。

5結束語

篇8

關鍵詞:MCF5249uClinuxWeb數(shù)據(jù)采集

引言

現(xiàn)在嵌入式系統(tǒng)的應用越來越廣泛。隨著網絡技術發(fā)展和市場需求的變化,工業(yè)設備實現(xiàn)網絡化管理控制已經成為一種必然趨勢。M2M(MachinetoMachine)的網絡通信已成為國內外研究熱點,而Web技術為工業(yè)設備實現(xiàn)網絡化管理提供了一種解決方案。本文從硬件和軟件設計兩個方面討論了摩托羅拉MCF5249處理器在數(shù)據(jù)采集方面的應用,并實現(xiàn)了采集數(shù)據(jù)的遠程Web表征。

由于這一系統(tǒng)面向廣義的過程,所以只要可獲得過程參數(shù),就能實現(xiàn)過程行業(yè)的遠程在線表征。特別是基于Web完成實時數(shù)據(jù)庫生成,真正實現(xiàn)遠程集群系統(tǒng)的數(shù)據(jù)資源無人工干預自動獲取。其應用將會不斷地延伸。

本文描述的摩托羅拉MCF5249是以ColdFire32位微處理器為基礎的高性能處理器,該處理器內部集成了一個片內12位ADC,可用于工業(yè)數(shù)據(jù)采集。且數(shù)據(jù)采集系統(tǒng)基于嵌入式操作系統(tǒng)uClinux。由于uClinux是為沒有MMU的微處理器設計的。且源泉代碼公開,為降低成本和獲取軟件的自有產權提供了方便。當然,uClinux不是一個強實時系統(tǒng),為支持一般過程系統(tǒng),可以通過一些補丁程序來提高其實時性,所以本文討論的數(shù)據(jù)采集系統(tǒng)主要應用于一些實時性要求不高的場合。

1數(shù)據(jù)采集系統(tǒng)的硬件設計

摩托羅拉MCF5249處理器內部集成了一個片內12位∑—ΔADC,它有四路輸入(ADIN0~ADIN3),任一時刻只允許一路輸入,由多路選擇器決定。ADC的數(shù)字部分在MCF5249的內部,而模擬電壓比較器由電路提供。A/D轉換的輸出引腳以脈寬調制的格式提供參考電壓,因此,該輸出需要一個的阻容電路,將其轉換成直流電壓,以備外部的電壓比較器電路使用。數(shù)據(jù)采集系統(tǒng)的硬件原理圖如圖1所示。

由于微處理器不可承受負電壓,所以必須將輸入電壓限制在0~+3V之間。Motorola公司不建議使用外部箝位二極管直接在模擬輸入端進行過壓保護,而在輸入端引入1~10kΩ的限流電阻和低通濾波器,在低通濾波器的輸入端連接二極管對輸入電壓進行箝位。

2數(shù)據(jù)采集系統(tǒng)的軟件設計

數(shù)據(jù)采集系統(tǒng)的軟件設計主要分為兩大模塊,即數(shù)據(jù)采集模塊與數(shù)據(jù)顯示模塊。

2.1數(shù)據(jù)采集模塊的設計

數(shù)據(jù)采集模塊是系統(tǒng)的核心模塊,為了提高數(shù)據(jù)采集的實時性,應采用中斷方式完成數(shù)據(jù)采集。其流程圖如圖2所示。

MCF5249微處理器為其內部ADC提供了一個控制寄存器ADCONFIG,其地址是MBAR2_ADDR+0x402,在初始化程序中需要指定MBAR2_ADDR地址。

通過ADCONFIG寄存器可以設置A/D轉換器工作方式、采樣頻率、是否采用中斷方式等。下面給出設置ADCONFIG寄存器實例。

#defineMBAR2_ADDR0x8000000

#defineAD_CONFIG0x402

#defineAD_VALUE0x406

…………

//設置ADC

*(volatileunsignedshortint*)(MBAR2_ADDR+AD_CONFIG)=0x442;

該設置確定ADIN0作為模擬信號輸入通道,采樣頻率設置為1/4系統(tǒng)總線時鐘頻率。當時鐘產生4095次翻轉時,系統(tǒng)產生一個軟件中斷(中斷號為63)。一次采樣結束,并將采樣結果存于ADVALUE寄存器(其地址為MBAR2_ADDR+0x406)。A/D轉換值可以用如下公式計算:

Vi=(X/(2n-1))×Vfullscate

其中,Vi為ADC的輸入電壓;Vfullscate為滿量程輸入電壓;

X為ADC輸出的數(shù)字量;

n為ADC的位數(shù)。

A/D轉換的結果在中斷處理程序中讀取。讀取一次轉換的程序代碼如下:

Volatileunsignedshortintm;

m=*(volatileunsignedshortint*)(MBAR2_ADDR+AD_VALUE);

通常,A/D轉換需要連續(xù)采樣。采樣結果應存放在一個多訪問循環(huán)隊列MACQ(MultipleAccessCircularQueue)中。

MACQ是一個定長有序的數(shù)據(jù)結構。源進程(生產者,ADC采樣程序)將數(shù)據(jù)存入MACQ,一旦初始化,MACQ總是滿的。當有新的數(shù)據(jù)被存入(PUT)MACQ,舊數(shù)據(jù)即被丟棄(如圖3)。應用進程(消費者)可以從MACQ中讀取任何數(shù)據(jù)。讀功能是非破壞性的,即讀操作不會改變MACQ。

在uClinux中,A/D轉換中斷程序的編寫方法是將A/D轉換器作為一個字符設備來處理。中斷程序是在linux/drivers/char目錄下編寫,其結構如下:*file:m5249_adirq.c

#include<linux/interrupt.h>

#include<asm/irq.h>

#defineADC_IRQ(128+63)//定義中斷號

#defineMBAR2_ADDR0x8000000

#defineAD_CONFIG0x402

#defineAD_VALUE0x406

/*定義中斷處理函數(shù)*/

voidadirq_interrupt(intirq,void*d,structpt_regs*regs){

在此讀取A/D轉換的值并存入隊列中。

}

/*設備初始化函數(shù)*/

intadirq_init(){

intresult;

unsignedshortadc_irq;

adc_irq=ADC_IRQ;

result=request_irq(adc_irq,&adirq_interrupt,SA_INTERRUPT,5249_adirqNULL);//注冊中斷

if(result==-1)

{printk(“Can''''tgetassigned%d”adc_irq);

returnresult;}

return0;

}

中斷服務程序的添加方法如下:

①編輯uClinux/drivers/char目錄下的mem.c,添加“adirq_init();”;

②編輯此目錄下的Makefile加入“obj-y+=m5249_adirq.o”;

③編譯(make)。

2.2數(shù)據(jù)顯示模塊的設計

為了實現(xiàn)采集到的數(shù)據(jù)以Web方式顯示,需要選擇一個Web服務器。本文采用的Web服務器是BOA。在CGI程序中編寫一個函數(shù)讀取MACQ隊列中的數(shù)據(jù)并顯示。

主要有以下顯示模塊。

(1)編寫一個CGI程序

*編寫一個讀取MACQ隊列中數(shù)值的函

readFromMacq()。

*編寫一個生成動態(tài)HTML頁面的函數(shù)show()。

Voidshow_t(){

……

printf("Content-type:text/html");

prinft{"

<html>

<head>

<metahttp-equiv=pragmacontent=no-cache><metahttpequiv=expirecontent=now>

<title></title>

</head>

<body>");

在此將MACQ中的數(shù)據(jù)讀出,假設值賦給變量n

prinft("<center")Thevalueis%x!</center>

</body>

</html>",n);

}

*編寫一個CGI的主程序main_cgi。

在主程序中需要讀取HTML頁面中的字符,并判斷應執(zhí)行那一個CGI程序。

(2)用HTML語言編寫一個主頁

在主面中應包含:

<ahref=/cgi-bin/main_cgi.cgi?flag=10target=main>鍵接字符</a>.

其中,flag的值是main_cgi用于判斷應執(zhí)行哪一個CGI程序的標志。

推薦期刊