Linux和S3C2410的PROFIBUSDP主站平臺設計
針對標準PROFIBUSDP主站在國內研究較少,自主研發(fā)產(chǎn)品的功能有限、智能化不足的現狀,進(jìn)行了基于Linux操作系統的PROFIBUSDP主站的設計和研究,實(shí)現了PROFIBUSDP 1類(lèi)主站的主從通信功能。采用模塊化設計思想,從防錯設計、糾錯設計、故障恢復設計等方面對設計方案中軟硬件可靠性進(jìn)行了詳細分析。從響應時(shí)間的角度闡述了影響系統實(shí)時(shí)性的關(guān)鍵問(wèn)題,同時(shí)對本平臺的實(shí)時(shí)性進(jìn)行了詳細分析,并通過(guò)實(shí)驗測試了該主站的性能參數。實(shí)驗結果表明,對于多從站通信,使用Linux操作系統后,性能更優(yōu)越,運行更穩定。
本文引用地址:http://dyxdggzs.com/article/201706/353012.htm引言
PROFIBUS是面向工廠(chǎng)自動(dòng)化、流程自動(dòng)化的一種國際性的現場(chǎng)總線(xiàn)標準,是一種具有廣泛適用范圍的、開(kāi)放的數字通信系統,適用于快速、時(shí)間要求嚴格和可靠性要求高的各種通信任務(wù)。PROFIBUS 現場(chǎng)總線(xiàn)分3種: PROFIBUSFMS、PROFIBUSDP 和PROFIBUSPA。其中,PROFIBUSDP是一種高速的低成本通信連接,用于設備級通信系統與分散式通信。
PROFIBUSDP現場(chǎng)總線(xiàn)由主站和從站組成。對于從節點(diǎn)的研究,國內科研院所很早就開(kāi)始研究,現已有多家企業(yè)能夠自主研制從站產(chǎn)品。但是對于主站,由于其技術(shù)復雜、開(kāi)發(fā)難度大,目前國內只有北京和利時(shí)技術(shù)有限公司、浙大中控等少數幾家公司開(kāi)展相關(guān)的技術(shù)研究與開(kāi)發(fā),并只實(shí)現了部分子集功能。大部分產(chǎn)品主要由國外幾家大公司壟斷。同時(shí),隨著(zhù)PROFIBUS在國內市場(chǎng)上的迅速推廣,許多企業(yè)和科研單位開(kāi)始了對PROFIBUS協(xié)議的研究,并展開(kāi)了使用PROFIBUS通信協(xié)議的智能節點(diǎn)的研究。但是,目前國內業(yè)界對于PROFIBUSDP的研究和相關(guān)產(chǎn)品的開(kāi)發(fā)都是基于國外提供的專(zhuān)用協(xié)議芯片(主站多數采用西門(mén)子推出的ASPC2,從站多采用 SPC3等智能通信芯片),即集中在從站設計領(lǐng)域,而沒(méi)有主站樣機開(kāi)發(fā)的相關(guān)報道。對于主站的開(kāi)發(fā),國內一些科研院所(北航、中科院、浙大等)也曾利用可編程邏輯器件配合MCU設計出簡(jiǎn)單主站的試驗產(chǎn)品,但是這些產(chǎn)品僅能實(shí)現簡(jiǎn)單的主站功能,對于組成強大的PROFIBUSDP網(wǎng)絡(luò )還望塵莫及。
本文正是針對上述的問(wèn)題,為避免采用協(xié)議芯片、增加主站智能功能和后續擴展性研究的需要,設計了基于Linux操作系統的PROFISBUSDP主站。在硬件上采用ARM9內核的處理器S3C2410,同時(shí)將Linux操作系統移植到此硬件平臺上,在此基礎上,完全由軟件編程實(shí)現了整個(gè)PROFIBUSDP的主站功能,能夠與標準PRODIBUSDP從站設備進(jìn)行通信。
1 PROFIBUSDP主站通信機制
PROFIBUSDP的主要目的是在功能強大的主站與若干簡(jiǎn)單的從站之間進(jìn)行循環(huán)的數據交換。因此系統主要使用主從類(lèi)型通信服務(wù)。
PRIFIBUSDP總線(xiàn)系統設備包括主站和從站,而主站則包括1類(lèi)主站和2類(lèi)主站。1類(lèi)主站能夠對從站設置參數,檢查從站的通信接口配置,讀取從站診斷報文,并根據已經(jīng)定義好的算法與從站進(jìn)行用戶(hù)數據交換,同時(shí),1類(lèi)主站還能用一組功能與2類(lèi)主站進(jìn)行通信。2類(lèi)主站則是一個(gè)編程器或一個(gè)管理設備,可以執行一組DP系統的管理與診斷功能。由于2類(lèi)主站不能單獨作為一個(gè)主站對從站進(jìn)行管理,加上本系統采用的是單主站結構,所以本系統設計的是一個(gè)1類(lèi)主站。
PROFIBUSDP的1類(lèi)主站主從通信過(guò)程,大致分為以下幾個(gè)階段:詢(xún)問(wèn)從站是否在線(xiàn),主站對從站的第一次診斷,參數化從站,通信接口配置從站,主站對從站的第二次診斷和主站與從站之間的循環(huán)數據交換。
為了保證幀在總線(xiàn)上的正確傳輸,PROFIBUSDP對幀的結構及相應的時(shí)序關(guān)系做了嚴格的規定,且定義了12個(gè)參數以限定及保證幀間隔時(shí)間和可允許的最大等待時(shí)間等。一次典型的主從站數據交換過(guò)程在發(fā)出每一個(gè)幀前,須有一個(gè)同步期TSYN,即在每一報文幀發(fā)出前加入一段總線(xiàn)休息時(shí)間,其長(cháng)度固定為33Tbit時(shí)間。
在TSYN后,通信的發(fā)起方發(fā)出請求幀到響應者(從站)。接收方從接到該請求到產(chǎn)生響應數據的間隔時(shí)間定義為T(mén)SDR,該參數的大小反映了該響應方從站的計算能力大小和資源多少。有些站點(diǎn)沒(méi)有采用專(zhuān)用的通信ASIC芯片,或者宿主MPU 的計算能力較低都會(huì )使響應時(shí)間較長(cháng)。PROFIBUSDP協(xié)議中規定了響應時(shí)間的上、下限值即:min TSDR,max TSDR。其中:min TSDR=11Tbit,max TSDR=60Tbit~850Tbit。
在通信的發(fā)起方(主站) 一側,從主站發(fā)出請求幀的最后一位到收到響應幀的第一位之間的時(shí)間間隔被定義為Slot Time,它從另一個(gè)方面反映了一個(gè)系統的實(shí)時(shí)性能的好壞。此設計中定義了一個(gè)重要的參數TSL,即為允許的最大的Slot Time,如果通信的發(fā)起方主站在超過(guò)TSL后,還未收到接收方的響應,則認為系統出錯,或重發(fā)請求幀(重發(fā)請求數不超過(guò)Max Retry Limit 參數限制),或上交此錯誤給FDL層。
2 硬件系統設計
本PROFIBUSDP主站硬件平臺由于目標是完全采用自主技術(shù),不依靠國外的產(chǎn)品和技術(shù),所以本系統選用的是第一種方案(即由處理器運行完整的協(xié)議來(lái)實(shí)現);同時(shí),基于S3C2410芯片的強大功能,本平臺不但移植了Linux操作系統,并且還編寫(xiě)了網(wǎng)絡(luò )接口和USB口的驅動(dòng),這對于平臺的多功能性和以后性能的擴展都有一定的意義,其總體結構如圖1所示。
圖1 主站系統硬件結構圖
此硬件平臺以S3C2410處理器為核心,通過(guò)編程實(shí)現DP協(xié)議棧的功能,完成與上位機和DP從站設備的通信功能。同時(shí),針對S3C2410處理器的功能,使用外圍芯片DM9000實(shí)現了以太網(wǎng)通信功能,并根據USB的特點(diǎn),以特定的I/O口實(shí)現USB的從設備功能。由于需要移植Linux操作系統,所以需要用外圍芯片擴展內存。在本試驗平臺中,通過(guò)串口1實(shí)現了DP通信,通過(guò)串口2實(shí)現了該硬件平臺與上位機的通信。
3 系統軟件設計
為了提高該試驗平臺的可靠性,軟件設計方面將本系統分為兩個(gè)子系統,一個(gè)子系統負責與上位機進(jìn)行通信,另一個(gè)子系統則負責PROFIBUSDP的通信。其中,與上位機通信的程序流程如圖2所示。DP網(wǎng)絡(luò )通信程序流程如圖3所示。
圖2 上位機通信程序流程
圖3 DP網(wǎng)絡(luò )通信程序流程
DP網(wǎng)絡(luò )通信模塊和上位機通信接口模塊是兩個(gè)獨立的模塊,他們共享硬件相關(guān)的函數庫和從站相關(guān)數據結構。這兩個(gè)模塊還互為生產(chǎn)者和消費者的關(guān)系,上位機通信模塊為DP網(wǎng)絡(luò )通信模塊提供從站相關(guān)的組態(tài)(GSD文件相關(guān))信息和從站輸出數據;DP網(wǎng)絡(luò )通信模塊為用戶(hù)通信模塊提供從站輸入數據及從站運行狀態(tài)相關(guān)信息。
4 系統可靠性分析
軟件的穩定性和抗干擾性是衡量系統可靠性的重要指標。本主站在軟件實(shí)現中所采取的保證可靠性措施主要有防錯設計、糾錯設計、故障恢復設計等。
防錯設計:主要體現在系統程序自檢技術(shù)[8]及數據封裝方面。系統軟件設計過(guò)程中采用分層結構,與硬件操作相關(guān)的層的通信采用單獨通信模塊完成,這些層次之間通過(guò)層間接口進(jìn)行通信,層間接口在設計過(guò)程中對輸入的參數全部進(jìn)行有效性檢查(指針有效性、數值有效性、邏輯有效性檢查等)。在數據封裝方面,對與上位機通信和DP網(wǎng)絡(luò )通信兩個(gè)子系統分別進(jìn)行編程,分別提供各個(gè)子系統的私有數據,私有數據供模塊內部調用,并提供模塊間訪(fǎng)問(wèn)接口實(shí)現相關(guān)數據的共享,這樣便可以防止出現模塊間數據重名以及編程過(guò)程中誤修改產(chǎn)生的問(wèn)題。
糾錯設計:網(wǎng)關(guān)通信過(guò)程中不管是和上位機的通信還是DP網(wǎng)絡(luò )的通信,采用的都是半雙工的RS485通信。相關(guān)通信能否順利進(jìn)行,取決于數據的正確性和時(shí)間兩個(gè)方面。無(wú)論是與上位機通信,還是DP網(wǎng)絡(luò )的通信,每次對于傳輸進(jìn)來(lái)的數據都有專(zhuān)門(mén)的數據校驗模塊進(jìn)行校驗,這就避免了在數據有誤的情況下仍然進(jìn)行通信。同時(shí),針對接收超時(shí)等問(wèn)題,也有專(zhuān)門(mén)的模塊進(jìn)行處理。
故障恢復設計:采用看門(mén)狗技術(shù)。系統軟件在運行過(guò)程中開(kāi)啟硬件看門(mén)狗,軟件必須在一定的時(shí)間內“喂狗”,否則就會(huì )導致看門(mén)狗對系統的復位。這樣防止了因程序跑飛而導致無(wú)法恢復的錯誤。
5 系統實(shí)時(shí)性
PROFIBUSDP現場(chǎng)總線(xiàn)作為應用在設備的公共總線(xiàn),必須解決各節點(diǎn)的網(wǎng)絡(luò )使用權競爭問(wèn)題,同時(shí)保證通信的實(shí)時(shí)性。PORFIBUSDP系統的實(shí)時(shí)響應時(shí)間依賴(lài)于max TSDR、采用的傳輸速率、要交換的數據長(cháng)度和數量、min_slave_Interval(某一個(gè)從站前后2次被主站輪詢(xún)的最小間隔時(shí)間)4個(gè)參數。系統的測控周期(又稱(chēng)訪(fǎng)問(wèn)周期)是指控制系統周期性訪(fǎng)問(wèn)網(wǎng)絡(luò )上同一個(gè)節點(diǎn)的時(shí)間間隔,是衡量PORFIBUSDP實(shí)時(shí)性能的一個(gè)重要指標。
一次典型的主從數據交換過(guò)程如圖4所示。
圖4 主從數據交換圖
其中,Tbit表示在總線(xiàn)上傳輸1位所耗用的時(shí)間,是其他時(shí)間參數的計量單位。由于PROFIBUSDP采用UART編碼方式,每個(gè)字符由11位組成,所以傳輸一個(gè)字符需要11Tbit。
TID1定義了一個(gè)發(fā)送節點(diǎn)在獲得相應信號后的再次發(fā)送下一個(gè)信息幀所需的最短時(shí)間。
從圖4可知,一個(gè)報文循環(huán)由主動(dòng)幀(請求或發(fā)送/請求幀)和回答幀組成。循環(huán)時(shí)間由幀傳輸時(shí)間、傳輸延遲時(shí)間和站延遲時(shí)間組成。
設一次報文循環(huán)時(shí)間為T(mén)cycle,如果回答幀不為短應答幀:
如果回答幀為短應答幀:
其中:TReq=a×11Tbit,a為請求/發(fā)送幀中的字符個(gè)數;TRes=b×11Tbit,b為應答幀中的字符個(gè)數;TAsk=1×11Tbit,短應答幀;TSDR為站延遲時(shí)間,指接收方從接到請求到產(chǎn)生響應數據的時(shí)間間隔;TTD為傳輸間隔時(shí)間,指一個(gè)幀在傳輸時(shí)在發(fā)送器和接收器之間的傳輸介質(zhì)上經(jīng)過(guò)的最大時(shí)間。
本硬件平臺中PROFIBUSDP總線(xiàn)傳輸速率設置為9.6 kbps,由于是近距離傳輸,所以TTD=0Tbit,Tsdr=11Tbit,TID1=37Tbit,和主站通信的從站最多有244個(gè)數據(根據PROFIBUSDP協(xié)議規定)輸入/輸出,請求幀中有11個(gè)字符數據,則報文循環(huán)時(shí)間最長(cháng)為:
可見(jiàn),在傳輸速率為9.6 kbps的情況下,一次報文循環(huán)的最長(cháng)時(shí)間為297.3 ms;從上面這些參數中可以發(fā)現,只有TID1能夠由主站平臺的性能決定,普通的MPU調度所需時(shí)間為24.66 μs。而在移植Linux操作系統后,由于采用的2.6版本的Linux操作系統使用了新的O(1)的調度算法,大大提高了進(jìn)程調度能力,同時(shí)對于多從站的通信的任務(wù)能進(jìn)行很好的管理和調度,大大增強了主站平臺的功能。
5 主站平臺性能分析及調試
PROFIBUSDP主站的主從通信性能主要體現在主從通信速度的快慢和支持的從站數目上。由于本實(shí)驗室的從站數目有限,搭建的測試平臺目前只有3個(gè)PROFIBUSDP從站(ET200S、MM420和自主設計的從站),如圖5所示。
圖5 PROFIBUSDP 系統結構圖
本次測試的傳輸速率選定為9.6 kbps, 同時(shí)對3個(gè)從站進(jìn)行組態(tài),分別測試移植Linux操作系統前主站從接收到數據到有數據發(fā)出之間的時(shí)間ttop,到移植Linux操作系統后主站的響應時(shí)間tend;通過(guò)實(shí)驗,從示波器上的測試的圖形可以看出ttop的寬度是大于tend的寬度的,具體測量后可知無(wú)操作系統下ttop≈4015.4 μs,Linux操作系統tend≈70 μs??梢?jiàn)移植Linux操作系統后能使主站的響應時(shí)間大大縮短,提高對從站的管理效率。
參考文獻
[1] Zaiping C, Xiaowei Y, Xunlei Y. Research of schemes on integration of fieldbus system[C]. 31st Annual Conference of IEEE, 2005(11): 611.
[2] Yu S S, Chin Y H, Yi S C, et al. An Artificial NeuralNetworkBased Approach to Software Reliability Assessment[C], 2005.
[3] Zhang X, Liu A, Gao Y, et al. The Prediction Model of Software Reliability Based on the Modular[C]. International Forum on Information Technology and Applications, 2009.
[4] Bo Y, Xiang L. A study on software reliability prediction based on support vector machines[C]. 2007 IEEE International Conference on Industrial Engineering and Engineering Management, 2007.
[5] 夏繼強,梁超眾,邢春香. 工業(yè)通信用網(wǎng)關(guān)設計及其關(guān)鍵技術(shù)研究[J]. 電子技術(shù)應用, 2010, 36(2): 118125.
[6] 劉強,甘勇梅,王兆安. PROFIBUS2DP 現場(chǎng)總線(xiàn)通訊接口的開(kāi)發(fā)[J].電子技術(shù)應用,2006,27(9):39 41.
[7]卜志翔,胥軍. PROFIBUS 現場(chǎng)總線(xiàn)通信協(xié)議研究[J] . 現場(chǎng)總線(xiàn)與網(wǎng)絡(luò )技術(shù),2005(8):62264.
[8] 曲輝,葛麗娟. 提高嵌入式系統可靠性軟件抗干擾措施[J]. 內蒙古農業(yè)大學(xué)學(xué)報:自然科學(xué)版, 2009, 30(1): 229232.
評論