<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 設(shè)計應(yīng)用 > 一種基于以太網(wǎng)的嵌入式數(shù)字監(jiān)控系統(tǒng)

          一種基于以太網(wǎng)的嵌入式數(shù)字監(jiān)控系統(tǒng)

          作者:唐蘋 時間:2008-08-29 來源:微計算機信息 收藏

          摘要:本文根據(jù)監(jiān)控系統(tǒng)的發(fā)展現(xiàn)狀,提出了一個基于數(shù)字家庭監(jiān)控系統(tǒng)的設(shè)計方案,并初步比較完整的完成了該監(jiān)控系統(tǒng)的開發(fā)。系統(tǒng)采用現(xiàn)場監(jiān)控器進行數(shù)據(jù)采集,現(xiàn)場監(jiān)控器由數(shù)據(jù)采集卡和網(wǎng)絡(luò)通訊卡組成,現(xiàn)場控制卡負責(zé)接收監(jiān)控中心發(fā)出的控制命令,它們都是由一塊51控制,其軟件開發(fā)都是使用了C51和51匯編程序。

          關(guān)鍵字:監(jiān)控系統(tǒng);系統(tǒng);

          本文引用地址:http://www.ex-cimer.com/article/87546.htm

            1 引言

            隨著科技的進步及對生活質(zhì)量要求的不斷提高,信息技術(shù)和網(wǎng)絡(luò)化技術(shù)的發(fā)展,為家用電器居家環(huán)境集中控制和遠程遙控提供了可能。將信息技術(shù)與家電控制技術(shù)相融合,在很大程度上實現(xiàn)家庭生活的信息化和自動化,滿足人們舒適、快節(jié)奏的生活需要,當家庭采用了監(jiān)控系統(tǒng)之后,各種電子設(shè)備就能夠在幾乎無需過問的情況下進行操作。鑒于這種數(shù)字化家庭的發(fā)展趨勢,遠程監(jiān)控作為一種理想的有效的而且快捷方便的實現(xiàn)途徑己被廣泛采用。
           

            2 系統(tǒng)總體設(shè)計

            本系統(tǒng)將采用上、下位機的方式組建監(jiān)控系統(tǒng)。下位機工作于監(jiān)控現(xiàn)場,采用51系列控制;上位機則用于監(jiān)控中心,使用一臺PC機。單片機通過各種傳感器,采集數(shù)據(jù),通過卡控制芯片實現(xiàn)的網(wǎng)絡(luò)接口將監(jiān)控數(shù)據(jù)傳給異地的PC機,PC機的遠程監(jiān)控端接收監(jiān)控信息并存儲,然后進行相應(yīng)處理并發(fā)出相應(yīng)的報警信息。同時,PC機也可以向單片機發(fā)送指令,控制單片機的監(jiān)控行為。控制命令發(fā)出去以后,負責(zé)現(xiàn)場控制的單片機接受命令,經(jīng)過信息處理以后再執(zhí)行。

            3 監(jiān)控系統(tǒng)硬件設(shè)計

            對于現(xiàn)場監(jiān)控器和現(xiàn)場控制器都是分別由各自的單片機來組成,現(xiàn)場控制器的硬件設(shè)計與現(xiàn)場監(jiān)控器硬件設(shè)計一樣,都是包含了單片機最小系統(tǒng)的擴展,再加上各自的功能模塊。圖1是現(xiàn)場控制卡的硬件框圖。

            系統(tǒng)硬件設(shè)計主要包括兩部分內(nèi)容:一是單片機系統(tǒng)的擴展部分設(shè)計,主要是系統(tǒng)存儲器的擴展,存儲器擴展指EPROM, RAM的擴展等。二是功能模塊的設(shè)計,包括通信功能模塊、電機驅(qū)動模塊。

            3.1 單片機系統(tǒng)的擴展

            3.1.1 系統(tǒng)存儲器的擴展

            本系統(tǒng)使用的單片機為78E58B單片機。78E58B是一款以8051為核心的單片機,它具有集成度高、指令功能強、運算速度快、I/O接口功能強、可靠性高等優(yōu)點,包含32K字節(jié)的片內(nèi)Flash電擦寫程序存儲器:4K字節(jié)附加ROM; 512字節(jié)片內(nèi)RAM;三個16位定時器/計數(shù)器;一個串口。該芯片還包括8個中斷源,2個中斷優(yōu)先級的中斷資源。32K字節(jié)的程序存儲器對于系統(tǒng)來說己經(jīng)足夠了,所以沒有擴展外部程序存儲器,所以在硬件框圖中不必添加外部ROM,節(jié)省了系統(tǒng)開銷,還可以省卻部分電路、連線,減少了干擾源。然而,78E58B只有512字節(jié)的片內(nèi)RAM遠遠不能滿足系統(tǒng)功能的要求,故采用了8K字節(jié)的靜態(tài)RAM 6264作為外部數(shù)據(jù)存儲器。

            3.1.2 復(fù)位電路設(shè)計

            本系統(tǒng)的復(fù)位電路采用了電平式開關(guān)復(fù)位與上電復(fù)位,另外復(fù)位引腳還與網(wǎng)絡(luò)通訊卡上MCU的一個I/O口連接。使用這種復(fù)位電路,當該MCU中的程序在運行過程中出現(xiàn)問題的時候,就可以通過網(wǎng)絡(luò)通訊卡上的MCU使之復(fù)位,重新恢復(fù)正常工作。雖然這種復(fù)位電路干擾易串入復(fù)位端,但是一般不會造成單片機的錯誤復(fù)位。復(fù)位電路如圖2所示,但要注意的是這種復(fù)位電路要與手動的開關(guān)復(fù)位電路隔離,以免復(fù)位功能失效,甚至短路。

            3.2 接口實現(xiàn)

            3.2.1 RS232異步串行通信單元

            本系統(tǒng)采用RS232最簡單的全雙工通信方式,只用了三根線,即串行接收RXD,串行發(fā)送TXD和接地線GND。將"串行發(fā)送"和"串行接收"交叉連接,地線直接相連,其余信號線都不用。用軟件來實現(xiàn)通信的"握手"、空閑檢測等功能。并且選用MAX232串口通信信號轉(zhuǎn)換芯片來實現(xiàn)RS232與TTL的電平和正負邏輯電平的轉(zhuǎn)換。通過MAX232的TTL和RS-232的輸入/輸出端口,自動的調(diào)節(jié)了單片機的TTL電平信號和RS-232的串口通信信號的電平匹配。

            設(shè)計這部分硬件單元,主要是為了系統(tǒng)調(diào)試的需要。在調(diào)試階段,通過串行通信端口,向計算機輸出調(diào)試的結(jié)果,有利于觀察系統(tǒng)運行的狀態(tài)。另外一個目的是為了將來系統(tǒng)擴展的需要,可以方便的通過串行通信端口,向系統(tǒng)輸入必要的命令和信息。

            3.2.2 單片機雙機并行互連的實現(xiàn)方法

            實現(xiàn)現(xiàn)場控制卡和網(wǎng)絡(luò)通訊卡的連接實際上就是實現(xiàn)兩卡上單片機的互連。本來單片機帶有串口,利用串口進行互連通信非常方便,但是系統(tǒng)中的單片機的串口都要用于對外連接,所以單片機的串口就不能用做系統(tǒng)內(nèi)單片機之間的通信接口了。但是,單片機的并行端口也能相互連接來進行數(shù)據(jù)通信,因此就通過單片機的并行端口來實現(xiàn)現(xiàn)場控制卡和網(wǎng)絡(luò)通訊卡直接的互連。在本系統(tǒng)中,可根據(jù)不同的使用要求,來采用不同的并行連接方法。目前可用的連接方法包括以下三種:單向并行通信接口;主從并行通信接口;無主從雙向并行通信接口。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();