<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種“動(dòng)靜結合”的CAN總線(xiàn)調度算法在汽車(chē)電子控制網(wǎng)絡(luò )中的研究與應用

一種“動(dòng)靜結合”的CAN總線(xiàn)調度算法在汽車(chē)電子控制網(wǎng)絡(luò )中的研究與應用

作者: 時(shí)間:2016-12-20 來(lái)源:網(wǎng)絡(luò ) 收藏
CAN總線(xiàn)最初是由德國B(niǎo)OSCH公司于20世紀80年代初提出的,當時(shí)主要應用于汽車(chē)電氣通信,它將汽車(chē)上各種信號的接線(xiàn)只用兩根簡(jiǎn)潔的電纜線(xiàn)取代,而各種電子裝置通過(guò)CAN控制器掛到這兩根電纜上,設備之間進(jìn)行數據通信和數據共享,從而大大減少了汽車(chē)上的線(xiàn)束。CAN總線(xiàn)結構獨特,性能可靠,目前被公認為是最有前途的現場(chǎng)控制總線(xiàn)之一。

1、基于CAN總線(xiàn)的汽車(chē)電子控制網(wǎng)絡(luò )中潛在問(wèn)題

  從信息共享角度分析,現代典型的汽車(chē)電子控制單元有:電控燃油噴射系統、電控傳動(dòng)系統、防抱死制動(dòng)系統(ABS)、防滑控制系統(ASR)、巡航系統、空調控制系統等,用CAN總線(xiàn)將各個(gè)單元節點(diǎn)連接起來(lái),組成實(shí)時(shí)通信網(wǎng)絡(luò )。

  汽車(chē)CAN總線(xiàn)網(wǎng)絡(luò )在實(shí)際運行過(guò)程中,眾多節點(diǎn)之間需要進(jìn)行大量的實(shí)時(shí)數據交換,不可避免會(huì )出現總線(xiàn)負荷過(guò)大的情況。當信息幀的碰撞概率達到一定程度時(shí),系統中一部分信息幀的收發(fā)就會(huì )產(chǎn)生延時(shí),甚至根本不能收發(fā)成功。這樣,當駕駛員剎車(chē)時(shí),即使時(shí)延只有幾個(gè)毫秒,但時(shí)速100公里的汽車(chē)也可能在這期間內全速駛出3~4米,后果將不堪設想。

  為了解決上述問(wèn)題,本文提出了一種結合TTCAN(Time Triggered Controller Area Network)技術(shù)和動(dòng)態(tài)晉升機制[4]各自所長(cháng)的“動(dòng)靜結合”的調度算法。該算法有效解決了數據的發(fā)送時(shí)延和沖突問(wèn)題,改善了CAN總線(xiàn)數據傳輸的實(shí)時(shí)性。

2、基于TTCAN技術(shù)的時(shí)間觸發(fā)調度方式

  TTCAN由時(shí)間進(jìn)程驅動(dòng),其時(shí)間觸發(fā)調度由順序固定的時(shí)間窗組成。時(shí)間窗是用于交換報文的時(shí)間片斷,通常有三類(lèi)時(shí)間窗:專(zhuān)用時(shí)間窗(特定的周期性報文)、仲裁時(shí)間窗(通過(guò)仲裁訪(fǎng)問(wèn)總線(xiàn)的報文)和空閑時(shí)間窗(為總線(xiàn)擴展所保留),如圖1所示。專(zhuān)用時(shí)間窗類(lèi)似于TDMA(時(shí)分多路訪(fǎng)問(wèn)),屬于離線(xiàn)進(jìn)行的靜態(tài)調度,所有流程和時(shí)間參數均需要預先指定,并可以在多級或多個(gè)TTCAN網(wǎng)絡(luò )內實(shí)現同步。TTCAN的全局時(shí)間由時(shí)間主機周期發(fā)送的參考報文產(chǎn)生,它的總線(xiàn)最多可以配置8個(gè)具有優(yōu)先級的時(shí)間主機節點(diǎn),以確??偩€(xiàn)的連續、確定性通信,優(yōu)先級最高的時(shí)間主機為當前時(shí)間主機。


圖1 TTCAN的基本周期和時(shí)間窗


  在節點(diǎn)編程時(shí),可以利用處理器的定時(shí)器中斷周期作為NTU(Network Time Unit),其值定義為在CAN總線(xiàn)上以1Mbps的速率傳輸1幀8字節數據幀所需時(shí)間的八分之一,約為16.75μs。對周期中斷次數進(jìn)行計數,總線(xiàn)的調度從主節點(diǎn)發(fā)送參考報文開(kāi)始,當計數器值與節點(diǎn)設定值相符時(shí),則發(fā)送周期報文。傳輸數據幀時(shí)的時(shí)間窗利用率可以定義為:時(shí)間窗利用率=(傳輸數據幀所需的NTU數/時(shí)間窗長(cháng)度)×100%。在實(shí)際測試中可以發(fā)現,當時(shí)間窗小、調度周期數大時(shí),誤碼率較大;當時(shí)間窗增大即時(shí)間窗利用率較低時(shí),誤碼率基本維持在很低的水平。

3、基于動(dòng)態(tài)優(yōu)先級調度算法的事件觸發(fā)調度方式

  仲裁窗發(fā)送事件觸發(fā)報文,如果采用傳統的靜態(tài)優(yōu)先級分配機制,將會(huì )在網(wǎng)絡(luò )負擔繁重的情況下出現發(fā)送傳輸時(shí)延或者丟失報文。而動(dòng)態(tài)優(yōu)先級調度算法則能很好地解決這一問(wèn)題。以下是該算法的基本原理。

  首先,將CAN的仲裁域(以擴展幀格式為例)分成優(yōu)先級和標識兩部分,如圖2所示。標識部分是固定用來(lái)標識協(xié)議幀的,這也是協(xié)議幀的惟一標識,與傳統協(xié)議幀標識符的意義完全相同;優(yōu)先級部分已經(jīng)不再具有協(xié)議幀的標識功能,而只是表示協(xié)議幀的優(yōu)先級功能,所以它可以根據總線(xiàn)調度機制分配給協(xié)議幀的優(yōu)先級的變化而變化。


圖2 CAN擴展幀格式的仲裁域的劃分


  其次,當協(xié)議幀第一次發(fā)送、且當它在發(fā)送時(shí)和其他協(xié)議幀碰撞并失去仲裁時(shí),即退出發(fā)送,并置優(yōu)先級上升一位后,再重新發(fā)送。因為這時(shí)其優(yōu)先級高于其他協(xié)議幀,在整個(gè)網(wǎng)絡(luò )中如果沒(méi)有其他與之具有相同優(yōu)先級的協(xié)議幀同時(shí)發(fā)送,即使和其他的協(xié)議幀(處于第一次發(fā)送的)碰撞,也會(huì )贏(yíng)得仲裁,所以發(fā)送成功的概率很大。


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>