基于CAN總線技術(shù)的數(shù)字交流伺服系統(tǒng)研究
郵箱收發(fā)配置
在數(shù)據(jù)域改變前首先要禁用郵箱,然后置位數(shù)據(jù)域,改變請(qǐng)求。再設(shè)置郵箱ID和信息控制寄存器。若是發(fā)送郵箱,則在數(shù)據(jù)域存放預(yù)發(fā)送數(shù)據(jù),若是接收郵箱,則清空接收緩存。
;寫CAN郵箱內(nèi)容前寄存器設(shè)置
LDP#DP_CAN
SPLK #0040H,MDER ;不使能郵箱,郵箱2設(shè)為接收方式
SPLK #0103H,MCR;CDR=1,數(shù)據(jù)區(qū)改變請(qǐng)求
;寫CAN郵箱內(nèi)容
LDP#DP_CAN2
SPLK #2447H,MSGID2H;設(shè)置郵箱2控制字及ID
;IDE=0,AME=0,AAM=0
;標(biāo)準(zhǔn)方式為MSGID2H[12~2>
SPLK#0FFFFH,MSGID2L
SPLK#08H,MSGCTRL2;設(shè)置控制域
;數(shù)據(jù)長(zhǎng)度DCL=8,RTR=0數(shù)據(jù)幀
SPLK#00000H,MBX2A;郵箱2信息初始化
SPLK#00000H,MBX2B
SPLK#00000H,MBX2C
SPLK#00000H,MBX2D
SPLK#2447H,MSGID3H;設(shè)置郵箱3的標(biāo)識(shí)符
SPLK#0FFFFH,MSGID3L
SPLK#08H,MSGCTRL3;RTR=0,DCL=8
SPLK#02211h,MBX3A;郵箱3信息初始化
SPLK#04433h,MBX3B
SPLK#06655h,MBX3C
SPLK#08877h,MBX3D
;寫CAN郵箱內(nèi)容后寄存器設(shè)置
LDP#DPCAN
SPLK#0480H,MCR;DB0=1,AB0=1,STM=0
SPLK#04CH,MDER;ME3=1,MBX3發(fā)送,ME2=1接收
SPLK#0F7FFH,CAN_IMR;中斷MBX3無效,MBX2使能,
;中斷優(yōu)先級(jí)
SPLK#0FFFFH,CAN_IFR;清全部中斷標(biāo)志
RET
郵箱中斷設(shè)置CAN模塊專屬中斷寄存器有CAN_IFR和CAN_IMR,使用方法與一般中斷寄存器相同。但TMS320LF2407A 采用二級(jí)中斷方式,高優(yōu)先級(jí)模式的CAN郵箱中斷對(duì)應(yīng)INT1,高優(yōu)先級(jí)CAN錯(cuò)誤中斷對(duì)應(yīng)INT2;而低優(yōu)先級(jí)CAN郵箱中斷和CAN錯(cuò)誤中斷都對(duì)應(yīng)INT5。所以在程序中要開放對(duì)應(yīng)一級(jí)中斷。接收幀ID的讀入在接收事件中,通常一個(gè)郵箱要接收多節(jié)點(diǎn)幀。因此,信息幀ID的讀出也很重要。不管有沒有屏蔽,所接收信息幀的ID會(huì)被置入MSGIDnH和MSGIDnL,但接收郵箱的ID并沒有改變[5>。
程序框圖如圖3所示,實(shí)驗(yàn)程序使用郵箱2接收,郵箱3發(fā)送。通訊軟件可以采用查詢方式或中斷方式,主要包括CAN控制器初始化程序、接收郵箱與發(fā)送郵箱設(shè)置、發(fā)送程序、接收程序。
發(fā)送程序只需要設(shè)定發(fā)送控制寄存器相應(yīng)位;接收程序要完成:
讀取已接收的郵箱標(biāo)識(shí)符格式;
讀取接收的標(biāo)識(shí)符;
讀取接收的數(shù)據(jù)長(zhǎng)度;
讀取接收的數(shù)據(jù)值。
上位機(jī)通過適配器與CAN總線連接,用VC6.0編寫監(jiān)控軟件,并定義上位機(jī)作為局域網(wǎng)操作服務(wù)器,用戶通過它可以對(duì)各個(gè)伺服單元進(jìn)行操作。
結(jié)語
CAN總線具有良好的網(wǎng)絡(luò)通信功能、高可靠性、抗干擾能力強(qiáng)且經(jīng)濟(jì)實(shí)用,是一種很有前途的現(xiàn)場(chǎng)總線技術(shù)。它的應(yīng)用將為分布式運(yùn)動(dòng)控制提供一種新的解決方案,會(huì)受到人們?cè)絹碓蕉嗟闹匾暋P乱淮闹悄軘?shù)字伺服系統(tǒng)通過CAN總線于開放式數(shù)控系統(tǒng)互聯(lián),是運(yùn)動(dòng)控制領(lǐng)域發(fā)展的一個(gè)重要方向。
評(píng)論