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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 由RS-232串口到PROFIBUS-DP總線的轉(zhuǎn)換接口設(shè)計(jì)

          由RS-232串口到PROFIBUS-DP總線的轉(zhuǎn)換接口設(shè)計(jì)

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

            3.3RS-232接口

            RS232接口電路RS-232驅(qū)動(dòng)電路,由一個(gè)輸入光電隔離電路(6N136)、一個(gè)輸出光電隔離電路(6N136)、一個(gè)串口處理芯片(MAX232)、D型9針插頭及輔助電路組成,實(shí)現(xiàn)串口TTL信號到RS-232信號的轉(zhuǎn)換。

            3.4撥碼開關(guān)

            一方面用作設(shè)置從站地址,另一方面用作RS-232接口設(shè)置。上電時(shí),使D7=1,D5~D0作為串口配置數(shù)據(jù)存入EEPROM,然后將D0撥到0,D6~D0共7位作為設(shè)置的從站地址。D2D1D0:串口波特率設(shè)置;D4D3:是否有奇/偶校驗(yàn);D5:接收/發(fā)送允許。

            3.5微處理器接口

            微處理器AT89LS8252由以下幾部分組成:一個(gè)8位中央處理器(CPU),片內(nèi)8K字節(jié)的Flash存儲器,2K字節(jié)的EEPROM,片內(nèi)256字節(jié)的SRAM,4個(gè)8位的雙向可尋址I/O端口,一個(gè)全雙工UART串行接口,具有SPI接口,含有WATCHDOG、定時(shí)器等,可滿足接口對程序、配置數(shù)據(jù)、PROFIBUS標(biāo)準(zhǔn)對異步通信等的需要。AT89LS8252外接24MHZ晶振。。通過對SPC3的控制實(shí)現(xiàn)PROFIBUS的通信,并在RAM中建立PROFIBUS通信數(shù)據(jù)緩沖區(qū)。另一方面,通過RS-232接口實(shí)現(xiàn)和外部現(xiàn)場設(shè)備的通信,同樣在RAM中建立RS-232通信數(shù)據(jù)緩沖區(qū)。CPU通過兩個(gè)通信緩沖區(qū)的數(shù)據(jù)交換,實(shí)現(xiàn)PROFIBUS到RS-232的通信。

          4.軟件設(shè)計(jì)

            在西門子公司的DP從站開發(fā)包PACKAGE4中,包括面向SPC3的C原碼固態(tài)程序DPS2。利用它所提供的用戶宏接口,可以方便的實(shí)現(xiàn)SPC3中各寄存器及緩沖區(qū)的初始化設(shè)置,根據(jù)中斷源類型實(shí)現(xiàn)與主站通信數(shù)據(jù)的接受與發(fā)送。因此單片機(jī)不需要考慮從站狀態(tài)機(jī)的實(shí)現(xiàn)順序。其主程序流程圖如圖2所示,中斷流程如圖3所示。

            圖2:主程序流程圖

            圖3:SPC3中斷程序流程圖

          西門子plc相關(guān)文章:西門子plc視頻教程




          評論


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