Mailbox硬件通信機制Mailbox作為多處理器系統(tǒng)中處理器間進程同步和數(shù)據(jù)交換的硬件機制,其優(yōu)點是應(yīng)用相對的廣,速度快。采用Mailbox的方式,主要是通過傳輸控制信息的方式進行多處理器通信。根據(jù)系統(tǒng)要求,可以定義不同的Mail來實現(xiàn)系統(tǒng)行為。例如:可以定義固定流量的數(shù)據(jù)傳輸,也可以定義固定區(qū)塊的數(shù)據(jù)傳輸。通信雙方的數(shù)據(jù)傳輸,屬于片內(nèi)并行數(shù)據(jù)傳輸,因此實時性好,速度快。同時還可以兼容中斷和查詢模式,減小控制CP U的處理時間壓力。如果單純用于固定的數(shù)據(jù)傳輸則Mail設(shè)計簡單。但如果Mail定義的類型較多,會增加一定的Mail識別難度及識別時間。DMA數(shù)據(jù)搬運通信機制DMA (direct memory access)方式能夠有效地縮減數(shù)據(jù)通信對處理器的時間占用,在傳送大量數(shù)據(jù)時能發(fā)揮一定的作用。主要使用在程序更新及成片數(shù)據(jù)搬運方面。DMA可以作為輔助解決多處理器通信的部件。串口主從模式通信機制串口主從模式主要使用串口通信設(shè)備完成,將多個處理器分為主設(shè)備與從設(shè)備。當主處理器需要數(shù)據(jù)時就通過DART (Universal asynchronous receiver/ transmitter)向從處理器發(fā)送請求數(shù)據(jù)命令,從處理器通過串口將數(shù)據(jù)發(fā)送去主處理器。由于串口通信延時較大,主處理器必須等待所有的數(shù)據(jù)從DART傳入主處理器區(qū)域的SRAM進行組合,或者主處理器自身進行組合后,再處理方可使用,導致通信效率較低。同樣從處理器在通信期間也不能向?qū)?yīng)的存儲區(qū)進行數(shù)據(jù)更新操作。所以傳輸和處理時間需要重點考慮。
使用串口主從模式進行通信優(yōu)點在于對軟件程序方面的依賴較少,缺點在于對內(nèi)部電路結(jié)構(gòu)有一定依賴性,傳輸模式單一,時間久.若設(shè)計復雜的通信協(xié)議,則對軟件編程壓力大。
多CPU系統(tǒng)中的數(shù)編輯
數(shù)據(jù)共享是指多個CPU之間通過一個或幾個存貯器來傳遞相互間的信息。通常一個CPU將要傳遞的數(shù)據(jù),寫入到存貯器的固定區(qū)域,然后通知另一個CPU去取出數(shù)據(jù),對數(shù)據(jù)進行處理。將處理的結(jié)果再寫入到存貯器某一區(qū)域,通知有關(guān)CPU取走并進行處理。
數(shù)據(jù)共享是多CPU系統(tǒng)傳遞信息、協(xié)調(diào)任務(wù)的一種重要手段。通常共享的存貯器可以是雙端口RAM,也可以是串口
。在實際中要根據(jù)系統(tǒng)的實時性要求進行選擇。一般,對于實時性要求高、需要傳輸大量數(shù)據(jù)的系統(tǒng)宜選用雙端口RAM作為共享存貯器,如音頻、視頻信號的分析處理,否則宜選用價格相對便宜的串口
作為共享存貯器(如24C02,93C46等),以優(yōu)化設(shè)計降
多CPU之間的通信
西門子CP341通訊處理器代理商利用雙端口RAM實現(xiàn)CPU之間通信
雙端口RAM是一種高速的存儲器芯片,有兩套地址總線、數(shù)據(jù)總線和控制總線,并有一套競爭裁決電路。因此,2個CPU在仲裁電路控制下,可以通過各自的地址總線、數(shù)據(jù)總線對其進行讀寫操作,方便地進行CPU之間的數(shù)據(jù)交換。常用的CMOS雙口RAM有IDT7132, ID7102等。利用雙端口RAM組成的多CPU系統(tǒng)原理如圖所示:

該系統(tǒng)特點是數(shù)據(jù)交換量大、速度快,適用于快速數(shù)據(jù)傳輸,但是系統(tǒng)的成本較高。能否用單端口RAM實現(xiàn)雙端口的功能呢,答案是肯定的。
利用單端口RAM實現(xiàn)CPU之間的通信
顧名思義,單端口RAM只有一套地址總線、數(shù)據(jù)總線、控制總線。要實現(xiàn)雙端口RAM的功能,就必須由硬件電路將一套總線變成兩套總線,分屬2個CPU控制。另外還必須設(shè)計一套競爭仲裁電路,防止2個CPU同時對RAM的操作沖突。好在這種接口電路的設(shè)計并不是太困難,74HC244, 74HC245再加一些門電路就能解決問題
利用串口EPROM實現(xiàn)CPU之間的通信
串口
由于其引線少,價格低廉,在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。下面以共享25C02為例,介紹多CPU之間的數(shù)據(jù)傳輸。原理如圖所示:

圖中CPU1與CPU2通過共享25C02,CPU2與CPU3通過共享25C02完成他們之間的通信。
利用串行總線實現(xiàn)多CPU之間的通信
隨著計算機技術(shù)的發(fā)展,計算機的串口通信越來越多樣化。同步串口通信、異步串口通信、
總線、SPI總線、USB等,由于其實用性好,越來越為設(shè)計者所關(guān)注。特別是在多CPU嵌入式系統(tǒng)中,各個CPU通過串行總線相連可以方便地進行多CPU之間的通信。
(1)用
總線實現(xiàn)多CPU之間的通信
(Inter Intergrated Circuit)總線是由Philips公司提出并注冊的一種總線接口標準,是一種主從結(jié)構(gòu)的二線同步總線,其中一根是同步移位時鐘SCL,另一根為數(shù)據(jù)線SDA。各CPU通過2條線相連,其原理如圖所示:

系統(tǒng)中的CPU可以選用帶有
總線接口的,如Philips公司的80C652, P87LC764等,其通信軟件包可以在網(wǎng)上下載,對于不帶
總線接口的CPU,可以通過I/O模擬Iz C總線,相應(yīng)軟件可從網(wǎng)上下載,也可自己編寫。
有4種工作模式、主發(fā)送模式、主接收模式、從發(fā)送模式、從接收模式。根據(jù)各子系統(tǒng)需要,合理選用其工作模式即構(gòu)成
總線多CPU通信系統(tǒng)。Iz C總線的數(shù)據(jù)傳送格式如圖所示:

S為Start信號,SLA為從機地址,也可以是通信地址;R/W為讀寫控制位;A為ACK應(yīng)答位;DATA0~DATA7為數(shù)據(jù)字節(jié);S/P為下一個start或stop信號。
(2)利用SPl總線實現(xiàn)多CPU之間通信
SPI( Serial Peripheral Interface)總線是由Motorola公司提出并擁有商標的一種總線接口標準,是一種4線同步串行總線。4根線分別是:片選CS;串行移位SCK;串行移位數(shù)據(jù)輸入SI;串行移位輸出SO。在同一時刻串行數(shù)據(jù)移位輸入、輸出不能同時進行,因此,可以將二者連在一起,共用一根口線(即三線同步串行并線)。
如圖是典型的基于 SPI總線組成的多CPU系統(tǒng):

系統(tǒng)中的CPU可以采用帶有SPI總線接口的單片機。對于沒有SPI總線接口的單片機系統(tǒng),可使用普通I/O口模擬SPI總線,其通信程序自編。利用SPI總線組成的一個三級多CPU系統(tǒng)運行結(jié)果良好。利用串行總線實現(xiàn)多CPU通信,其優(yōu)點是:連線簡單、方便、可靠,產(chǎn)品性價比好;缺點是數(shù)據(jù)傳輸速度慢,實時性差,不宜用于數(shù)據(jù)量大、通信頻繁的多CPU系統(tǒng)[2]西門子CP341通訊處理器代理商