《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM11的箱變監測系統
基于ARM11的箱變監測系統
來源:微型機與應用2013年第24期
洪 玲,邵平凡
(武漢科技大學 計算機科學與技術學院,湖北 武漢430065)
摘要: 針對箱式變壓器監控系統實現采集周圍環境溫度、濕度、局部放電量以及噪聲的目標,將ARM11與溫濕度采集模塊AM2301相結合,通過對基于ARM11嵌入式開發板驅動程序的編寫與加載,實現溫、濕度的采集。將溫度數據作為無線測溫模塊的定標數據,通過開發板的串口與無線測溫、局部放電和噪聲采集設備的通信來實現對輸配電線的溫度、變壓器局部放電量和噪聲的實時采集,最后通過網絡將實時采集的數據發送給監控中心。
Abstract:
Key words :

摘  要: 針對箱式變壓器監控系統實現采集周圍環境溫度、濕度、局部放電量以及噪聲的目標,將ARM11與溫濕度采集模塊AM2301相結合,通過對基于ARM11嵌入式開發板驅動程序的編寫與加載,實現溫、濕度的采集。將溫度數據作為無線測溫模塊的定標數據,通過開發板的串口與無線測溫、局部放電和噪聲采集設備的通信來實現對輸配電線的溫度、變壓器局部放電量和噪聲的實時采集,最后通過網絡將實時采集的數據發送給監控中心。
關鍵詞: 變壓器;AM2301;嵌入式;環境參數監測;網絡傳輸

    城市各居民區的箱式變電站是所轄區用戶安全用電的基本設施。隨著我國電網建設的發展,對供電系統的要求也越來越高。對箱式變電站環境和設備的監測,是保障變電站設備安全可靠運行的必要手段。傳統的遠程監測依靠串行總線來完成上位機與數字設備之間的通信,由上位機直接對數字設備進行控制。但這已經越來越顯示出它的局限性:成本較高、不易擴展等。嵌入式設備性能的提高及因特網的飛速發展,為這些問題提出了新的解決方案,文中設計了以嵌入式計算機、通信設備、測控單元和傳輸網絡為基本構成的監測系統,為變配電系統建立實時數據采集和數據傳輸,用監測結果作為對電力系統進行監控的依據,在電力監控系統中發揮了重要作用。
1 嵌入式箱變監測系統方案設計
    根據箱變監測環境指標的要求,該箱變監測系統應具有以下基本功能:
    (1)穩定可靠地采集各個環境指標數據;
    (2)對各環境指標數據的采集相對獨立,相互之間無干擾;
    (3)與監控中心實現可靠的網絡數據傳輸;
    (4)當系統出現故障時能夠自動重啟,確保系統長期可靠運行。
    根據箱變環境的監測需要,本系統采用體積小、功能強大的嵌入式開發板作為主要的硬件環境,與溫濕度檢測模塊、局部放電數據采集模塊和噪聲采集模塊相結合,并通過網絡與監控中心遠程通信來實現整個系統的功能,硬件總體結構如圖1所示。

2 開發板硬件介紹
    本系統選用Friendly ARM研制的Tiny6410開發板,其中核心板所用處理器是基于ARM11的S3C6410,板載資源有256 MB DDR RAM,2 GB SLC Nand Flash存儲器,底板還提供了LCD觸摸屏、USB接口、SD卡、3個通用異步串行口、網絡接口等功能支持。
3 軟件平臺
    嵌入式操作系統采用功能強大、多任務而且性能穩定的Linux操作系統,保障了良好的可裁剪和移植性,同時也便于對新增設備驅動程序進行移植開發。內核版本是Linux2.6.38,經實際檢測,該系統可在S3C6410硬件平臺上可靠運行。
    對硬件平臺上運行的程序進行編譯,需要在PC上建立交叉編譯環境,本次設計的交叉編譯環境建立在 Linux Fedora 15 操作系統上,使用arm-linux-gcc-v6作為交叉編譯器。交叉編譯產生的可執行文件和驅動程序模塊通過U盤存入嵌入式系統的閃存里。先通過insmod命令加載驅動程序模塊到操作系統內核中,再運行數據采集應用程序。
4 系統軟件設計
    本系統采用C語言編程,以多線程和模塊化的設計方法,可以使數據采集、控制輸出和系統通信同時進行[1],其主要流程如圖2所示。其中采集輸配電線溫度、噪聲和局部放電主要通過串口與設備通信來獲得數據。讀取環境溫、濕度則是應用程序通過Linux文件系統設備節點,驅動AM2301讀取溫濕度測量數據,最后將采集到的數據經過加工處理后,通過網絡傳送給監測中心。

4.1 看門狗設計
    看門狗程序模塊直接調用內核中已經存在的看門狗驅動程序,在應用程序中通過“/dev/watchdog”文件設備節點來進行訪問。使用ioctl()來設定看門狗定時器的時間,并及時進行喂狗操作。當因采集或傳輸等模塊發生故障而不能及時進行喂狗操作時,就會在達到設定時間后自動重啟開發板,開發板重啟后自動運行系統程序,達到長期自動運行的目的。
4.2 網絡傳輸設計
    網絡傳送數據根據實時性需要選擇了基于UDP協議的網絡傳輸。本系統采用單播——客戶機/服務器模型。為了提高系統的安全性,與監控中心商定了加密密文格式,只有當收到正確命令后才將采集的數據與加密內容發送給監控中心,提高了安全性。在網絡傳輸過程中,當創建套接字并綁定端口后,會一直處于監聽狀態,當接收到數據后,判斷是否為監控端發送來的數據,若是則發送采集的數據,回到監聽狀態,等下一次命令到來。
4.3 AM2301驅動設計
    AM2301數字溫濕度傳感器采用簡化的單總線通信協議,溫度的量程范圍為:-40 ℃~+80 ℃,濕度的量程范圍為:0%~100%RH[2]。3個引腳的功能如表1所示。本系統將DATA引腳接到S3C6410的GPE3,并通過5.1 kΩ上拉電阻與VDD連接后一起接到+5 V電源,將GND引腳接地即完成線路連接。

    本系統將AM2301作為一個字符設備進行驅動。在Linux中,字符設備驅動是以文件的形式進行管理,其驅動需要完成打開、讀寫等類似針對文件的功能操作,而且可以通過在/dev目錄下的文件系統設備節點進行訪問[3]。字符設備驅動程序主要由字符設備加載與卸載函數和字符設備驅動file_operation結構體中的成員函數組成并通常至少要實現open、write、read和close系統調用[4]。
    設計移植AM2301驅動程序時,根據其底層具體硬件特性和單總線通信協議,驅動程序主要由函數am2301_init(設備注冊)、am2301_exit(設備注銷)、file_operation、ReadByte(讀一個字節)、am2301_read(讀取完整的溫、濕度測量數據)構成。由于內核空間與用戶空間的內存是不能直接互訪的,應用程序可以通過fd=open()打開文件設備的方式來訪問驅動程序,并通過read(fd,&buffer,size)來讀取采集到的數據。驅動采集溫、濕度的流程圖如圖3所示。
    讀取溫、濕度數據采用單總線數據格式,一次傳輸數據為40 bit。傳感器中讀出的溫、濕度值是實際溫、濕度值的10倍。具體格式如下:
    40 bit數據=16 bit濕度數據+16 bit溫度數據+8 bit校驗和,例如接收到40 bit數據為:
    0000 0010 1000 1101 0000 0001 0010 0001 1011 0001,若前4個字節的累加和與最后1個字節相等,如:0000 0010+1000 1101+0000 0001+0010 0001=1011 0001(校驗位),則接收數據正確。由前32位的數據計算可得:
    濕度:0000 0010 1000 1101=653 =>65.3%RH
    溫度:0000 0001 0010 0001=289 =>28.9℃
    在驅動程序的編寫中,因需要直接訪問開發板引腳,故需掌握基于S3C6410的GPIO操作。如配置GPIO方向(gpio_direction_output())、讀取GPIO的值(gpio_get_value())、釋放GPIO(gpio_free())等。

    通過AM2301采集環境的溫濕度,其中溫度數據作為無線測溫設備的定標數據,通過無線測溫模塊與ARM11的串口通信來采集輸配電線的溫度。
    將驅動模塊和交叉編譯生成的可執行文件放在開發板“/etc/init.d”目錄下的“rcS”腳本文件下運行,這樣完成了開發板啟動后自動運行系統程序的功能。配合看門狗技術的運用,使系統在異常情況下能自動恢復,提高了系統的可靠性和自維護性。
4.4 數據通信
    網絡監聽傳送數據與采集溫濕度、局部放電、噪聲等模塊在不同線程中獨立并行運行。其中采集輸配電線溫度、局部放電與噪聲通過開發板的串口通信實現,根據采集設備的通信協議設置其串口。在Linux中,串口文件位于“/dev”下,直接通過open()打開串口,設置串口可通過設置struct termios結構體的各成員來實現。
    串口程序設計的基本步驟:(1)打開設備文件open();(2)獲取當前設備方式tcgetattr();(3)設置termios成員c_
lflag、c_oflag、c_cflag等;(4)使用cfsetispeed和cfsetospeed通信設置波特率;(5)使用tcsetattr設置設備工作方式。當串口設置好后,直接通過read()和write()即可與采集設備通信,通過發送命令獲得采集數據。
4.5 多線程控制
    為了使各模塊之間獨立運行并提高采集的效率和監控的實時性,本系統采用多個線程并行通信的方式來實現控制。不同的線程間可以直接訪問其他線程的數據[6],簡化了控制的難度,其中采集環境溫度和濕度ThreadTH()、輸配電線溫度Threadtem()、噪聲Threadnoise()、局部放電threadJF()分別由4個線程進行控制,另外再創建一個線程Threadcontrl()來控制采集的4個線程。當4個線程中任何一個采集模塊出現故障時,控制線程將結束該線程并重新創建新的線程來進行采集。其線程控制結構圖如圖5所示。控制方法為:各采集模塊每完成一次采集就獲得一次系統時間,控制模塊也實時獲得系統時間,將控制模塊中獲得的時間與采集模塊中的時間間隔相比較,超過一定設定值后,則認為該采集模塊出現故障,控制線程會結束該線程,延時片刻重新創建新線程進行采集。

 

 

    本系統選擇采用基于S3C6410為主處理器的開發平臺和開源的Linux作為嵌入式操作系統,并完成交叉工具鏈的生成、驅動程序的加載等。完成了AM2301驅動程序的設計與開發,將驅動程序移植到嵌入式開發板中,實現溫、濕度數據實時采集功能。將采集溫/濕度、局部放電與采集噪聲各模塊相結合,完成了實時采集箱變環境參數的監測系統,并通過線程實時控制方法和一系列措施確保系統能夠長期穩定運行,并具良好的擴展性和通用性。
參考文獻
[1] 王彬,程雪.一種基于ARM的溫室數據采集系統的設計 [J].安徽農業科學,2011,39(12):7466-7467.
[2] 何燕陽.基于AM2301的消毒熏箱溫濕度控制系統設計 [J].智能計算機與應用,2012,2(4):2095-2163.
[3] 黃馳.基于ARM11和Linux的DS18B20溫度測量系統設 計及實現[J].軟件導航,2012,11(6):1672-7800.
[4] 劉繼忠,邱于兵,黃翔.基于ARM的遠程溫濕度監控系統 的設計[J].儀表技術與傳感器,2012(8):1002-1841.
[5] 宋寶華.Linux設備開發詳解[M].北京:人民郵電出版社,2007.
[6] 吳宇佳,浦偉,周妍,等.Linux下多線程數據采集研究與實現[J].通信技術,2012(7):1009-8054.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 免费人成年激情视频在线观看 | 国产国产精品人在线视 | 久久精品这里 | 暖暖喜欢你电视剧免费观看完整版高清 | 99久久一区 | 欧美女人性生活视频 | 国产欧美日韩在线视频 | 天天做天天爱天天影视综合 | 欧美另类杂交a | 久99久视频 | 精品视频一区二区 | 精品在线视频播放 | 五月天激情婷婷婷久久 | 国产二区视频在线观看 | 456亚洲老头视频 | 成人试看120秒体验区视频 | 精品一二三四区 | 国产精品视频网址 | 欧美亚洲精品在线 | 国产国产精品人在线观看 | 精品精品国产高清a毛片牛牛 | 美国复古性xxxx | 999国产精品亚洲77777 | 青草悠悠视频在线观看 | 国产成人影视 | 四虎在线影视在线影库 | 国产美女久久久 | 激情开心站 | www.色99| 久久精品视频8 | 久久精品中文字幕极品 | 国产一区二区三区欧美精品 | 激情综合丁香 | 婷婷激情在线 | 亚州综人网 | 玖玖精品视频在线 | 欧美成人私人视频88在线观看 | 欧美在线视频第一页 | 丁香六月激情婷婷 | 四虎影视4hutv最新地址在线 | 欧美视频久久 |