閥島,是指集成了較多電控閥門及其控制電路的控制單元,猶如一個島嶼存在于氣動控制管線的海洋中。閥島的使用可以減少氣源裝置的數(shù)量,且便于集中控制。閥島的發(fā)展先后經(jīng)歷了帶多針控制接口的閥島、帶總線通訊功能的閥島以及模塊化的閥島等階段。帶總線通訊功能的閥島布線簡單,方便調(diào)試維修,便于集成,成為閥島發(fā)展的主流趨勢。而Profibus總線作為工業(yè)現(xiàn)場廣泛使用的總線,具有通訊速率高,配套設(shè)施完善等特點,是閥島適用總線的首選。模塊化功能要求一個閥島設(shè)備可以由若干模塊組成,這些模塊經(jīng)過簡單的設(shè)置就可以方便的添加和移除。在閥島設(shè)備模塊化發(fā)展的趨勢下,怎樣將解決各模塊間的互聯(lián)也是一個必須面對的問題。
系統(tǒng)結(jié)構(gòu)和功能
可擴展的閥島裝置由一個主設(shè)備和若干從設(shè)備組成,其中主設(shè)備由主控制器、從控制器和閥門組組成,而從設(shè)備則只集成了從控制器和閥門組。主設(shè)備和從設(shè)備之間通過CAN總線進行通信,各設(shè)備既可以安裝到一起,也可以分散安裝。主控制器負(fù)責(zé)閥島主設(shè)備和Profibus主站的通訊、主設(shè)備和從設(shè)備之間的CAN總線通訊以及閥島的工作狀態(tài)的顯示。從控制器則主要負(fù)責(zé)閥門的控制、閥門狀態(tài)的檢測、通過CAN總線接收主控制器的指令并返回各閥門的狀態(tài)。限于篇幅,本文主要介紹主控制器的設(shè)計。閥島裝置的結(jié)構(gòu)如圖l所示。
在系統(tǒng)初始化和組態(tài)完成后,主控制器的工作主要分為兩個過程。第一個過程是接收Profibus主站的指令,并將指令按照預(yù)先制定的通訊協(xié)議拆分成若干CAN~_訊幀發(fā)送給各從控制器。第二個過程是接收各個從控制器反饋的CAN消息,并將其按照通訊協(xié)議組合成Profibus的通訊幀發(fā)送給Profibus主站。此外,主控制器還支持通過指示燈顯示CAN總線和Profibus總線的通信故障,通過撥碼轉(zhuǎn)盤設(shè)置從站地址等功能。
硬件設(shè)計
閥島主控制器的硬件電路主要包括電源電路、單片機及外圍電路、通訊接口電路共三個部分。其中通訊接口電路又包括Profibus接口電路和CAN接口電路。
電源電路設(shè)計
閥島主控制器的電源主要有兩路如圖2,一路將閥島主控器的24、輸入電壓通過智能電源管理芯片TLE6365變換為+5V電源供給單片機外設(shè)和外圍電路,而+5V電壓又經(jīng)過穩(wěn)壓芯片LMl 117-2.5轉(zhuǎn)換為2.5V電壓供給單片機內(nèi)核。電源的第二路是使用隔離變壓器B2405LS將通信芯片的電源和板上其它電源隔離開來,以減少板上其它電源對Profibus和CAN通信電源的干擾,保證通信安全。
單片機及外圍電路設(shè)計
閥島主控制器的控制核心選用英飛凌公司出品的16位單片機XCl64CS,該型號單片機具有兩個CAN節(jié)點,含32個報文對象,CAN幀的發(fā)送和接收遵循CAN2.0B規(guī)范,可以很好的支持基于CAN總線的模塊擴展。XCl64CS還具有靈活的外部總線控制功能以支持對VPC3的讀寫,其尋址空間達16MB,除部分尋址空間被內(nèi)部存儲器占用或保留外,外部存儲器大約可以分配到12MB的空間地址。XCl64CS具有四個外部存儲器片選信號,還可以通過外擴總線控制單元(EBC)將總線配置為16位或8位數(shù)據(jù)寬度,數(shù)據(jù)總線和地址總線復(fù)用或獨立使用,并可以調(diào)整讀寫周期的長短。為了節(jié)省單片機引腳,本設(shè)計中將外部總線配置為8位復(fù)用總線,使用片選信號cso選擇VPC3,并通過鎖存器74HC573分離地址信號和數(shù)據(jù)信號。主控制器采用基于SPI總線的存儲芯片AT25 128存儲控制參數(shù),使用撥碼轉(zhuǎn)盤開關(guān)設(shè)置設(shè)備的地址。單片機及其外圍電路如圖3所示。



Profibus與CAN接口電路設(shè)計
本設(shè)計中使用的Profibus通信協(xié)議芯片為VPC3+C。VPC3通過并行的數(shù)據(jù)和地址總線和單片機進行數(shù)據(jù)交換。在硬件設(shè)計中,需要為VPC3配置獨立的48M有源晶振,還需要連接VPC3的中斷輸出引腳到單片機的外部中斷輸入,連接復(fù)位和片選控制引腳,連接VPC3的串行輸出信號到RS485總線驅(qū)動器ADM2486。相對于Profibus接口電路,CAN總線的接口電路要簡單許多,只需要使用CAN收發(fā)器IL41050即可。Profibus的通信接口電路如圖4所示。
軟件設(shè)計
對VPC3芯片的使用是軟件設(shè)計中的重點和難點,因此在介紹軟件設(shè)計之前首先介紹VPC3芯片的工作原理。本設(shè)計中使用的VPC3+c集成了全部的Profibus DP協(xié)議,并將其獨立處理,這就極大的減輕了MCU的壓力,降低了軟件編寫的難度。VPC3+c內(nèi)部集成了4K字節(jié)的雙口RAM,用戶可以通過地址總線直接訪問VPC3內(nèi)部的RAM或參數(shù)鎖存器,將處理Profibus復(fù)雜的通信過程簡化成對vPC3內(nèi)部存儲器的操作。
VPc3的存儲器共分為三個部分:內(nèi)部參數(shù)鎖存器,組織參數(shù)存儲器和數(shù)據(jù)緩沖區(qū)。其中內(nèi)部參數(shù)鎖存器從00H單元開始,包括中斷控制寄存器、狀態(tài)寄存器等,通過這些寄存器可以設(shè)置芯片的工作模式、中斷輸出極性,讀取芯片工作狀態(tài)及波特率等。組織參數(shù)存儲器從16H單元開始,共42字節(jié),存儲從站工作中常用的參數(shù),如從站地址、標(biāo)識號、數(shù)據(jù)輸出和輸入緩沖區(qū)長度和段基址等。而數(shù)據(jù)緩沖區(qū)從40H單元開始,從站工作中需要處理的大量數(shù)據(jù)如輸入輸出數(shù)據(jù)、診斷數(shù)據(jù)、配置數(shù)據(jù)等都存儲在這個區(qū)域。
主程序設(shè)計
在程序設(shè)計中,首先在XCl64CS的初始化文件里完成單片機外部總線的配置,將外部總線配置為8位數(shù)據(jù)總線寬度,總線復(fù)用模式,并根據(jù)VPC3的要求配置總線時序,最后將VPC3的存儲器定義在000000H地址開始的外部存儲區(qū)。接下來進行VPC3芯片的初始化,在初始化函數(shù)中依次完成以下設(shè)置:首先利用控制引腳對VPC3進行硬件復(fù)位,第二步設(shè)置中斷控制寄存器和模式寄存器等內(nèi)部參數(shù)鎖存器,第三步寫組織參數(shù)存儲器以設(shè)定從站地址、標(biāo)識號以及各緩沖區(qū)長度和基地址等參數(shù),最后使能VPC3。在VPC3的初始化完成之后,程序進入主循環(huán),查詢Event變量以判斷是否有Profibus接收到數(shù)據(jù)、Profibus接收到復(fù)位請求、定時器中斷發(fā)生等事件并調(diào)用相應(yīng)的函數(shù)進行處理,而Event變量則是在中斷服務(wù)程序里賦值。主程序流程圖如圖5所示。
中斷服務(wù)程序設(shè)計
在本軟件的設(shè)計中共使用了3種中斷:定時器中斷,CAN接收中斷以及VPC3觸發(fā)的外部中斷。在定時器中斷中發(fā)送CAN的信息幀,并將Profibus要發(fā)送的信息寫入數(shù)據(jù)緩沖區(qū),時間長短可以通過定時器調(diào)節(jié),但必須小于設(shè)定的VPc3看門狗溢出時間。CAN信息的接收采用中斷模式,一旦進入CAN中斷便改變事件標(biāo)志變量Event中相應(yīng)的位,而主程序則通過查詢Event變量確定CAN總線是否收到了數(shù)據(jù)并做出相應(yīng)的處理。
VPC3支持了Profibus DP規(guī)定的數(shù)據(jù)交換、設(shè)置參數(shù)、組態(tài)配置等各項服務(wù),當(dāng)這些服務(wù)中的一項或幾項發(fā)生時,VPC3便置位中斷請求寄存器中相應(yīng)的位并觸發(fā)單片機的外部中斷。在單片機的外部中斷函數(shù)設(shè)計中,通過查詢VPC3的中斷請求寄存器確定需要處理何種服務(wù),對于經(jīng)常發(fā)生的服務(wù)(如數(shù)據(jù)交換),只在中斷服務(wù)程序里改變事件標(biāo)志變量Event,具體操作在主函數(shù)中進行,而對于不經(jīng)常發(fā)生且處理時間較短的服務(wù)(如檢查組態(tài)配置),則直接在中斷服務(wù)程序中進行。VPC3觸發(fā)的外部中斷服務(wù)函數(shù)流程在圖5中予以表不。
測試結(jié)果
為了測試閥島主控器的Profibus通訊情況,使用帶CP5611卡的PC機作為主站,并基于WinCC設(shè)計測試程序。在WINCC的測試程序中,設(shè)計了8個子設(shè)備的測試接口,每個子設(shè)備合24個閥門,每個閥門都可以通過界面中的按鈕單獨控制。測試程序的界面如圖6所示。而在CAN總線一端則使用Kvaser公司生產(chǎn)的CAN總線監(jiān)視器進行測試。在測試中,閥島主控制器工作穩(wěn)定,CAN通訊幀和Profibus通訊幀均能正常發(fā)送,狀態(tài)顯示、地址和參數(shù)設(shè)置等功能也已實現(xiàn)。
結(jié)語
基于Profibus DP的閥島主控制器不僅實現(xiàn)了閥島設(shè)備和Profibus總線的通信,還為閥島從設(shè)備的擴展提供了低成本的解決方案,為實現(xiàn)閥島設(shè)備的總線化和模塊化提供了完善的支持。此外,本控制器也可以獨立出來,作為一個兼容Profibus和CAN總線的網(wǎng)關(guān)使用,具有廣闊的應(yīng)用前景。