Linux和S3C2410的PROFIBUS-DP主站平臺設計
摘要:針對標準PROFIBUS—DP主站在國內研究較少,自主研發產品的功能有限、智能化不足的現狀,進行了基于Linux操作系統的PROFIBUS—DP主站的設計和研究,實現了PROFIBUS—DP1類主站的主從通信功能。采用模塊化設計思想,從防錯設計、糾錯設計、故障恢復設計等方面對設計方案中軟硬件可靠性進行了詳細分析。從響應時間的角度闡述了影響系統實時性的關鍵問題,同時對本平臺的實時性進行了詳細分析,并通過實驗測試了該主站的性能參數。實驗結果表明,對于多從站通信,使用Linux操作系統后,性能更優越,運行更穩定。
關鍵詞:主站;實時性;模塊化;Linux操作系統
引言
PROFIBUS是面向工廠自動化、流程自動化的一種國際性的現場總線標準,是一種具有廣泛適用范圍的、開放的數字通信系統,適用于快速、時間要求嚴格和可靠性要求高的各種通信任務。PROFIBUS現場總線分3種:PROFIBUS—FMS、PROFIBUS—DP和PROFIBUS—PA。其中,PROF-IBUS—DP是一種高速的低成本通信連接,用于設備級通信系統與分散式通信。
PROFIBUS—DP現場總線由主站和從站組成。對于從節點的研究,國內科研院所很早就開始研究,現已有多家企業能夠自主研制從站產品。但是對于主站,由于其技術復雜、開發難度大,目前國內只有北京和利時技術有限公司、浙大中控等少數幾家公司開展相關的技術研究與開發,并只實現了部分子集功能。大部分產品主要由國外幾家大公司壟斷。同時,隨著PROFIBUS在國內市場上的迅速推廣,許多企業和科研單位開始了對PROFIBUS協議的研究,并展開了使用PROFIBUS通信協議的智能節點的研究。但是,目前國內業界對于PROFIBUS—DP的研究和相關產品的開發都是基于國外提供的專用協議芯片(主站多數采用西門子推出的ASPC2,從站多采用SPC3等智能通信芯片),即集中在從站設計領域,而沒有主站樣機開發的相關報道。對于主站的開發,國內一些科研院所(北航、中科院、浙大等)也曾利用可編程邏輯器件配合MCU設計出簡單主站的試驗產品,但是這些產品僅能實現簡單的主站功能,對于組成強大的PROFIBUS—DP網絡還望塵莫及。
本文正是針對上述的問題,為避免采用協議芯片、增加主站智能功能和后續擴展性研究的需要,設計了基于Linux操作系統的PROFISBUS —DP主站。在硬件上采用ARM9內核的處理器S3C2410,同時將Linux操作系統移植到此硬件平臺上,在此基礎上,完全由軟件編程實現了整個PROFIBUS—DP的主站功能,能夠與標準PROD—IBUS—DP從站設備進行通信。
1 PROFIBUS—DP主站通信機制
PROFIBUS—DP的主要目的是在功能強大的主站與若干簡單的從站之間進行循環的數據交換。因此系統主要使用主-從類型通信服務。
PRIFIBUS—DP總線系統設備包括主站和從站,而主站則包括1類主站和2類主站。1類主站能夠對從站設置參數,檢查從站的通信接口配置,讀取從站診斷報文,并根據已經定義好的算法與從站進行用戶數據交換,同時,1類主站還能用一組功能與2類主站進行通信。2類主站則是一個編程器或一個管理設備,可以執行一組DP系統的管理與診斷功能。由于2類主站不能單獨作為一個主站對從站進行管理,加上本系統采用的是單主站結構,所以本系統設計的是一個1類主站。
PROFIBUS—DP的1類主站主從通信過程,大致分為以下幾個階段:詢問從站是否在線,主站對從站的第一次診斷,參數化從站,通信接口配置從站,主站對從站的第二次診斷和主站與從站之間的循環數據交換。
為了保證幀在總線上的正確傳輸,PROFIBUS—DP對幀的結構及相應的時序關系做了嚴格的規定,且定義了12個參數以限定及保證幀間隔時間和可允許的最大等待時間等。一次典型的主從站數據交換過程在發出每一個幀前,須有一個同步期TSYN,即在每一報文幀發出前加入一段總線休息時間,其長度固定為33Tbit時間。
在TSYN后,通信的發起方發出請求幀到響應者(從站)。接收方從接到該請求到產生響應數據的間隔時間定義為TSDR,該參數的大小反映了該響應方從站的計算能力大小和資源多少。有些站點沒有采用專用的通信ASIC芯片,或者宿主MPU的計算能力較低都會使響應時間較長。 PROFIBUS—DP協議中規定了響應時間的上、下限值即:min TSDR,max TSDR。其中:min TSDR=11Tbit,maxTSDR=60Tbit~850Tbit。
在通信的發起方(主站)一側,從主站發出請求幀的最后一位到收到響應幀的第一位之間的時間間隔被定義為Slot Time,它從另一個方面反映了一個系統的實時性能的好壞。此設計中定義了一個重要的參數TSL,即為允許的最大的Slot Time,如果通信的發起方主站在超過TSL后,還未收到接收方的響應,則認為系統出錯,或重發請求幀(重發請求數不超過Max Retry Limit參數限制),或上交此錯誤給FDL層。
2 硬件系統設計
本PROFIBUS—DP主站硬件平臺由于目標是完全采用自主技術,不依靠國外的產品和技術,所以本系統選用的是第一種方案(即由處理器運行完整的協議來實現);同時,基于S3C2410芯片的強大功能,本平臺不但移植了Linux操作系統,并且還編寫了網絡接口和USB口的驅動,這對于平臺的多功能性和以后性能的擴展都有一定的意義,其總體結構如圖1所示。
此硬件平臺以S3C2410處理器為核心,通過編程實現DP協議棧的功能,完成與上位機和DP從站設備的通信功能。同時,針對S3C2410處理器的功能,使用外圍芯片DM9000實現了以太網通信功能,并根據USB的特點,以特定的I/O口實現USB的從設備功能。由于需要移植Linux操作系統,所以需要用外圍芯片擴展內存。在本試驗平臺中,通過串口1實現了DP通信,通過串口2實現了該硬件平臺與上位機的通信。
評論