關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > P89V51RD2單片機(jī)在PROFIBUS-DP智能*

P89V51RD2單片機(jī)在PROFIBUS-DP智能*

作者:北京工業(yè)大學(xué) 機(jī)械工程與應(yīng)用電子學(xué)院 孫樹(shù)文 楊建武 李孝輝 時(shí)間:2008-04-17 來(lái)源:電子產(chǎn)品世界 收藏

  引言

本文引用地址:http://m.butianyuan.cn/article/81668.htm

  PROFIBUS是作為德國(guó)國(guó)家標(biāo)準(zhǔn)DIN19245和歐洲標(biāo)準(zhǔn)EN50170的現(xiàn)場(chǎng)總線,目前已成為中國(guó)國(guó)家標(biāo)準(zhǔn)GB/T20540-2006的現(xiàn)場(chǎng)總線。PROFIBUS作為一種不依賴于制造廠家的開(kāi)放式現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),已廣泛應(yīng)用于制造加工自動(dòng)化、過(guò)程自動(dòng)化和樓宇自動(dòng)化領(lǐng)域中。PROFIBUS根據(jù)應(yīng)用特點(diǎn)分為、PROFIBUS-FMS、PROFIBUS-PA三個(gè)兼容版本[1]。其中是一種經(jīng)過(guò)優(yōu)化的高速且廉價(jià)的通信連接,專門為自動(dòng)控制系統(tǒng)與在設(shè)備分散的I/O之間的通信設(shè)計(jì),為工廠自動(dòng)化提供了很好的解決方案。

  印刷設(shè)備中存在大量的外圍I/O信號(hào),如何保證外圍設(shè)備與控制主機(jī)之間的實(shí)時(shí)通訊,使得印刷機(jī)可靠運(yùn)行,采用采用傳統(tǒng)的PLC構(gòu)成集散型控制系統(tǒng)(DCS),存在系統(tǒng)不開(kāi)放、硬件投資大、布線復(fù)雜、維修不便的缺點(diǎn),具有明顯的局限性[2]。而采用基于現(xiàn)場(chǎng)總線的分布式I/O系統(tǒng),基本局限于國(guó)外產(chǎn)品,如西門子公司的基于PROFIBUS分布式I/O系統(tǒng),WAGO公司基于CANbus、DeviceNET、PROFIBUS分布式I/O系統(tǒng),但價(jià)格較高。因此我們?cè)O(shè)計(jì)了基于P89V51RD2單片機(jī)的,應(yīng)用于印刷設(shè)備的現(xiàn)場(chǎng)總線中。

  的硬件電路設(shè)計(jì)

  PROFIBUS采用功能模塊化設(shè)計(jì),系統(tǒng)主要由P89V51RD2 [2]微控制器和封裝了PROFIBUS-DP協(xié)議的芯片SPC3構(gòu)成其核心部分,其他還有數(shù)字量輸入輸出口、基于SPC3的PROFIBUS總線驅(qū)動(dòng)器、擴(kuò)展模塊接口、及電源模塊等部分組成,詳見(jiàn)圖1。

  智能從站由24V直流電源供電,而從站中的芯片都采用5V的電源。所以選用了DC/DC電源模塊將24V轉(zhuǎn)換成5V。總線驅(qū)動(dòng)器(RS-485)及光電隔離電路是SPC3與PROFIBUS-DP總線之間的接口。它對(duì)通訊信號(hào)進(jìn)行光電隔離,用以消除來(lái)自總線的干擾,所以采用了雙路電源供電,進(jìn)行了完全的輸入/輸出通道上的電氣上的隔離。電氣隔離采用ADUM1301芯片,該芯片采用了AD公司最新的iCoupler隔離技術(shù),與傳統(tǒng)的光耦器件相比優(yōu)勢(shì)非常明顯:完全滿足工業(yè)現(xiàn)場(chǎng)寬范圍的溫智能從站由24V直流電源供電,而從站中的芯片都采用5V的電源。所以選用了DC/DC電源模塊將24V轉(zhuǎn)換成5V??偩€驅(qū)動(dòng)器(RS-485)及光電隔離電路是SPC3與PROFIBUS-DP總線之間的接口。它對(duì)通訊信號(hào)進(jìn)行光電隔離,用以消除來(lái)自總線的干擾,所以采用了雙路電源供電,進(jìn)行了完全的輸入/輸出通道上的電氣上的隔離。電氣隔離采用ADUM1301芯片,該芯片采用了AD公司最新的iCoupler隔離技術(shù),與傳統(tǒng)的光耦器件相比優(yōu)勢(shì)非常明顯:完全滿足工業(yè)現(xiàn)場(chǎng)寬范圍的溫度要求(-40℃~105℃),低功耗,最高可達(dá)90Mbps的傳輸速率,所需的外圍元件少。從站還采用了MAX705構(gòu)成看門狗電路,對(duì)單片機(jī)提供了獨(dú)立的保護(hù)系統(tǒng)。當(dāng)系統(tǒng)出現(xiàn)故障時(shí),MAX705將以RESET信號(hào)做出響應(yīng),從站地址開(kāi)關(guān)用于手動(dòng)設(shè)置從站地址。

  微控制器芯片P89V51RD2介紹

  本設(shè)計(jì)采用的微處理器是NXP公司的單片機(jī)P89V51RD2[3]。它是80C51微控制器的派生器件,其指令系統(tǒng)與80C51完全相同,采用先進(jìn)CMOS工藝制造,具有64K字節(jié)非易失性FLASH程序存儲(chǔ)器和1K字節(jié)的RAM。P89V51RD2的片上資源很豐富,具有4組8位I/O口、3個(gè)16位定時(shí)/計(jì)數(shù)器、多中斷源(4個(gè)中斷優(yōu)先級(jí),嵌套的中斷結(jié)構(gòu))、1個(gè)增強(qiáng)型UART、片內(nèi)振蕩器及時(shí)序電路。該存儲(chǔ)器支持ISP(In System Programming)功能,ISP的優(yōu)點(diǎn)是支持在系統(tǒng)編程,即不需要移出為控制器,只需要通過(guò)串行接口(RXT和RXD),結(jié)合上位機(jī)軟件就可以實(shí)現(xiàn)PC對(duì)MCU的重復(fù)編程,而且硬件電路連接簡(jiǎn)單,這樣方便了程序調(diào)試,縮短了設(shè)計(jì)開(kāi)發(fā)周期,提高了系統(tǒng)的可靠性和穩(wěn)定性。

  協(xié)議芯片SPC3介紹

  SPC3(Siemens PROFIBUS Controller)是西門子公司設(shè)計(jì)的一款A(yù)SIC芯片,專用于PROFIBUS從站或從設(shè)備的開(kāi)發(fā),可以和多種單片機(jī)(51系列、80C32, 80C165, HC916)配合使用滿足PROFIBUS-DP的高速數(shù)據(jù)傳輸。SPC3其內(nèi)部完全集成了PROFIBUS-DP從站通信協(xié)議,最大傳輸速率可達(dá)12Mbps,可以自動(dòng)檢測(cè)總線上傳輸速率,內(nèi)部具有1.5K字節(jié)的RAM、方式寄存器、狀態(tài)寄存器、中斷寄存器,及各種緩沖器指針和緩沖區(qū)等,其內(nèi)部結(jié)構(gòu)如圖2所示。此外,SPC3從初始化到正常工作,都由芯片內(nèi)部集成的狀態(tài)機(jī)來(lái)控制,不需要人為的過(guò)多干預(yù)。只要按正確方法對(duì)SPC3中的寄存器和數(shù)據(jù)區(qū)進(jìn)行初始化后,對(duì)其雙口RAM進(jìn)行數(shù)據(jù)的讀寫操作即可完成從站與主站間的通訊。

  I/O從站的軟件設(shè)計(jì)

  智能從站的主程序流程如圖3所示,包括:系統(tǒng)初始化,I/O控制程序和PROFIBUS-DP總線通信程序。初始化程序完成對(duì)P89V51RD2微處理器和SPC3協(xié)議芯片的初始化,PROFIBUS-DP通信程序?qū)崿F(xiàn)I/O從站與監(jiān)控主站間的通信。

  在SPC3正常工作之前,微控制器需要對(duì)其進(jìn)行初始化以配置所需要的寄存器,SPC3的的初始化流程如圖4所示,包括設(shè)置協(xié)議芯片的中斷允許、寫入從站識(shí)別號(hào)和地址、設(shè)置SPC3方式寄存器、設(shè)置診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配置緩沖區(qū)、地址緩沖區(qū)、初始化長(zhǎng)度,并根據(jù)以上初始值得出各個(gè)緩沖區(qū)的指針和輔助緩沖區(qū)的指針。根據(jù)傳輸?shù)臄?shù)據(jù)長(zhǎng)度,確定輸出緩沖區(qū)、輸入緩沖區(qū)及指針。由于SPC3內(nèi)部集成了完整的PROFIBUS-DP協(xié)議,因此用戶不用參與處理PROFIBUS狀態(tài)機(jī)制,P89V51RD2根據(jù)SPC3產(chǎn)生的中斷,對(duì)SPC3接收到的主站發(fā)出的輸出數(shù)據(jù)轉(zhuǎn)存,將計(jì)算出的工程量數(shù)據(jù)通過(guò)SPC3發(fā)給主站,并根據(jù)要求進(jìn)行外部診斷等。

  智能從站的調(diào)試

  調(diào)試與檢驗(yàn)PROFIBUS-DP產(chǎn)品前必須組建總線網(wǎng)絡(luò),并進(jìn)行網(wǎng)絡(luò)組態(tài)。通常的網(wǎng)絡(luò)組態(tài)方法有三種:一種是基于組態(tài)軟件(如WINCC)+主站卡(CP5611或CP5613)構(gòu)成的PROFIBUS-DP二類主站的網(wǎng)絡(luò)結(jié)構(gòu),另一種是由具有PROFIBUS-DP接口的硬件PLC構(gòu)成的PROFIBUS-DP一類主站結(jié)構(gòu),還有一種是基于PC+軟 PLC構(gòu)成的PROFIBUS-DP一類主站結(jié)構(gòu)。本文調(diào)試所采用的就是最后一種方式,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。

  監(jiān)控計(jì)算機(jī)運(yùn)行德國(guó)3S公司的CoDeSys[5]軟PLC軟件及RTE實(shí)時(shí)程序組件,作為PROFIBUS-DP總線網(wǎng)絡(luò)的主站(相當(dāng)于一臺(tái)高性能可編程控制器),通過(guò)CP5613卡與自行設(shè)計(jì)開(kāi)發(fā)的智能從站進(jìn)行數(shù)據(jù)通信,構(gòu)成了基于軟PLC和PROFIBUS-DP現(xiàn)場(chǎng)總線的分布式I/O控制系統(tǒng)。

  在控制系統(tǒng)的硬件連接完成后,還需要在監(jiān)控計(jì)算機(jī)上通過(guò)CoDeSys軟件對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行組態(tài),包括安裝系統(tǒng)支持的CP5613卡的驅(qū)動(dòng)程序(由3S提供),并加載到RTE中;加載從站設(shè)備的GSD文件;設(shè)置PROFIBUS-DP總線相關(guān)參數(shù)(如通訊波特率,從站ID號(hào)等)。軟PLC組態(tài)及監(jiān)控界面如圖5所示,可以看出掛接在網(wǎng)絡(luò)系統(tǒng)上的主從設(shè)備都會(huì)在組態(tài)界面上顯示出來(lái),PROFIBUS-DP從站節(jié)點(diǎn)的各個(gè)端口狀態(tài)一目了然,可以實(shí)時(shí)監(jiān)控輸入/輸出點(diǎn)的狀態(tài),并可以強(qiáng)制置位和復(fù)位輸出點(diǎn)。

  結(jié)語(yǔ)

  本文設(shè)計(jì)的基于P89V51RD2和SPC3的PROFIBUS-DP智能從站,通過(guò)現(xiàn)場(chǎng)總線與軟PLC構(gòu)成調(diào)試,實(shí)現(xiàn)了監(jiān)控主站與智能從站的正常通信,并與其他公司的產(chǎn)品進(jìn)行了兼容性實(shí)驗(yàn),運(yùn)行良好,可靠性高。通過(guò)編寫軟PLC的測(cè)試程序,檢查了整體方案的可行性;驗(yàn)證了整個(gè)系統(tǒng)信息傳遞及控制的可靠性、準(zhǔn)確性和實(shí)時(shí)性,所設(shè)計(jì)的智能從站可以很好的滿足了印刷設(shè)備控制系統(tǒng)的要求。開(kāi)發(fā)過(guò)程中所提出的技術(shù)方案和實(shí)現(xiàn)方法可以在電力系統(tǒng)、工業(yè)測(cè)控、冶金等自動(dòng)化領(lǐng)域中推廣應(yīng)用。
  
  參考文獻(xiàn):

  1. 現(xiàn)場(chǎng)總線(Profibus)專業(yè)委員會(huì)(CPO),現(xiàn)場(chǎng)總線PROFIBUS標(biāo)準(zhǔn)(中文版)[S].CPO,2000.

  2.  陽(yáng)憲惠,現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[M],北京:清華大學(xué)出版社,1999.

  3.  Philips Semiconductors,P89V5lRD2 Datasheet[Z],2004

  4.  SIEMENS,DPC31 HARDWARE DESCRIPTION[Z],2002

  5.  3S公司.CoDeSys User Manual[Z],2003

  6.  孫樹(shù)文,張慧慧,楊建武,李屹,CAN總線在潛水電機(jī)分布式監(jiān)控系統(tǒng)中的應(yīng)用[J],計(jì)算機(jī)測(cè)量與控制,2006年第11期

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


51單片機(jī)相關(guān)文章:51單片機(jī)教程




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉