新聞中心

        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.104case.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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 紫金县| 高台县| 大同县| 苏尼特左旗| 洛宁县| 凤台县| 嘉义县| 香港 | 和硕县| 资中县| 塔城市| 大城县| 安平县| 营口市| 拜泉县| 广西| 张北县| 石家庄市| 新源县| 仁化县| 莆田市| 洛浦县| 万盛区| 公主岭市| 叶城县| 高唐县| 云林县| 来安县| 安达市| 勐海县| 万全县| 桑植县| 彩票| 伊春市| 资中县| 格尔木市| 观塘区| 虎林市| 三明市| 淮南市| 漳州市|