新聞中心

EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 多CPU單片機(jī)系統(tǒng)設(shè)計在社區(qū)安防系統(tǒng)中的應(yīng)用

多CPU單片機(jī)系統(tǒng)設(shè)計在社區(qū)安防系統(tǒng)中的應(yīng)用

——
作者: 時間:2007-08-30 來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 收藏
概述

  隨著人們生活水平的提高和科學(xué)技術(shù)的發(fā)展,安全防范的問題引起了越來越多的關(guān)注。人們在承受現(xiàn)代文明所帶來的高效率、快節(jié)奏壓力的同時,都希望能擁有一個安全、舒適的家庭環(huán)境。因此,越來越多的安防產(chǎn)品應(yīng)運而生,尤其是蓬勃發(fā)展的現(xiàn)代化社區(qū)物業(yè)管理,通過監(jiān)控網(wǎng)絡(luò)把家庭和社區(qū)值班室緊密地聯(lián)系起來,給人們的生活帶來了極大的方便。但是,有些社區(qū)監(jiān)控網(wǎng)絡(luò)并不能完全履行其職責(zé),存在一定的安全隱患。主要原因是目前大多數(shù)的監(jiān)控節(jié)點都是采用1個CPU完成所有的功能,包括掃描各傳輸器模塊狀態(tài)、信息處理、數(shù)據(jù)顯示、報警、與上位機(jī)通信等等。這無疑給此CPU帶來了很大的壓力:一旦出現(xiàn)故障,使得此不能正常工作,則該監(jiān)控節(jié)點將完全癱瘓,報警信息將得不到有效的處理。另外,在一些實時性要求較高的多任務(wù)系統(tǒng)中,單CPU結(jié)構(gòu)也將顯得力不從心。那么,能否找到一種既簡單又經(jīng)濟(jì)的解決辦法,把目前服務(wù)器中較為流行的多CPU并行處理的設(shè)計思想融入到社區(qū)監(jiān)控網(wǎng)絡(luò)中來呢?答案是肯定的。隨著技術(shù)的發(fā)展,的價格在不斷下降,其價格甚至比一些常用的接口芯片還要低,這就使多CPU的單片機(jī)系統(tǒng)的成本大大降低。此外,由于采用多CPU的設(shè)計思想,將使系統(tǒng)在并行處理和實時采集數(shù)據(jù)方面具有明顯的優(yōu)勢,能極大地提高系統(tǒng)的穩(wěn)定性和可靠性。尤其是對一些功能稍微復(fù)雜一點的系統(tǒng),多CPU系統(tǒng)設(shè)計方法將更能顯示出它的優(yōu)越性。那么,如何實現(xiàn)多CPU的單片機(jī)系統(tǒng)設(shè)計呢?本文將在這方面進(jìn)行一些有益的探索。

  一、多CPU系統(tǒng)的設(shè)計原理

  顧名思義,多CPU系統(tǒng)就是在1個系統(tǒng)中含有多個CPU。每個CPU獨立地處理1個或少量的事務(wù),然后通信某種方法,控制數(shù)據(jù)的合理流動,以完成設(shè)計要求的系統(tǒng)。其典型結(jié)構(gòu)如圖1所示。

多CPU系統(tǒng)結(jié)構(gòu)

  從圖1中可以看到,多CPU系統(tǒng)中一個非常重要的問題,是如何解決好各CPU之間數(shù)據(jù)的合理流動問題,以下是幾種常用的方法。

  1.利用雙口RAM實現(xiàn)CPU之間的通信

  雙口RAM是一種高速的并行傳輸芯片,是實現(xiàn)CPU之間通信的一種簡便有效的方法。常用的CMOS雙口RAM有IDT7132、IDT7142等型號。IDT7132和6116類似,都是CMOS靜態(tài)RAM,存儲容量均為2KB。不同點在于IDT7132有兩套I/O口,并有一套競爭裁決電路。因此,IDT7132內(nèi)部的2KB存儲器可以通過左右兩邊的任一組I/O口進(jìn)行全異步的存儲器讀寫操作,能方便地實現(xiàn)CPU之間的數(shù)據(jù)交換。采用雙口RAM實現(xiàn)多CPU系統(tǒng)的示意圖如圖2所示。

采用雙口RAM實現(xiàn)多CPU系統(tǒng)的示意圖

  利用這種方法可以實現(xiàn)數(shù)據(jù)的高速傳輸。CPU對IDT7132的讀寫時間小于120ns,通常為幾十ns。當(dāng)工作電源為+5V時,其讀寫的最大功耗為325mW,而在維持工作時最大功耗僅為5mW。另外,由于雙口RAM是一種通用芯片,因此,它在選擇與CPU接口時具有較大的靈活性。不過這種方法也會增加電路設(shè)計的難度和成本。

  2.利用共享內(nèi)存的方法實現(xiàn)CPU之間的通信

  這種方法與前面的方法類似。所不同的是,前一種方法是利用雙口RAM的一套競爭裁決電路實現(xiàn)對RAM的訪問,而這里是利用不同的時序?qū)崿F(xiàn)共享內(nèi)存的。LON網(wǎng)絡(luò)中的Neuron節(jié)點芯片設(shè)計都是采用這種方法的,其典型結(jié)構(gòu)如圖3所示。

Neuron節(jié)點芯片的CPU結(jié)構(gòu)

  在Neuron芯片中,每個CPU最小周期等于3個系統(tǒng)周期;每個系統(tǒng)時鐘周期等于2個輸入鐘周期;3個CPU的最小周期 分別間隔1個系統(tǒng)鐘周期。這樣,每個CPU在1個指令周期內(nèi)部能訪問存儲區(qū)和ALU一次。系統(tǒng)對3個CPU采用了管道技術(shù),在不影響性能的情況下降低硬件的需求。3個CPU可并行工作,不會造成耗時中斷和上下文切換。

  利用這種方法也能夠?qū)崿F(xiàn)CPU之間數(shù)據(jù)的高速傳輸,但是,它必須制成專用芯片,把CPU和RAM等元件封裝在一起。因此,這種方法比較適合于特定的工業(yè)場合。

  3.利用總線的方法實現(xiàn)CPU之間的通信

  隨著總線技術(shù)的發(fā)展,使得多主多從的單片機(jī)系統(tǒng)設(shè)計變得越來越簡單。設(shè)計者只須通過接口芯片就可以將CPU掛到總線上去,實現(xiàn)CPU之間的通信,其典型的結(jié)構(gòu)如圖4所示。

總線方式下的多CPU結(jié)構(gòu)

  這種方法具有結(jié)構(gòu)簡單、設(shè)計靈活、經(jīng)濟(jì)實惠的特點。在系統(tǒng)數(shù)據(jù)量不大,速度要求不是很高的情況下,應(yīng)該是一種很好的選擇方法。值得一提的是,在這種方法中,I2C總線以其結(jié)構(gòu)簡單、設(shè)計靈活、易于擴(kuò)展和開發(fā)周期短的特點,越來越受到設(shè)計者的青睞。尤其目前很多單片機(jī)都帶有I2C接口,不用接口芯片就中以把CPU直接掛到總線上,使得電路設(shè)計更加簡單、經(jīng)濟(jì)。本文的多CPU系統(tǒng)也是基于I2C總線的一種安防系統(tǒng)。

二、基于多CPU下的社區(qū)安防系統(tǒng)的設(shè)計方法

  1.系統(tǒng)的拓?fù)浣Y(jié)構(gòu)

  系統(tǒng)的拓?fù)鋱D如圖5所示。該系統(tǒng)實際上是一個3級分布式測控系統(tǒng)。第1級由1臺安裝在社會值班室的PC機(jī)組成,是整個系統(tǒng)的核心部分。它主要負(fù)責(zé)向各家庭數(shù)據(jù)終端(HDT)發(fā)出各種命令,接收返回信息,并進(jìn)行數(shù)據(jù)庫管理和報表統(tǒng)計等工作。第2級由安裝在各家庭的家庭數(shù)據(jù)終端組成,相當(dāng)于1個監(jiān)控節(jié)點。它主要負(fù)責(zé)接收PC機(jī)發(fā)來的命令和向PC機(jī)發(fā)送各檢測模塊的檢測信息,并進(jìn)行顯示、報警、存儲等信息的處理。第3級由安裝在家庭各房間的各種模塊組成,包括煙感、紅外等報警模塊,水表、電表等數(shù)字模塊和家電控制的控制模塊。它主要負(fù)責(zé)檢測和控制各控制對象的狀態(tài)。

系統(tǒng)的拓?fù)鋱D

  2.家庭數(shù)據(jù)終端(HDT)的功能

  家庭數(shù)據(jù)終端是安裝在家庭內(nèi)部的1個監(jiān)控節(jié)點,主要執(zhí)行以下任務(wù):(1)接收PC機(jī)發(fā)來的命令;(2)信息顯示;(3)鍵盤掃描;(4)聲光報警;(5)生成家庭狀態(tài)字節(jié),并向PC機(jī)發(fā)送各種狀態(tài)信息;(6)報警信息儲存,即“黑匣子”功能;(7)掃描各傳感器模塊狀態(tài)。另外,HDT還應(yīng)個有可添加擴(kuò)展模塊的功能。這些功能當(dāng)然可以用1個CPU實現(xiàn),但將給CPU帶來較大的工作量,降低了系統(tǒng)的安全性和可靠性。因此,我們采用多CPU的思想進(jìn)行系統(tǒng)的設(shè)計。

  根據(jù)HDT的功能特點,將任務(wù)分成3個部分,分別由3個CPU來完成。各 CPU之間采用I2C總線進(jìn)行通信,其結(jié)構(gòu)如圖6所示。CPU-1專門用于與PC機(jī)的通信,包括:(1)接收PC機(jī)發(fā)來的命令,并傳送給其他CPU;(2)生成家庭狀態(tài)字節(jié),向PC機(jī)返回信息;(3)進(jìn)行聲光報警。CPU-2專門用于與第3級各模塊的通信,包括:(1)掃描各傳感器模塊的報警狀態(tài),并及時通知其他CPU;(2)接收其他CPU傳送過來的命令,對有關(guān)控制對象進(jìn)行操作;(3)向AT24C64中存儲報警記錄,包括報警類型和報警時間,實現(xiàn)“黑匣子”功能。CPU-3專門用于信息顯示和鍵盤掃描,包括:(1)接收PCF8583的數(shù)據(jù),顯示時間;(2)接收CPU-2傳送來的信息,顯示報警類型或故障位置;(3)掃描鍵盤,并向其他CPU發(fā)送命令,完成布防、撤防、修改密碼等操作功能。在3個CPU之間,采用I2C總線進(jìn)行連接;CPU選用Philips公司生產(chǎn)的P87LPC76X芯片。P87LPC76X芯片是一種20腳封裝的單片機(jī),適合于許多要求高集成、低成本的場合,具有較高的性能價格比,是Philips小型封裝系列中的一員。它在提供很多新特征的同時,提供了I2C總線的通信接口。另外,它還提供了3個寄存器和中斷控制位以實現(xiàn)對I2C總線的操作,因此,可以很容易地利用它的I2C接口實現(xiàn)多CPU的設(shè)計思想。

家庭數(shù)據(jù)終端結(jié)構(gòu)

  結(jié)束語

  隨著單片機(jī)技術(shù)的迅速發(fā)展,封裝小、功能強(qiáng)、價格低的單片機(jī)越來越多地被開發(fā)出來。單片機(jī)所執(zhí)行的功能也會越來越專一,越來越簡單。這將為多CPU系統(tǒng)的設(shè)計提供一個堅實的基礎(chǔ),也必然會提高系統(tǒng)的安全性和可靠性。

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


評論


相關(guān)推薦

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

關(guān)閉