姚智文 王小波 付培建



摘要:為了解決通信系統中多個分機一體化的監控問題,設計和開發了基于NiosⅡ和FPGA的通用型軟、硬件監控平臺。該平臺是以Altera公司研發生產的EP3C80系列FPGA芯片和發行的Nios ⅡIDE編譯軟件進行開發設計的多接口、多協議通用型監控平臺。通過開發軟件在FPGA硬件上建立嵌入式Nios Ⅱ軟核處理器,根據需要添加基于AVALON總線的用戶外設,構建網口/串口/ⅡC/SPI等接口,對設備內部多種硬件模塊進行控制,使其能夠按照正確的指令執行相應的操作,實現對應的各項功能。
關鍵詞:Nios Ⅱ;FPGA;AVALON總線:通用型
中圖分類號:TP391.4 文獻標志碼:A 文章編號:1008-1739(2021)11-60-4
0引言
通信系統由多個分機組成,每個分機形態都是分體式獨立設備,除了要求能夠通過設備本身的人機交互監控界面完成設備參數的設置、查詢和維護功能之外,還能夠接受通信系統中集中監控軟件的管理控制,實現設各參數的遠程監控設置和狀態及參數的上報功能。
為有效節省硬件開發及軟件編程成本,按照通用化、一體化和標準化的設計原則,設計與開發了一款基于Nios Ⅱ和FPGA的通用型軟、硬件監控平臺。該平臺通過在FPGA硬件上實現基于AVALON總線的IP內核定制,并根據需要添加系統提供的外設,通過用戶指令來實現各種應用的需求,最終實現設備相應的監控管理功能。
1系統設計
通用型監控平臺設計主要由硬件和軟計兩部分組成。硬件設計開發使用Altium公司推出的一體化產品專業開發軟件Altium Designer,實現原理圖的設計、電路仿真、PCB的繪制編輯及拓撲邏輯布線等開發工作。
軟件設計與開發利用Altera公司出品發行的Quartus Ⅱ和Nios Ⅱ IDE集成開發環境,根據實際需求,構建專用的32位嵌入式微處理器系統,在FPGA內部創建軟核,同時完成存儲和接口等電路的完整PLD設計,并利用自動生成適用于系統硬件的專用C/C++運行環境,完成代碼指令的編輯、編譯、調試和燒錄等工作。
1.1硬件設計
監控平臺的硬件設計利用Altium Designer軟件,實現供電部分電路、FPGA外圍電路、時鐘電路、Sdram存儲、Flash存儲、A/D轉換和對外接口等電路的原理圖設計、仿真及PCB的繪制開發工作,主要電路組成如圖1所示。
方案選用型號為EP3C80U48417的FPGA芯片作為主控制器,與供電電路、時鐘電路、Sdram存儲電路、Flash存儲電路、JTAG調試接口電路、溫度傳感電路、A/D轉換電路,以及對外通信LAN口、RS232/422/485串口、ⅡC接口、SPI接口和自定義擴展接口等電路構成整個監控平臺的硬件部分。其中供電電路采用Linear公司生產的低噪聲正線性穩壓器——LT1963系列芯片。該型穩壓器內部具有反向電池保護、電流限制、熱限制和反向電流保護等保護電路,輸出電壓范圍1.21~20V。采用3片LT1963穩壓器,將+5V電源輸入分別轉換成+33,+2.5,+1.2V三路不同的電壓,為其他電路提供穩定輸出。
時鐘電路主要采用型號為SCX011B-E20MCB的國產20 MHz低相位噪聲晶體振蕩器,搭配2個電容(容值分別為1000 pF和0.1μF)和一個330Q電阻,為主控單元FPGA芯片產生準確、可靠的時鐘信號。
Sdram存儲電路芯片選用Hynix公司出品的HY57V561620FTP同步動態隨棚存儲器,時鐘速率選用133MHz(通過鎖相環將20 MHz時鐘源倍頻所得)。該芯片具有空間存儲量大、讀寫速度快、價格相對便宜等優點。
Flash存儲電路由數據存儲和程序存儲2個部分組成。其中數據存儲選用SPANSION公司出品的大容量、高性價比、支持16位數據傳輸的S29GL256P11FF102芯片作為內存Flash存儲器。程序存儲芯片選用Altera公司出品的64 Mbit EPCS64S116N芯片作為FPGA的配置存儲器,用于存儲編譯后的程序。
A/D轉換電路選用AD公司出品的16位高精度、低功耗、超小型QVN封裝的可編程模數轉換器ADS1115芯片,用于對外部模擬信號進行采集和轉換。溫度傳感電路選用Maxim公司出品的DS18820Z作為溫度采集芯片,該芯片具有體積小、功耗低、抗干擾強和精度高等特點。
對外通信接口電路包括LAN口(芯片選用WIZnet公司出品的高性能以太網接口芯片W5300)、串口(分別選用Maxim公司出品的高性能MAX3232、MAX3485和MAX3490等收發器)、串行總線ⅡC接口、全雙工高速同步SPI接口和自定義擴展接口,實現與各種外設進行通信。其中自定義擴展接口在已有接口不滿足使用需求的情況下,可通過增加各種IP核的方式進行擴展,體現監控平臺的通用性和可擴展性。對外通信接口電路原理圖如圖2所示。
利用Altium Designer軟件將各部分電路原理圖設計完成后,對PCB線路布局進行繪制,如圖3所示。
硬件平臺的實際尺寸僅為900mm×900mm,由于布局非常緊湊,為了增加布線面積,通過定位系統及絕緣粘結材料交替互連的方法,硬件平臺的PCB采用8層線路進行布線。
平臺四角距離PCB板4.7mm處,分別留有孔徑為3.5mm的接地過孔,可通過3mm螺釘固定于其他結構件上。平臺四周分別有序布局供電輸入、AD檢測輸入、通用10、串口、網口、指示燈、按鍵及顯示屏等信號電器連接點位,可通過焊接在PCB上的相應連接器與外接信號連接,實現供電或指令通信。
1.2軟件設計
監控平臺的軟件設計首先利用Quartos Ⅱ軟件完成FPGA內部硬件時鐘、各部分功能塊的可編程邏輯設計。通過原理圖輸入和硬件描述語言輸入的方式,建立與監控平臺硬件部分相適應的軟件工程,并根據監控平臺的硬件配置進行軟件系統設置和完成所有硬件電路的可編程邏輯設計,順利通過編譯,最終生成對應的輸出文件,為軟件代碼開發提供良好基礎。
Nios Ⅱ嵌入式軟件設計包集成了一系列尖端的軟件工具、實用工具、庫文件以及驅動程序,這些工具及程序可以幫助軟件開發人員根據實際需求快速構建軟件系統框架,大大提升軟件設計的開發效率。
方案利用Nios Ⅱ嵌入式軟件設計包中基于Eclipse IDE架構的全集成開發環境Nios Ⅱ IDE,通過GNU開源編譯環境,對監控軟件系統架構、硬件驅動程序、對外接口及控制協議等進行設計與開發。其中對外接口及控制協議部分主要包括TCP-IP協議網口、基于RS232/422/485等3種電平的異步串口、ⅡC通信總線接口、串行外設總線SPI接口和自定義擴展接口及相關協議的程序開發。同時利用基于GDU的調試工具,對軟件進行仿真和調試,并通過JTAG調試接口和目標設備的硬件相連,對具體設備上的硬件模塊進行實際聯調和聯試,最終順利實現嵌入式監控軟件的各項功能。軟件集成開發環境如圖4所示。
最終開發完的嵌入式監控軟件功能圖如圖5所示。
嵌入式監控軟件有3個主要功能,分別是設置、查詢和維護子功能。設置、查詢和維護這3個子功能集合又可分解為響應的下一級子功能。例如站號設置子功能、告警查詢子功能及網口參數維護子功能等。
按照通用化、一體化和標準化的設計原則,系統中各分體式獨立設備前面板統一采用19264分辨率的點陣圖形液晶顯示器。用于提供友好的人機界面,接受用戶指令,完成工作參數設置、查詢和維護等操作。
2工程應用
嵌入式通用監控平臺在設計之初,對各分機的應用需求進行了充分的調研和評估,最終對嵌入式監控平臺進行了合理的通用化、標準化和一體化設計。利用Altium Designer軟件、Quartus Ⅱ軟件和Nios Ⅱ IDE集成開發環境對平臺的軟、硬件進行設計與開發,并通過在FPGA內部靈活構建基于Nios的SOPC系統和完整的可編程邏輯設計,搭建高效的軟件框架,同時編寫通用底層驅動程序,實現各種接口的應用開發和調試,大大減少調試工作量,縮短項目研制周期,同時提高了程序整體運行效率。經過與各分機進行充分聯試及驗證,最終該通用型監控平臺在各分機使用良好,性能穩定可靠。
嵌入式通用監控平臺不僅滿足系統內不同分機一體化和通用性要求,而且大大節省研發成本及調試時間,縮短了項目周期。并且,嵌入式通用監控平臺在各分機上順利通過高低溫、濕熱和電磁兼容等試驗,各項軟、硬件功能及指標性能均符合要求,經得住實際運行的考驗。
嵌入式監控平臺實現了不同分機、不同需求的通用化、一體化及標準化的使用要求,并在多個項目中得到了推廣和成功應用,監控平臺的成功經驗為類似項目中個性化監控平臺設計提供了借鑒意義。
3結束語
通用型監控軟、硬件平臺基于Nios Ⅱ和FPGA進行開發與設計,綜合考慮不同分機的實際使用需求,填補了公司通用型嵌入式監控軟、硬件平臺的空白,降低了研發成本和節省軟、硬件的調試時間,大大縮短了項目周期,降低了研制成本。
本監控平臺硬件易于安裝,軟件操作簡便,可定制,通過該平臺能夠快速設置和查詢設備的參數和狀態信息,為公司其他項目提供了一套穩定、可靠的嵌入式通用監控平臺,滿足不同分機的通用需求。