CAN現場總線技術的數字交流伺服系統研究
現場總線技術解決了傳統總線插板I/O模塊多,干擾嚴重、系統軟件編寫復雜、系統硬件兼容性差等問題。大大減輕了現場信號連接的繁瑣與費用,提高了信號傳輸的精度與靈活性,給安裝、調試和維護帶來諸多方便,為現場用戶帶來巨大的經濟效益,代表著自動化領域發展的一個重要方向[1]。
本文引用地址:http://www.104case.com/article/201612/329033.htmCAN總線技術
隨著工業現場控制和自動化技術的不斷進步,傳統的通信模式已不能滿足現代工程需要。CAN(ControllerAreaNetwork)總線是80年代初德國Bosch公司為解決現代汽車中眾多控制與測試儀器間數據交換而開發的一種串行數據通信協議,是一種性能先進、價格低廉、保密性好的現場總線(FieldBus)技術,能夠有效支持分布式控制或實時控制串行通信網絡[2]。CAN總線中各節點都有權利向其它節點發送信息。通信介質可以是雙絞線、同軸電纜或光纖,主要技術特點有:
是一種多主總線
網絡上任一個節點均可在任意時刻主動向網絡上其它節點發送信息,多主站依據優先機制進行總線訪問;
非破壞性基于優先權總線仲裁技術
采用非破壞性基于優先權總線仲裁技術結構,大大節省總線沖突仲裁時間,在重負荷下表現出良好性能;
具有多種傳送數據功能
具有點對點,一點對多點(成組)及全局廣播傳送數據功能;
節點數目多
直接通訊距離最遠可達10km(傳輸速率為5kbps),最高通訊速率可達1Mbps(傳輸距離為40m);
可靠性高
數據鏈路層采用短幀結構,實時性高,糾錯效果好,每幀信息都有CRC校驗及其它校驗措施,數據出錯率低,可靠性高;
故障自動判別
發送期間若丟失仲裁或因出錯而遭破壞的幀可自動重發,暫時錯誤和永久性故障節點判別及故障節點自動脫離CAN總線。
CAN總線系統由CAN網絡節點、轉發器節點和上位機構成。總線技術遵循現場總線協議,將分布在不同位置,用途各異的測量儀表、控制設備互聯成網,并可接入Intranet和Internet網絡。現場總線技術的關鍵標志是它能支持雙向多變量、總線式全數字通訊。傳統4~20mA模擬直流回路只能在一根兩芯電纜中單向傳輸一個參數,隨著系統結構的日益復雜和信息量的增加,4~20mA電流環傳輸成為制約信息傳輸的瓶頸,所以現場總線替代 4~20mA模擬信號標準已成為控制系統發展的必然趨勢。
基于CAN總線技術的多機伺服系統
CAN總線控制網絡結構
基于CAN總線技術的多電機伺服控制系統網絡結構如圖1所示,系統由上位機、CAN總線、現場伺服單元節點組成。數控系統上位機通過CAN總線控制網絡節點任一伺服單元,數字伺服與數控系統之間數據傳輸可分為實時性數據信息和非實時性數據信息兩類。實時性數據指參與控制器實時位置、速度、轉矩等控制指令和反饋信息,傳輸速度要求較高。非實時性數據主要是指控制器參數設置、功能設定、診斷功能、伺服狀態與報警等信息,傳輸速度相對較低。
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
LACLMCRB
;配置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郵箱內容
評論