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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于VPC3的PROFIBUS-DP智能從站設(shè)計

          基于VPC3的PROFIBUS-DP智能從站設(shè)計

          作者: 時間:2011-02-15 來源:網(wǎng)絡(luò) 收藏

          ROFIBUS-DP作為—種國際標(biāo)準(zhǔn)現(xiàn)場總線,以其靈活性、可靠性等優(yōu)點,在世界范圍內(nèi)得到了廣泛的應(yīng)用,是一種高性能的工業(yè)控制網(wǎng)絡(luò)。但不是所有的控制設(shè)備都能接入到總線中,必須通過智能從站 接口裝置實現(xiàn),通過智能從站的拜發(fā),可以把非總線的電子設(shè)備接入到總線網(wǎng)絡(luò)中。目前,我國對于PROFIBUS-DP的應(yīng)用和研究主要以國外大公司的成套設(shè)備為主,而自主研究開發(fā)接口的卻比較少 。雖有公司針對PROIFBUSDP協(xié)議轉(zhuǎn)換問題已開發(fā)出相應(yīng)網(wǎng)關(guān)類產(chǎn)品,但價格昂貴,與實際應(yīng)用有一定距離,因此深入研究該技術(shù)對該技術(shù)的國產(chǎn)化有非常現(xiàn)實的意義。

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

            開發(fā)方案的選用

            PROFIBUS-DP是開放的、 無知識產(chǎn)權(quán)倮護的標(biāo)準(zhǔn)。原則上,PROFIBUS DP協(xié)議在任何微處理器上都可以實現(xiàn),在微處理器內(nèi)部或外部安裝異步串行接口(UART)即可完成?;谏鲜鎏攸c,目前在 拜發(fā)PROFIBUS-DP從站時有以下方案可供選擇:(1)+軟件的解決方案;(2)+PROFIBUS專用芯片的解決方案;(3)采用專用拜發(fā)工具。其中以方案2最為方便。

            本文采用加PROFIBUS-DP通信專用芯片的解決方案。其中微控制器的選取是實現(xiàn)智能從站開發(fā)的關(guān)鍵,因為DP智能從站的控制芯片需要有足夠大的RAM來配置VPC3及實現(xiàn)數(shù)據(jù)交換,并且也需要較 高的運行速率。我們選取Cygnal公司推出的完全集成的混合信號系統(tǒng)級芯片C8051F020,其突出的優(yōu)點是具有很高的運算速度,非常合適拜發(fā)PROFIBUS-DP從站。VPC3芯片是VIPA公司為優(yōu)化的智能 PROFIBUSDP從站提供的專用芯片,集成了PROFIBUS-DP協(xié)議,可以替代西門子SPC3,同時具有工作電壓低、RAM大等優(yōu)點,具有很高的性價比。

            硬件電路設(shè)計

            硬件電路主要采用VIPA的PROFIBUS-DP協(xié)議芯片VPC3和CygnalC8051單片機。C805l器件是完全集成的混合信號系統(tǒng)級芯片,具有64個數(shù)字IJO引腳。兼容的CI-51內(nèi)核,4352(4096+156)字節(jié)(B)的片 內(nèi)RAM,可尋址64k字節(jié)地址空間的外部數(shù)據(jù)存儲器接口特別適合本設(shè)計使用。工作過程單片接口轉(zhuǎn)換電路機自動識別不同的非總線設(shè)各,把數(shù)據(jù)交換到VPC3里,由VPC3負責(zé)協(xié)議的轉(zhuǎn)換,把轉(zhuǎn)換后的數(shù)據(jù) 傳送到總線里。整個過程可是逆的。所有功能的實現(xiàn)由我們固化在單片機里的程序?qū)崿F(xiàn)。同時實現(xiàn)自適應(yīng)功能,即自動識別不同的非總線帶通訊的控制設(shè)備。

            VPC3是用于從站開發(fā)的智能通信芯片,它支持PROFIBUS-DP協(xié)議。VPC3內(nèi)部集成4kB的雙口RAM。內(nèi)部鎖存器/寄存器位于前2 1個地址單元,主要包括:方式寄存器l、0,中斷控制寄存器,狀態(tài)寄存器 以及輸入、輸出緩沖器和診斷緩沖器各自的狀態(tài)寄存器。組織參數(shù)位于RAM中從16H開始的單元。整個緩沖器結(jié)構(gòu)(屬于DP-SAPS)就是基于這些參數(shù)來寫的。此外,普通參數(shù)在這些單元設(shè)置數(shù)據(jù)(包括站 地址、地址允許改變、用戶看門狗值和設(shè)備標(biāo)識號等),狀態(tài)顯示存儲在這些單元(通用控制命令等)。

            PROFIBUS-DP智能轉(zhuǎn)換接口的主要功能是利用VPC3協(xié)議芯片作為數(shù)據(jù)采集和發(fā)送單元實現(xiàn)與PROFIBUS-DP現(xiàn)場總線之間的通信,從而能使用戶數(shù)據(jù)傳送到主站并接收來自主站的數(shù)據(jù)。DP智能轉(zhuǎn)換接口 用C8051作為處理器單元管理通信事務(wù),VPC3協(xié)議芯片則完成數(shù)據(jù)的轉(zhuǎn)換和收發(fā)功能。擴展的數(shù)據(jù)存儲器完成數(shù)據(jù)的存儲和處理功能,C8051與VPC3之間通過雙口RAM交換數(shù)據(jù),VPC3的雙口RAM在C8051地址 空間中統(tǒng)一分配地址,C8051將VPC3的雙口RAM作為自己的外部RAM,通過P6和P7口與雙口RAM連接,P6口作為數(shù)據(jù)線和低8位地址線,P7口作為高8位地址線。從站接口的總體設(shè)計方案,我們采用C8051作為 主控芯片,結(jié)合PROFIBUS-DP從站接口芯片VPC3以及ADM248*85接口芯片設(shè)計了整體的解決方案。

            因為C8051和VPC3+均為3.31/供電,所以可以直接連接。對于C8051來說VPC3就是它的一個外置RAM。SPC3有內(nèi)部地址解碼電路,所以ABS~AB10接地。此時DB7~DB0是數(shù)據(jù)地址復(fù)用總線,可以產(chǎn)生低8位的數(shù)據(jù)和地址,高4位地址由AB0~AB3產(chǎn)生,AB4~AB7嚴(yán)生SPC3的片選信號,只有AB4~AB7同時為0時才選中SPC3。單片機P7口的P7.0 ~P70.7接VPC3的DB0~DB7端,既作為VPC3的數(shù)據(jù)線,也作為VPC3地址總線的低8位。P7口作為數(shù)據(jù)線和低8位地址線,P6口作為高8位地址線C8051。P6口的P6.0~P6.2接VPC3的AB0~AB2端, 作為VPC3地 址總線的高3位,同時要使VPC3的高5位AB7…3=00000。在軟件程序的設(shè)計中,VPC3的數(shù)據(jù)存儲器的地址區(qū)被強制在1000H~15FFH,這要求P7.7~7.4=0001, 要想AB4仍為0,必須將P6.0通過一個非門MM74HC接VPC3的AB4端。在實際電路中,VPC3的AB8~10通過一個接地電阻接地,使得AB8..10=000,AB3接P6.3始終給出低電平信號即AB3=0,AB4的輸入端通過非門MM74HC接P6. 4,只要P*始終為1,從而保證VPC3的數(shù)據(jù)存儲器的地址范圍為1000H~15FFH。

            現(xiàn)場總線接口電路是VPC3與現(xiàn)場總線側(cè)連接的電路,因為Profibus-DP可以達到12Mbit/s的速率,因此對已接口電路的要求是非常高的。在此我們選用Profibus接口專用芯片AMD2486,ADM2486是ADI 公司生產(chǎn)的半雙工、隔離RS-485收發(fā)器。其內(nèi)部含有倮護隔離電路,減少了硬件電路的布線,提高了通信的穩(wěn)定性。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 單片機 通信

          評論


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