頡新春,田康,李忠虎
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,包頭014010)
頡新春(副教授),主要從事現(xiàn)場總線與FPGA 等技術(shù)的研究;田康(碩士研究生),主要研究方向為單片機通信;李忠虎(教授),主要研究方向為傳感器技術(shù)、過程參數(shù)檢測與處理、智能儀器。
引 言
近年來,嵌入式微處理器在生產(chǎn)生活中的應(yīng)用發(fā)展迅速。許多實際應(yīng)用以51 系列單片機為設(shè)計平臺得以實現(xiàn)。本文利用32 位微控制器STM32F103 作為核心芯片,在Profibus協(xié)議下實現(xiàn)了現(xiàn)場總線水位監(jiān)控系統(tǒng)。現(xiàn)場總線的拓?fù)浣Y(jié)構(gòu)決定了總線上各節(jié)點只能通過一個信道收發(fā)數(shù)據(jù),即各節(jié)點需要競爭同一介質(zhì)收發(fā)數(shù)據(jù),從而導(dǎo)致數(shù)據(jù)傳輸不穩(wěn)定。本文在不改變MAC 機制的前提下,通過應(yīng)用層調(diào)度算法提高了現(xiàn)場總線水位監(jiān)控系統(tǒng)的實時性。
MAC機制即一種能夠解決因多個終端設(shè)備同時發(fā)送通信請求而產(chǎn)生爭用通信介質(zhì)問題的協(xié)議??刂茀f(xié)議所采用的介質(zhì)訪問控制方法與控制系統(tǒng)的實時性關(guān)系密切,共享相同通信介質(zhì)的總線結(jié)構(gòu)是當(dāng)前多數(shù)控制網(wǎng)絡(luò)的選擇。總線使用權(quán)的調(diào)度方式?jīng)Q定了節(jié)點通信的快慢,介質(zhì)訪問控制機制就是在最大程度上利用通信信道,優(yōu)化MAC機制是提高控制系統(tǒng)實時性的關(guān)鍵所在。
令牌環(huán)即令牌沿著節(jié)點組成的環(huán)狀總線循環(huán)。各站均沒有數(shù)據(jù)發(fā)送時,令牌為空令牌;當(dāng)有數(shù)據(jù)需要發(fā)送的節(jié)點迎來令牌時,令牌改為忙令牌,此時其他節(jié)點不能發(fā)送數(shù)據(jù),必須等待。信息負(fù)載量小時,效率較低,反之較高。把每個節(jié)點需要傳輸?shù)男畔磿r間要求分為實時信息和非實時性信息兩個隊列,即把一個節(jié)點分為兩個虛擬節(jié)點。當(dāng)令牌傳輸?shù)焦?jié)點時,先執(zhí)行實時性要求高的隊列通信,然后再執(zhí)行實時性低的隊列,并且兩隊信息執(zhí)行不同的協(xié)議策略。虛擬節(jié)點通信模型如圖1所示。
圖1 虛擬節(jié)點通信系統(tǒng)模型
對實時性信息采用空竭式服務(wù),即對每個節(jié)點每次連續(xù)發(fā)送的數(shù)據(jù)數(shù)目設(shè)置上限,若令牌傳遞到此節(jié)點,且節(jié)點需要發(fā)送的實時性數(shù)據(jù)數(shù)目少于設(shè)定上限,則所有信息都能被傳送;若數(shù)據(jù)數(shù)目多于此上限,則上限數(shù)目個實時性數(shù)據(jù)被服務(wù)后,剩余信息需等到下一個輪詢周期才能被服務(wù)。
對非實時性信息采用限量式服務(wù),即每個節(jié)點服務(wù)時間為一個信息的服務(wù)時間,此協(xié)議下,既能保證為其他節(jié)點的實時性信息縮短等待時間,也能保證在實時信息不多或沒有的條件下,各節(jié)點非實時性信息有均等機會及時被服務(wù)。
Profibus是一種國際性的開放式現(xiàn)場總線,使用的是MAC機制中的令牌傳遞。在此機制中,地址最低的節(jié)點上電后創(chuàng)建令牌,令牌的接收者在協(xié)議內(nèi)有權(quán)限訪問總線,持有令牌的節(jié)點傳送數(shù)據(jù)后,將令牌傳遞到下一個節(jié)點??偩€節(jié)點包括主站和從站兩種類型,主站通過總線形成的環(huán)為邏輯環(huán),令牌在邏輯環(huán)內(nèi)循環(huán)輪轉(zhuǎn),這種機制使主站和從站在確定的最大時間內(nèi)擁有總線接入權(quán)。令牌循環(huán)模型如圖2所示。
圖2 令牌循環(huán)模型
Profibus總線通信通過報文循環(huán)實現(xiàn),從主站發(fā)送數(shù)據(jù)的動作幀到接收到從站的響應(yīng)幀為一個報文循環(huán),一個報文循環(huán)必須完整進(jìn)行。數(shù)據(jù)鏈路層的FD 提供SDA、SRD、SDN、CSRD四種服務(wù)來實現(xiàn)數(shù)據(jù)傳輸,且每種服務(wù)都有對應(yīng)的一種幀格式。經(jīng)計算分析得知:TSRD傳輸時間最長,TSDN傳輸時間最短,兩者相差約50.25%~52.92%。主從站數(shù)據(jù)交換過程如圖3所示。
圖3 主從站數(shù)據(jù)交換過程
動作幀前需加入3字節(jié)同步幀TSYN(為33Tbit),此外接收到報文最后一位時需等待一定時間TIDL,其值需大于TSYN,典型值為75Tbit。主站發(fā)送數(shù)據(jù)幀的最后一位到接收到響應(yīng)幀的第一位之間的時間間隔定義為Slot-time,TSL是Slot-time被允許的最大值。時間超過TSL后主站還未接收到響應(yīng),則認(rèn)為出錯,此時主站重新發(fā)送請求幀,或?qū)㈠e誤上傳FDL層交給上層軟件處理。
令牌循環(huán)時間TTR的定義對系統(tǒng)實時性影響重大,相關(guān)參考文獻(xiàn)給出過如何設(shè)置參數(shù)TTR的最小值,但在同一個Profibus總線中工作的節(jié)點設(shè)備往往來自不同生產(chǎn)商,因此找到一個對系統(tǒng)整體最合適的TTR值就特別重要。這里需要考慮負(fù)載和TTR值之間存在的量化關(guān)系。
令牌持有時間TTH為目標(biāo)令牌設(shè)定循環(huán)時間TTR與令牌實際循環(huán)時間TRR之差,即:
因此目標(biāo)令牌TTR設(shè)定值決定了TTH的大小。若TTH≤0,則節(jié)點只能發(fā)送一個高優(yōu)先級報文;若TTH>0,依次發(fā)送高低優(yōu)先級報文。
設(shè)系統(tǒng)含有N 個主站,系統(tǒng)負(fù)荷為P,任一主站負(fù)荷為Pi,一次數(shù)據(jù)交換時間為TD,令牌總傳遞時間為u,主站間令牌時間均為ui,Pih為高優(yōu)先級隊列負(fù)荷,k為低優(yōu)先級隊列允許服務(wù)的最大數(shù)量,則
閾值k與目標(biāo)令牌循環(huán)時間關(guān)系如圖4所示。
圖4 閾值k與目標(biāo)令牌循環(huán)時間關(guān)系
此時,根據(jù)實時信息要求選定適當(dāng)?shù)膋值,從而計算出合適的令牌循環(huán)周期。
設(shè)計采用多主站節(jié)點系統(tǒng),選用兩個節(jié)點的簡單系統(tǒng)模型進(jìn)行研究。數(shù)據(jù)傳輸采用SRD 服務(wù),通信數(shù)據(jù)長度最長為8字節(jié),波特率為187.5kbps,即每個位時間Tbit=5.33μs,TSRD設(shè)定為11Tbit。節(jié)點系統(tǒng)圖如圖5所示。
圖5 節(jié)點系統(tǒng)圖
系統(tǒng)主要通過令牌傳遞和調(diào)度算法實現(xiàn)實時性的分散控制,采用STM32F103 單片機和智能接口芯片SPC3為核心開發(fā)方案。硬件整體結(jié)構(gòu)主要包括STM32F103微控制器及外圍電路、SPC3工作電路、Profibus總線通信接口電路、壓力采集電路及供電電路,系統(tǒng)各部分由地址總線和數(shù)據(jù)總線相連。
本設(shè)計中,STLP液位傳感器將輸出4~20mA 標(biāo)準(zhǔn)電流信號,送到單片機測量顯示,需要將電流信號轉(zhuǎn)換為電壓信號,采用電流/電壓轉(zhuǎn)換器來實現(xiàn)電流到電壓的轉(zhuǎn)換。此處采用ISO EM 系列隔離放大器,壓力采集電路如圖6所示。
圖6 壓力采集電路
本系統(tǒng)中,采用ISO EM-A4-P3-O4型號的直流電壓/電流信號隔離放大器,可實現(xiàn)4~20mA/0~5V 的線性轉(zhuǎn)換,模塊電源電壓為5V。單片機讀取0~5V 電壓模擬信號,可采用8位A/D轉(zhuǎn)換芯片ADC0805CN實現(xiàn)。
單片機模塊電路核心選用STM32F103,晶振頻率選用11.059 2 MHz,采用手動復(fù)位和上電復(fù)位兩種方式。具體電路設(shè)計如圖7所示。
圖7 核心模塊電路
系統(tǒng)硬件平臺上的各節(jié)點按照預(yù)先設(shè)定的參數(shù)(包括周期、優(yōu)先級、所傳送數(shù)據(jù)等)對傳送的信息進(jìn)行預(yù)訂。接收端節(jié)點收到來自發(fā)送端節(jié)點的信息時,對所接收信息的性能指標(biāo)進(jìn)行相關(guān)計算處理。
如果有順序排列的A、B、C 三個節(jié)點,A 節(jié)點取得信道使用權(quán)后,首先判斷其是否有需要發(fā)送的高優(yōu)先級數(shù)據(jù),若有,則A 節(jié)點在令牌持有時間內(nèi)進(jìn)行高優(yōu)先級數(shù)據(jù)傳輸。如果在持有令牌時間內(nèi)數(shù)據(jù)發(fā)送完畢,再按FCFS原則發(fā)送固定位低優(yōu)先級數(shù)據(jù);如果高優(yōu)先級數(shù)據(jù)不能在令牌持有時間內(nèi)發(fā)送完,則在達(dá)到持有時間邊緣狀態(tài)時停止高優(yōu)先級數(shù)據(jù)發(fā)送,繼續(xù)發(fā)送固定位低優(yōu)先級數(shù)據(jù),最后將令牌恢復(fù)為空令牌傳給下一節(jié)點。
數(shù)據(jù)發(fā)送流程如圖8所示。
結(jié) 語
本文建立了Profibus多節(jié)點現(xiàn)場總線系統(tǒng),結(jié)合對Profibus協(xié)議內(nèi)容的分析,提出了在不改變原有MAC機制前提下設(shè)計新型調(diào)度算法,結(jié)合傳統(tǒng)現(xiàn)場總線拓?fù)浣Y(jié)構(gòu),來實現(xiàn)實時性分散控制。根據(jù)對實時信息接收的不同要求,計算出對應(yīng)的令牌循環(huán)周期設(shè)定值,從而使通信信道達(dá)到最好的分配利用,實時性結(jié)果驗證圖略——編者注。
圖8 節(jié)點數(shù)據(jù)發(fā)送流程圖
可以得出結(jié)論:信息負(fù)載量越高,此設(shè)計系統(tǒng)的優(yōu)勢越明顯。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1]周立功單片機發(fā)展有限公司.周立功RS-485選型及應(yīng)用指南,2009.
[2]陳鑫林.現(xiàn)代通信中的排隊論[M].北京:電子工業(yè)出版社,2000.
[3]顧洪軍,張佐,吳秋峰.網(wǎng)絡(luò)控制系統(tǒng)中周期性通信的實時性充分條件[J].測控技術(shù),2001,20(6):1-4.
[4]朱琴躍.列車通信網(wǎng)絡(luò)實時性理論與方法研究[D].上海:同濟大學(xué),2008:32-33.
[5]Tovar E,Vasques F.Setting target rotation time in PROFIBUS based real-time distributed applications[C]//IFAC,1998.