
由于這在物理上是一個(gè)分布式控制系統(tǒng),因此每個(gè)子系統(tǒng)都有自己的時(shí)鐘源,這也是各子系統(tǒng)為什么從不完全同步運(yùn)行的主要原因。傳統(tǒng)的輸入/輸出緩沖器方法不能解決這個(gè)問(wèn)題。如果從測(cè)量器件A中收到1000個(gè)抽樣,從B中收到1001個(gè),從C中收到999個(gè)抽樣,控制器該怎么辦?控制算法基于這樣一個(gè)理論:它假設(shè)一個(gè)控制系統(tǒng)中,從所有器件收到的抽樣都是同步而且等距離的。漏掉一個(gè)抽樣或不確定的傳動(dòng)延遲會(huì)使該理論的前提條件不成立。在使用閉環(huán)系統(tǒng)時(shí),回路中總有一個(gè)點(diǎn)需要吸收時(shí)間差。
每個(gè)開(kāi)發(fā)商的目標(biāo)都是盡量使系統(tǒng)“完美”,使所有器件的時(shí)鐘同步運(yùn)行,這將大大簡(jiǎn)化系統(tǒng)的開(kāi)發(fā)工作。
FlexRay及對(duì)分布式控制系統(tǒng)的支持
FlexRay協(xié)議使用一種時(shí)間觸發(fā)時(shí)間表。與事件觸發(fā)系統(tǒng)不同,時(shí)間觸發(fā)時(shí)間表由時(shí)間點(diǎn)控制。總線寫入訪問(wèn)由TDMA方案確定(在開(kāi)發(fā)階段進(jìn)行配置并確認(rèn)),這意味著只能在精確指定的時(shí)間段內(nèi)進(jìn)行總線寫入訪問(wèn),這些時(shí)間段被稱為時(shí)隙。TDMA方法可提供靜態(tài)和確定性的定時(shí)。整個(gè)規(guī)定的時(shí)間表稱為一個(gè)通信循環(huán),它包括帶有固定數(shù)量的靜態(tài)插槽的靜態(tài)部分、支持靈活通信的動(dòng)態(tài)部分、一個(gè)符號(hào)窗口和網(wǎng)絡(luò)閑置時(shí)間。
除了TDMA的主要功能外,F(xiàn)lexRay協(xié)議還可以支持一個(gè)FlexRay群集中各通信節(jié)點(diǎn)之間的時(shí)鐘同步。這是一種不可或缺的功能,因?yàn)樵诜植际娇刂葡到y(tǒng)中,參與控制算法的所有子系統(tǒng)需要對(duì)全局時(shí)間有相同的理解。FlexRay協(xié)議使用分布式時(shí)鐘同步機(jī)制,其中每個(gè)節(jié)點(diǎn)可通過(guò)觀察從其它節(jié)點(diǎn)上發(fā)送的同步幀的定時(shí)來(lái)獨(dú)立實(shí)現(xiàn)自身與群集之間的同步。一種容錯(cuò)算法被用于計(jì)算所進(jìn)行的修正。
FlexRay節(jié)點(diǎn)內(nèi)的時(shí)間顯示基于循環(huán)、Macrotick和Microtick。Microtick是直接源自通信控制器振蕩器時(shí)鐘計(jì)時(shí)的時(shí)間單位,并且也是控制器專用單位。它們?cè)诓煌刂破髦锌赡苡胁煌臅r(shí)長(zhǎng)。Macrotick在群集范圍內(nèi)進(jìn)行同步,在容許誤差范圍內(nèi),Macrotick的時(shí)長(zhǎng)在群集中所有同步節(jié)點(diǎn)中是相同的。一個(gè)循環(huán)包括Macrotick的整數(shù)倍。在一個(gè)群集中的所有節(jié)點(diǎn)中,每個(gè)循環(huán)的Macrotick數(shù)量是相同的,并且在各循環(huán)中也是相同的。
FlexRay群集內(nèi)的每個(gè)節(jié)點(diǎn)都有全局時(shí)間的本地視圖,每個(gè)節(jié)點(diǎn)使用時(shí)鐘同步算法來(lái)嘗試根據(jù)全局時(shí)間來(lái)調(diào)整自己的本地時(shí)間。本地時(shí)間由不同變量表示:vCycleCounter、vMacrotick和vMicrotick。vCycleCounter和vMacrotick變量對(duì)上層(即應(yīng)用)是可視的,因此可用于根據(jù)FlexRay通信系統(tǒng)的全局時(shí)間完成應(yīng)用同步。
盡管FlexRay從配置方面看是一種非常靈活的通信系統(tǒng),仍有一些必須考慮的實(shí)際限制。
● 一個(gè)TDMA循環(huán)的長(zhǎng)度可配置在10ms~16000ms范圍內(nèi);
● 每個(gè)TDMA循環(huán)的Macrotick數(shù)量可配置在10~16000范圍內(nèi);
● 一個(gè)Macrotick的長(zhǎng)度可配置在1ms~6ms范圍內(nèi)。
此外,F(xiàn)lexRay協(xié)議還規(guī)定了對(duì)控制器主機(jī)接口(CHI)支持的基本要求。CHI是FlexRay通信控制器和主機(jī)控制器之間的一個(gè)層,除了其它所需的功能外,CHI還提供至少一個(gè)絕對(duì)定時(shí)器。一旦調(diào)節(jié)的Macrotick和循環(huán)數(shù)與主控(compere)值相匹配,絕對(duì)定時(shí)器會(huì)通知主機(jī)控制器(如通過(guò)中斷)。
根據(jù)上面的簡(jiǎn)介看(大部分摘自文獻(xiàn)1),上層的應(yīng)用層可使用來(lái)自vCycleCounter和vMacrotick計(jì)數(shù)器的信息來(lái)同步FlexRay群集內(nèi)通信節(jié)點(diǎn)之間的整個(gè)控制算法。
通過(guò)FlexRay同步的多節(jié)點(diǎn)系統(tǒng)示例
為進(jìn)行測(cè)試,我們?cè)O(shè)計(jì)和實(shí)施了通過(guò)FlexRay總線發(fā)送數(shù)字音頻信號(hào)的一種演示應(yīng)用。該系統(tǒng)最多包括8個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)在40kHz的頻率上抽取一個(gè)單信號(hào)樣本,使用一個(gè)FlexRay時(shí)隙將它發(fā)送到所有其它節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)可選擇接收FlexRay總線上提供的8個(gè)數(shù)字音頻信號(hào)中的一個(gè),然后在耳機(jī)上復(fù)制該信號(hào)。
FlexRay和音頻傳輸系統(tǒng)的系統(tǒng)定時(shí)關(guān)系如圖1所示。FlexRay通信系統(tǒng)的循環(huán)時(shí)間配置為1ms,每個(gè)循環(huán)有1000個(gè)Macrotick。1ms的循環(huán)時(shí)間對(duì)應(yīng)40個(gè)音頻抽樣。N循環(huán)期間獲得的40個(gè)抽樣可在N+1循環(huán)內(nèi)在各節(jié)點(diǎn)之間發(fā)送,并在N+2循環(huán)期間播放。因此,該系統(tǒng)的準(zhǔn)確傳輸時(shí)延為2ms。
該系統(tǒng)的一個(gè)主要特性是可以根據(jù)FlexRay全局時(shí)間同步所有節(jié)點(diǎn)。模數(shù)轉(zhuǎn)換是根據(jù)絕對(duì)定時(shí)器觸發(fā)的,即每25個(gè)Macrotick調(diào)用一個(gè)事件。這樣就確保了每個(gè)FlexRay循環(huán)內(nèi)可以抽取40個(gè)等距離抽樣。相同的方法可用于將數(shù)字抽樣信號(hào)轉(zhuǎn)換為模擬信號(hào)。此外,信號(hào)接收僅需要2個(gè)固定長(zhǎng)度緩沖器,信號(hào)發(fā)送也只需要2個(gè)。在過(guò)渡方面,一個(gè)緩沖器裝滿了第N個(gè)循環(huán)的40個(gè)抽樣,第二個(gè)緩沖器裝滿了準(zhǔn)備發(fā)送的第N-1循環(huán)的抽樣,緩沖器將在下一個(gè)循環(huán)內(nèi)交換。相同方法也適用于接收。一個(gè)緩沖器從FlexRay中獲得第N個(gè)循環(huán)的數(shù)據(jù)(將在第N+1個(gè)循環(huán)中發(fā)送到模數(shù)轉(zhuǎn)換器),同時(shí)另一個(gè)將第N-1個(gè)循環(huán)中獲得的數(shù)據(jù)發(fā)送到模數(shù)轉(zhuǎn)換器。
分布式控制系統(tǒng)示例
第二個(gè)示例用于分布式控制系統(tǒng),這種系統(tǒng)至少包括2個(gè)通過(guò)通信線路連接的物理上互相獨(dú)立的子系統(tǒng)。一個(gè)子系統(tǒng)根據(jù)所需數(shù)值w(k)和在設(shè)備輸出y(k)上抽取的實(shí)際數(shù)值之間的差異進(jìn)行控制算法計(jì)算。另一個(gè)子系統(tǒng)包括為設(shè)備生成輸入x(t)的制動(dòng)器(Actuator)和測(cè)量設(shè)備輸出的傳感器。因?yàn)樵撛O(shè)備是一個(gè)持續(xù)系統(tǒng),所以為了獲得不同的y(k),需要對(duì)其輸出y(t)進(jìn)行抽樣。該系統(tǒng)的結(jié)構(gòu)如圖2所示。

設(shè)計(jì)好的系統(tǒng)是一個(gè)電機(jī)控制應(yīng)用,其重點(diǎn)是縮短控制回路時(shí)間。通信線路是FlexRay,受控設(shè)備是一個(gè)電機(jī),制動(dòng)器是一個(gè)PWM生成器,傳感器是對(duì)相電流進(jìn)行抽樣的模數(shù)轉(zhuǎn)換器。PWM頻率設(shè)置為20kHz(50μs周期),其工作循環(huán)每隔一個(gè)PWM周期(100μs更新)進(jìn)行更新。還需要使用相同的FlexRay總線用于另一個(gè)不常用的數(shù)據(jù)傳輸操作。圖3顯示了FlexRay總線的配置和使用以及應(yīng)用的相應(yīng)定時(shí)。如圖所示,所建議的方法可實(shí)現(xiàn)150μs的控制回路周期。我們分配了25μs(一個(gè)Macrotick)的時(shí)間來(lái)對(duì)相電流進(jìn)行抽樣和轉(zhuǎn)換,將抽樣放入最大為8Byte的傳輸緩沖器中。在下一個(gè)25μs期間內(nèi),數(shù)據(jù)被發(fā)送到控制子系統(tǒng)中。后面的50μs專用于控制子系統(tǒng)完成控制回路計(jì)算。然后,控制器輸出信號(hào)(PWM相工作循環(huán))的傳輸再占用25μs。最后,制動(dòng)器子系統(tǒng)在一個(gè)25μs的Macrotick內(nèi)將工作循環(huán)用于PWM生成器。





