本站小編為你精心準備了FPGA主備倒換的電路設計參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
《電視技術雜志》2014年第十一期
1fpga邏輯控制方案
1.1模塊說明
1.1.1I/O模塊主控卡上的FPGA芯片的I/O信號通過LBC總線傳送到CPU;系統初始化完成后,CPU會通過LBC掃描FP-GA上的所有I/O信息;另外,實時監控某些I/O的電平狀態,然后發中斷給CPU,CPU接到中斷后會啟動ISP,掃描被監控的I/O上的電平。涉及到主備倒換的I/O信號有主控卡的槽位ID信號、主備之間的心跳信號、主備之間的在位信號、主備之間的復位信號、主備之間的工作狀態信號。
1.1.2復位模塊主控卡的復位模塊是在FPGA中完成的。上電時,通過MAX706輸入給FPGA的復位信號,首先給CPU卡復位;當CPU初始化完成后,再通過LBC總線向FPGA寫復位寄存器,完成復位過程。
1.1.3看門狗模塊主控卡的看門狗模塊是完成對CPU模塊的監控,如果CPU模塊“死機”,看門狗會執行主備倒換到備主控上,同時復位自己本主控系統。實現過程如下:1)上電后,FPGA初始化所有寄存器的值,FPGA的喂狗信號開始輸出周期性的脈沖。2)如果檢測包含初始化信息的寄存器為0,則FPGA輸出給MAX706的看門狗信號由FPGA的喂狗信號提供;如果檢測為1,則看門狗信號由CPU的喂狗信號提供。3)如果看門狗失效,則會產生主復位信號PORE-SET。
1.2編碼原則兩塊主控卡之間的3根線可以組成8種狀態編碼。通過對這些編碼賦予特殊的定義,當對方的FPGA監聽和讀取到主備互傳的這些編碼,上報給CPU,從而來實現主備狀態快速傳遞。信號定義和編碼規則如表1所示。主/備控在位(Line1):主控卡的在位狀態。1表示主控卡在位;0表示主控卡不在位。主/備主控主備(Line2):主控卡的運行狀態,用來指示本主控卡是否為主主控。1表示本卡為主主控卡;0表示本卡為備主控卡。主/備主控好壞標志(Line3):周期性的心跳信號。1表示運行正常;0表示為初始化未完畢或者運行非正常。
1.3主備倒換原理和實現
1.3.1設備啟動過程中的主備倒換1)上電啟動時,若FPGA檢測到本主控處在6號槽位,而7號槽位沒有主控卡時,則6號槽位主控按照正常初始化過程進行啟動,當CPU完成初始化時,該主控就自動升級為主主控。2)若FPGA檢測到本主控處在7號槽位,而6號槽位沒有主控卡時,則7號槽位的主控仍然按照正常初始化過程進行啟動,整個啟動過程同上。3)若6號槽位的主控正常啟動,完成初始化并獲得主主控狀態。與此同時,7號槽位的主控上電時,檢測到備主控在位且處在7號槽位。這時,FPGA就需要控制本主控的啟動時間,通過控制整個系統的復位狀態,將本主控的啟動時間延時10s。當10s延時到達后,7號槽位的主控通過主備之間的3根線判斷6號槽位的主控已經升級到主主控狀態時,7號槽位的主控就自動降為備主控。并一直處于監聽主主控狀態,當監聽到主主控狀態編碼為復位狀態(100),主備倒換請求狀態(101),拔出(故障)狀態(000)時,7號槽位主控就自動升級為主主控狀態。上電啟動過程中狀態關系如圖2所示,邏輯框圖如圖3所示。邏輯代碼結構如下:
1.3.2設備運行過程中的主備倒換1)主動倒換:當后臺主動發出指令要求系統主備倒換時,主主控進入主備倒換請求狀態,當備主控監控到該請求時,升級為主主控狀態,同時主主控自動降級為備主控狀態。2)自動倒換:當主主控出現故障或者拔出時,備主控檢測到主主控處于該狀態(000)時,備主控自動升級為主主控。3)復位倒換:當主主控被復位時,主主控輸出復位狀態編碼(100),當備主控檢測到此狀態編碼后,自動升級為主主控狀態。被復位后的主控按照備主控方式啟動,并處于備主控監聽狀態(011)。
2實驗驗證
驗證方法:根據測試用例對OLT進行主控卡1+1冗余保護測試。正常數據業務收發時,執行主備倒換,觀察數據業務是否正常。環境搭建拓撲如圖4所示。
2.1常溫環境測試測試過程:1)通過網管配置數據業務,測試儀通過ONU/OLT發送上下行數據,觀察在OLT上聯口和ONU的UNI口接收的流量,數據業務正常。2)串口連接至主控制卡,show當前主控主備狀態。3)后臺執行主備倒換。4)測試停止,觀察數據業務丟包是否嚴重。流量測試如圖5所示。5)計算倒換時間計算方法:倒換時間可以通過主備倒換過程中丟包數量和發送速率的比值來確定丟包時間。發送速率如圖圖5常溫環境下Smartbit流量測試結果(截圖)6所示。式中:RateRx為接收端速率,Tsw為倒換時間。
2.2高低溫環境測試將OLT設備置于高低溫測試箱,對主控進行主備倒換測試。目的是在高低溫環境下,測試主控執行主備倒換的穩定性。測試條件:1)高低溫沖擊實驗高溫40℃±5℃,持續4h;低溫0℃±5℃,持續4h;2)高低溫交變濕熱實驗相對濕度為50%~60%。測試過程:重復2.1節測試實驗。測試結果如圖7所示。
2.3熱插拔測試對兩塊主控卡交替插拔50次,通過串口打印信息,觀察主控卡都能自動完成主備倒換過程,并無出現數據流完全中斷。通過測試主備的倒換時間約為20ms,遠遠少于傳統方案(勉強臨近電信50ms[4])的標準。同時通過高低溫環境測試和熱插拔測試,并未發現不良情形,進一步保證了設備的穩定性。此結果說明了該方案實現了主備的無縫式倒換。
3小結
本文從硬件邏輯設計的角度提出了基于FPGA實現的詳細框架、過程和編碼,將主控啟動過程中狀態信息采用編碼的思想,對傳統的主備倒換方案進行了優化設計和實驗驗證,較好地改善了主控啟動時間慢,主備倒換誤操作和主備倒換時間長的缺陷。該設計方案通過了設備量產和廣電及電信運營商的開局測試,達到了廣電和電信測試標準。
作者:譚宇姚亞峰陳登霍興華單位:中國地質大學機械與電子信息學院