《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 多現(xiàn)場(chǎng)總線接口智能儀表設(shè)計(jì)
多現(xiàn)場(chǎng)總線接口智能儀表設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2011年第8期
牛昱光, 崔正文
(太原理工大學(xué) 信息工程學(xué)院,山西 太原 030024)
摘要: 在不同現(xiàn)場(chǎng)總線的產(chǎn)品共存的自動(dòng)化系統(tǒng)中,如何使新興智能儀表與原有現(xiàn)場(chǎng)設(shè)備或未來(lái)更新設(shè)備在通信方面相兼容,已經(jīng)成為一個(gè)現(xiàn)實(shí)問(wèn)題。為此,提出了智能儀表中多現(xiàn)場(chǎng)總線接口技術(shù)。從硬軟件方面研究了智能儀表中MODBUS、PROFIBUS和CANBUS三種現(xiàn)場(chǎng)總線通信接口,重點(diǎn)分析了設(shè)計(jì)中的關(guān)鍵問(wèn)題,并結(jié)合電工儀表產(chǎn)品實(shí)現(xiàn)了三種現(xiàn)場(chǎng)總線通信。通過(guò)對(duì)上位機(jī)的通信測(cè)試數(shù)據(jù)的分析,驗(yàn)證了該設(shè)計(jì)方案的可行性。
中圖分類號(hào): TP368
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)08-131-04
Design of multi-fieldbus interface in intelligent instrument
Niu Yuguang, Cui Zhengwen
College of Information Engineering, Taiyuan University of Technology, Taiyuan 030024, China
Abstract: Different fieldbus products coexist in automation system and how to make the new smart meters with the existing on-site equipments or the update compatible in communication, which has become a real problem. Thus, this paper proposes a multi-fieldbus intelligent instrument interface technology. The design has made a study of three types of field-bus interface about MODBUS,PROFIBUS and CANBUS applied in intelligent instrument on hardware and software and gives a special focus on an analysis of the key issues, and realize communication combined with electrical instrument which was equipped with three field-bus communication boards separately. The design approved practicable, through the analysis of the communication data on host computer.
Key words : Fieldbus; MODBUS; PROFIBUS; CANBUS


    為了適應(yīng)不同自動(dòng)化系統(tǒng)的應(yīng)用需求,出現(xiàn)了擁有不同技術(shù)特點(diǎn)的現(xiàn)場(chǎng)總線[1]。每種現(xiàn)場(chǎng)總線都以一個(gè)或幾個(gè)大型跨國(guó)公司為背景拓展其應(yīng)用領(lǐng)域,多種總線在一個(gè)應(yīng)用領(lǐng)域中協(xié)調(diào)共存,不同的總線設(shè)備為用戶提供了產(chǎn)品選擇多樣性的同時(shí),也給用戶帶來(lái)了設(shè)備兼容性問(wèn)題,傳統(tǒng)的單一現(xiàn)場(chǎng)總線儀表已經(jīng)不能靈活地適用于自動(dòng)化系統(tǒng)。因此,針對(duì)多種總線共存的客觀事實(shí),探討如何使智能儀表適應(yīng)不同現(xiàn)場(chǎng)總線系統(tǒng)有著重要的現(xiàn)實(shí)意義。
1 系統(tǒng)結(jié)構(gòu)及功能
    本文系統(tǒng)以STC12C5612AD作為智能儀表的主CPU(內(nèi)部燒寫有MODBUS通信協(xié)議),設(shè)置一個(gè)由主CPU所在板引出的引腳為GND、VDD、TXD、RXD、INT1、AGND、VCC的公共通信接口,可以連接485、PROFIBUS、CAN三種通信板中的一種通信電路實(shí)現(xiàn)通信。其中CAN、PROFIBUS通信電路分別有獨(dú)立的CPU(AT89C51CC03[2]和P89V51RD2,分別燒寫了DEVICENET和PROFIBUS-DP協(xié)議),與主CPU構(gòu)成雙CPU結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)如圖1所示。

2 系統(tǒng)硬件設(shè)計(jì)
    系統(tǒng)硬件主要包括:RS-485、CAN和PROFIBUS通信接口電路。其中,RS-485通信電路包括光耦和485驅(qū)動(dòng)電路;CAN接口電路由如圖2所示的CAN控制電路和如圖3所示的CAN驅(qū)動(dòng)電路組成。PROFIBUS-DP接口電路由CPU(P89V51RD2)、通信協(xié)議控制芯片SPC3[3]、高速光耦HCPL0601和RS-485總線驅(qū)動(dòng)電路組成,如圖4所示。CAN接口電路與PROFIBUS接口電路相似,由于篇幅所限,本文以PROFIBUS接口電路為例進(jìn)行說(shuō)明。

   

 

    由圖4可知,PROFIBUS-DP接口電路的CPU(P89V51RD2)負(fù)責(zé)控制SPC3實(shí)現(xiàn)PROFIBUS-DP總線數(shù)據(jù)的轉(zhuǎn)換與共享。SPC3已集成了PROFIBUS-DP物理層的數(shù)據(jù)收發(fā)功能,可獨(dú)立處理PROFIBUS-DP協(xié)議;DP通信服務(wù)存取點(diǎn)由SPC3自動(dòng)建立,各種報(bào)文信息呈現(xiàn)在用戶面前是不同BUF的內(nèi)部數(shù)據(jù),用戶可以通過(guò)總線接口單元來(lái)訪問(wèn)這些內(nèi)部數(shù)據(jù)。SPC3選擇工作在Intel模式下(XINT/MOT接低電平,MODE接高電平, J2引入2路+5 V隔離電源J3用作編程口。P89V51RD2通過(guò)P0、P2口與SPC3的總線單元連接來(lái)讀寫SPC3的1.5 KB RAM[4],P0口作為數(shù)據(jù)總線和低8位地址總線復(fù)用口,P2口作為高8位地址總線。由于SPC3內(nèi)部集成了鎖存器,所以P89V51RD2的P0口AD0~AD7與SPC3的DB0~DB7直接相連。P89V51RD2的讀寫控制信號(hào)WR、RD和ALE信號(hào)分別與SPC3的XWR、XRD和ALE相連,CPU通過(guò)P1.0對(duì)SPC3進(jìn)行復(fù)位,并且通過(guò)外部中斷引腳P3.2接入SPC3的中斷信號(hào)X/INT。撥碼開(kāi)關(guān)電路用于設(shè)置DP從站波特率。外接TL7705實(shí)現(xiàn)看門狗功能。由于SPC3僅集成了物理層的數(shù)據(jù)傳輸功能,不具備RS-485的驅(qū)動(dòng)接口,因此擴(kuò)充了RS-485驅(qū)動(dòng)電路。另外為避免總線引入干擾,在SPC3與RS-485總線驅(qū)動(dòng)電路之間采用10 Mb/s高速光耦HCPL0601進(jìn)行光電隔離。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 RS-485通信軟件的設(shè)計(jì)

    RS-485通信由主CPU控制,不需外接單獨(dú)的CPU,采用中斷方式通信。PC機(jī)作為上位機(jī),與儀表采用問(wèn)答方式通信,總線上的設(shè)備在時(shí)序上需嚴(yán)格配合,必須遵從以下原則:(1)復(fù)位時(shí),從機(jī)都應(yīng)該處于接收狀態(tài);(2)控制端、DE的信號(hào)有效脈寬應(yīng)該大于發(fā)送或接收一幀信號(hào)的寬度,接收/發(fā)送數(shù)據(jù)也要考慮延時(shí);(3)總線上所連接設(shè)備的發(fā)送控制信號(hào)在時(shí)序上要完全隔開(kāi)。RS-485串行通信程序流程如圖5所示。RS-485串行通信采用MODBUS消息幀RTU模式,整個(gè)消息幀必須作為一連續(xù)的流傳輸。如果在幀完成之前有超過(guò)1.5個(gè)字符時(shí)間的停頓時(shí)間,則接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個(gè)新消息的地址域。同樣地,如果一個(gè)新消息在小于3.5個(gè)字符時(shí)間內(nèi)接著前個(gè)消息開(kāi)始,則接收設(shè)備將認(rèn)為它是前一消息的延續(xù)。

3.2 CAN總線軟件設(shè)計(jì)
    CAN總線軟件的任務(wù)是實(shí)現(xiàn)CAN總線[5]與RS-485總線間的通信,完成兩者的協(xié)議轉(zhuǎn)換。主要包括節(jié)點(diǎn)初始化程序、報(bào)文發(fā)送程序、報(bào)文接收程序以及CAN總線出錯(cuò)處理程序等。在初始化CAN內(nèi)部寄存器時(shí),要注意保證各節(jié)點(diǎn)的位速率一致,而且接發(fā)雙方必須同步。為提高通信的實(shí)時(shí)性,報(bào)文的接收和發(fā)送采用定時(shí)中斷接收方式。編寫初始化程序應(yīng)注意:先清除所有通道和其對(duì)應(yīng)的狀態(tài)寄存器;根據(jù)外部時(shí)鐘和需要的CAN比特率初始化位定時(shí)器;根據(jù)收發(fā)要求定義通道的ID和過(guò)濾器寄存器;初始化對(duì)應(yīng)通道的收發(fā)標(biāo)志和數(shù)據(jù)的字節(jié);在CAN中斷接收程序中還要注意接收到數(shù)據(jù)后重新初始化,并設(shè)置使能接收通道,以便接收下次中斷數(shù)據(jù)。同樣,在定時(shí)中斷發(fā)送例程中,把數(shù)據(jù)放入發(fā)送緩沖區(qū)后要置發(fā)送標(biāo)志,并重新初始化定時(shí)器。CAN通信流程如圖6所示。

3.3 PROFIBUS-DP從站軟件設(shè)計(jì)
     采用PROFIBUS-DP通信的智能儀表通常作為PROFIBUS-DP總線的從站設(shè)備,其軟件程序包括通信主程序、SPC3初始化和中斷處理, 其主程序流程圖如圖7所示。PROFIBUS-DP通信控制器SPC3集成了PROFIBUS-DP協(xié)議。P89V51RD2微處理器需要對(duì)SPC3進(jìn)行合理的配置、初始化及報(bào)文處理。微處理器除了要完成串口端的定時(shí)/計(jì)數(shù)器工作方式、波特率、中斷方式設(shè)置等自身初始化任務(wù)外,還要對(duì)SPC3進(jìn)行開(kāi)中斷、從站識(shí)別地址、片內(nèi)方式寄存器、診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配置緩沖區(qū)、地址緩沖區(qū)、初始長(zhǎng)度等初始化設(shè)置。中斷處理程序用來(lái)處理SPC3發(fā)生的各種事件(如新的參數(shù)報(bào)文事件、全局控制命令報(bào)文事件、新的地址設(shè)置報(bào)文事件、新的組態(tài)報(bào)文事件等)。
  本文設(shè)計(jì)的三種通信程序都是在Keil-Uvision3仿真軟件環(huán)境下進(jìn)行C51編寫、編譯和調(diào)試;GSD文件是在西門子GSD文件編輯器(GSD Editor)[6] 環(huán)境下進(jìn)行編寫和編譯。
4 測(cè)試結(jié)果
4.1 MODBUS通信測(cè)試
  使用STC-ISP.exe燒寫程序軟件將MODBUS通信程序以冷啟動(dòng)方式寫入主芯片STC12C5612AD。單臺(tái)儀表可以通過(guò)“ComMonitor”串口調(diào)試軟件按照標(biāo)準(zhǔn)RTU信息幀格式測(cè)試。
4.2 CAN通信測(cè)試
  使用Atmel-Flip2.4.6燒寫程序軟件,將CAN通信程序以冷啟動(dòng)方式寫入主芯片T89C51CC03。使用周立功公司的PCI-9810主站卡插在PC機(jī)PCI插槽上作為主節(jié)點(diǎn),通信調(diào)試軟件使用ZLGCANTest-PCI9810。
4.3 PROFIBUS通信測(cè)試
    將智能儀表作為從站并設(shè)置地址為3,實(shí)現(xiàn)與主站PC(地址1)的通信。由于PROFIBUS-DP在底層物理層上采用RS-485協(xié)議,因此可以通過(guò)串口調(diào)試助手軟件SComAssistant V2.1模擬DP系統(tǒng)工作過(guò)程,對(duì)總線數(shù)據(jù)進(jìn)行偵聽(tīng)。
4.4 通信測(cè)試結(jié)果
    智能儀表分別配置的MODBUS、PROFIBUS和CANBUS三種通信試驗(yàn)板均能夠接收上位機(jī)主節(jié)點(diǎn)發(fā)送的命令,同時(shí)發(fā)送響應(yīng)信息至上位機(jī),實(shí)現(xiàn)主從站數(shù)據(jù)交換,且收發(fā)數(shù)據(jù)正確,測(cè)試結(jié)果表明本設(shè)計(jì)方案可行。
    本文介紹的帶有多現(xiàn)場(chǎng)總線接口的智能儀表,使智能儀表具備了MODBUS、PROFIBUS和CANBUS三種獨(dú)立的現(xiàn)場(chǎng)總線通信功能。通信板采用統(tǒng)一標(biāo)準(zhǔn)接口的集成化模塊結(jié)構(gòu)設(shè)計(jì),使得智能儀表更換通信板更加便捷、高效,避免了智能儀表的二次開(kāi)發(fā)。為解決控制系統(tǒng)多種總線并存環(huán)境下的信息交換提供了一種解決方案,具有一定的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] 陽(yáng)憲惠. 現(xiàn)場(chǎng)總線技術(shù)及其應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2008.
[2] ATMELL. Enhanced 8-bit MCU with CAN controller and  flash memory AT89C51CC03 datasheet[S]. 2007.
[3] Germany, Siemens AG. Siemens AG,SIMATIC NET SPC3  PROFIBUS controller user description[S]. 2000.
[4] 孫鶴旭, 梁濤, 云利軍. Profibus 現(xiàn)場(chǎng)總線控制系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[M]. 北京:國(guó)防工業(yè)出版社,2007.
[5] BOSCH Inc. CAN 2.0 specification part A&B. 1991.
[6] 羅紅福,胡斌,鐘存福,等. PROFIBUS-DP 現(xiàn)場(chǎng)總線工程應(yīng)用實(shí)例解析[M]. 北京: 中國(guó)電力出版社, 2008.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。