多CPU單片機(jī)系統(tǒng)設(shè)計(jì)在社區(qū)安防系統(tǒng)中的應(yīng)用
摘要:本文較為詳細(xì)地介紹基于多CPU的單片機(jī)系統(tǒng)設(shè)計(jì)思想,并給出它在社區(qū)安全防范系統(tǒng)中的應(yīng)用。
關(guān)鍵詞:多CPU 安全防范 系統(tǒng)設(shè)計(jì)
概述
隨著人們生活水平的提高和科學(xué)技術(shù)的發(fā)展,安全防范的問題引起了越來越多的關(guān)注。人們?cè)诔惺墁F(xiàn)代文明所帶來的高效率、快節(jié)奏壓力的同時(shí),都希望能擁有一個(gè)安全、舒適的家庭環(huán)境。因此,越來越多的安防產(chǎn)品應(yīng)運(yùn)而生,尤其是蓬勃發(fā)展的現(xiàn)代化社區(qū)物業(yè)管理,通過監(jiān)控網(wǎng)絡(luò)把家庭和社區(qū)值班室緊密地聯(lián)系起來,給人們的生活帶來了極大的方便。但是,有些社區(qū)監(jiān)控網(wǎng)絡(luò)并不能完全履行其職責(zé),存在一定的安全隱患。主要原因是目前大多數(shù)的監(jiān)控節(jié)點(diǎn)都是采用1個(gè)CPU完成所有的功能,包括掃描各傳輸器模塊狀態(tài)、信息處理、數(shù)據(jù)顯示、報(bào)警、與上位機(jī)通信等等。這無疑給此CPU帶來了很大的壓力:一旦出現(xiàn)故障,使得此單片機(jī)不能正常工作,則該監(jiān)控節(jié)點(diǎn)將完全癱瘓,報(bào)警信息將得不到有效的處理。另外,在一些實(shí)時(shí)性要求較高的多任務(wù)系統(tǒng)中,單CPU結(jié)構(gòu)也將顯得力不從心。那么,能否找到一種既簡單又經(jīng)濟(jì)的解決辦法,把目前服務(wù)器中較為流行的多CPU并行處理的設(shè)計(jì)思想融入到社區(qū)監(jiān)控網(wǎng)絡(luò)中來呢?答案是肯定的。隨著單片機(jī)技術(shù)的發(fā)展,單片機(jī)的價(jià)格在不斷下降,其價(jià)格甚至比一些常用的接口芯片還要低,這就使多CPU的單片機(jī)系統(tǒng)的成本大大降低。此外,由于采用多CPU的設(shè)計(jì)思想,將使系統(tǒng)在并行處理和實(shí)時(shí)采集數(shù)據(jù)方面具有明顯的優(yōu)勢(shì),能極大地提高系統(tǒng)的穩(wěn)定性和可靠性。尤其是對(duì)一些功能稍微復(fù)雜一點(diǎn)的系統(tǒng),多CPU系統(tǒng)設(shè)計(jì)方法將更能顯示出它的優(yōu)越性。那么,如何實(shí)現(xiàn)多CPU的單片機(jī)系統(tǒng)設(shè)計(jì)呢?本文將在這方面進(jìn)行一些有益的探索。
一、多CPU系統(tǒng)的設(shè)計(jì)原理
顧名思義,多CPU系統(tǒng)就是在1個(gè)系統(tǒng)中含有多個(gè)CPU。每個(gè)CPU獨(dú)立地處理1個(gè)或少量的事務(wù),然后通信某種方法,控制數(shù)據(jù)的合理流動(dòng),以完成設(shè)計(jì)要求的系統(tǒng)。其典型結(jié)構(gòu)如圖1所示。
從圖1中可以看到,多CPU系統(tǒng)中一個(gè)非常重要的問題,是如何解決好各CPU之間數(shù)據(jù)的合理流動(dòng)問題,以下是幾種常用的方法。
1.利用雙口RAM實(shí)現(xiàn)CPU之間的通信
雙口RAM是一種高速的并行傳輸芯片,是實(shí)現(xiàn)CPU之間通信的一種簡便有效的方法。常用的CMOS雙口RAM有IDT7132、IDT7142等型號(hào)。IDT7132和6116類似,都是CMOS靜態(tài)RAM,存儲(chǔ)容量均為2KB。不同點(diǎn)在于IDT7132有兩套I/O口,并有一套競(jìng)爭(zhēng)裁決電路。因此,IDT7132內(nèi)部的2KB存儲(chǔ)器可以通過左右兩邊的任一組I/O口進(jìn)行全異步的存儲(chǔ)器讀寫操作,能方便地實(shí)現(xiàn)CPU之間的數(shù)據(jù)交換。采用雙口RAM實(shí)現(xiàn)多CPU系統(tǒng)的示意圖如圖2所示。
利用這種方法可以實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。CPU對(duì)IDT7132的讀寫時(shí)間小于120ns,通常為幾十ns。當(dāng)工作電源為+5V時(shí),其讀寫的最大功耗為325mW,而在維持工作時(shí)最大功耗僅為5mW。另外,由于雙口RAM是一種通用芯片,因此,它在選擇與CPU接口時(shí)具有較大的靈活性。不過這種方法也會(huì)增加電路設(shè)計(jì)的難度和成本。
2.利用共享內(nèi)存的方法實(shí)現(xiàn)CPU之間的通信
這種方法與前面的方法類似。所不同的是,前一種方法是利用雙口RAM的一套競(jìng)爭(zhēng)裁決電路實(shí)現(xiàn)對(duì)RAM的訪問,而這里是利用不同的時(shí)序?qū)崿F(xiàn)共享內(nèi)存的。LON網(wǎng)絡(luò)中的Neuron節(jié)點(diǎn)芯片設(shè)計(jì)都是采用這種方法的,其典型結(jié)構(gòu)如圖3所示。
在Neuron芯片中,每個(gè)CPU最小周期等于3個(gè)系統(tǒng)周期;每個(gè)系統(tǒng)時(shí)鐘周期等于2個(gè)輸入鐘周期;3個(gè)CPU的最小周期分別間隔1個(gè)系統(tǒng)鐘周期。這樣,每個(gè)CPU在1個(gè)指令周期內(nèi)部能訪問存儲(chǔ)區(qū)和ALU一次。系統(tǒng)對(duì)3個(gè)CPU采用了管道技術(shù),在不影響性能的情況下降低硬件的需求。3個(gè)CPU可并行工作,不會(huì)造成耗時(shí)中斷和上下文切換。
利用這種方法也能夠?qū)崿F(xiàn)CPU之間數(shù)據(jù)的高速傳輸,但是,它必須制成專用芯片,把CPU和RAM等元件封裝在一起。因此,這種方法比較適合于特定的工業(yè)場(chǎng)合。
3.利用總線的方法實(shí)現(xiàn)CPU之間的通信
隨著總線技術(shù)的發(fā)展,使得多主多從的單片機(jī)系統(tǒng)設(shè)計(jì)變得越來越簡單。設(shè)計(jì)者只須通過接口芯片就可以將CPU掛到總線上去,實(shí)現(xiàn)CPU之間的通信,其典型的結(jié)構(gòu)如圖4所示。
這種方法具有結(jié)構(gòu)簡單、設(shè)計(jì)靈活、經(jīng)濟(jì)實(shí)惠的特點(diǎn)。在系統(tǒng)數(shù)據(jù)量不大,速度要求不是很高的情況下,應(yīng)該是一種很好的選擇方法。值得一提的是,在這種方法中,I2C總線以其結(jié)構(gòu)簡單、設(shè)計(jì)靈活、易于擴(kuò)展和開發(fā)周期短的特點(diǎn),越來越受到設(shè)計(jì)者的青睞。尤其目前很多單片機(jī)都帶有I2C接口,不用接口芯片就中以把CPU直接掛到總線上,使得電路設(shè)計(jì)更加簡單、經(jīng)濟(jì)。本文的多CPU系統(tǒng)也是基于I2C總線的一種安防系統(tǒng)。
二、基于多CPU下的社區(qū)安防系統(tǒng)的設(shè)計(jì)方法
1.系統(tǒng)的拓?fù)浣Y(jié)構(gòu)
系統(tǒng)的拓?fù)鋱D如圖5所示。該系統(tǒng)實(shí)際上是一個(gè)3級(jí)分布式測(cè)控系統(tǒng)。第1級(jí)由1臺(tái)安裝在社會(huì)值班室的PC機(jī)組成,是整個(gè)系統(tǒng)的核心部分。它主要負(fù)責(zé)向各家庭數(shù)據(jù)終端(HDT)發(fā)出各種命令,接收返回信息,并進(jìn)行數(shù)據(jù)庫管理和報(bào)表統(tǒng)計(jì)等工作。第2級(jí)由安裝在各家庭的家庭數(shù)據(jù)終端組成,相當(dāng)于1個(gè)監(jiān)控節(jié)點(diǎn)。它主要負(fù)責(zé)接收PC機(jī)發(fā)來的命令和向PC機(jī)發(fā)送各檢測(cè)模塊的檢測(cè)信息,并進(jìn)行顯示、報(bào)警、存儲(chǔ)等信息的處理。第3級(jí)由安裝在家庭各房間的各種模塊組成,包括煙感、紅外等報(bào)警模塊,水表、電表等數(shù)字模塊和家電控制的控制模塊。它主要負(fù)責(zé)檢測(cè)和控制各控制對(duì)象的狀態(tài)。
2.家庭數(shù)據(jù)終端(HDT)的功能
家庭數(shù)據(jù)終端是安裝在家庭內(nèi)部的1個(gè)監(jiān)控節(jié)點(diǎn),主要執(zhí)行以下任務(wù):(1)接收PC機(jī)發(fā)來的命令;(2)信息顯示;(3)鍵盤掃描;(4)聲光報(bào)警;(5)生成家庭狀態(tài)字節(jié),并向PC機(jī)發(fā)送各種狀態(tài)信息;(6)報(bào)警信息儲(chǔ)存,即“黑匣子”功能;(7)掃描各傳感器模塊狀態(tài)。另外,HDT還應(yīng)個(gè)有可添加擴(kuò)展模塊的功能。這些功能當(dāng)然可以用1個(gè)CPU實(shí)現(xiàn),但將給CPU帶來較大的工作量,降低了系統(tǒng)的安全性和可靠性。因此,我們采用多CPU的思想進(jìn)行系統(tǒng)的設(shè)計(jì)。
根據(jù)HDT的功能特點(diǎn),將任務(wù)分成3個(gè)部分,分別由3個(gè)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)行聲光報(bào)警。CPU-2專門用于與第3級(jí)各模塊的通信,包括:(1)掃描各傳感器模塊的報(bào)警狀態(tài),并及時(shí)通知其他CPU;(2)接收其他CPU傳送過來的命令,對(duì)有關(guān)控制對(duì)象進(jìn)行操作;(3)向AT24C64中存儲(chǔ)報(bào)警記錄,包括報(bào)警類型和報(bào)警時(shí)間,實(shí)現(xiàn)“黑匣子”功能。CPU-3專門用于信息顯示和鍵盤掃描,包括:(1)接收PCF8583的數(shù)據(jù),顯示時(shí)間;(2)接收CPU-2傳送來的信息,顯示報(bào)警類型或故障位置;(3)掃描鍵盤,并向其他CPU發(fā)送命令,完成布防、撤防、修改密碼等操作功能。在3個(gè)CPU之間,采用I2C總線進(jìn)行連接;CPU選用Philips公司生產(chǎn)的P87LPC76X芯片。P87LPC76X芯片是一種20腳封裝的單片機(jī),適合于許多要求高集成、低成本的場(chǎng)合,具有較高的性能價(jià)格比,是Philips小型封裝系列中的一員。它在提供很多新特征的同時(shí),提供了I2C總線的通信接口。另外,它還提供了3個(gè)寄存器和中斷控制位以實(shí)現(xiàn)對(duì)I2C總線的操作,因此,可以很容易地利用它的I2C接口實(shí)現(xiàn)多CPU的設(shè)計(jì)思想。
結(jié)束語
隨著單片機(jī)技術(shù)的迅速發(fā)展,封裝小、功能強(qiáng)、價(jià)格低的單片機(jī)越來越多地被開發(fā)出來。單片機(jī)所執(zhí)行的功能也會(huì)越來越專一,越來越簡單。這將為多CPU系統(tǒng)的設(shè)計(jì)提供一個(gè)堅(jiān)實(shí)的基礎(chǔ),也必然會(huì)提高系統(tǒng)的安全性和可靠性。
評(píng)論