時間:2006-09-15 15:10:00來源:JIANGF
CAN接口適配器是上位機與伺服單元數據傳輸和控制的橋梁,伺服單元采集現場的數據通過總線傳給上位機,實現實時監視和控制。
數字伺服系統網絡硬件與軟件設計
CAN總線接口硬件電路
數控系統上位機采用研華公司PCL-841卡實現CAN總線通訊,伺服驅動系統采用TI公司TMS320LF2407A片內CAN控制器[3]。該控制器全面兼容CAN2.0B協議,具有標準和擴展標識符,有數據幀和遠程幀,2407A片內CAN總線控制器與CAN物理總線接口采用82C250驅動器芯片。82C250采用阻抗為120Ω雙絞線作通訊介質,信號采用差動接收和發送模式,抗干擾能力強,最高通訊速率可達1Mbps。有三種不同工作方式:高速、斜率控制和待機。本系統采用斜率控制,以降低射頻干擾。為了增加抗干擾能力,保護CAN控制器,在TMS320LF2407A與82C250之間加高速光電隔離器,光電隔離器采用HP公司HCPL-2630芯片,速度為10MHz,電路如圖2所示。
CAN總線網絡控制軟件包括網絡應用層協議、節點功能流程和編碼等的配置和設計[4]。
郵箱初始化配置
包括對管腳的配置、波特率的設定、郵箱的收發配置等。首先,配置MCRB寄存器,將IOPC6和IOPC7引腳配置成特殊功能,即CANRX和CANTX;其次,配置MDER寄存器,即配置郵箱使能和郵箱2~3功能;最后,對屏蔽ID寄存器進行配置,可以屏蔽任意位ID,這種寄存器只對接收郵箱起作用。
;CAN郵箱初始化配置
CAN_INIT:
LDP#DP_PF2
LACL MCRB
;配置CAN引腳
OR#0C0H
;IOPC6,IOPC7配置為特殊功能:CANRX,CANTX
SACLMCRB
;CAN位定時器配置
LDP #DP_CAN
SPLK#0040H,MDER;MD2 =1,MBX2為發送方式
SPLK#0FFFFH,CAN_IFR
;清全部CAN中斷標志
SPLK#07FFFH,LAM1_H
;設置郵箱2、3屏蔽ID寄存器0
SPLK#0FFFFH,LAM1_L;則ID必須匹配
波特率設定
主要與3個寄存器有關,即SCSR1(系統控制和狀態寄存器1)、BCR1(位配置寄存器1)和BCR2(位配置寄存器2)。配置前要確定波特率和晶振頻率,當對位定時器進行配置時,CAN控制器必須處于復位模式下,即CCR=1。
SPLK #1000H,MCR;CCR=1改變配置請求
W_CCE:BITGSR,#0Bh;等待改變配置使能
BCNDW_CCE,NTC;當CCE=1時即可配置BCR2、BCR1寄存器
SPLK#01H,BCR2;波特率預分頻寄存器
SPLK#0033H,BCR1;波特率設置為1M
LACLMCR
郵箱收發配置
在數據域改變前首先要禁用郵箱,然后置位數據域,改變請求。再設置郵箱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控制器初始化程序、接收郵箱與發送郵箱設置、發送程序、接收程序。
發送程序只需要設定發送控制寄存器相應位;接收程序要完成:
讀取已接收的郵箱標識符格式;
讀取接收的標識符;
讀取接收的數據長度;
讀取接收的數據值。
上位機通過適配器與CAN總線連接,用VC6.0編寫監控軟件,并定義上位機作為局域網操作服務器,用戶通過它可以對各個伺服單元進行操作。
結語
CAN總線具有良好的網絡通信功能、高可靠性、抗干擾能力強且經濟實用,是一種很有前途的現場總線技術。它的應用將為分布式運動控制提供一種新的解決方案,會受到人們越來越多的重視。新一代的智能數字伺服系統通過CAN總線于開放式數控系統互聯,是運動控制領域發展的一個重要方向。標簽:
![]()
上一篇:現場總線技術在電廠的應用思考
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-09-08
2025-08-06
2025-07-08
2025-06-30
2025-06-16
2025-06-09