摘 要: 詳細(xì)探討ProfIbus-DP協(xié)議結(jié)構(gòu)、通信機(jī)理廈技術(shù)特性,并將Profihus-DP技術(shù)與嵌入式技術(shù)相結(jié)合,研制高開放性、實(shí)時(shí)性和可靠性的Profibus-DP主站。
關(guān)鍵詞: 現(xiàn)場總線 Profibus-DP 主站 VxWorks
現(xiàn)場總線是當(dāng)今自動化領(lǐng)域的熱點(diǎn)之一,它的出現(xiàn)標(biāo)志著工業(yè)控制技術(shù)領(lǐng)域又一個(gè)新時(shí)代的開始。在眾多的現(xiàn)場總線產(chǎn)品中,作為歐洲首屈一指的開放式現(xiàn)場總線Profibus(Process Fieldbus)已經(jīng)被全世界所接受,成為國際化的開放式現(xiàn)場總線標(biāo)準(zhǔn),并和基金會現(xiàn)場總線FF成為現(xiàn)場總線的兩大體系,廣泛應(yīng)用于加工制造、過程和建筑自動化領(lǐng)域中。
嵌入式系統(tǒng)以應(yīng)用為中心,軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能,可靠性、成本、體積、功耗有嚴(yán)格要求的場合,其應(yīng)用遍及工業(yè)控制、軍事、網(wǎng)絡(luò)、信息家電、金融等各個(gè)領(lǐng)域。
將Profibus-DP技術(shù)與嵌入式軟硬件相結(jié)合將大大提升系統(tǒng)的品質(zhì),提高系統(tǒng)的開放性、實(shí)時(shí)性和可靠性。
1 Profibus-DP協(xié)議結(jié)構(gòu)及技術(shù)特性
Profibus根據(jù)應(yīng)用特點(diǎn)可分為:Profibus-FMS (Fieldbus Message Specification)、Profibus-DP(Decen-tralized Periphery)和Profibus-PA(Process Automation)三個(gè)兼容版本。
Profibus-FMS用于完成車間級通用性通信任務(wù),適用于中等傳輸速度的監(jiān)控網(wǎng)絡(luò)以及太范圍復(fù)雜的通信系統(tǒng)。Profibus-DP用于實(shí)現(xiàn)設(shè)備一級的高速數(shù)據(jù)通信,中央控制器通過高速串行線與分散的現(xiàn)場設(shè)備進(jìn)行通信,是一種高速、低成本的通信系統(tǒng),適用于分布式控制系統(tǒng)的高速數(shù)據(jù)傳輸。這類系統(tǒng)的構(gòu)成包括DP 1類主站(DPMl,中央可編程控制器)、DP 2類主站(DPM2,可編程、組態(tài)、診斷的設(shè)備)和DP從站(進(jìn)行輸入/輸出信息采集/發(fā)送的設(shè)備)。Profibus-PA是 Profibus-DP向現(xiàn)場的延伸,它具有本質(zhì)安全的特性,適用于本質(zhì)安全要求較高的場合和總線供電的站點(diǎn)。
Profibus協(xié)議結(jié)構(gòu)在OSI參考模型上進(jìn)行了一定的簡化,協(xié)議結(jié)構(gòu)如圖l所示,這種結(jié)構(gòu)保證了快速而有效的數(shù)據(jù)傳輸以及系統(tǒng)的低成本性。
Profibus-DP使用了物理層、數(shù)據(jù)鏈路層和用戶層。物理層規(guī)定了線路介質(zhì)、物理連接的類型和電氣特性。Profihus-DP通常采用RS485傳輸技術(shù),傳輸介質(zhì)為屏蔽的雙絞銅線電纜,傳輸速度可達(dá)9.6 kbps~12 Mbps。在電磁干擾很大或傳輸距離很長的情況下,可以使用光纖傳輸技術(shù)。
現(xiàn)場總線數(shù)據(jù)鏈路層FDL規(guī)定介質(zhì)訪問控制、幀格式、服務(wù)內(nèi)容以及物理層、數(shù)據(jù)鏈路層的總線管理服務(wù)FMAl/2。介質(zhì)訪問控制(MAC)層描述了Profibus采用的混合訪問方式,即主站與主站之間的令牌傳遞方式,主站與從站之間的主一從方式,主站通過獲取令牌獲得訪問控制權(quán)。Profibus規(guī)定幀字符由11位組成:開始位O、8位數(shù)據(jù)、偶校驗(yàn)位和停止位l。FDL層提供4種服務(wù):SDA、SRD、SDN、CsRD。DP總線的傳輸依靠SDN和SRD這兩種FDL服務(wù)。FMAl/2的功能主要有強(qiáng)制復(fù)位FDL和PHY、設(shè)定參數(shù)值、讀狀態(tài)、讀事件及進(jìn)行配置等。
用戶層包括直接數(shù)據(jù)鏈路映像DDLM和用戶接口/用戶。用戶接口詳細(xì)說明了各種不同Profibus-DP設(shè)備的設(shè)備行為,DDLM將所有在用戶接口中傳送的功能都映射到現(xiàn)場總線數(shù)據(jù)鏈路層FDL和FMAl/2服務(wù)。
2 Profibus-DP通信機(jī)理
Profibus-DP的主要日的是在功能強(qiáng)大的主站與若干簡單的從站之間進(jìn)行快速循環(huán)的數(shù)據(jù)交換,因此系統(tǒng)主要完成主一從通信任務(wù),此外Profibus的混合總線訪問方式也允許1類主站與2類主站之間的主一主通信。
在Profibus-DP系統(tǒng)中。DPMl與DP從站之間的通信類型主要有:讀取從站的診斷信息、參數(shù)化設(shè)置和組態(tài)、循環(huán)的用戶數(shù)據(jù)交換。Profibus-DP主一從通信過程,大致可以分為如下幾個(gè)階段:主站對從站的第一次診斷,參數(shù)化從站,組態(tài)配置從站,主站對從站的第二次診斷以及主站與從站之間的循環(huán)數(shù)據(jù)交換。
對于多主站通信系統(tǒng),DPMl和DPM2之間的通信有:讀取有關(guān)DP從站的診斷信息,參數(shù)的上傳和下載,激活總線參數(shù)(無需確認(rèn)),激括與解除激括參數(shù)集,選擇DPMl的操作模式等。DPM2與從站之間的通信為非循環(huán)的,包括讀取從站的通信接口配置、輸入/輸出數(shù)據(jù)和設(shè)置從站地址。
3 Profibus-DP現(xiàn)場總線主站總體設(shè)計(jì)
Profibus是開放的標(biāo)準(zhǔn)。原則上,該協(xié)議可以在任何處理器上實(shí)現(xiàn),在處理器內(nèi)部或者外部安裝異步串行通信接口(UART)即可。基于上述特點(diǎn),在開發(fā)Profibus-DP主站時(shí),主要有以下兩種解決方案:
?、儆晌⑻幚砥鬟\(yùn)行完整的協(xié)議棧來實(shí)現(xiàn)。這種方案完全由軟件來實(shí)現(xiàn)Profibus協(xié)議,開發(fā)整個(gè)協(xié)議棧軟件難度很大,大多數(shù)開發(fā)者一般都向?qū)iT的開發(fā)商購買。
②由協(xié)議ASIC芯片外加其擴(kuò)展固化程序來實(shí)現(xiàn)。這種實(shí)現(xiàn)方案是采用最多的一種,由專用的ASIC芯片實(shí)現(xiàn)Profibus協(xié)議數(shù)據(jù)鏈路層的介質(zhì)訪問控制功能;而數(shù)據(jù)鏈路層的其他功能則由微處理器運(yùn)行其擴(kuò)展固化程序?qū)崿F(xiàn)。目前可用于這種方案的ASIC芯片主要有3種:Sie-mens公司的ASPC2、M2C公司的IXl和IAM公司的PBM。在應(yīng)用此方案實(shí)現(xiàn)主站時(shí),可以有兩種選擇:一是向上述3個(gè)公司購買完整的開發(fā)平臺,包括ASIC芯片、固化程序以及相應(yīng)的硬件與開發(fā)軟件;二是只購買ASIC芯片以及必要的軟硬件開發(fā)工具,固化程序由自己編寫實(shí)現(xiàn),此法開發(fā)難度大,開發(fā)周期長。采用后者實(shí)現(xiàn)主站的典型例子是HMS公司,由其開發(fā)的Anybus-M主站模塊采用了Siemens公司的ASPC2芯片,但擴(kuò)展固化程序由HMS公司自己編寫,組成一個(gè)完整的模塊后提供給其他開發(fā)者。為了縮短開發(fā)周期,本主站的設(shè)計(jì)就是采用HMS公司的Anybus-M主站接口模塊,從而減小在組建DP主站時(shí)軟硬件方面的工作量。
本設(shè)計(jì)組建的是Profibus-DP單主站系統(tǒng),An5rbus-M模塊在初始化時(shí)可以設(shè)置為DPMl和DPM2,因此研制的主站除了實(shí)現(xiàn)DPMl與DP從站之間的主一從功能(包括讀取DP從站的診斷信息、設(shè)置從站參數(shù)、通信接口配置檢查、循環(huán)數(shù)據(jù)交換以及全局控制命令)外,還要實(shí)現(xiàn)DPM2與DP從站的主-從功能(包括讀取從站的通信接口配置、輸入/輸出數(shù)據(jù),設(shè)置從站地址等)。
3.1 硬件設(shè)計(jì)
Profibus-DP主站硬件電路圖如圖2所示。系統(tǒng)硬件主要由基于PC/104總線的CPU模塊SCM7020B、Anybus-M模塊、CPLD邏輯譯碼電路和復(fù)位電路組成。
Anybus-M主站接口模塊通過一個(gè)DPRAM與外部處理器接口,PC/104通過對此DPRAM的訪問來實(shí)現(xiàn)主站與從站的數(shù)據(jù)交換,以及對主站模塊的訪問控制。通過中斷或者BUSY信號線來解決PC/104與Anybus-M主站接口模塊同時(shí)訪問DPRAM的沖突問題。CPLD用于實(shí)現(xiàn)地址譯碼,產(chǎn)生片選信號CS和讀/寫控制信號。復(fù)位電路用于實(shí)現(xiàn)PC/104及Anybus-M模塊的復(fù)位。
3.1.1 Anybus-M主站接口模塊
Anybus-M主站接口模塊已經(jīng)實(shí)現(xiàn)了必要的網(wǎng)絡(luò)協(xié)議,板上自帶微處理器,獨(dú)立于自動化設(shè)備完成通信協(xié)議,同時(shí)支持DP和DPVl,具有4KB DPRAM,保證了最多1536字節(jié)循環(huán)輸入/輸出數(shù)據(jù)的高速傳輸。此外,該模塊可以集成在工業(yè)自動化設(shè)備中,實(shí)現(xiàn)與工業(yè)現(xiàn)場裝置的通信,典型的應(yīng)用包括人機(jī)界面、PLC、數(shù)控設(shè)備、機(jī)器人以及智能可視化設(shè)備等。
圖3為Anybus-M主站模塊內(nèi)部結(jié)構(gòu)簡圖,分為應(yīng)用程序接口和現(xiàn)場總線接口兩個(gè)部分。
?、賾?yīng)用程序接口。模塊與微處理器的接口為4KBDPRAM。DPRAM根據(jù)其應(yīng)用被劃分為以下幾個(gè)區(qū)域:Input/Output Data Area,應(yīng)用程序向Input區(qū)域?qū)懭氚l(fā)送給從站的數(shù)據(jù),從Output區(qū)域讀取接收的從站數(shù)據(jù);Mailbox Input/Output Area,應(yīng)用程序通過發(fā)送信箱命令指示模塊執(zhí)行某一具體操作(如初始化、讀取從站診斷、設(shè)置從站地址等),同時(shí)從信箱輸出區(qū)域讀取模塊的響應(yīng);Fieldbus Specific Arc,a,此區(qū)域存儲主站和從站網(wǎng)絡(luò)上的信息,如從站組態(tài)列表、數(shù)據(jù)傳輸列表、從站診斷列表、主站狀態(tài)表等;Corltrol Register Area,此區(qū)域存儲模塊的版本信息、初始化參數(shù)、現(xiàn)場總線類型、事件通知原因等信息;Handshake Registers,用于區(qū)域的分配和回收、事件通知、發(fā)送/接收信箱命令等。
?、诂F(xiàn)場總線接口。該模塊已完成現(xiàn)場總線底層協(xié)議而無需應(yīng)用程序的干預(yù);提供一個(gè)RS485接口,通過此接口將模塊連接到Profibus-DP網(wǎng)絡(luò)中。
3.1.2 基于PC/104總線的CPU模塊SGM7020B
PC/104作為一種專門為嵌入式控制而定義的工業(yè)控制總線,是一種優(yōu)化的小型堆棧式結(jié)構(gòu)的嵌入式控制系統(tǒng)。它體積小,結(jié)構(gòu)緊湊,可嵌入到對體積和功耗要求都較高的產(chǎn)品中,目前在工業(yè)控制領(lǐng)域中應(yīng)用越來越廣泛。
SCMT020B是采用PC/104總線的嵌入式微處理器,它在板集成了10/100Base-T以太網(wǎng)接口和高性能圖形處理器;采用x86兼容的64位第六代處理器,最高運(yùn)行速度可達(dá)300 MHz,其內(nèi)存地址D2000~DFFF(8KB)、C8000~CFFF(32 KB)空閑,可以分配給外部擴(kuò)展RAM;中斷IRQ5、IRQ9、IRQl0可用,可以外接其他中斷源。
3.2 軟件設(shè)計(jì)
軟件設(shè)計(jì)是整個(gè)主站設(shè)計(jì)的關(guān)鍵和難點(diǎn)。為了提高整個(gè)系統(tǒng)的實(shí)時(shí)性和可靠性,在PC/104上運(yùn)行世界上廣泛使用的32位實(shí)時(shí)操作系統(tǒng)VxWorks。軟件設(shè)計(jì)主要完成VxWorks設(shè)備驅(qū)動程序的編寫、網(wǎng)絡(luò)配置的設(shè)定與下載以及Anybus-M主站模塊的訪問控制。
3. 2.1 VxWorks設(shè)備驅(qū)動程序的編寫
應(yīng)用程序通過驅(qū)動程序與硬件進(jìn)行數(shù)據(jù)通信。驅(qū)動系統(tǒng)硬件工作是由BSP完成的,BSP中的驅(qū)動程序管理特定目標(biāo)環(huán)境中的設(shè)備,對其進(jìn)行控制和初始化。BSP向VxWorks提供與硬件環(huán)境的接口,負(fù)責(zé)完成加電時(shí)硬件初始化,為VxWorks訪問硬件驅(qū)動程序提供支持,將Vx-Works中與硬件相關(guān)以及與硬件無關(guān)的軟件進(jìn)行集成。
3.2.2 網(wǎng)絡(luò)配置的設(shè)定與下載
網(wǎng)絡(luò)的組態(tài)可以通過Anybus提供的Anybus Net-Tool配置軟件來實(shí)現(xiàn),也可以通過信箱命令(mailboxmessage)來實(shí)現(xiàn)。
Anybus NetTool配囂軟件基于Windows環(huán)境,通過拖放式操作實(shí)現(xiàn)對Profibus網(wǎng)絡(luò)的配置和優(yōu)化。此外,該工具還具有對I/O數(shù)據(jù)的監(jiān)測、修改等在線診斷功能,此獨(dú)立的配置上具可以作為Windows OCX組件集成在第三方軟件中。通過Anybus-M主站模塊的ConfigurationInterfacc(RS232串行接口)可以下載配置好的結(jié)果。
發(fā)送信箱命令方式需要開發(fā)人員熟悉Profibus-DP通信協(xié)議的具體細(xì)節(jié),對網(wǎng)絡(luò)的整個(gè)組態(tài)進(jìn)行配置,設(shè)置主站總線參數(shù)集、主站用戶參數(shù)集、從站參數(shù)集、組態(tài)數(shù)據(jù)集、輸入/輸出地址的分配、輸入/輸出數(shù)據(jù)格式和從站用戶數(shù)據(jù)單元集等,并在應(yīng)用程序中通過發(fā)送信箱命令將數(shù)據(jù)庫裝載到模塊中。
3.2.3 Anybus-M主站模塊的訪問控制
Anybus-M主站模塊提供給應(yīng)用程序一個(gè)4 KB/2KB的DPRAM,應(yīng)用程序通過DPRAM實(shí)現(xiàn)對主站模塊的訪問控制。應(yīng)用程序分為以下幾個(gè)部分。
?、俪跏蓟绦蚰K:包括硬件初始化和軟件初始化。硬件初始化包括DPRAM檢查、通過信箱命令進(jìn)行硬件檢查。軟件初始化用于設(shè)置基本操作參數(shù),如DPRAM input/output長度、操作模式、DPRAM模式(4KB/2 KB)等。
?、谥袛嗵幚沓绦蚰K;接收到中斷信號時(shí),讀取握手寄存器的內(nèi)容,判斷產(chǎn)生中斷的原因(如事件通知、信箱通知、模塊被初始化、啟動中斷、區(qū)域分配響應(yīng)等);根據(jù)中斷原因,轉(zhuǎn)入不同的中斷處理程序。
?、壑鞒绦蚰K:在主程序中循環(huán)調(diào)用信箱處理和數(shù)據(jù)交換程序。信箱處理程序負(fù)責(zé)發(fā)送信箱命令和讀取響應(yīng)信息;數(shù)據(jù)交換程序負(fù)責(zé)主站讀/寫從站數(shù)據(jù),以及必要的控制寄存器區(qū)域訪問。
4 結(jié)語
目前,國外Profibus-DP的研究開展較多,應(yīng)用非常廣泛,但是國內(nèi)應(yīng)用多限于對國外產(chǎn)品的系統(tǒng)集成,尤其是針對Profibus-DP主站產(chǎn)品的研究開發(fā)甚少,因此開發(fā)具有自主知識產(chǎn)權(quán)的主站具有重大的意義。本文在研究ProfIbus-DP現(xiàn)場總線標(biāo)準(zhǔn)、總線協(xié)議、嵌入式技術(shù)的基礎(chǔ)上,提出了高實(shí)時(shí)性、高可靠性的Profibus-DP主站的實(shí)現(xiàn)方案。符合國際標(biāo)準(zhǔn)的Profibus現(xiàn)場總線的推廣應(yīng)用,可以方便地解決計(jì)算機(jī)監(jiān)控系統(tǒng)中不同廠家產(chǎn)品的互連問題,對計(jì)算機(jī)監(jiān)控系統(tǒng)向“以監(jiān)控設(shè)備為對象分布的、基于異構(gòu)系統(tǒng)互連的分布式監(jiān)控系統(tǒng)”方向發(fā)展具有重要的推動作用。