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

    EEPW首頁 > 手機與無線通信 > 設計應用 > CANopen從站協議的設計與實現

    CANopen從站協議的設計與實現

    作者: 時間:2013-05-31 來源:網絡 收藏

    摘要:CANopcn作為一種開放性好、標準化、低成本的基于CAN總線的應用層協議,目前已經廣泛地應用于工業自動化領域。文章根據CANop-en DS301應用層協議規范,在以單片機為控制核心的開發平臺上建立了從節點協議棧總框架,并實現了其中的各種功能模塊,整合成完整的協議棧,在搭建的實驗平臺上進行了協議棧的測試,實驗表明:該協議棧功能完整,實時性滿足使用要求。
    關鍵詞:

    0 引言
    隨著現代工業的發展,控制系統的規模與復雜度成倍增長,數據傳輸的吞吐量和可靠性要求也隨之提升,現場總線技術就是在這種情況下被提出并迅速發展起來的。CAN總線是現場總線國際標準之一,它具有可靠性好、實時性高、抗干擾能力較強等優點,廣泛應用于汽車和工業控制領域。但由于其只定義了物理層和數據鏈路層,并非一個完整的協議,在高級應用中需要應用層的支持,于是標準應運而生。
    CANopen是自動化CAN用戶和制造商協會(CiA,CAN-in-Automation)定義的CAN總線應用層協議。它采用面向對象的思想設計,具有很好的模塊化特性和很高的適應性。CANopcn不僅定義了應用層和通信子協議,還為大多數重要的設備類型定義了大量的規范,不同廠商遵循這些規范開發出的設備之間能夠輕易實現互操作。
    CANopen作為基于CAN總線的高層協議標準,在發布后不久就獲得了廣泛的承認。尤其是在歐洲,CANopcn協議被認為是在基于CAN的工業系統中占據領導地位的標準。

    1 CANopen協議總體框架
    CANopen協議棧主要包含了兩部分,一部分是通信規范,另一部分是設備規范。通信規范(CiA:DS-3011定義了基本的數據通信方式和特性,設備規范(CiA DSP 401-DSP4XX)則針對不同的設備類型進行了報文ID的分配和設備特征數據的定義,規范了設備的行為規范。其中通信規范是通用的,本文設計與實現的就是這一部分。
    在通信規范中,為了互操作性和兼容性,CANopcn設備都必須遵從標準的CANopen設備模型來進行軟件設計,如圖1所示。

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

    a.jpg


    CAN通信接口通過操作CAN控制器,在總線上收發各種通信對象,來實現與其他CANopen節點基于協議規范的數據交互;對象字典是CANop-cn設備的核心,存儲節點所有的信息,并向應用程序和通信對象提供訪問接口;通信部分通過對對象字典進行操作,與其他節點交換各種通信對象實現CANopen操作;應用程序由用戶根據應用要求和設備的具體任務自己實現。

    2 CANopen功能模塊實現
    2.1 CAN驅動程序實現
    針對單片機,實現了CAN驅動程序。CAN驅動程序負責完成CAN控制器的操作、報文收發、CAN錯誤處理等任務,由以下部分組成:1)CAN控制器的初始化,主要對CAN控制器的相關寄存器進行配置,包括波特率的設置,消息對象的配置,接收、發送屏蔽寄存器的設置;2)CAN發送程序,任務是將打包好的數據根據幀標識符,通過接口寄存器分發到相應的郵箱里,然后啟動發送;3)CAN接收程序,由CAN中斷處理程序來完成,負責將報文分配給各個通信模塊處理。
    2.2 對象字典實現
    對象字典OD(Object Dictionary)是一個有序的對象組:每個對象采用一個16位的索引值來尋址,同時定義了一個8位的子索引用于訪問數據結構中的單個元素。每個CANopen設備中都必須包含一個對象字典。對象字典分為了兩部分,通用的通信子協議區域和特定的設備子協議區域,前者包含了描述這個設備通信行為的所有參數,后者包含了設備任務相關的所有數據。
    本文設計的對象字典結構如圖2所示。

    b.jpg


    針對單片機計算資源緊缺的特點,對象字典實體采用二維靜態結構體來實現,它具有結構簡單、訪問效率高等優點。讀寫函數與對象字典實體配套使用,目的是將對象字典封閉起來,有效地杜絕非法訪問的情況,保障對象字典的數據安全。
    2.3 通信對象的實現
    CANopcn協議規定了4類通訊對象:SDO(Service Data Objeet,服務數據對象)、過程數據對象)、NMT(NetworkManagement,網絡管理對象)以及特殊功能對象。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 阜南县| 汪清县| 广南县| 通化县| 永修县| 渝北区| 池州市| 嘉鱼县| 罗平县| 共和县| 枣强县| 织金县| 中西区| 新昌县| 龙口市| 合山市| 交城县| 甘洛县| 洪雅县| 双峰县| 鹤壁市| 三台县| 巧家县| 德江县| 武邑县| 耒阳市| 凌海市| 南靖县| 嘉兴市| 怀仁县| 行唐县| 十堰市| 浪卡子县| 永康市| 三门峡市| 措美县| 隆昌县| 邹平县| 巴南区| 大埔县| 安丘市|