劉 娜,王云寬,陸 浩,鄭 軍,谷曉華
(中國科學院 自動化研究所,北京 100190)
開放、通用的獨立運動控制器成為國內運動控制器發(fā)展的趨勢。它不僅能適應新的加工要求,而且還為與第三方技術或產品進行集成提供了可能[1]。國內開放式運動控制器主要依賴于計算機[2],不依賴計算機的開放式運動控制器,由于不同供應商對開放性的理解不同,通?;诜菢藴实慕涌诤陀布3]。
串行實時通訊協議SERCOS(serial real-time communication specification)是國際標準化的開放式運動控制總線,其在運動控制器上的應用將使運動控制器與符合SERCOS接口標準的產品無障礙互聯,同時大大提高了運動控制器的性能,保證了高度實時性和同步,提高了系統(tǒng)的分布控制能力,是系統(tǒng)走向復雜化及智能化的保證[3]。目前國內成熟的基于SERCOS的獨立運動控制器很少,對SERCOS的研究也多為伺服從站的研究,因此SERCOS主站接口在獨立運動控制器上的集成需要科研人員進一步研究與推廣。
鑒于此,本文提出了在獨立運動控制器上集成SERCOS主站接口的運動控制器開放性方案,并從SERCOS概述、硬件模塊、軟件模塊出發(fā),詳細分析了獨立運動控制器上SERCOS主站接口的設計與實現過程,并給出了參考實例。
SERCOS協議嚴格定義了物理層、數據鏈路層以及報文結構等內容,不但可以傳輸周期數據,如電機控制指令,還可以傳輸非周期數據,如系統(tǒng)參數。所有數據都以3種數據電報的形式進行傳輸,分別為主站數據電報MDT、伺服電報AT和主站同步電報MST[4]。
SERCOS接口通過光纖將主從站連成環(huán)形拓撲結構,如圖1所示。一個環(huán)路上的主站理論上最多可以控制254個伺服裝置,而每個控制單元可控制多個環(huán)路,因此,使用SERCOS總線方便進行分布式多軸控制[5]。
圖1 SERCOS接口拓撲結構圖Fig.1 Topological structure diagram of SERCOS interface
實際應用表明,SERCOS接口具有如下優(yōu)點:高度的實時性;高精度的同步;簡化了控制單元和伺服裝置的連接;簡化了控制硬件;數據分辨率更高,且傳輸無漂移,可用于遠距離控制[6]。
實現協議物理層和數據鏈路層可采用SERCOS接口芯片。常用的有SERCON410A、SERCON410和SERCON816。SERCON816是在SERCON410A和SERCON410B的基礎上開發(fā)出來的,性能和穩(wěn)定性更好。
本設計采用SERCON816作為接口控制芯片。運動控制器的微處理器通過數據、地址、控制總線控制SERCON816的讀寫,并通過中斷信號響應SERCON816的處理請求。運動控制器的總體設計圖如圖2所示。
圖2 運動控制器總體設計圖Fig.2 General layout scheme of motion controller
SERCOS主站接口硬件設計的關鍵是SERCON816電路設計,SERCON816關鍵電路原理圖如圖3所示,主要包括總線接口設計、中斷復位時鐘設計、串行接口設計。
總線接口的設計主要是數據、地址、控制線的連接。 數據線為 D[15:0],地址線為 A[15:0],控制線主要是 ALEL、ALEH、BHEN、MCSN0、MCSN1、PCS1、ADMUX、BUSMODE0、BUSMODE1、BUSWIDTH 和BYTEDIR。本設計采用獨立的地址數據總線 (ADMUX=0,ALEL=1,ALEH=1),Intel總線模式(BUSMODE0=0,BUSMODE1=X),16 位寬數據總線(BUSWIDTH=1),D[7:0]傳輸低字節(jié)(BYTEDIR=0)。本設計只用于16位傳輸,A[0]和BHEN都接地。
SERCON816集成雙端口RAM和控制寄存器,本設計選用組合式片選方法,當CS為低電平時,選中芯片,地址線A12用于區(qū)分訪問雙端口RAM和控制寄存器,A12為0時,訪問雙端口RAM,A12為1時訪問控制寄存器。
圖3 SERCON816電路圖Fig.3 Circuit diagram of SERCON816
SERCON816有 2個中斷輸出引腳,INT0和INT1,微處理器也可以通過查詢控制寄存器查詢中斷情況,本設計通過查詢方式檢查中斷反饋。
若使用硬件復位RSTN,需要使該引腳保持低電平至少50 ns,也可通過軟件復位實現復位,本設計采用軟件方式實現復位。
SERCON816有2個輸入時鐘:SCLK和MCLK。SCLK時鐘頻率需為64 MHz,MCLK最高頻率允許為32 MHz,可以由SCLK進行2分頻或4分頻得到,SCLK的2分頻或4分頻分別由引腳SCLK02和SCLK04輸出,可以將2個引腳的輸出作為MCLK的輸入,同時,為了使SCLK02和SCLK04有效,需將OUTZ引腳接地。
SERCON816的數據傳輸率由引腳SBAUD和SBAUD16以及控制寄存器中的控制位決定,本設計選用4 M的數據傳輸率,對應SBAUD設置為0,SBAUD16設置為1。
串行接口關鍵的功能之一是中繼器功能,其開閉由控制位REPON決定,該位的復位值由引腳TM0和TM1決定,本設計設置為TM0=1,TM1=1,即復位時中繼器打開,但是建立通信時主站中繼器應關閉,防止主從站之間來回中繼。串行發(fā)送接口對應引腳為TxD1~TxD6,用于輸出數據到串行發(fā)送器。串行接收接口對應引腳為RxD,作為串行接收器的輸出。串行接口有幾個指示引腳:錯誤標志引腳L_ERRN,接收標志引腳RECACTN,發(fā)送狀態(tài)標志IDLE,可用于狀態(tài)指示。
串行接口連接的串行發(fā)送器和接收器采用收發(fā)一體的OCM3351,硬件連接方便且可靠,電路圖如圖4所示。
圖4 收發(fā)器電路圖Fig.4 Circuit diagram of transceiver
上述硬件設計構建了SERCOS協議的硬件環(huán)境,在此基礎上,還需要在微控制器上編寫控制驅動程序,實現SERCOS應用層協議。SERCOS接口通訊過程的建立要經過5個階段CP0~CP4。主站寫入階段信息到MST并發(fā)送給各從站,啟動新周期同步控制。在CP0段,主站發(fā)送MST檢查環(huán)路閉合情況,所有從站作為中繼器,若主站收到MST次數不小于10次,則表示環(huán)路閉合,可進入CP1。在CP1段,主站分別發(fā)送MDT給每個從站用于識別對應伺服,MDT中含有待識別伺服地址信息,控制對應伺服的從站收到MDT后與自身控制伺服地址比較,若匹配則處理MDT,并在下一個周期發(fā)送AT應答,沒有被尋址的伺服對應從站作為中繼器工作,收到所有伺服的正確應答后,可進入CP2。在CP2段,主站配置伺服參數,過程類似CP1,參數配置好后,主站發(fā)送IDN127過程命令判斷配置是否正確,從站給出正應答后可切換到CP3。在CP3段,主站傳輸運行參數,廣播發(fā)送MDT,所有從站均會接收并處理MDT,提取屬于自己的數據,并在下一個周期發(fā)送AT應答,最后主站發(fā)送IDN128過程命令檢查配置,配置正確則可切換到CP4。在CP4段,主站將指令寫入MDT并發(fā)送,從站將運行反饋寫入AT并發(fā)送,系統(tǒng)進入正常運行。
本文從實際開發(fā)經驗出發(fā),給出一個具體的參考:控制1個從站,帶1個伺服,地址設置為1,伺服編號為0,使用服務通道0,數據傳輸率為4 M。本例有較強代表性,多個伺服控制可參考本例。
在通訊階段開始之前,要對控制寄存器和雙端口RAM進行初始化。首先,設置要寫入IDN的參數,如表1所示。
表1 IDN參數Tab.1 IDN parameters
其次,對控制寄存器進行設置。主要需要確定與通信相關的參數,如表2所示。
表2 與通信相關參數Tab.2 Parameters related to communication
最后,進行雙端口RAM設置。RAM中包括的數據段有固定段、ATM段、MDTM段等。除了固定段用戶只能配置數值外,其他段在配置數據的同時還要配置地址。關鍵配置如表3所示。
參數均配置好后,就可以進行通訊階段的初始化進而實現正常通信了。每個階段的控制流程圖如圖5、圖6、圖7和圖8所示,按照程序流程圖依次實現通信階段及切換,就可以正常建立SERCOS通信。
表3 RAM配置Tab.3 Configuration of RAM
圖5 CP0~CP1階段流程圖Fig.5 Flow chart of CP0~CP1
圖6 CP1~CP2階段流程圖Fig.6 Flow chart of CP1~CP2
圖7 CP2~CP3階段流程圖Fig.7 Flow chart of CP2~CP3
圖8 CP4階段流程圖Fig.8 Flow chart of CP4
應運動控制器發(fā)展的開放性、通用性趨勢,本文提出了在獨立運動控制器上集成SERCOS主站接口的開放性方案,論文詳細介紹了SERCOS主站的軟硬件設計及實現過程,并重點分析了開發(fā)過程中易出現問題的關鍵細節(jié),給出了應用實例。測試結果表明主站實現了對從站的有效控制。SERCOS在獨立運動控制器上的集成在提高開放性的同時,大大提高了控制器性能,具有較好的實際價值和應用前景。
[1] 張晉達.基于DSP的運動控制器的軟、硬件設計及實現[D].西安:西安電子科技大學,2010.
[2] 徐遠澤.基于DSP的運動控制器系統(tǒng)設計[D].成都:西南交通大學,2012.
[3] 陳衛(wèi)福.開放式數控系統(tǒng)及SERCOS接口應用技術[M].北京:機械工業(yè)出版社,2003.
[4] 張劍.基于SERCOS總線的數控系統(tǒng)高速數字通信技術研究[D].南京:南京航空航天大學,2008.
[5] 王強.基于SERCOS的開放式數字運動控制器的研究[D].成都:電子科技大學,2009.
[6] 郇極.數字伺服通訊協議SERCOS驅動程序設計及應用[M].北京:北京航空航天大學出版社,2005. ■