《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA和ARM的Profibus-DP主站通信平臺設計
FPGA和ARM的Profibus-DP主站通信平臺設計
孫倩華,滿慶豐,夏繼強 北京航空航天大學
摘要: 提出一個使用FPGA和ARM微控制器實現(xiàn)Profibus-DP主站(1類)通信平臺的解決方案;解析了Profibus-DP通信協(xié)議,重點是令牌輪轉(zhuǎn)協(xié)議;給出了該主站通信平臺的系統(tǒng)構(gòu)建。該通信平臺可以獨立實現(xiàn)Profibus-DP主站(1類)與其他主站(1類和2類)的令牌傳遞的主主通信功能,以及其與從站的主從通信功能。
關(guān)鍵詞: FPGA PROFIBUS-DP ARM Cyclone 西門子
Abstract:
Key words :

 摘要:提出一個使用FPGAARM微控制器實現(xiàn)Profibus-DP主站(1類)通信平臺的解決方案;解析了Profibus-DP通信協(xié)議,重點是令牌輪轉(zhuǎn)協(xié)議;給出了該主站通信平臺的系統(tǒng)構(gòu)建。該通信平臺可以獨立實現(xiàn)Profibus-DP主站(1類)與其他主站(1類和2類)的令牌傳遞的主主通信功能,以及其與從站的主從通信功能。

    Profibus-DP是由西門子公司推出的一種開放式現(xiàn)場總線標準,用于現(xiàn)場級分布式自動化外設之間的高速數(shù)據(jù)傳輸。Profibus在2007年4月突破2000萬節(jié)點大關(guān)。據(jù)PI(世界性的現(xiàn)場總線Profibus用戶組織)稱現(xiàn)在已經(jīng)超過2 500萬個節(jié)點,并希望在2012年突破5 000萬個節(jié)點,年銷售芯片450萬個。

  目前國內(nèi)業(yè)界對于Profibus-DP的研究和相關(guān)產(chǎn)品的開發(fā)都是基于國外提供的專用協(xié)議芯片(主站多數(shù)采用西門子推出的ASPC2,從站多采用SPC3等智能通信芯片),而沒有協(xié)議芯片樣機開發(fā)的相關(guān)報道。對于主站的開發(fā),國內(nèi)一些科研院所(北航706教研室、中科院、浙大等)也曾利用可編程邏輯器件配合MCU設計出簡單主站的試驗產(chǎn)品,但是這些產(chǎn)品僅能實現(xiàn)單主站的功能,對于組成強大的Profibu-DP網(wǎng)絡還望塵莫及。為了打破國外芯片的壟斷,推動國內(nèi)相關(guān)芯片及產(chǎn)品的開發(fā),本文提出了一種FPGAARM相結(jié)合的方式解決Profibu-DP 1類主站的主主通信及主從通信問題,實現(xiàn)了比較完整的主站研制方案。
  1 Profibus-DP主站通信機理及技術(shù)特性
  1.1 Profibus-DP主站通信協(xié)議
  Profibus協(xié)議的結(jié)構(gòu)以OSI為參考模型,DP使用第1層、第2層和用戶接口,第3層到第7層未加以描述。一個DP系統(tǒng)既可以是一個單主站結(jié)構(gòu),也可以是一個多主站結(jié)構(gòu),本文涉及的是多主站結(jié)構(gòu)。多主站結(jié)構(gòu)使用混合的總線訪問控制機制,主站之間采取令牌控制方式;令牌在主站之間傳遞,擁有令牌的主站擁有總線訪問控制權(quán);主站與從站之間采取主從的控制方式。
  令牌是一種特殊的報文,如下所示:
SD    DA     SA
  SD為開始分界符,DA為目的地址,SA為源地址。令牌環(huán)是所有主站的組織鏈,按照主站的地址構(gòu)成邏輯環(huán)。在這個環(huán)中,令牌在規(guī)定的時間內(nèi)按照地址的升序在各主站間依次傳遞,用戶通過編寫令牌傳遞程序保證每個主站在一個確切規(guī)定的時問內(nèi)得到令牌,之后該主站就可以在規(guī)定的時間內(nèi)與所屬從站通信,也可與所有主站通信。其中主站與所屬從站間的數(shù)據(jù)通信由主站按已確定的循環(huán)順序自動地進行處理。
  1.2 令牌循環(huán)時間分析
  最壞情況下令牌循環(huán)時間為:
  其中,TTH為站點令牌保持時間,TTS為令牌的整體傳輸延遲,TMA為令牌維護時間。在不考慮出錯重發(fā)的前提下,N個主站令牌的整體傳輸延遲TTS=N·TTK,TTk是發(fā)送令牌PDU(協(xié)議數(shù)據(jù)單元)需要的時間。高優(yōu)先級報文的傳送時間為THMS,報文數(shù)量為M;低優(yōu)先級報文的傳送時間為TLMS,報文數(shù)量為L。假設所有站點的報文服務均含有應答,則代入上述公式可得:
  2.2 ARM控制器部分程序設計
  ARM控制器程序?qū)赑rofibus通信協(xié)議數(shù)據(jù)鏈路層之上的DDLM直接數(shù)據(jù)鏈路映射程序、主站通信狀態(tài)機、應用層數(shù)據(jù)接口及應用層。
  本設計對Profibus-DP協(xié)議按層次封裝為函數(shù),層層調(diào)用。
  2.2.1 Slave_Handler狀態(tài)機
  Slave_Handler狀態(tài)機功能塊負責實現(xiàn)主從通信功能,根據(jù)從站狀態(tài)做出相應處理,有固定的處理次序,每次調(diào)用Slave_Handler狀態(tài)機產(chǎn)生一個DDLM請求,從而控制從站進入相應的通信狀態(tài)。Slave_Handler狀態(tài)轉(zhuǎn)換圖如圖2所示。
  2.2.2 Scheduler和FDL_Controller狀態(tài)機
  Scheduler狀態(tài)機功能塊負責實現(xiàn)對Slave_Handler狀態(tài)機的控制。它向Slave_Handler狀態(tài)機發(fā)送從站輪詢控制信號,控制其逐步與從站建立數(shù)據(jù)交換關(guān)系。
  FDL_Controller狀態(tài)機由10個FDL狀態(tài)組成并在這些狀態(tài)間轉(zhuǎn)換,如圖3所示。
  邏輯令牌環(huán)的建立主要工作是對LAS和GAPL的初始化。LAS和GAPL的具體初始化流程如圖4所示。
  LAS的形成標志著邏輯令牌環(huán)初始化的完成。接下來就是邏輯令牌環(huán)運轉(zhuǎn)的維護階段,令牌將按照LAS進行循環(huán)傳遞,得到令牌的主站有權(quán)進行對其所屬從站的輪詢。傳遞過程中主站將以固定的時間間隔,通過Request FDLStatus主動幀來詢問自己GAP范圍內(nèi)的所有地址,并根據(jù)詢問結(jié)果修改LAS和GAPL。在主站活動表生成之后,前驅(qū)站詢問ReqtJest FDL Starus,主站回復準備進入邏輯令牌環(huán),并從Listen_Token狀態(tài)進入Active_Idle狀態(tài)(主站的前驅(qū)站會修改自己的GAP和LAS,并把該主站作為自己的后繼站)。主站在Active_Idle狀態(tài)*總線,能夠?qū)ぶ纷约旱闹鲃訋鲬?,但沒有發(fā)起總線活動的權(quán)力,直到前驅(qū)站傳送令牌給它,它保留令牌并進入Use_Token狀態(tài),在此狀態(tài)下驅(qū)動Scheduler狀態(tài)機工作。主站持有令牌后,首先計算上次令牌獲得時刻到本次令牌獲得時刻經(jīng)過的時間(即實際輪轉(zhuǎn)時間tRR),并與用戶設定的目標輪轉(zhuǎn)時間tTR比較,如果tRR小于tTR,則主站開始處理傳輸任務。首先處理高優(yōu)先級傳輸服務,所有高優(yōu)先級服務處理完畢后處理低優(yōu)先級服務。在這個過程中,每一個完整的報文循環(huán)之后,主站就重新計算tTR—tTH。若結(jié)果小于0,主站進入PassToken狀態(tài),將令牌傳遞給后繼站,未完成的任務留到下一次令牌持有的時候再執(zhí)行。所有傳輸服務都完成后,不管是否有時間剩余,主站都交出令牌。如果主站接到令牌時發(fā)現(xiàn)tTR—tTH<O,則只發(fā)送一個高優(yōu)先級報文,完成后交出令牌。主站在令牌傳遞成功后,進入Active_Idle狀態(tài),直到再次獲得令牌。
  3 系統(tǒng)工作過程
  系統(tǒng)工作過程主要是ARM控制器和FPGA的通信交互過程,如圖5所示。從系統(tǒng)安全性上考慮,F(xiàn)PGA和ARM建立通信必須有雙方的確認信號,雖然Altera Cyclone系列FPGA從上電到穩(wěn)定之前引腳沒有輸出,從系統(tǒng)安全性角度考慮還是不夠的。
  這里FPGA_READY信號的設計是考慮到FPGA內(nèi)部鎖相環(huán)模塊PLL穩(wěn)定工作之前需要建立時間,而其未穩(wěn)定時是不能對其進行操作的。通信的狀態(tài)通過ARM控制器上的狀態(tài)機(FDL控制狀態(tài)機、調(diào)度狀態(tài)機和主從通信狀態(tài)機)進行轉(zhuǎn)換,根據(jù)定時要求、從站響應幀給出的信息,以及錯誤檢查等信息,狀態(tài)機能夠應付一般的異常并自行恢復到正常的通信之中。
  4 結(jié)論
  Profibus-DP協(xié)議用任何微處理器都能實現(xiàn),只要微處理器配有內(nèi)部或外部的異步串行接口(UART),但當數(shù)據(jù)傳輸速率較快(超過500 kb/s)時,用ASIC芯片來實現(xiàn)更安全可靠。本文充分利用了FPGA實時性好和ARM核微控制器便于開發(fā)的優(yōu)點,實現(xiàn)了Profibus-DP 1類主站,經(jīng)過搭建簡單測試環(huán)境進行測試,能和市場上的成品主從站建立通信連接并進行基本的主主、主從通信。
 
來源:國外電子元器件 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。