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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線-PROFIBUS-DP總線網(wǎng)關(guān)的實(shí)現(xiàn)方法

          CAN總線-PROFIBUS-DP總線網(wǎng)關(guān)的實(shí)現(xiàn)方法

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


          側(cè)的初始化與發(fā)送程序流程如圖4:

          佳工機(jī)電網(wǎng)

          因?yàn)镾JA1000的初始化只有在復(fù)位模式下才可以進(jìn)行,因此程序首先將SJA1000的中斷屏蔽,使它進(jìn)入復(fù)位模式,然后對(duì)它進(jìn)行初始化。初始化內(nèi)容主要包括工作方式的設(shè)置、接受濾波方式的設(shè)置、接受屏蔽寄存器和接受代碼寄存器的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器的設(shè)置等。 SJA1000完成初始化設(shè)置后,再讓它返回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。

          在接受子程序里,系統(tǒng)以查詢的方式接受CAN子站傳送過(guò)來(lái)的數(shù)據(jù),網(wǎng)關(guān)通過(guò)接受緩沖區(qū)數(shù)據(jù)區(qū)的第一個(gè)字節(jié)的內(nèi)容判斷接受的是真正的數(shù)據(jù),還是發(fā)給 站點(diǎn)的發(fā)送數(shù)據(jù)請(qǐng)求。如果數(shù)據(jù)區(qū)第一個(gè)字節(jié)是00H,則傳送的是數(shù)據(jù)信息,于是根據(jù)ID查表求得該站所對(duì)應(yīng)的存儲(chǔ)單元,并將數(shù)據(jù)區(qū)的第二、三字節(jié)的內(nèi)容存在該單元內(nèi),同時(shí)把ID放在7FFCH中,告訴對(duì)方發(fā)送數(shù)據(jù)的站點(diǎn)號(hào);如果該字節(jié)內(nèi)容是FFH,則說(shuō)明是發(fā)送數(shù)據(jù)請(qǐng)求,數(shù)據(jù)區(qū)第二個(gè)字節(jié)存放的是被要求發(fā)送數(shù)據(jù)的站點(diǎn)號(hào),將他放入7FFCH內(nèi)即可。

          接口發(fā)送數(shù)據(jù)子程序流程圖如圖5:

          佳工機(jī)電網(wǎng)

          上面的發(fā)送程序是由雙口RAM的中斷信號(hào)觸發(fā)的,收到中斷信號(hào)后,首先讀取7FFEH單元的內(nèi)容,將中斷信號(hào)消除,然后根據(jù)該單元的內(nèi)容,判斷雙口RAM內(nèi)存放的是數(shù)據(jù),還是被要求發(fā)送數(shù)據(jù)的CAN子站的ID號(hào)。如果7FFEH內(nèi)容為00H,則說(shuō)明所要發(fā)送到CAN子站的為正常的數(shù)據(jù),于是將發(fā)送緩沖區(qū)的第一個(gè)字節(jié)設(shè)置為00H,告訴CAN子站發(fā)送的為數(shù)據(jù),然后讀取7FFDH單元內(nèi)容,查表求得數(shù)據(jù)在雙口RAM中的地址,并從該地址取兩個(gè)字節(jié)存到SJA1000輸出緩沖區(qū)數(shù)據(jù)區(qū)的第二、三個(gè)字節(jié),同時(shí)把7FFDH作為發(fā)送的ID號(hào)。如果7FFDH是FFH,則說(shuō)明PROFIBUS- DP發(fā)送過(guò)來(lái)得是被要求發(fā)送數(shù)據(jù)的CAN子站的站點(diǎn)號(hào),于是只要把它放到SJA1000發(fā)送緩沖區(qū)數(shù)據(jù)區(qū)的第二個(gè)字節(jié),并把第一個(gè)字節(jié)設(shè)為FFH,以通知 CAN站點(diǎn),發(fā)送的數(shù)據(jù)為ID號(hào)。以上工作完成后,最后通過(guò)寫命令字發(fā)送數(shù)據(jù)。

          5 結(jié)束語(yǔ)

          實(shí)踐證明,雙CPU結(jié)構(gòu)的雙向網(wǎng)關(guān)可以很好地完成總線協(xié)議轉(zhuǎn)換的任務(wù),并且解決了單CPU結(jié)構(gòu)網(wǎng)關(guān)中存在的數(shù)據(jù)傳輸速率低,數(shù)據(jù)傳輸可靠性差等問(wèn)題,滿足了CAN總線與總線協(xié)議轉(zhuǎn)換的要求。它將CAN總線設(shè)備與PROFIBUS總線設(shè)備的連接起來(lái),使兩種現(xiàn)場(chǎng)總線設(shè)備可以高效的通信,最終達(dá)到數(shù)據(jù)共享與功能互補(bǔ)的目的。并且工作人員在使用過(guò)程中不必關(guān)心兩種總線物理層和數(shù)據(jù)鏈路層的全部?jī)?nèi)容,給總線產(chǎn)品的研究開(kāi)發(fā)帶來(lái)極大方便。另外這種雙CPU結(jié)構(gòu)的設(shè)計(jì)方案對(duì)其他現(xiàn)場(chǎng)總線之間的網(wǎng)關(guān)設(shè)計(jì)具有借鑒意義,是一種值得推廣的方法。

          參考文獻(xiàn)
          [1] 鄔寬明. 現(xiàn)場(chǎng)總線應(yīng)用選編. 北京:北京航空航天大學(xué)出版社,2004
          [2] 鄒益仁. 現(xiàn)場(chǎng)總線控制系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā). 北京:國(guó)防工業(yè)出版社,2003
          [3] 饒運(yùn)濤. 現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù). 北京:北京航空航天大學(xué)出版社,2003
          [4] SIEMENS. SPC3 and DPS2 User Description Version2.0,2002
          [5] PNO.Draft GSD Specification for PROFIBUS-DP GSD Revision2,1998
          [6] PHILIPS.Semiconductor PCA82C250 CAN controlerinter-face,1997(end)

          上一頁(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); })();