999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AT91SAM9261高速鐵路路基沉降嵌入式數據集中器設計

2013-06-23 09:47:38譚立志李二喜張利民吳桂清
電子設計工程 2013年17期
關鍵詞:嵌入式系統

譚立志,李二喜,張利民,吳桂清

(1.株洲職業技術學院,湖南 株洲 412001;2.湖南大學 電氣與信息工程學院,湖南 長沙 410082)

高速鐵路客運專線工程的大規模建設推動著我國國民經濟高速發展,專線的建設工程規模大、技術標準高,要保證全線運行的安全可靠,路基的高質量建設是其重要保障,路基沉降值的大小對于高速列車的安全運行、線路養護維修工作量及車輛軌道結構設施的使用壽命等有著重要影響[1]。因此,在高速鐵路整個施工建設和運行周期中必須加強對全線路基、橋梁、隧道實施全面的、連續的、可靠的、準確的、長期的沉降位移監測。

隨著Internet技術的逐漸普及,它對當今社會的作用和影響也越來越大,從某種意義上來講,它提升了世界的可接入性。但是在工業控制領域,還有許多傳統的串口儀器被廣泛使用,這些儀器都面臨著數據集中、接入、控制和二次開發的新課題。儀器網絡化是解決此問題的唯一途徑,可這需要非常大的軟硬件投資,甚至會超過原設備的開發投資,代價實在太高。

本文中,將以高速鐵路路基沉降遠程監測為例,提供了一種基于AT91SAM9261的數據集中器設計方案,較好地解決了上文提出的問題,具有很好的推廣價值。

1 系統總體結構

高速鐵路路基沉降遠程監測系統由各類現場儀器、數字模塊、數據采集器以及監控主機等組成。系統采用分布式組網方式,現場儀器負責采集能夠體現路基沉降變化水平的電流、電壓信號,系統通過處理后將之轉化為可以識別和計算的數字量。數據采集器支持與現場儀器的多種連接方式:可以通過電纜與儀器直接相連;也可以先連接數字模塊,數字模塊再以總線的形式連接多臺儀器。二者之間采用帶有屏蔽層的RS-485同軸電纜進行連接,考慮現場儀器的野外露天運行條件,系統提供了太陽能供電裝置確保現場儀器在極端環境下的正常工作。在系統的最上層,監控主機與數據集中器共同接入Internet,用戶可以通過遠程訪問的形式對數據集中器進行動態在線監測。系統的拓撲結構如圖1所示。

圖1 系統拓撲結構Fig.1 System topology

2 數據集中器硬件設計

數據集中器在整個高速鐵路路基監測遠程監測系統中起著承上啟下的作用,能夠自動化采集分布在鐵路沿線的各類監測儀器數據,并為監控主機提供統一的數據接口。因此,數據集中器是整個監測系統的自動監測、數據存儲及傳輸中心。

2.1 硬件設計框圖

系統的硬件設計框圖如圖2所示。

圖2 硬件設計框圖Fig.2 Hardware design diagram

本系統芯片采用的是以ARM926EJ-S為核心的嵌入式微處理器AT91SAM9261,它是目前應用最廣的工業級32位高性能嵌入式RISC處理器,它具有獨立的16K指令和16K數據cache、全功能的MMU虛擬內存管理單元、DSP擴展功能的指令集以及豐富的外部接口[2],另外,該芯片功耗非常低,溫度適應范圍廣,而且具有良好的抗電磁干擾能力,因此非常適用于環境惡劣多變的露天監測環境。

考慮到數據集中器的數據量較大,系統自帶的NAND Flash容量有限,因而專門設計了SD卡模塊,用于滿足系統長時間、大容量的存儲需求;另外,系統還設計了簡單的按鍵模塊以及液晶顯示模塊,用于現場布置和調試儀器參數使用。

2.2 以太網接口

ARM芯片AT91S AM9261本身自帶的以太網接口僅包括數據鏈路層及以上部分,沒有物理層。我們選用DM9000AEP芯片作為系統的以太網物理層接口。該芯片功能完整、成本低廉。支持外部處理器以字節、字、雙字等方式讀寫其內部的EEPROM,可以自適應10/100M以太網,支持全雙工模式下的流量控制,完全符合IEEE 802.3x標準。另外,該芯片還提供了4K雙字節的SRAM,可以很好地滿足本系統的需要。

2.3 多串口擴展

文獻[3]針對數據采集儀上的多串口全雙工通信模塊的設計與實現進行了論述,本文在此基礎上實現了對數據集中器串口模塊的擴展。其中,多串口模塊采用硬件描述語言VHDL進行FPGA設計[4],使用Atmega128L微處理器對FPGA進行配置,并通過FPGA和MCU方便地實現多串口的擴展。

在數據集中器中,由于其串口數量較多(每臺數據集中器攜帶32個串口),如果使用專門的串口擴展芯片,不僅價格昂貴,還會導致電路板體積變大,功耗升高,不能適應惡劣多變的露天監測環境。因此,在本系統中,我們將若干接口電路的功能集成到了一片PLD或FPGA芯片,該方法具有集成度高、體積小、功耗低和速度快等優點,而且還具有用戶可編程能力,可以很方便地實現整個系統的功能重構。

由于文章篇幅限制,其實現思路及程序代碼便不再贅述,具體可以參考文獻[3]。

3 嵌入式Linux系統構建

從軟件角度來看,嵌入式Linux系統從上到下可以分為以下四個層次,即啟動與引導程序Bootloader、Linux內核kernel、根文件系統root filesystem以及用戶應用程序[5]。

3.1 交叉編譯環境的建立

嵌入式軟件開發中所采用的編譯為交叉編譯,所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執行的代碼。搭建交叉編譯環境是嵌入式開發的第一步,也是必備的一步,選擇合適的交叉編譯器對于嵌入式開發是非常重要的[6]。在本系統中,主要涉及gcc、glibc、binutils等軟件的安裝,其中,binutils用于生成包括as、ld、objdump等在內的一些輔助工具,以方便嵌入式Linux系統的構建。

3.2 U-boot的移植

U-boot(universal boot loader)是遵循GPL條款的開放源碼項目,U-boot在AT91SAM9261上的移植可以分為源代碼編譯,目標板燒寫以及啟動配置3個步驟。U-boot源代碼可以從開源網站www.sourceforge.net方便獲取,本系統中使用的U-boot版本為1.3.4,將其進行交叉編譯后,即可獲得對應的二進制可執行文件。通過AT91系列處理器專門的燒寫工具sam-ba可以實現對Boot Loader的燒寫。最后,我們還需針對相應的硬件系統,設置U-boot中的環境變量,從而實現其對Linux的引導和啟動,這些環境變量主要包括ethaddr、ipaddr、serverip、stdin、stdout、stderr,等等。

3.3 Linux內核的編譯及加載

Linux采用的單內核體系統結構,主要負責整個操作系統的進程調度、內存管理、文件管理以及設備驅動,Linux內核由多個在功能上不同的模塊組成,各個模塊負責不同的事務處理且相互關聯,這一特性也方便了用戶對于內核的裁剪,提高了其靈活性。在本系統中,可以直接使用Atmel公司提供的針對AT91SAM9261的Linux源代碼,并進行相關的內核裁剪和配置,然后使用make命令完成對Linux內核的編譯。最后,還需要通過U-boot的mkimage命令,在原映像文件頭部添加64字節的結構體用于記錄啟動參數信息,即可實現U-boot對Linux內核的加載。

3.4 Linux根文件系統的制作

在嵌入式系統中,Yaffs是針對NAND Flash而特別設計的文件系統。它去掉了一些多余功能,所以執行速度更快、內存占用更少,同時具有對NAND Flash的保護機制,可以延長其使用壽命。我們可以直接通過“git clone git://www.aleph1.co.uk/yaffs2”下載Yaffs源碼并進行相關編譯。另外,考慮到Linux本身并沒有提供對Yaffs的支持,因此還需額外將Yaffs源碼復制到Linux源碼中,并對其進行重新編譯。為了構造完整的嵌入式Linux系統,除Linux內核外,還需引入對Busybox的支持,它是一個集成了一百多個最常用linux命令和工具的軟件工具包。為簡單起見,我們采取了Busybox的默認配置,在編譯完成后,將之安裝在系統的/usr/local/busybox目錄下。最后,我們通過Yaffs2制作工具將該目錄制作成Yaffs2格式的文件系統,至此,則整個Linux根文件系統制作完畢。

4 數據集中器軟件設計

根據設計要求,數據集中器的軟件模塊框圖如圖3所示。其功能主要可以分為以下幾個部分:

1)數據采集:通過調用儀器信息庫中的儀器數據,結合不同廠家的通信協議,以串口通信的方式實現對高速鐵路沿線各類現場儀器的實時數據采集;

2)數據存儲:對采集上來的電壓、電流信號,進行A/D轉換,將之轉化為可以識別和計算的數字量,并進行存儲;

3)業務調度:對數據集中器的各項業務進行調度處理,包括人機交互以及處理來自監控主機的查詢、設置設備參數、用戶管理以及數據提取等指令;

4)網絡通信:負責與監控主機之間的通信,監控主機可以據此對數據集中器的設備參數以及用戶管理等進行相關設置與查詢。

4.1 數據采集

系統需要不同種類儀器的協同工作,由于各生產廠家的通信協議差異較大,必須要求軟件能夠兼容所有協議且具有良好的拓展性。因此,將圖3中的通信協議Protocol類設為抽象類,為外部調用提供統一接口,而具體的協議實現則交由各繼承類來完成。利用工廠方法模式(Factory Method),定義一個用于創建協議對象的通用接口,從而將協議對象的實例化延遲到子類階段,方便以后對協議種類的擴展。

圖3 系統軟件框圖Fig.3 System software diagram

如圖4,Protocol類為工廠方法模式創建協議對象的接口,Protocol_Digital、Protocol_CCD、Protocol_Module等由Protocol類派生,表示不同種類儀器的具體協議。

圖4 工廠方法模式Fig.4 Factory method

在程序設計中,根據依賴倒轉原則,我們把工廠方法類Protocol_Creator抽象成一個接口,該接口中包含方法CreateProtocol,用于創建抽象類Protocol的對象;然后在所有具體的協議類中都添加對該接口的實現。

此時,如果要為數據集中器添加新的儀器協議,就不再需要修改頂層的Protocol_Creator類,而只需添加對應的協議Protocol_XXX以及相應的工廠接口XXX_Creator即可。

4.2 數據存儲

在本系統中采用SQLite數據庫用于數據存儲,它支持豐富的SQL語句,是遵守ACID事務的關聯式數據庫管理系統,具有可移植性好、代碼體積小、易于使用、高效可靠、零配置管理等特點[7]。特別值得一提的是,SQLite還支持觸發器以及事務處理。

當數據采集模塊接收到數據后,我們首先將數據存儲到內存中,直至數據接收完畢,系統會對數據包的完整性進行檢查,隨后進行事務提交,即一次性地將全部接收到的數據存儲到數據庫中,從而提高了數據庫的讀寫速度。當測量現場由于監控需求變更或儀器故障損壞,而導致儀器信息發生變動時,現場工作人員可以配合按鍵操作,自動調用SQLite觸發器,實現數據庫中相關表的級聯更改,提高工作效率。另外,對于其他一般性事務,可以通過sqlite3_exec函數執行指定的SQL語句,該函數可以設置回調函數,方便用戶當執行查詢等操作時對查詢結果進行進一步處理。

4.3 業務調度

系統業務調度相當于數據集中器的粘合劑,它不僅要負責處理用戶的按鍵輸入以及液晶顯示,還要處理來自監控主機的各類指令,并將處理結果和監測數據以數據包的形式返回給監控主機,從而實現高速鐵路路基沉降的遠程在線監測。

其流程圖如圖5所示,在系統初始化過程中,業務調度模塊優于其他模塊進行執行,隨后以非阻塞的方式順序循環檢測按鍵事件以及網絡數據包,當發現有業務到達時,即跳轉到業務處理流程,待執行完畢后系統返回主線程繼續操作。從圖中可以看出,按鍵事件的業務優先級高于網絡數據包,這樣可以保證工程人員在現場配置數據集中器參數時,能夠避免網絡數據包的干擾,得到快速及時的響應。

圖5 業務調度流程Fig.5 Business scheduling process

數據集中器包括四個物理按鍵,在按鍵事件處理過程中,通過調用read函數,讀取按鍵所對應的設備文件/dev/event0,并加以判斷。我們在程序中規定,按鍵時間小于150 ms系統不予響應,按鍵時間介于150 ms和600 ms之間觸發“短按”事件,按鍵時間大于600 ms觸發“長按”事件。

4.4 網絡通信

考慮到數據集中器與監控主機之間開發平臺的差異,系統的網絡通信模塊采用基于傳輸控制協議TCP的Socket通信來實現。

4.4.1 選擇高效的網絡I/O方法

傳統的處理網絡I/O的技術分為多進程、多線程同步阻塞I/O以及SELECT、POLL的單線程事件驅動I/O等方式[8]。其中多線程、多進程同步阻塞網絡I/O技術因為存在Forking以及切換上下文時的巨大開銷,并不太適合處理高并發的網絡連接;而SELECT、POLL的單線程事件驅動I/O技術由于要持續不斷地寫入Socket或者POLL FD結構,會導致不斷地拷貝用戶空間和內核空間,當網絡負載不斷加大時,系統性能就會急劇惡化。

考慮到數據集中器的實際工作環境,我們采用EPOLL單線程事件驅動I/O技術,它已集成在Linux 2.6及以上版本的內核中,該技術具有套接字遍歷時間短、內存讀寫次數少等優點。其使用要點可簡單歸納如下:

1)定義結構體epoll_event,聲明變量epoll_event ev和指針*pev,其中ev用于登記EPOLL事件,以便處理監控主機的Socket連接,pev用于指向當前活躍的ev;

2)調用epoll_create函數,創建用于EPOLL事件的文件描述符,并調用epoll_ctl函數注冊ev事件;

3)調用epoll_wait等待EPOLL事件發生,在用戶進行I/O操作時,EPOLL作為一種異步事件通知機制,會首先查詢I/O的可讀寫狀態,并通過epoll_wait進行通知,再由用戶決定是否讀寫。

4.4.2 請求使用機制

由于數據集中器是暴露在公共網絡中的,因此其安全問題就顯得尤為重要,本系統通過請求使用操作來解決上述問題,如圖6所示,只有請求使用成功的監控主機才可以向數據集中器進一步進行遠程訪問;監控主機在完成遠程訪問后要及時退出使用,以便其他監控主機來獲得使用權。為了防止某監控主機在進入可操作狀態后上位機軟件的非正常中斷,我們規定,在某連接可操作后,如果連續2分鐘內沒有任何操作則退回到待批準狀態。

圖6 請求使用機制Fig.6 Request-use mechanism

5 結束語

我們在高速鐵路某路段沿線布置了10臺數據集中器,并在距離監控現場200Km外的監控主機上安裝了配套的上位機監測軟件,經過測試,在掛接35臺數字模塊和400余只儀器的情況下,系統依然能夠穩定工作。

在設計中,我們有針對性地使用Atmega128L微處理器對FPGA進行配置,并通過FPGA和MCU方便地實現多串口的擴展;根據實際監測需求合理處理儀器通信協議,運用工廠方法模式(Factory Method),方便以后對協議種類的擴展;充分運用SQLite數據庫的update觸發器以及事務處理能力,提升系統的數據庫性能,采用EPOLL單線程事件驅動I/O技術,提升了數據集中器的網絡并發通信處理能力;采取請求使用機制,增強了數據集中器的網絡安全性。

系統充分結合實際監控環境的特點,結構輕巧,層次清晰,有效地實現了所需功能。做到了轉換協議正確,數據傳輸完整,滿足高速鐵路路基沉降的監控要求,具有節約投資,可移植性強等優點,可廣泛應用于交通、電力、礦山、水利等工業控制領域。

[1]危鳳海.高速鐵路路基沉降的幾種原因及其監測方法[J].筑路機械與施工機械化.2010,27(10):24-27.WEI Hai-feng.Several reasons for subgrade settlement of high-speed railway and monitoring methods[J].Road Machinery&Construction Mechanixation,2010,27(10):24-27.

[2]袁溪.基于AT91SAM9261的嵌入式數據采集系統設計與實現[J].計算機測量與控制,2009,17(9):1854-1856.YUAN Xi.Design of embedded data acquisition system based on AT91SAM9261[J].Computer Measurement&Control,2009,17(9):1854-1856.

[3]張羽,胡玉貴,殷奎喜,等.基于FPGA的多串口擴展實現[J].電子器件,2009,32(1):233-236.ZHANG Yu,HU Yu-gui,YIN Kui-xi,et al.Realization of multi-serials extension based on FPGA[J].Chinese Journal of Electron Devices,2009,32(1):233-236.

[4]潘松.VHDL實用教程[M].成都:電子科技大學出版社,2003.

[5]劉磊,張鳳荔,秦志光.基于U-boot構建嵌入式Linux的Bootloader[J].計算機應用研究,2007,24(12):238-240.LIU Lei,ZHANG Feng-li,QIN Zhi-guang.Embedded Linux’s bootloader based on U-boot[J].Application Research of Computers,2007,24(12):238-240.

[6]冷玉林,鐘將.基于ARM的嵌入式Linux系統構建[J].計算機系統應用,2010,19(11):23-31.LENG Yu-lin,ZHONG Jiang.Building embedded linux system based on ARM[J].Computer Systems&Application,2010,19(11):23-31.

[7]蔣曉宇,賀永勝,王金明.基于SQLite3的用電信息采集終端數據平臺設計及研究[J].電測與儀表.2010,47(536A):103-107.JIANG Xiao-yu,HE Yong-sheng,WANG Jin-ming.Acquisition terminal's information platform design based on SQlite3[J].Electrical Measurement & Instrumentation, 2010,47(536A):103-107.

[8]ROSSI F.An event mechanism for Linux[J].Linux Journal,2003(11).

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 亚洲精品国产乱码不卡| 欧美亚洲国产精品第一页| 亚洲国产中文精品va在线播放| 精品无码人妻一区二区| 久久久久无码国产精品不卡| 看看一级毛片| 免费人欧美成又黄又爽的视频| 国产永久在线视频| AV无码一区二区三区四区| 亚洲经典在线中文字幕| 欧美亚洲激情| 久久综合色播五月男人的天堂| 日本高清免费不卡视频| 无码内射在线| 无码粉嫩虎白一线天在线观看| 尤物成AV人片在线观看| 日韩在线2020专区| 国产欧美日韩专区发布| 一级毛片免费高清视频| 免费黄色国产视频| 亚洲AⅤ波多系列中文字幕| 国产欧美又粗又猛又爽老| 无码专区国产精品一区| 日本午夜在线视频| www.亚洲色图.com| 亚洲乱强伦| 亚洲 日韩 激情 无码 中出| 亚洲AV无码久久精品色欲| 18禁高潮出水呻吟娇喘蜜芽| 国产91无码福利在线| 欧美激情第一区| 性网站在线观看| 亚洲日韩精品欧美中文字幕| 国产本道久久一区二区三区| 亚洲精品在线观看91| 91精品福利自产拍在线观看| 成人在线第一页| 人妻中文字幕无码久久一区| 欧美视频在线不卡| 中文字幕 欧美日韩| www.youjizz.com久久| 怡红院美国分院一区二区| 性欧美精品xxxx| 国内精品久久久久久久久久影视| 亚洲一区二区三区国产精品| 国产精品刺激对白在线| 亚洲国内精品自在自线官| 黄色网页在线播放| 国产成人h在线观看网站站| 国产精品综合色区在线观看| 日本亚洲欧美在线| 黑色丝袜高跟国产在线91| 最新亚洲人成网站在线观看| 日韩欧美高清视频| 亚洲中文字幕在线观看| 91人妻在线视频| 三级毛片在线播放| 久久亚洲综合伊人| 自慰网址在线观看| 久久毛片免费基地| 国产夜色视频| 亚洲午夜福利在线| 亚洲免费三区| 日韩AV无码免费一二三区| 国产成人精品综合| 538国产在线| 国产精品久久精品| 就去吻亚洲精品国产欧美| 亚洲综合久久成人AV| 伊人久久久久久久| 国产亚洲精品97AA片在线播放| h网址在线观看| 精品无码一区二区三区在线视频| 亚洲αv毛片| 日韩国产综合精选| 在线不卡免费视频| 免费国产高清视频| 欧美另类第一页| 国产美女精品在线| 一区二区三区成人| 找国产毛片看| 人妻丝袜无码视频|