? 關鍵詞 ?? 多CPU系統??? 單片機? 可編程器件?? 串行EEPROM
1 引言
??? 隨著微電子技術的飛速發展,單片機的價格已變得十分低廉,特別是ATMEL公司的89系列單片機,內置閃速(Flash)存儲器,具有51系列單片機的內核,尤其是89C2051只有20個引腳,2K Flash程序存儲器,本身已是一個完整的微處理機系統,具有很高的性能價格比。此類CPU可以作為可編程器件用于構成一個比較復雜的應用系統,此方法比使用PAL、GAL等產品的性能價格比更高。現今軟件工程中比較流行的方法是面向對象的模塊化設計,其思想是將復雜的系統劃分成任務單一的模塊,有利于多人共同開發大規模軟件。工控機也大多采用模塊化設計,根據工控具體情況可方便地組成應用系統。同樣一個小的應用系統也可用單片機作為可編程器件模塊來構成。即將系統劃分成任務單一的模塊,每個器件模塊編程簡單,性能可靠,抗干擾性能強,從而大大節省設計和編程時間。但同時也出現了一個怎樣實現各器件模塊間交換信息的問題,對于速度要求比較高時,可采用并行通信或并行RAM共享方案;而對速度要求比較低時,可采用串行通信方法,但此方案要占用CPU的串行口的資源,且多點對多點的通信編程也比較困難。而共享串行EEPROM的方案能夠解決這一矛盾,下面以智能熱量儀為例介紹此方案。
2 系統的模塊化設計 ??? 根據具體情況將系統劃分成若干功能單一的模塊。劃分的原則是:實時性強的任務由一獨立器件模塊來完成,信息在器件模塊之間的交換要少,且時間性要求要低。 ??? 根據智能熱量儀要求將其劃分成三個器件模塊,功能框圖如圖1所示。CPU1完成智能熱量儀物理量的采集,即溫差、壓力、流量、壓差或頻率的采集,并能輸出控制信號,包括電流和開關量輸出;CPU2實現人機對話功能:顯示各物理量(溫度、壓力、壓差、頻率、瞬時流量或累積熱量),接收儀表參數的輸入等;CPU3完成與上位機間的通信和打印功能。EEPROM 93LC66連接這三個器件模塊。為了編程方便,三個CPU的P1.0~P1.3都依次連接EEPROM的CS、CLK、DI、DO;而三個CPU的P1.4、P1.5則連在一起,作為EEPROM狀態的標志,用來協調三個CPU的工作。 |
3 分時共享EEPROM
??? 電路的核心器件是EEPROM(93LC66),它同時與三個CPU的P1.0~P1.3相接,所以,三個CPU只能分時訪問EEPROM。也就是說,同一時間只能有一個CPU訪問它,不訪問時將P1.0~P1.3初始化為高電平,否則會出現競爭。這就要求CPU在訪問EEPROM前,必須知道EEPROM的狀態,為此,將三個CPU的P1.4、P1.5分別連接在一起作為標志,三者的狀態編碼00、01、10分別表示CPU1至CPU3中的哪一個在訪問EEPROM;CPU都不訪問EEPROM時,各CPU初始化標志P1.4、P1.5為高電平,即11。某CPU要訪問EEPROM時,先測試標志P1.4、P1.5,若為11,說明此時CPU可以訪問EEPROM,立即將標志P1.4、P1.5置成此CPU的標志碼,表示EEPROM處于忙狀態,其它CPU不能再訪問EEPROM;該CPU訪問完EEPROM后,再將P1.4、P1.5置為高電平。為了防止幾個CPU同時測試P1.4、P1.5位,可規定CPU1訪問EEPROM的優先級比CPU2、CPU3的高。CPU2或CPU3在測試完P1.4、P1.5后,若為11,此CPU立即將P1.4、P1.5置成自己的標志,再測試一下置為1的位是否還為1;若為0,說明有其它CPU在同時訪問EEPROM,則退出等待;若還為1,則進行訪問EEPROM。
??? CPU1將采集來的數據進行處理,根據EEPROM內的儀表參數計算出瞬時的流量和熱量,進行熱量的累積,每5s將數據寫入EEPROM一次,并根據瞬時量計算出輸出量送給D/A轉換電路,輸出控制電流;CPU2定時地從EEPROM內讀出各物理量暫存在CPU內,根據從鍵盤接收的命令顯示相應的物理量,還可將鍵盤送來的儀表參數寫入EEPROM;CPU3也定時地從EEPROM內讀出數據存在CPU內,定時或立即打印出來,并和上位機進行串行通信。各CPU在分時使用EEPROM的工作過程中,已實現了數據交換。
4 延長EEPROM工作壽命的方法
??? 各CPU頻繁地擦寫串行EEPROM,93LC′ ′ 系列的EEPROM擦寫次數典型值為100萬次,這是指某一位由1寫為0或由0寫為1的次數。而實際上寫入EEPROM的數據,對于某一位來說,寫入的數據并不是每次都是要變化的,實際測試可證明擦寫次數大于500萬次。按300萬次算,若5s寫一次,只能寫150天左右,顯然,這是不能滿足要求的。為此,可采用一種利用存儲器空間延長EEPROM工作壽命的方法。其方法為:數據存放的地址不是固定的,而是用一個固定的基地址加上EEPROM內的一個單元的內容(即偏移地址)作為真正的地址;若發現存儲單元已壞(寫入和讀出的內容不同),則偏移地址加一,重新寫入。如果采用100倍的存儲器空間冗余,可將EEPROM的實際壽命延長100倍。對于智能熱量儀,寫入EEPROM的數據為14字節,采用35倍冗余,選用93LC66,可使其壽命大于14年。
5 結束語
??? 串行EEPROM(以93LC66為例)數據的讀過程時間比較短,約為150ms(89C51的晶振頻率為12MHz),但寫過程時間較長,技術手冊給出的是每字節4ms,實測為2ms。根據各CPU完成任務不同,可將讀寫程序放在不同位置來實現。
??? 這種多CPU共享串行EEPROM的設計方法,各模塊的任務比較單一,又具有獨立性,因而降低了編程的工作量,也方便調試。若系統需要多于三個CPU時,和EEPROM連接的四條線類似總線方式與其它CPU相連,再增加一條或幾條狀態線即可。構成的系統如果要增加功能,可再增添一個或幾個模塊即可,而不影響原來設計的硬件和軟件,這就解決了過去一旦產品設計完成再想添加功能就很困難的問題。
參 考 文 獻
1 武漢力源單片機技術研究所. CMOS串行EEPROM原理及應用. ?
- PROM(48362)
相關推薦
51單片機的串行口擴展方法
51系列單片機雙CPU系統通信方法
8051單片機
單片機--串行口實驗 精選資料下載
單片機eeprom問題如何解決
單片機串行口的相關資料下載
單片機串行通信
單片機與CPU的相似與不同
單片機應用系統設計的基本方法
單片機的EEPROM的擦除/寫入/讀出
單片機的總線
AVR單片機
AVR單片機應用設計,pdf版下載
HOLTEK單片機、ABOV單片機、復旦微電子EEPROM
linux系統單片機與電腦串行通信
【單片機專題】單片機視頻教程_51單片機學習大全
為什么單片機中有Flash又有EEPROM呢
介紹單片機硬件系統
基于I2C串行總線在單片機系統中的數據
基于雙單片機的多路數據采集系統設計
如何使用單片機串行口通信
宏晶MCU單片機STC8F2K64S4-28I-LQFP44
HT66F002 SOP8 合泰HOLTEK 內置 EEPROM 經濟 A/D 型 Flash 單片機
串行EEPROM在MCS 51單片機系統中的應用

SPI串行EEPROM與PICmicro單片機的接口設計,A

【PADAUK】 應廣PGS134 應廣EEPROM單片機MCU芯片
【PADAUK】 應廣PGS152單片機EEPROM芯片
NY8A050D單片機,AD單片機,九齊代理
多CPU單片機系統設計在社區安防系統中的應用

多CPU系統共享串行EEPROM


二線制串行EEPROM應用

SPI串行EEPROM與PIC單片機的接口設計

基于單片機系統標準總線的CPU板的設計

實現8051 MCU與I2C?串行EEPROM的接口

8051 MCU與SPI串行EEPROM的接口設計

使用定時器實現PIC18單片機與兼容UNIO?總線串行EEPROM的接口

PICmicro中檔單片機系列之基本同步串行口(BSSP)

使用C18編譯器和MSSP模塊進行I2C?串行EEPROM與PIC18單片機的接口設計

AN993中文手冊之Microwire串行EEPROM和PIC16單片機的接口設計

AN1006中文手冊之SPI串行EEPROM與PIC18單片機的接口設計

AN1251中文手冊之使用HI-TECH C和定時器連接中檔PIC MCU和UNI/O串行EEPROM

24XXX串行EEPROM的詳細中文介紹和源代碼的資料概述

使用C語言和硬件模塊實現8051MCU與I2C串行EEPROM的接口的資料概述

串行EEPROM與8位PIC單片機的接口設計

實現8051MCU與I2C串行EEPROM的接口

8051MCU與SPI串行EEPROM的接口設計

使用C18編譯器進行SPI串行EEPROM與PIC18單片機的接口設計

SPI串行EEPROM與PIC18單片機的接口設計

Microwire串行EEPROM和PIC16單片機的接口設計

Microwire串行EEPROM與PIC18單片機的接口設計

SPI串行EEPROM與PICmicro單片機的接口設計

藍橋杯單片機開發EEPROM

評論