0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機多CPU系統(tǒng)設(shè)計的詳細(xì)資料概述

Wildesbeast ? 來源:單片機教程網(wǎng) ? 作者:單片機教程網(wǎng) ? 2020-07-18 11:02 ? 次閱讀

針對重要系統(tǒng)可靠性要求,特設(shè)計了一種雙CPU控制系統(tǒng)。在該系統(tǒng)中,兩個CPU彼此獨立運行,可以自動或手動實現(xiàn)雙機的主輔切換,只有主CPU能正常讀寫外部RAM數(shù)據(jù)和控制輸出。

單片微機具有小巧靈活、易擴展成為功能強大的控制系統(tǒng)。目前,一些監(jiān)控終端以及許多獨立的控制系統(tǒng)(如:發(fā)電機的微機勵磁裝置)多以單片微機為核心構(gòu)成。但由于諸如工作環(huán)境惡劣、電磁干擾等原因,即使使用按工業(yè)測控環(huán)境要求設(shè)計的單片微機也難以保證控制系統(tǒng)能長期可靠的運行,從而導(dǎo)致控制系統(tǒng)癱瘓。這樣,如何提高控制系統(tǒng)的可靠性,保證測控系統(tǒng)能正確穩(wěn)定的運行就尤為重要。顯然,采用雙CPU冗余設(shè)計是非常有效的一種解決辦法。由于單片微機的功能強大,價格低廉,為設(shè)計雙機冗余系統(tǒng)提供了很好的條件。為此,我們設(shè)計了一種由兩片單片微機組成的雙機容錯系統(tǒng),以比較簡單和與傳統(tǒng)的多CPU系統(tǒng)完全不同思路的設(shè)計方法實現(xiàn)了雙機的互為備用及相互切換。在該雙機冗余系統(tǒng)設(shè)計中,其關(guān)鍵問題是雙機系統(tǒng)的重構(gòu)策略和雙機系統(tǒng)的仲裁邏輯切換。

1 傳統(tǒng)的多CPU系統(tǒng)設(shè)計方法

傳統(tǒng)的多CPU系統(tǒng)的常用設(shè)計方法有三種:

① 利用雙口RAM實現(xiàn)CPU之間的通信。雙口RAM是一種高速的并行傳輸芯片,具有兩套I/O口和競爭裁決電路,可以同時聯(lián)接兩個CPU,這樣通過雙口RAM可以實現(xiàn)多CPU之間通信。

② 利用共享內(nèi)存的方法實現(xiàn)CPU之間的通信。這種方法與上一種方法類似,所不同的是,上一種方法是利用雙口RAM的競爭裁決電路實現(xiàn)對RAM的訪問,而這種方法是利用不同的時序?qū)崿F(xiàn)內(nèi)存共享的。

③ 利用總線方法實現(xiàn)CPU之間的通信。通過接口芯片或CPU本身具備的SPI、I2C以及SMBus等接口實現(xiàn)CPU之間的通信。

2 該雙CPU系統(tǒng)的結(jié)構(gòu)和工作原理

該雙CPU控制系統(tǒng)與傳統(tǒng)的多CPU系統(tǒng)的設(shè)計方法完全不同,它由兩片Atmel公司生產(chǎn)的AT89C51 CPU構(gòu)成,雙機互為備用,彼此獨立并行運行,硬邏輯切換。其雙CPU控制系統(tǒng)原理框圖如圖1所示。

這是一種非表決式的雙機冗余系統(tǒng),一個CPU 作為另一CPU的熱備份 ,雙機在任務(wù)上同步運行。所有輸入信號通過輸入接口同時送給兩個CPU,但CPU 運算、處理后的輸出量受到仲裁切換電路的控制,只有主CPU允許讀寫外部數(shù)據(jù)存貯器及輸出至外部設(shè)備,當(dāng)主CPU發(fā)生故障時,系統(tǒng)的自我檢測切換邏輯將發(fā)出信號,自動切斷其輸出通道,并通過CPU的工作指示系統(tǒng)報警。此時,系統(tǒng)或自動或人工切換到另一個備用的CPU,并同時打開其輸出通道,備用機變?yōu)橹鳈C運行狀態(tài),控制系統(tǒng)這時降級為單機運行。人們可以將原主機拔離系統(tǒng)以便進行維修。從圖中可知,兩個CPU的地址、數(shù)據(jù)及控制總線都通過一組三態(tài)門(三態(tài)門1、2)輸出與外部數(shù)據(jù)存貯器相接,兩個CPU的某些輸出控制I/O口都通過另一組三態(tài)門(三態(tài)門3、4)輸出與外部輸出控制設(shè)備相接,兩組三態(tài)門的控制端都同時受仲裁切換電路控制,而仲裁切換電路的兩路輸出互為反邏輯,即只有一路輸出能使所控制的對應(yīng)三態(tài)門(如三態(tài)門1、3)正常輸出,另一路輸出使所控制的對應(yīng)三態(tài)門(如三態(tài)門2、4)處于高阻狀態(tài),從而不影響主CPU正常讀寫數(shù)據(jù)和向控制I/O口輸出數(shù)據(jù)。


表1 雙機仲裁切換邏輯真值表

3 雙機仲裁切換邏輯電路

在該雙CPU控制系統(tǒng)中,兩者互為熱備份,同時運行,一臺為主機,另一臺為備份機。在雙CPU都正常運行的情況下,系統(tǒng)默認(rèn)CPU1為主機, CPU2為備份機。當(dāng)主機出現(xiàn)故障時,要求系統(tǒng)能自動切換到備份機,使備份機提升成為主機,從而代替原主機從故障發(fā)生處連續(xù)運行并發(fā)出報警信號。同時要求能通過手動開關(guān)人為選定主機運行。設(shè)判別兩個CPU是否正常工作的信號分別為ST1、ST2,工作正常時它們的狀態(tài)為1,工作不正常時狀態(tài)為0。仲裁切換電路輸出為0的控制端控制工作正常的CPU的相應(yīng)三態(tài)門組使能,仲裁切換電路輸出為1的控制端控制另一CPU的相應(yīng)三態(tài)門組禁止輸出。自動或手動選擇主機的控制開關(guān)為S,當(dāng)兩個CPU都工作正常時,可通過S開關(guān)自動選擇或指定主機(當(dāng)S開關(guān)狀態(tài)為1時為自動默認(rèn)CPU1為主機,當(dāng)S開關(guān)狀態(tài)為0時則強制CPU2為主機);當(dāng)兩個CPU中任意一個工作不正常時,則此時與S開關(guān)的狀態(tài)無關(guān),仲裁切換電路的輸出能確保只有與工作正常的CPU相連的三態(tài)門組的使能端為0,從而控制該正常CPU正常讀寫數(shù)據(jù)和輸出控制;當(dāng)兩個CPU都不正常時,仲裁切換電路的兩個輸出都為1,兩個CPU都不能正常讀寫數(shù)據(jù)和輸出控制。這樣當(dāng)兩個CPU中任何一個或全正常時就能保證只有一個CPU能正常讀寫數(shù)據(jù)和輸出控制,當(dāng)兩個CPU都不正常時,則理所當(dāng)然系統(tǒng)不能正常工作。按要求可得真值表如表1所示。

由真值表可得仲裁切換電路的兩路控制三態(tài)門的控制信號邏輯CTL1、CTL2分別為:

,

構(gòu)成的仲裁切換電路如圖2所示。

4 CPU狀態(tài)監(jiān)控電路

監(jiān)控電路采用了具有電源監(jiān)控電路和看門狗功能的微處理芯片MAX813L,該芯片它具有4個功能:

① 看門狗計時器功能。當(dāng)看門狗輸入信號在1.6s內(nèi)無變化時,產(chǎn)生看門狗輸出;

② 電壓監(jiān)控功能。當(dāng)?shù)綦娀?a target="_blank">電源監(jiān)測電壓低于1.25V時,產(chǎn)生掉電輸出;

③ 上電復(fù)位功能。當(dāng)上電時自動產(chǎn)生脈寬200ms的復(fù)位信號;

④ 人工復(fù)位功能。當(dāng)人工復(fù)位端輸入低電平時,產(chǎn)生復(fù)位信號輸出。

MAX813L采用DIP-8封裝,如圖3所示,引腳功能說明如下:

① MR:手工復(fù)位輸入端,可接人工復(fù)位按鈕,該端輸入低電平保持140ms以上,可產(chǎn)生復(fù)位(RST)信號;

② Vcc:+5v電源;

③ GND:電源地;

④ PFI:電源檢測輸入端;

⑤ PFO:電源檢測輸出端,電源正常時,保持高電平;

⑥ WDI:看門狗輸入端。俗稱“喂狗”信號,必須在1.6s內(nèi)使該端輸入反向信號;

⑦ RST:復(fù)位輸出端。高電平有效,可輸出200ms的正脈沖,當(dāng)電源Vcc低于4.65v時,RST保持高電平;

⑧ WDO:看門狗輸出端。正常工作時輸出高電平,當(dāng)WDI信號在1.6s內(nèi)不能及時送入并反向時,該端輸出低電平信號。

因AT89C51無看門狗功能,為了監(jiān)測系統(tǒng)狀態(tài),在本系統(tǒng)中主要利用的是MAX813L的看門狗計時器功能。其中看門狗輸入端WDI由CPU的P3.4提供,CPU在規(guī)定的時間內(nèi)定時改變P3.4

的狀態(tài),由看門狗輸出端WDO提供當(dāng)前CPU的狀態(tài)信號至仲裁切換電路的STi(i =1或2)端,從而由仲裁切換電路自動或手動確定主機。圖4為用MAX813L為CPU1接的看門狗電路,當(dāng)CPU1工作正常時能正常提供P3.4信號則WDO端ST1輸出高電平,D1亮D2滅;當(dāng)CPU1工作不正常時不能正常提供P3.4信號則WDO端ST1輸出低電平,D2亮D1滅。

5 系統(tǒng)硬件電路

圖5為利用本文介紹的雙CPU的切換及控制系統(tǒng)組成的一種硬件電路。從圖中可知,系統(tǒng)每個CPU都可以通過RS232串行口與上位機通信,兩片CPU彼此獨立運行,通過雙機仲裁切換邏輯電路共享外部16KB RAM和控制8路I/O口輸出。利用這種方法還可以通過增加三態(tài)門組成更大容量(最大64KB)的外部RAM和更多的輸出控制I/O口或擴展I/O口。

圖5 一種雙CPU的切換及控制系統(tǒng)的硬件電路

6 結(jié)束語

該雙CPU控制系統(tǒng)構(gòu)思獨特,兩個CPU彼此獨立運行,但讀寫的都是同一塊外部RAM的數(shù)據(jù),只是只有主CPU能實際讀寫數(shù)據(jù),故不存在內(nèi)存數(shù)據(jù)交換和共享問題,同時也只有主CPU能輸出控制外部設(shè)備,可廣泛應(yīng)用于要求高可靠性控制的場合,作者將該項技術(shù)應(yīng)用到自行研制的電腦樣板切割機上取得了較滿意的結(jié)果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6040

    文章

    44594

    瀏覽量

    636928
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6642

    瀏覽量

    110724
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10890

    瀏覽量

    212407
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1369

    瀏覽量

    114821
收藏 人收藏

    評論

    相關(guān)推薦

    昂寶單片機相關(guān)資料

    昂寶單片機相關(guān)資料
    發(fā)表于 11-25 14:50 ?0次下載

    如何使用Pcm1681與單片機系統(tǒng)進行連接?

    需求是使用單片機播放Wave文件,Pcm格式(同時播放好幾個Wave文件),因此需要通道DAC; 我們選擇的時候Pcm1681,在Ti 網(wǎng)站的資料沒有看到直接的與單片機
    發(fā)表于 11-07 07:05

    基于51單片機的LED點陣滾動顯示系統(tǒng)

    微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、高效的解決方案。本設(shè)計所使用的芯片可兼容以下所有的51系列單片機(包括AT系列和STC
    的頭像 發(fā)表于 10-22 14:12 ?259次閱讀
    基于51<b class='flag-5'>單片機</b>的LED點陣滾動顯示<b class='flag-5'>系統(tǒng)</b>

    單片機怎么寫入程序

    單片機(Microcontroller Unit,MCU)是一種集成電路芯片,它將計算機的CPU、存儲器、輸入/輸出接口等功能集成在一個芯片上。單片機廣泛應(yīng)用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中
    的頭像 發(fā)表于 10-21 11:21 ?825次閱讀

    單片機的中斷機制

    單片機的中斷機制是一種重要的處理方式,它允許單片機在執(zhí)行主程序的過程中,能夠暫停當(dāng)前任務(wù),轉(zhuǎn)而處理外部或內(nèi)部緊急事件。這種機制極大地提高了系統(tǒng)的響應(yīng)速度和處理能力,使得單片機在各種應(yīng)用
    的頭像 發(fā)表于 10-17 18:03 ?861次閱讀

    單片機出現(xiàn)故障怎么維修

    單片機出現(xiàn)故障時,維修過程需要系統(tǒng)地檢查和診斷,以確定故障的根本原因,并采取相應(yīng)的修復(fù)措施。以下是一個詳細(xì)單片機維修指南,旨在幫助技術(shù)人員或愛好者有效地解決
    的頭像 發(fā)表于 10-17 17:57 ?1428次閱讀

    stm32單片機用什么軟件編程

    STM32單片機是一種廣泛應(yīng)用于嵌入式系統(tǒng)領(lǐng)域的微控制器,具有高性能、低功耗、豐富的外設(shè)接口等特點。要對STM32單片機進行編程,需要選擇合適的軟件工具。 概述 STM32
    的頭像 發(fā)表于 09-02 10:16 ?1754次閱讀

    片上系統(tǒng)單片機的區(qū)別

    片上系統(tǒng)(SoC)與單片機在多個方面存在明顯的區(qū)別。
    的頭像 發(fā)表于 03-28 14:39 ?1584次閱讀

    如何系統(tǒng)、科學(xué)地自學(xué)單片機?

    很多初學(xué)者都會面臨這個問題,我想學(xué)習(xí)單片機、我也想學(xué)好單片機、我也想系統(tǒng)地學(xué)習(xí)單片機,但是單片機涉及到的學(xué)科
    的頭像 發(fā)表于 03-28 08:03 ?1139次閱讀
    如何<b class='flag-5'>系統(tǒng)</b>、科學(xué)地自學(xué)<b class='flag-5'>單片機</b>?

    單片機是什么?單片機編程如何入門?

    單片機其實是一種很早的叫法了,最開始我們的前輩叫單板機或者叫單片機,因為那個時候單片機的處理能力還沒有很強,現(xiàn)在我們所用的基本都是微型處理單元,也叫為控制器也稱之為MCU
    的頭像 發(fā)表于 03-28 08:03 ?2042次閱讀
    <b class='flag-5'>單片機</b>是什么?<b class='flag-5'>單片機</b>編程如何入門?

    fpga和單片機的區(qū)別和聯(lián)系 fpga和cpu區(qū)別

    fpga和單片機的區(qū)別和聯(lián)系 FPGA(現(xiàn)場可編程邏輯門陣列)和單片機在電子系統(tǒng)設(shè)計中都扮演著重要的角色,但它們之間存在明顯的區(qū)別和聯(lián)系。 區(qū)別: 本質(zhì)和結(jié)構(gòu):FPGA和單片機在本質(zhì)上
    的頭像 發(fā)表于 03-14 17:33 ?1190次閱讀

    單片機的最小系統(tǒng)由什么組成 單片機的最小系統(tǒng)包括哪些

    單片機(Microcontroller Unit,MCU)的最小系統(tǒng)包括以下幾個主要組成部分: 單片機芯片:單片機是整個最小系統(tǒng)的核心部分,
    的頭像 發(fā)表于 02-02 11:27 ?1.1w次閱讀

    單片機最小系統(tǒng)包含哪幾部分 單片機最小系統(tǒng)的作用

    單片機最小系統(tǒng)包含以下幾部分:單片機芯片、時鐘電路、復(fù)位電路、電源電路、外圍電路和連接接口等。 單片機芯片:單片機是整個
    的頭像 發(fā)表于 01-24 10:40 ?1.5w次閱讀

    什么是單片機? 單片機由哪幾個主要部分組成?

    )、存儲器(ROM、RAM)、輸入輸出(I/O)接口等功能的微型計算機系統(tǒng)。相比于傳統(tǒng)的芯片電路設(shè)計,單片機具有體積小、成本低、功耗低等優(yōu)勢,因而在許多領(lǐng)域被廣泛使用。 二、單片機
    的頭像 發(fā)表于 01-22 10:38 ?9737次閱讀

    單片機最小系統(tǒng)的作用 單片機最小系統(tǒng)包含哪幾部分

    部分: 單片機芯片:單片機最小系統(tǒng)的核心部分是單片機芯片,它是整個系統(tǒng)的主控制核心。單片機芯片上
    的頭像 發(fā)表于 01-18 13:54 ?4217次閱讀