基于Rabbit2000的嵌入式網(wǎng)絡(luò)智能測控系統(tǒng)
關(guān)鍵詞:Rabbit2000;網(wǎng)絡(luò);智能測控系統(tǒng)
1 引言
Internet技術(shù)的飛速進(jìn)展,使得基于分組交換技術(shù)的通信性能、通信質(zhì)量和可靠性得到穩(wěn)步提高,基于8位、16位單片機(jī)的嵌入式設(shè)備(如儀器儀表、數(shù)據(jù)采集和顯示、過程控制、工業(yè)自動化等)的實(shí)時應(yīng)用,測控系統(tǒng)正在走向網(wǎng)絡(luò)智能化[1]。這就要求企業(yè)從現(xiàn)場控制層到管理層能實(shí)現(xiàn)全方位的無縫信息集成, 實(shí)現(xiàn)遠(yuǎn)程維護(hù)、智能診斷以及遠(yuǎn)程管理功能[2], 提供一個開放的基礎(chǔ)構(gòu)架,并具有高可靠性、分散控制、集中監(jiān)視和管理的功能。
Z-World[3]公司以Rabbit2000微處理器為核心研制了一系列嵌入式系統(tǒng)模塊,使用這些模塊能夠?qū)崿F(xiàn)對集成了網(wǎng)絡(luò)的嵌入式系統(tǒng)進(jìn)行快速開發(fā)。本系統(tǒng)以Rabbit2000微處理器為核心,采用模塊化和智能式的分布技術(shù)設(shè)計(jì)嵌入式網(wǎng)絡(luò)智能測控系統(tǒng)。
2 Rabbit2000的性能特點(diǎn)
Rabbit2000是Rabbit半導(dǎo)體公司為嵌入式環(huán)境設(shè)計(jì)的高性能低價位的8位微處理器,以其C語言友好指令集和快速數(shù)字處理功能而受到矚目。它和Z80系列微處理器有相似的結(jié)構(gòu)和高度的兼容性,但性能有很大的提高。具有多達(dá)40個通用I/O引腳。內(nèi)建日歷、時鐘、看門狗、定時器、多級中斷、雙DMA通道,可外擴(kuò)4~8MB Flash,用于數(shù)據(jù)存儲。對于8位總線的微處理器,Rabbit具有很高的計(jì)算速度,這對于實(shí)時操作系統(tǒng)是極為重要的。對于Rabbit2000,傳統(tǒng)的微處理器硬件和軟件的開發(fā)已被簡化,不再需要在線仿真。用1根接口電纜把PC串行口和基于Rabbit2000的目標(biāo)系統(tǒng)連接起來就可實(shí)現(xiàn)軟件的開發(fā)。Rabbit2000具有4個串行端口,具有很強(qiáng)的組網(wǎng)通信能力。它能精確地產(chǎn)生脈沖和邊沿,可實(shí)現(xiàn)多優(yōu)先級中斷。處理器速度和功耗在程序控制之下,在處理器持續(xù)執(zhí)行指令的時候,能使用超低功耗模式實(shí)現(xiàn)計(jì)算和執(zhí)行邏輯檢測,為實(shí)現(xiàn)低功耗設(shè)計(jì)提供了方便。
Rabbit 2000芯片上外設(shè)包括5個8位并行I/O端口、4個串行端口、1個子端口、5個8位定時器、1個10位定時器、精確脈沖發(fā)生硬件和電池支持的RTC。其串口可采用同步或異步傳輸方式,采用29.4912MHz的系統(tǒng)頻率,異步傳輸速率最高可達(dá)91.6kbps。
Rabbit2000以Z-World’s公司的C語言開發(fā)系統(tǒng)Dynamic C[4]編譯器為其開發(fā)工具。其特點(diǎn)是有1個交互式編譯程序、編輯程序和調(diào)試程序,通過1個10線的簡單接口可實(shí)現(xiàn)EPROM編程和在線仿真。此外,Rabbit2000可以運(yùn)行流行的Internet協(xié)議棧,如HTTP、SMTP、POP3、TCP、UDP、ICMP、IP等,還可以在外接一個以太網(wǎng)控制芯片RTL8019的情況下,實(shí)現(xiàn)Ethernet (IEEE802.3)協(xié)議處理,使該系統(tǒng)可以直接通過RJ-45連到以太網(wǎng)上。
3 嵌入式網(wǎng)絡(luò)智能測控系統(tǒng)設(shè)計(jì)
3.1 測控設(shè)備硬件結(jié)構(gòu)
對于所要實(shí)現(xiàn)的嵌入式系統(tǒng),系統(tǒng)硬件設(shè)計(jì)是圍繞Rabbit 2000微處理器來進(jìn)行的,包括存儲器、處理器、振蕩晶體、標(biāo)準(zhǔn)編程口、以太網(wǎng)接口、串行接口(RS232、RS485)、數(shù)字量I/O(DI/DO)接口、模擬量I/O(AI/AO)接口、擴(kuò)展接口,在一些情況下還要包括功率控制器和系統(tǒng)供電設(shè)計(jì),具體應(yīng)用時可根據(jù)不同的應(yīng)用要求對各種功能模塊進(jìn)行適當(dāng)增減。圖1為硬件實(shí)現(xiàn)框圖。
圖1 網(wǎng)絡(luò)智能測控裝置(MCD)
3.2 實(shí)現(xiàn)方案
圖1所示的測控裝置可實(shí)現(xiàn)多種監(jiān)測和控制功能,并通過以太網(wǎng)接口(RJ-45接口)連到Hub后由路由器接入Internet構(gòu)成網(wǎng)絡(luò)智能測控系統(tǒng)。如圖2所示。
圖2 網(wǎng)絡(luò)智能測控系統(tǒng)
本系統(tǒng)中,每臺主機(jī)和測控裝置(MCD)都有自己獨(dú)立的IP地址,互相之間可進(jìn)行通信,遠(yuǎn)程主機(jī)(Remote PC)可通過撥號連接(圖中所示就是這種情況)或通過以太網(wǎng)網(wǎng)關(guān)接入Internet來訪問測控裝置,使用其提供的服務(wù)或?qū)ζ溥M(jìn)行系統(tǒng)編程和遠(yuǎn)程啟動。測控裝置具有一般單片機(jī)系統(tǒng)的所有測控能力,并且可根據(jù)需要提供各種網(wǎng)絡(luò)服務(wù),包括:作為一臺簡單的Web服務(wù)器,提供簡單的網(wǎng)頁供外部主機(jī)訪問,提供可被遠(yuǎn)程主機(jī)修改的表格資料;提供文件傳輸服務(wù)(FTP),可作為FTP客戶端或服務(wù)器;提供SMTP(簡單郵件傳輸協(xié)議)服務(wù),自動或定時向指定的電子郵箱發(fā)送E-mail,以傳遞系統(tǒng)的實(shí)時數(shù)據(jù)或報(bào)警信息;提供遠(yuǎn)程登錄(TELNET)服務(wù)以及其他的Internet服務(wù)。
3.3 工作過程
圖2中測控裝置的主要任務(wù)是與探測器通信,以獲取現(xiàn)場信息并對信息進(jìn)行集中處理后, Rabbit2000的串行口將這些信息傳至PC,或由PC來查詢。PC機(jī)在獲取測控裝置上的報(bào)警信息后,按一定的協(xié)議格式對報(bào)警信息進(jìn)行包裝,并將之傳送到遠(yuǎn)程PC上,這樣形成一個星形的網(wǎng)絡(luò)結(jié)構(gòu),以此構(gòu)成測控信息的局域網(wǎng)
系統(tǒng)有兩種類型的網(wǎng)絡(luò)節(jié)點(diǎn):一種是與PC進(jìn)行通信的節(jié)點(diǎn);另一種是測控裝置與探測器進(jìn)行通信的探測器節(jié)點(diǎn)。傳輸協(xié)議采用規(guī)范化數(shù)據(jù)結(jié)構(gòu),設(shè)有BBC校驗(yàn)位,且采用軟件容錯技術(shù)。管理軟件設(shè)有容錯陷阱,有效地消除隨機(jī)干擾引起的死機(jī)或誤報(bào)現(xiàn)象。主機(jī)為PC機(jī),其網(wǎng)絡(luò)ID號為0,每個測控裝置都有1個唯一的大于0的ID號。PC與測控裝置通信采用標(biāo)準(zhǔn)的協(xié)議格式,它所發(fā)出的信息幀中攜有目的控制器的ID號。如果目的控制器的ID號為0,則為廣播信息,否則只有和目的控制器的ID號相同的控制器才接收該幀并對幀格式和CRC檢驗(yàn)和進(jìn)行判斷。在緊急報(bào)警時,探測器的報(bào)警信息中攜有地址編號和時間信息,而在自動故障報(bào)警時,報(bào)警信息由故障地址編號和故障等級信息組成。控制器有2種運(yùn)行模式:模式A是雙向運(yùn)行,收到報(bào)警信息時立即將該信息轉(zhuǎn)發(fā)給PC機(jī);模式B是單向運(yùn)行,收到報(bào)警信息后首先在控制器的數(shù)據(jù)庫中保存該條信息。當(dāng)PC機(jī)來查詢火警信息時才發(fā)送給PC機(jī)。
PC機(jī)由后臺的基于Winsock的網(wǎng)絡(luò)程序?qū)?bào)警信息發(fā)往外部網(wǎng)絡(luò)。在Rabbit2000的協(xié)議棧中,對TCP/IP的實(shí)現(xiàn)是通過Dynamic C提供的TCP/IP應(yīng)用程序接口來實(shí)現(xiàn)的:
#define MY-GATEWAY “202.196.187.1” //網(wǎng)關(guān)
#define MY-IP-ADDRESS “202.196.187.28” //IP地址
#define MY-NETMASK “255.255.255.0” //子網(wǎng)掩碼
#memmap xmem //代碼存儲在擴(kuò)展存儲區(qū)
#use “dcritcp.lib” //數(shù)據(jù)庫
Sock_init() //TCP連接初始化
tcp_reserveport(MY_PORT) //TCP連接保持
tcp_open(socket,0,ip,PORT,NULL) //主機(jī)建立會話
tcp_listen(socket,MY_PORT,0,0,NULL,0) //監(jiān)聽端口
sock_established(socket) //建立TCP連接
sock_dataready(socket) //取得等待輸出的字符數(shù)
sock_gets(socket,buffer,len) //從套接字中讀取字符串
sock_twrites(socket,buffer,len) //向套接字中寫入字符串
sock_close(socket) //連接斷開
圖3 系統(tǒng)程序執(zhí)行過程圖
系統(tǒng)的工作過程如圖3。
通過安裝在上位機(jī)中的Web瀏覽器,在客戶端的瀏覽器中輸入現(xiàn)場設(shè)備的IP地址(202.196.187.28),即可獲得對現(xiàn)場設(shè)備的訪問權(quán),可直接訪問接入工業(yè)以太網(wǎng)的現(xiàn)場設(shè)備,獲得監(jiān)測數(shù)據(jù),如圖4所示。
圖4 監(jiān)控頁面
4結(jié)論
隨著以太網(wǎng)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)與以太網(wǎng)相結(jié)合應(yīng)用于工業(yè)控制領(lǐng)域是一種發(fā)展趨勢。Rabbit2000微處理器在同類8位微處理器中具有功能強(qiáng)、成本低、速度快等特點(diǎn),同時提供了一套嵌入式開發(fā)工具以及網(wǎng)絡(luò)支持的Dynamic C,使得網(wǎng)絡(luò)功能開發(fā)簡便、快捷,也證明了將嵌入式系統(tǒng)和以太網(wǎng)應(yīng)用于工業(yè)控制的可行性和實(shí)用性。
本系統(tǒng)的應(yīng)用較廣:
1)智能大廈。隨著計(jì)算機(jī)的普及應(yīng)用以及網(wǎng)絡(luò)和自動化技術(shù)的發(fā)展,大廈內(nèi)所有公共設(shè)備都將采用嵌人式智能測控系統(tǒng)來提高服務(wù)能力。
2)工業(yè)自動化。工業(yè)現(xiàn)場應(yīng)用了大量的8、16、32位嵌入式微控制器,其網(wǎng)絡(luò)化是提高生產(chǎn)效率和產(chǎn)品質(zhì)量、減少人力資源的主要途徑,在工業(yè)過程控制、電力系統(tǒng)、電網(wǎng)安全、電網(wǎng)設(shè)備監(jiān)測、石油化工等系統(tǒng)中具有廣闊的應(yīng)用前景。
3)智能儀器。根據(jù)不同要求,只需對軟硬件做部分修改,簡化系統(tǒng),大大地提高了開發(fā)效率,具有廣闊的應(yīng)用空間。
4)礦井智能監(jiān)測。能解決礦山網(wǎng)絡(luò)傳輸中有關(guān)安全信息數(shù)據(jù)的采集問題,應(yīng)用前景廣闊。
本文作者創(chuàng)新點(diǎn):1. 64路開關(guān)量輸入、8路模擬量輸入及16路開關(guān)量輸出,反映敏捷;2.輸入、輸出全部電氣隔離、具有聲光報(bào)警的功能;3. 控制器有2種運(yùn)行模式:雙向運(yùn)行和單向運(yùn)行,保證信息傳遞的目的性;4. 支持Dynamic C,支持多任務(wù),可以滿足各種復(fù)雜控制、運(yùn)算的要求及遠(yuǎn)程在線編程、維護(hù);5. 與同類產(chǎn)品相比,具有功能齊全,性能可靠,使用方便等特點(diǎn)。
參考文獻(xiàn)
[1]俞新祥,翁一武.基于Internet 的分布式供能遠(yuǎn)程監(jiān)控系統(tǒng)[J].微計(jì)算機(jī)信息,2006,7-1:4-6
[2]鮑吉龍,葉平.工業(yè)監(jiān)控系統(tǒng)的網(wǎng)絡(luò)化發(fā)展[J].微計(jì)算機(jī)信息,2006,6-1:66-68
[3]Z-World.Rabbit2000 Microprocessor User’s Manual.1999.
[4]Z-World. Dynamic C Premier for Rabbit Semiconductor Microprocessors(Integrated C Development System User’s Manua1)[Z].1999
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論