






摘要:介紹了一種光纖收發器芯片中基于現場可編程邏輯門陣列(field programmable gate array,FPGA)的TS-1000 協議處理器的設計與實現。首先,介紹了TS-1000 協議的幀結構和工作原理;其次,采用自頂向下的方法對TS-1000 協議處理器進行總體設計與模塊劃分,同時使用Verilog 硬件描述語言完成各模塊的電路設計;最后,對相應模塊進行仿真并且采用NCVerilog 工具和XC3S500E-4PQ208 芯片進行FPGA 驗證。驗證結果顯示,基于FPGA 的TS-1000 協議處理器能夠實現數據轉換、管理幀處理等功能。
關鍵詞:TS-1000 協議;網絡管理;環回測試;現場可編程邏輯門陣列
中圖分類號:TN79+1;TP391.4 文獻標識碼:A
0 引言
隨著光纖通信技術的快速發展,用戶逐漸考慮用“光纖到戶”和“光纖到桌面”來代替傳統的網絡布線方式。在光纖通信中,光纖收發器是一種將短距離電信號和長距離光信號進行互換的以太網傳輸媒體轉換單元。鑒于通信業務量持續攀升,組網復雜度也日益增加,為確保網絡設備穩定運行,對網絡管理功能的需求變得愈發迫切。
TS-1000 協議是日本為推進其光纖入戶(fiberto the home,FTTH) 戰略而制定的標準協議[1]。TS-1000 協議是一種用于100 Mbit/s 單模光纖雙向光口的通信協議,使用該協議可以開展網絡管理和環回測試工作,從而實現對以太網連接設備的狀態監測和遠程控制。
1 TS-1000協議概述
1.1 TS-1000 協議幀結構
TS-1000 協議的管理幀主要有5 個字段,分別為F、C、S、M、E。其中,F 字段為管理幀的前導碼,在幀檢測中負責定位幀頭;C 字段為控制信息,用于傳遞管理幀的各種命令;S 字段為狀態信息,用于報告設備的當前狀態;M 字段為用戶碼和模塊編號信息;E 字段為管理幀的校驗值,通常采用CRC-8 校驗算法進行計算。圖1 展示了TS-1000協議在介質無關接口(media independent interface,MII)環境下使用的管理幀格式。表1 為管理幀各比特的功能說明。
1.2 TS-1000 協議工作原理
在光纖通信網中,為了便于網絡管理,通信設備被劃分為中心端和終端。TS-1000 協議定義了多種類型的管理幀,中心端設備利用這些管理幀獲取終端的設備狀態,也可以實現對終端設備的環回檢測。
(1)狀態監測功能。當中心端設備想獲取終端設備的狀態時,它會向終端發送請求終端狀態的管理幀(C15 ~ C0=000000000100110);終端接收到該狀態請求幀后,會將其狀態信息放在S 字段,然后通過狀態應答幀(C15 ~ C0=000000000101100)將狀態信息發送至中心端。另外,當終端狀態發生變化時,它會向中心端自動發送狀態指示幀(C15 ~ C0=0000001000001000),以通知中心端自身的相關變化。
(2)環回檢測功能。當中心端對終端進行環回檢測時,其檢測過程如圖2 所示。
首先,由中心端發出環回檢測開始的請求管理幀(C15 ~ C0=0000000100001010), 并啟動T1 定時器。終端接收到中心端發送的開始請求管理幀后,進入環回工作狀態,此時啟動T2 定時器,并向中心端發送開始環回請求的應答幀(C15 ~ C0=0000000100001100)。T1 和T2 是用于在測試過程中發生異常時強制退出環回測試的超時計數器。正常情況下,中心端在收到終端的開始應答管理幀后,就會發送用于環回測試的測試幀。在所有測試幀發送完畢后,如果所有測試幀均被正確環回,中心端將報告環回測試結果正確;如果檢測出環回測試幀存在錯誤,中心端則報告環回測試結果錯誤。然后,中心端會發送結束環回檢測的請求幀(C15 ~ C0=0000000000000110), 終端收到該請求幀后,將關閉T2 定時器,同時退出環回模式,并向中心端發送結束環回檢測的應答幀(C15 ~ C0=0000000000001100)。中心端收到應答幀后,將關閉T1 定時器,至此環回檢測過程結束。
2 TS-1000協議處理器的總體設計
在光纖收發器的芯片中實現TS-1000 協議的功能,需要根據芯片的功能定義和應用情況制定具體方案。根據系統需求,TS-1000 協議處理器能完成中心端或終端設備各種TS-1000 管理幀的發送和接收工作。其還能響應中心端的請求,及時獲取并報告終端狀態。此外,處理器還需要具備自動環回測試功能和軟件環回測試功能。在自動環回測試中,當芯片管腳AUTO_TEST 上有一個0→1 的跳變時,TS-1000 協議處理器能夠根據環回測試流程自動進行各種管理幀與測試幀的發送和接收。當進行軟件環回測試時,外部的微控制單元(microcontrollerunit,MCU)通過控制寄存器來觸發各種管理幀的發送和接收。自動環回測試結果會保存在內部寄存器中,或通過芯片管腳連接的發光二極管(lightemitting diode,LED)指示燈進行指示。
本文采用“自頂向下”的設計思路,使用圖形設計工具由上而下地進行模塊設計和信號定義,并將整個設計劃分為發送模塊(TS-1000_TRAN 模塊) 和接收模塊(TS-1000_RECV 模塊), 再根據具體功能對這兩個模塊的設計進行細化。底層電路則采用業內流行的Verilog 硬件描述語言進行設計[2-3]。
2.1 TS-1000_TRAN 模塊
TS-1000_TRAN 模塊負責發送不同類型的TS-1000 幀,根據具體功能將其進一步劃分為3 個模塊:TS1K_AUTO_TBPCK_GEN 模塊、TS1K_PCK_GEN模塊和TRAN_PCK_SEL 模塊。
TS1K_AUTO_TBPCK_GEN 模塊負責生成硬件自動環回測試所需的測試數據;TS1K_PCK_GEN 模塊則負責生成狀態指示幀、狀態請求與應答幀、環回開始與結束請求幀及其應答幀,以及讀/ 寫遠端寄存器的擴展幀。TRAN_PCK_SEL 模塊具備TS-1000 幀的發送選擇功能,負責發送的數據主要來自TS1K_AUTO_TBPCK_GEN 模塊或TS1K_PCK_GEN 模塊。TS-1000_TRAN 模塊電路結構如圖3 所示。
2.2 TS-1000_RECV 模塊
TS-1000_RECV 模塊負責接收不同類型的TS-1000 幀,根據具體功能可將其進一步劃分為TS1K_AUTO_TBPCK_CHK 和TS1K_PCK_RECV 兩個模塊。TS-1000_RECV 模塊電路結構如圖4 所示。
TS1K_AUTO_TBPCK_CHK 模塊具備TS-1000自動環回測試包的檢測功能;S1K_PCK_RECV 模塊則負責接收狀態請求與應答幀、環回開始與結束請求幀及其應答幀,以及讀/ 寫遠端寄存器的擴展幀。
3 模塊仿真與FPGA驗證
3.1 模塊仿真
發送模塊接收到各種控制信號后,將生成并發送TS-1000 協議定義的管理幀或測試幀。接收模塊會對接收的管理幀進行檢測,生成各種幀類型的指示,同時將管理幀的所有字段以及狀態信息進行鎖存;同時,該模塊也會對接收的環回測試幀進行檢測,并輸出測試結果。核心模塊設計如下。
3.1.1 TS1K_PCK_GEN 模塊
當管腳信號AUTO_SEND=1 或寄存器控制信號mg_auto_tx_mf_en=1 時,在終端模式下,接收光信號出現失效或恢復、MC failer 故障發生或恢復、以太網連接成功或失敗,以及終端掉電事件均會觸發TS-1000 的狀態指示幀,該幀會將相應的狀態信息通過光纖發送至中心端。 此時,中心端可以通過配置寄存器來生成管理幀,進而獲取終端的工作狀態;而終端會通過狀態應答幀將自身狀態發送回中心端。
當AUTO_TEST 管腳有0→1 的跳變, 或在MCU 的控制下會觸發環回測試開始請求幀。當終端接收到環回開始請求的管理幀后,生成回復此請求的應答幀并發送給相應的端口。當本地環回測試結束后,如果是自動環回測試,則由電路自動發送表示環回測試結束的幀;如果是MCU 控制下的環回測試,軟件配置寄存器會在中心端觸發環回測試結束幀。環回測試開始請求幀的仿真波形如圖5 所示。
3.1.2 TS1K_PCK_RECV 模塊
該模塊負責各種類型TS-1000 管理幀的接收。當該模塊收到TS-1000 管理幀后會出現以下情況:①若檢測到管理幀的C1=0、C2 ~ C3=01、C8 ~ C9=01, 則說明發送端為終端, 則根據該管理幀的S[15:0] 字段將本地狀態寄存器的相應比特更新。② 若檢測到管理幀的C1=1、C2 ~ C3=10、C8 ~ C15=10000000 時, 則說明發送端為中心端,并且要求接收端開始進行環回測試。③若檢測到管理幀的C1=0、C2 ~ C3=11、C8 ~ C15=10000000 時,則說明本地為中心端并且接收到終端發送的開始環回應答幀,此時將環回請求信號tp_loop_req 的值設置為1。④若檢測到管理幀的C1=1、C2 ~ C3=10、C8 ~ C15=00000000時,則說明接收到中心端發送的結束環回的請求幀; ⑤ 若檢測到管理幀的C1=0、C2 ~ C3=11、C8 ~ C15=00000000 時,則說明中心端接收到終端發送的結束環回請求的應答幀,此時將環回請求信號tp_loop_req 的值設置為0,并結束環回測試。⑥ 若檢測到管理幀的C1=1、C2 ~ C3=10、C8 ~ C15=01000000 時, 則說明接收到中心端發來的狀態請求幀。⑦若檢測到管理幀的C1=0、C2 ~ C3=11、C8 ~ C15=01000000 時, 則說明接收到中心端發來的狀態請求應答幀。TS1K_PCK_RECV 模塊每次接收到TS-1000 管理幀時,都會在寄存器中出現相應的指示,并且該管理幀的所有的字段都會被鎖存在一組寄存器中,以便后續查詢。
3.1.3 TS1K_AUTO_TBPCK_CHK 模塊
在自動環回測試模式下,當TS1K_PCK_RECV模塊發送環回請求信號tp_loop_req =1 時,根據寄存器配置的測試包格式對接收的數據包進行檢測,并輸出環回測試結果。當檢測結果正確時,產生正確結果指示;當檢測結果錯誤時,產生錯誤結果指示。
3.2 FPGA 驗證
作為以太網到光轉換器芯片中的一部分,本設計已經進行了充分的系統仿真。選用楷登電子(Candence) 公司開發的NCVerilog 工具進行系統仿真,并采用賽靈思(Xilinx)公司生產的XC3S500E 系列芯片進行現場可編程邏輯門陣列(field programmable gate array,FPGA)驗證[4]。硬件測試平臺結構如圖6 所示,該測試使用了FPGA上的2 370 個觸發器和3 432 個查找表(look-uptable,LUT)。
測試系統通電后,下載設計完成的比特文件。通過 MCU 分別配置兩個FPGA 的寄存器,以完成TS-1000 協議各個功能的測試。將MCU 的兩個寄存器調整為10 Mbit/s 或100 Mbit/s 工作模式,然后通過測試卡發送以太網包,并調整測試卡上以太網包的發送速率、發送包長以及發送包內容等參數。最后,通過測試卡軟件監測以太網包的接收情況,尤其要注意丟幀、FCS 幀錯誤以及凈荷錯誤等問題。
本文采用XC3S500E-4PQ208 芯片進行功能測試。結果表明, 該設計實現了將10 Mbit/s 或100 Mbit/s 以太網數據轉換為100 Mbit/s 光接口數據的功能,支持TS-1000 管理幀的處理,能夠發送狀態指示幀,具備TS-1000 硬件的自動環回檢測功能以及在MCU 控制下的環回檢測功能。
4 結語
本文基于FPGA 實現了TS-1000 協議中的管理幀功能。整個設計流程采用了自頂向下的模塊設計方法,并使用Verilog 硬件描述語言設計了電路,從而有效縮短了設計周期,提高了設計的靈活性和可遷移性。
參考文獻
[1] TS-1000 optical subscriber line interface-100Mbit/s single fiber bi-directional interface byWDM-(English Edition)[EB/OL].(2004-1-27)[2024-10-10]. https://www.ttc.or.jp/application/files/7015/5468/6638/TS-1000Ev2.pdf
[2] 夏宇聞. Verilog 數字系統設計教程[M]. 北京:北京航空航天大學出版社,2003:177.
[3] 貝斯克. Verilog HDL 硬件描述語言[M]. 2 版. 許振林等,譯. 北京:機械工業出版社,2000.
[4] 王杰,王誠,謝龍漢. Xilinx FPGA/CPLD 設計手冊[M]. 北京:人民郵電出版社,2011:223.