0 引言
數(shù)控系統(tǒng)的開放化是數(shù)控技術(shù)發(fā)展的一個(gè)重要方向。這個(gè)開放性包括功能的可定制和底層設(shè)備通信總線接口的開放性。借助開放化數(shù)控系統(tǒng)概念平臺(tái),可在功能及性能等方面全面提升數(shù)控系統(tǒng)的延展空間。傳統(tǒng)的數(shù)控系統(tǒng)采用的是并行傳輸控制模式,這種模式在目前一般的數(shù)控加工領(lǐng)域可行,但面對聯(lián)動(dòng)軸數(shù)不斷增加、功能擴(kuò)展不斷增多、各軸空間距離的不斷拓展等諸多更新的要求,這種傳統(tǒng)的工作模式就很難滿足要求。此外,傳統(tǒng)數(shù)控系統(tǒng)一般通過模擬信號線、脈沖信號線、RS232串行通信等方式來實(shí)現(xiàn)底層通信功能。這不僅效率低、而且可靠性差,成為阻礙數(shù)控系統(tǒng)性能提高的瓶頸。設(shè)計(jì)具有高速率、高實(shí)時(shí)性和高可靠性的計(jì)算機(jī)實(shí)時(shí)網(wǎng)絡(luò)數(shù)控系統(tǒng),從而解決底層通信與控制問題,成為必然趨勢。
1 基于光纖的串行通信數(shù)控系統(tǒng)特點(diǎn)
基于光纖的串行通信數(shù)控系統(tǒng)可以有效解決傳統(tǒng)數(shù)控系統(tǒng)存在的上述問題。
首先,在功能方面,通過設(shè)立主站點(diǎn)控制器,借助光纖通信將各從站被控單元逐個(gè)串接起來,從而形成一個(gè)網(wǎng)絡(luò)。站點(diǎn)之間由于可以通過光纖線路連接,空間距離的延伸拓展非常容易。從站站點(diǎn)個(gè)數(shù)理論上限為127個(gè),這使得聯(lián)動(dòng)軸數(shù)也得到可觀的擴(kuò)充。通過在主從站點(diǎn)之間制定通信協(xié)議,后續(xù)擴(kuò)展功能可在基本通信協(xié)議的基礎(chǔ)上不斷添加完善,非常靈活。
其次,在性能方面,光纖通信是近年來發(fā)展十分迅速的新興技術(shù),擁有很多更具優(yōu)勢的特性,如:通信容量大、傳輸距離遠(yuǎn);信號串?dāng)_小、保密性能好;抗電磁干擾、傳輸質(zhì)量佳;光纖尺寸小、重量輕,便于敷設(shè)和運(yùn)輸?shù)?。其中,高速可靠的?shù)據(jù)傳輸為數(shù)控系統(tǒng)性能精度的提高提供了保障。
2 系統(tǒng)底層硬件架構(gòu)
基于光纖通信的數(shù)控系統(tǒng)底層總體架構(gòu)如圖1所示。系統(tǒng)采用研祥智能科技有限公司的PCI04主板作為核心控制器,該主板具有如下特點(diǎn):支持133MHZ前端系統(tǒng)總線,最大內(nèi)存容量高達(dá)512MB,為高速數(shù)據(jù)處理提供了可靠保證;集成了S3 Graph.ics ProSavage4 2D/3D圖形加速控制器,支持CRT和LCD顯示,方便數(shù)控界面的顯示;外圍接口豐富,集成了CompactFlash接口、PS2鍵盤/鼠標(biāo)接口、USB接口、并口,串口等,便于外接擴(kuò)展功能設(shè)備。
圖1基于光纖通信的數(shù)控系統(tǒng)底層架構(gòu)
主從站均用Ahera公司的Cyclone系列FPGA芯片作為通信協(xié)議控制芯片,光纖環(huán)路數(shù)據(jù)傳輸接口則采用武漢電信器件有限公司的LVPECL光收發(fā)合一模塊。另外,F(xiàn)PGA芯片的控制信號及伺服反饋信號均通過光電耦合隔離處理。
3 串行通信協(xié)議設(shè)計(jì)
3.1 串行通信協(xié)議架構(gòu)
通信協(xié)議采用自頂向下的分層模塊化設(shè)計(jì)思想及主從協(xié)議分離設(shè)計(jì)思想。協(xié)議總共分為4層:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、應(yīng)用層。物理層介于通信介質(zhì)和數(shù)據(jù)鏈路層之間,處理傳輸?shù)母鞣N物理信號,包括電信號、光信號等,使得數(shù)據(jù)鏈路層與介質(zhì)無關(guān)。增加協(xié)議的適應(yīng)性。具體完成的功能包括:與數(shù)據(jù)鏈路層接口對接、數(shù)據(jù)的編解碼、數(shù)據(jù)的并串轉(zhuǎn)換、數(shù)據(jù)過采樣或數(shù)據(jù)時(shí)鐘恢復(fù)、數(shù)據(jù)字對齊等。
數(shù)據(jù)鏈路層完成數(shù)據(jù)幀的封包和拆包、CRC校驗(yàn),超時(shí)重發(fā),出錯(cuò)重發(fā)機(jī)制,握手機(jī)制,發(fā)送各種數(shù)據(jù)類型之間的互斥機(jī)制等。總之,對網(wǎng)絡(luò)層而言,該層應(yīng)該是透明化的。
網(wǎng)絡(luò)層負(fù)責(zé)同步、計(jì)時(shí),總線擁有權(quán)切換,數(shù)據(jù)轉(zhuǎn)發(fā)開關(guān)的切換。將通過ISA總線發(fā)送的數(shù)據(jù)打包,添加目的站和源站地址信息;將上傳給ISA總線的信息進(jìn)行地址信息解析并緩存數(shù)據(jù),等待ISA總線讀取。協(xié)議采用的編址方式為靜態(tài)編址,即通過外部硬件設(shè)置站點(diǎn)地址。當(dāng)發(fā)送廣播地址時(shí),各站點(diǎn)均接收數(shù)據(jù)。
應(yīng)用層相當(dāng)于硬件抽象層或軟硬件協(xié)同設(shè)計(jì)抽象層,主要是根據(jù)硬件功能,抽象出一個(gè)個(gè)的C函數(shù)接口,供應(yīng)用軟件調(diào)用。
物理層主要用光纖信號輸入處理模塊Fiberln和光纖信號輸出處理模塊FiberOut來封裝;數(shù)據(jù)鏈路層用Fiberlnout模塊來封裝,它調(diào)用了前面兩個(gè)模塊并加上鏈路層的其他功能;在網(wǎng)絡(luò)層,主站用Mainprotocol封裝,從站用ViceProtocol來封裝。應(yīng)用層實(shí)現(xiàn)的功能相對不多,分別在主站模塊及CNC系統(tǒng)軟件層實(shí)現(xiàn)。主從站協(xié)議實(shí)現(xiàn)的總體架構(gòu)如圖2所示。
圖2主從站協(xié)議架構(gòu)
3.2 協(xié)議通信的主要實(shí)現(xiàn)過程
串行通信協(xié)議采取時(shí)分復(fù)用的介質(zhì)訪問控制方式。在通信周期內(nèi),分配給各站點(diǎn)的時(shí)間長度固定。系統(tǒng)的周期數(shù)據(jù)(實(shí)時(shí)數(shù)據(jù))和非周期數(shù)據(jù)(非實(shí)時(shí)數(shù)據(jù))傳輸時(shí)采用一致的工作時(shí)序,每個(gè)站的時(shí)間片起始位置在時(shí)序上是固定的,一個(gè)單位時(shí)間內(nèi)完成一次主站數(shù)據(jù)的傳輸或者伺服數(shù)據(jù)的反饋。主站時(shí)間片起始時(shí)刻位于通信周期的開始,緊隨同步信號之后。從站時(shí)間片長度設(shè)為單位時(shí)間片長度,從站的起始時(shí)刻根據(jù)自身ID號計(jì)算獲得。
通信周期時(shí)間片的分配如圖3所示。
圖3通信周期時(shí)間片分配
光纖通信環(huán)路內(nèi),主站與從站數(shù)據(jù)通信處理的具體實(shí)現(xiàn)過程如下:
(1)系統(tǒng)上電,主站數(shù)據(jù)處理模塊、各從站數(shù)據(jù)處理模塊內(nèi)部所有通信協(xié)議模塊均初始化。
(2)主站等待來自處理器的相關(guān)指令,當(dāng)收到數(shù)據(jù)傳輸指令后,主站進(jìn)入下一步工作階段。
(3)主站測試通信環(huán)路是否暢通,給整個(gè)環(huán)路發(fā)送檢測信號,若主站能十次正確接收到,則測試成功。主站進(jìn)入下一步工作階段,否則產(chǎn)生錯(cuò)誤中斷,并返回到步驟(2)。
(4)主站向通信環(huán)路廣播同步信號,各個(gè)從站同時(shí)收到同步信號,同步信號在環(huán)路傳輸一圈,若最終主站能夠收到自己發(fā)出的同步信號,表示環(huán)路站點(diǎn)同步成功,進(jìn)入下一步工作階段;若主站不能收到自身發(fā)出的同步信號,將再次發(fā)送同步信號,連續(xù)十次同步失敗,則主站產(chǎn)生相應(yīng)的出錯(cuò)中斷,并返回步驟(2)。
(5)主站和各個(gè)從站收到同步信號時(shí),一個(gè)數(shù)據(jù)傳輸周期開始,主站和各個(gè)從站的時(shí)間計(jì)數(shù)器模塊開始計(jì)數(shù),在通信周期內(nèi),各個(gè)站根據(jù)自己的地址和當(dāng)前計(jì)數(shù)值,確定哪個(gè)時(shí)間槽屬于該站點(diǎn),當(dāng)屬于自己的時(shí)間槽到來時(shí),該站點(diǎn)便擁有總線的數(shù)據(jù)發(fā)送權(quán),向總線發(fā)送數(shù)據(jù);數(shù)據(jù)傳輸周期開始后,主站在屬于自己的時(shí)間槽內(nèi)往從站發(fā)送數(shù)據(jù)。與此同時(shí),主站接收ISA總線數(shù)據(jù)并對數(shù)據(jù)進(jìn)行標(biāo)志、緩存,完成數(shù)據(jù)的編碼,實(shí)現(xiàn)握手機(jī)制,超時(shí)重發(fā)、出錯(cuò)重發(fā),對發(fā)送數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換及對接收的數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換。
(6)主站發(fā)送一幀數(shù)據(jù)后,等待相應(yīng)從站的應(yīng)答信號,若收到從站的負(fù)應(yīng)答信號,表示數(shù)據(jù)沒有被從站正確接收,主站將重發(fā)上一幀數(shù)據(jù)并再次等待從站的應(yīng)答信號,若連續(xù)兩次收到從站的負(fù)應(yīng)答信號,則產(chǎn)生錯(cuò)誤中斷并返回步驟(2);若收到從站的正應(yīng)答信號,表示數(shù)據(jù)被從站正確接收,主站在自己的時(shí)間槽內(nèi)繼續(xù)發(fā)送下一幀數(shù)據(jù),若沒有新的數(shù)據(jù)發(fā)送則等待該時(shí)間槽的結(jié)束。
(7)主站時(shí)間槽結(jié)束后,從站在屬于自己的時(shí)間槽內(nèi)往主站發(fā)送數(shù)據(jù),從站發(fā)送一幀數(shù)據(jù)后,等待主站的應(yīng)答信號,若收到主站的負(fù)應(yīng)答信號,表示數(shù)據(jù)沒有被主站正確接收,從站將重發(fā)上一幀數(shù)據(jù)并再次等待主站的應(yīng)答信號,若連續(xù)兩次收到主站的負(fù)應(yīng)答信號,從站產(chǎn)生錯(cuò)誤中斷并返回等待新一次的同步信號;若收到主站的正應(yīng)答信號,表示數(shù)據(jù)被主站正確接收,從站在自己的時(shí)間槽內(nèi)繼續(xù)發(fā)送下一幀數(shù)據(jù),若沒有新的數(shù)據(jù)可以發(fā)送則等待該時(shí)間槽的結(jié)束。
(8)主站和各個(gè)從站的時(shí)間計(jì)數(shù)器模塊計(jì)數(shù)到設(shè)定值時(shí),當(dāng)前數(shù)據(jù)傳送周期結(jié)束,主站返回步驟(2),等待處理器指令或開始下一次數(shù)據(jù)傳送周期,從站等待主站的同步信號。
以上階段依次進(jìn)行,不斷循環(huán),直到控制器終止傳輸或者環(huán)路傳輸錯(cuò)誤被迫中斷。
3.3 數(shù)據(jù)編碼特點(diǎn)
在曼徹斯特編碼和差分曼徹斯特編碼中,每位中間都有一次電平跳變,因此波特率是數(shù)據(jù)速率的2倍。對于lOOMbps的高速網(wǎng)絡(luò),若采用該類編碼方式,就需要200M的波特率,硬件成本是lOOM波特率硬件成本的5-10倍。
本系統(tǒng)的通信協(xié)議直接對基帶進(jìn)行編碼,以適合光纖作為通信介質(zhì)的傳輸方式。為提高編碼效率,盡量減小硬件開銷,同時(shí)方便同步信號的提取,這里采用4B/5B碼對源碼進(jìn)行編碼。例如,用于同步的報(bào)文起始符為連續(xù)的15個(gè)0,通過4B/5B編碼可以有效地消除源碼中可能存在的這種碼組。4B/5B編碼的規(guī)則如表1所示。
5位二進(jìn)制代碼的狀態(tài)共有25=32種,從中取1的個(gè)數(shù)不少于2個(gè)的狀態(tài)來表示0~F,這樣就可以保證在介質(zhì)上傳輸?shù)拇a能提供足夠多的同步信息。
4 聯(lián)合通信仿真及結(jié)果分析
在QuartusU6.0軟件環(huán)境下設(shè)計(jì)好主從站各模塊VHDL代碼。為模擬主從站通信,設(shè)計(jì)一個(gè)新的頂層文件調(diào)用主從站模塊,用該模塊調(diào)用1個(gè)主站、3個(gè)從站。通過該頂層文件,仿真主站與3從站之間的數(shù)據(jù)通信。
仿真時(shí),由主站給各從站發(fā)送數(shù)據(jù),各從站接收到相應(yīng)的數(shù)據(jù)后,立即將接收到的數(shù)據(jù)重新發(fā)送給主站。根據(jù)各從站接收到的數(shù)據(jù)和主站接收到的數(shù)據(jù),可以判斷環(huán)路通信是否正常。
主站發(fā)往從站1、從站2、從站3的數(shù)據(jù)分別初始化為隨后發(fā)送的數(shù)據(jù)則循環(huán)左移一位,發(fā)送時(shí)間間隔略大于通信周期,為100us(設(shè)置的協(xié)議通信周期為90us)。由結(jié)果可知,該通信協(xié)議能準(zhǔn)確無誤地實(shí)現(xiàn)主從站點(diǎn)間的數(shù)據(jù)傳輸。根據(jù)設(shè)計(jì),該通信協(xié)議能夠達(dá)到的最高有效數(shù)據(jù)傳輸速率為5.33Mb/s。如果對系統(tǒng)時(shí)鐘進(jìn)行倍頻處理,該速率還可以進(jìn)一步提高,如:系統(tǒng)時(shí)鐘頻率提高至150MHZ,最高有效數(shù)據(jù)傳輸速率為8Mb/s。
5 結(jié)束語
本文通過設(shè)計(jì)串行通信協(xié)議,并借助FPGA構(gòu)建主從站,仿真實(shí)現(xiàn)了數(shù)控系統(tǒng)中基于光纖的環(huán)路高速串行通信。該設(shè)計(jì)目前已經(jīng)在實(shí)際數(shù)控系統(tǒng)中得到成功運(yùn)用,其簡便靈活、高實(shí)時(shí)高穩(wěn)定的性能很好地解決了傳統(tǒng)數(shù)控系統(tǒng)存在的不易擴(kuò)展、通信可靠性不高等問題。該設(shè)計(jì)為數(shù)控系統(tǒng)的開放性研究提供了一個(gè)很好的發(fā)展方向,后期可進(jìn)一步通過優(yōu)化VHDI.代碼,改善通信部分細(xì)節(jié),縮短通信周期等方式提高其通信性能。
(審核編輯: 智匯胡妮)
分享