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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > PROFI BUS-DP/MODBUS的網(wǎng)關(guān)結(jié)構(gòu)設(shè)計(jì)

          PROFI BUS-DP/MODBUS的網(wǎng)關(guān)結(jié)構(gòu)設(shè)計(jì)

          作者: 時(shí)間:2009-12-16 來源:網(wǎng)絡(luò) 收藏

          (2)協(xié)議數(shù)據(jù)映射層
          負(fù)責(zé)將I/O模塊映射為標(biāo)準(zhǔn)BUS-DP I/O模塊的工作,包括對(duì)下掛的I/O模塊類型和通信接口控制字的檢查;各輸入模塊通道輸入數(shù)據(jù)在BUS-DP輸入數(shù)據(jù)中起始位置及所占長度的管理;BUS-DP輸出數(shù)據(jù)向各輸出模塊通道輸出數(shù)據(jù)上的映射關(guān)系管理。
          (3)通信層
          負(fù)責(zé)完成和下掛從站I/O模塊的所有通信,包括讀取I/O模塊類型、讀取通道輸出值、設(shè)定通道輸出值和參數(shù)設(shè)置等工作;根據(jù)映射層提供的輸出數(shù)據(jù)映射關(guān)系,將PROFIBUS-DP的輸出數(shù)據(jù)在CPU存儲(chǔ)器里的映射數(shù)據(jù)更新到輸出模塊的相應(yīng)通道上;讀取各輸入模塊的通道輸入值,給映射層提供輸入數(shù)據(jù)資源。
          3.3 PROFIBUS-DP總線驅(qū)動(dòng)
          此網(wǎng)關(guān)PROFIBUS-DP部分采用協(xié)議芯片VPC3+C,其內(nèi)部含有4KB RAM,用戶可根據(jù)需要對(duì)其進(jìn)行設(shè)置;有兩種微處理器接口,數(shù)據(jù)/地址總線復(fù)用或單獨(dú)操作。因?yàn)锳RM核對(duì)外部RAM操作的速度較快,時(shí)序不能滿足VPC3+C的操作時(shí)序,因此這里不采用數(shù)據(jù)/地址總線復(fù)用的方式,而是用ARM的GPIO口來模擬VPC3+C的操作時(shí)序。在這里模擬的是其在Intel模式下內(nèi)部寄存器的讀寫時(shí)序。此驅(qū)動(dòng)主要提供了以下功能:nxp_vpc3_read、nxp_vpc3_write、nxp_vpc3_init、nxp_vpc3_reset、nxp_vpc3_isr。這些函數(shù)分別向上層應(yīng)用提供了讀寫VPC3+C寄存器、對(duì)其初始化、復(fù)位操作及中斷的處理功能。其中對(duì)寄存器的讀寫操作是關(guān)鍵部分,函數(shù)原型如下:
          unsigned char nxp_vpc3_read(unsigned int addr);
          void nxp_vpc3_write(unsigned int addr,unsigned char data);
          其中,addr為要讀寫的寄存器地址,data為要寫入的數(shù)據(jù)。
          3.4 協(xié)議的實(shí)現(xiàn)
          為增加信號(hào)傳輸?shù)木嚯x并提高抗干擾能力,MODB-US物理層采用標(biāo)準(zhǔn)的RS485通信。MODBUS協(xié)議實(shí)現(xiàn)軟件的流程如圖5所示。

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

          為了提高協(xié)議處理報(bào)文的效率,并提供良好的擴(kuò)展性能,定義了函數(shù)指針數(shù)組,用于MODBUS應(yīng)用層的數(shù)據(jù)處理。函數(shù)指針數(shù)組指針按照模塊類型進(jìn)行信息處理的導(dǎo)向。
          3.5 協(xié)議數(shù)據(jù)的映射處理
          此網(wǎng)關(guān)的主要任務(wù)是完成PROFI的數(shù)據(jù)和MODB-實(shí)現(xiàn)的流程US數(shù)據(jù)的相互轉(zhuǎn)換,為了保證數(shù)據(jù)的實(shí)時(shí)性采用單緩沖區(qū)技術(shù)來實(shí)現(xiàn)信息的及時(shí)更新。所謂“單緩沖區(qū)”,即不管是PROFI還是MODBUS中待轉(zhuǎn)換的數(shù)據(jù),只保留當(dāng)前最新的一幀。考慮到現(xiàn)場通信的數(shù)據(jù)主要是數(shù)據(jù)的采集或模擬量的輸出,采用單個(gè)緩沖區(qū)不僅僅大大降低了對(duì)內(nèi)存的需求,而且可以保證通信的實(shí)時(shí)性。因?yàn)镻ROFI的正常通信需要組態(tài)的軟件和下掛模塊的硬件一致,才能保證系統(tǒng)的可靠運(yùn)行。因此如何將MODBUS從站模塊合理地映射成PROFIBUS-DP的標(biāo)準(zhǔn)模塊很關(guān)鍵。這里根據(jù)模塊特點(diǎn)(類型、數(shù)字量/模擬量、通道數(shù)量等)定義了不同的通信接口控制字(CFG_DAT)。系統(tǒng)上電后,網(wǎng)關(guān)通過MODBUS功能碼0x11對(duì)下掛從站模塊進(jìn)行類型及狀態(tài)查詢,并根據(jù)類型得到對(duì)應(yīng)不同模塊的CFG_DAT。在PROFIBUS-DP進(jìn)行通信接口配置(CFG_CHK)的過程中檢查下掛模塊的CFG_DAT和對(duì)主站硬件組態(tài)的模塊對(duì)應(yīng)的CFG_DAT,并根據(jù)此來填充診斷數(shù)據(jù)。如果檢查通過,控制PROFIBUS-DP從站協(xié)議芯片進(jìn)入數(shù)據(jù)交換狀態(tài);否則主站在進(jìn)行診斷數(shù)據(jù)請(qǐng)求(DIAG-REQ)的時(shí)候,將診斷數(shù)據(jù)報(bào)告給主站。此網(wǎng)關(guān)判斷的診斷信息包括:對(duì)應(yīng)CFG_DAT錯(cuò)誤的模塊地址、模擬量輸入MODBUS模塊的通道斷線標(biāo)志。



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