基于FPGA的具有數(shù)字顯示的水溫測控系統(tǒng)
摘要:電壓、電流、溫度等模擬量的監(jiān)測在工業(yè)生活中都有很廣泛的應用,通過監(jiān)測到的數(shù)據(jù),可以對其進行及時調(diào)整,為人們的生產(chǎn)生活帶來了便利與保證。系統(tǒng)主電路采用Actel公司提供的Fusion系列FPGA,用以實現(xiàn)溫度控制。由于加熱和制冷部分的條件限制,只采用模擬的方式。電路可實現(xiàn)溫度的顯示,設(shè)置上、下限溫度,超出范圍報警以及與PC機通信的功能。系統(tǒng)測量精度和控制精度良好。同時,基于FPGA的硬件系統(tǒng)設(shè)計方法操作簡單,開發(fā)成本較低,已成為當今世界上嵌入式系統(tǒng)硬件開發(fā)的主流方法之一。
關(guān)鍵詞:Fusion;內(nèi)部的溫度監(jiān)控模塊;ADC模塊;OLED顯示
測控技術(shù)自古以來就是人類生活和生產(chǎn)的重要組成部分。隨著科技的發(fā)展,測控技術(shù)已進入了全新的時代。近年來。電子技術(shù)的快速發(fā)展,使得計算機廣泛用于自動檢測和自動控制系統(tǒng)中,以致電壓、電流、溫度等的監(jiān)測越來越重要,現(xiàn)在利用數(shù)字系統(tǒng)處理模擬信號的情況也越來越多,但數(shù)字系統(tǒng)所處理的信號都是不連續(xù)的數(shù)字信號,而待測的電壓、電流、溫度等都是模擬量,這就需要將監(jiān)測到的模擬信號轉(zhuǎn)換成數(shù)字信號,最終由系統(tǒng)進行處理。Actel公司出產(chǎn)的新型FPGAFusion系列解決了數(shù)/模轉(zhuǎn)換及上電不可運行等一系列難題。Actel公司宣布推出全新的Fusion融合技術(shù),為解決混合式信號的方案帶來真正可編程功能的嶄新技術(shù)。融合技術(shù)率先將混合信號的模擬功能、FLASH內(nèi)存和FPGA結(jié)構(gòu)集成于單片可編程系統(tǒng)芯片中。融合技術(shù)將可編程邏輯的優(yōu)勢帶進應用領(lǐng)域中,而這些應用領(lǐng)域直至目前只能采用分立模擬元件和混合信號ASIC供應商提供的器件。與此同時,當融合技術(shù)與Actel的ARM7和以8051為基礎(chǔ)的軟MCU內(nèi)核共用時,可作為終極的軟處理器平臺。這項新技術(shù)能發(fā)揮Actel以FLASH為基礎(chǔ)FPGA的獨特優(yōu)勢,包括高絕緣性、三井結(jié)構(gòu)和支持高壓晶體管的能力,以滿足混合信號系統(tǒng)設(shè)計的嚴格要求。
1 方案選擇
該系統(tǒng)若根據(jù)要求可有多種實現(xiàn)方案。
方案一 該方案是傳統(tǒng)的一位式模擬控制方案。選用模擬電路,用電位器設(shè)定給定值,當反饋的溫度值與設(shè)定值比較后,決定加熱或不回熱。但它使系統(tǒng)受環(huán)境的影響大,不能實現(xiàn)復雜的控制算法,不能用數(shù)碼顯示,不能用鍵盤設(shè)定。
方案二 該方案是傳統(tǒng)的二位式模擬控制方案。其基本思想與方案一相同,但由于采用上、下限比較電路,所以控制精度提高。這種方法還是模擬控制方式,因此也不能實現(xiàn)復雜的控制算法,而使控制精度做得較高,此外仍不能用數(shù)碼顯示和鍵盤設(shè)定。
方案三 該方案采用CortexM1 FPGA系統(tǒng)來實現(xiàn)。系統(tǒng)硬件用單芯片完成多方面功能,軟件編程靈活,自由度大,可用軟件編程實現(xiàn)各種控制算法和邏輯控制,還可實現(xiàn)數(shù)碼顯示和鍵盤設(shè)定等多種功能,系統(tǒng)電路框圖如圖1所示。
方案一和方案二是傳統(tǒng)的模擬控制方式,而模擬控制系統(tǒng)難以實現(xiàn)復雜的控制規(guī)律,控制方案的修改也較麻煩。方案三是采用以CortexM1為控制核心的控制系統(tǒng),尤其對溫度控制,它能達到模擬控制達不到的控制效果,且可實現(xiàn)顯示、鍵盤設(shè)定等多種功能,又易于擴展,大大提高了系統(tǒng)的智能化,也使得系統(tǒng)所測結(jié)果精度大大提高。故選擇方案三。[!--empirenews.page--]
2 器件介紹
該系統(tǒng)采用的處理器核為32位ARM CortexM1,它是ARM與Actel合作開發(fā),是首個專門針對FPGA應用而設(shè)計的ARM處理器。CortexM1處理器的運行速度高達68 MHz,可用4 353個邏輯單元(Tiles)來實現(xiàn)。CortexM1處理器采用三級流水線結(jié)構(gòu),其指令集使用了經(jīng)典的Thumb-2指令集中一個子集,所以無需更改,即可利用現(xiàn)有的Thumb代碼。配置的CortexM1處理器可以連接到先進高性能總線(AHB)上,使得設(shè)計工程師能夠構(gòu)建自己的子系統(tǒng),并能輕易增添外設(shè)功能。
2.1 數(shù)據(jù)采集部分
傳感器部分既可采用熱敏電阻,也可采用集成的溫度傳感器。由于熱敏電阻的精度、重復性、可靠性都比較差,為了配合開發(fā)板的需求,在此采用晶體管作為溫度傳感器。系統(tǒng)溫度檢測數(shù)據(jù)采集部分原理如圖2所示。
這里溫度傳感器采用的是晶體管2N3904,它是雙極型晶體管,在使用中要按照圖2所示,將其集電極與基極連接起來使用。晶體管的溫度將會影響PN結(jié)上電流與電壓的關(guān)系,這是Fusion器件能夠?qū)崿F(xiàn)溫度監(jiān)控的理論基礎(chǔ)。送到A/D轉(zhuǎn)換器的電壓VADC由下面的公式可以得出:
式中:n為晶體管的理想系數(shù)。設(shè)計中,2N3904的n=1.008,近似取1。C為模塊中ADC的放大倍數(shù),C=12.5;I,i為模塊中用到的兩個電流源,I=100μA,i=1OμA;k為波爾茲曼常量,k=1.3806×10-23J/K;q為質(zhì)子的電量,q=1.602×10-19C,正因為采用的q,所以ADC測得溫度值單位為開爾文(Kelvin);T為系統(tǒng)要測量的溫度,此處為傳感器所測量溫度。
2.2 鍵盤控制和控制電路
因為系統(tǒng)在運行時可以與PC通信,故可直接使用PC機設(shè)定上、下限溫度值,不需要額外設(shè)計鍵盤電路。但是由于條件有限,對于加熱和冷卻系統(tǒng)可采用簡單的模擬方式實現(xiàn),通過系統(tǒng)給定信號驅(qū)動繼電器電路,完成加熱和冷卻效果,并且在超出范圍后進行報警。[!--empirenews.page--]
2.3 數(shù)字顯示
該系統(tǒng)采用較先進的液晶顯示屏對結(jié)果進行顯示,形象直觀。這里采用的是有機電致發(fā)光器件(Organic Light Emitting Device。OLED)SSD1303T6。OLED相對于液晶顯示器LCD來說,其主要優(yōu)勢在于驅(qū)動電壓低,功耗小,主動發(fā)光,平板超薄,響應速度快,工藝相對簡單等。 SSD1303是晶門公司采用TAB封裝的單色OLED模組。這種基于CMOS工藝的驅(qū)動IC集成了行、列驅(qū)動器、控制器和SRAM,可支持的最大分辨率為132×64,可以顯示4色區(qū)域色,并可編程實現(xiàn)256灰度.可實現(xiàn)水平滾動顯示。SSD1303提供有6800,8080,SPI等用于與微處理器(MCU)進行通信的顯示接口模式。該設(shè)計中采用SPI接口進行通信。由于OLED控制芯片中未包含字庫,這里自行設(shè)計了字庫,采用8×8點陣顯示。字庫設(shè)計范例如圖3所示,其為字符“C”的字庫模型。
該設(shè)計中所需字符比較簡單,按照需要自行設(shè)計了字符“O~9”,“.”,“:”,“T”。由于字庫較小,采用數(shù)組方式存放數(shù)據(jù)。如下程序所示。
{0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00}, //[1]
{0x00,0x00,0xf1,0x91,0x91,0x8f,0x00,0x00}, //[2]
{0x00,0x00,0x91,0x91,0x91,0xff,0x00,0x00}, //[3]
{0x00,0x00,0x1f,0x10,0x10,0xff,0x00,0x00}, //[4]
{0x00,0x00,0x9f,0x91,0x91,0xf1,0x00,0x00}, //[5]
{0x00,0x00,0xff,0x91,0x91,0xf1, 0x00, 0x00}, //[6]
{0x00,0x00,0x01,0x01,0x01,0xff,0x00,0x00}, //[7]
{0x00,0x00,0xff,0x91,0x91,0xff,0x00,0x00}, //[8]
{0x00,0x00,0x8f,0x89,0x89,0xff,0x00,0x00}. //[9]
{0x04,0x02,0x82,0xfe,0x82,0x02,0x04.0x00}, //T[10]
{0x00,0x60,0x60,0x00, 0x00,0x00,0x00,0x00}, //.[11]
{0x00,0x6c,0x6c,0x00,0x00,0x00.0x00.0x00}, //:[12]
};
3 系統(tǒng)設(shè)計
這里設(shè)計的溫度測控系統(tǒng)采用Actel公司的SoPC解決方案,它基于嵌入式軟核CortexM1核,在性能上CortexM1可滿足當前大部分嵌入式產(chǎn)品的設(shè)計。該系統(tǒng)的主電路采用Actel公司提供的Fusion系列FPGA,實現(xiàn)溫度控制,由于加熱和制冷部分條件的限制,只采用模擬方式。電路可實現(xiàn)溫度顯示,設(shè)置上、下限溫度,超出范圍報警以及與PC機通信的功能。系統(tǒng)測量精度和控制精度均良好。[!--empirenews.page--]
3.1 硬件設(shè)計原理
系統(tǒng)的硬件平臺大致可分為以下幾個功能模塊:模擬輸入模塊、微處理器及其外圍模塊、UART模塊、時鐘產(chǎn)生模塊、PWM模塊。這些功能模塊都由Actel公司提供的知識產(chǎn)權(quán)核(IP核)組成。在Coreconsole中,將各個模塊配置,通過模塊的總線接口與系統(tǒng)總線AHB,APB互聯(lián)。最終的結(jié)果如圖4所示。其中,右上角的信號連接為連接到頂層模塊的信號。
如圖4所示,其中CortexM1為微處理器核,負責處理采集到數(shù)據(jù),并產(chǎn)生相應的控制信號給外圍控制電路;CoreAHBNvm為控制FLASH的軟核,使系統(tǒng)上電即可運行,掉電不丟失;CoreAI為模擬輸入模塊,負責將外圍采集的模擬信號數(shù)據(jù)轉(zhuǎn)換為數(shù)字信號。交由處理器處理;Coreu- ARTapb為串口通行核,負責將處理的數(shù)據(jù)通過串口發(fā)送給PC,使其能實時交互和控制;Core- GPIO和CoreGPlO_01兩個核為通用I/O核,分別負責OLED的數(shù)據(jù)通信和外圍控制信號的輸出。
系統(tǒng)的外圍溫度超過上限報警和加熱模擬的電路如圖5所示。
3.2 軟件設(shè)計部分
系統(tǒng)主要功能是將系統(tǒng)采集到的模擬信號通過硬件轉(zhuǎn)換成數(shù)字信號,將監(jiān)測到的數(shù)據(jù)通過UART發(fā)送到PC的超級終端加以顯示出來;并且可在系統(tǒng)運行初始階段設(shè)置溫度的上、下限值,在超出溫度范圍時報警,且產(chǎn)生相應的控制信號進行加熱或者冷卻。各個模塊的運行由微處理器CortexM1進行協(xié)調(diào)。系統(tǒng)不斷監(jiān)測模擬輸入端,如果模擬輸入有變化,就進行A/D轉(zhuǎn)換,并將轉(zhuǎn)換后的結(jié)果發(fā)送給CortexM1;CortexM1再將接收到的結(jié)果在規(guī)定時間內(nèi)通過UART發(fā)送到PC的超級終端顯示和在系統(tǒng)配接的OLED屏上彩色顯示。
該設(shè)計的系統(tǒng)應用軟件是在Actel公司的SoftConsole開發(fā)平臺上完成的。由于程序比較復雜,可以分為幾個子程序,具體包括:對CoreUART,CoreAI,LED屏等的初始化配置,以及主要功能中CortexM1.c主程序的完成。系統(tǒng)流程圖如圖6所示。
4 結(jié) 語
經(jīng)實際調(diào)試與運行,超級終端上得到了監(jiān)測到的溫度值,并且能實現(xiàn)溫度超出范圍時報警和正常控制下實現(xiàn)加熱和冷卻的效果。該設(shè)計能實時測量并顯示溫度值,且精度高,反應快,達到了預期設(shè)計目標。