摘 要: 數(shù)控網(wǎng)絡(luò)系統(tǒng)是數(shù)控系統(tǒng)發(fā)展的趨勢(shì),在這類系統(tǒng)中,結(jié)點(diǎn)之間通信的最大要求是高實(shí)時(shí)性、高可靠性,最大特點(diǎn)是通信數(shù)據(jù)量較小,且具有周期性。本論文將根據(jù)數(shù)控網(wǎng)絡(luò)的這些特點(diǎn),詳細(xì)介紹如何在物理層,用VHDL語(yǔ)言設(shè)計(jì)一個(gè)滿足這些要求的模塊,通過(guò)光纖實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信。
關(guān)鍵詞:光纖通信,數(shù)控網(wǎng)絡(luò),CNC, FPGA
1 引言:
數(shù)控技術(shù)是制造業(yè)實(shí)現(xiàn)現(xiàn)代化的戰(zhàn)略性基礎(chǔ)技術(shù),同時(shí)也是提高國(guó)家綜合國(guó)力和國(guó)防現(xiàn)代化的重要戰(zhàn)略性基礎(chǔ)技術(shù)。隨著數(shù)字驅(qū)動(dòng)技術(shù)及各種制造技術(shù)的發(fā)展,提高數(shù)控系統(tǒng)的靈活多變性,可擴(kuò)展性,可移植性、互操作性、互交換性、可重用性已成為迫切的需要。為此,世界各先進(jìn)工業(yè)國(guó)家紛紛將研制開(kāi)放式數(shù)控系統(tǒng)體系結(jié)構(gòu)列入重點(diǎn)發(fā)展計(jì)劃,為適應(yīng)這一發(fā)展態(tài)勢(shì),及進(jìn)一步提高工廠生產(chǎn)的自動(dòng)化,數(shù)控網(wǎng)絡(luò)系統(tǒng)必將成為未來(lái)數(shù)控技術(shù)競(jìng)爭(zhēng)的制高點(diǎn)。而解決在這類網(wǎng)絡(luò)中數(shù)據(jù)的高實(shí)時(shí),高可靠地傳輸,是構(gòu)成數(shù)控網(wǎng)絡(luò)的一個(gè)核心問(wèn)題。本論文將根據(jù)這網(wǎng)絡(luò)的特點(diǎn)集中介紹如何用光纖實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的高速高可靠傳輸。
2 網(wǎng)絡(luò)數(shù)控的特點(diǎn):
目在數(shù)控網(wǎng)絡(luò)系統(tǒng)中,應(yīng)用的協(xié)議有SERCOS(Serial Real-time Communication System)和HSB (High speech Serial Bus)等。
[align=center]

圖1 :SERCOS網(wǎng)絡(luò)拓樸[/align]
SERCOS接口的控制器可以根據(jù)需要接上一個(gè)或幾個(gè)環(huán)結(jié)構(gòu)。圖1的拓樸圖只是一個(gè)例子,由其拓樸結(jié)構(gòu)也可以看出,它糅合使用了主從結(jié)構(gòu)和環(huán)狀結(jié)構(gòu)。
HSB的拓樸結(jié)構(gòu)相對(duì)SERCOS要簡(jiǎn)單些。它主要是主從式結(jié)構(gòu)。
由于數(shù)控系統(tǒng)的特點(diǎn),它對(duì)底層設(shè)備間的數(shù)據(jù)通信要求比較高,必須保證高實(shí)時(shí)性和高可靠性的要求。例如CNC(Computer Numeric Controller)控制器主機(jī)單元和插補(bǔ)軸單元、驅(qū)動(dòng)單元等的連接,這類控制器具有ms級(jí)的較短控制周期,同時(shí)要求較高的通信可靠性,通信錯(cuò)誤將導(dǎo)致較嚴(yán)重的后果,如加工零件的報(bào)廢等。為了在工廠那種比較惡劣的環(huán)境中確保這些要求的滿足,構(gòu)成的數(shù)控網(wǎng)絡(luò)的通信介質(zhì)得用光纖。
這類高實(shí)時(shí)性、高可靠性的底層設(shè)備間典型的通信周期是1~5ms之間,典型的有效通信數(shù)據(jù)量在500~2000bit之間。以上特點(diǎn)決定了CNC控制器通信存在短周期、短數(shù)據(jù)幀等特點(diǎn), 所以在物理層用VHDL在FPGA上設(shè)計(jì)點(diǎn)對(duì)點(diǎn)通信模塊時(shí),必須考慮到這些基本的要求。
不管是構(gòu)成SERCOS還是HSB網(wǎng)絡(luò),為了能夠擴(kuò)展更多的結(jié)點(diǎn),點(diǎn)對(duì)點(diǎn)的有效位速度都應(yīng)該不小于4M,雖然組網(wǎng)要求的有效位速率大于4Mbps,但是由于協(xié)議本身的開(kāi)銷,以及為了保證高可靠性而必須的通信冗余量,這類網(wǎng)絡(luò)中實(shí)際通信位速率要遠(yuǎn)大于有效位速率。其通信效率保守估計(jì)只有15%~30%。
3 光纖通信在數(shù)控網(wǎng)絡(luò)中的實(shí)現(xiàn)
不管是SERCOS還是HSB結(jié)構(gòu)的數(shù)控網(wǎng)絡(luò)系統(tǒng),當(dāng)經(jīng)過(guò)仲裁從站獲得總線控制權(quán)后,主站跟從站的通信就是點(diǎn)對(duì)點(diǎn)的通信。所以依據(jù)數(shù)控系統(tǒng)中傳輸?shù)臄?shù)據(jù)特點(diǎn),實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的高實(shí)時(shí)、高可靠光纖通信是基本環(huán)節(jié)。這一環(huán)節(jié)是在物理層來(lái)實(shí)現(xiàn)的。
在物理層點(diǎn)對(duì)點(diǎn)通信的外圍接口模型如下:
[align=center]

圖2 :外圍接口模型[/align]
該模塊是用VHDL語(yǔ)言在FPGA中實(shí)現(xiàn)的。它的功能是將在數(shù)據(jù)鏈路層打包好的數(shù)據(jù)幀編碼后通過(guò)光纖傳送到總線上去,以及從總線上接收串行的數(shù)據(jù)解碼后交給數(shù)據(jù)鏈路層。物理層的主要工作幾乎都由該模塊來(lái)實(shí)現(xiàn)。
該模塊的具體任務(wù)包括:與數(shù)據(jù)鏈路層接口、與光纖收發(fā)器的接口、數(shù)據(jù)的編解碼、數(shù)據(jù)的并串轉(zhuǎn)換、數(shù)據(jù)過(guò)采樣或數(shù)據(jù)時(shí)鐘恢復(fù)、數(shù)據(jù)字對(duì)齊等功能。
1):與鏈路層接口:
Outport[15..0]:要發(fā)送到總線中的十六位數(shù)據(jù),低八位是高八位數(shù)據(jù)的地址。
inport[15..0]:從總線中接受到的十六位數(shù)據(jù), 低八位是高八位數(shù)據(jù)的地址。
senddata:發(fā)送數(shù)據(jù)信號(hào),當(dāng)給它一個(gè)跳變時(shí),outport中數(shù)據(jù)將進(jìn)行CRC、4b/5b編碼,然后從data_out中串行發(fā)送。
Ack_y:當(dāng)接收到一個(gè)對(duì)方發(fā)送過(guò)來(lái)的,表明對(duì)方已經(jīng)正確接收到數(shù)據(jù)的握手信號(hào)時(shí),它會(huì)發(fā)生一次跳變。
Ack_n:當(dāng)接收到一個(gè)對(duì)方發(fā)送過(guò)來(lái)的,表明對(duì)方?jīng)]有正確接收到數(shù)據(jù)的握手信號(hào)時(shí),它會(huì)發(fā)生一次跳變。
Receive_ok:當(dāng)接收到對(duì)方發(fā)來(lái)的數(shù)據(jù)并且crc校驗(yàn)正確后,它會(huì)有一個(gè)跳變,同時(shí)把數(shù)據(jù)從inport端口輸出,給對(duì)方發(fā)送一個(gè)接收正確的握手信號(hào)幀。當(dāng)接收的數(shù)據(jù)沒(méi)有通過(guò)crc校驗(yàn)時(shí),receive_ok不變,數(shù)據(jù)不輸出,只給對(duì)方發(fā)送一個(gè)接收錯(cuò)誤的握手信號(hào)幀。
2):與光纖的接口:
data_in:發(fā)送的串行數(shù)據(jù)。
data_out:接收的串行數(shù)據(jù)。
3):數(shù)據(jù)編解碼:
發(fā)送數(shù)據(jù)時(shí),先用4b/5b編碼,然后用CRC編碼;接收數(shù)據(jù)時(shí),則反過(guò)來(lái),先用CRC解碼,然后用4b/5b解碼。本模塊采用的循環(huán)碼生成多項(xiàng)式是歐洲標(biāo)準(zhǔn)的CRC-16。
4):數(shù)據(jù)并串轉(zhuǎn)換:
將outport中十六位數(shù)據(jù)編碼后串行輸出,從光纖總線中接收到的串行數(shù)據(jù)解碼后在inport中并行輸出。
5):數(shù)據(jù)過(guò)采樣或數(shù)據(jù)時(shí)鐘恢復(fù):
在異步通信模式下,需要用采樣辦法將介質(zhì)上傳輸?shù)臄?shù)據(jù)進(jìn)行0、1判決,以生成接收端數(shù)據(jù),由于異步模式下缺乏發(fā)送端的相位信息,難以保證采樣點(diǎn)位于數(shù)據(jù)的中間位置,即通信“眼圖”的中部,該處的數(shù)據(jù)有足夠的保持時(shí)間,是最佳判決點(diǎn),因此在接受端采用過(guò)采樣的方法,每個(gè)bit的數(shù)據(jù)周期內(nèi),采樣數(shù)據(jù)5次,且在數(shù)據(jù)發(fā)生0->1的變化時(shí)開(kāi)始采樣,取最中間的采樣結(jié)果作為該次采樣的結(jié)果。
發(fā)送的數(shù)據(jù)幀格式如下:

發(fā)送的幀的類型有:數(shù)據(jù)幀、握手幀(接收正確的握手幀和接收錯(cuò)誤的握手幀),所以在該模塊中必須要解決好它們的互斥和優(yōu)先級(jí)的問(wèn)題。 在本模塊中是用狀態(tài)機(jī)的機(jī)制來(lái)實(shí)現(xiàn)的:給數(shù)據(jù)幀、接收正確握手幀、接收錯(cuò)誤握手幀分別給個(gè)標(biāo)志位:sign_data、sign_ack_y、sign_ack_n。當(dāng)有數(shù)據(jù)幀要發(fā)送時(shí),sign_data置1。當(dāng)發(fā)送完數(shù)據(jù)幀時(shí),sign_data復(fù)位為0,握手幀也一樣,模塊的狀態(tài)為:idle、SendingAck_y、SendingAck_n、SendingData,它們的狀態(tài)跳轉(zhuǎn)關(guān)系如下:
[align=center]

圖3 :狀態(tài)機(jī)跳轉(zhuǎn)圖[/align]
從跳轉(zhuǎn)關(guān)系圖也可以看出,當(dāng)同時(shí)有握手幀和數(shù)據(jù)幀要發(fā)送時(shí),是先發(fā)送握手幀的,這是因?yàn)槲帐謳绕饠?shù)據(jù)幀來(lái)要短得多,所以先發(fā)送它能提高整體傳輸效率。
數(shù)據(jù)鏈路層對(duì)該模塊的操作是:把要發(fā)的數(shù)據(jù)幀發(fā)給ouport端口,然后給senddata一個(gè)跳變沿,此信號(hào)為開(kāi)始發(fā)送信號(hào)。如果收到ack_y握手信號(hào),則發(fā)下一幀數(shù)據(jù),如果接收到ack_n握手信號(hào),表示發(fā)送失敗,則重發(fā),如果在合理的時(shí)間內(nèi)沒(méi)接收到握手信號(hào),則定義為超時(shí),也重發(fā),如果重發(fā)了三次還是失敗,則用中斷方式通知系統(tǒng),通信失敗。這樣就能保證數(shù)控系統(tǒng)中數(shù)據(jù)傳輸?shù)臏?zhǔn)確可靠。不會(huì)出現(xiàn)因某幀數(shù)據(jù)傳輸失敗而導(dǎo)致比較嚴(yán)重的后果,比如工件的報(bào)廢。
4 仿真
該仿真用的采樣時(shí)鐘是100M(用quartusII綜合出來(lái)后實(shí)際的采樣時(shí)鐘還可以更高),從結(jié)果可以看出:從senddata跳變把outport的數(shù)據(jù)鎖存,并開(kāi)始發(fā)送數(shù)據(jù)開(kāi)始,到接收到握手信號(hào)的周期是1.15us,在這十六位數(shù)據(jù)中,低八位是地址,高八位才是有效數(shù)據(jù),所以其有效位速率為6.95M,該有效速度完全能滿足數(shù)控網(wǎng)絡(luò)的要求。
雖然這是仿真結(jié)果,但在實(shí)際數(shù)控系統(tǒng)中運(yùn)行時(shí)的效果跟它是一樣的,該光纖通信模塊在實(shí)際系統(tǒng)中的調(diào)試已經(jīng)結(jié)束。
5 結(jié)束語(yǔ)
在工廠自動(dòng)化越來(lái)越高的今天,用光纖構(gòu)成的數(shù)控網(wǎng)絡(luò)系統(tǒng)必將大大提高中國(guó)企業(yè)的核心競(jìng)爭(zhēng)力。為中國(guó)企業(yè)全面參與國(guó)際競(jìng)爭(zhēng)提供技術(shù)質(zhì)量保證。
參考文獻(xiàn)
[1] M. Week and Jochen Wolf .STEP-NC-The STEP compliant NC Programming Interface:Evaluation and Improvement of the modern Interface [Z].IMS Forum. Ascona/Switzerland,October/2001.
[2] 鄒澤明等. 網(wǎng)絡(luò)數(shù)控系統(tǒng)與企業(yè)信息系統(tǒng)的集成研究[J]. 機(jī)床與液壓,2003,(5).
[3] 陳衛(wèi)福,楊建武. 開(kāi)放式數(shù)控系統(tǒng)及SERCOS接口應(yīng)用技術(shù) .機(jī)械工業(yè)出版社.
[4] 董孝義,王延堯. 新一代光纖通信與同步網(wǎng)原理與發(fā)展[M].天津:天津科學(xué)技術(shù)出版社.
[5] 周凱. 數(shù)控系統(tǒng)體系結(jié)構(gòu)研究 [J] 中國(guó)機(jī)械工程2002, 13 (5).
[6] 黃智偉,王彥. FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐.電子工業(yè)出版社.
[7] 劉小俊等,基于VHDL語(yǔ)言的全雙工異步接收發(fā)送器電路設(shè)計(jì) . 微計(jì)算機(jī)信息 . 2005. Vol.21 No.1 P.156-157