新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > CANopen從站協(xié)議的設計與實現(xiàn)

CANopen從站協(xié)議的設計與實現(xiàn)

作者: 時間:2013-05-31 來源:網(wǎng)絡 收藏

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

0 引言
隨著現(xiàn)代工業(yè)的發(fā)展,控制系統(tǒng)的規(guī)模與復雜度成倍增長,數(shù)據(jù)傳輸?shù)耐掏铝亢涂煽啃砸笠搽S之提升,現(xiàn)場總線技術(shù)就是在這種情況下被提出并迅速發(fā)展起來的。CAN總線是現(xiàn)場總線國際標準之一,它具有可靠性好、實時性高、抗干擾能力較強等優(yōu)點,廣泛應用于汽車和工業(yè)控制領(lǐng)域。但由于其只定義了物理層和數(shù)據(jù)鏈路層,并非一個完整的協(xié)議,在高級應用中需要應用層的支持,于是標準應運而生。
CANopen是自動化CAN用戶和制造商協(xié)會(CiA,CAN-in-Automation)定義的CAN總線應用層協(xié)議。它采用面向?qū)ο蟮乃枷朐O計,具有很好的模塊化特性和很高的適應性。CANopcn不僅定義了應用層和通信子協(xié)議,還為大多數(shù)重要的設備類型定義了大量的規(guī)范,不同廠商遵循這些規(guī)范開發(fā)出的設備之間能夠輕易實現(xiàn)互操作。
CANopen作為基于CAN總線的高層協(xié)議標準,在發(fā)布后不久就獲得了廣泛的承認。尤其是在歐洲,CANopcn協(xié)議被認為是在基于CAN的工業(yè)系統(tǒng)中占據(jù)領(lǐng)導地位的標準。

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

本文引用地址:http://www.butianyuan.cn/article/153471.htm

a.jpg


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

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

b.jpg


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


上一頁 1 2 3 下一頁

關(guān)鍵詞: CANopen C8051F500 從站協(xié)議

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉