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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于Salvo的通用CAN/LIN網(wǎng)關(guān)

          一種基于Salvo的通用CAN/LIN網(wǎng)關(guān)

          作者: 時(shí)間:2009-06-19 來(lái)源:網(wǎng)絡(luò) 收藏

          和中斷服務(wù)程序優(yōu)先級(jí)的設(shè)置對(duì)系統(tǒng)完成正常功能影響較大。為防止CAN總線和LIN總線上數(shù)據(jù)丟失,接收(CAN_RXD和LIN_RXD任務(wù))優(yōu)先級(jí)高于發(fā)送任務(wù)優(yōu)先級(jí)(CAN_TXD任務(wù)和LIN_TXD任務(wù))。為防止大量數(shù)據(jù)在中來(lái)不及轉(zhuǎn)換或發(fā)送而丟失,系統(tǒng)開(kāi)辟了多個(gè)接收緩沖器(CANSDU和LINSDU數(shù)組)和發(fā)送緩沖器(LINPDU和CANPDU數(shù)組)。18F4680的CAN模塊是獨(dú)立的硬件電路,可以不依賴于CPU獨(dú)立工作,且內(nèi)有3個(gè)接收緩沖器(包括MAB)和3個(gè)發(fā)送緩沖器,而LIN協(xié)議的數(shù)據(jù)處理由CPU的程序控制USART完成,為防止LIN總線數(shù)據(jù)丟失,LIN總線任務(wù)(LIN_RXD任務(wù)和LIN_TXD任務(wù))優(yōu)先級(jí)高于CAN總線任務(wù)(CAN_RXD任務(wù)和CAN_TXD任務(wù))。系統(tǒng)各任務(wù)和中斷服務(wù)程序的優(yōu)先級(jí)參見(jiàn)表1。

          本文引用地址:http://www.ex-cimer.com/article/173697.htm

          5 結(jié)論
          總線的分級(jí)網(wǎng)絡(luò)控制系統(tǒng)正逐漸從汽車電子領(lǐng)域推廣到其它,如:工業(yè)測(cè)控、安全防護(hù)等鄰域中應(yīng)用,在總線的分級(jí)網(wǎng)絡(luò)控制系統(tǒng)中是一個(gè)核心部件,它為CAN總線設(shè)備和LIN總線設(shè)備的互訪提供連接橋梁。本文討論的CAN/LIN采用新型集成CAN2.0B模塊和可支持LIN1.3的USART模塊的18F4680微處理器,軟件設(shè)計(jì)采用商用RTOSDD,大大提高了系統(tǒng)的穩(wěn)定性和可靠性,增加了系統(tǒng)的可移植性和可擴(kuò)展性,通過(guò)系統(tǒng)功能的裁剪和擴(kuò)充可應(yīng)用于各種分級(jí)網(wǎng)絡(luò)控制領(lǐng)域,是一種性很強(qiáng)的。
          本文作者創(chuàng)新點(diǎn):采用RTOSDD設(shè)計(jì)一個(gè),傳統(tǒng)的主要專用于汽車電子通用性不強(qiáng),采用RTOS設(shè)計(jì)的網(wǎng)關(guān)功能裁剪和擴(kuò)充方便,可移植性和通用性大大增強(qiáng)。


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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();