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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 如何解決總線通訊數(shù)據(jù)沖突的問題

          如何解決總線通訊數(shù)據(jù)沖突的問題

          作者:周立功致遠電子 時間:2016-06-22 來源:電子產(chǎn)品世界 收藏

            現(xiàn)場總線作為工業(yè)自動化系統(tǒng)中最后一段通訊的橋梁,越來越多的傳感器和執(zhí)行機構(gòu)都集成了總線之類的通訊接口,但其固化的幾個通訊數(shù)據(jù)格式,面對當前眾多復(fù)雜的大系統(tǒng),時常會給設(shè)計者帶來底層數(shù)據(jù)沖突的困擾,如何完美解決這一難題,至關(guān)重要。

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

            一、問題描述

            大家都知道,一個網(wǎng)絡(luò)中不同節(jié)點發(fā)出的報文的ID也應(yīng)是不同的,否則當ID沖突的兩個節(jié)點同時上傳數(shù)據(jù)時會產(chǎn)生錯誤。但是我們時常會發(fā)現(xiàn)某些接口的傳感器或者控制器的報文ID是固定的,不具備硬件地址區(qū)分。以下圖為例,某電機控制器有三條標準幀功能報文,ID分別為0x0001、0x0002、0x0003。那么如何在同一個CAN網(wǎng)絡(luò)中使用多個同樣的電機控制器既可以防止ID沖突又可以識別硬件地址呢?

            

           

            圖 1 相同CANID設(shè)備組網(wǎng)

            二、解決方案

            針對這一問題,可以將致遠電子的CAN網(wǎng)橋CANbridge+加裝在各個設(shè)備與總線之間,利用其ID映射功能,將每臺設(shè)備的功能ID映射為一個帶地址字段的新ID。這樣既可以防止設(shè)備上傳的報文產(chǎn)生ID沖突錯誤,又可以通過添加的地址字段區(qū)分不同的設(shè)備。如下圖所示,將標準幀ID的高8位定義為地址字段,這樣就可以通過ID區(qū)分不同設(shè)備的上行下行報文。

            

           

            圖 2 使用CAN網(wǎng)橋?qū)崿F(xiàn)相同CANID設(shè)備組網(wǎng)

            三、設(shè)置流程

            1、 波特率設(shè)置

            使用通訊線連接CANbridge+和PC機,打開CANCfg軟件,在基本信息選項卡里點擊CAN1、CAN2波特率的下拉菜單,均選擇所接CAN設(shè)備的對應(yīng)波特率。

            

           

            圖 3 CANbridge+的波特率設(shè)置

            2、 幀映射設(shè)置

            在幀映射選項卡里點擊使能幀映射,假定網(wǎng)橋的CAN1端口連接CAN設(shè)備,網(wǎng)橋的CAN2端口連接CAN網(wǎng)絡(luò)。添加如下圖所示的映射關(guān)系,即可將1號設(shè)備的所有功能ID關(guān)聯(lián)上硬件地址。同樣對其他設(shè)備連接的CAN網(wǎng)橋做類似的設(shè)置,即可實現(xiàn)相同CANID設(shè)備的組網(wǎng)。

            

           

            圖 4 CANbridge+的幀映射設(shè)置



          關(guān)鍵詞: CAN 總線通訊

          評論


          技術(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); })();