蔣明柯,皮佑國
(華南理工大學 自動化科學與工程學院,廣州 510640,China)
隨著數(shù)控系統(tǒng)的開放化與小型化,以主從控制器總線通訊模式為核心的計算機數(shù)控系統(tǒng)成為數(shù)控系統(tǒng)的重要發(fā)展方向[1]。串行通信由于傳輸線少,通信簡單,傳輸距離遠,是工業(yè)控制領域,尤其是分布式控制系統(tǒng)中的傳統(tǒng)通信方式[2],因此將串行通信作為數(shù)控系統(tǒng)中主從控制器間的通信方式,在某些應用場合具有不可比擬的優(yōu)勢。
目前,在數(shù)控系統(tǒng)中常見的串行通信方式主要有:基于RS-232/RS-485 總線標準和CAN 總線。由于RS-232 串行通信數(shù)據(jù)傳輸速率低、傳輸距離短、傳輸信號易受環(huán)境干擾,難以滿足數(shù)控機床惡劣的工作環(huán)境對系統(tǒng)高可靠性的要求,更難以滿足中高檔數(shù)控系統(tǒng)在很短的時間內傳輸大量數(shù)據(jù)的要求。而在“運動控制器+嵌入式處理器”數(shù)控系統(tǒng)中,運動控制器主要用于單機數(shù)控系統(tǒng),因此,基于現(xiàn)場總線(如CAN 總線)的通信方式在此顯然不適用,也沒有必要。因此,將RS-485 運用于數(shù)控系統(tǒng)中具有積極的應用意義。
RS-485 標準只是一個物理的通信接口規(guī)范,它只是規(guī)定了物理接口的機械、電氣特性等,沒有對通信中的鏈路連接、網(wǎng)絡訪問等做出規(guī)定[3],而在實際應用中,往往要考慮到數(shù)據(jù)傳輸?shù)陌踩?、可靠性、?guī)范性、通信速率等因素。為了滿足這些特殊要求,本文結合實驗室自行研制的數(shù)控系統(tǒng),設計了一種基于RS-485 總線標準的串行通信協(xié)議,并討論了其軟硬件的實現(xiàn)。
本串行總線數(shù)控系統(tǒng)采用ARM 作為主控制器、DSP 為從控制器,構成主從式二級控制總體結構,系統(tǒng)硬件組成如圖1 所示。系統(tǒng)以ARM 為上位機,上位機程序提取輪廓信息后轉化為G 代碼,進行相應的數(shù)據(jù)處理后通過串口向下位機發(fā)送數(shù)據(jù)和指令,而DSP 根據(jù)通信協(xié)議通過不停地讀取FPGA 中fifo 的數(shù)據(jù),從而獲得運動控制器所需的運動控制指令,實現(xiàn)軌跡規(guī)劃、插補計算、位置控制、主機命令處理和控制器IO 管理,同時下位機通過該串口向上位機發(fā)送運動控制器的當前狀態(tài)和相關控制參數(shù)。運動控制器通過伺服接口與伺服驅動器連接,通過脈沖輸出控制三相交流永磁同步電機實現(xiàn)系統(tǒng)要求的運動,并通過編碼器接口獲得運動位置反饋信息,再通過串口把信息傳到上位機,在液晶顯示模塊上顯示出刀具的實時坐標位置。
圖1 數(shù)控系統(tǒng)框圖
RS-485 是工業(yè)界使用最為廣泛的雙向、平衡傳輸線標準接口,具有傳輸距離遠(最大傳輸距離為1200m),傳輸速率快(1200m 時為100kbit/s),開發(fā)成本低等優(yōu)點,將RS-485 總線接口用于數(shù)控系統(tǒng)控制面板I/O 數(shù)據(jù)傳輸可在滿足數(shù)控系統(tǒng)的實時性要求下大大降低開發(fā)成本[4]。
本系統(tǒng)的主處理器ARM 與從處理器DSP 之間的串行通信采用RS-485 總線標準,其串口硬件線路如圖2 所示。為了滿足數(shù)控系統(tǒng)的實時性要求,系統(tǒng)采用FPGA 芯片代替?zhèn)鹘y(tǒng)專業(yè)通信芯片,發(fā)揮FPGA 可編程、靈活定制電路的優(yōu)點,將通用異步收發(fā)器(UART)的核心功能集成到FPGA 內部,不僅滿足數(shù)控系統(tǒng)數(shù)據(jù)傳輸高速性要求,而且硬件結構簡單,可靈活設置接收和發(fā)送先進先出存儲器(FIFO)的大小,滿足不同應用場合的需求[5]。
圖2 串口硬件框圖
RS-485 標準采用平衡發(fā)送和差分接收方式來實現(xiàn)通信:在發(fā)送端TXD 將串行口的TTL 電平信號轉換成差分信號A、B 兩路輸出,經(jīng)傳輸后在接收端將差分信號還原成TTL 電平信號。兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強的抗共模干擾的能力,接收靈敏度也相當高,并能實現(xiàn)多點互連,非常便于多器件的連接,可以實現(xiàn)全雙工通信,而且在短距離情況下具有比RS232 標準高得多的傳送速度[6]。為了滿足RS-485 電平標準,考慮到數(shù)控系統(tǒng)工業(yè)場合的電磁干擾,設計電路時選用電平接口芯片:Maxim 公司的Max3490 將FPGA 中IO 口3.3V 的電平轉換為RS-485 標準電平。通過FPGA 和Max3490 芯片,可方便地實現(xiàn)高速串行通信硬件電路。根據(jù)以上的串口硬件電路,本文設計了一種數(shù)控系統(tǒng)中基于RS485 標準串行通信協(xié)議。
上位機和下位機之間如何進行數(shù)據(jù)傳輸,怎樣提高通信的效率與可靠性,以及對通信過程中數(shù)據(jù)格式的約定、故障處理等都需要一套規(guī)范的通信協(xié)議。而一套規(guī)范的通信協(xié)議要從多個方面加以考慮,既要求功能完備、結構簡單,又要求具有兼容性和可擴充性,并且盡量標準化。本系統(tǒng)采用的通信協(xié)議是在充分考慮數(shù)控系統(tǒng)本身功能特點的基礎上制定的,采用基于幀的協(xié)議設計思想,嚴格規(guī)定了數(shù)據(jù)幀格式與幀格式中的位數(shù)。
數(shù)據(jù)幀中包含了多個組成部分,包括幀頭、地址號、幀長度、幀類型、命令碼、數(shù)據(jù)序列、校驗碼及幀尾。根據(jù)具體的場合幀內容可以有所刪減。在本系統(tǒng)中串行通信協(xié)議幀格式如表1 所示。
表1 通信協(xié)議幀格式
幀頭:表示本數(shù)據(jù)幀屬于串口通信協(xié)議,幀頭觸發(fā)通信,用于同步控制,并為是否接收此數(shù)據(jù)幀的標志,本系統(tǒng)約定值為0xAA。
地址號:表示與上位機進行串口通信的下位機號,適用于主從式分布系統(tǒng)。在本系統(tǒng)中,只有一個下位機,所以直接約定地址號為1。在協(xié)議中引入地址號主要是為了方便通信協(xié)議的移植和擴展。
幀長度:除幀頭和幀尾外數(shù)據(jù)幀中所有的字節(jié)數(shù),該標志可以方便ARM 與DSP 在數(shù)據(jù)傳輸過程中對所要發(fā)送或接收的數(shù)據(jù)個數(shù)進行識別,以便能準確地收發(fā)數(shù)據(jù)信號。
幀類型:表明當前幀的類型,是數(shù)據(jù)幀的識別標志,詳細內容如表2 所示,如需要可進行適當擴展。
命令號:上位機要求運動控制器執(zhí)行的函數(shù)代號,即G 代碼操作的標志碼,如0x01 代表進行直線插補的功能碼。
數(shù)據(jù)序列:通信中需要傳輸?shù)臄?shù)據(jù)內容。數(shù)據(jù)序列的內容因命令號的不同而有所不同。由于串口通信中只能一個個字節(jié)的發(fā)送,所以發(fā)送方發(fā)送浮點數(shù)和多字節(jié)整數(shù)數(shù)據(jù)時,需先把它們拆分成多個字節(jié),然后對每個字節(jié)進行發(fā)送;同理,接收方收到數(shù)據(jù)后,可以根據(jù)浮點數(shù)和整數(shù)的數(shù)據(jù)格式將其轉換成實際的數(shù)值。
校驗碼:這是對前面數(shù)據(jù)內容的校驗結果,接收方通過判斷校驗碼來確定傳送的數(shù)據(jù)是否正確。在本系統(tǒng)中,對除幀頭和幀尾外的所有字節(jié)進行CRC16 校驗。
幀尾:表示本幀數(shù)據(jù)的結束,本系統(tǒng)約定值為0xBB。
表2 幀類型表
控制幀:實現(xiàn)上位機對運動控制器的控制。
反饋幀:運動控制器向上位機回發(fā)對應于相同命令號的反饋信息。
響應幀:運動控制器接收到上位機發(fā)送的控制幀后需回發(fā)響應幀,如果數(shù)據(jù)接收正確,要求上位機發(fā)送下一幀數(shù)據(jù);否則要求重發(fā)上一幀數(shù)據(jù)。
本系統(tǒng)采用標準異步通信模式,該通信模式的數(shù)據(jù)格式如圖3 所示。
圖3 標準異步通信數(shù)據(jù)格式
每幀數(shù)據(jù)由10 位組成,即1 位起始位,8 位數(shù)據(jù)位,1 位停止位。
差錯控制用于傳輸數(shù)據(jù)的錯誤檢查和錯誤糾正,以保證數(shù)據(jù)傳輸?shù)臏蚀_性。在信息的傳遞過程中,由于硬件或軟件的種種原因,傳送的信息發(fā)生錯誤在所難免。因此,要檢查和修復數(shù)據(jù)傳輸錯誤,就必須引入額外的冗余信息,程序通過比較數(shù)據(jù)中的冗余信息來發(fā)現(xiàn)錯誤,協(xié)議中的這部分冗余信息就是校驗碼。該協(xié)議采用CRC16 校驗作為串行檢測糾錯的一種手段。
本系統(tǒng)采用應答方式進行差錯控制,即接收方向發(fā)送方發(fā)回響應幀,作為傳輸?shù)恼_或錯誤確認,發(fā)送方接收到確認后就可決定是否重發(fā)。但有可能會出現(xiàn)這種情況,傳輸中響應幀丟失,發(fā)送方會無休止的等待接收方的確認。我們在軟件中引入定時器來解決這個問題,超過一定時間,發(fā)送方認為幀丟失,需要重發(fā)。本系統(tǒng)約定重發(fā)次數(shù)超過3 次,則認為串行通信出現(xiàn)故障,上位機進行通信故障報警。
TMS320C6713 是美國TI 公司于1997 年推出的C6000 系列中的一款32 位高速浮點型DSP。本系統(tǒng)選用TMS320C6713BGDP-225 作為從控制器,其工作主頻可達225Mhz,單指令執(zhí)行周期為4.4ns,具有強大的定點浮點運算能力,運算速度高達1800MIPS/1350MFLOPS[7],適用于高速高精度機床控制系統(tǒng)的實時控制。
DSP 和FPGA 作為運動控制器是數(shù)控系統(tǒng)實現(xiàn)各種運動控制的核心部件。它通過串行通信接收主控制器經(jīng)過譯碼、編譯程序等所得的功能號數(shù)據(jù),進行相應的直線和圓弧的精插補、加減速控制,并通過與各類伺服系統(tǒng)的位置、速度反饋信號比較,從而控制機床加工中心的各個動作并進行協(xié)調。因此下位機通信軟件的設計主要由初始化程序和循環(huán)查詢程序組成,各部分軟件組成及其功能描述如表3 所示。
表3 軟件功能描述
本系統(tǒng)中TMS320C6713 微處理器的串行通信采用查詢的方式進行,通過DSP/BIOS 設置主循環(huán)周期為0.2ms。在每個主循環(huán)周期中,DSP 查詢來自通信接口FPGA 中接收fifo 的空信號標志,若不為空,則讀取fifo 中的數(shù)據(jù),并進行相應的操作;若為空,則處于查詢等待狀態(tài)。其中DSP 串行通信中循環(huán)查詢主程序的流程圖如圖4 所示。
圖4 DSP 串行通信循環(huán)查詢主程序流程圖
隨著嵌入式技術的日益成熟,嵌入式數(shù)控機床已經(jīng)在數(shù)控領域初露鋒芒,除了具有成本低、體積小的特點外,還有高集成度和高可靠性的優(yōu)勢。本實驗室自行研制的嵌入式數(shù)控系統(tǒng)采用“ARM+DSP”主從式雙CPU 模式,其中主控制器選用S3C2440A 芯片,它是SAMSUNG 公司推出的一款ARM9 微控制器,最高頻率可達400Mhz,內部集成SDRAM 和FLASH 等存儲器,功能接口豐富,是一款高速、低功耗、高性能的處理器[8]。上位機經(jīng)過加工代碼編譯、軌跡規(guī)劃等預處理,通過串行通信向DSP 發(fā)送控制命令,要求運動控制器實時的完成軌跡插補、加減速控制等任務;同時ARM需要及時檢查接收DSP 反饋回來的機床各部分狀態(tài)信息和故障信息,以實現(xiàn)對機床和刀具狀態(tài)的顯示。上位機的串行通信程序流程圖如圖5 所示。
圖5 上位機串行通信程序流程
在本實驗室自行研制的嵌入式數(shù)控系統(tǒng)中,使用屏蔽雙絞線實現(xiàn)人機接口(HMI)板和運動控制板之間的硬件連接,測試上位機ARM 與下位機DSP 間串行通信協(xié)議的可行性,其實驗平臺如圖6 所示。其中,HMI 板通過JTAG 接口與調試主機1 相連,運動控制板通過JTAG 接口與調試主機2 相連,從而搭建ARM 與DSP 之間串行通信協(xié)議的調試平臺。
圖6 串行通信協(xié)議實驗平臺
HMI 板經(jīng)ARM 處理器翻譯一段G 代碼獲得功能號代碼等數(shù)據(jù),并按照規(guī)定的協(xié)議格式,通過RS-485總線發(fā)送給運動控制器,運動控制器執(zhí)行相應的插補操作。通過CCS 軟件讀取相關變量和利用示波器采集運動控制器的輸出脈沖波形來檢驗通信協(xié)議的準確性。運動控制器中設置插補中斷周期為1ms,脈沖當量為1um,使用常規(guī)的梯形加減速曲線執(zhí)行直線插補。
為檢驗系統(tǒng)的傳輸性能,經(jīng)過多次實驗,主從控制器以3.125Mbps 的波特率進行通信,HMI 板翻譯1000 條G 代碼后傳送給運動控制板進行直線插補,通過CCS 軟件讀取相關變量可知運動控制板正確接收的G 代碼條數(shù)為1000,即誤碼率或丟包率為0%。運動控制器對接收到的其中一條G 代碼命令G1X12.334Y-10.854Z-7.925F2000 進行插補運算,讀取各個插補周期計算得到的速度,繪制成曲線如圖7 所示;利用示波器采集運動控制板的三軸輸出脈沖波形如圖8 所示。由此驗證了ARM 與DSP串行通信協(xié)議的可行性。
圖7 梯形加減速進給速度曲線圖
圖8 三軸脈沖輸出波形圖
本文討論了一種基于RS-485 總線標準的ARM 與DSP 串行通信協(xié)議的設計,并分別介紹了其硬件連接和軟件設計。利用現(xiàn)場可編程邏輯門陣列,實現(xiàn)了串行通信接口電路硬件功能的集成化,縮短了開發(fā)周期;使整個系統(tǒng)結構簡單,靈活開放、成本低廉。該串行通信協(xié)議已成功運用于本實驗室自行研制的嵌入式數(shù)控系統(tǒng)。實驗結果表明,該通信協(xié)議數(shù)據(jù)傳輸可靠穩(wěn)定,實時性強,檢錯效果好,達到了預期的設計要求。
[1]吳星明,陳偉海,于守謙,等. 基于PCI 總線的主從式多軸控制器開發(fā)[J]. 北京航空航天大學學報,2008,34(1):112-116.
[2]曹豪英. 基于RS-485 串行通信標準的數(shù)控系統(tǒng)運動控制器的設計[D]. 北京:北京交通大學,2006.
[3]陽憲惠. 工業(yè)數(shù)據(jù)通信與控制網(wǎng)絡[M]. 北京:清華大學出版社,2003.
[4]謝劍,金永喬,等. 高檔數(shù)控系統(tǒng)中的RS485 串行總線接口研究與開發(fā)[J]. 組合機床與自動化加工技術,2010(5):22-25.
[5]范德和,皮佑國. 基于DSP 和FPGA 的運動控制器高速串行通信設計[J]. 組合機床與自動化加工技術,2011(9):58-62.
[6]葉健敏,高志,等. 基于單片機控制小型開放式數(shù)控平臺設計[J]. 機械設計與制造,2010(8):183-184.
[8]S3C2440A 32-bit CMOS Microcontroller User’s Manual.Samsung Electronic,2004.