專利名稱:使用兩個(gè)通信控制器的分布式通信系統(tǒng)及其操作方法
技術(shù)領(lǐng)域:
一般的,本發(fā)明涉及用于容錯時(shí)間觸發(fā)的通信系統(tǒng)體系結(jié)構(gòu)。
具體的,本發(fā)明涉及一種用于操作分布式通信系統(tǒng)的方法,具體的,用于同步該分布式通信系統(tǒng)的時(shí)鐘,所述通信系統(tǒng)含有通過至少一個(gè)通信鏈路而相互連接的大量節(jié)點(diǎn),所述通信鏈路包括至少兩個(gè)信道。
本發(fā)明還涉及分布式通信系統(tǒng)中的節(jié)點(diǎn),所述通信系統(tǒng)含有通過至少一個(gè)通信鏈路而相互連接的大量節(jié)點(diǎn),所述通信鏈路包括至少兩個(gè)信道。
背景技術(shù):
圖1是典型的容錯時(shí)間觸發(fā)網(wǎng)絡(luò)的示意圖。所述網(wǎng)絡(luò)包括與各自節(jié)點(diǎn)N連接的兩個(gè)信道C1、C2,這些節(jié)點(diǎn)N中的每一個(gè)都包括總線驅(qū)動器B1和B2、含有協(xié)議引擎P和控制器主機(jī)接口CI的通信控制器CC、可選的用于每個(gè)總線驅(qū)動器B1和B2的總線監(jiān)控器、以及應(yīng)用程序主機(jī)H。
總線驅(qū)動器B1、B2發(fā)送由通信控制器CC提供的位和字節(jié)到與其連接的信道C1、C2,并且將從信道C1、C2上接收到的信息提供給通信控制器CC。通過總線驅(qū)動器B1、B2與信道C1、C2連接的通信控制器CC,輸送相關(guān)數(shù)據(jù)到主機(jī)應(yīng)用程序H,并且從主機(jī)應(yīng)用程序H接收數(shù)據(jù),主機(jī)應(yīng)用程序H將數(shù)據(jù)組合成幀,并將數(shù)據(jù)輸送到總線驅(qū)動器B1、B2。
總線驅(qū)動器B1、B2、總線監(jiān)控器(可選的)和主機(jī)設(shè)備H至少部分是時(shí)間觸發(fā)的,這意味著時(shí)間被分割成循環(huán)周期(recurringcycle),每個(gè)周期中包括若干段。每個(gè)節(jié)點(diǎn)N根據(jù)其自身內(nèi)置的時(shí)鐘,確定新周期的開始。
至少一個(gè)段被分割成固定數(shù)量的時(shí)隙,每個(gè)時(shí)隙分配給至多一個(gè)通信控制器CC,其中該通信控制器且只有該通信控制器CC具有發(fā)送的權(quán)力。周期中的其他段用于動態(tài)的仲裁方案或其他目的。
總線監(jiān)控器有獨(dú)立的配置數(shù)據(jù)集,能使總線上的發(fā)送只在由配置集指定的時(shí)隙內(nèi)進(jìn)行。
主機(jī)應(yīng)用程序H包括數(shù)據(jù)源和數(shù)據(jù)宿(data sink),且通常不涉及協(xié)議活動。主機(jī)應(yīng)用程序H只處理通信控制器CC不能單獨(dú)處理的決定。
由于每個(gè)節(jié)點(diǎn)N獨(dú)立地得出周期的開始并從而獲得所有段和時(shí)隙在時(shí)間上的位置,所以節(jié)點(diǎn)N彼此之間必須同步。每個(gè)節(jié)點(diǎn)N含有自己的時(shí)鐘,以便不依賴于單一的主時(shí)鐘,主時(shí)鐘的故障將導(dǎo)致整個(gè)系統(tǒng)的崩潰。自己的時(shí)鐘和系統(tǒng)節(jié)點(diǎn)子集時(shí)鐘之間的差異用于在容錯方式下校正自己的時(shí)鐘,所述節(jié)點(diǎn)子集被稱之為同步節(jié)點(diǎn)(或同步節(jié)點(diǎn))。
存在兩種時(shí)鐘校正方式,單純偏移校正,和偏移校正和速率校正的組合。
偏移校正僅校正時(shí)鐘的偏移,而速率校正還試圖校準(zhǔn)系統(tǒng)中時(shí)鐘的不同速率,因而使時(shí)鐘彼此之間更接近(壓縮必須偏移校正的數(shù)量,由于減少了發(fā)送間的間隙,因而可以增加可利用的帶寬)。典型的,由于需要兩個(gè)測量值計(jì)算速率的偏差,所以在周期結(jié)束時(shí)或是在速率校正和移位校正的情況下兩個(gè)周期結(jié)束時(shí)校正時(shí)鐘。
在分配的時(shí)隙之一內(nèi),所有的同步節(jié)點(diǎn)必須同時(shí)在信道C1和C2上發(fā)送同步幀,因此所有的節(jié)點(diǎn)接收到相同的時(shí)間信息,只連接到一個(gè)信道的節(jié)點(diǎn)也如此。
與上述描述一致的系統(tǒng)公開在Herman Kopetz et al.,″Specification of the TTP/C protocol″(draft0.5),TTTech Computertechnik AG,July 1999(cf.http://www.tttech.com/)或
R.Belschner et al.,″FlexRay-Requirements Specification″(version2.0.2),F(xiàn)lexRay Consortium,April 2002(cf.http://www.flexray.com/);相應(yīng)的現(xiàn)有技術(shù)文檔WO 03/010611 A1涉及FlexRay協(xié)議,并且揭示了分布式系統(tǒng)中的時(shí)鐘同步,具體的針對含有節(jié)點(diǎn)子集、消息接收、時(shí)間和時(shí)鐘速率偏離測量、偏移校正值計(jì)算、時(shí)鐘速率校正值計(jì)算以及節(jié)點(diǎn)時(shí)鐘調(diào)整的FlexRay(RTM)汽車通信系統(tǒng)。
現(xiàn)有技術(shù)文檔EP 1355459 A2提到了用于在分布式通信系統(tǒng)中同步時(shí)鐘的方法,所述分布式通信系統(tǒng)包括至少一個(gè)通信介質(zhì)和與該通信介質(zhì)連接的含有時(shí)鐘的大量節(jié)點(diǎn);節(jié)點(diǎn)包括時(shí)鐘。為了可以高精度的同步節(jié)點(diǎn)的時(shí)鐘,同時(shí)可以容許高度的時(shí)鐘速率偏差,建議為了同步時(shí)鐘,校正時(shí)鐘偏移的差異和時(shí)鐘速率的差異。
除此之外,現(xiàn)有技術(shù)文檔JP 2003-195903公開了復(fù)制通信模塊設(shè)備,然而,該現(xiàn)有技術(shù)文檔未提到復(fù)制系統(tǒng)的容錯分布式同步。
盡管如上述描述的所有努力,但是問題依然存在,即如果雙信道通信控制器出現(xiàn)故障,那么就阻止了對與其連接的兩個(gè)信道的訪問,從而切斷了通信控制器應(yīng)用主機(jī)的通信。通過用單個(gè)的通信控制器處理兩個(gè)信道,出現(xiàn)了若干單點(diǎn)錯誤(single-point-of failures),例如僅一次實(shí)現(xiàn)和使用時(shí)鐘同步。
從上述的缺點(diǎn)和短處出發(fā),并考慮所討論的現(xiàn)有技術(shù),本發(fā)明的目的在于當(dāng)通信控制器故障或停止的情況下,維持應(yīng)用程序主機(jī)對與通信控制器連接的至少一個(gè)信道的訪問。
發(fā)明內(nèi)容
本發(fā)明的目的是通過包括權(quán)利要求1所述特征的方法,以及包括權(quán)利要求5所述特征的節(jié)點(diǎn)來實(shí)現(xiàn)的。在各個(gè)從屬權(quán)利要求中,公開了本發(fā)明優(yōu)選的實(shí)施例和有利的改進(jìn)。
本發(fā)明的要旨涉及為了容錯時(shí)間觸發(fā)通信系統(tǒng)而將雙信道時(shí)鐘同步與基于單信道的體系結(jié)構(gòu)結(jié)合起來的概念。就此而言,每個(gè)信道的通信控制器優(yōu)選地在彼此之間采用某種容錯時(shí)鐘校正機(jī)制,對偏移和速率進(jìn)行校正。
根據(jù)本發(fā)明的單信道體系結(jié)構(gòu),也就是,將通信控制器分割為兩個(gè)獨(dú)立實(shí)體的方法具有這樣的優(yōu)點(diǎn),即如果另一半出現(xiàn)故障,那么實(shí)體中的每個(gè)(所謂的單信道通信控制器)都能夠繼續(xù)工作。換句話說,至少兩個(gè)單信道通信控制器以如下方式在彼此之間通信一個(gè)單信道通信控制器的故障不會阻止另一個(gè)單信道通信控制器的通信。
此外,技術(shù)人員應(yīng)認(rèn)識到,為了能使通信節(jié)點(diǎn)與其他的(或者是常規(guī)的)通信控制器相互作用,在信道上不可以出現(xiàn)根本不同的行為(而應(yīng)用程序的接口可以不同)??梢允褂萌缦碌慕鉀Q方法提供兩個(gè)不同的芯片,每個(gè)信道一個(gè)通信控制器或使兩個(gè)單信道通信控制器集成在單個(gè)芯片上,以減少通信系統(tǒng)的成本,這要求較少的容錯。
根據(jù)本發(fā)明優(yōu)選的實(shí)施例,單信道通信控制器的兩個(gè)不同機(jī)制必須溝通啟動和時(shí)鐘同步。
通過將單信道通信控制器分割為兩個(gè)(幾乎是)獨(dú)立的實(shí)體,提供了兩個(gè)不同的故障域,所以如果新的通信控制器之一發(fā)生故障,那么另一個(gè)可以繼續(xù)工作。但是只有兩個(gè)單信道通信控制器的組合行為與雙信道通信控制器的行為偏離的不是特別多,該機(jī)制才能與常規(guī)的雙信道通信控制器一起工作。特別是,通信控制器的時(shí)鐘都應(yīng)該緊密的對準(zhǔn)(由于雙信道通信控制器只包含一個(gè)時(shí)鐘,所以對于雙信道通信控制器,無論如何這都是滿足的)。
本發(fā)明提出的機(jī)制使已經(jīng)緊密對準(zhǔn)的信道保持緊密對準(zhǔn),而無需同步彼此偏離例如半個(gè)周期長度或更多周期長度的信道。與之相結(jié)合或與之相獨(dú)立,每個(gè)信道的通信控制器優(yōu)選地在彼此之間采用某種容錯時(shí)鐘校正機(jī)制。
因此,本發(fā)明體現(xiàn)了保持信道按需同步的概念,也就是,每個(gè)單信道通信控制器緊密跟隨其自身和與其連接的相對信道的單信道通信控制器之間的時(shí)間差值。
實(shí)現(xiàn)上述的首選項(xiàng)是經(jīng)過至少一個(gè)專用接口,通過該接口,兩個(gè)單信道通信控制器互相測量與各個(gè)自身時(shí)間相關(guān)的各個(gè)其他單信道通信控制器的時(shí)間。有利的是使用至少一個(gè)專用的信號線發(fā)送本地周期開始到其他單信道通信控制器。
根據(jù)所應(yīng)用的時(shí)鐘同步算法,恰好在校正階段之前的信號可以提供更好的結(jié)果,但是也可能是時(shí)間中的其他點(diǎn)。唯一必需的是,所連接的單信道通信控制器知道其期望信號的時(shí)間,然后,所連接的單信道通信控制器可以從期望的信號和實(shí)際的信號之間的差值計(jì)算時(shí)鐘偏移。通過該信號,可以計(jì)算兩個(gè)單信道通信控制器之間的偏移差值和速率差值。
另一選項(xiàng)是直接交換數(shù)字值,數(shù)字值結(jié)合了關(guān)于本地時(shí)鐘和信道更多的信息。
現(xiàn)在,兩個(gè)相關(guān)聯(lián)的單信道通信控制器知道他們彼此具有的時(shí)鐘差值。所有的單信道通信控制器知道相對于其本地相對方的時(shí)間差值。他們都使用同樣的方法計(jì)算附加的帶符號的信道間的校正。
本發(fā)明還涉及一計(jì)算機(jī)程序能夠在至少一個(gè)計(jì)算機(jī)上運(yùn)行,具體的,能夠在至少一個(gè)微處理器上運(yùn)行,和為了執(zhí)行上述的方法而編制。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,該計(jì)算機(jī)程序可以存儲在至少一個(gè)R[ead]O[nly]M[emory]中,至少一個(gè)R[andom]A[ccess]M[emory]中或至少一個(gè)閃速存儲器中。
本發(fā)明還涉及含有如上描述的大量節(jié)點(diǎn)(100,100’,100”)的分布式通信系統(tǒng),其中上述通信系統(tǒng)是容錯的和/或時(shí)間觸發(fā)的。
最后,本發(fā)明還涉及上述方法的應(yīng)用,和/或上述至少一種計(jì)算機(jī)程序的應(yīng)用,和/或上述至少一個(gè)節(jié)點(diǎn)的應(yīng)用,和/或上述通信系統(tǒng)的應(yīng)用,從而在至少是雙信道的環(huán)境下同步時(shí)鐘,其中可以校正時(shí)鐘的偏移差值和時(shí)鐘的速率差值。
總之,所提出的機(jī)制實(shí)現(xiàn)了基于單信道通信單元的可擴(kuò)展體系結(jié)構(gòu)概念。因此,該概念允許使用不同的容錯水平構(gòu)建系統(tǒng)體系結(jié)構(gòu)。此外,其為產(chǎn)品設(shè)計(jì)提供了更多的自由。
相同的功能單元可以實(shí)現(xiàn)為單信道I[ntegrated]C[ircuit],或是無需任何功能改變,可以組合為冗余的雙信道I[ntegrated]C[ircuit]。根據(jù)本發(fā)明的概念,甚至支持允許使用芯片的兩個(gè)通信控制器參與不同通信集群的產(chǎn)品選項(xiàng)。對于該應(yīng)用,簡單地禁用信道間接口。每個(gè)通信單元是全功能的,從而獨(dú)立的作為集群中的單一單元。
如上面已經(jīng)討論的,存在以更有利的方式具體實(shí)現(xiàn)和改善本發(fā)明教義的多個(gè)選項(xiàng)。為了這個(gè)目的,參考分別從屬于權(quán)利要求1、權(quán)利要求3和權(quán)利要求5的權(quán)利要求,進(jìn)而,下面參考示例方式的三個(gè)優(yōu)選的實(shí)施例和附圖(參見圖2A到圖3B)更加詳細(xì)的說明本發(fā)明的改進(jìn)、特征和優(yōu)點(diǎn)。
圖1示意性示出了根據(jù)現(xiàn)有技術(shù)的網(wǎng)絡(luò)系統(tǒng);圖2A示意性示出了根據(jù)本發(fā)明的容錯時(shí)間觸發(fā)網(wǎng)絡(luò)系統(tǒng)的第一實(shí)施例,其根據(jù)本發(fā)明的方法工作;圖2B示意性示出了根據(jù)本發(fā)明的容錯時(shí)間觸發(fā)網(wǎng)絡(luò)系統(tǒng)的第二實(shí)施例,其根據(jù)本發(fā)明的方法工作;圖2C示意性示出了根據(jù)本發(fā)明的容錯時(shí)間觸發(fā)網(wǎng)絡(luò)系統(tǒng)的第三實(shí)施例,其根據(jù)本發(fā)明的方法工作;圖3A示意性示出了根據(jù)本發(fā)明在兩個(gè)單信道通信控制器之間交換時(shí)鐘信息的圖,其中偏移的測量值和周期長度的變化是作為時(shí)間t的函數(shù)表示;和圖3B示意性示出了根據(jù)本發(fā)明在兩個(gè)單信道通信控制器之間交換時(shí)鐘信息的圖,其中偏移和速率差異的測量值以及周期長度的變化是作為時(shí)間t的函數(shù)表示。
在圖2A到圖3B相應(yīng)的部分中,使用相同的參考數(shù)字。
具體實(shí)施例方式
通常的結(jié)構(gòu)中(參見圖1),為了節(jié)省成本,只為每個(gè)節(jié)點(diǎn)N分配單個(gè)通信控制器CC以處理冗余所需的兩個(gè)信道C1和C2。然而,這種方法容易出現(xiàn)這種錯誤,即通信控制器CC中的單個(gè)錯誤就使節(jié)點(diǎn)N對兩個(gè)信道C1和C2的總線訪問失效。
根據(jù)現(xiàn)有技術(shù),鑒于早期的通信控制器CC含有單個(gè)時(shí)鐘同步部分,因此沒有容錯(參加圖1),本發(fā)明描述了一種分布式通信系統(tǒng)及用于含有獨(dú)立時(shí)鐘同步和為每個(gè)通信控制器30、32時(shí)鐘校正的方法(參見圖2A、圖2B和圖2C,其中所示分別為節(jié)點(diǎn)100的第一實(shí)施例,節(jié)點(diǎn)100’的第二實(shí)施例,和節(jié)點(diǎn)100”的第三實(shí)施例)。
現(xiàn)有技術(shù)結(jié)構(gòu)的基于雙信道的體系結(jié)構(gòu)(參見圖1)和本發(fā)明的基于單信道的體系結(jié)構(gòu)(參見圖2A、圖2B和圖2C)之間的區(qū)別在于,用于不同信道10、20的通信控制器30、32的協(xié)議引擎50、52實(shí)質(zhì)上是雙倍的,因此可以建立在獨(dú)立的設(shè)備中。
所述上下文中,根據(jù)本發(fā)明的容錯時(shí)間觸發(fā)系統(tǒng)包括與各自節(jié)點(diǎn)相連的兩個(gè)信道10、20。這些節(jié)點(diǎn)中的每一個(gè)包括各自的總線驅(qū)動器12和22、帶有各自協(xié)議引擎50和52與各自控制器主機(jī)接口40和42的各自的通信控制器30和32、可選的用于每個(gè)總線驅(qū)動器12和22的各自的總線監(jiān)控器、以及應(yīng)用程序主機(jī)60。
各自的總線驅(qū)動器12、22發(fā)送由各自的通信控制器30、32提供的位和字節(jié)到與其各自連接的信道10、20,并且將從各自信道10、20上接收到的各自的信息提供給各自的通信控制器30、32。
通過各自總線驅(qū)動器12、22與各自信道10、20連接的通信控制器30、32,輸送相關(guān)數(shù)據(jù)到主機(jī)應(yīng)用程序60,并且從主機(jī)應(yīng)用程序60接收數(shù)據(jù),主機(jī)應(yīng)用程序60將數(shù)據(jù)組合成幀,并將數(shù)據(jù)輸送到各自的總線驅(qū)動器12、22。
各自的總線驅(qū)動器12和22、總線監(jiān)控器(可選的)以及主機(jī)設(shè)備60至少部分是時(shí)間觸發(fā)的,這意味著將時(shí)間分割成循環(huán)周期,每個(gè)周期中包括若干段。每個(gè)節(jié)點(diǎn)N根據(jù)其自身內(nèi)置的時(shí)鐘確定新周期的開始。至少一個(gè)段被分割成固定數(shù)量的時(shí)隙,每個(gè)時(shí)隙分配給至多一個(gè)各自的通信控制器30、32,其中各自通信控制器30、32且只有各自的通信控制器30、32具有發(fā)送的權(quán)力。周期中的其他段用于動態(tài)的仲裁方案或其他目的。
總線監(jiān)控器有獨(dú)立的配置數(shù)據(jù)集,能使總線上的發(fā)送只在由配置集指定的時(shí)隙內(nèi)進(jìn)行。
主機(jī)應(yīng)用程序60包括數(shù)據(jù)源和數(shù)據(jù)宿,且通常不涉及協(xié)議活動。主機(jī)應(yīng)用程序60只處理各自的通信控制器30、32不能單獨(dú)處理的決定。
關(guān)于圖2A到3B中所示的本發(fā)明,技術(shù)人員應(yīng)認(rèn)識到,由于即便是根據(jù)現(xiàn)有技術(shù)(參見圖1)的基于雙信道的體系結(jié)構(gòu),也必須處理兩個(gè)準(zhǔn)獨(dú)立信道10、20,所以對于圖2A、2B和2C中基于單信道的體系結(jié)構(gòu),邏輯上的額外努力幾乎是可以忽略不計(jì)的,即,只有少數(shù)結(jié)構(gòu)必須是兩倍的。
更為具體的是,冗余的通信信道可以是基于使用兩個(gè)分開的實(shí)例30、32的單信道結(jié)構(gòu)(參見圖2B)或單個(gè)單元內(nèi)的片上實(shí)現(xiàn)(參見圖2C)。相應(yīng)地,本地信道內(nèi)通信接口分別是片外接口54(參見圖2B)或片上接口(參見圖2C)。
由于每個(gè)節(jié)點(diǎn)獨(dú)立地得出周期的開始并從而獲得所有段和時(shí)隙在時(shí)間上的位置,所以節(jié)點(diǎn)彼此之間必須同步。每個(gè)節(jié)點(diǎn)含有自己的時(shí)鐘,以便不依賴于單一的主時(shí)鐘,主時(shí)鐘的故障將導(dǎo)致整個(gè)系統(tǒng)的崩潰。自己的時(shí)鐘和系統(tǒng)節(jié)點(diǎn)子集時(shí)鐘之間的差異用于在容錯方式下校正自己的時(shí)鐘,所述節(jié)點(diǎn)子集被稱之為同步節(jié)點(diǎn)(或同步節(jié)點(diǎn))。
存在兩種時(shí)鐘校正方式,單純偏移校正,和偏移校正和速率校正的組合。
偏移校正僅校正時(shí)鐘的偏移,而速率校正還試圖校準(zhǔn)系統(tǒng)中時(shí)鐘的不同速率,因而使時(shí)鐘彼此之間更接近(壓縮必須偏移校正的數(shù)量,由于減少了發(fā)送間的間隙,因而可以增加可利用的帶寬)。
典型的,由于需要兩個(gè)測量值計(jì)算速率的偏差,所以在周期結(jié)束時(shí)或是在速率校正和移位校正的情況下兩個(gè)周期結(jié)束時(shí)校正時(shí)鐘。
在分配的時(shí)隙之一內(nèi),所有的同步節(jié)點(diǎn)必須同時(shí)在信道10和20上發(fā)送同步幀,因此所有的節(jié)點(diǎn)接收到相同的時(shí)間信息,只連接到一個(gè)信道的節(jié)點(diǎn)也如此。
為了在兩個(gè)通信控制器30、32之間應(yīng)用同步,每個(gè)通信控制器30、32緊緊跟隨其自身和與其連接的相對信道的單信道通信控制器之間的差異。具體的,每個(gè)單信道通信控制器30、32測量彼此相對于自己時(shí)間的時(shí)間,通過兩種可能的方法計(jì)算偏移和速率差值,并且使用用于速率和偏移校正的方法計(jì)算容錯參數(shù),例如通過數(shù)值的直接交換,其中數(shù)值合并有關(guān)本地時(shí)鐘和信道的更多的信息。
關(guān)于所述系統(tǒng)的數(shù)學(xué)術(shù)語使z為一個(gè)周期的長度,使C為所有通信控制器30、32的集合,使A為信道10的所有通信控制器30的集合,使B為信道20的所有通信控制器32的集合,使As為信道10中被配置為發(fā)送同步幀的所有通信控制器30的集合(AsA)和使Bs為信道20中被配置為發(fā)送同步幀的所有通信控制器32的集合(BsB)。
在圖2A、2B和2C所示的單信道體系結(jié)構(gòu)中,對于每個(gè)通信控制器i∈As,存在唯一的通信控制器j∈Bs,其都屬于相同的節(jié)點(diǎn),反之亦然。實(shí)質(zhì)上,這意味著在As和Bs之間存在一一映射,其中,對于每個(gè)節(jié)點(diǎn)i∈As,s(i)∈Bs為在與i相同的節(jié)點(diǎn)中信道20的通信控制器(對于每個(gè)節(jié)點(diǎn)j∈Bs,s-1(j)∈As為在與j相同的節(jié)點(diǎn)中信道10的通信控制器)。
使a,b∈R+為阻尼因子,a用于信道內(nèi)時(shí)鐘校正,b用于信道間時(shí)鐘校正。a和b可以針對偏移校正和速率校正所分別選擇(為了簡化,這不在下面的公式中體現(xiàn))。
使Ti(t)為通信控制器i∈C的周期時(shí)間t的真實(shí)時(shí)間。因而Ti(0)是通信控制器i認(rèn)為周期1將要開始的真實(shí)時(shí)間,Ti(z)是通信控制器i認(rèn)為周期1結(jié)束周期2開始的真實(shí)時(shí)間,依此類推。
最后,使τi為節(jié)點(diǎn)i∈C的速率,從而Ti(t)=Ti(0)+τit。
關(guān)于簡單的交換,首先描述單純移位校正的算法每個(gè)節(jié)點(diǎn)測量其自己的時(shí)鐘和所有可測量節(jié)點(diǎn)的時(shí)鐘之間的差值。在FlexRay中,這是通過比較進(jìn)入的同步幀的到達(dá)時(shí)間和預(yù)期的到達(dá)時(shí)間來完成的。
使i∈As。然后對于每個(gè)可測量的通信控制器j∈As,j≠i,通信控制器i每個(gè)周期測量偏移Mi,j=Tj(x)-Ti(x)+ϵτi,x∈
.]]>所有的節(jié)點(diǎn)i∈Bs同樣操作。
在一個(gè)周期內(nèi)何時(shí)測量某對通信控制器之間的偏移取決于系統(tǒng)配置,所以用x表示。
Mi,j是以通信控制器i本地時(shí)間測量的上一次校正之后周期1內(nèi)的通信控制器i和通信控制器j之間的偏移差值,其中存在測量誤差ε。
還進(jìn)行如下測量Mi,s(i)=Ts(i)(x)-Ti(x)+ϵτi,x∈
]]>所有的節(jié)點(diǎn)i∈Bs同樣操作。
這些是相對相同節(jié)點(diǎn)內(nèi)其他通信控制器的偏移。
根據(jù)本發(fā)明,現(xiàn)在通過如下公式計(jì)算通信控制器i的偏移校正項(xiàng)FT((Mi,j2)j∈As,j≠i)a+Mi,s(i)2b,]]>其中FT為容錯偏移計(jì)算算法,該算法的示例可參見Fred B.Schneider,″Understanding Protocols for Byzantine ClockSynchronization″,Cornell University,Ithaca,New York,August 1987。優(yōu)選的變體是F[ault-]T[olerant]M[idpoint]算法。所有的節(jié)點(diǎn)i∈Bs同樣操作。
可以證明的是,如果1-1/a-2/b≥0,那么所述算法起作用,并且兩個(gè)信道10、20的時(shí)鐘趨于一致。
對于a和b,好的數(shù)值是
特別是a=2和b=4對于實(shí)現(xiàn)極其有利(無需用于除法的A[rithmetic-]L[ogic]U[nit],簡單的移位就足夠了),是優(yōu)選的選擇。
關(guān)于簡單的交換,現(xiàn)在描述偏移校正和速率校正的算法每個(gè)節(jié)點(diǎn)測量其自己的時(shí)鐘和所有可測量節(jié)點(diǎn)的時(shí)鐘之間的差值。在F1exRay中,這是通過比較進(jìn)入的同步幀的到達(dá)時(shí)間和預(yù)期的到達(dá)時(shí)間來完成的。
使i∈As。然后對于每個(gè)可測量的通信控制器j∈As,j≠i,通信控制器i每個(gè)周期測量偏移Mi,j1=Tj(xi,j)-Ti(xi,j)+ϵτi]]>Mi,j2=Tj(xi,j+z)-Ti(xi,j+z)+ϵ,τi]]>xi,j∈
。
所有的節(jié)點(diǎn)i∈Bs同樣操作。
在一個(gè)周期內(nèi)何時(shí)測量某對通信控制器之間的偏移取決于系統(tǒng)配置,所以用xi,j表示。
Mi,j1是以通信控制器i本地時(shí)間測量的上一次校正之后周期1內(nèi)的通信控制器i和通信控制器j之間的偏移差值,其中存在測量誤差ε。Mi,j2是以通信控制器i本地時(shí)間測量的上一次校正之后周期2內(nèi)的通信控制器i和通信控制器j之間的偏移差值,其中存在測量誤差ε。
還進(jìn)行如下兩個(gè)測量Mi,s(i)1=Ts(i)(xi,s(i))-Ti(xi,s(i))+ϵτi]]>Mi,s(i)2=Ts(i)(xi,s(i)+z)Ti(xi,s(i)+z)+ϵ,τi]]>xi,s(i)∈
所有的節(jié)點(diǎn)i∈Bs同樣操作。
這些是相對相同節(jié)點(diǎn)內(nèi)其他通信控制器的偏移。
根據(jù)本發(fā)明,現(xiàn)在通過如下公式計(jì)算通信控制器i的偏移校正項(xiàng)FT((Mi,j2)j∈AS,j≠i)a+Mi,s(i)2b,]]>其中FT為容錯偏移計(jì)算算法,該算法的示例可參見Fred B.Schneider,″Understanding Protocols for Byzantine ClockSynchronization″,Cornell University,Ithaca,New York,August 1987。優(yōu)選的變體是F[ault-]T[olerant]M[idpoint]算法。所有的節(jié)點(diǎn)i∈Bs同樣操作。通過如下公式計(jì)算通信控制器i的速率校正項(xiàng)FT((Mi,j2-Mi,j1)j∈AS,j≠i)a+Mi,s(i)2b,]]>其中FT為容錯偏移計(jì)算算法,該算法的示例可參見Fred B.Schneider,″Understanding Protocols for Byzantine ClockSynchronization″,Cornell University,Ithaca,New York,August 1987。優(yōu)選的變體是F[ault-]T[olerant]M[idpoint]算法。所有的節(jié)點(diǎn)i∈Bs同樣操作。
可以證明的是,如果1-1/a-2/b≥0,那么所述算法起作用,并且兩個(gè)信道10、20的時(shí)鐘趨于一致。
對于a和b,好的數(shù)值是 特別是a=2且b=4對于實(shí)現(xiàn)極其有利(無需用于除法的A[rithmetic-]L[ogic]U[nit],簡單的移位就足夠了),是優(yōu)選的選擇。
下面,給出偏移校正和速率校正算法的示例使FT為F[ault-]T[olerant]M[idpoint]算法。如果給出超過2k+1個(gè)測量值,那么FTM可以至多容許k個(gè)拜占庭錯誤(Byzantine failure)。
FTM算法對已經(jīng)通過的數(shù)值進(jìn)行排序,并且移除k個(gè)最低值和k個(gè)最高值。然后,選擇余下的最高值和余下的最低值,并計(jì)算二者的平均值。
關(guān)于節(jié)點(diǎn)i的偏移校正,在移除高值和低值之后,節(jié)點(diǎn)Li的偏移差的測量值是最低的,和節(jié)點(diǎn)Hi的偏移差的測量值是最高的。
其遵循FTM((Mi,j2)j∈AS,i≠j)a+Mi,s(i)2b=Mi,Si2+Mi,Li22a+Mi,s(i)2b]]>對于a=2且b=4,校正項(xiàng)的計(jì)算遵循Mi,Si2+Mi,Li24+Mi,s(i)22]]>對于速率校正和FTM,結(jié)果是類似的。
另外,圖3A和圖3B示出了如何在兩個(gè)相關(guān)聯(lián)的通信控制器30、32之間用簡單的方法進(jìn)行測量的示例圖3A示出了第一信道10的單信道通信控制器30和第二信道20的單信道通信控制器32如何能通過各自一個(gè)信號交換它們的時(shí)鐘信息。所述兩個(gè)通信控制器30、32測量它們的偏移,并改變周期c的長度以便補(bǔ)償(-->校正的周期邊界bw與未校正的周期邊界bo進(jìn)行比較,bw和bo的差值就是校正的偏移值co)。函數(shù)f用于使該機(jī)制容錯。如果已知信號傳播的延遲,那么為了附加的精度可以進(jìn)行補(bǔ)償。
圖3B示出了第一信道10的單信道通信控制器30和第二信道20的單信道通信控制器32如何能通過各自一個(gè)信號交換它們的時(shí)鐘信息。所述兩個(gè)通信控制器30、32測量它們的偏移差值和速率差值,并改變周期c的長度以便補(bǔ)償(-->校正的周期邊界bw與未校正的周期邊界bo進(jìn)行比較,bw和bo的差值就是校正偏移/校正速率cor)。函數(shù)f和g用于使該機(jī)制容錯。如果已知信號傳播的延遲,那么為了附加的精度可以進(jìn)行補(bǔ)償。
關(guān)于其性能,上述算法是迅速的,并且在兩個(gè)相關(guān)聯(lián)的通信控制器30、32之間不需要復(fù)雜的額外接口。
由于可以在正常的通信周期c期間,測量一個(gè)通信控制器30(或32)相對于與其相關(guān)聯(lián)的通信控制器32(或30)的時(shí)間差值,所以不必延遲校正計(jì)算。然而,與常規(guī)方法相比,所能達(dá)到的精度可能嚴(yán)重降低了。尤其是,不同信道10、20的非同步節(jié)點(diǎn)受到潛在的高時(shí)鐘差的影響。
為了與單信道系統(tǒng)相兼容,a和b將是可配置的而不是固定為最佳選擇,其中總有一個(gè)選擇是最佳的(不必合并第二信道20的其他項(xiàng))。
關(guān)于復(fù)雜的交換,首先描述單純偏移校正的算法每個(gè)節(jié)點(diǎn)測量其自己的時(shí)鐘和所有可測量節(jié)點(diǎn)的時(shí)鐘之間的差值。在FlexRay中,這是通過比較進(jìn)入的同步幀的到達(dá)時(shí)間和預(yù)期的到達(dá)時(shí)間來完成的。
使i∈As。然后對于每個(gè)可測量的通信控制器j∈As,j≠i,通信控制器i每個(gè)周期測量偏移Mi,j=Tj(x)-Ti(xi,j)+ϵτi,xi,j∈
.]]>所有的節(jié)點(diǎn)i∈Bs同樣操作。
在一個(gè)周期內(nèi)何時(shí)測量某對通信控制器之間的偏移取決于系統(tǒng)配置,所以用xi,j表示。
Mi,j是以通信控制器i本地時(shí)間測量的上一次校正之后周期1內(nèi)的通信控制器i和通信控制器j之間的偏移差值,其中存在測量誤差ε。
根據(jù)本發(fā)明,對于每個(gè)通信控制器i∈As,現(xiàn)計(jì)算如下的項(xiàng)δioffset=FT((Mi,j)j∈AS,j≠i),]]>其中FT是容錯偏移計(jì)算算法,該算法的示例可參見Fred B.Schneider,″Understanding Protocols for Byzantine ClockSynchronization″,Cornell University,Ithaca,New York,August 1987。優(yōu)選的變體是F[ault-]T[olerant]M[idpoint]算法。所有的通信控制器i∈Bs同樣操作δioffset=FT((Mi,j)j∈AS,j≠i)]]>每個(gè)節(jié)點(diǎn)i∈As發(fā)送其校正項(xiàng)δioffset到與其相關(guān)聯(lián)的通信控制器s(i),并且從所述相關(guān)聯(lián)的通信控制器s(i)接收δs(i)offset?,F(xiàn)在,通信控制器i可以計(jì)算其偏移校正項(xiàng)δioffseta+δs(i)offsetb]]>所有的節(jié)點(diǎn)i∈Bs同樣操作。
可以證明的是,如果1-1/a-1/b≥0且a=b,那么所述算法起作用,并且兩個(gè)信道10、20的時(shí)鐘趨于一致。
對于a和b,好的數(shù)值是 特別是a=2且b=2對于實(shí)現(xiàn)極其有利(無需用于除法的A[rithmetic-]L[ogic]U[nit],簡單的移位就足夠了),是優(yōu)選的選擇。
關(guān)于復(fù)雜的交換,現(xiàn)在描述偏移校正和速率校正的算法每個(gè)節(jié)點(diǎn)測量其自己的時(shí)鐘和所有可測量節(jié)點(diǎn)的時(shí)鐘之間的差值。在FlexRay中,這是通過比較進(jìn)入的同步幀的到達(dá)時(shí)間和預(yù)期的到達(dá)時(shí)間來完成的。
使i∈As。然后對于每個(gè)可測量的通信控制器j∈As,j≠i,通信控制器i每個(gè)周期測量偏移
Mi,j1=Tj(xi,j)-Ti(xi,j)+ϵτi]]>Mi,j2=Tj(xi,j+z)-Ti(xi,j+z)+ϵ,τi]]>xi,j∈
。
所有的節(jié)點(diǎn)i∈Bs同樣操作。
在一個(gè)周期內(nèi)何時(shí)測量某對通信控制器之間的偏移取決于系統(tǒng)配置,所以用xi,j表示。
Mi,j1是以通信控制器i本地時(shí)間測量的上一次校正之后周期1內(nèi)的通信控制器i和通信控制器j之間的偏移差值,其中存在測量誤差ε。
Mi,j2是以通信控制器i本地時(shí)間測量的上一次校正之后周期2內(nèi)的通信控制器i和通信控制器j之間的偏移差值,其中存在測量誤差ε。
根據(jù)本發(fā)明,對于每個(gè)通信控制器i∈As,現(xiàn)計(jì)算如下項(xiàng)δioffset=FT((Mi,j2)j∈AS,i≠j)]]>δirate=FT((Mi,j2-Mi,j1)j∈AS,i≠j),]]>其中FT是容錯偏移計(jì)算算法,該算法的示例可參見Fred B.Schneider,″Understanding Protocols for Byzantine ClockSynchronization″,Cornell University,Ithaca,New York,August 1987。優(yōu)選的變體是F[ault-]T[olerant]M[idpoint]算法。所有的通信控制器i∈Bs同樣操作δioffset=FT((Mi,j2)j∈BS,i≠j)]]>δirate=FT((Mi,j2-Mi,j1)j∈BS,i≠j)]]>每個(gè)節(jié)點(diǎn)i∈As發(fā)送其校正項(xiàng)δioffset和δirate到與其相關(guān)聯(lián)的通信控制器s(i),并且從所述相關(guān)聯(lián)的通信控制器s(i)接收δs(i)offset和δs(i)rate?,F(xiàn)在,通信控制器i可以計(jì)算其偏移校正項(xiàng)
δioffseta+δs(i)offsetb]]>和其速率校正項(xiàng)δiratea+δs(i)rateb]]>所有的節(jié)點(diǎn)i∈Bs同樣操作。
可以證明的是,如果1-1/a-1/b≥0且a=b,那么所述算法起作用,并且兩個(gè)信道10、20的時(shí)鐘趨于一致。
對于a和b,好的數(shù)值是 特別是a=2且b=2對于實(shí)現(xiàn)極其有利(無需用于除法的A[rithmetic-]L[ogic]U[nit],簡單的移位就足夠了),是優(yōu)選的選擇。
下面,給出偏移校正和速率校正算法的示例使FT為F[ault-]T[olerant]M[idpoint]算法。如果給出超過2k+1個(gè)測量值,那么FTM可以至多容許k個(gè)拜占庭錯誤。
FTM算法對已經(jīng)通過的數(shù)值進(jìn)行排序,并且移除k個(gè)最低值和k個(gè)最高值。然后,選擇余下的最高值和余下的最低值,并計(jì)算二者的平均值。
關(guān)于節(jié)點(diǎn)i的偏移校正,在移除高值和低值之后,節(jié)點(diǎn)Li的偏移差的測量值是最低的,和節(jié)點(diǎn)Hi的偏移差的測量值是最高的。
其遵循Mi,Si2+Mi,Li22a+δs(i)offsetb(=Mi,Si2+Mi,Li22a+Ms(i),Ss(i)2+Ms(i),Ls(i)22b)]]>
括號內(nèi)未給出必須在i內(nèi)計(jì)算的項(xiàng),而是給出了實(shí)際應(yīng)用的項(xiàng)。為了分析該算法的行為,該公式是有用的。
對于a=2且b=2,校正項(xiàng)的計(jì)算遵循Mi,Si2+Mi,Li24+δs(i)offset2(=Mi,Si2+Mi,Li2+Ms(i),Ss(i)2+Ms(i),Li(s)24)]]>對于速率校正和FTM,結(jié)果是類似的。
關(guān)于其性能,上述算法是非常迅速的,但是為了交換δ值,在兩個(gè)相關(guān)聯(lián)的通信控制器30、32之間需要接口。
由于不能在正常的通信周期期間內(nèi)測量一個(gè)通信控制器30(或32)相對于與其相關(guān)聯(lián)的通信控制器32(或30)的時(shí)間差值,而是在第一FT計(jì)算后交換時(shí)間差值,所以通過附加的必需的δ值交換以及相繼的附加計(jì)算,使得校正項(xiàng)的計(jì)算延遲。
尤其是由于通訊控制器30、32都受到偏移的影響,所以交換耗費(fèi)一些時(shí)間。只有當(dāng)最慢的一個(gè)完成校正項(xiàng)的計(jì)算時(shí),通信控制器30、32才都完成其校正項(xiàng)的計(jì)算。只有通信控制器30、32在系統(tǒng)啟動必須保證的范圍內(nèi)存在差異,其才起作用,否則時(shí)鐘同步不能“進(jìn)入”(kick in)。一旦給出該條件,時(shí)鐘同步算法可以使相關(guān)聯(lián)的控制器30、32保持在這些范圍內(nèi)。
上述算法的優(yōu)點(diǎn)是,所能達(dá)到的精度幾乎與常規(guī)的雙信道體系結(jié)構(gòu)的精度一致。僅有非同步節(jié)點(diǎn)受到稍高時(shí)鐘差異的影響。
為了達(dá)到最高的可能精度,必須選擇一致的a和b。因此,對于雙方只需給出一個(gè)配置參數(shù)。為了兼容單信道系統(tǒng),該配置參數(shù)仍將是可配置的,而不是兩個(gè)中的最好選擇,其中總有一個(gè)選擇是最佳的(不必合并第二信道20的其他項(xiàng))。
總之,本發(fā)明提出了同步處于不同的信道10、20上的兩個(gè)獨(dú)立的單信道通信控制器30、32操作的新方法,以從實(shí)質(zhì)上仿效雙信道控制器CC(參見圖1)的行為,所述單信道通信控制器30、32可能處于同一芯片上(參見圖2C)但不一定處于同一芯片上(參見圖2B),因此可以制造出劃算的IC(集成電路)模塊,其可用于產(chǎn)生單信道通信控制器或是雙信道通信控制器。
對于本發(fā)明,通信控制器30、32是首要重要的??偩€驅(qū)動器12和22、總線監(jiān)控器以及主機(jī)設(shè)備60羅列于此是為了提供可以應(yīng)用本發(fā)明的完整的技術(shù)概念。這些設(shè)備的存在與否不使本發(fā)明受限。
參考數(shù)字列表100 節(jié)點(diǎn)(本發(fā)明的第一實(shí)施例,參見圖2A)100’ 節(jié)點(diǎn)(本發(fā)明的第二實(shí)施例,參見圖2B)100” 節(jié)點(diǎn)(本發(fā)明的第三實(shí)施例,參見圖2C)10 第一信道12 第一信道10的總線驅(qū)動器20 第二信道22 第二信道20的總線驅(qū)動器30 通信控制器,具體分配給第一信道1032 通信控制器,具體分配被第二信道1240 控制器主機(jī)接口,具體分配給第一通信控制器3042 控制器主機(jī)接口,具體分配給第二通信控制器3250 協(xié)議引擎,具體分配給第一通信控制器3052 協(xié)議引擎,具體分配給第二通信控制器3254 本地信道內(nèi)通信外部接口(本發(fā)明的第二實(shí)施例,參見圖2B)56 本地信道內(nèi)通信片上接口(本發(fā)明的第三實(shí)施例,參見圖2C)60 應(yīng)用程序主機(jī)B1 第一信道C1的總線驅(qū)動器(現(xiàn)有技術(shù),參見圖1)B2 第二信道C2的總線驅(qū)動器(現(xiàn)有技術(shù),參見圖1)C1 第一信道(現(xiàn)有技術(shù),參見圖1)C2 第二信道(現(xiàn)有技術(shù),參見圖1)CC 通信控制器(現(xiàn)有技術(shù),參見圖1)CI 通信控制器CC的控制器主機(jī)接口(現(xiàn)有技術(shù),參見圖1)
H 應(yīng)用程序主機(jī)(現(xiàn)有技術(shù),參見圖1)N 節(jié)點(diǎn)(現(xiàn)有技術(shù),參見圖1)P 通信控制器CC的協(xié)議引擎(現(xiàn)有技術(shù),參見圖1)bw 有校正的周期邊界bo 無校正的周期邊界c 周期co 校正偏移cor校正偏移/校正速率f 函數(shù)
權(quán)利要求
1.一種方法,用于操作分布式通信系統(tǒng),具體地,用于同步該分布式通信系統(tǒng)的時(shí)鐘,所述通信系統(tǒng)含有通過至少一個(gè)通信鏈路而相互連接的大量節(jié)點(diǎn)(100,100’,100”),所述通信鏈路包括至少兩個(gè)信道(10,20),其特征在于,每個(gè)信道(10,20)受自己的通信控制器(30,32)控制。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,為了同步時(shí)鐘,校正時(shí)鐘的偏移差值和時(shí)鐘的速率差值。
3.一種計(jì)算機(jī)程序,能夠在至少一個(gè)計(jì)算機(jī)上運(yùn)行,具體地,在至少一個(gè)微處理器上運(yùn)行,其特征在于,所述計(jì)算機(jī)程序是為了執(zhí)行根據(jù)權(quán)利要求1或2所述的方法而編制的。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序存儲在至少一個(gè)只讀存儲器中,至少一個(gè)隨機(jī)存取存儲器中或至少一個(gè)閃速存儲器中。
5.分布式通信系統(tǒng)的節(jié)點(diǎn)(100,100’,100”),所述通信系統(tǒng)含有通過至少一個(gè)通信鏈路而相互連接的大量節(jié)點(diǎn)(100,100’,100”),所述通信鏈路包括至少兩個(gè)信道(10,20),其特征在于,向每個(gè)信道(10、20)分配至少一個(gè)通信控制器(30、32)。
6.根據(jù)權(quán)利要求5所述的節(jié)點(diǎn),其特征在于用于同步節(jié)點(diǎn)(100,100’,100”)時(shí)鐘的裝置,所述裝置校正時(shí)鐘的偏移差值和時(shí)鐘的速率差值。
7.根據(jù)權(quán)利要求5或6所述的節(jié)點(diǎn),其特征在于,至少一個(gè)總線監(jiān)控器用于控制通信控制器(30、32)對通信鏈路(10、20)的訪問,使校正的時(shí)鐘信號對于總線監(jiān)控器是可獲得的,總線監(jiān)控器相應(yīng)地適配其時(shí)鐘。
8.根據(jù)權(quán)利要求5到7至少一項(xiàng)所述的節(jié)點(diǎn),其特征在于用于執(zhí)行如下操作的裝置根據(jù)權(quán)利要求1或2所述的方法,和/或根據(jù)權(quán)利要求3或4所述的計(jì)算機(jī)程序。
9.分布式通信系統(tǒng),具有根據(jù)權(quán)利要求5到8中至少一項(xiàng)所述的大量節(jié)點(diǎn)(100,100’,100”),其特征在于,所述通信系統(tǒng)是容錯的和/或時(shí)間觸發(fā)的。
10.一種應(yīng)用,為了在至少是雙信道的環(huán)境下同步時(shí)鐘,其中可以校正時(shí)鐘的偏移差值和時(shí)鐘的速率差值,所述應(yīng)用是,根據(jù)權(quán)利要求1或2所述方法的應(yīng)用,和/或根據(jù)權(quán)利要求3或4所述的至少一種計(jì)算機(jī)程序的應(yīng)用,和/或根據(jù)權(quán)利要求5到8中至少一項(xiàng)所述的至少一個(gè)節(jié)點(diǎn)(100,100’,100”)的應(yīng)用,和/或根據(jù)權(quán)利要求9所述的通信系統(tǒng)的應(yīng)用。
全文摘要
為了提供了一種方法,其用于操作分布式通信系統(tǒng),具體地,用于同步該分布式通信系統(tǒng)的時(shí)鐘,所述通信系統(tǒng)含有通過至少一個(gè)通信鏈路而相互連接的大量節(jié)點(diǎn)(100,100’,100”),所述通信鏈路包括至少兩個(gè)信道(10,20),其中,在通信控制器(30,32)故障或停止的情況下,可以保持應(yīng)用程序主機(jī)(60)對與通信控制器(30,32)連接的信道(10,20)中至少一個(gè)的訪問,因此建議每個(gè)信道(10,20)受自己的通信控制器(30,32)控制。
文檔編號H04L29/14GK101053216SQ200580037430
公開日2007年10月10日 申請日期2005年8月17日 優(yōu)先權(quán)日2004年9月2日
發(fā)明者約恩·翁格曼 申請人:皇家飛利浦電子股份有限公司