新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機雙CPU構(gòu)成的復(fù)雜系統(tǒng)應(yīng)用研究

基于單片機雙CPU構(gòu)成的復(fù)雜系統(tǒng)應(yīng)用研究

作者: 時間:2011-05-21 來源:網(wǎng)絡(luò) 收藏

介紹了的電路以及該系統(tǒng)的幾種實例。
關(guān)鍵詞:,雙,總線,數(shù)據(jù)存儲器

本文引用地址:http://butianyuan.cn/article/172745.htm


  以其功能強、體積小、可靠性高及價格低廉等優(yōu)勢,被廣泛在各種智能化儀器、儀表以及各種小型控制系統(tǒng)中。但其本身結(jié)構(gòu)較為簡單,自身資源少,在一些較為復(fù)雜的系統(tǒng)中就顯出其硬件資源不足,速度太慢等缺點。在這種情況下,往往采取雙或多CPU的設(shè)計方案,以彌補其不足。但是由于單片微機不像通用的微機系統(tǒng)具有其它總線主控設(shè)備向CPU請求總線使用申請信號輸入端,以及CPU對系統(tǒng)中其他總線主控設(shè)備請求使用權(quán)的應(yīng)答信號輸出端,這就給雙CPU系統(tǒng)的設(shè)計帶來一定的困難。本文提出一種雙CPU共享外部數(shù)據(jù)存儲器的設(shè)計方案,并介紹了該系統(tǒng)的幾種應(yīng)用實例。




1 系統(tǒng)的硬件設(shè)計
  ATMEL公司的89系列是目前廣泛應(yīng)用的單片微機,圖1所示的是用兩片89C52和一片6264的雙CPU共享一個外部存儲器系統(tǒng)。其中89C52(1)為主CPU,89C52(2)為從CPU,兩個CPU分別用P1.0來執(zhí)行對6264地址線、數(shù)據(jù)線的控制權(quán),6264既可作為兩個CPU共享的數(shù)據(jù)存儲器,也可作為兩個CPU共享的程序存儲器。雙CPU之間的通信分別通過各自的和P1.1實現(xiàn)。當(dāng)從CPU需獲得6264的訪問權(quán)時,可以通過P1.1口線向主CPU提出中斷申請,主CPU同意從CPU享有對6264的控制權(quán)時,則首先使P1.0為“1”,讓出總線使用權(quán),隨后通過P1.1向從CPU送出應(yīng)答信號。從CPU得到主CPU的應(yīng)答信號后,便將P1.0變?yōu)?ldquo;0”,從而獲得了總線控制權(quán)。當(dāng)從CPU操作完畢,便通過P1.1通知主CPU恢復(fù)總線控制權(quán)。當(dāng)從CPU正處于對總線的使用狀態(tài)中,而主CPU需立即恢復(fù)控制權(quán)時,也可通過主CPU的P1.1向從CPU發(fā)出中斷申請,從而恢復(fù)總線的使用權(quán)。
2 應(yīng)用之一(主、從處理器工作模式)
  當(dāng)某些單片機系統(tǒng)需處理的問題較多時,例如,需快速進行數(shù)據(jù)采集與分析,鍵盤掃描,顯示與打印,執(zhí)行機構(gòu)的驅(qū)動信號輸出等,這些操作都必須依據(jù)數(shù)據(jù)的最終處理結(jié)果,使用一個CPU來同時完成,時序上安排較困難,對故障分析和系統(tǒng)升級都會帶來麻煩。如采用圖1所示的雙CPU系統(tǒng)就能較為輕松地完成這些任務(wù)。主CPU負(fù)責(zé)數(shù)據(jù)處理、執(zhí)行機構(gòu)驅(qū)動信號的輸出、顯示、打印等工作,而從CPU負(fù)責(zé)數(shù)據(jù)采集、鍵盤掃描等。從CPU將采樣的數(shù)據(jù)或鍵盤的鍵值送入共享的數(shù)據(jù)存儲器后便通知主CPU負(fù)責(zé)處理。主CPU則從數(shù)據(jù)存貯器中讀取采集的數(shù)據(jù)或鍵碼后進行必要的處理,再進行顯示、打印,并根據(jù)需要驅(qū)動相應(yīng)的執(zhí)行機構(gòu)。設(shè)計人員可以將主、從CPU的程序分別設(shè)計調(diào)試,只要按照預(yù)先約定的控制規(guī)則,主、從CPU的程序可以由不同的設(shè)計人員同時完成。這就節(jié)省了大量的研發(fā)時間,加快了研制進度。
3 應(yīng)用之二(系統(tǒng)軟件加密)
  89C52單片機其內(nèi)部駐留有8KB程序存儲器,自帶軟件加密字,以防軟件被竊。但就目前技術(shù)而言,通過專用破解工具進行程序解密是輕而易舉的事。一旦源程序被解密,極易被分析后進行非法修改或升級,這樣整個系統(tǒng)就被竊取了。而采用雙CPU,就可以通過軟件加密的方法使非法竊取者不易獲得兩個CPU運行的源程序,具體方法如下:
  我們可以將兩個CPU運行程序中的關(guān)鍵程序段不放在各自89C52的內(nèi)部程序存儲器中,而是將這些關(guān)鍵的程序段通過匯編成機器碼后,分別讓另一個CPU以數(shù)據(jù)的形式寫入外部數(shù)據(jù)存儲器。如主CPU的一部分程序段匯編成機器碼后,由從CPU以數(shù)據(jù)的形式寫入圖1中所示的6264中,數(shù)據(jù)寫入后,從CPU通過P1.1向主CPU發(fā)出中斷請求,主CPU響應(yīng)中斷,轉(zhuǎn)向外部6264中取指令,而這些指令正是剛才從CPU以數(shù)據(jù)形式寫入的程序段,這些程序段可以是系統(tǒng)程序的一些關(guān)鍵部分,如標(biāo)志位、重要數(shù)據(jù)等,一旦主CPU執(zhí)行完這些程序后,又返回至內(nèi)部程序執(zhí)行,同時通知從CPU程序執(zhí)行完畢。從CPU隨后用其他數(shù)據(jù)覆蓋6264中剛才寫入的程序部分。系統(tǒng)設(shè)計者也可以用時間估算的辦法來覆蓋程序,如寫入6264的程序估計需執(zhí)行500μs,此時從CPU可啟動定時器,于1ms后將剛才寫入的數(shù)據(jù)覆蓋,使用這種方法可避免通過單步仿真操作來獲得這些程序。用同樣的方法也可對從CPU進行程序加密處理。
  采用這種方法來進行軟件加密的特點是:一般情況下軟件竊取者很難獲得全部源程序,因此,不能對系統(tǒng)的軟件進行修改、升級或仿制,從而能有效地保護設(shè)計者的權(quán)利。
  以下程序是主、從CPU進行程序加密的一個例子。首先,從CPU將主CPU執(zhí)行的程序以數(shù)據(jù)格式寫入6264。


4 結(jié)束語
  單片機雙CPU構(gòu)成提高了整個系統(tǒng)的性能,用這種方法還可以構(gòu)成兩個以上CPU的復(fù)雜系統(tǒng),從而完成更復(fù)雜的控制。用這種方法構(gòu)成的系統(tǒng)實際上是一個多CPU共享資源的問題,也是對總線使用權(quán)合理分配的問題。圖1所示介紹的是雙CPU共享SRAM,可以設(shè)想,只要是通過總線擴展的外設(shè),只需CPU間通過約定的通信和使用協(xié)議,同樣可以實現(xiàn)共享。



評論


相關(guān)推薦

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

關(guān)閉