新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線技術的數字交流伺服系統研究

        基于CAN總線技術的數字交流伺服系統研究

        作者: 時間:2012-11-02 來源:網絡 收藏


        郵箱收發配置

        在數據域改變前首先要禁用郵箱,然后置位數據域,改變請求。再設置郵箱ID和信息控制寄存器。若是發送郵箱,則在數據域存放預發送數據,若是接收郵箱,則清空接收緩存。

        ;寫CAN郵箱內容前寄存器設置
        LDP#DP_CAN
        SPLK #0040H,MDER ;不使能郵箱,郵箱2設為接收方式
        SPLK #0103H,MCR;CDR=1,數據區改變請求
        ;寫CAN郵箱內容
        LDP#DP_CAN2
        SPLK #2447H,MSGID2H;設置郵箱2控制字及ID
        ;IDE=0,AME=0,AAM=0
        ;標準方式為MSGID2H[12~2>
        SPLK#0FFFFH,MSGID2L
        SPLK#08H,MSGCTRL2;設置控制域
        ;數據長度DCL=8,RTR=0數據幀
        SPLK#00000H,MBX2A;郵箱2信息初始化
        SPLK#00000H,MBX2B
        SPLK#00000H,MBX2C
        SPLK#00000H,MBX2D
        SPLK#2447H,MSGID3H;設置郵箱3的標識符
        SPLK#0FFFFH,MSGID3L
        SPLK#08H,MSGCTRL3;RTR=0,DCL=8
        SPLK#02211h,MBX3A;郵箱3信息初始化
        SPLK#04433h,MBX3B
        SPLK#06655h,MBX3C
        SPLK#08877h,MBX3D
        ;寫CAN郵箱內容后寄存器設置
        LDP#DPCAN
        SPLK#0480H,MCR;DB0=1,AB0=1,STM=0
        SPLK#04CH,MDER;ME3=1,MBX3發送,ME2=1接收
        SPLK#0F7FFH,CAN_IMR;中斷MBX3無效,MBX2使能,
        ;中斷優先級
        SPLK#0FFFFH,CAN_IFR;清全部中斷標志
        RET

        郵箱中斷設置CAN模塊專屬中斷寄存器有CAN_IFR和CAN_IMR,使用方法與一般中斷寄存器相同。但TMS320LF2407A 采用二級中斷方式,高優先級模式的CAN郵箱中斷對應INT1,高優先級CAN錯誤中斷對應INT2;而低優先級CAN郵箱中斷和CAN錯誤中斷都對應INT5。所以在程序中要開放對應一級中斷。接收幀ID的讀入在接收事件中,通常一個郵箱要接收多節點幀。因此,信息幀ID的讀出也很重要。不管有沒有屏蔽,所接收信息幀的ID會被置入MSGIDnH和MSGIDnL,但接收郵箱的ID并沒有改變[5>。

        程序框圖如圖3所示,實驗程序使用郵箱2接收,郵箱3發送。通訊軟件可以采用查詢方式或中斷方式,主要包括CAN控制器初始化程序、接收郵箱與發送郵箱設置、發送程序、接收程序。



        發送程序只需要設定發送控制寄存器相應位;接收程序要完成:

        讀取已接收的郵箱標識符格式;
        讀取接收的標識符;
        讀取接收的數據長度;
        讀取接收的數據值。

        上位機通過適配器與連接,用VC6.0編寫監控軟件,并定義上位機作為局域網操作服務器,用戶通過它可以對各個伺服單元進行操作。

        結語

        具有良好的網絡通信功能、高可靠性、抗干擾能力強且經濟實用,是一種很有前途的現場總線技術。它的應用將為分布式運動控制提供一種新的解決方案,會受到人們越來越多的重視。新一代的智能數字通過于開放式數控系統互聯,是運動控制領域發展的一個重要方向。

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 克拉玛依市| 楚雄市| 本溪| 临朐县| 仙游县| 扎兰屯市| 邢台县| 六盘水市| 土默特右旗| 长沙市| 大邑县| 曲松县| 八宿县| 宣恩县| 崇阳县| 通州市| 高安市| 定襄县| 柏乡县| 武胜县| 青岛市| 桦甸市| 酉阳| 安阳市| 永和县| 广水市| 徐水县| 苍梧县| 沛县| 张家界市| 台北市| 绍兴市| 永州市| 天津市| 土默特左旗| 四会市| 信阳市| 上思县| 都匀市| 泸州市| 旬邑县|