秦文麗


摘要:本文設計了一種基于EPLD器件的基站中頻系統,該系統采用了ALTERA公司的MAXII系列中的EPM1270芯片。首先簡單介紹了EPLD的接口特點,隨后對該設計系統的硬件和軟件兩方面都做了詳細論述。硬件部分給出了系統的總體設計方案,軟件部分主要由固件設計、驅動程序設計和應用程序設計三部分組成。
關鍵詞:EPLD;MPC875;WD2;復位;告警
中圖分類號:TP391.4 文獻標識碼:A 文章編號:1007-9416(2017)10-0146-03
1 概述
隨著電子行業的發展,大規模集成電路的運用越來越普遍,用EPLD( Erasable Programmable Logic Device)開發新產品是當前很多實際情況的需求。本文詳細描述了EPLD在基站上中頻板卡上所實現的功能及接口信號。
2 硬件設計
2.1 系統方案
基站上面有一塊IFU板(中頻板),負責發射信號。中頻板上有一片EPLD可擦除可編輯邏輯器件,稱為IFRCE(IFU Reset,Control/Configuration,ioExpander),采用EPM1270芯片實現,屬于ALTERA公司的MAXII系列。
IFRCE主要實現IFU板的復位控制、FPGA(Field-Programmable Gate Array)上電配置、MPC875寄存器接口管理和MPC875的I/O擴展,同時對外部輸入信號還有進行去毛刺和同步采樣處理,對輸出信號進行時序控制使其滿足硬件時序要求。其主要任務是實現對如圖1、圖2所示的各功能模塊。
2.1.1 芯片物理特性描述
MAXII器件提供基于行和列的結構來實現用戶邏輯。每個邏輯陣列塊(LABs)包含10個邏輯單元(LE);內部互連的MultiTrack為LAB提供小顆粒的時間延遲;I/O管腳由位于器件外圍的IO單元(IOE)驅動。時鐘網絡包括四根時鐘線,它貫穿整個器件,為器件上的各種資源提供時鐘。
MAXII 器件還包含一個FLASH存儲體,一部分是用來存儲SRAM配置信息的CFM塊,另一部分是用戶FLASH存儲塊(UFM)。
2.1.2 管腳分配
每片EPLD分為四個I/O Bank,均采用3.3V供電,接口標準為TTL3.3。
EPLD 的管腳分配,合計:197個信號 (197/212=93%)
2.2 實現功能描述
EPLD主要完成的功能包括:MPC875存儲器接口;IFU板的復位控制與管理;硬件復位配置字(HRCW)的讀取;雙地址BOOT機制;IFU板光模塊、溫度檢測模塊、時鐘模塊、LCB板頻率合成模塊告警檢測;FPGA、DDC、DUC、UART配置接口控制邏輯;LED燈的控制。
EPLD內部功能多用組合邏輯實現。告警檢測、輸入信號采樣和輸出信號的時序控制采用時序邏輯。
3 軟件設計
3.1 MPC875存儲器接口模塊
MPC875與EPLD的硬件接口框圖如圖3所示。
3.2 IFU復位控制與管理模塊
IFU復位類型按級別可分為:整板復位(包括處理器和周邊器件)、處理器復位(MPC875)和周邊器件復位(包括FPGA、6×DDC、6×DUC、UART、2×CDC7005、PHY芯片、LM87、FLASH)。
3.2.1 復位事件歸納
(1)發起整板復位的情況歸納如下:IFU板上電時,由MAX811板產生一個上升沿整板復位脈沖到EPLD;全局復位按鈕產生一個下降沿脈沖到EPLD;EPLD內部復位命令字控制寄存器全局復位控制位被置為有效。
(2)發起MPC875復位的情況歸納如下:MPC875復位按鈕產生一個下降沿脈沖到EPLD,發起MPC875 PORST復位;EPLD內部復位命令字控制寄存器PORST/HRST/SRST被置為有效;EPLD內部復位命令字控制寄存器SW_REBOOT被置為有效。
3.2.2 復位標志位的管理
當由某種復位源引起的復位發生時,該寄存器中的相應位就會置“1”。這樣,在發生異常事件時,可以通過查詢該寄存器得知是因為什么事件引起的復位。在復位標志寄存器中設置了八個標志位:MPC875復位按鈕復位標志,上電復位標志,外部看門狗復位標志,全局按鈕復位標志,遠程復位標志,命令字復位標志,軟件重起標志,FPGA按鈕復位標志。每一種復位事件在置位相應標志位的同時,會清除所有其他標志位。軟件對該寄存器的任何寫操作都會導致該寄存器清0。這樣為軟件提供一種清除該寄存器的途徑。
3.3 WD2的實現和控制
利用EPLD的可編程特性,在內部實現一個外部Watch Dog 2,這樣定時可以比較長,還可以隨時關閉。
為了系統調試的方便,操作系統在進程切換的時候,會調用專門的函數,在一個history memory中記錄當前調用的進程,如果系統出現異常或死掉,在異常處理子函數或Watch Dog處理子函數中會把history memory的內容寫入寄存器中保存,系統再啟動之后,通過這個history memory就可以得知最近執行過哪些進程。
Watch Dog 2在定時溢出的時候需要通知MPC875,可以采用產生PORESET或者是NMI中斷,采用中斷的方式是為了避免程序死在高優先級中斷處理子函數里,在每個中斷處理子函數內部開始屏蔽其它中斷的地方,都不能屏蔽Watch Dog 2中斷,這樣Watch Dog 2中斷就可以打斷任何中斷處理子函數的執行。IFRCE中對復位的兩種方式都支持,軟件可以通過寄存器中的WD2 _RST2INT _CTRL位來選擇WD2產生PORESET復位還是產生NMI中斷。默認WD2產生PORESET復位。endprint
Watch Dog 2的使能由軟件控制。軟件是通過對寄存器的WD2_EN位置位使能WD2,默認WD2不使能。而且可以通過讀取WD2_EN來確認WD2是否使能。
Watch Dog 2的喂狗(即Watch Dog 2計數器清零)的方式有兩種:通過置寄存器相應位來清零;每次板級復位或MPC875復位事件發生后,也會對Watch Dog 2計數器清零。
3.4 雙地址BOOT機制
系統設計了采用雙地址BOOT的機制,框圖如圖4、圖5所示。
BOOT FLASH采用SPANSION的S29GL128N。該FLASH為16位位寬,地址空間8M,23根地址線,或表示為16Mbyte。
對應雙地址BOOT方式,有兩個BOOT程序:BOOTROOM和BOOST,它們存放在FLASH的不同地址空間內。板卡正常工作時,從BOOTROOM正常啟動。當需要進行單板測試或BOOTROOM被損壞的情況下,可以通過圖4加跳線跳通,來選擇從BOOST啟動。這樣單板可以正常連接進行相應BOOTROOM文件下載。
FLASH地址空間分配如圖5所示。正常情況下從BOOTROOM啟動,啟動地址為0Xfff00000,當從BOOST啟動時,啟動地址為0Xffb0000,差別在第23位不同。因此EPLD只要對這一位進行處理就能實現啟動地址的轉換。MPC875有32根地址線,A(0)為最高位,A(30)為最低位,按8位位寬尋址。由于FLASH是按位寬16位尋址,有23根地址線,因此MPC875連接到FLASH的地址線的最低位應為A(30),最高位為A(8)。當正常從BOOTROOM啟動時,JP0為斷開,這時A(9)從EPLD作串通;當從BOOST啟動時,JP0為跳接狀態,這時A(9)被EPLD屏蔽,輸出置為0,從而實現了啟動地址的變換。
板卡啟動情況總結如下:
(1)板卡正常運行的情況:
圖4中JP0跳線不加,從BOOTROOM正常啟動。
(2)正常測試使用或只有BSP損壞的情況:
圖4中JP0跳線加上,從BOOST啟動,進行全面測試。
3.5 告警檢測
EPLD進行告警檢測的芯片包括:IFU板光模塊、溫度檢測芯片、時鐘芯片和LCB板的頻綜模塊。EPLD對這些芯片的告警信號采用周期性的檢測策略,復用MPC_INT1_EPLD將告警上報MPC875。在ALM_LOS_FM1和ALM_LOS_FM2產生時,EPLD分別將MPC_INT1_EPLD和MPC_INT0_EPLD置為”01”和”10”,通知FPGA。
檢測流程如圖6所示。
4 結語
本文結合實際應用,提出了一種基于中頻板的EPLD可編程器件設計系統,并給出了整個系統的軟、硬件設計方法。在EPLD中沒有專門的測試模塊,對EPLD所完成的功能需要在中頻板測試中驗證。由于EPLD具有其他總線不可比擬的優點,越來越多的數據采集系統采用EPLD芯片,相信EPLD將成為邏輯控制的主要接口。
參考文獻
[1]秦宏,尹常永,李川.用VHDL語言的CPLD器件設計[J].黃金學報,2001(1):49-51.endprint