新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的CANopen通訊協議的實現

        基于DSP的CANopen通訊協議的實現

        作者: 時間:2011-02-16 來源:網絡 收藏



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

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

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

        3.1 CAN總線硬件設計

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



        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所示。


        關鍵詞: 收發器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 静安区| 罗田县| 宜黄县| 西和县| 青川县| 南和县| 甘孜县| 高雄县| 略阳县| 乐亭县| 泰宁县| 宜兴市| 南康市| 桐庐县| 固安县| 故城县| 台东市| 和田市| 潍坊市| 濉溪县| 科技| 松潘县| 山阴县| 大关县| 通河县| 田林县| 阳泉市| 资源县| 黄陵县| 建湖县| 红安县| 甘德县| 融水| 广灵县| 新竹县| 和政县| 孟村| 瑞丽市| 尼勒克县| 基隆市| 临潭县|