FPGA和ARM的Profibus-DP主站通信平臺(tái)設(shè)計(jì)
摘要:提出一個(gè)使用FPGA和ARM微控制器實(shí)現(xiàn)Profibus-DP主站(1類)通信平臺(tái)的解決方案;解析了Profibus-DP通信協(xié)議,重點(diǎn)是令牌輪轉(zhuǎn)協(xié)議;給出了該主站通信平臺(tái)的系統(tǒng)構(gòu)建。該通信平臺(tái)可以獨(dú)立實(shí)現(xiàn)Profibus-DP主站(1類)與其他主站(1類和2類)的令牌傳遞的主主通信功能,以及其與從站的主從通信功能。
關(guān)鍵詞:Profibus-DP;主站;令牌傳遞;FPGA;ARM
引言
Profibus-DP是由西門子公司推出的一種開放式現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),用于現(xiàn)場(chǎng)級(jí)分布式自動(dòng)化外設(shè)之間的高速數(shù)據(jù)傳輸。Profibus在2007年4月突破2000萬節(jié)點(diǎn)大關(guān)。據(jù)PI(世界性的現(xiàn)場(chǎng)總線Profibus用戶組織)稱現(xiàn)在已經(jīng)超過2 500萬個(gè)節(jié)點(diǎn),并希望在2012年突破5 000萬個(gè)節(jié)點(diǎn),年銷售芯片450萬個(gè)。
目前國內(nèi)業(yè)界對(duì)于Profibus-DP的研究和相關(guān)產(chǎn)品的開發(fā)都是基于國外提供的專用協(xié)議芯片(主站多數(shù)采用西門子推出的ASPC2,從站多采用SPC3等智能通信芯片),而沒有協(xié)議芯片樣機(jī)開發(fā)的相關(guān)報(bào)道。對(duì)于主站的開發(fā),國內(nèi)一些科研院所(北航706教研室、中科院、浙大等)也曾利用可編程邏輯器件配合MCU設(shè)計(jì)出簡(jiǎn)單主站的試驗(yàn)產(chǎn)品,但是這些產(chǎn)品僅能實(shí)現(xiàn)單主站的功能,對(duì)于組成強(qiáng)大的Profibu-DP網(wǎng)絡(luò)還望塵莫及。為了打破國外芯片的壟斷,推動(dòng)國內(nèi)相關(guān)芯片及產(chǎn)品的開發(fā),本文提出了一種FPGA與ARM相結(jié)合的方式解決Profibu-DP 1類主站的主主通信及主從通信問題,實(shí)現(xiàn)了比較完整的主站研制方案。
1 Profibus-DP主站通信機(jī)理及技術(shù)特性
1.1 Profibus-DP主站通信協(xié)議
Profibus協(xié)議的結(jié)構(gòu)以O(shè)SI為參考模型,DP使用第1層、第2層和用戶接口,第3層到第7層未加以描述。一個(gè)DP系統(tǒng)既可以是一個(gè)單主站結(jié)構(gòu),也可以是一個(gè)多主站結(jié)構(gòu),本文涉及的是多主站結(jié)構(gòu)。多主站結(jié)構(gòu)使用混合的總線訪問控制機(jī)制,主站之間采取令牌控制方式;令牌在主站之間傳遞,擁有令牌的主站擁有總線訪問控制權(quán);主站與從站之間采取主從的控制方式。
令牌是一種特殊的報(bào)文,如下所示:
SD為開始分界符,DA為目的地址,SA為源地址。令牌環(huán)是所有主站的組織鏈,按照主站的地址構(gòu)成邏輯環(huán)。在這個(gè)環(huán)中,令牌在規(guī)定的時(shí)間內(nèi)按照地址的升序在各主站間依次傳遞,用戶通過編寫令牌傳遞程序保證每個(gè)主站在一個(gè)確切規(guī)定的時(shí)問內(nèi)得到令牌,之后該主站就可以在規(guī)定的時(shí)間內(nèi)與所屬從站通信,也可與所有主站通信。其中主站與所屬從站間的數(shù)據(jù)通信由主站按已確定的循環(huán)順序自動(dòng)地進(jìn)行處理。
1.2 令牌循環(huán)時(shí)間分析
最壞情況下令牌循環(huán)時(shí)間為:
其中,TTH為站點(diǎn)令牌保持時(shí)間,TTS為令牌的整體傳輸延遲,TMA為令牌維護(hù)時(shí)間。在不考慮出錯(cuò)重發(fā)的前提下,N個(gè)主站令牌的整體傳輸延遲TTS=N?TTK,TTk是發(fā)送令牌PDU(協(xié)議數(shù)據(jù)單元)需要的時(shí)間。高優(yōu)先級(jí)報(bào)文的傳送時(shí)間為THMS,報(bào)文數(shù)量為M;低優(yōu)先級(jí)報(bào)文的傳送時(shí)間為TLMS,報(bào)文數(shù)量為L(zhǎng)。假設(shè)所有站點(diǎn)的報(bào)文服務(wù)均含有應(yīng)答,則代入上述公式可得:
2.2 ARM控制器部分程序設(shè)計(jì)
ARM控制器程序?qū)?yīng)于Profibus通信協(xié)議數(shù)據(jù)鏈路層之上的DDLM直接數(shù)據(jù)鏈路映射程序、主站通信狀態(tài)機(jī)、應(yīng)用層數(shù)據(jù)接口及應(yīng)用層。
本設(shè)計(jì)對(duì)Profibus-DP協(xié)議按層次封裝為函數(shù),層層調(diào)用。
2.2.1 Slave_Handler狀態(tài)機(jī)
Slave_Handler狀態(tài)機(jī)功能塊負(fù)責(zé)實(shí)現(xiàn)主從通信功能,根據(jù)從站狀態(tài)做出相應(yīng)處理,有固定的處理次序,每次調(diào)用Slave_Handler狀態(tài)機(jī)產(chǎn)生一個(gè)DDLM請(qǐng)求,從而控制從站進(jìn)入相應(yīng)的通信狀態(tài)。Slave_Handler狀態(tài)轉(zhuǎn)換圖如圖2所示。
評(píng)論