譚立志,李二喜,張利民,吳桂清
(1.株洲職業(yè)技術(shù)學(xué)院,湖南 株洲 412001;2.湖南大學(xué) 電氣與信息工程學(xué)院,湖南 長(zhǎng)沙 410082)
高速鐵路客運(yùn)專線工程的大規(guī)模建設(shè)推動(dòng)著我國(guó)國(guó)民經(jīng)濟(jì)高速發(fā)展,專線的建設(shè)工程規(guī)模大、技術(shù)標(biāo)準(zhǔn)高,要保證全線運(yùn)行的安全可靠,路基的高質(zhì)量建設(shè)是其重要保障,路基沉降值的大小對(duì)于高速列車的安全運(yùn)行、線路養(yǎng)護(hù)維修工作量及車輛軌道結(jié)構(gòu)設(shè)施的使用壽命等有著重要影響[1]。因此,在高速鐵路整個(gè)施工建設(shè)和運(yùn)行周期中必須加強(qiáng)對(duì)全線路基、橋梁、隧道實(shí)施全面的、連續(xù)的、可靠的、準(zhǔn)確的、長(zhǎng)期的沉降位移監(jiān)測(cè)。
隨著Internet技術(shù)的逐漸普及,它對(duì)當(dāng)今社會(huì)的作用和影響也越來(lái)越大,從某種意義上來(lái)講,它提升了世界的可接入性。但是在工業(yè)控制領(lǐng)域,還有許多傳統(tǒng)的串口儀器被廣泛使用,這些儀器都面臨著數(shù)據(jù)集中、接入、控制和二次開發(fā)的新課題。儀器網(wǎng)絡(luò)化是解決此問(wèn)題的唯一途徑,可這需要非常大的軟硬件投資,甚至?xí)^(guò)原設(shè)備的開發(fā)投資,代價(jià)實(shí)在太高。
本文中,將以高速鐵路路基沉降遠(yuǎn)程監(jiān)測(cè)為例,提供了一種基于AT91SAM9261的數(shù)據(jù)集中器設(shè)計(jì)方案,較好地解決了上文提出的問(wèn)題,具有很好的推廣價(jià)值。
高速鐵路路基沉降遠(yuǎn)程監(jiān)測(cè)系統(tǒng)由各類現(xiàn)場(chǎng)儀器、數(shù)字模塊、數(shù)據(jù)采集器以及監(jiān)控主機(jī)等組成。系統(tǒng)采用分布式組網(wǎng)方式,現(xiàn)場(chǎng)儀器負(fù)責(zé)采集能夠體現(xiàn)路基沉降變化水平的電流、電壓信號(hào),系統(tǒng)通過(guò)處理后將之轉(zhuǎn)化為可以識(shí)別和計(jì)算的數(shù)字量。數(shù)據(jù)采集器支持與現(xiàn)場(chǎng)儀器的多種連接方式:可以通過(guò)電纜與儀器直接相連;也可以先連接數(shù)字模塊,數(shù)字模塊再以總線的形式連接多臺(tái)儀器。二者之間采用帶有屏蔽層的RS-485同軸電纜進(jìn)行連接,考慮現(xiàn)場(chǎng)儀器的野外露天運(yùn)行條件,系統(tǒng)提供了太陽(yáng)能供電裝置確?,F(xiàn)場(chǎng)儀器在極端環(huán)境下的正常工作。在系統(tǒng)的最上層,監(jiān)控主機(jī)與數(shù)據(jù)集中器共同接入Internet,用戶可以通過(guò)遠(yuǎn)程訪問(wèn)的形式對(duì)數(shù)據(jù)集中器進(jìn)行動(dòng)態(tài)在線監(jiān)測(cè)。系統(tǒng)的拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)拓?fù)浣Y(jié)構(gòu)Fig.1 System topology
數(shù)據(jù)集中器在整個(gè)高速鐵路路基監(jiān)測(cè)遠(yuǎn)程監(jiān)測(cè)系統(tǒng)中起著承上啟下的作用,能夠自動(dòng)化采集分布在鐵路沿線的各類監(jiān)測(cè)儀器數(shù)據(jù),并為監(jiān)控主機(jī)提供統(tǒng)一的數(shù)據(jù)接口。因此,數(shù)據(jù)集中器是整個(gè)監(jiān)測(cè)系統(tǒng)的自動(dòng)監(jiān)測(cè)、數(shù)據(jù)存儲(chǔ)及傳輸中心。
系統(tǒng)的硬件設(shè)計(jì)框圖如圖2所示。
圖2 硬件設(shè)計(jì)框圖Fig.2 Hardware design diagram
本系統(tǒng)芯片采用的是以ARM926EJ-S為核心的嵌入式微處理器AT91SAM9261,它是目前應(yīng)用最廣的工業(yè)級(jí)32位高性能嵌入式RISC處理器,它具有獨(dú)立的16K指令和16K數(shù)據(jù)cache、全功能的MMU虛擬內(nèi)存管理單元、DSP擴(kuò)展功能的指令集以及豐富的外部接口[2],另外,該芯片功耗非常低,溫度適應(yīng)范圍廣,而且具有良好的抗電磁干擾能力,因此非常適用于環(huán)境惡劣多變的露天監(jiān)測(cè)環(huán)境。
考慮到數(shù)據(jù)集中器的數(shù)據(jù)量較大,系統(tǒng)自帶的NAND Flash容量有限,因而專門設(shè)計(jì)了SD卡模塊,用于滿足系統(tǒng)長(zhǎng)時(shí)間、大容量的存儲(chǔ)需求;另外,系統(tǒng)還設(shè)計(jì)了簡(jiǎn)單的按鍵模塊以及液晶顯示模塊,用于現(xiàn)場(chǎng)布置和調(diào)試儀器參數(shù)使用。
ARM芯片AT91S AM9261本身自帶的以太網(wǎng)接口僅包括數(shù)據(jù)鏈路層及以上部分,沒有物理層。我們選用DM9000AEP芯片作為系統(tǒng)的以太網(wǎng)物理層接口。該芯片功能完整、成本低廉。支持外部處理器以字節(jié)、字、雙字等方式讀寫其內(nèi)部的EEPROM,可以自適應(yīng)10/100M以太網(wǎng),支持全雙工模式下的流量控制,完全符合IEEE 802.3x標(biāo)準(zhǔn)。另外,該芯片還提供了4K雙字節(jié)的SRAM,可以很好地滿足本系統(tǒng)的需要。
文獻(xiàn)[3]針對(duì)數(shù)據(jù)采集儀上的多串口全雙工通信模塊的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了論述,本文在此基礎(chǔ)上實(shí)現(xiàn)了對(duì)數(shù)據(jù)集中器串口模塊的擴(kuò)展。其中,多串口模塊采用硬件描述語(yǔ)言VHDL進(jìn)行FPGA設(shè)計(jì)[4],使用Atmega128L微處理器對(duì)FPGA進(jìn)行配置,并通過(guò)FPGA和MCU方便地實(shí)現(xiàn)多串口的擴(kuò)展。
在數(shù)據(jù)集中器中,由于其串口數(shù)量較多(每臺(tái)數(shù)據(jù)集中器攜帶32個(gè)串口),如果使用專門的串口擴(kuò)展芯片,不僅價(jià)格昂貴,還會(huì)導(dǎo)致電路板體積變大,功耗升高,不能適應(yīng)惡劣多變的露天監(jiān)測(cè)環(huán)境。因此,在本系統(tǒng)中,我們將若干接口電路的功能集成到了一片PLD或FPGA芯片,該方法具有集成度高、體積小、功耗低和速度快等優(yōu)點(diǎn),而且還具有用戶可編程能力,可以很方便地實(shí)現(xiàn)整個(gè)系統(tǒng)的功能重構(gòu)。
由于文章篇幅限制,其實(shí)現(xiàn)思路及程序代碼便不再贅述,具體可以參考文獻(xiàn)[3]。
從軟件角度來(lái)看,嵌入式Linux系統(tǒng)從上到下可以分為以下四個(gè)層次,即啟動(dòng)與引導(dǎo)程序Bootloader、Linux內(nèi)核kernel、根文件系統(tǒng)root filesystem以及用戶應(yīng)用程序[5]。
嵌入式軟件開發(fā)中所采用的編譯為交叉編譯,所謂交叉編譯就是在一個(gè)平臺(tái)上生成可以在另一個(gè)平臺(tái)上執(zhí)行的代碼。搭建交叉編譯環(huán)境是嵌入式開發(fā)的第一步,也是必備的一步,選擇合適的交叉編譯器對(duì)于嵌入式開發(fā)是非常重要的[6]。在本系統(tǒng)中,主要涉及gcc、glibc、binutils等軟件的安裝,其中,binutils用于生成包括as、ld、objdump等在內(nèi)的一些輔助工具,以方便嵌入式Linux系統(tǒng)的構(gòu)建。
U-boot(universal boot loader)是遵循GPL條款的開放源碼項(xiàng)目,U-boot在AT91SAM9261上的移植可以分為源代碼編譯,目標(biāo)板燒寫以及啟動(dòng)配置3個(gè)步驟。U-boot源代碼可以從開源網(wǎng)站www.sourceforge.net方便獲取,本系統(tǒng)中使用的U-boot版本為1.3.4,將其進(jìn)行交叉編譯后,即可獲得對(duì)應(yīng)的二進(jìn)制可執(zhí)行文件。通過(guò)AT91系列處理器專門的燒寫工具sam-ba可以實(shí)現(xiàn)對(duì)Boot Loader的燒寫。最后,我們還需針對(duì)相應(yīng)的硬件系統(tǒng),設(shè)置U-boot中的環(huán)境變量,從而實(shí)現(xiàn)其對(duì)Linux的引導(dǎo)和啟動(dòng),這些環(huán)境變量主要包括ethaddr、ipaddr、serverip、stdin、stdout、stderr,等等。
Linux采用的單內(nèi)核體系統(tǒng)結(jié)構(gòu),主要負(fù)責(zé)整個(gè)操作系統(tǒng)的進(jìn)程調(diào)度、內(nèi)存管理、文件管理以及設(shè)備驅(qū)動(dòng),Linux內(nèi)核由多個(gè)在功能上不同的模塊組成,各個(gè)模塊負(fù)責(zé)不同的事務(wù)處理且相互關(guān)聯(lián),這一特性也方便了用戶對(duì)于內(nèi)核的裁剪,提高了其靈活性。在本系統(tǒng)中,可以直接使用Atmel公司提供的針對(duì)AT91SAM9261的Linux源代碼,并進(jìn)行相關(guān)的內(nèi)核裁剪和配置,然后使用make命令完成對(duì)Linux內(nèi)核的編譯。最后,還需要通過(guò)U-boot的mkimage命令,在原映像文件頭部添加64字節(jié)的結(jié)構(gòu)體用于記錄啟動(dòng)參數(shù)信息,即可實(shí)現(xiàn)U-boot對(duì)Linux內(nèi)核的加載。
在嵌入式系統(tǒng)中,Yaffs是針對(duì)NAND Flash而特別設(shè)計(jì)的文件系統(tǒng)。它去掉了一些多余功能,所以執(zhí)行速度更快、內(nèi)存占用更少,同時(shí)具有對(duì)NAND Flash的保護(hù)機(jī)制,可以延長(zhǎng)其使用壽命。我們可以直接通過(guò)“git clone git://www.aleph1.co.uk/yaffs2”下載Yaffs源碼并進(jìn)行相關(guān)編譯。另外,考慮到Linux本身并沒有提供對(duì)Yaffs的支持,因此還需額外將Yaffs源碼復(fù)制到Linux源碼中,并對(duì)其進(jìn)行重新編譯。為了構(gòu)造完整的嵌入式Linux系統(tǒng),除Linux內(nèi)核外,還需引入對(duì)Busybox的支持,它是一個(gè)集成了一百多個(gè)最常用linux命令和工具的軟件工具包。為簡(jiǎn)單起見,我們采取了Busybox的默認(rèn)配置,在編譯完成后,將之安裝在系統(tǒng)的/usr/local/busybox目錄下。最后,我們通過(guò)Yaffs2制作工具將該目錄制作成Yaffs2格式的文件系統(tǒng),至此,則整個(gè)Linux根文件系統(tǒng)制作完畢。
根據(jù)設(shè)計(jì)要求,數(shù)據(jù)集中器的軟件模塊框圖如圖3所示。其功能主要可以分為以下幾個(gè)部分:
1)數(shù)據(jù)采集:通過(guò)調(diào)用儀器信息庫(kù)中的儀器數(shù)據(jù),結(jié)合不同廠家的通信協(xié)議,以串口通信的方式實(shí)現(xiàn)對(duì)高速鐵路沿線各類現(xiàn)場(chǎng)儀器的實(shí)時(shí)數(shù)據(jù)采集;
2)數(shù)據(jù)存儲(chǔ):對(duì)采集上來(lái)的電壓、電流信號(hào),進(jìn)行A/D轉(zhuǎn)換,將之轉(zhuǎn)化為可以識(shí)別和計(jì)算的數(shù)字量,并進(jìn)行存儲(chǔ);
3)業(yè)務(wù)調(diào)度:對(duì)數(shù)據(jù)集中器的各項(xiàng)業(yè)務(wù)進(jìn)行調(diào)度處理,包括人機(jī)交互以及處理來(lái)自監(jiān)控主機(jī)的查詢、設(shè)置設(shè)備參數(shù)、用戶管理以及數(shù)據(jù)提取等指令;
4)網(wǎng)絡(luò)通信:負(fù)責(zé)與監(jiān)控主機(jī)之間的通信,監(jiān)控主機(jī)可以據(jù)此對(duì)數(shù)據(jù)集中器的設(shè)備參數(shù)以及用戶管理等進(jìn)行相關(guān)設(shè)置與查詢。
系統(tǒng)需要不同種類儀器的協(xié)同工作,由于各生產(chǎn)廠家的通信協(xié)議差異較大,必須要求軟件能夠兼容所有協(xié)議且具有良好的拓展性。因此,將圖3中的通信協(xié)議Protocol類設(shè)為抽象類,為外部調(diào)用提供統(tǒng)一接口,而具體的協(xié)議實(shí)現(xiàn)則交由各繼承類來(lái)完成。利用工廠方法模式(Factory Method),定義一個(gè)用于創(chuàng)建協(xié)議對(duì)象的通用接口,從而將協(xié)議對(duì)象的實(shí)例化延遲到子類階段,方便以后對(duì)協(xié)議種類的擴(kuò)展。
圖3 系統(tǒng)軟件框圖Fig.3 System software diagram
如圖4,Protocol類為工廠方法模式創(chuàng)建協(xié)議對(duì)象的接口,Protocol_Digital、Protocol_CCD、Protocol_Module等由Protocol類派生,表示不同種類儀器的具體協(xié)議。
圖4 工廠方法模式Fig.4 Factory method
在程序設(shè)計(jì)中,根據(jù)依賴倒轉(zhuǎn)原則,我們把工廠方法類Protocol_Creator抽象成一個(gè)接口,該接口中包含方法CreateProtocol,用于創(chuàng)建抽象類Protocol的對(duì)象;然后在所有具體的協(xié)議類中都添加對(duì)該接口的實(shí)現(xiàn)。
此時(shí),如果要為數(shù)據(jù)集中器添加新的儀器協(xié)議,就不再需要修改頂層的Protocol_Creator類,而只需添加對(duì)應(yīng)的協(xié)議Protocol_XXX以及相應(yīng)的工廠接口XXX_Creator即可。
在本系統(tǒng)中采用SQLite數(shù)據(jù)庫(kù)用于數(shù)據(jù)存儲(chǔ),它支持豐富的SQL語(yǔ)句,是遵守ACID事務(wù)的關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),具有可移植性好、代碼體積小、易于使用、高效可靠、零配置管理等特點(diǎn)[7]。特別值得一提的是,SQLite還支持觸發(fā)器以及事務(wù)處理。
當(dāng)數(shù)據(jù)采集模塊接收到數(shù)據(jù)后,我們首先將數(shù)據(jù)存儲(chǔ)到內(nèi)存中,直至數(shù)據(jù)接收完畢,系統(tǒng)會(huì)對(duì)數(shù)據(jù)包的完整性進(jìn)行檢查,隨后進(jìn)行事務(wù)提交,即一次性地將全部接收到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,從而提高了數(shù)據(jù)庫(kù)的讀寫速度。當(dāng)測(cè)量現(xiàn)場(chǎng)由于監(jiān)控需求變更或儀器故障損壞,而導(dǎo)致儀器信息發(fā)生變動(dòng)時(shí),現(xiàn)場(chǎng)工作人員可以配合按鍵操作,自動(dòng)調(diào)用SQLite觸發(fā)器,實(shí)現(xiàn)數(shù)據(jù)庫(kù)中相關(guān)表的級(jí)聯(lián)更改,提高工作效率。另外,對(duì)于其他一般性事務(wù),可以通過(guò)sqlite3_exec函數(shù)執(zhí)行指定的SQL語(yǔ)句,該函數(shù)可以設(shè)置回調(diào)函數(shù),方便用戶當(dāng)執(zhí)行查詢等操作時(shí)對(duì)查詢結(jié)果進(jìn)行進(jìn)一步處理。
系統(tǒng)業(yè)務(wù)調(diào)度相當(dāng)于數(shù)據(jù)集中器的粘合劑,它不僅要負(fù)責(zé)處理用戶的按鍵輸入以及液晶顯示,還要處理來(lái)自監(jiān)控主機(jī)的各類指令,并將處理結(jié)果和監(jiān)測(cè)數(shù)據(jù)以數(shù)據(jù)包的形式返回給監(jiān)控主機(jī),從而實(shí)現(xiàn)高速鐵路路基沉降的遠(yuǎn)程在線監(jiān)測(cè)。
其流程圖如圖5所示,在系統(tǒng)初始化過(guò)程中,業(yè)務(wù)調(diào)度模塊優(yōu)于其他模塊進(jìn)行執(zhí)行,隨后以非阻塞的方式順序循環(huán)檢測(cè)按鍵事件以及網(wǎng)絡(luò)數(shù)據(jù)包,當(dāng)發(fā)現(xiàn)有業(yè)務(wù)到達(dá)時(shí),即跳轉(zhuǎn)到業(yè)務(wù)處理流程,待執(zhí)行完畢后系統(tǒng)返回主線程繼續(xù)操作。從圖中可以看出,按鍵事件的業(yè)務(wù)優(yōu)先級(jí)高于網(wǎng)絡(luò)數(shù)據(jù)包,這樣可以保證工程人員在現(xiàn)場(chǎng)配置數(shù)據(jù)集中器參數(shù)時(shí),能夠避免網(wǎng)絡(luò)數(shù)據(jù)包的干擾,得到快速及時(shí)的響應(yīng)。
圖5 業(yè)務(wù)調(diào)度流程Fig.5 Business scheduling process
數(shù)據(jù)集中器包括四個(gè)物理按鍵,在按鍵事件處理過(guò)程中,通過(guò)調(diào)用read函數(shù),讀取按鍵所對(duì)應(yīng)的設(shè)備文件/dev/event0,并加以判斷。我們?cè)诔绦蛑幸?guī)定,按鍵時(shí)間小于150 ms系統(tǒng)不予響應(yīng),按鍵時(shí)間介于150 ms和600 ms之間觸發(fā)“短按”事件,按鍵時(shí)間大于600 ms觸發(fā)“長(zhǎng)按”事件。
考慮到數(shù)據(jù)集中器與監(jiān)控主機(jī)之間開發(fā)平臺(tái)的差異,系統(tǒng)的網(wǎng)絡(luò)通信模塊采用基于傳輸控制協(xié)議TCP的Socket通信來(lái)實(shí)現(xiàn)。
4.4.1 選擇高效的網(wǎng)絡(luò)I/O方法
傳統(tǒng)的處理網(wǎng)絡(luò)I/O的技術(shù)分為多進(jìn)程、多線程同步阻塞I/O以及SELECT、POLL的單線程事件驅(qū)動(dòng)I/O等方式[8]。其中多線程、多進(jìn)程同步阻塞網(wǎng)絡(luò)I/O技術(shù)因?yàn)榇嬖贔orking以及切換上下文時(shí)的巨大開銷,并不太適合處理高并發(fā)的網(wǎng)絡(luò)連接;而SELECT、POLL的單線程事件驅(qū)動(dòng)I/O技術(shù)由于要持續(xù)不斷地寫入Socket或者POLL FD結(jié)構(gòu),會(huì)導(dǎo)致不斷地拷貝用戶空間和內(nèi)核空間,當(dāng)網(wǎng)絡(luò)負(fù)載不斷加大時(shí),系統(tǒng)性能就會(huì)急劇惡化。
考慮到數(shù)據(jù)集中器的實(shí)際工作環(huán)境,我們采用EPOLL單線程事件驅(qū)動(dòng)I/O技術(shù),它已集成在Linux 2.6及以上版本的內(nèi)核中,該技術(shù)具有套接字遍歷時(shí)間短、內(nèi)存讀寫次數(shù)少等優(yōu)點(diǎn)。其使用要點(diǎn)可簡(jiǎn)單歸納如下:
1)定義結(jié)構(gòu)體epoll_event,聲明變量epoll_event ev和指針*pev,其中ev用于登記EPOLL事件,以便處理監(jiān)控主機(jī)的Socket連接,pev用于指向當(dāng)前活躍的ev;
2)調(diào)用epoll_create函數(shù),創(chuàng)建用于EPOLL事件的文件描述符,并調(diào)用epoll_ctl函數(shù)注冊(cè)ev事件;
3)調(diào)用epoll_wait等待EPOLL事件發(fā)生,在用戶進(jìn)行I/O操作時(shí),EPOLL作為一種異步事件通知機(jī)制,會(huì)首先查詢I/O的可讀寫狀態(tài),并通過(guò)epoll_wait進(jìn)行通知,再由用戶決定是否讀寫。
4.4.2 請(qǐng)求使用機(jī)制
由于數(shù)據(jù)集中器是暴露在公共網(wǎng)絡(luò)中的,因此其安全問(wèn)題就顯得尤為重要,本系統(tǒng)通過(guò)請(qǐng)求使用操作來(lái)解決上述問(wèn)題,如圖6所示,只有請(qǐng)求使用成功的監(jiān)控主機(jī)才可以向數(shù)據(jù)集中器進(jìn)一步進(jìn)行遠(yuǎn)程訪問(wèn);監(jiān)控主機(jī)在完成遠(yuǎn)程訪問(wèn)后要及時(shí)退出使用,以便其他監(jiān)控主機(jī)來(lái)獲得使用權(quán)。為了防止某監(jiān)控主機(jī)在進(jìn)入可操作狀態(tài)后上位機(jī)軟件的非正常中斷,我們規(guī)定,在某連接可操作后,如果連續(xù)2分鐘內(nèi)沒有任何操作則退回到待批準(zhǔn)狀態(tài)。
圖6 請(qǐng)求使用機(jī)制Fig.6 Request-use mechanism
我們?cè)诟咚勹F路某路段沿線布置了10臺(tái)數(shù)據(jù)集中器,并在距離監(jiān)控現(xiàn)場(chǎng)200Km外的監(jiān)控主機(jī)上安裝了配套的上位機(jī)監(jiān)測(cè)軟件,經(jīng)過(guò)測(cè)試,在掛接35臺(tái)數(shù)字模塊和400余只儀器的情況下,系統(tǒng)依然能夠穩(wěn)定工作。
在設(shè)計(jì)中,我們有針對(duì)性地使用Atmega128L微處理器對(duì)FPGA進(jìn)行配置,并通過(guò)FPGA和MCU方便地實(shí)現(xiàn)多串口的擴(kuò)展;根據(jù)實(shí)際監(jiān)測(cè)需求合理處理儀器通信協(xié)議,運(yùn)用工廠方法模式(Factory Method),方便以后對(duì)協(xié)議種類的擴(kuò)展;充分運(yùn)用SQLite數(shù)據(jù)庫(kù)的update觸發(fā)器以及事務(wù)處理能力,提升系統(tǒng)的數(shù)據(jù)庫(kù)性能,采用EPOLL單線程事件驅(qū)動(dòng)I/O技術(shù),提升了數(shù)據(jù)集中器的網(wǎng)絡(luò)并發(fā)通信處理能力;采取請(qǐng)求使用機(jī)制,增強(qiáng)了數(shù)據(jù)集中器的網(wǎng)絡(luò)安全性。
系統(tǒng)充分結(jié)合實(shí)際監(jiān)控環(huán)境的特點(diǎn),結(jié)構(gòu)輕巧,層次清晰,有效地實(shí)現(xiàn)了所需功能。做到了轉(zhuǎn)換協(xié)議正確,數(shù)據(jù)傳輸完整,滿足高速鐵路路基沉降的監(jiān)控要求,具有節(jié)約投資,可移植性強(qiáng)等優(yōu)點(diǎn),可廣泛應(yīng)用于交通、電力、礦山、水利等工業(yè)控制領(lǐng)域。
[1]危鳳海.高速鐵路路基沉降的幾種原因及其監(jiān)測(cè)方法[J].筑路機(jī)械與施工機(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的嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,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的多串口擴(kuò)展實(shí)現(xiàn)[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實(shí)用教程[M].成都:電子科技大學(xué)出版社,2003.
[5]劉磊,張鳳荔,秦志光.基于U-boot構(gòu)建嵌入式Linux的Bootloader[J].計(jì)算機(jī)應(yīng)用研究,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系統(tǒng)構(gòu)建[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,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的用電信息采集終端數(shù)據(jù)平臺(tái)設(shè)計(jì)及研究[J].電測(cè)與儀表.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).