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

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





