時間:2022-09-24 06:36:12
引言:易發表網憑借豐富的文秘實踐,為您精心挑選了九篇數據采集論文范例。如需獲取更多原創內容,可隨時聯系我們的客服老師。
GPRS移動數據傳輸網絡的主要作用就是對無線數據進行傳輸。在監控對象安裝的數據采集點會對數據進行采集,然后經過GSM網絡的空中接口模塊,同時對數據進行解碼處理,然后將其轉換為可以在公網傳輸的格式,最后通過GPRS移動數據傳輸網絡將數據傳輸至監控中心的服務器。在整個系統中,各個監控點的數據采集模塊通過GPRS移動數據傳輸網絡與監控中心相連,數據采集點同意使用STK卡,與此同時,監控中心會對各點進行登記,并在服務器中保存相關資料。各個監控點的數據采集模塊中裝有數據采集軟件,該軟件24h在線,對電網中的信息數據進行24h不間斷的采集工作。關于信息的傳輸,使用的是JW0D2系列的GPRS無限透明數據傳輸終端。該終端基于移動網絡,抗干擾能力較強,同時性能較高。此外,該傳輸終端還提供標準的RS232接口,以便實現與計算機的連接。在傳輸過程中,速率可以達到172kbps,能滿足監控中心與各個監控點的數據采集與處理工作。由于電網數據傳輸的特殊性較強,因此本系統使用了安全保障,以保證系統運行的穩定性和可靠性。在網絡安全方面,經過對信源加密、信道加密、登錄防護、接入防護、訪問防護等,能有效增強網絡安全,加強安全防護。在硬件方面,使用VPN將公網接入到GPRS網中,成本低廉,不用租用專線。此外,使用VPN還可以增強安全性,客戶端在鏈接應用服務器之前,要經過服務器的認證,而且整個數據傳輸過程均會加密,如此一來,安全性就得到了保障。另外,系統還對用戶的SIM卡手機繼續鑒別授權,在網絡側對SIM卡號和APN進行綁定處理,只有擁有權限的相關用戶才能對專用APN進行訪問,沒經過授權的SIM卡將無法對APN網絡進行訪問。
2特點與優勢
傳輸模塊的特點主要有:①傳輸模塊采用了工業級的GPRS模塊,該模塊性能較為穩定,而且其工作溫度范圍較大。另外,用了嵌入式的CPU作為處理器,功耗低、性能高,還能高速處理協議和大量的數據。②由于該模塊的工作方式為multi-tasking,因此實時性較好。③其AT指令的預設簡單方便。該模塊的通信距離較遠,而且具有覆蓋面積廣的特點,能使終端實時在線,能將無線電無法到達的區域采用GPRS通信的方式進行傳輸,真正實現了高效傳輸。此外,該系統還有組網靈活、擴展容易、維護簡單、性價比高的特點。
與短消息服務相比,GPRS服務的實施性很強,而且系統不會出現延時的情況,可以對所有數據進行采集。此外,由于GPRS具有雙向功能,還可以對采集設備進行反向控制,因此進一步提高了系統的便捷性。本系統的擴展性良好,是大面積覆蓋的GPRS網絡,所以該系統不存在盲區,而且由于該系統的輸出容量較大,數據采集點較多,監控中心要與每一個監控點相連,因此需要系統能滿足傳輸需求。該系統的傳輸容量較大,能滿足突發性數據的傳輸要求,因此該系統的優點明顯。
3結束語
CC2530射頻模塊通過外引24個引腳,包括普通IO引腳P00-P24和電源、復位引腳,實現與電路的連接。電路包括復位電路、開關電路、傳感器接口電路、按鍵指示電路、通信調試電路、電源供電電路。主要電路功能介紹如下:按鍵指示電路:節點包括Led和蜂鳴器指示電路,用于本節點的指示功能;支持按鍵功能,進行節點工作模式的轉換。開關電路:由三極管電路組成,用于實現傳感器供電的通斷。通信調試電路:由串口電路和JTAG調試接口組成;串口負責與PC上位機軟件的連接,方便修改節點的參數;JTAG接口方便上位機集成環境IAR等調試用。電源供電電路:基本供電由外部USB接口電源5V通過AMS1117轉3.3V以及直接電池3.3V供電組成;傳感器可由內部3.3V供電,而大于3.3V則由外部電源直接提供。傳感器接口電路:包括危化品物流車輛常見的幾種信號(0-5V、4-20mA、開關量、數字量)采集電路,可同時接四種類型的傳感器。其中數字量主要是DS18B20、DHT11溫濕度傳感器的輸出信號;0-5V主要是氣體泄露檢測、光敏、真空度傳感器的輸出信號;4-20mA主要是壓力、液位傳感器的輸出信號;開關量主要是紅外、門開關、傾斜傳感器的輸出信號;信號接入后進行了信號隔離和二極管鉗位保護電路。
2節點軟件
2.1節點軟件架構軟件設計部分主要是基于TI公司的Z-stack協議棧進行應用程序的開發。Z-stack協議棧是一款穩定性強的Zigbee開發協議棧,是對Zigbee標準的具體實現。協議棧APL(應用層)包含了主要的API函數接口,方便進行應用開發,從而實現對CC2530芯片硬件資源的控制功能。具體軟件框架設計如圖4所示。應用層軟件主要包括節點間數據的接收/發送、節點內應用層與底層的交互。應用層的數據經過應用層數據幀格式進行封裝傳給底層繼續封裝并發送出去;接收數據則由底層先進行解釋,再由應用層進行解釋,然后進行數據的計算、更新參數等步驟。應用層還可通過API控制接口對底層進行控制與信號、參數獲取。
2.2數據幀格式Zigbee采集節點和主節點模塊的數據傳輸格式采用字符串形式進行數據的發送/接收。由于是采用字符進行數據傳輸,所以可以利用上位機現有的字符串處理函數,很容易校驗數據正確性,并從數據幀中提取有效信息,避免因幀長度判斷引起的錯誤。另外,基于Zigbee傳輸速率較低、傳感器數據量小、刷新速度慢的需求等特點盡量減小和限制了協議中各數據域的占位寬度,保證傳輸效率。具體數據格式如表1所示。幀頭:本協議節點間的應用層交互主要有命令幀和數據幀。幀頭是辨別命令幀和數據幀而設立的。幀頭包括:Set、Get、Ack、Data4種。Set指的是主節點對采集節點進行參數設定,為命令幀,是主節點需要對子節點進行參數配置的時候發送的,子節點收到此類型幀后,發回Ack幀,說明參數設置成功與否;Get指的是其他節點需要獲取本節點信息,為命令幀,本節點收到此類型幀后,發送數據幀;Ack指的是節點間通信應答狀態幀,SUCC為成功、FAIL為失敗;Data指的是數據幀,攜帶節點參數、傳感器采集數據。如表2所示。目的地址:目的地址指的是Zigbee網絡中的設備唯一標識的網絡ID。為十六進制0X0000-0XFFFF之間值。其中有幾個地址值有特殊的含義,0XFFFF表示廣播地址;0XFFFE表示所有接收功能打開的設備;0XFFFC表示所有路由設備;其余地址為單一設備的網絡地址。網絡地址的獲得過程是:主節點設備啟動成功后,自設定為Zigbee網絡的主網絡ID0X0000,子節點設備在申請加入成功后獲得一個網絡身份標志ID。幀類型:在幀頭為Set、Get、Data時,此幀位置都有意義,分別代表設置、獲取、攜帶相應類型的節點信息。這些類型包括,傳感器數據(Sensor)、節點網絡地址(NAdr)、節點網絡類型(NType)、采集周期(Cycle)、產品信息(Info)、發送方式(SWay)、功率模式(PMode)、信道選擇(Channel)、AD參考電壓(ADMode)、默認發送地址(DSAdr)。信道數據:DataChannel796F800\r\n(第11(0x0B)無線信號通道)載荷:載荷是整個通信幀中最重要的部分,包括了通信的主要內容。載荷的具體內容需要根據幀類型來確定。描述如下:(1)幀類型為傳感器數據:此時載荷部分包括傳感器類型、傳感器ID、傳感器值。傳感器類型包括危化品物流車輛常見信號:1.溫度、2.門開關、3.真空度、4.液位、5.壓力、6.電壓、7.濕度、8.氣體、9.紅外10.光敏、11.傾斜。傳感器ID從0開始分配,表示同種類傳感器的使用編號。(2)幀類型為非傳感器數據:此時載荷部分攜帶網絡地址、采集周期、發送地址等值。結尾符:本協議結尾符為字符“\r\n”,加上字符串結束符‘\0’,固定為3個字節。結尾符是一幀數據的界定符,上位機軟件可以根據此結尾符很快能判定幀的長度,避免一些數據長度判讀錯誤的發生。
2.3軟件處理流程Z-stack協議棧基于輪詢機制,事件是最小處理單元,每個事件都有相應的處理函數,當事件管理數據結構相應的位置位時,協議棧通過輪詢機制就能發現并跳入相對應處理函數進行處理步驟,處理完再返回輪詢大循環。這里主要設置了3個事件,分別是串口事件、無線事件和采集事件。串口事件主要處理與上位機的通信;包括根據上位機命令修改本節點參數、接收發送數據等;無線事件主要處理數據的無線發送和接收;采集事件主要處理傳感器的數據讀入、封裝、發送或者接收、解析、轉發等。處理流程圖如圖5所示。
2.4上位機配置軟件Zigbee設備邏輯類型包括3種,分別是主節點、路由節點、終端節點。對于不同設備類型的具體處理流程,本設計編寫了統一的參數配置服務函數,可通過上位機軟件方便進行配置。比如,終端節點配置成具有傳感器數據的采集功能,可選擇無線和串口兩種發送方式,而對于路由器或者協調器,基于功耗考慮,則配置成不具有傳感器數據采集功能。通過設計節點上位機配置軟件ZigConfig來實現參數的配置,簡單的界面操作就能通過串口以上述數據格式下載到節點,并燒寫到CC2530的flash中永久保存起來,節點下一次啟動將以新的參數啟動。上位機配置軟件介紹如下:(1)配置軟件由QtCreator開發。QtCreator是Qt被Nokia收購后推出的一款新的輕量級跨平臺集成開發環境(IDE)。支持的系統包括Linux(32位及64位)、MacOSX以及Windows。開發人員能利用該應用程序框架更快速及輕易地完成開發任務。(2)該配置軟件完成節點的設備類型、接口采集邏輯、入網參數等的配置。可直接通過串口線與待配置節點連接,也可以通過一個中間節點對待配置節點進行無線配置,中間節點通過串口線與上位機連接。操作界面如圖6所示。(3)如圖7,圖8所示,通過上位機配置軟件S1(實物圖如圖6所示)可方便地對待配置節點S2進行參數配置。對于待配置設備,如果是終端設備,配置前需先按下配置按鍵,指示燈亮后,裝置即進入配置模式;而如果是路由設備或協調器設備則無需此步驟。(4)有線配置如圖6所示:上位機通過串口線連接待配置設備,然后配置軟件上收到待配置節點S2發送過來的設備信息,并顯示在界面上,然后點擊配置按鈕,即發送配置幀到節點S2,點擊讀取配置按鈕,則將節點S2各項參數顯示在界面上,如果節點S2是數據透傳模塊,則可以直接接收數據或填寫目標地址發送數據。配置完后再按一下按鍵,指示燈不亮,表示配置完成。可以配置設備類型為Zigbee終端設備、路由設備、協調器設備和點對點透傳設備;可以配置入網參數,比如PANID值、信道、網絡模型、網絡層次等;可以配置傳感器發送周期,使各傳感器通道數據可以同一周期發送,也可以不相同周期發送等。(5)無線配置如圖8所示,采用一個節點作為數據中轉與上位機有線連接,通過這個節點無線發送指令到待配置節點進行配置,配置過程中的操作步驟與有線時類似。
3節點測試
3.1信號強度RSSI(ReceivedSignalStrengthIndication)是接收端的信號強度指示,可用來判定鏈接質量。實際應用中,普遍采用簡化后的Shadowing模型,即如下公式計算RSSI值。其中Pr(d)為接收端接收信號強度,Pr(d0)為參考處接收端接收信號強度,d為接收端與發送端實際距離,d0為接收端與發送端參考距離,n為路徑損耗指數,通常取2~4。取d0=1m,實測得Pr(d0)的值代入,并取n=3代入公式(1)得新的計算公式。實際測試中取兩個節點,分別設為協調器節點和終端節點。將協調器節點固定,令終端節點遠離,終端節點加入協調器節點網絡后,每隔1s發送一次數據到協調器節點。協調器接收到數據包后,從TI協議棧Z-Stack的數據結構afIncom-ingMSGPacket_t中提取RSSI值記錄下來。100M范圍每隔5M記錄一次RSSI值,每次記錄100個值,然后取100個中的隨機值和平均值分別作為本次終值繪制曲線。
3.1.1空曠環境下測得Pr(d0)=-28dbm,按照公式(2)與實際數據,繪制對比曲線。從圖9和圖10對比曲線可以看出,隨著兩節點間距離增大,RSSI值會逐漸衰減,符合一般規律。0-20m范圍內,RSSI衰減較快,之后較為平緩。40m后信號質量普遍較理論值平緩,可能是受硬件條件影響,誤差增大。圖9由于每次記錄取的隨機值,存在較大誤差,圖10每次記錄取100個數據的平均值,曲線較為平緩。誤差因素包括硬件設計、周邊環境影響等。
3.1.2危化品物流車輛環境下采用深圳市中集集團液化氣罐(空罐)危化品物流車輛進行實地測試,測試車輛長度14m,寬度2.5m。將協調器節點放置在車駕駛座,終端節點自由放置于車廂體內部,加入網絡并發送數據到協調器節點。測得Pr(d0)=-44dbm,根據公式(2)和實際數據的結果曲線如下:由圖11和圖12可以看出,在車輛環境下,節點信號普遍較空曠環境下差,這主要是因為接收節點被放進車輛箱體內部,信號一定程度上受到廂體衰減。大于40m距離后信號變得不穩定,通信斷續和重連情況發生頻繁,此時RSSI值普遍>82dbm,80m后多次測試接收端均接收不到數據。
3.2數據傳輸將協調器節點放置在車駕駛座,終端節點自由放置于車輛廂體內部,加入網絡并發送數據到協調器節點。在協調器端統計接收數據包個數,并計算丟包情況和最大穩定通信距離(即數據通信情況良好,極少發生重連情況),結果如下。由表3可以看出,主節點在車駕駛室情況下,車正前方和側面信號要好于車后方信號,節點丟包率較低,通信距離>=25M,滿足一般危化品物流車輛要求。另外,通信的最大穩定傳輸RSSI值是極少斷網重連情況發生下的統計值,所以普遍低于信號強度曲線中的極限值。隨著距離增大,節點間的網絡傳輸也會變得不穩定,常常發生斷網重連,甚至無法重連狀況。實際數據包傳輸受節點間不同阻擋物、不同車型、車體電磁干擾、程序執行等因素影響。
3.3功耗通過萬用表、示波器和在程序中設計測試模塊的結合進行功耗測試,測試結果如下。從表4的測試結果可以看出,節點滿足低功耗要求,休眠情況下,節點功耗低至0.33uA。
4結語
系統框架設計
林業資源監管通用數據采集系統采用C#語言、ArcEngine和開普互聯智能表臺進行設計開發。系統分為B/S架構的Web配置系統和C/S架構的桌面系統兩部分,如圖1所示。這種設計方式基于:1)B/S架構已成為林業業務系統的主流架構,借助配置系統以便將通用數據采集系統與業務系統進行集成;2)使桌面系統可以專注于數據采集,實現與業務流程、功能的松散耦合。Web配置系統包括數據交換以及桌面系統的配置管理功能模塊,支持本地和遠程配置方式。數據交換通過將事先制作完成的支撐數據提供給桌面系統,作為各業務數據采集系統運行的基礎,并將采集完成的數據返回數據庫,提供給其他業務系統使用。配置管理支持對采集數據、支撐數據以及桌面系統功能界面的配置,并將配置結果保存在XML配置文件中,作為桌面業務系統運行的基礎。通過配置系統為桌面系統提供支撐數據并進行相關配置,就可以為不同業務定制數據采集系統。桌面系統包括通用功能元件、業務系統配置、動態數據的管理以及界面的生成4個功能模塊。通用功能元件包含數據采集的一般功能。業務系統配置提供配置內容的讀寫功能。動態數據管理根據配置實現對不同業務支撐數據的訪問、更新以及采集數據的導出。界面生成根據配置信息生成特定于業務的系統界面。桌面系統框架采用變種MVC模式(模型--視圖--控制器),該模式采用數據驅動設計[9],使得視圖、控制器和模型可以隨業務而變。在數據層,空間數據與屬性數據分表存儲,空間數據表只存儲與業務無關的圖形信息,從而能以統一的形式訪問、處理及顯示空間數據,不受業務變化的影響。而與業務緊密相關的屬性數據單獨存儲在屬性表中,并將與屬性數據相關的視圖、控制器及模型的變化存儲在用開普互聯智能表臺制作的表單文件、數據映射文件中,系統在運行時就可以基于表單文件、數據映射文件及配置文件動態地構建視圖、控制器及模型,從而將業務數據的變化隔離在源代碼之外,使源代碼高度內聚,不會變異。由于兩類數據的處理方式不同,數據間的完整性通過邏輯校驗來保證。
關鍵技術及實現
林業資源監管通用數據采集系統采用的關鍵技術包括智能配置、界面自動生成和動態數據管理技術。
1智能配置技術
智能配置技術是指將與業務相關的變化信息存儲在配置文件中,系統在運行時讀取配置文件,根據其中的信息實現對不同業務數據采集功能的定制。當業務數據采集需求發生變化時,僅需通過改變配置信息就能滿足需求,這樣既增加了系統的靈活性,又能保持系統的穩定。數據采集系統通過配置系統實現智能配置,主要包括系統配置、采集數據配置兩方面。(1)系統配置。系統配置包括支撐數據、用戶功能界面配置兩部分。支撐數據的配置內容包括數據版本號,采集人員的賬戶信息及該賬戶關聯的業務名列表,支撐數據中各數據名稱、類型、對數據操作的命令和命令狀態列表。版本號為自然數值,作為數據是否需要更新的依據;業務名列表的形式為“Reforestation/造林,Harvesting/采伐”,前面是業務系統的英文名,后面是對應的中文名,之間用反斜杠隔開,指明賬號可以使用的數據采集系統;數據名稱為數據文件的名稱,類型包括數據庫、表和普通文件。命令指明了如何處理數據,包括覆蓋、更新、添加、刪除4種。命令狀態包括已執行或未執行,決定系統是否執行命令。用戶功能界面配置內容包括功能元件、邏輯驗證規則和表單配置。功能元件和邏輯驗證規則的配置目標可以是單個圖層或整個系統。功能元件的狀態包括可見、隱藏、可用與禁用,當不需要使用某項功能時,根據功能元件的名稱將其狀態設置為隱藏或禁用即可。邏輯驗證規則的配置內容包括SQL語句及其描述,通過執行SQL語句進行驗證;SQL語句的執行方式不隨業務變化,規則的描述為界面上呈現給用戶的信息,如地類檢查。表單的配置目標是圖層,包括圖層名、表單文件名及其描述,通過將圖層名和表單文件名配對存儲,就能根據圖層找到對應的表單進行屬性數據的錄入,描述為用戶界面上呈現給用戶的信息,如造林模式表。(2)數據配置。采集數據的配置包括需要導出的數據版本號、表名稱、數據記錄主鍵序列以及其他數據文件的名稱。數據版本是自然數值,作為外界是否需要下載該數據的依據。系統根據數據名稱和主鍵序列導出數據。
2功能界面自動生成
功能界面自動生成以功能元件為基礎,通過建立配置文件完成用戶界面的按需定制。(1)系統功能元件。系統是功能元件的集合,功能元件可能是單個功能或一類功能,如圖形創建是單個功能,圖形編輯是一類功能,在界面上表現為單個控件。本文使用功能元件名稱、控件名稱、功能狀態及功能描述來表達功能元件。對于用戶而言,只需配置功能名稱及狀態來控制功能界面。系統功能元件信息存儲在XML文檔中,該文檔需要按照模板文件制作,配置系統解析該XML文檔,并在界面上列舉出功能元件列表供用戶配置。(2)界面生成算法。數據采集系統中涉及界面變化的模塊主要包括:1)空間編輯和拓撲校驗界面。該界面因功能是否需要使用而變化。2)屬性編輯界面。該界面隨數據內容和結構而變化。3)邏輯校驗界面。該界面隨校驗規則內容而變化。界面自動生成以功能元件及系統配置文件為基礎,通過解析配置文件動態生成用戶界面,生成流程如圖2所示。3個界面的生成算法各有不同。空間編輯和拓撲校驗界面的生成是根據配置對WindowsForm控件的可見性和可用性進行控制來實現的;屬性編輯界面的生成是通過加載開普互聯智能表單文件到WindowsForm窗體中來實現的,開普互聯智能表單界面如圖3所示;邏輯校驗界面的生成是通過加載驗證規則到WindowsForm窗體中的列表控件中來實現的。
3動態數據庫管理
動態數據庫是結構和數據都可以隨需要而變化的數據庫[10--11],在本文中是指整個數據庫的改變。數據采集系統以單一業務配置為基礎,每個采集人員配備獨立的設備和采集系統,但在人力和設備資源有限的情況下,數據采集系統需要支持多個業務的數據采集或多個采集人員共用一套設備和系統。系統需要根據業務、人員職責調用不同的支撐數據。解決方案為:建立以采集人員賬號名和業務名組合命名的文件夾,通過配置系統將不同的支撐數據放到對應的文件夾內。當用戶登錄系統時,系統依據賬號列出可操作業務,采集人員從中選擇業務名稱,系統就可以將正確的支撐數據供給用戶使用。
4數據交換
數據交換包括支撐數據的上傳及采集數據的下載,使用配置系統完成,交換的數據放在該系統目錄下。支撐數據的上傳有2種情況:1)采集系統的定制。將所有支撐數據以添加命令上傳,桌面系統運行時會判斷是否存在數據,如果不存在數據,就會從配置系統目錄拷貝數據到本系統目錄,結合這些數據形成特定于業務的采集系統。2)部分支撐數據的變更。將部分支撐數據以添加、刪除、更新3種命令之一上傳,桌面系統運行時檢查配置系統目錄下的數據版本號,如果版本號小于配置系統目錄下數據版本號,就按照配置的命令進行更改。數據采集完成并通過校驗后,由桌面系統將數據導出并壓縮,然后拷貝到配置系統目錄。每導出一次數據都會累加版本號,系統用戶根據版本號下載最新的采集數據。
1.1系統的整體結構設計整個系統采用了模塊化的設計,各模塊布局合理,整體的結構緊湊。主要功能是數據的傳輸和程序下載,USB轉TTL模塊的作用是給單片機供電以及上位PC機和下位單片機之間的電平轉換,其原理圖如圖1所示。單片機與PC機是使用USB轉TTL模塊進行串口通信,它可以將USB虛擬成一個串口,解決筆記本電腦用戶無串口的煩惱。此模塊傳輸速度、傳輸準確性都滿足實驗需求,而且價格便宜,使用方便。
1.2系統各部分的功能介紹模擬信號采集部分的目的是為了采集所需要的原始的數據,即本系統中所需要的電壓和電流。下位機以AT89C52RC單片機為控制單元,16路A/D轉換芯片AD7705采集電壓和電流信號轉換為相應的數字信號,便于單片機后續的處理并以一定的協議將數據通過串口發送至PC機,最終通過運行在上位PC機的程序對接收到的數字信號進行處理和顯示。微控制器STC89C52RC以一定的的協議將數據通過串口發送至PC機。單片機的晶振電路和復位電路是單片機正常工作的先決條件。PC機通過串行USB轉串口接收單片機發送的數據,并進行實時處理和顯示。
2系統硬件部分設計
2.1MCU芯片的選擇STC89C52RC單片機是宏晶科技推出的新一代高速、低功耗和超強抗干擾的CMOS8位微控制器,采用經典的MCS-51內核,指令代碼完全兼容傳統8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。工作電壓:5.5~3.3V(5V單片機)/3.8~2.0V(3V單片機)工作頻率范圍:0~40MHz,相當于普通8051的0~80MHz,實際工作頻率可達48MHZ,用戶應用程序空間為8k字節。
2.2A/D轉換器選擇及采樣設計模數轉換器,是把經過與標準量(或參考量)比較處理后的模擬量轉換成以二進制數值表示的離散信號的轉換器,簡稱ADC或A/D轉換器。本系統模數轉換器采用的是芯片AD7705,AD7705是AD公司推出的16位Σ-ΔA/D轉換器,該轉換器采用SPI兼容的三線串行接口,能夠方便地與各種微控制器和DSP連接,也比并行接口方式大大節省了CPU的IO口,能直接將傳感器測量到的多路微小信號進行AD轉換。這種器件還具有高分辨率、寬動態范圍、自校準、優良的抗噪聲性能以及低電壓低功耗等特點,非常適合儀表測量、工業控制等領域的應用[7]。本系統是采集兩路信號(電壓和電流),AD7705芯片精度為16位(Δ=(5/65536)V≈0.076mV,其精度滿足實驗需求),高精度A/D轉換芯片AD7705有兩個雙端模擬信號輸入通道,分辨率為16位無丟失代碼,增益、信號極性以及更新速率等可由軟件設置[8-10]。片內可編程增益放大器的增益范圍為1~128,這使AD7705可與多種傳感器直接相連,無須外接放大器,并且內置可編程的自校準電路,通過對零點和滿度的校準,可有效去除零點漂移和增益誤差的影響。接口為SPI串行總線,因而與單片機的接線大大減少,簡化了硬件的設計。在測量電流時,我們對兩種實驗方案進行了比較,第一種是利用電流變送器進行電流的測量;第二種是利用采樣電阻進行電流的測量。采用了第二套方案,原因是其價格低、精度滿足實驗要求。
3系統軟件部分的設計
PC端主程序框架如圖2所示。
3.1數據采集PC端軟件設計PC端軟件是基于MFC對話框進行程序的編寫,其主要包括以下幾部分:1.窗口界面的繪制(包括開始界面繪制、控件繪制、坐標系繪制、網格繪制、LIST表格繪制等);2.串口通信控件的連接、初始化和設置;3.數據庫的嵌入(包括數據庫的連接、讀寫、修改等);4.采集數據時的動態響應(包括動態圖形繪制、動態數據表數據顯示等)。
3.2界面介紹首先是開始界面,如圖3所示。1.菜單欄區域:包括串口設置、開始采集、暫停、停止采集(同時關閉串口)四部分是本程序所有功能的體現;2.繪圖區域:包括兩個TABLE,一個是勵磁電流不變、勵磁電流變化兩個子窗口。每個窗口中包含一個二維坐標系進行圖形的繪制;3.數據表區域:包含一個LIST控件,對實時采集的數據進行顯示;4.系統控制區域:與菜單欄區域功能相同,都是對采集整個過程進行控制,同時能夠實時的對數據進行一個顯示、也能夠對偏差的數據進行手動刪除,避免實驗錯誤對繪制出的圖像造成的影響,而影響實驗效果。根據端口信息,選擇串口端號,點擊打開串口后,綠燈變為紅燈,打開串口按鈕變為灰色,表示串口已經連接,可以進行串口通信(即采集可以開始)。選擇兩種模式,“勵磁電流不變”、“勵磁電流變化”,并點擊進入相應的子窗口。然后就可以進行采集。傳輸電流電壓時,圖像會實時顯示,數據表也會同時顯示。圖5顯示了勵磁電流不變時,工作電流和霍爾電壓之間的關系曲線。
4結論
硬件設計包括溫度與磁場探頭、供電電源、多通道數據采集儀器、PC上位機的選型以及機柜設計。
1.1溫度檢測溫度探頭類型為熱電阻,熱電阻測溫原理是給熱電阻通小電流,測量電阻上的電壓,得出熱敏電阻的阻值,對照熱敏電阻的參數曲線得出溫度。溫度探頭需要恒流源提供穩定的電流才可以保證讀取電壓的準確性,選擇lakeshore公司生產的121系列恒流源可滿足精度要求。該恒流源既提供固定檔位電源供電也可以通過編程實現連續可調電流輸出。由于超導線圈采用過冷液氮浸泡冷卻[2],根據液氮溫區(70K~77K)對探頭型號進行選擇。對于需要在30K~800K之間對溫度測量的場合,可選擇PT100系列鉑電阻溫度計[3],其額定電流為1mA。在這個溫度范圍內,鉑電阻溫度計具有很好的重復性和較高靈敏度,同時滿足在電抗器的磁場環境下使用的要求。70K以上鉑電阻溫度計具有通用的標準曲線,如圖2所示。相比較于其他種類溫度探頭具有更好的通用性,而且具有互換性。另外,在溫度測量中,探頭需要貼近超導帶材,薄膜型的鉑電阻溫度計滿足設計要求。探頭的接線方式有二線制和四線制。采用二線制接線方法,會引入線路電阻,造成測量誤差。因此在35kV電抗器的數據采集系統中,均采用四線制接線方法。
1.2磁場檢測測量磁場強度的原理是霍爾效應,在半導體薄片兩端通以控制電流,并在薄片的垂直方向施加勻強磁場,則在垂直于電流和磁場的方向上,將產生霍爾電壓,根據產生的電壓就可以知道磁場的大小[4]。在實際測量中需要在兩個方向(軸向場與垂直場)對磁場進行測量。在35kV電抗器設計中,根據電磁設計仿真得到磁場的最大值約為2000高斯,并且該磁場探頭的工作環境為液氮溫區。Lakeshore公司生產的HGCA3020的軸向磁場探頭與HGCT3020的徑向磁場探頭,可滿足使用要求,其額定電流為100mA。
1.3數據采集系統數據采集系統還需要對探頭電壓進行記錄以及處理顯示等一系列后續工作[5]。實驗過程中實驗對象需要監測的信號比較多,采用數據采集儀器對各個數據進行采集記錄,節約人力成本而且可以減少由于人工錄入所導致的錯誤。在該套數據采集系統中,采集的信號有54路,溫度采集精度為1K,電壓精度為10mV。吉時利公司生產的3706數字開關萬用表作為數據采集儀器滿足使用要求。數據采集儀器采集數據以后,把數據傳輸到主機中通過程序對其進行處理,然后顯示在顯示器上供人員監測電抗器的工作情況。在電抗器實際運行過程中,主機工作環境可能較為惡劣,對工控機的穩定性和數據的安全性有一定要求,需要對主機進行加固、防潮、防輻射、防塵等特殊設計。研祥工控機IPC-810E滿足使用要求。
1.4硬件布局及搭建(1)溫度探頭布點方案35kV超導可控電抗器超導線圈分為內外兩圈,各由32個雙餅組成。工作在交流工況下,超導線圈存在交流損耗,根據仿真結果顯示端部線圈交流損耗功率最大,需要對線圈端部重點監控。單個超導線圈上布點25個,總計50個鉑電阻。鉑電阻在安裝時需要對其進行加固,防止被快速流動的液氮損壞。(2)磁場探頭布點方案電抗器中,帶材受垂直磁場影響較大,端部的帶材最易受到磁場的干擾,磁場探頭安裝在電抗器的端部。由于磁場探頭受到液氮的沖刷,磁場探頭需要通過夾子進行固定。通過對端部磁場兩個垂直方向數據的讀取,得到磁場強度的實時數據,為監測電抗器運行狀態提供數據支持。各個設備的集成布局以及安裝需要以機柜的形式實現。機柜的設計原則是整套裝置的實用性和外在的美觀性。機柜上主要安裝的設備和儀器有:吉時利3706數據采集儀、工控機(包括工控機主機、液晶顯示屏、鍵盤和鼠標)、探頭供電電源,同時在機柜下部預留一部分空間用于放置實驗過程中常用的一些工具和儀表等,如納伏表、波形記錄儀、鎖放和功率分析儀等,設計方案如圖4所示。
2軟件開發
軟件開發即控制界面開發,通過界面控制各種數據采集儀器的工作,并將采集到的數據傳輸到電腦上進行處理、顯示和保存等[6]。圖5所示的為軟件搭建流程示意圖,首先調試設備,完成工控機與3706數據采集儀器之間的通信,使數據能夠進入主機進行處理,然后對數據進行分類處理,實現多通道數據處理以及數據的分類顯示。基于LabVIEW開發的程序主要包含后臺程序以及操作界面。后臺程序(1)數據采集系統主程序數據采集系統主程序實現對數據采集儀器中的電壓數據讀取的功能[7]。通過在主程序中對數據進行通道選擇可以實現不同的處理功能,包括3706儀器的通訊設置和數據初始化。(2)數據傳輸程序數據傳輸是指將數據從數據采集儀器上傳輸到工控機上。LabVIEW中提供了多種通訊協議,如串口、并口和以太網傳輸協議,此處選擇以太網作為傳輸方式,數據采集儀器發送數據,工控機接收發送過來的數據,進行處理。(3)數據記錄程序LabVIEW中可以將數據保存為多種格式,其中就包括常見的Excel表格,“寫入電子表格.vi”可以將數據保存為Excel格式,并且該VI不需要啟動Excel,寫入速度較快、使用較為簡單,所以使用該VI進行數據保存。由于EXCEL是目前比較通用的數據處理軟件,所以保存數據的格式選為EXCEL表格,方便處理數據。程序中可以設定將EXCEL文件保存在某個文件夾下,分別將磁體溫度、磁場強度保存在兩個文件夾下,并且為方便查找數據,每個文件的文件名以日期和時間命名,這樣方便日后查找數據。對于不同類型數據也可以直接分開存儲,方便以后查詢使用。在以上程序的實現中,主要以子VI形式完成。子VI是指將特定的程序封裝,完成特定的功能的模塊。通過對程序的封裝既可以實現原有功能,并且使得主程序更加簡潔,便于查找錯誤,又增加了程序的可移植性,提高了程序的整體質量。操作界面該系統的操作界面首先確保了所有數據的顯示以及后臺記錄,另外對電抗器內部環境參數(杜瓦內部壓強)以及外部輔助設備的工作狀態(液氮制冷機流量)也進行了監控。針對溫度監控,單獨設置了更加直觀的波形顯示,更利于觀察超導體的溫度變化,如圖6所示。在35kV電抗器數據采集及監控系統的設計方案中,界面中沒有需要用戶設置的參數,在前面板中分列鉑電阻顯示控件來顯示數據。開始運行后,3706開始采集數據,并且將這些數據儲存到表格當中。在前面板中,同一個波形圖中可以顯示多個通道的數據,每個通道的數據有顏色不同,這樣就可以比較實驗磁體不同部分的溫度或不同超導雙餅的電壓等。
3總結
信號調理電路根據功能分為輸入保護電路、抗混疊低通濾波電路、衰減電路、增益電路和電壓抬升電路。(1)輸入電壓幅值最高在24V,為防止輸入電壓超出可測范圍,在輸入端采用兩個24V的穩壓管支路進行電壓鉗位保護,并且分別在兩個支路串聯不同顏色的發光二極管以顯示正反向超壓。(2)為了消除高頻噪聲信號和被測信號中的高頻成分對信號采集的混疊效應,設計了二階低通抗混疊濾波電路。為保證較好的抗混疊效果和測量帶寬,設定濾波器的截止頻率為300kHz。濾波電路形式固定如圖2所示,其頻域傳遞函數為。由式可得濾波器的截止頻率fp≈0.64f0,fp=300kHz,得RC=3.4×10-7s。通過multisim仿真比較確定參數值。抗混疊低通濾波電路如圖2所示。(3)LM3S9B96的ADC的輸入電壓范圍是0V~3V,要實現采集0V~±24V的輸入信號需要對信號進行衰減處理,衰減網絡采用兆歐級精密電阻組成,其中固定電阻設定為1MΩ。這里選擇8,4,2,1四級衰減,后期處理的數據可以通過移位操作進行數據還原。電路實現選用OMRON公司G5V-1小信號繼電器作為開關控制,根據上位機傳輸的命令來選擇合適的電阻支路。具體的數值對應關系如表1所示。(4)為滿足采集小信號的需求,采用TI公司的增益可編程儀表放大器PGA205。PGA205具有四級數控增益,數控端直接連接到微控制器的I/O引腳[5]。輸入幅值、放大倍數和數控端的對應關系同上述衰減電路類似,這里不列表贅述。增益電路如圖3所示,PC4、PC5為數控端。(5)信號經過衰減和放大電路的調理后電壓范圍為0V~±3V電壓信號將信號調理至0V~6V范圍,再經過比例運算電路做1/2分壓處理。運放選擇TL052,是由TI公司生產的低失調加強型的JFET運算放大器,相對于TL07和TL08系列具有更快的轉換速度。
2電源供電系統
本文中需要三級電源供電:3.3V,5V,±10V。5V電壓通過SPX1117-3.3V穩壓芯片轉變為3.3V為系統供電,±10V要是給可編程放大器PGA205和運放TL052供電,該電壓需要5V電壓經過Boost升壓電路得到,設計選用TPS61040開關電源芯片,其為低功耗的DC/DCBoost轉換芯片,內部集成開關管,開關頻率可達1MHz,輸出電壓紋波低[6]。雙電源供電電路如圖4所示。
3系統軟件設計
本文軟件設計任務主要是LM3S9B96芯片的初始化和內部各模塊之間的邏輯控制,包括根據上位機的指令來設定調理電路。數據采集系統總的軟件任務框圖如圖5所示。信號調理任務負責根據上位機發出的指令完成調理電路的設定;采樣任務實現對模擬信號的采集;數據轉移存儲任務負責將數據從ADC轉移到內存,再轉移到USB緩存。數據轉移任務利用DMA來實現,DMA的工作模式分為基本模式、乒乓模式和外設散聚模式,為了ADC采集不丟失數據,本文采用了乒乓模式,在程序設計時創建主數據結構體和副數據結構體交替接收數據,高效的完成數據轉移任務;數據傳輸任務負責將數據從微控制器通過USB總線傳輸到上位機。USB總線標準是在1994年由英特爾、康柏、IBM、Microsoft等多家公司聯合提出,包含了四種基本數據傳輸類型:控制傳輸、批量傳輸、中斷傳輸和等時傳輸,本文需要向上位機傳輸大量數據,選擇批量傳輸模式(BULK)傳輸數據[7]。基于LM3S系列芯片,TI公司提供了多層次十分豐富靈活的USB驅動庫,簡化軟件的實現。
4上位機軟件設計
NIVISA(VirtualInstrumentSoftwareArchitecture)是NI公司開發的一種用來與各種儀器總線進行通信的高級應用編程接口,VISA總線I/O軟件是一個綜合軟件包,不受平臺、總線和環境的限制。VISA是NI公司隨LabVIEW配套提供的,從3.0版本開始支持USB通訊,根據是否符合USB測試和測量協議,VISA分為兩種VISA類函數,可以控制兩類USB設備:USBINSTR設備和USBRAW設備。這里使用USBRAW設備。利用VISA驅動程序開發向導產生INF文件用來通知Window系統將NI-VISA用作USB設備的默認驅動,完成之后才可以正常和下位機通訊。USBRAW類設備的讀寫時序為(1)ViOpen打開VISA設備;(2)ViProperty設定VISA設備的屬性節點參數(指令端點和傳輸方式);(3)ViRead讀寫USBRAW(發送命令和設定字數);(4)ViClose關閉VISA(釋放VISA設備所占資源)。上位機程序總體分為指令接受程序,數據接受程序、數據處理程序和波形顯示程序。數據處理程序框圖如圖6所示。
5系統測試與結果
為了測試系統的可靠性,本文使用數字合成信號發生器DF1405模擬傳感器輸出信號作為數據采集系統的測試信號。經測試,設計系統完整實現了設計要求。5V10kHz正弦波測試結果如圖7所示,通過點擊Save控件可以完成數據的存儲。
6結束語
云定制的使用方便大批量采集控制服務器的集中管理,尤其在批量采集策略變更時為集中更改提供便利。廣播電視音視頻采集廣泛分布在各無線頻段和有線網絡之中,采集種類多,數據存在差異,采集地域分布廣,通過專網將采集前端設備、集中控制服務器等連接起來,并反饋給數據處理服務器。云定制屏蔽了采集前端設備的差異性、分散性,將其集中在同一個云之中,實現定制服務的遠程控制和自由變更。如圖3所示。
通過架設云定制服務器Web服務端作為云端,依靠B/S系統結構,使用者僅需在專網之中使用任意一臺計算機設備即可連接云端,進而連接所有采集前端,其優點主要體現在無需安裝軟件,便可通過瀏覽器登陸廣播電視音視頻采集云定制系統,對所有前端設備、控制服務器進行操作。云定制服務器基于C#語言,基于Socket通信協議編寫通信模塊,與前端采集控制軟件通信,接收并匯總采集端控制軟件返回的結果,下發采集服務定制的命令至采集端控制軟件進行變更操作,并預留二期開發接口,方便其他系統對云定制切換服務的調用。采集集中控制服務器與采集前端系統通過采集端控制軟件接收來自云端的命令,并反饋采集狀態與命令執行狀態,執行云端下發的采集策略,變更采集方案,實現所有廣播電視音視頻數據按需分類、分時采集。軟件測試階段,發現前期測試始終存在指令丟失的情況,后經反復測驗,發現本策略對網絡時間同步、數據可靠傳遞要求較高,需要引入GPS校時系統,以解決網絡設備時間不統一的問題。在自動切換策略時間的過程中,專網網段采用統一的GPS校時服務器,并在采集端C/S軟件嵌入校時功能,確保整個網絡內設備時間一致。同時對Socket通信數據進行編碼校驗,采用8位2進制數順序累加做校驗,一旦校驗失敗便啟用數據重傳機制,確保數據傳輸穩定、可靠,無指令數據丟失或錯亂。指令收到后,返回執行狀態,以使云端準確收到各設備采集端切換策略的執行情況。
2自動切換策略的實現
在實際應用中,廣播電視音視頻采集策略會根據業務需求變化,業務需求又分為周期性變化與臨時性非周期變化。云策略變更的命令下發后,采集集中控制服務器接收采集前端的命令,并將采集策略轉化為采集指令,根據采集策略規定的時間啟用或停止某一類廣播電視音視頻數據采集。同時使用C#Process類對采集服務進程進行實時監測,以掌握采集命令執行是否成功,采集端進程是否正常啟用或者關閉,并將所有進程終止與啟動情況記入前端log文件,并階段性回收至云端數據庫。前端采集服務存在一定的差異性,硬件不同,驅動不同,使用C#語言,依托不同硬件的DLL封裝文件,將采集服務最小分割,并打包存儲,由采集端控制軟件集中調用。在采集集中控制服務器存儲config配置文件,將周期性、預期性采集策略的變更存儲其中,依靠定時器觸發采集策略的變更,實現自動切換采集策略。采集策略一旦變更,需要對采集數據進行抽樣測試,如發現數據開啟采集仍未回傳、數據關閉采集仍有回傳等切換失敗的情況,需要對采集進程進行2次校驗操作,即回復之前策略,校驗數據采集狀態,再重新執行采集切換策略。
3采集狀態實時監測、記錄與預警
廣播電視音視頻采集對實時性與采集質量要求很高,一旦因前端軟件或設備故障影響采集,勢必影響下游業務,因此需在采集前端控制軟件中增加監測、記錄與預警的功能,對采集進程實時監控,一旦采集進程卡死或進程終止,需立即激活采集服務重啟響應采集任務。同時將所有采集狀態通過Socket通信反饋至云端服務器,云端服務器將所有采集設備的運行狀態計入數據庫中,形成采集狀態記錄并報警,便于對采集前端的設備軟件故障進行及時處理,同時也有利于積累長期的采集數據,用于日后數據匯總分析。在測試中發現,采集策略切換失敗主要由前端C/S軟件通信數據堵塞、軟件卡死、內存溢出、config配置文件讀寫錯誤等問題引起,一般重啟前端軟件后即可恢復正常。多次測試發現,廣播電視音視頻數據采集量大,采集時間長,設備一直滿負荷運轉,因此需要對前端軟件定時重啟。后期完善中,增加采集端軟件進程監視模塊,并在每天23:59:59對前端軟件自重啟,對16臺前端設備分組測試,累計測試7天,A組使用定時重啟功能,B組不使用該功能,測試結果表明,A組7天內未發生切換失敗故障,B組7天內仍有2次切換故障,故引入定時重啟可確保軟件運行正常。
4總結
關鍵詞:MCF5249uClinuxWeb數據采集
引言
現在嵌入式系統的應用越來越廣泛。隨著網絡技術發展和市場需求的變化,工業設備實現網絡化管理控制已經成為一種必然趨勢。M2M(MachinetoMachine)的網絡通信已成為國內外研究熱點,而Web技術為工業設備實現網絡化管理提供了一種解決方案。本文從硬件和軟件設計兩個方面討論了摩托羅拉MCF5249處理器在數據采集方面的應用,并實現了采集數據的遠程Web表征。
由于這一系統面向廣義的過程,所以只要可獲得過程參數,就能實現過程行業的遠程在線表征。特別是基于Web完成實時數據庫生成,真正實現遠程集群系統的數據資源無人工干預自動獲取。其應用將會不斷地延伸。
本文描述的摩托羅拉MCF5249是以ColdFire32位微處理器為基礎的高性能處理器,該處理器內部集成了一個片內12位ADC,可用于工業數據采集。且數據采集系統基于嵌入式操作系統uClinux。由于uClinux是為沒有MMU的微處理器設計的。且源泉代碼公開,為降低成本和獲取軟件的自有產權提供了方便。當然,uClinux不是一個強實時系統,為支持一般過程系統,可以通過一些補丁程序來提高其實時性,所以本文討論的數據采集系統主要應用于一些實時性要求不高的場合。
1數據采集系統的硬件設計
摩托羅拉MCF5249處理器內部集成了一個片內12位∑—ΔADC,它有四路輸入(ADIN0~ADIN3),任一時刻只允許一路輸入,由多路選擇器決定。ADC的數字部分在MCF5249的內部,而模擬電壓比較器由電路提供。A/D轉換的輸出引腳以脈寬調制的格式提供參考電壓,因此,該輸出需要一個的阻容電路,將其轉換成直流電壓,以備外部的電壓比較器電路使用。數據采集系統的硬件原理圖如圖1所示。
由于微處理器不可承受負電壓,所以必須將輸入電壓限制在0~+3V之間。Motorola公司不建議使用外部箝位二極管直接在模擬輸入端進行過壓保護,而在輸入端引入1~10kΩ的限流電阻和低通濾波器,在低通濾波器的輸入端連接二極管對輸入電壓進行箝位。
2數據采集系統的軟件設計
數據采集系統的軟件設計主要分為兩大模塊,即數據采集模塊與數據顯示模塊。
2.1數據采集模塊的設計
數據采集模塊是系統的核心模塊,為了提高數據采集的實時性,應采用中斷方式完成數據采集。其流程圖如圖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系統總線時鐘頻率。當時鐘產生4095次翻轉時,系統產生一個軟件中斷(中斷號為63)。一次采樣結束,并將采樣結果存于ADVALUE寄存器(其地址為MBAR2_ADDR+0x406)。A/D轉換值可以用如下公式計算:
Vi=(X/(2n-1))×Vfullscate
其中,Vi為ADC的輸入電壓;Vfullscate為滿量程輸入電壓;
X為ADC輸出的數字量;
n為ADC的位數。
A/D轉換的結果在中斷處理程序中讀取。讀取一次轉換的程序代碼如下:
Volatileunsignedshortintm;
m=*(volatileunsignedshortint*)(MBAR2_ADDR+AD_VALUE);
通常,A/D轉換需要連續采樣。采樣結果應存放在一個多訪問循環隊列MACQ(MultipleAccessCircularQueue)中。
MACQ是一個定長有序的數據結構。源進程(生產者,ADC采樣程序)將數據存入MACQ,一旦初始化,MACQ總是滿的。當有新的數據被存入(PUT)MACQ,舊數據即被丟棄(如圖3)。應用進程(消費者)可以從MACQ中讀取任何數據。讀功能是非破壞性的,即讀操作不會改變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
/*定義中斷處理函數*/
voidadirq_interrupt(intirq,void*d,structpt_regs*regs){
在此讀取A/D轉換的值并存入隊列中。
}
/*設備初始化函數*/
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數據顯示模塊的設計
為了實現采集到的數據以Web方式顯示,需要選擇一個Web服務器。本文采用的Web服務器是BOA。在CGI程序中編寫一個函數讀取MACQ隊列中的數據并顯示。
主要有以下顯示模塊。
(1)編寫一個CGI程序
*編寫一個讀取MACQ隊列中數值的函
readFromMacq()。
*編寫一個生成動態HTML頁面的函數show()。
Voidshow_t(){
……
printf("Content-type:text/html");
prinft{"
<html>
<head>
<metahttp-equiv=pragmacontent=no-cache><metahttpequiv=expirecontent=now>
<title></title>
</head>
<body>");
在此將MACQ中的數據讀出,假設值賦給變量n
prinft("<center")Thevalueis%x!</center>
</body>
</html>",n);
}
*編寫一個CGI的主程序main_cgi。
在主程序中需要讀取HTML頁面中的字符,并判斷應執行那一個CGI程序。
(2)用HTML語言編寫一個主頁
在主面中應包含:
<ahref=/cgi-bin/main_cgi.cgi?flag=10target=main>鍵接字符</a>.
其中,flag的值是main_cgi用于判斷應執行哪一個CGI程序的標志。
關鍵詞:USBRS485數據采集
在工業生產和科學技術研究的各行業中,常常利用PC或工控機對各種數據進行采集。這其中有很多地方需要對各種數據進行采集,如液位、溫度、壓力、頻率等。現在常用的采集方式是通過數據采集板卡,常用的有A/D卡以及422、485等總線板卡。采用板卡不僅安裝麻煩、易受機箱內環境的干擾,而且由于受計算機插槽數量和地址、中斷資源的限制,不可能掛接很多設備。而通用串行總線(UniversalAerialBus,簡稱USB)的出現,很好地解決了以上這些沖突,很容易就能實現低成本、高可靠性、多點的數據采集。
1USB簡介
USB是一些PC大廠商,如Microsoft、Intel等為了解決日益增加的PC外設與有限的主板插槽和端口之間的矛盾而制定的一種串行通信的標準,自1995年在Comdex上亮相以來至今已廣泛地為各PC廠家所支持。現在生產的PC幾乎都配備了USB接口,Microsft的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系統都增加了對USB的支持。
1.1USB系統的構成
USB系統主要由主控制器(HostController)、USBHub和USB外設(PeripheralsNode)組成系統拓撲結構,如圖1所示。
1.2USB的主要優點
·速度快。USB有高速和低速兩種方式,主模式為高速模式,速率為12Mbps,另外為了適應一些不需要很大吞吐量和很高實時性的設備,如鼠標等,USB還提供低速方式,速率為1.5Mb/s。
·設備安裝和配置容易。安裝USB設備不必再打開機箱,加減已安裝過的設備完全不用關閉計算機。所有USB設備支持熱拔插,系統對其進行自動配置,徹底拋棄了過去的跳線和撥碼開關設置。
·易于擴展。通過使用Hub擴展可撥接多達127個外設。標準USB電纜長度為3m(5m低速)。通過Hub或中繼器可以使外設距離達到30m。
·能夠采用總線供電。USB總線提供最大達5V電壓、500mA電流。
·使用靈活。USB共有4種傳輸模式:控制傳輸(control)、同步傳輸(Synchronization)、中斷傳輸(interrupt)、批量傳輸(bulk),以適應不同設備的需要。
2采用USB傳輸的數據采集設備
2.1硬件組成
一個實用的USB數據采集系統包括A/D轉換器、微控制器以及USB通信接口。為了擴展其用途,還可以加上多路模擬開關和數字I/O端口。
系統的A/D、數字I/O的設計可沿用傳統的設計方法,根據采集的精度、速率、通道數等諸元素選擇合適的芯片,設計時應充分注意抗干擾的性能,尤其對A/D采集更是如此。
在微控制器和USB接口的選擇上有兩種方式,一種是采用普通單片機加上專用的USB通信芯片。現在的專用芯片中較流行的有NationalSemiconductor公司的USBN9602、ScanLogic公司的SL11等。筆者曾經采用Atmel公司的89c51單片機和USBN9602芯片構成系統,取得了良好的效果。這種方案的設計和調試比較麻煩,成本相對而言也比較高。
另一種方案是采用具備USB通信功能的單片機。隨著USB應用的日益廣泛,Intel、SGS-Tomson、Cypress、Philips等芯片廠商都推出了具備USB通信接口的單片機。這些單片機處理能力強,有的本身就具備多路A/D,構成系統的電路簡單,調試方便,電磁兼容性好,因此采用具備USB接口的單片機是構成USB數據采集系統較好的方案。不過,由于具備了USB接口,這些芯片與過去的開發系統通常是不兼容的,需要購買新的開發系統,投資較高。
USB的一大優點是可以提供電源。在數據采集設備中耗電量通常不大,因此可以設計成采用總線供電的設備。2.2軟件構成
Windows98提供了多種USB設備的驅動程序,但好象還沒有一種是專門針對數據采集系統的,所以必須針對特定的設備來編制驅動程序。盡管系統已經提供了很多標準接口函數,但編制驅動程序仍然是USB開發中最困難的一件事情,通常采用WindowsDDK來實現。目前有許多第三方軟件廠商提供了各種各樣的生成工具,象Compuware的driverworks,BlueWaters的DriverWizard等,它們能夠很容易地在幾分鐘之內生成高質量的USB的驅動程序。
設備中單片機程序的編制也同樣困難,而且沒有任何一家廠商提供了自動生成的工具。編制一個穩定、完善的單片機程序直接關系到設備性能,必須給予充分的重視。
以上兩個程序是開發者所關心的,用戶不大關心。用戶關心的是如何高效地通過鼠標來操作設備,如何處理和分析采集進來的大量數據,因此還必須有高質量的用戶軟件。用戶軟件必須有友好的界面,強大的數據分析和處理能力以及為用戶提供進行再開發的接口。
3實現USB遠距離采集數據傳輸
傳輸距離是限制USB在工業現場應用的一個障礙,即使增加了中繼或Hub,USB傳輸距離通常也不超過幾十米,這對工業現場而言顯然是太短了。
現在工業現場有大量采用RS-485傳輸數據的采集設備。RS-485有其固有的優點,即它的傳輸距離可以達到1200米以上,并且可以掛接多個設備。其不足之處在于傳輸速度慢,采用總線方式,設備之間相互影響,可靠性差,需要板卡的支持,成本高,安裝麻煩等。RS-485的這些缺點恰好能被USB所彌補,而USB傳輸距離的限制恰好又是RS-485的優勢所在。如果能將兩者結合起來,優勢互補,就能夠產生一種快速、可靠、低成本的遠距離數據采集系統。
這種系統的基本思想是:在采集現場,將傳感器采集到的模擬量數字化以后,利用RS-485協議將數據上傳。在PC端有一個雙向RS-485~USB的轉換接口,利用這個轉接口接收485的數據并通過USB接口傳輸至PC機進行分析處理。而主機向設備發送數據的過程正好相反:主機向USB口發送數據,數據通過485~USB轉換口轉換為485協議向遠端輸送,如圖3所示。
在圖3的方案中,關鍵設備是485~USB轉換器。這樣的設備在國內外都已經面市。筆者也曾經用NationalSemiconductor公司的USBN9602+89c51+MAX485實現過這一功能,在實際應用中取得了良好的效果。
需要特別說明的是,在485~USB轉換器中,485接口的功能和通常采用485卡的接口性能(速率、驅動能力等)完全一樣,也就是說,一個485~USB轉換器就能夠完全取代一塊485卡,成本要低許多,同時具有安裝方便、不受插槽數限制、不用外接電源等優點,為工業和科研數據采集提供了一條方便、廉價、有效的途徑。
4綜合式采集數據傳輸系統的實現
現在的數據采集系統通常有分布式和總線兩種。采用USB接口易于實現分布式,而485接口則易于實現總線式,如果將這兩者結合起來,則能夠實現一種綜合式的數據采集系統。實現方法是:仍然利用上面提到過的USB~485轉換器實現兩種協議的轉換。由于USB的數據傳輸速率大大高于485,因此在每條485總線上仍然可以掛接多個設備,形成了圖4所示的結構,其中D代表一個設備。
這種傳輸系統適用于一些由多個空間上相對分散的工作點,而每個工作點又有多個數據需要進行采集和傳輸的場合,例如大型糧庫,每個糧倉在空間上相對分散,而每個糧倉又需要采集溫度、濕度、二氧化碳濃度等一系列數據。在這樣的情況下,每一個糧倉可以分配一條485總線,將溫度、濕度、二氧化碳濃度等量的采集設備都掛接到485總線上,然后每個糧倉再通過485總線傳輸到監控中心,并轉換為USB協議傳輸到PC機,多個糧倉的傳輸數據在轉換為USB協議后可以通過Hub連接到一臺PC機上。由于糧倉的各種數據監測實時性要求不是很高,因此采用這種方法可以用一臺PC機完成對一個大型糧庫的所有監測工作。
5前景展望