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