• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > FPGA和ARM的Profibus-DP主站通信平臺設計

    FPGA和ARM的Profibus-DP主站通信平臺設計

    作者: 時間:2010-04-01 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/191752.htm

    引言
    Profibus-DP是由西門子公司推出的一種開放式現場總線標準,用于現場級分布式自動化外設之間的高速數據傳輸。Profibus在2007年4月突破2000萬節點大關。據PI(世界性的現場總線Profibus用戶組織)稱現在已經超過2 500萬個節點,并希望在2012年突破5 000萬個節點,年銷售芯片450萬個。
    目前國內業界對于Profibus-DP的研究和相關產品的開發都是基于國外提供的專用協議芯片(主站多數采用西門子推出的ASPC2,從站多采用SPC3等智能通信芯片),而沒有協議芯片樣機開發的相關報道。對于主站的開發,國內一些科研院所(北航706教研室、中科院、浙大等)也曾利用可編程邏輯器件配合MCU設計出簡單主站的試驗產品,但是這些產品僅能實現單主站的功能,對于組成強大的Profibu-DP網絡還望塵莫及。為了打破國外芯片的壟斷,推動國內相關芯片及產品的開發,本文提出了一種相結合的方式解決Profibu-DP 1類主站的主主通信及主從通信問題,實現了比較完整的主站研制方案。

    1 Profibus-DP主站通信機理及技術特性
    1.1 Profibus-DP主站通信協議
    Profibus協議的結構以OSI為參考模型,DP使用第1層、第2層和用戶接口,第3層到第7層未加以描述。一個DP系統既可以是一個單主站結構,也可以是一個多主站結構,本文涉及的是多主站結構。多主站結構使用混合的總線訪問控制機制,主站之間采取令牌控制方式;令牌在主站之間傳遞,擁有令牌的主站擁有總線訪問控制權;主站與從站之間采取主從的控制方式。
    令牌是一種特殊的報文,如下所示:


    SD為開始分界符,DA為目的地址,SA為源地址。令牌環是所有主站的組織鏈,按照主站的地址構成邏輯環。在這個環中,令牌在規定的時間內按照地址的升序在各主站間依次傳遞,用戶通過編寫令牌傳遞程序保證每個主站在一個確切規定的時問內得到令牌,之后該主站就可以在規定的時間內與所屬從站通信,也可與所有主站通信。其中主站與所屬從站間的數據通信由主站按已確定的循環順序自動地進行處理。
    1.2 令牌循環時間分析
    最壞情況下令牌循環時間為:

    其中,TTH為站點令牌保持時間,TTS為令牌的整體傳輸延遲,TMA為令牌維護時間。在不考慮出錯重發的前提下,N個主站令牌的整體傳輸延遲TTS=N?TTK,TTk是發送令牌PDU(協議數據單元)需要的時間。高優先級報文的傳送時間為THMS,報文數量為M;低優先級報文的傳送時間為TLMS,報文數量為L。假設所有站點的報文服務均含有應答,則代入上述公式可得:


    2.2 ARM控制器部分程序設計
    ARM控制器程序對應于Profibus通信協議數據鏈路層之上的DDLM直接數據鏈路映射程序、主站通信狀態機、應用層數據接口及應用層。
    本設計對Profibus-DP協議按層次封裝為函數,層層調用。
    2.2.1 Slave_Handler狀態機
    Slave_Handler狀態機功能塊負責實現主從通信功能,根據從站狀態做出相應處理,有固定的處理次序,每次調用Slave_Handler狀態機產生一個DDLM請求,從而控制從站進入相應的通信狀態。Slave_Handler狀態轉換圖如圖2所示。


    上一頁 1 2 3 下一頁

    關鍵詞: Profibus-DP FPGA ARM 通信

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 宁安市| 富顺县| 保山市| 南木林县| 吉安市| 温州市| 米易县| 宁陵县| 鄂温| 柳河县| 乐清市| 海兴县| 襄垣县| 平果县| 晋江市| 萨迦县| 马公市| 龙江县| 永新县| 龙山县| 扎赉特旗| 龙海市| 延庆县| 甘谷县| 泸西县| 上林县| 汕头市| 仪征市| 镇宁| 通辽市| 景东| 泰州市| 大关县| 左云县| 武义县| 岱山县| 威海市| 岱山县| 杭锦旗| 沙雅县| 余庆县|