那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CANoen協議實現DSP系統與上位機CAN的通訊

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-07-10 08:08 ? 次閱讀

1、引言

CANopen是一個開放的、標準化的應用層協議,在各種控制系統中得到了廣泛的應用。依靠CANopen協議的支持,可以對不同CAN廠商的設備通過總線進行實時通訊。

本文針對自主研發的全數字電機伺服驅動系統,使用CANopen通訊協議實現了CAN總線數字信號處理器DSP)系統與上位機CAN卡之間的通訊,并通過測試實驗驗證了信息傳遞的可靠性,保證了全數字網絡化伺服驅動系統中對電機控制的快速性、準確性和實時性。

2 、通訊系統實現的基本原理

2.1 LF240x系列DSP的CAN控制器模塊

LF240x系列DSP的CAN控制器模塊,是一個完全的CAN控制器。具有以下特性[6]:

(1)完全支持CAN2.0B協議;

(2)對象有6個郵箱,用于接收和發送信息,其數據長度為0~8個字節;

(3)可編程的中斷配置,位定時器及CAN總線喚醒功能;

(4)當發送出現錯誤或仲裁丟失數據時,CAN控制器有自動重發功能;

(5)總線錯誤自診斷功能;

(6)支持自測試模式。

2.2 CANopen協議

CANopen協議以CAN芯片為硬件基礎,有效利用CAN芯片所提供的簡單通信功能區實現工業控制網絡的復雜應用層協議要求。應用中應該注意以下幾個方面的內容:

2.2.1 對象字典OD(Object Dictionary)

OD是CANopen協議的核心概念[1],它是一個有序的對象組,每個對象用一個16位的索引值和一個8位的子索引尋址。CANopen網絡中的每個節點都有一個OD,包含了描述這個設備和它的網絡行為的所有參數

2.2.2 CANopen 標識符

CANopen定義了強制性的缺省標識符(COB-ID)分配表。它是基于11位的CAN-ID,包括4位功能段(Function Code)和7位地址段(Node-ID),如圖1所示。文獻[1]中給出了CANopen預定義主/從連接集CAN標識符分配情況。

基于CANoen協議實現DSP系統與上位機CAN的通訊

2.2.3 CANopen通訊機制

CANopen通訊模型定義了四種報文(通訊對象)[1]:

1) 管理報文NMT(Network Management)

用于網絡中主節點對從節點監控和管理。此消息不需要應答。NMT消息格式如表1所示。

基于CANoen協議實現DSP系統與上位機CAN的通訊

2)服務數據對象SDO(Service Data Object)

SDO通過使用索引和子索引來訪問一個設備的OD。協議屬于確認服務類型。根據傳送數據的長度不同,有兩種傳送機制:加速傳送(最多4字節)和分段傳送(大于4字節)。發送和應答報文總是包含8字節信息,基本結構如表2所示:

基于CANoen協議實現DSP系統與上位機CAN的通訊

3) 過程數據對象PDO(Process Data Object)

用于傳輸正常網絡操作中的實時數據。每個PDO在OD中用2個對象描述:PDO通訊參數和PDO映射參數。在此舉例說明PDO的使用方法。假設第二個發送PDO映射如表3所示,如果這個報文被發送,則由3字節組成,報文結構如表4所示。

基于CANoen協議實現DSP系統與上位機CAN的通訊

4) 預定義報文或特殊功能報文

定義了三個用于同步,應急指示和時間標記的特定對象。用于配合以上三種通訊機制。

3、系統通訊的軟、硬件設計

3.1 CAN總線硬件設計

由于TMS320LF2407A芯片內自帶了CAN總線控制器模塊,使得CAN總線的電路設計變得非常簡單。將TMS320LF2407A的CANTX、CANRX引腳和CAN收發器PCA82C250的TXD、RXD引腳相連即可。CAN總線之間需要使用一個合適的終端電阻連接。為了進一步提高系統的抗干擾能力,可以在控制器和傳輸介質之間加接光電隔離器件6N137。電路原理圖如圖2所示。

基于CANoen協議實現DSP系統與上位機CAN的通訊

3.2 CANopen協議對象字典OD的建立

本伺服驅動器通訊支持CANopen通訊子協議(DS301)和驅動設備子協議及運動控制命令(DSP-402)。在開發的過程中,根據應用的具體要求,將數字輸入/輸入模塊、電機及驅動設備、控制器、編碼器等設備類型及其相應的功能在設備描述的協議中進行了描述。建立的OD分為三個部分:

1) 通訊協議對象(Index 0x1000-0x1AFF)

定義設備類型,錯誤寄存器,廠商指定狀態寄存器,COB-ID同步信息,通訊循環周期,同步CAN信息窗口,以及設備名,軟硬件版本號等。另外SDO的通訊參數以及PDO的通訊和映射參數也在該部分定義。本設計中采用固定PDO映射,不允許動態映射。

2) 標準設備子協議對象(Index 0x6000-0x65FF)

定義三類信息:第一類是電機及驅動器的相關設備參數,如類型,廠商信息,分類號等;第二類是命令字和狀態字;第三類是位置、速度的相關參數。

3) 廠商指定協議對象(0x2000-0x20FF)

根據廠商需求,靈活定義所使用的變量。 此部分的使用使CANopen協議既保證了設備的通用性,又保證了系統良好的擴展性。

3.3 通訊程序的設計及實現

針對帶CAN控制器的TMS320LF2407A和PC機CAN卡之間的通訊進行了軟件設計。

TMS320LF2407A的CAN控制器的郵箱2配置為接收方式,郵箱3配置為發送方式。都采用標準信息幀格式(11Bit ID)。其中發送信息采用查詢方式,接收信息采用中斷方式,郵箱2用低中斷優先級。信息傳輸波特率設置為500Kbps。

采用CANopen協議對設備進行控制的過程可以理解為用SDO對數據字典的讀寫過程。檢測設備對象的狀態或查詢設備當前信息時,可用SDO讀取數據字典中的對象;要對設備發布控制命令可利用SDO向相應的數據字典對象寫入數據。接收到信息幀時首先要將其命令字節(byte0)讀出,以確定下一步的讀寫命令處理。

信息幀的接收和發送均采用緩沖區的方式。讀操作時,發送信息幀長度為4字節,應答信息幀約定為8字節;寫操作時,發送信息幀長度約定為8字節,應答信息幀為4字節。

采用不同的發送郵箱發送數據長度不同的信息幀。本程序設計中,采用郵箱4發送4字節長度的信息幀,采用郵箱5發送8字節長度的信息幀。這種方式可以提高信息傳輸的效率。軟件設計流程圖如圖3所示。

基于CANoen協議實現DSP系統與上位機CAN的通訊

4 、測試結果

為了測試CAN總線DSP系統與PC機CAN卡之間的通訊情況,采用VC++編寫了友好的人機界面(見圖4)。進行通訊測試時,首先要選擇通訊端口,設置通訊波特率,ID屏蔽位,信息幀格式及傳輸數據的格式(十進制或十六進制)。特別需要注意PC端設置的通訊波特率要和DSP端的通訊波特率保持一致。然后打開CAN總線端口,選定發送SDO的功能段及地址段,填寫信息幀長度(以字節為單位)及內容,即可進行通訊測試。

基于CANoen協議實現DSP系統與上位機CAN的通訊

例如,要將1號地址的電機輪速期望值設為0x3E8,電機輪速期望值在OD中的索引為0x606B,使用啟動域下載協議,加速傳輸。則設置地址段為1,信息幀長度為8,信息幀內容為2B 6B 60 00 E8 03 00 00。發送成功后返回應答信息幀內容為:ID=581,LENTH=4,DATA=60 6B 60 0 0 0 0 0,說明寫入操作正確(見圖4)。

要將1號地址的電機輪速期望值讀出,即讀出OD中的對象0x606B,使用啟動域上傳協議,服務器使用加速傳輸方式應答。則設置地址段為1,信息幀長度為4,信息幀內容為40 6B 60 00 00 00 00 00,發送成功后返回應答信息幀內容為:ID=581,LENTH=8,DATA=4B 6B 60 0 E8 03 0 0,說明讀取操作正確(見圖4)。

5 、結束語

本文用CANoen協議實現了CAN總線DSP系統與上位機CAN的通訊,實現了控制系統的數字化、模塊化,并保持了系統的可擴展性,為提高伺服驅動系統的智能化水平奠定了堅實的基礎。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    554

    文章

    8059

    瀏覽量

    350461
  • CAN總線
    +關注

    關注

    145

    文章

    1955

    瀏覽量

    131101
  • 電機
    +關注

    關注

    142

    文章

    9088

    瀏覽量

    146387
收藏 人收藏

    評論

    相關推薦

    需要開發一個上位和單片的雙向通訊協議

    需要開發一個上位和單片的雙向通訊協議,現在上位給單片
    發表于 04-08 15:39

    DSP28035的CAN通訊程序 精選資料推薦

    、TJA1050芯片是屬于物理層芯片,將TTL電平信號轉換為符合CAN規范的差分信號,從而實現CAN通訊。因此,上位
    發表于 08-20 08:07

    上位通信協議控制電機上位C++實現上位6

    常見的上位通信協議控制電機上位C++實現上位
    發表于 09-16 06:22

    單片上位通訊協議是什么?

    單片上位通訊協議是什么
    發表于 10-10 07:40

    基于DSP的CANopen通訊協議實現

    CANopen 是一種開放的應用層協議,其應用可以進一步提高系統的可靠性、通訊效率及靈活性,而且可以使產品具有很好的兼容性。本文采用CANopen 通訊
    發表于 09-03 09:19 ?19次下載

    PC并口與現場總線CAN通訊實現

    PC并口與現場總線CAN通訊實現 以PC并口與CAN
    發表于 10-16 17:53 ?1864次閱讀
    PC<b class='flag-5'>機</b>并口與現場總線<b class='flag-5'>CAN</b><b class='flag-5'>通訊</b>的<b class='flag-5'>實現</b>

    基于DSP和FPGA的HDLC協議通訊電路設計

    摘要:為了實現高速HDLC通訊協議,設計了DSP+FPGA結構的485通訊接口,接口包括DSP
    發表于 02-25 17:24 ?98次下載

    交流伺服系統DSP上位通訊實現

    本文介紹了基于DSP的盤流伺服系統上位通訊.詳細升紹了DsP串行
    發表于 10-12 15:40 ?73次下載
    交流伺服<b class='flag-5'>系統</b>中<b class='flag-5'>DSP</b>與<b class='flag-5'>上位</b><b class='flag-5'>機</b>的<b class='flag-5'>通訊實現</b>

    基于LabVIEW和J1939協議CAN總線通訊平臺開發

    基于J1939 協議的商用車CAN總線,針對單片微控制器MCU 節點的MCU + CAN 控制器 + CAN 收發器的
    發表于 04-15 16:59 ?5352次閱讀
    基于LabVIEW和J1939<b class='flag-5'>協議</b>的<b class='flag-5'>CAN</b>總線<b class='flag-5'>通訊</b>平臺開發

    CAN總線DSP系統上位CAN通訊

    字電機伺服驅動系統,使用CANopen通訊協議實現CAN總線數字信號處理器(DSP
    發表于 10-31 11:00 ?16次下載
    <b class='flag-5'>CAN</b>總線<b class='flag-5'>DSP</b><b class='flag-5'>系統</b>與<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>CAN</b>的<b class='flag-5'>通訊</b>

    基于DSP的CANopen通訊協議的解析

    字電機伺服驅動系統,使用CANopen通訊協議實現CAN總線數字信號處理器(DSP
    發表于 11-01 16:19 ?10次下載
    基于<b class='flag-5'>DSP</b>的CANopen<b class='flag-5'>通訊</b><b class='flag-5'>協議</b>的解析

    DSP28035的CAN通訊程序

    、TJA1050芯片是屬于物理層芯片,將TTL電平信號轉換為符合CAN規范的差分信號,從而實現CAN通訊。因此,上位
    發表于 12-05 17:36 ?40次下載
    <b class='flag-5'>DSP</b>28035的<b class='flag-5'>CAN</b><b class='flag-5'>通訊</b>程序

    利用CAN通信實現電機控制器上位監控系統

      介紹一種利用TMS320F28335的增強型局域控制網,模塊(eCAN)實現數據傳輸,LABVIEW作為上位開發平臺,實現電機控制器與電腦CA
    發表于 04-02 17:38 ?19次下載

    【Z站推薦】CAN接口卡如何解決上位系統的調度延時問題?

    具體分析。使用CAN接口卡是CAN通訊領域無法避開的話題,它提供各種的接口類型,兼容多種上位系統
    的頭像 發表于 07-24 17:02 ?1353次閱讀
    【Z站推薦】<b class='flag-5'>CAN</b>接口卡如何解決<b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>系統</b>的調度延時問題?

    上位與plc通訊協議有哪些

    在工業自動化領域,上位與PLC(可編程邏輯控制器)之間的通信至關重要。上位通常指用于監控、控制和數據管理的計算機系統,而PLC則負責執行
    的頭像 發表于 06-06 09:53 ?2737次閱讀
    赌百家乐官网庄闲能赢| 大发888娱乐城大发888达法8| 新2百家乐官网现金网百家乐官网现金网| 现场百家乐的玩法技巧和规则 | 大发888真钱游戏下载官网| 跨国际百家乐官网的玩法技巧和规则 | 网上百家乐官网可靠| 百家乐b28博你| 富易堂百家乐官网娱乐城| 百家乐知道| 百家乐官网的玩法技巧和规则| 娱乐城注册送38彩金| 虚拟百家乐游戏下载| 百家乐官网庄闲必赢| A8百家乐的玩法技巧和规则| 机器百家乐官网心得| 7m足球比分| 澳门百家乐怎赌才能赚钱| 百家乐官网投注技巧| 大发888为什么这么卡| 开心8百家乐娱乐城| 百家乐官网游戏软件开发| 大发888电话| 利高百家乐现金网| 百家乐官网事电影| 大发888官方 df888gfxzylc8| 网上百家乐合法吗| 开心8百家乐官网游戏| 大发888大家赢娱乐| 百家乐在线手机玩| 百家乐官网网上投注代理商| 元游棋牌游戏下载| 百家乐破解软件真的有用吗| 百家乐官网一般的庄闲比例是多少| 世界德州扑克大赛| 百家乐任你博娱乐场| 太阳百家乐官网游戏| 百家乐官网规则好学吗| 大发888网页版登录| 网上的百家乐是假的吗| 筹码百家乐官网的玩法技巧和规则 |