付 強,宋 寶,唐小琦
(華中科技大學(xué)國家數(shù)控系統(tǒng)工程技術(shù)研究中心,武漢 430074)
嵌入式橫機是紡織機械中機電一體化、自動化程度較高的一種產(chǎn)品,主要由機械本體、花型設(shè)計軟件和整機控制系統(tǒng)等部分組成[1-2]。國內(nèi)對橫機控制系統(tǒng)的研究起步較晚,相對于國外先進(jìn)的控制技術(shù),還處于消化、吸收、仿制階段。隨著電子技術(shù),特別是嵌入式系統(tǒng)控制技術(shù)的發(fā)展和普及,國內(nèi)對控制系統(tǒng)的研究發(fā)展迅速,已經(jīng)形成成熟產(chǎn)品。目前國內(nèi)橫機控制系統(tǒng)大多采用分布式結(jié)構(gòu),主控制層負(fù)責(zé)人機交互、實時控制以及向機頭驅(qū)動層發(fā)送控制指令,而機頭控制層負(fù)責(zé)機頭部分對控制對象的控制[3]。主控制層與機頭控制層之間采用串行總線通信方案[4]。
橫機在編織過程中是以針信號為同步信號[5]的,每經(jīng)過一針控制系統(tǒng)需解析該針對應(yīng)的花型文件,然后控制相應(yīng)的選針器、電磁鐵等控制對象工作。因為橫機針距很小,同時為了提高生產(chǎn)效率對機頭運行的速度要求也非常高。以12針/寸的機型為例,當(dāng)編織速度為1.2m/s時,可計算得出針響應(yīng)時間為1.76ms。在橫機高速多功能的發(fā)展需求下,針響應(yīng)時間則會更短。因此,對于控制系統(tǒng)通信來說實時性要求非常高。
本文提出采用ARM作為主控制器,F(xiàn)PGA作為機頭從控制器,主控制層與機頭驅(qū)動層之間采用NCUC-Bus現(xiàn)場總線通信設(shè)計方案。利用FPGA的可編程、設(shè)計靈活的特點,將NCUC-Bus協(xié)議集成于FPGA內(nèi)部。不僅實現(xiàn)橫機主、從控制器間高速通信,而且硬件結(jié)構(gòu)簡單,可靈活設(shè)計通信周期和存儲器的大小。NCUC-Bus支持?jǐn)?shù)據(jù)雙向傳輸[6],具有傳輸速率高、傳輸距離遠(yuǎn)、抗干擾能力強和較高的實時性和高可靠性等特點[7],滿足橫機控制系統(tǒng)高速同步通信的要求。
除本節(jié)外,本文結(jié)構(gòu)安排如下,首先介紹NCUCBus現(xiàn)場總線通信機制和橫機控制系統(tǒng)通信需求及結(jié)構(gòu)設(shè)計,其次討論了通信接口的硬件設(shè)計,然后詳細(xì)介紹FPGA內(nèi)部電路及通信流程設(shè)計,最后給出測試方法及結(jié)果。
NCUC-Bus現(xiàn)場總線,是由武漢華中數(shù)控、大連光洋、廣州數(shù)控、沈陽數(shù)控、浙江中控5家公司聯(lián)合研發(fā)的具有自主知識產(chǎn)權(quán)的強實時現(xiàn)場總線協(xié)議。NCUC-Bus網(wǎng)絡(luò)是一種主從式的現(xiàn)場總線網(wǎng)絡(luò),環(huán)路中擁有一個主站設(shè)備(主站)和多個從站設(shè)備(從站)。通信由NCUC-Bus主站發(fā)起,由從站依次進(jìn)行通信數(shù)據(jù)再加工,轉(zhuǎn)發(fā)相鄰從站,最終回到主站[8]。
如圖1所示,本文設(shè)計采用在主控制器上擴展一塊協(xié)處理器FPGA芯片,ARM通過數(shù)據(jù)地址總線訪問FPGA內(nèi)置存儲器的方案實現(xiàn)了ARM存儲器地址的無縫連接。對標(biāo)準(zhǔn)NCUC-Bus協(xié)議進(jìn)行適當(dāng)裁減,配置為一主一從模式,并將主控制器中FPGA設(shè)為NCUC主站,伴隨機頭作往復(fù)運動的從控制器FPGA設(shè)為NCUC從站,分別集成裁剪后的總線協(xié)議程序。橫機在進(jìn)行工作時,主控制器通過NCUC主站下傳當(dāng)前機頭的位置信息,從站計針定位模塊由機頭位置計算得出當(dāng)前的針數(shù),選針控制模塊及時地獲取對當(dāng)前機頭所處這一針出針狀態(tài)的數(shù)據(jù)描述,從而控制選針器作相應(yīng)的操作。
圖1 系統(tǒng)通信結(jié)構(gòu)圖
目前NCUC-Bus通信協(xié)議中有兩種數(shù)據(jù)類型:周期數(shù)據(jù)和非周期數(shù)據(jù)。
對于周期性通信的數(shù)據(jù)幀,數(shù)據(jù)鏈路層將各個從站的數(shù)據(jù)信息依次封裝,組成一個數(shù)據(jù)幀;各從站根據(jù)數(shù)據(jù)流向各個站點的有效數(shù)據(jù)信息的長度,以及站點的有據(jù)信息長度就可以從周期性數(shù)據(jù)的數(shù)據(jù)幀中獲得自己站點有效數(shù)據(jù)的內(nèi)容,從而實現(xiàn)數(shù)據(jù)的幀尋址和識別。
非周期數(shù)據(jù)通信支持兩種傳輸方式,分別為廣播和單地址傳輸通信。NCUC-Bus進(jìn)行廣播傳輸時,通信幀被數(shù)據(jù)鏈路中所有的從站接收,從站依次接收通信幀,向下一個從站轉(zhuǎn)發(fā)通信幀,直到最后一個從站將數(shù)據(jù)傳回NCUC-Bus主站;NCUC-Bus單地址傳輸通信幀僅對通信鏈路中某一從站實現(xiàn)數(shù)據(jù)傳輸。
周期數(shù)據(jù)有效數(shù)據(jù)位10Byte/每周期,非周期數(shù)據(jù)有效數(shù)據(jù)位30Byte/每周期。周期數(shù)據(jù)發(fā)送數(shù)據(jù)量小,因此使用周期數(shù)據(jù)下傳機頭位置、狀態(tài)控制命令等信息,同時上傳報警信號,狀態(tài)反饋,數(shù)據(jù)請求等信息。使用非周期數(shù)據(jù)來下傳大量數(shù)據(jù)。配置NCUC-Bus網(wǎng)絡(luò)周期為0.25ms,則周期通信數(shù)據(jù)最大傳輸速度可達(dá)120 Byte/ms滿足橫機高速實時通信需求。
整個系統(tǒng)結(jié)構(gòu)可以分成應(yīng)用層,驅(qū)動層,協(xié)議層,NCUC-Bus數(shù)據(jù)鏈路層,如下圖2所示:ARM負(fù)責(zé)人機交互接口響應(yīng)、應(yīng)用層數(shù)據(jù)封裝,系統(tǒng)狀態(tài)管理等。FPGA負(fù)責(zé)NCUC-Bus現(xiàn)場總線接口處理,為通信構(gòu)建一條暢通的通信鏈路,實現(xiàn)數(shù)據(jù)正確發(fā)送或接收,保證執(zhí)行模塊能夠及時獲得相應(yīng)數(shù)據(jù),同時產(chǎn)生狀態(tài)標(biāo)志和反饋信息供給ARM查詢。
圖2 系統(tǒng)通信結(jié)構(gòu)及流程圖
通信流程設(shè)計如下:在通信周期內(nèi),ARM檢查發(fā)送緩存,若為空,則按順序?qū)?shù)據(jù)填寫到發(fā)送緩存中。從站檢查發(fā)送隊列,若有隊列為空,則向主站請求數(shù)據(jù);主站收到數(shù)據(jù)請求,按順序?qū)?shù)據(jù)發(fā)出,發(fā)送完后將緩存情況反饋給ARM,等待數(shù)據(jù)寫入;從站收到數(shù)據(jù)存入發(fā)送隊列,等待發(fā)送。ARM通信流程及主、從站通信流程如圖3。
圖3 通信流程圖
硬件平臺采用ARM+FPGA+PHY結(jié)構(gòu),如圖4所示,主要部件包括主控制器ARM,輔控制器 FPGA和光纖端口。ARM選用三星公司的S3C2440A。該芯片采用基于ARM920 T為核心的高速緩沖體系結(jié)構(gòu),最高工作頻率為400MHz,集成了多種通用系統(tǒng)外設(shè)。NCUC主站及從站FPGA分別選用ALTERA公司的CycloneⅡ系列的EP2C8Q208C8N和CycloneⅢ系列的 EP3C16Q240C8。EP2C8Q208C8N芯片是具有8256個邏輯單元,最高工作頻率可達(dá) 260MHz。EP3C16Q240C8芯片具有15408個邏輯單元,最高工作頻率可達(dá)402MHz。
圖4 通信接口原理圖
圖4 中,DATA[15..0]為數(shù)據(jù)總線,ARRR[15..1]為地址總線的一部分,ARM通過讀寫控制總線(WR、RD、CS)實現(xiàn)對FPGA的讀寫控制。協(xié)控制器FPGA作為現(xiàn)場總線和以太網(wǎng)通信鏈路接口的控制核心,構(gòu)建基于NCUC-Bus現(xiàn)場總線的數(shù)據(jù)鏈路,完成數(shù)據(jù)鏈路的建立和維持,實現(xiàn)數(shù)據(jù)的檢錯和糾錯功能。
雙系統(tǒng)嵌入式橫機有8組選針器,每組8個刀片,四系統(tǒng)橫機中選針器數(shù)量更多。
由于每一針數(shù)據(jù)須包括所有選針器的編號和狀態(tài),每針數(shù)據(jù)信息量比較大。為滿足機頭控制實時性要求,必須在機頭從控制器FPGA中建立數(shù)據(jù)隊列。ARM發(fā)送緩存和機頭數(shù)據(jù)隊列都采用雙緩存結(jié)構(gòu),進(jìn)行乒乓操作提高系統(tǒng)效率。
主控制器中FPGA內(nèi)部通信程序模塊主要有:ARM的接口模塊,NCUC-Bus通信接口模塊,系統(tǒng)狀態(tài)管理模塊,緩存狀態(tài)控制及讀緩存模塊,模塊間連接圖如圖5所示。從控制器FPGA內(nèi)部通信模塊與之類似,不再敘述。
圖5 FPGA內(nèi)部程序模塊結(jié)構(gòu)圖
系統(tǒng)狀態(tài)機主要功能為響應(yīng)系統(tǒng)的命令,完成系統(tǒng)狀態(tài)切換。向NCUC從站下傳狀態(tài)控制命令、實時位置以及接收其上傳報警信息等。ARM發(fā)送緩存采用雙緩存(BUF)結(jié)構(gòu),緩存狀態(tài)管理模塊切換雙緩存的數(shù)據(jù)地址總線和控制信號。在自動模式下BUF1和BUF2會被交替選中,默認(rèn)的順序為BUF1->BUF2->BUF1…。讀緩存模塊負(fù)責(zé)將數(shù)據(jù)從BUF中讀出,將讀出的非周期數(shù)據(jù)和發(fā)送標(biāo)志位送給NCUC接口模塊。BUF為FPGA內(nèi)嵌存儲器模塊“altdpram”具有兩套完全獨立的數(shù)據(jù)線、地址線和讀寫控制線并可以根據(jù)需要靈活設(shè)置其大小[9]。采用雙口RAM作為ARM和FPGA通信模塊的數(shù)據(jù)交換接口,實現(xiàn)了高速、可靠的數(shù)據(jù)交換,且具有更強的抗干擾能力[10]。
NCUC-Bus通信接口模塊,構(gòu)建基于NCUC-Bus的數(shù)據(jù)鏈路,主要實現(xiàn)對NCUC網(wǎng)絡(luò)的狀態(tài)控制,包括等待初始化命令、編址、識別、配置和初始化完成狀態(tài)。在編址,識別和配置3個狀態(tài)時NCUC主站下發(fā)網(wǎng)絡(luò)管理幀,初始化完成后下發(fā)周期數(shù)據(jù)幀和非周期數(shù)據(jù)幀。模塊不斷響應(yīng)NCUC主站的中斷信號,進(jìn)行周期數(shù)據(jù)幀和非周期數(shù)據(jù)幀的封裝和解析,將下發(fā)數(shù)據(jù)幀寫入發(fā)送緩沖區(qū),同時將解析后的數(shù)據(jù)上傳給系統(tǒng)。NCUC網(wǎng)絡(luò)狀態(tài)機見下圖6。
圖6 NCUC網(wǎng)絡(luò)狀態(tài)機
將本設(shè)計運用到嵌入式橫機控制系統(tǒng)中,見圖7。在FPGA內(nèi)部模塊電路仿真正確的基礎(chǔ)上,實現(xiàn)主控制器和從控制器的聯(lián)機調(diào)試,通過橫機控制系統(tǒng)測試來驗證整個通信設(shè)計的正確性及可靠性。
圖7 嵌入式橫機控制系統(tǒng)
主、從控制器按照NCUC-Bus協(xié)議采用光纖連接主站和從站,實現(xiàn)總線通信。利用FPGA編譯環(huán)境quartusⅡ內(nèi)置的signaltap工具捕獲和顯示實時信號。NCUC-Bus從站接口模塊各信號的時序圖如下圖8所示??伸`活設(shè)計通信周期和存儲器的大小,滿足不同應(yīng)用場合的需求。實驗表明該通信系統(tǒng)能夠滿足橫機控制系統(tǒng)主控制器與從控制器之間的通信需求。
圖8 NCUC-Bus從站接口時序圖
ARM對主站的模式進(jìn)行配置后使系統(tǒng)處于自動運行模式下,通過串行接口將系統(tǒng)運行過程顯示在電腦超級終端界面上。如圖9所示,系統(tǒng)進(jìn)行初始化,光纖完成初始化系統(tǒng)運行,依次向兩個緩存發(fā)送數(shù)據(jù),從站收到數(shù)據(jù)后控制選針器和步進(jìn)電機的動作。
圖9 系統(tǒng)運行測試圖
本文以基于ARM和FPGA的主從式控制系統(tǒng)為硬件平臺,采用NCUC-Bus現(xiàn)場總線協(xié)議的通訊設(shè)計方案,利用 FPGA的可編程、設(shè)計靈活的特點,將NCUC-Bus協(xié)議集成于FPGA內(nèi)部,不僅滿足嵌入式橫機控制系統(tǒng)數(shù)據(jù)傳輸實時性要求,而且硬件結(jié)構(gòu)簡單,
[1]呂建飛.基于嵌入式ARM全自動橫機的控制系統(tǒng)[J].紡織學(xué)報,2005,26(6):101-103.
[2]黃元順.新型電腦橫機控制機構(gòu)設(shè)計分析[J].針織工業(yè),2003(1):58-59.
[3]張丹.高速多功能橫機控制系統(tǒng)研制[D].杭州:浙江理工大學(xué),2009.
[4]范德和,皮佑國,等.基于DSP和FPGA的運動控制器高速串行通信設(shè)計[J].組合機床與自動化加工技術(shù)2011(9):58-61.
[5]呂建飛,傅建中.新型電腦橫機的開發(fā)研制[J].針織工業(yè),2005(5):13-15.
[6]陳明,宋寶,唐小琦,等.基于DSP和FPGA的網(wǎng)絡(luò)轉(zhuǎn)換網(wǎng)關(guān)[J]. 計算機應(yīng)用,2011,10(31):2617-2620.
[7]王志成,于東,張曉輝,等.數(shù)控系統(tǒng)現(xiàn)場總線可靠通信機制的研究[J]. 機械工程學(xué)報,2011,47(3):152-158,165.
[8]數(shù)控系統(tǒng)現(xiàn)場總線(NCUC-Bus)數(shù)據(jù)鏈路層規(guī)范和服務(wù)定義(草案).
[9]陳瓊,潘禮,黃松,等.FPGA系統(tǒng)設(shè)計與實踐[M].北京:北京電子工業(yè)出版社,2005.
[10]徐向民.數(shù)字系統(tǒng)設(shè)計及VHDL實踐[M].北京:機械工業(yè)出版社,2007.