






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