<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > CAN調度理論與實踐分析

          CAN調度理論與實踐分析

          作者: 時間:2012-04-23 來源:網絡 收藏
          中,用W0m=Bm作為初值循環(huán)求解即可。

          按此在新窗口瀏覽圖片

            式(7)代表最壞等待時間已超時限,消息m不可調度。

            按優(yōu)先級降低的次序逐條校驗消息是否可調度,就可驗證整個通信系統(tǒng)是否可調度。

            在2006年實時網絡會議上,Bril、Davis等人發(fā)表了有關Tindell算法有漏洞的文章,后來他們又提出了完整的改進算法[4]。作為反例,表1中消息C用Tindell算法是可調度的,最壞響應時間為3 ms;但第2次消息C的傳送已超時限,如圖2所示。Tindell算法僅考慮了消息C的第1次傳送。

          表1 Tindell算法的反例
          按此在新窗口瀏覽圖片

          按此在新窗口瀏覽圖片
          圖2 消息C的最壞響應時間為3.5 ms

            另外,如將消息B和C的周期縮短為3.25 ms,按照Tindell算法,系統(tǒng)由于未求得最大的最壞響應時間,故仍是可調度的,但實際上總線的利用率已超過100%。Davis的方法核心是引入忙周期的概念,再對忙周期內各次傳送的響應時間求最壞值,詳見附錄1。(見本刊網站www.mesnet.com.cn——編者注。)

            Tindell的開創(chuàng)性工作對后續(xù)的研究與應用有巨大的影響,Volcano通信技術公司(現(xiàn)在的Mentor Graphics)以此理論為基礎開發(fā)了商用的調度分析軟件。由于漏洞的發(fā)現(xiàn),用戶應檢驗軟件是否有了新的補丁以及用它完成的應用是否受影響。

          2 筆者對Davis算法的簡化

            Davis算法要先算出忙周期,再在忙周期中消息m多次傳送中尋找最壞等待最大的那次?;谝韵驴紤],計算可以簡化:

            在忙周期中,消息m傳送時有高優(yōu)先級消息進入隊列,使m的后續(xù)消息發(fā)送前可能插入更多的高優(yōu)先級消息,代表仍有一個對總線需求的高峰,從而有可能使后面的消息m有更大的最壞響應時間。

            最壞的情形是消息m剛發(fā)送,所有高優(yōu)先級消息就進入隊列,即領先于發(fā)完消息m后的第一個發(fā)送空隙的相位達到最大。

            因此求消息m的最壞響應時間就有兩種可能: 用Bm產生阻塞,像Tindell那樣求消息m的最壞響應時間;由Cm產生阻塞,求下一個消息m的最壞響應時間,下一個消息m的排隊時間為Tm-Jm。

            簡化方法的優(yōu)點是減少了計算的次數(shù),從而減少工作量。

            這種算法與Davis算法中的保守算法有兩點不同:一是用Cm來產生阻塞是真實可能發(fā)生的,例如從休眠到上電時消息m比高優(yōu)先級消息早了一點;二是本算法得到的是確切的而非保守的結果。


          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();