ROFIBUS-DP作為—種國(guó)際標(biāo)準(zhǔn)現(xiàn)場(chǎng)總線(xiàn),,以其靈活性,、可靠性等優(yōu)點(diǎn),在世界范圍內(nèi)得到了廣泛的應(yīng)用,,是一種高性能的工業(yè)控制網(wǎng)絡(luò),。但不是所有的控制設(shè)備都能接入到總線(xiàn)中,必須通過(guò)智能從站 接口裝置實(shí)現(xiàn),,通過(guò)智能從站的拜發(fā),,可以把非總線(xiàn)的電子設(shè)備接入到總線(xiàn)網(wǎng)絡(luò)中,。目前,我國(guó)對(duì)于PROFIBUS" title="PROFIBUS">PROFIBUS-DP的應(yīng)用和研究主要以國(guó)外大公司的成套設(shè)備為主,,而自主研究開(kāi)發(fā)通信" title="通信">通信接口的卻比較少 ,。雖有公司針對(duì)PROIFBUSDP協(xié)議轉(zhuǎn)換問(wèn)題已開(kāi)發(fā)出相應(yīng)網(wǎng)關(guān)類(lèi)產(chǎn)品,,但價(jià)格昂貴,,與實(shí)際應(yīng)用有一定距離,,因此深入研究該技術(shù)對(duì)該技術(shù)的國(guó)產(chǎn)化有非?,F(xiàn)實(shí)的意義。
開(kāi)發(fā)方案的選用
PROFIBUS-DP是開(kāi)放的,、 無(wú)知識(shí)產(chǎn)權(quán)倮護(hù)的標(biāo)準(zhǔn),。原則上,,PROFIBUS DP協(xié)議在任何微處理器上都可以實(shí)現(xiàn),,在微處理器內(nèi)部或外部安裝異步串行通信接口(UART)即可完成?;谏鲜鎏攸c(diǎn),,目前在 拜發(fā)PROFIBUS-DP從站時(shí)有以下方案可供選擇:(1)單片機(jī)" title="單片機(jī)">單片機(jī)+軟件的解決方案,;(2)單片機(jī)+PROFIBUS通信專(zhuān)用芯片的解決方案,;(3)采用專(zhuān)用拜發(fā)工具,。其中以方案2最為方便,。
本文采用單片機(jī)加PROFIBUS-DP通信專(zhuān)用芯片的解決方案。其中微控制器的選取是實(shí)現(xiàn)智能從站開(kāi)發(fā)的關(guān)鍵,,因?yàn)镈P智能從站的控制芯片需要有足夠大的RAM來(lái)配置VPC3及實(shí)現(xiàn)數(shù)據(jù)交換,,并且也需要較 高的運(yùn)行速率,。我們選取Cygnal公司推出的完全集成的混合信號(hào)系統(tǒng)級(jí)芯片C8051F020,,其突出的優(yōu)點(diǎn)是具有很高的運(yùn)算速度,,非常合適拜發(fā)PROFIBUS-DP從站,。VPC3芯片是VIPA公司為優(yōu)化的智能 PROFIBUSDP從站提供的專(zhuān)用芯片,,集成了PROFIBUS-DP協(xié)議,,可以替代西門(mén)子SPC3,同時(shí)具有工作電壓低,、RAM大等優(yōu)點(diǎn),具有很高的性?xún)r(jià)比,。
硬件電路設(shè)計(jì)
硬件電路主要采用VIPA的PROFIBUS-DP協(xié)議芯片VPC3和CygnalC8051單片機(jī)。C805l器件是完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,,具有64個(gè)數(shù)字IJO引腳,。兼容的CI-51內(nèi)核,4352(4096+156)字節(jié)(B)的片 內(nèi)RAM,,可尋址64k字節(jié)地址空間的外部數(shù)據(jù)存儲(chǔ)器接口特別適合本設(shè)計(jì)使用,。工作過(guò)程單片接口轉(zhuǎn)換電路機(jī)自動(dòng)識(shí)別不同的非總線(xiàn)設(shè)各,把數(shù)據(jù)交換到VPC3里,,由VPC3負(fù)責(zé)協(xié)議的轉(zhuǎn)換,,把轉(zhuǎn)換后的數(shù)據(jù) 傳送到總線(xiàn)里,。整個(gè)過(guò)程可是逆的,。所有功能的實(shí)現(xiàn)由我們固化在單片機(jī)里的程序?qū)崿F(xiàn)。同時(shí)實(shí)現(xiàn)自適應(yīng)功能,,即自動(dòng)識(shí)別不同的非總線(xiàn)帶通訊的控制設(shè)備,。
VPC3是用于從站開(kāi)發(fā)的智能通信芯片,,它支持PROFIBUS-DP協(xié)議,。VPC3內(nèi)部集成4kB的雙口RAM,。內(nèi)部鎖存器/寄存器位于前2 1個(gè)地址單元,,主要包括:方式寄存器l,、0,,中斷控制寄存器,,狀態(tài)寄存器 以及輸入,、輸出緩沖器和診斷緩沖器各自的狀態(tài)寄存器,。組織參數(shù)位于RAM中從16H開(kāi)始的單元,。整個(gè)緩沖器結(jié)構(gòu)(屬于DP-SAPS)就是基于這些參數(shù)來(lái)寫(xiě)的,。此外,,普通參數(shù)在這些單元設(shè)置數(shù)據(jù)(包括站 地址,、地址允許改變,、用戶(hù)看門(mén)狗值和設(shè)備標(biāo)識(shí)號(hào)等),,狀態(tài)顯示存儲(chǔ)在這些單元(通用控制命令等)。
PROFIBUS-DP智能轉(zhuǎn)換接口的主要功能是利用VPC3協(xié)議芯片作為數(shù)據(jù)采集和發(fā)送單元實(shí)現(xiàn)與PROFIBUS-DP現(xiàn)場(chǎng)總線(xiàn)之間的通信,,從而能使用戶(hù)數(shù)據(jù)傳送到主站并接收來(lái)自主站的數(shù)據(jù)。DP智能轉(zhuǎn)換接口 用C8051作為處理器單元管理通信事務(wù),,VPC3協(xié)議芯片則完成數(shù)據(jù)的轉(zhuǎn)換和收發(fā)功能,。擴(kuò)展的數(shù)據(jù)存儲(chǔ)器完成數(shù)據(jù)的存儲(chǔ)和處理功能,,C8051與VPC3之間通過(guò)雙口RAM交換數(shù)據(jù),,VPC3的雙口RAM在C8051地址 空間中統(tǒng)一分配地址,,C8051將VPC3的雙口RAM作為自己的外部RAM,通過(guò)P6和P7口與雙口RAM連接,,P6口作為數(shù)據(jù)線(xiàn)和低8位地址線(xiàn),,P7口作為高8位地址線(xiàn),。從站接口的總體設(shè)計(jì)方案,,我們采用C8051作為 主控芯片,,結(jié)合PROFIBUS-DP從站接口芯片VPC3以及ADM248*85接口芯片設(shè)計(jì)了整體的解決方案。
因?yàn)镃8051和VPC3+均為3.31/供電,,所以可以直接連接,。對(duì)于C8051來(lái)說(shuō)VPC3就是它的一個(gè)外置RAM,。SPC3有內(nèi)部地址解碼電路,,所以ABS~AB10接地。此時(shí)DB7~DB0是數(shù)據(jù)地址復(fù)用總線(xiàn),,可以產(chǎn)生低8位的數(shù)據(jù)和地址,,高4位地址由AB0~AB3產(chǎn)生,,AB4~AB7嚴(yán)生SPC3的片選信號(hào),,只有AB4~AB7同時(shí)為0時(shí)才選中SPC3,。單片機(jī)P7口的P7.0 ~P70.7接VPC3的DB0~DB7端,,既作為VPC3的數(shù)據(jù)線(xiàn),,也作為VPC3地址總線(xiàn)的低8位,。P7口作為數(shù)據(jù)線(xiàn)和低8位地址線(xiàn),,P6口作為高8位地址線(xiàn)C8051,。P6口的P6.0~P6.2接VPC3的AB0~AB2端,, 作為VPC3地 址總線(xiàn)的高3位,,同時(shí)要使VPC3的高5位AB7…3=00000,。在軟件程序的設(shè)計(jì)中,,VPC3的數(shù)據(jù)存儲(chǔ)器的地址區(qū)被強(qiáng)制在1000H~15FFH,,這要求P7.7~7.4=0001,, 要想AB4仍為0,必須將P6.0通過(guò)一個(gè)非門(mén)MM74HC接VPC3的AB4端,。在實(shí)際電路中,,VPC3的AB8~10通過(guò)一個(gè)接地電阻接地,,使得AB8..10=000,,AB3接P6.3始終給出低電平信號(hào)即AB3=0,AB4的輸入端通過(guò)非門(mén)MM74HC接P6. 4,,只要P*始終為1,從而保證VPC3的數(shù)據(jù)存儲(chǔ)器的地址范圍為1000H~15FFH,。
現(xiàn)場(chǎng)總線(xiàn)接口電路是VPC3與現(xiàn)場(chǎng)總線(xiàn)側(cè)連接的電路,,因?yàn)镻rofibus-DP可以達(dá)到12Mbit/s的速率,,因此對(duì)已接口電路的要求是非常高的,。在此我們選用Profibus接口專(zhuān)用芯片AMD2486,,ADM2486是ADI 公司生產(chǎn)的半雙工,、隔離RS-485收發(fā)器。其內(nèi)部含有倮護(hù)隔離電路,,減少了硬件電路的布線(xiàn),提高了通信的穩(wěn)定性,。
軟件設(shè)計(jì)
程序設(shè)計(jì)包括主程序和中斷程序,,還有GSD文件的編制。
1.主程序設(shè)計(jì)
C8051和VPC3初始化程序放在主程序中,,而且一定要放在I/O程序前,。主程序流程圖如圖1所示,。上電后,C8051首先進(jìn)行初始化,,設(shè)置RS232端定時(shí)器/計(jì)數(shù)器工作方式,、設(shè)置波特率,、中斷方式等,隨后VPC3進(jìn)行初始化,,以設(shè)置允許中斷,、寫(xiě)入從站識(shí)別號(hào)和地址,、片內(nèi)方式寄存器,、診斷緩沖區(qū),、參數(shù)緩沖區(qū),、配置緩沖區(qū),、地址緩沖區(qū),、初始長(zhǎng)度,。
圖1主程序流程圖
此時(shí),,VPC3下—個(gè)十分重要的步驟就是根據(jù)以上初始值求出各個(gè)緩沖區(qū)的指針及輔助緩沖區(qū)的指針,,根據(jù)傳輸?shù)臄?shù)據(jù)長(zhǎng)度,確定輸入緩沖區(qū),、輸出緩沖區(qū)及指針,。主站檢查以上參數(shù)是否與配置的參數(shù)一致,只有雙方完全一致,,從站才能進(jìn)行配置,,設(shè)置從站的輸入輸出字節(jié)數(shù),、診斷字節(jié)數(shù)和各類(lèi)數(shù)據(jù)指針。然后,,從站才能將配置好的數(shù)據(jù)同主站比較,,只有雙方完全一致,從站才能通過(guò)DP狀態(tài)機(jī)與主站進(jìn)行數(shù)交換,。用戶(hù)設(shè)備通過(guò)I/O程序?qū)崿F(xiàn)報(bào)文數(shù)據(jù)處理,。
2.中斷程序設(shè)計(jì)
VPC3有14個(gè)中斷源,各中斷源無(wú)優(yōu)先級(jí),,主要是通過(guò)中斷屏蔽寄存器和中斷響應(yīng)寄存器來(lái)實(shí)現(xiàn)中斷且共用一個(gè)中斷輸出,。診斷分為外部診斷和狀態(tài)診斷,外部診斷必須在從第7個(gè)字節(jié)開(kāi)始的單元寫(xiě)入用戶(hù)數(shù)據(jù),,狀態(tài)診斷則只要在第—字節(jié)寫(xiě)入OOH即可,。VPC3定義從站地址較靈活,既可在組態(tài)時(shí)由主站設(shè)置又可通過(guò)自身軟件或是增設(shè)的硬件地址設(shè)置電路實(shí)現(xiàn),。根據(jù)OSI參考模型,,F(xiàn)DL層規(guī)定了總線(xiàn)存取控制、數(shù)據(jù)安全性以及傳輸協(xié)議和報(bào)文的處理,。DP標(biāo)準(zhǔn)規(guī)定了以下四類(lèi)傳輸服務(wù),。SRD∶發(fā)送和請(qǐng)求有應(yīng)答的數(shù)(對(duì)DP和PMS),在一個(gè)報(bào)文循環(huán)中發(fā)送和接收數(shù)據(jù),。SDN∶發(fā)送沒(méi)有應(yīng)答的數(shù)據(jù)(對(duì)DP和PMS),,廣播和有選擇廣播報(bào)文,即報(bào)文送達(dá)有選擇的一組節(jié)點(diǎn),。DP僅限于SRD和SDN服務(wù),。在SRD服務(wù)時(shí),主站發(fā)送輸出數(shù)據(jù)到從站和接收輸入數(shù)據(jù)(若輸入數(shù)據(jù)存在于從站中),,在規(guī)定的時(shí)間周期內(nèi)應(yīng)答,。若從站是輸出設(shè)備,則用“E5H”的短應(yīng)笞,。SDN服務(wù)是發(fā)送數(shù)據(jù)到規(guī)定的一組從站,,可按照要求觸發(fā)SDN服務(wù),對(duì)SDN報(bào)文沒(méi)有應(yīng)答,。
本程序設(shè)計(jì)采用中斷方式處理從站地址設(shè)定,,檢查組態(tài)和參數(shù)報(bào)文是否正確。采用外部中斷INTO輸入,,其入口地址為0003H,。C51編譯器支持在C源程序中直接開(kāi)發(fā)中斷程序,減輕了用匯編語(yǔ)言拜發(fā)中斷程序的繁瑣過(guò)程,。便用擴(kuò)展屬性的函數(shù)語(yǔ)法定義void dps2_ind(void)interrupt ouslng 1調(diào)用外部中斷INTO,,當(dāng)外部中斷0被觸發(fā)時(shí),將會(huì)執(zhí)行此中斷模塊中的函數(shù),,在函數(shù)中有DPS2 GETINDICATION()宏可以讀出響應(yīng)的事件信息,,并進(jìn)行各個(gè)中斷事件的處理。中斷程序流程如圖2,。
圖2中斷程序流程圖
3.GSD文件編制
PROFIBUS設(shè)備具有不同的性能特征,,特性的不同在于現(xiàn)有功能(即I/O信號(hào)的數(shù)量和診斷信息)的不同或可能的總線(xiàn)參數(shù),例如波特率和時(shí)間的監(jiān)控不同,。這些參數(shù)對(duì)每種設(shè)備類(lèi)型和每家生產(chǎn)廠來(lái)說(shuō)均各有差別,, 為達(dá)至刂PROFIBUS簡(jiǎn)單的即插即用配置,這些特性均在電子數(shù)據(jù)單中具體說(shuō)明,,有時(shí)稱(chēng)為設(shè)備數(shù)據(jù)庫(kù)文件或GSD文件,。GSD文件是一種準(zhǔn)確定義的格式描述,生產(chǎn)廠商對(duì)每種設(shè)備都有一個(gè)GSD文件,。有了GSD文件后,,將來(lái)用配置軟件組網(wǎng)時(shí)只要把設(shè)備的GSD文件拷貝到相應(yīng)的目錄下,就可以方便地把此設(shè)備加到現(xiàn)場(chǎng)總線(xiàn)網(wǎng)絡(luò)中,。GSD文件的編制可用GSD文件編輯軟件,,參考編輯軟件提供的模板進(jìn)行修改即可。
圖3 實(shí)物圖
結(jié)語(yǔ)
本文的研究?jī)?nèi)容作為山東省自然科學(xué)基金“工業(yè)網(wǎng)絡(luò)控制系統(tǒng)同步控制性能及控制策略研究”的重要組成部分,,采用了價(jià)格較低的VPC3取代了西門(mén)子的SPC3,,其3.3V的工作電壓具有更低的功耗。通過(guò)接口轉(zhuǎn)換電路和軟件設(shè)計(jì)實(shí)現(xiàn)自適應(yīng)功能,,即自動(dòng)識(shí)別非總線(xiàn)設(shè)備的通訊參數(shù),,同時(shí)利用高性能的8位單片機(jī)C8051實(shí)現(xiàn)了PROFIBUS DP智能從站接口的開(kāi)發(fā),使產(chǎn)品的設(shè)計(jì)具有更高的性?xún)r(jià)比,,為該產(chǎn)品的國(guó)產(chǎn)化提供了一種方法,。提供的軟硬件設(shè)計(jì)方法經(jīng)實(shí)踐可行,該產(chǎn)品已成功應(yīng)用于與多家PLC和儀表的通訊網(wǎng)絡(luò)中,。