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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)和CPLD的PLC背板總線協(xié)議接口芯片設(shè)計(jì)

          基于單片機(jī)和CPLD的PLC背板總線協(xié)議接口芯片設(shè)計(jì)

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

            可編程邏輯控制器(PLC)主機(jī)是通過背板總線支持?jǐn)U展模塊的連接, 背板總線是PLC 主機(jī)同I/O擴(kuò)展模塊之間的高速數(shù)據(jù)通路,支持主機(jī)和擴(kuò)展模塊之間的I/O 數(shù)據(jù)刷新。背板總線的技術(shù)水平?jīng)Q定了PLC 產(chǎn)品的I/O 擴(kuò)展能力,是PLC 設(shè)計(jì)制造的核心技術(shù)。目前,PLC 大多采用串行通信技術(shù)實(shí)現(xiàn)背板總線,串行總線引線少、硬件成本低,跟并行總線相比不容易受干擾,串行總線可以提高在惡劣的工廠和工業(yè)環(huán)境下自動(dòng)化設(shè)備的可靠性。用于串行通信技術(shù)的可選類型包括I2C、UART、SPI、USB 和以太網(wǎng)等,一般來(lái)說,很多作為PLC 主芯片的自身都集成了這些外設(shè)部件。但是內(nèi)部集成的I2C、UART、SPI 外設(shè)通信速率太慢,根本不能滿足底板總線的通信速度要求。USB 和以太網(wǎng)的通信速度雖然很快但由于它們都是通用的接口,在通信協(xié)議處理時(shí)需要的干預(yù), 單片機(jī)處理數(shù)據(jù)速度較慢,因此整體通信速度仍然很慢。一臺(tái)大型的PLC 采集上千點(diǎn)I/O 數(shù)據(jù)的時(shí)間一般不到1ms,要滿足如此高速的通信要求必須設(shè)計(jì)專門的背板總線。

            1 背板總線工作原理

            如圖1 所示,基于背板總線的數(shù)據(jù)通信流程如下:

            (1)PLC 主機(jī)的命令通過主機(jī)協(xié)議芯片發(fā)送到背板總線;(2)從機(jī)協(xié)議芯片把接收到的命令給擴(kuò)展模塊的單片機(jī), 某一個(gè)擴(kuò)展模塊的單片機(jī)做出應(yīng)答,通過從機(jī)協(xié)議芯片把應(yīng)答數(shù)據(jù)送往背板總線;(3)主機(jī)協(xié)議芯片收到應(yīng)答數(shù)據(jù),并送往PLC主機(jī)的單片機(jī)。

          基于單片機(jī)和CPLD的PLC背板總線協(xié)議接口芯片設(shè)計(jì)

          圖1 背板總線通信框圖

            PLC 主機(jī)發(fā)往背板總線的數(shù)據(jù)可以分成兩類:一類是I/O 刷新數(shù)據(jù),具有周期性,數(shù)據(jù)交換非常頻繁;另一類是診斷性數(shù)據(jù),具有非周期性,出現(xiàn)機(jī)會(huì)較少。


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

          關(guān)鍵詞: 單片機(jī) CPLD PLC背板總線

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