鐵電存儲器在多CPU自動識別控制系統(tǒng)中的應用
1、自動識別控制系統(tǒng)簡介
自動識別技術是將數(shù)據(jù)自動識讀、自動輸入計算機的一種方法或手段。它是包括條碼技術、磁條(卡)技術、光學字符識別、系統(tǒng)集成化、射頻技術、聲音識別及視覺識別等集計算機、光、機電、通信技術為一體的綜合性高新科學技術。自動識別技術提供了快速、準確地進行數(shù)據(jù)采集輸入的有效手段,解決了手工數(shù)據(jù)輸入速度慢、錯誤率高等造成的“瓶頸”難題,因而自動識別技術作為一種革命性的高新技術,日益為人們所接受。
自動識別控制系統(tǒng)則是集微機自動識別技術和現(xiàn)代安全管理與控制措施為一體的系統(tǒng),它涉及電子,機械,光學,計算機技術,通訊技術,生物技術等諸多新技術。是解決重要部門出入口實現(xiàn)安全防范管理的有效措施。包括出入口門禁安全管理系統(tǒng)、電梯控制系統(tǒng)、車輛進出控制系統(tǒng)、物業(yè)消防監(jiān)控系統(tǒng)、保安巡檢管理系統(tǒng)等,適用各種機要部門,如銀行、賓館、機房、軍械庫、機要室、辦公間,智能化小區(qū),工廠等。
自動識別控制系統(tǒng)在工作環(huán)境安全、人事考勤管理等行政管理工作中發(fā)揮著巨大的作用。因此設計一款性能價格比較高的產(chǎn)品將有著廣泛的應用前景。
2、自動識別控制系統(tǒng)的功能組成
作為一種通用性強、功能齊全 的自動識別控制系統(tǒng),應該具有眾多組成要素。下面我們就以一個4門門禁控制器為例來說明,它的功能模塊組成如下:
4路開門繼電器控制電路+1路報警繼電器控制電路
4路門位置信號偵測電路+4路開門按鈕信號偵測電路+4路防破壞信號偵測電路
4路開關量輸入電路+4路開關量輸出電路
8路WIGEN信號譯碼電路(用于接8個WIGEN讀卡器)
2路ABA信號譯碼電路與2路鍵盤仿真信號電路(用于接2個ABA讀卡器或2個鍵盤仿真讀卡器)
1路TTL232/RS232信號譯碼電路(用于接1個TTL232/RS232讀卡器)
1路RS485信號控制電路(用于連接多達32個RS485方式的讀卡器)
1路設備ID號設置撥斷開關
時鐘芯片控制電路
存儲芯片控制電路(用于存儲用戶信息和事件信息)
系統(tǒng)監(jiān)控電路
通訊電路(用于和上位機進行通訊)
3、幾種主控設計方案的比較
隨著電子技術的發(fā)展,各種CPU、存儲芯片、系統(tǒng)擴展芯片、時鐘芯片等層出不窮,在給設計人員有了更多選擇的同時,也帶來了另一個問題,就是該如何選擇一種適合于自身的一種方案。這個方案不但要能實現(xiàn)系統(tǒng)需求的基本功能,還要在可靠性、開發(fā)難易程度、芯片供貨情況以及價格等方面都要做到適宜。針對上面列出的4門控制器的功能特點,我們可做以下幾個方案:
3.1.傳統(tǒng)形式
這是一種為廣大嵌入式系統(tǒng)設計人員熟知的形式,在很多教科書及應用系統(tǒng)中有著詳細的介紹。
在主控方面,一般采用以應用最廣的8051+EPROM程序存儲器或帶有大容量FLASH ROM 的CPU如SST89C58或P89C51RD2
在系統(tǒng)擴展方面,2片74HC138用于譯碼,1片74HC373用于地位地址鎖存,1片74HC245用于總線驅動,3片74HC377用于信號輸出,4片74HC244用于信號輸入
存儲方面,一片628128用于存儲事件信息和外部變量,一片28SF040或39SF040用于存儲各種有效卡片、非法卡片信息
時鐘方面,采用一片串行方式的DS1302或并行數(shù)據(jù)方式的DS12C887
通訊方面,2片485芯片,一片用于和上位機通訊,一片用于和RS485讀卡器通訊
這種方式具有芯片價格較便宜,供貨渠道廣泛,編程調試較容易等優(yōu)點,但其體積龐大,芯片多,硬件故障點增多,而且由于任務眾多,導致CPU工作繁忙,軟件中的各種中斷處理容易干擾,雖然現(xiàn)在已有基于8051的實時多任務操作系統(tǒng)可以解決此問題,但是這要求設計者一方面要選擇價格相對高的CPU,另一方面也要學習消化RTX51,而將其正確的應用到系統(tǒng)中去需要更高的軟件技巧和更多的調試時間。否則軟件的可靠性無法保證。這對于產(chǎn)品的快速市場化是不利的。
3.2.ARM+CPLD
ARM芯片及CPLD芯片是最近幾年流行起來的嵌入式系統(tǒng)的構成部件,他們將可能成為后PC時代嵌入式系統(tǒng)設計的首選。ARM是一款32位的精簡指令集(RISC)處理器架構,以其高性能、低功耗、低成本占有市場。 以PHILIPS的LPC2104為例,它具有128K 片內Flash程序存儲器、最多64K靜態(tài)RAM、雙UART、兩個定時器、具有4路捕獲/比較通道、多達6路輸出的PWM單元、實時時鐘、看門狗定時器、通用I/O口、CPU操作頻率可達60MHz等特點。
CPLD是復雜可編程邏輯陣列的簡稱,它具有口線多、速度快、可編程、純硬件電路等特點。
根據(jù)我們提出的4門控制器的功能,一片ARM及一片CPLD,加上少許外圍電路,即可實現(xiàn)。這樣不僅使系統(tǒng)板的體積大大減少,而且增加了可靠性,這是其他方式所不能比擬的。但是,由于ARM及CPLD均是新興的技術,對于一些基于8051單片機經(jīng)驗豐富的設計者而言,卻需要有一個不短的時間去學習消化實踐,另外,有關ARM及CPLD的開發(fā)工具,如仿真器、集成開發(fā)環(huán)境IDE都在一個比較高的價位上,且學習及使用都比8051難多了。這不僅對產(chǎn)品的快速市場化不利,而且也不適合對某些場合靈活多變的設計。而且,目前這兩種芯片的價格較8051組成的系統(tǒng)價格仍偏高,這也不太適合應用于本文提出的通用控制器。
3.3.多CPU系統(tǒng)
在經(jīng)過對上述兩種方案的比較后,是否還有其他某種使用芯片數(shù)量最少、價格最便宜、功能最齊全、設計靈活多變的方案呢?答案是肯定的。那就是采用多CPU系統(tǒng)。基于8051芯片如AT89x52的廣泛使用,使單片機的價格大大下降。目前,89X52的市場零售價已經(jīng)低于8255、8279、8253、8250等專用接口芯片中的任何一種;而89X52的功能實際上遠遠超過以上芯片。因此,如把89x52作為接口芯片使用,在經(jīng)濟上是合算的。這樣就解決了系統(tǒng)擴展芯片眾多的缺點。一片89x52有32個I/O口,均可做輸入輸出,且有3個定時器和2個外部中斷,完全可以解決對ABA/WIGEN/232不同串行信號的處理。
正如軟件可由實時多任務操作系統(tǒng)RTOS來實現(xiàn)一樣,硬件一樣可用多CPU組成的系統(tǒng)來實現(xiàn)。
這樣,本文提出得4門控制器將由3片CPU共同組成,它具有以下特點 芯片數(shù)目少。除了存儲芯片和時鐘芯片,基本只剩下3塊89S52 CPU用89S52價格低的特點,充當外設。使用靈活??筛鶕?jù)情況減少某個CPU或更改其程序完成不同的功能原來寫在一個CPU中的程序分離,使每個芯片基本上在8K之內完成,也就是都可選擇89S52,不用采用昂貴的大容量FLASH 8051內核的 CPU。加了看門狗的主CPU可以實時監(jiān)控另外兩個CPU的工作是否正常各CPU各司其職。提高了與上位機通訊的速度及準確性,提高了讀寫存儲的速度以及訪問FALSH的時間。由于將個任務分解,所以每個CPU所用的寄存器較少,均可以使用89S52自帶的256字節(jié)RAM即可,不必使用XDATA訪問RAM 中的CPU ,提高了各CPU執(zhí)行的速度。
4、選擇FM3808為多功能存儲、時鐘、系統(tǒng)監(jiān)控芯片
4.1.傳統(tǒng)方式的說明
在確立了主控方式之后,要選擇存儲、時鐘及系統(tǒng)監(jiān)控芯片,我們先來分析以往芯片的選擇正如3.1種所描述的,除了選擇具有512K BYTES的FLASH ROM 芯片作為卡號存儲芯片外(因為無論有效無效卡號,其更改頻率是不高的,采用此芯片不會影響芯片),作為常用的信息存儲及外部寄存器芯片,一般采用SRAM如628128,雖然此芯片目前價格很便宜,但由于系統(tǒng)掉電后,其中的所有信息消失,所以必須加掉電保護電路和電池。而無論采用專用的掉電保護芯片和采用分立元件組成的對電路,都不能100%的保證數(shù)據(jù)部丟失,尤其是在電源不穩(wěn)定和干擾嚴重的環(huán)境下。
時鐘有眾多選擇,如DS1302及12887,但價格不低監(jiān)控芯片也有很多種,如X25045,它集成了看門狗、電壓監(jiān)測、可靠復位及EEPROM等特點,但價格也不低。
4.2. FM3808的特點
為了使系統(tǒng)具有更高的可靠性以及小型化,我們將采用RAMTRON的新型多功能芯片:
FM3808,一種將掉電非遺失、實時時鐘、系統(tǒng)監(jiān)控于一體的高性能芯片。它具有以下特點:
32K*8 BIT 非易失RAM
高達100億次的讀寫次數(shù)
寫無延時
數(shù)據(jù)可保存10年
內置低電壓保護
實時時鐘
后備電源切換
可編程時鐘日歷報警
可編程看門狗定時器
電源監(jiān)測
可編程中斷輸出
可編程CPU復位或中斷
5V工作電壓
后備電壓可低至5V
動態(tài)電流25mA
時鐘后備電流1uA
5、選擇FM24C16作為多CPU通訊中樞
在確立以多CPU方式作為系統(tǒng)主控方案后,需要解決一個最關鍵的問題,那就是CPU之間的通訊。讓我們先來比較一下幾種數(shù)據(jù)交換的優(yōu)缺點。
5.1.幾種單片機之間的通信方式的可行性分析
采用硬件UART進行異步串行通信。這是一種占用口線少,有效、可靠的通信方式;但在本文提出的4門控制器方式中,一個CPU的UART要完成與上位機的通訊,一個CPU的UART負責與485讀卡器或232讀卡器之間的通訊,可見硬件資源是不夠的。這種方法不適合本例。
采用片內SPI接口或2C總線模塊串行通信形式。SPI/I2C接口具有硬件簡單、軟件編程容易等特點,但目前大多數(shù)單片機不具備硬件SPI/I2C模塊。特別是我們采用的通用廉價的89X52系列單片機。這種方法也不可行??趯诓⑿型ㄐ?,利用單片機的口線直接相連,加上1~2條握手信號線。這種方式的特點是通信速度快,1次可以傳輸4位或8位,甚至更多,但是并行RAM需要占用大量的口線(數(shù)據(jù)線+地址線+讀寫線+片選線+握手線),一般在16條以上。這是一個讓人望而生畏的數(shù)字,而且會大大增加PCB面積并給布線帶來一定的困難。這有悖于將CPU口線用于擴展口線的特點。使實際需要的口線不夠用,因此也是不可行的。利用雙口RAM作為緩沖器通信。這種方式的最大特點就是通信速度快,兩邊都可以直接用讀寫存儲器的指令直接操作;但這種方式需要大量的口線,而且雙口RAM的價格很高。同樣不予考慮。利用自定串行通訊協(xié)議在CPU間進行通訊。這是在FM24C16未面世以來,最符合本文提出的4門控制器的一種方式,且已正常應用于實際系統(tǒng)當中。雖然可以滿足本系統(tǒng)的需要,占用口線少,使用靈活,但調試相當繁瑣,因為不但要正確解決好中斷的請求問題,還要精心調試時序以及通訊協(xié)議,尤其是在3個CPU間的通訊當中,單片機要傳遞的每一位或每一個字節(jié)做出響應,通信數(shù)據(jù)量較大時會耗費大量的軟件資源,這在一些實時性要求高的地方是不允許的。況且沒個CPU都有各自的任務,如果將太多的軟件資源用于數(shù)據(jù)交換,則失去了采用多CPU方案的意義。
5.2.FM24C16的特點
針對自定串行通訊協(xié)議存在的問題,我們設想若是在單片機之間增加1個數(shù)據(jù)緩沖器,大批數(shù)據(jù)先寫入緩沖區(qū),然后再讓對方去取, 各個單片機對數(shù)據(jù)緩沖器都是主控模式,這樣必然會大大提高通信效率。不選擇EEPROM是因為其讀寫次數(shù)有限且速度慢,而串行數(shù)據(jù)緩沖的RAM不但難以買到而且價格很高。移位寄存器也可以做數(shù)據(jù)緩沖器,但目前容量最大的也只128位,因為是“先進先出”結構,所以不管傳遞數(shù)據(jù)多少,接收方必須移完整個寄存器,靈活性差而且大容量的移位寄存器也是少見難買的。
而隨著美國Ramtran公司一種被稱為“鐵電存儲器”( 簡稱FRAM)的新型非易失性存儲器件的推出,給我們帶來了解決方法。其中的FM24C16應用于本文的4門控制器就再合適不過了。
不需寫入時間、讀寫次數(shù)無限沒有分布結構可以連續(xù)寫放的優(yōu)點,具有RAM與EEPROM的雙得特性
價格較低因此我們可以將3個CPU 與1片F(xiàn)RAM接成多主-從的I2C總線方式,加上幾條握手線,軟件方面解決好I2C多主-從的控制沖突與通信協(xié)議問題,即可實現(xiàn)簡單、高效、可靠的通信。
6、各CPU功能規(guī)劃
6.1.CPU1功能介紹
任務1:定時發(fā)送繼電器控制信息 (24C16中的第1頁01-08字節(jié))
任務2:定時發(fā)送正常狀態(tài)信息 (24C16中的第1頁61字節(jié))
任務3:根據(jù)條件實時發(fā)送設置信息24C16中的第4頁01---字節(jié))
任務4:定時查詢CPU2的監(jiān)測信息(24C16中的第2頁01-15字節(jié))
任務5:定時查詢CPU3機器號信息 (24C16中的第3頁01-05字節(jié))
任務6:定時查詢CPU3的卡片信息(24C16中的第3頁11-25字節(jié))
任務7:監(jiān)控串行口由上位機發(fā)出的命令
任務8:處理卡號信息
任務9:定時查詢FM3808的時鐘信息
6.2.CPU2功能介紹
任務1:定時查詢CPU1的控制信息(24C16中的第1頁 01-08字節(jié))
任務2:每隔 2S查詢CPU1的狀態(tài)信息(24C16中的第1頁 61字節(jié))
任務3:每隔 2S查詢CPU3的狀態(tài)信息(24C16中的第3頁 31字節(jié))
任務4:實時發(fā)送監(jiān)測信息(24C16中的第2頁01-15字節(jié))
任務5:實時發(fā)送時鐘信息(24C16中的第2頁21-36字節(jié))
6.3.CPU3功能介紹
任務1:定時發(fā)送發(fā)送機器號信息 (24C16中的第3頁01-05字節(jié))
任務2:根據(jù)變化實時發(fā)送卡片信息 (24C16中的第3頁11-26字節(jié))
任務3:定時發(fā)送發(fā)送正常狀態(tài)信息(24C16中的第3頁31字節(jié))
任務4:監(jiān)控485讀卡器信息
任務5:監(jiān)控wigen26讀卡器信息
任務6:監(jiān)控ABA/鍵盤仿真讀卡器信息
7.系統(tǒng)功能框圖
8.結束語
本文給出的基于多cpu方式的4門控制器,一方面充分利用鐵電存儲器FM3808非易失RAM及融合時鐘、監(jiān)控與一體的多功能特點,另一方面將FM24c16的讀寫速度快、讀寫次數(shù)巨大的特點完美的嵌入到3個cpu間的通訊當中,實現(xiàn)了多cpu系統(tǒng)使用靈活、編程方便、資源豐富的多快好省的優(yōu)越性。
此控制器不僅可作為自動識別多門控制系統(tǒng)的主控器,而且在空調控制、工業(yè)控制等領域也進行了實踐應用,并取得了良好的效果。
參考文獻
(1)陳 沖,一種基于鐵電存儲器的雙機串行通信技術,單片機及嵌入式系統(tǒng)應用,2002
評論