基于FPGA的嵌入式智能管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
近些年,針對(duì)智能管理的研究越來(lái)越廣泛,采用的技術(shù)也越來(lái)越多,如基于單片機(jī)開(kāi)發(fā)的智能監(jiān)控平臺(tái)[1]、在Linux內(nèi)核下的智能儀器開(kāi)發(fā)[2]、對(duì)智能管理的某一個(gè)方面進(jìn)行研究[3]等。隨著嵌入式核心芯片的高速發(fā)展,傳統(tǒng)嵌入式系統(tǒng)的設(shè)計(jì)方法也隨之改變,嵌入式系統(tǒng)逐漸由板級(jí)向芯片級(jí)過(guò)渡,即片上系統(tǒng)(SoC),進(jìn)而發(fā)展至如今流行的可編程片上系統(tǒng)(SoPC)。本文就是通過(guò)超大規(guī)模FPGA和功能復(fù)雜的IP核來(lái)實(shí)現(xiàn)一個(gè)可編程片上系統(tǒng),此系統(tǒng)利用可編程器件內(nèi)的可編程資源以及專用硬核,構(gòu)建處理器、存儲(chǔ)器、邏輯電路和其他專用功能模塊,并在智能管理軟件和算法的配合下完成智能管理的各項(xiàng)功能。
所謂智能管理,就是以人類智能結(jié)構(gòu)為基礎(chǔ),系統(tǒng)研究人與組織的管理活動(dòng)規(guī)律和方法的一門學(xué)科,具有很強(qiáng)的實(shí)踐性和擴(kuò)展性,體現(xiàn)在本文中就是通過(guò)系統(tǒng)本身的智能化操作而非人工干預(yù)的手段去執(zhí)行其在運(yùn)行過(guò)程中所遇到的諸如檢測(cè)和控制等行為。對(duì)于本系統(tǒng)來(lái)說(shuō),其主要功能就是系統(tǒng)監(jiān)測(cè)、綜合處理,并依靠事先確定的閾值和準(zhǔn)則實(shí)施相應(yīng)的控制。其中包括對(duì)各關(guān)鍵模塊的工作狀態(tài)進(jìn)行監(jiān)控,對(duì)風(fēng)機(jī)與電源的運(yùn)行狀態(tài)進(jìn)行管理,并對(duì)系統(tǒng)智能管理過(guò)程中所得到的一些信息通過(guò)以太網(wǎng)上報(bào)給上位機(jī)等。
1 硬件系統(tǒng)構(gòu)成
1.1 FPGA內(nèi)部硬核系統(tǒng)構(gòu)成
FPGA片內(nèi)結(jié)構(gòu)如圖1所示,F(xiàn)PGA片內(nèi)所有模塊包括PPC405處理器、MAC核、I2C核、GPIO核及URAT核,都連接到片上高性能PLB總線上,PPC405通過(guò)PLB總線來(lái)訪問(wèn)每個(gè)IP核,各IP核的大致作用如下:
(1)MAC核實(shí)現(xiàn)網(wǎng)絡(luò)鏈路層硬件,與FPGA片外的PHY芯片實(shí)現(xiàn)網(wǎng)絡(luò)所需的硬件;
(2)I2C核實(shí)現(xiàn)I2C邏輯,支持智能管理模塊與各個(gè)工作模塊之間的I2C總線協(xié)議,實(shí)現(xiàn)I2C總線的檢測(cè)與控制功能,如接收各工作模塊的溫度等;
(3)GPIO核實(shí)現(xiàn)PPC405對(duì)FPGA通用I/O管腳的基本操作,可以通過(guò)軟件編程來(lái)指定各端口的行為;
(4)UART核實(shí)現(xiàn)PPC405的串口操作,將串口信息傳送至主機(jī)進(jìn)行系統(tǒng)調(diào)試。
片上系統(tǒng)硬件結(jié)構(gòu)大致描述為:用FPGA實(shí)現(xiàn)I2C總線協(xié)議,并與處理模塊對(duì)接;用FPGA實(shí)現(xiàn)1-wire單線總線協(xié)議,并與溫度傳感器對(duì)接;智能管理模塊要求實(shí)現(xiàn)的網(wǎng)絡(luò)上報(bào)功能必須用軟件來(lái)實(shí)現(xiàn)TCP/IP協(xié)議棧;用MAC核實(shí)現(xiàn)鏈路層功能。為減少器件數(shù)量,提高可靠性,本設(shè)計(jì)采用FPGA內(nèi)嵌的PPC405處理器,為此需要使用Xilinx公司的系統(tǒng)開(kāi)發(fā)工具EDK進(jìn)行軟硬件協(xié)同設(shè)計(jì)。
1.2 智能管理模塊的構(gòu)成
智能管理模塊構(gòu)成如圖2所示。
FPGA和125電路共同實(shí)現(xiàn)兩路1-wire總線的協(xié)議控制和電平規(guī)范,其中一路通過(guò)溫度傳感器來(lái)檢測(cè)兩個(gè)風(fēng)機(jī)組內(nèi)的溫度。同時(shí),另一路125芯片實(shí)現(xiàn)I2C總線的協(xié)議控制和電平規(guī)范,并通過(guò)I2C總線來(lái)讀取機(jī)箱中各個(gè)處理模塊的內(nèi)部溫度。FPGA通過(guò)網(wǎng)口與上位機(jī)進(jìn)行數(shù)據(jù)通信,并通過(guò)串口對(duì)智能管理模塊進(jìn)行調(diào)試。FPGA通過(guò)和隔離與驅(qū)動(dòng)電路連接后來(lái)控制電源,即相當(dāng)于是程控開(kāi)/關(guān)電源,以保護(hù)機(jī)箱中的各處理模塊免于因過(guò)熱而損壞。該模塊僅采用12 V電源供電,模塊中的其他類型的電源均通過(guò)DC-DC轉(zhuǎn)換模塊內(nèi)部產(chǎn)生。
1.3 智能管理系統(tǒng)的構(gòu)成
智能管理系統(tǒng)的構(gòu)成如圖3所示。智能管理模塊作為智能管理系統(tǒng)的核心,執(zhí)行著整個(gè)系統(tǒng)運(yùn)行的幾乎所有指令。
(1) 智能電源。多電源平衡供電的智能電源模塊,具有短路、過(guò)載、過(guò)壓及過(guò)熱保護(hù)功能,空載可開(kāi)機(jī),并且多個(gè)電源可以并聯(lián)輸出。
(2)溫度傳感器。采用軍品溫度傳感器,置入風(fēng)機(jī)組中用于測(cè)試風(fēng)機(jī)通道的空氣溫度。該溫度傳感器只有3個(gè)管腳,從右到左分別是VDD(+5 V電源)、DQ(數(shù)據(jù)信號(hào))、GND(地線)。其中,DQ管腳符合1-wire總線協(xié)議,與智能管理模塊相對(duì)接。該溫度傳感器的工作溫度范圍廣、精度高、使用簡(jiǎn)單可靠。
(3)風(fēng)機(jī)組。一個(gè)機(jī)箱配兩個(gè)風(fēng)機(jī)組,每組由7個(gè)大風(fēng)機(jī)組成。每個(gè)風(fēng)機(jī)都帶有集電極開(kāi)路輸出的被檢測(cè)脈沖信號(hào),智能管理模塊根據(jù)該信號(hào)是否有脈沖波形來(lái)判定每個(gè)風(fēng)機(jī)是否工作。
(4)計(jì)算機(jī)。智能管理模塊與計(jì)算機(jī)可以通過(guò)網(wǎng)口和串口兩種方式進(jìn)行通信,本系統(tǒng)給出了預(yù)留,可以任意選擇,主要功能是上報(bào)各類系統(tǒng)數(shù)據(jù)。
2 工作原理
智能管理模塊的設(shè)計(jì)采用基于FPGA片內(nèi)PowerPC的SoPC技術(shù),通過(guò)PPC405可以很方便地對(duì)FPGA的各個(gè)I/O端口和內(nèi)部IP核進(jìn)行控制。
2.1 對(duì)風(fēng)機(jī)溫度的監(jiān)測(cè)
利用PPC405通過(guò)PLB總線控制GPIO核,編程控制I/O端口電平,使其滿足1-wire總線協(xié)議的時(shí)序要求,再通過(guò)125芯片進(jìn)行隔離并提供溫度傳感器1-wire總線協(xié)議需要的電平。最后,PPC405由1-wire總線讀取溫度傳感器測(cè)量的風(fēng)機(jī)處環(huán)境溫度。
2.2 對(duì)風(fēng)機(jī)狀態(tài)的監(jiān)測(cè)
風(fēng)機(jī)運(yùn)行狀態(tài)輸入信號(hào)通過(guò)連接器進(jìn)入智能管理模塊,經(jīng)過(guò)隔離驅(qū)動(dòng)后進(jìn)入FPGA,PPC再通過(guò)PLB總線控制GPIO核,讀取I/O端口輸入電平,再依據(jù)程序設(shè)定來(lái)判斷風(fēng)機(jī)運(yùn)行狀態(tài)。
2.3 工作模塊運(yùn)行狀態(tài)監(jiān)測(cè)
PPC通過(guò)PLB總線控制I2C核,在I/O端口產(chǎn)生符合I2C總線協(xié)議的時(shí)序,再通過(guò)125芯片進(jìn)行隔離并提供I2C總線協(xié)議需要的電平,然后PPC再讀取I2C總線的數(shù)據(jù)來(lái)確定各工作模塊的溫度和運(yùn)行狀態(tài)信息。
2.4 對(duì)智能電源模塊的控制
片內(nèi)PPC根據(jù)上述監(jiān)測(cè)到的風(fēng)機(jī)處環(huán)境溫度、風(fēng)機(jī)運(yùn)行狀態(tài)、各工作模塊溫度和運(yùn)行狀態(tài),采用一定的控制算法,決定對(duì)智能電源模塊的控制狀態(tài)。通過(guò)PLB總線管理GPIO核,將智能電源控制狀態(tài)傳遞到FPGA相應(yīng)管腳,再由隔離和驅(qū)動(dòng)電路對(duì)智能電源進(jìn)行管理。
2.5 系統(tǒng)運(yùn)行信息上報(bào)
本系統(tǒng)信息上報(bào)采用以太網(wǎng)協(xié)議,協(xié)議上層軟件通過(guò)編程實(shí)現(xiàn);TCP/IP層通過(guò)LWIP協(xié)議棧實(shí)現(xiàn);鏈路層由FPGA內(nèi)部的以太網(wǎng)MAC核實(shí)現(xiàn);物理層用智能管理模塊上的以太網(wǎng)PHY芯片實(shí)現(xiàn),并通過(guò)模塊上的變壓器進(jìn)行隔離。[!--empirenews.page--]
片內(nèi)PPC把風(fēng)機(jī)處環(huán)境溫度、風(fēng)機(jī)運(yùn)行狀態(tài)、各工作模塊溫度和運(yùn)行狀態(tài)以及智能電源的工作狀態(tài)通過(guò)PLB總線發(fā)送給片內(nèi)的MAC核,再經(jīng)過(guò)片外的PHY芯片最終上報(bào)給上位機(jī)。
3 性能測(cè)試
溫度傳感器模塊性能測(cè)試主要是為了驗(yàn)證該模塊能否按照預(yù)先設(shè)置的門限作出正確的操作。若超過(guò)設(shè)定值上限或低于設(shè)定值下限,則報(bào)警;若溫度過(guò)高即將損壞系統(tǒng)時(shí),則關(guān)機(jī)(注:在該測(cè)試中,無(wú)需啟動(dòng)風(fēng)機(jī)控制系統(tǒng))。
(1)執(zhí)行Set Sensor Threshold指令,實(shí)現(xiàn)各門限值設(shè)定;(2)執(zhí)行Set Sensor Event Enable指令,允許報(bào)警事件產(chǎn)生;(3)基板在室溫下工作,無(wú)報(bào)警事件產(chǎn)生;(4)基板加溫,超過(guò)各門限值上限,有報(bào)警事件產(chǎn)生,過(guò)高時(shí)斷電;(5)基板降溫,返回室溫時(shí)正常工作;(6)基板繼續(xù)降溫,超過(guò)各門限值下限時(shí),有報(bào)警事件產(chǎn)生。
經(jīng)測(cè)試獲得的各溫度門限值與預(yù)先設(shè)置溫度基本一致,但溫度傳感器門限值設(shè)置的合理性還有待進(jìn)一步實(shí)驗(yàn)來(lái)確定。
設(shè)計(jì)本智能管理系統(tǒng)基于三個(gè)指導(dǎo)思想:獨(dú)立性、高可靠和低成本。本系統(tǒng)的供電獨(dú)立于工作模塊,即使其他模塊處于斷電狀態(tài),本智能系統(tǒng)仍可照常工作。采用一片FPGA和少量外圍設(shè)備,最大限度地減少了元器件的數(shù)量和品種。同時(shí),在智能管理模塊和溫度傳感器之間采用簡(jiǎn)單可靠的1-wire總線協(xié)議來(lái)傳遞信息,各工作模塊之間采用I2C總線協(xié)議來(lái)傳遞信息,這些都為日后擴(kuò)展系統(tǒng)規(guī)模及其功能提供了很好的技術(shù)方向。