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

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

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

發送的幀的類型有:數據幀、握手幀(接收正確的握手幀和接收錯誤的握手幀),所以在該模塊中必須要解決好它們的互斥和優先級的問題。 在本模塊中是用狀態機的機制來實現的:給數據幀、接收正確握手幀、接收錯誤握手幀分別給個標志位:sign_data、sign_ack_y、sign_ack_n。當有數據幀要發送時,sign_data置1。當發送完數據幀時,sign_data復位為0,握手幀也一樣,模塊的狀態為:idle、SendingAck_y、SendingAck_n、SendingData,它們的狀態跳轉關系如下:
[align=center]

圖3 :狀態機跳轉圖[/align]
從跳轉關系圖也可以看出,當同時有握手幀和數據幀要發送時,是先發送握手幀的,這是因為握手幀比起數據幀來要短得多,所以先發送它能提高整體傳輸效率。
數據鏈路層對該模塊的操作是:把要發的數據幀發給ouport端口,然后給senddata一個跳變沿,此信號為開始發送信號。如果收到ack_y握手信號,則發下一幀數據,如果接收到ack_n握手信號,表示發送失敗,則重發,如果在合理的時間內沒接收到握手信號,則定義為超時,也重發,如果重發了三次還是失敗,則用中斷方式通知系統,通信失敗。這樣就能保證數控系統中數據傳輸的準確可靠。不會出現因某幀數據傳輸失敗而導致比較嚴重的后果,比如工件的報廢。
4 仿真
該仿真用的采樣時鐘是100M(用quartusII綜合出來后實際的采樣時鐘還可以更高),從結果可以看出:從senddata跳變把outport的數據鎖存,并開始發送數據開始,到接收到握手信號的周期是1.15us,在這十六位數據中,低八位是地址,高八位才是有效數據,所以其有效位速率為6.95M,該有效速度完全能滿足數控網絡的要求。
雖然這是仿真結果,但在實際數控系統中運行時的效果跟它是一樣的,該光纖通信模塊在實際系統中的調試已經結束。
5 結束語
在工廠自動化越來越高的今天,用光纖構成的數控網絡系統必將大大提高中國企業的核心競爭力。為中國企業全面參與國際競爭提供技術質量保證。
參考文獻
[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] 鄒澤明等. 網絡數控系統與企業信息系統的集成研究[J]. 機床與液壓,2003,(5).
[3] 陳衛福,楊建武. 開放式數控系統及SERCOS接口應用技術 .機械工業出版社.
[4] 董孝義,王延堯. 新一代光纖通信與同步網原理與發展[M].天津:天津科學技術出版社.
[5] 周凱. 數控系統體系結構研究 [J] 中國機械工程2002, 13 (5).
[6] 黃智偉,王彥. FPGA系統設計與實踐.電子工業出版社.
[7] 劉小俊等,基于VHDL語言的全雙工異步接收發送器電路設計 . 微計算機信息 . 2005. Vol.21 No.1 P.156-157