用于芯片間通信的通信系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于芯片間通信的通信系統(tǒng),在所述芯片間通信中,處理器通過(guò)通信總線的數(shù)據(jù)通道相互通信,其中,稱為主處理器的處理器承擔(dān)對(duì)稱為從處理器的另一處理器的傳輸控制。
【背景技術(shù)】
[0002]在此意義下已經(jīng)公知了用于根據(jù)主機(jī)-從機(jī)原理同步串行傳輸數(shù)據(jù)的總線系統(tǒng),該總線系統(tǒng)也稱為串行外設(shè)接口(簡(jiǎn)稱SPI)。該總線系統(tǒng)具有三個(gè)公用的導(dǎo)線,每個(gè)參與者連接到所述導(dǎo)線上。這些導(dǎo)線是用于串行數(shù)據(jù)的輸出端、用于串行數(shù)據(jù)的輸入端以及時(shí)間控制(時(shí)鐘),所述時(shí)間控制由控制通信的主機(jī)定義。此外,在控制通信的主機(jī)與從機(jī)之間設(shè)置有傳送使能導(dǎo)線。在主機(jī)與從機(jī)之間的通信雙向地進(jìn)行并且視協(xié)議的實(shí)施而定完全能夠雙工。這需要在主機(jī)與從機(jī)之間進(jìn)行多個(gè)調(diào)節(jié)。相應(yīng)地,可實(shí)現(xiàn)在通信伙伴的兩側(cè)上進(jìn)行數(shù)據(jù)流和數(shù)據(jù)分析的數(shù)據(jù)協(xié)議由于雙向數(shù)據(jù)傳輸而非常復(fù)雜。雙向數(shù)據(jù)傳輸也可以導(dǎo)致高的系統(tǒng)負(fù)載,特別是因?yàn)橹鳈C(jī)和從機(jī)能夠并且必須并行地發(fā)送、接收和處理數(shù)據(jù)。
[0003]該SPI總線的巨大問(wèn)題在于,在數(shù)據(jù)流中通知的開(kāi)始是未知的并且原則上可以以任意數(shù)據(jù)位開(kāi)始。
[0004]由于通信的復(fù)雜的協(xié)議結(jié)構(gòu)和與硬件密切的實(shí)施,對(duì)于多個(gè)處理器經(jīng)常使用專有的通信解決方案,所述通信解決方案使得由不同硬件組成的不同通信伙伴的互操作性幾乎不可能。SPI總線的實(shí)施因此總是與參與的處理器相關(guān)。
[0005]在SPI芯片間通信中問(wèn)題因此在于,不僅控制通信流程的SPI主機(jī)而且SPI從機(jī)必須能夠并行地發(fā)送、接收和處理數(shù)據(jù)。這主要對(duì)于SPI從機(jī)是一個(gè)問(wèn)題,因?yàn)樵揝PI從機(jī)必須總是準(zhǔn)備好接收,因?yàn)橥ㄟ^(guò)SPI主機(jī)進(jìn)行的數(shù)據(jù)傳輸原則上可隨時(shí)亦即以任意位開(kāi)始。即使在通過(guò)SPI從機(jī)進(jìn)行的數(shù)據(jù)傳輸中,也通過(guò)SPI主機(jī)控制傳輸流程。這導(dǎo)致:只要進(jìn)行由SPI從機(jī)到SPI主機(jī)的數(shù)據(jù)傳輸,SPI從機(jī)就必須確保在其(通過(guò)SPI主機(jī)控制的)數(shù)據(jù)發(fā)送寄存器中的連續(xù)的數(shù)據(jù)流。為此所需的協(xié)議是復(fù)雜的,并且導(dǎo)致用于芯片間通信的總線的高系統(tǒng)負(fù)載。
[0006]此外,公知的用于芯片間通信的SPI總線的實(shí)施與系統(tǒng)極其相關(guān),因?yàn)閷?duì)于SPI總線存在多個(gè)調(diào)節(jié)可能性。這是由于沒(méi)有準(zhǔn)確確定用于SPI總線的技術(shù)規(guī)范并且因此存在多個(gè)不同的相互也不兼容的裝置。因此可以是,對(duì)于每個(gè)連接的轉(zhuǎn)換電路而言需要自己配置SPI主機(jī)。這例如也由于對(duì)于不同參與者的通信方向或通信不存在統(tǒng)一控制。如果多個(gè)參與者在一個(gè)數(shù)據(jù)通道上同時(shí)通信,那么經(jīng)常導(dǎo)致沖突。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于,減小在芯片間通信中的高的系統(tǒng)負(fù)載并且避免復(fù)雜的不同的SPI總線協(xié)議。
[0008]該目的按照本發(fā)明通過(guò)權(quán)利要求1的特征來(lái)實(shí)現(xiàn)。
[0009]為此在開(kāi)頭所述類型的通信系統(tǒng)中特別是提出,對(duì)于每個(gè)數(shù)據(jù)通信方向、亦即由第一到第二處理器的數(shù)據(jù)傳輸和由第二到第一處理器的數(shù)據(jù)傳輸而言數(shù)據(jù)通道分別在一個(gè)單獨(dú)的物理的通信總線中運(yùn)行。這使得用于不同通信方向的兩個(gè)數(shù)據(jù)通道在邏輯上分開(kāi),所述數(shù)據(jù)通道因此可以在邏輯上彼此無(wú)關(guān)地工作。這在技術(shù)上以最簡(jiǎn)單的方式這樣實(shí)現(xiàn),使得兩個(gè)數(shù)據(jù)通道在兩個(gè)不同的通信總線上運(yùn)行,所述通信總線優(yōu)選分別相同地構(gòu)成,由此,兩個(gè)不同的數(shù)據(jù)總線(對(duì)于每個(gè)數(shù)據(jù)通信方向至少一個(gè))的實(shí)施在每個(gè)處理器上原則上是相同的。
[0010]按照本發(fā)明提出的解決方案例如能實(shí)現(xiàn)在一個(gè)通信方向上的通信一一如果同時(shí)在另一通信方向上傳輸數(shù)據(jù),而不會(huì)產(chǎn)生數(shù)據(jù)的混合以及由此禁止通信的沖突,而且不必設(shè)置麻煩的控制雙向通信的數(shù)據(jù)協(xié)議。在通信總線的一個(gè)數(shù)據(jù)通道中的通信可以簡(jiǎn)單地構(gòu)成為單向串行數(shù)據(jù)傳輸,因?yàn)槊總€(gè)通信總線具有確定的發(fā)送器和確定的接收器。
[0011]因此,與公知的設(shè)有雙向通信的SPI總線不同,在按照本發(fā)明的通信總線中的通信是單向的。為了能實(shí)現(xiàn)在兩個(gè)處理器之間雙向通信,對(duì)于每個(gè)數(shù)據(jù)通信方向分別設(shè)有一個(gè)單向運(yùn)行的通信總線,其中,不同通信方向的分別單向傳輸?shù)耐ㄐ趴偩€分別在物理上彼此單獨(dú)地運(yùn)行。由此一開(kāi)始就禁止了不同的通信方向重疊。由于數(shù)據(jù)通信的簡(jiǎn)單串行特征,通信總線也可容易地替換并且僅僅需要稍微匹配于所使用的平臺(tái)(硬件或者說(shuō)處理器)。
[0012]按照一個(gè)特別優(yōu)選的實(shí)施形式提出,對(duì)于每個(gè)單獨(dú)的通信總線而言接收器分別構(gòu)成為控制通信的主處理器。為了控制通信,主處理器可以按照本發(fā)明特別是施加信號(hào)在從處理器的傳送使能輸入端上。從處理器然后(亦即在檢測(cè)到傳送使能信號(hào)的情況下)配置成將存儲(chǔ)在其發(fā)送寄存器中的數(shù)據(jù)串行發(fā)出,直至信號(hào)在從處理器的傳送使能輸入端上不再存在。所施加的信號(hào)可以是例如O位或I位。由此,接收器可以控制發(fā)送處理器以及由此數(shù)據(jù)流,并且如果接收器不論出于何原因沒(méi)有準(zhǔn)備好接收,則例如停止傳輸。由此,接收器處理器可以更簡(jiǎn)單地構(gòu)成,因?yàn)椴槐乩缤ㄟ^(guò)緩存確保:在可以進(jìn)行數(shù)據(jù)的再處理之前,數(shù)據(jù)以發(fā)送器的傳輸速率首先一次接收并且存儲(chǔ)。因此,如果數(shù)據(jù)的再處理按照本發(fā)明是不可能的,那么接收器作為主處理器可以簡(jiǎn)單地停止傳輸。
[0013]發(fā)送器在單向運(yùn)行的通信總線中是發(fā)送任意待傳輸數(shù)據(jù)的唯一通信參與者。因此,如果數(shù)據(jù)完全準(zhǔn)備好傳輸,那么所述發(fā)送器可以將數(shù)據(jù)作為消息、例如數(shù)據(jù)包準(zhǔn)備好并且然后置于其發(fā)送寄存器中。消息例如可以是這樣的數(shù)據(jù)包,在所述數(shù)據(jù)包中,數(shù)據(jù)附有文件頭和/或用于消息范圍的其它相關(guān)數(shù)據(jù)。這些數(shù)據(jù)包于是例如可以通過(guò)置于發(fā)送寄存器中而準(zhǔn)備好傳輸。
[0014]按照所提出的方法的一個(gè)特別優(yōu)選的擴(kuò)展構(gòu)型,從處理器作為通信總線的發(fā)送器優(yōu)選配置成當(dāng)通過(guò)從處理器存在數(shù)據(jù)待傳輸時(shí)輸送觸發(fā)信號(hào)給主處理器。這優(yōu)選可以當(dāng)數(shù)據(jù)通過(guò)發(fā)送器完全準(zhǔn)備好傳輸時(shí)進(jìn)行。
[0015]所述觸發(fā)信號(hào)按照本發(fā)明可施加在主處理器的通用輸入和輸出端口上。也稱為GP1端口(General Purpose Input Output)的這種通用輸入和輸出端口通常設(shè)置用于在每個(gè)處理器上簡(jiǎn)單的通信控制,由此,所提出的可簡(jiǎn)單執(zhí)行的并且特別是串行的通信可以幾乎與硬件無(wú)關(guān)地在多個(gè)不同的硬件處理器之間實(shí)現(xiàn)。一旦主處理器接收到觸發(fā)信號(hào),主處理器就可以將傳送使能信號(hào)施加在從處理器的輸入端上。
[0016]在簡(jiǎn)單的可在多個(gè)不同硬件處理器中幾乎通用實(shí)施的通信流程的范圍內(nèi)可以提出,主處理器和從處理器配置成借助于中斷處理來(lái)控制按照本發(fā)明僅僅在一個(gè)數(shù)據(jù)通信方向上進(jìn)行傳輸?shù)耐ㄐ趴偩€的通信流程,在所述中斷處理中,相應(yīng)處理器、亦即主處理器或者說(shuō)從處理器特別是配置成當(dāng)處理器接收到中斷要求時(shí)中斷正常的程序流程并且執(zhí)行特別是通過(guò)軟件實(shí)施的處理。這樣的中斷要求也稱為中止。中斷處理作為中斷服務(wù)程序(ISR)是已知的。
[0017]相應(yīng)的中斷處理在絕大多數(shù)處理器中按照標(biāo)準(zhǔn)來(lái)設(shè)置并且例如可借助于軟件來(lái)配置。因此,通過(guò)僅僅最小地在硬件方面匹配于處理器和/或運(yùn)行系統(tǒng)層面,按照本發(fā)明提出的通信系統(tǒng)的通用實(shí)施可通過(guò)簡(jiǎn)單方式進(jìn)行。
[0018]中斷處理對(duì)于通信系統(tǒng)也占用高的工作負(fù)荷,因?yàn)樘幚砜梢苑謩e按照所需的工作來(lái)控制,而各個(gè)硬件部件無(wú)須構(gòu)成用于正好也在時(shí)間上和/或從數(shù)據(jù)量方面來(lái)滿足通過(guò)其它硬件部件所強(qiáng)制的通信流程。由此,參與通信系統(tǒng)的處理器也可以更有利地構(gòu)成。
[0019]因此,基于在通用層面上的通信流程,可通過(guò)簡(jiǎn)單的方式利用不同的硬件總線系統(tǒng)來(lái)通信,而無(wú)須分別實(shí)施獨(dú)立的協(xié)議。這使得對(duì)于相應(yīng)硬件待實(shí)施的代碼在很大程度上與硬件無(wú)關(guān)并且可在多個(gè)平臺(tái)上以相同方式或以最小匹配來(lái)使用。僅僅軟件的相應(yīng)的運(yùn)算或功能專用的以及與硬件相關(guān)的部分必須對(duì)于每個(gè)處理器在實(shí)施時(shí)進(jìn)行匹配,其中,基于通信流程的通用性因此使得用于其它處理器或運(yùn)行系統(tǒng)的現(xiàn)有軟件已經(jīng)可以作為構(gòu)思來(lái)使用。
[0020]簡(jiǎn)單的結(jié)構(gòu)也使得軟件的最大部分可以以相同方式在不同平臺(tái)上使用,由此,驗(yàn)證級(jí)別明顯提高并且用于安裝在不同平臺(tái)上的通信