《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于PSoC的數(shù)字電壓表設(shè)計(jì)
基于PSoC的數(shù)字電壓表設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2014年第3期
王鳳英1,沈湘洪1,劉金豹2
(1.內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010; 2.呼和浩特市第三職業(yè)中等專業(yè)學(xué)校
摘要: 采用Cypress公司生產(chǎn)的PSoC3芯片實(shí)現(xiàn)了一個(gè)數(shù)字電壓表的設(shè)計(jì)。設(shè)計(jì)使用芯片集成的A/D轉(zhuǎn)換模塊完成模數(shù)轉(zhuǎn)換,并且通過程序調(diào)用讀取相應(yīng)的數(shù)字量及芯片強(qiáng)大的LCD顯示模塊,將轉(zhuǎn)換后的數(shù)字量和相應(yīng)的模擬量顯示出來。本設(shè)計(jì)具有硬件設(shè)計(jì)簡單、軟件設(shè)計(jì)圖形化、可以充分利用PSoC提供的固件元件的優(yōu)點(diǎn)。
關(guān)鍵詞: PSoC PSoC3 電壓表 A/D LCD PSoC creator
Abstract:
Key words :

摘  要: 采用Cypress公司生產(chǎn)的PSoC3芯片實(shí)現(xiàn)了一個(gè)數(shù)字電壓表的設(shè)計(jì)。設(shè)計(jì)使用芯片集成的A/D轉(zhuǎn)換模塊完成模數(shù)轉(zhuǎn)換,并且通過程序調(diào)用讀取相應(yīng)的數(shù)字量及芯片強(qiáng)大的LCD顯示模塊,將轉(zhuǎn)換后的數(shù)字量和相應(yīng)的模擬量顯示出來。本設(shè)計(jì)具有硬件設(shè)計(jì)簡單、軟件設(shè)計(jì)圖形化、可以充分利用PSoC提供的固件元件的優(yōu)點(diǎn)。
關(guān)鍵詞: PSoC3;電壓表;A/D;LCD;PSoC creator

 隨著電子技術(shù)的發(fā)展,電子測量技術(shù)對測量精度和功能的要求也越來越高,而數(shù)字電壓表作為實(shí)驗(yàn)室的基本測量設(shè)備,可以很好地滿足測量的精度和功能。數(shù)字電壓表DVM(Digital Voltmeter)采用數(shù)字化測量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表[1]。在設(shè)計(jì)的過程中,通常要用到A/D轉(zhuǎn)換芯片,一般在A/D轉(zhuǎn)換芯片的模擬輸入端輸入模擬信號(hào)(電壓),然后通過微型機(jī)的I/O端口讀取A/D轉(zhuǎn)換芯片數(shù)字量輸出端的數(shù)字信號(hào),接著通過線性化處理得到相應(yīng)的模擬量并顯示出來。在這個(gè)過程中,為了驗(yàn)證轉(zhuǎn)換的準(zhǔn)確性,會(huì)使用電壓表測量轉(zhuǎn)化的輸入電壓與轉(zhuǎn)化后的顯示電壓進(jìn)行比較。在這個(gè)過程中,會(huì)遇到兩個(gè)問題:(1)一般的電壓表精度不夠;(2)不能看到此時(shí)的數(shù)字量。本設(shè)計(jì)采用PSoC3很好地解決了這個(gè)問題,PSoC3中集成的A/D轉(zhuǎn)換模塊轉(zhuǎn)換精度最大可以達(dá)到16位,基本可以滿足所有的精度要求;通過模塊化的調(diào)用,還可以讀取相應(yīng)的數(shù)字量,并且使用LCD顯示模塊實(shí)時(shí)顯示出來。傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數(shù)字化時(shí)代的需求。數(shù)字電壓表的設(shè)計(jì)和開發(fā)已有很多類型和款式,采用PSoC設(shè)計(jì)的數(shù)字電壓表,具有精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便等優(yōu)點(diǎn)。
1 系統(tǒng)總體設(shè)計(jì)
 圖1為基于PSoC的數(shù)字電壓表設(shè)計(jì)的原理方框圖。其工作原理:利用模擬總線將外部的電壓信號(hào)傳送到A/D轉(zhuǎn)換模塊,將得到的數(shù)字信號(hào)傳送給LCD驅(qū)動(dòng)模塊,然后通過數(shù)字總線將要顯示的內(nèi)容傳送給外部的LCD液晶顯示屏。在本設(shè)計(jì)中采用Cy83c3866AXI-040作為控制芯片,此處理器為PSoC3可編程混合信號(hào)處理器。此處理器以8051作為內(nèi)核,包含了非易失性存儲(chǔ)子系統(tǒng)、編程和調(diào)試子系統(tǒng)、輸入和輸出、時(shí)鐘資源、電源、數(shù)字子系統(tǒng)及模擬子系統(tǒng)。在本設(shè)計(jì)中主要使用芯片上集成的8051處理器、ADC模塊及LCD驅(qū)動(dòng)模塊來實(shí)現(xiàn)數(shù)字電壓表的設(shè)計(jì)。

 Cypress半導(dǎo)體公司推出的可編程片上系統(tǒng)PSoC(Programmable System on Chip),集微控制器、可編程數(shù)字陣列和可編程模擬陣列為一體,實(shí)現(xiàn)“在系統(tǒng)可編程”,既滿足了一般電子系統(tǒng)的資源要求,又順應(yīng)了現(xiàn)代電子設(shè)計(jì)方法的發(fā)展方向,非常適合用于模數(shù)混和的嵌入式系統(tǒng)設(shè)計(jì)[2-3]。新一代產(chǎn)品PSoC3分別包含8位8051微處理器、32位ARMCortex-M3微處理器。
2 軟件設(shè)計(jì)
2.1 開發(fā)環(huán)境PSoC Creator簡介

 PSoC Creator是一個(gè)功能齊全的圖形化軟硬件設(shè)計(jì)及編程環(huán)境,帶有創(chuàng)新性的圖形設(shè)計(jì)界面,可以對PSoC3芯片進(jìn)行硬件設(shè)計(jì)、軟件設(shè)計(jì)及調(diào)試、工程的編譯和下載。
 圖形化的設(shè)計(jì)入口簡化了配置一個(gè)特殊元件的任務(wù)。設(shè)計(jì)者可以從元件庫內(nèi)選擇所需要的功能,并將其放置在設(shè)計(jì)中。所有的參數(shù)化元件都有一個(gè)編輯器對話框,允許設(shè)計(jì)者根據(jù)需要對功能進(jìn)行裁減。
PSoC Creator軟件平臺(tái)自動(dòng)配置時(shí)鐘和布線I/O到所選擇的引腳,并且為給定的應(yīng)用程序接口函數(shù)API對硬件進(jìn)行控制。在開發(fā)的任意階段,能自由地修改硬件配置,甚至是目標(biāo)處理器,也可修改C編譯器和進(jìn)行性能評(píng)估。
 PSoC Creator軟件平臺(tái)的特點(diǎn)主要有:集成了原理圖捕獲功能用于設(shè)備配置;提供了豐富的元件IP核資源;集成了源代碼編輯器;內(nèi)置調(diào)試器;支持自定義元件創(chuàng)建(設(shè)計(jì)重用)功能;PSoC 3編譯器——Keil CA51(無代碼大小限制);PSoC 5編譯器——CodeSourcery TM的Sourcery TM Lite版[4]。
 圖2為在PSoC Creator下實(shí)現(xiàn)的數(shù)字電壓表程序功能圖。在本設(shè)計(jì)中包含INPUT、ADC_Delsig及CharacterLCD三個(gè)模塊,INPUT用來將外部電壓信號(hào)輸入到ADC_Delsig,ADC_Delsig將范圍為(0~Vdda)V的電壓轉(zhuǎn)換成12位的二進(jìn)制數(shù)字量,通過線性化處理可以得到相應(yīng)的電壓值,并通過CharacterLCD驅(qū)動(dòng)模塊連接外部的LCD顯示屏,將數(shù)字量和模擬量都顯示出來。

 圖3為INPUT參數(shù)配置圖。在這個(gè)對話框中,設(shè)置Type為“Analog”,因?yàn)樵谶@個(gè)設(shè)計(jì)中,要求從外部輸入模擬電壓信號(hào),所以采用模擬輸入模式。


2.3 程序流程圖設(shè)計(jì)
    圖7為數(shù)字電壓表總體程序流程圖設(shè)計(jì)。在PSoC Creator開發(fā)環(huán)境支持下,編譯器自動(dòng)生成了固件元件的C語言源代碼。但是,中斷子程序和main子程序僅提供了程序框架,子程序內(nèi)容需要開發(fā)者根據(jù)固件元件原理圖所要完成的任務(wù)來編寫。在工作空間瀏覽區(qū)找到元件的源程序,打開后在編輯區(qū)找到中斷子程序框架,在里面嵌入應(yīng)用的源代碼即可。在main主函數(shù)中需要對使用的元件進(jìn)行初始化和啟動(dòng)(有的元件不需要),根據(jù)應(yīng)用程序流程調(diào)用元件的子程序和函數(shù)。數(shù)字電壓表的程序見下所示:

 

 

#include<device.h>
#include"stdio.h"
#include"math.h"
void main()
{   uint32 result;
    uint32 value;
    char displayStr[15]={′0′};ADC_DelSig_1_Start();
    ADC_DelSig_1_StartConvert();
    LCD_Char_1_Start();
    LCD_Char_1_Position(0u,0u);
    LCD_Char_1_PrintString("ADC Output:");
    LCD_Char_1_Position(1u,0u);
    LCD_Char_1_PrintString("voltage:");
for(;;)
    {ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT);result=ADC_DelSig_1_GetResult16();
value=result*3300/4096.0;
if((value<0)||(value>3400))value=0;
LCD_Char_1_Position(0,strlen("ADC Output:"));
LCD_Char_1_PrintInt16(ADC_DelSig_1_GetResult16());
sprintf(displayStr,"%7ldmV",value);
LCD_Char_1_Position(1,7);
LCD_Char_1_PrintString(displayStr);        }
}
    利用PSoC強(qiáng)大的圖形化集成開發(fā)環(huán)境Creator提供的固件元件實(shí)現(xiàn)數(shù)字電壓表的設(shè)計(jì),通過簡單的軟件設(shè)計(jì)實(shí)現(xiàn)硬件電路是一種值得重視和推廣的嵌入式系統(tǒng)開發(fā)方法。
參考文獻(xiàn)
[1] 徐毅,趙龍,王海峰.基于單片機(jī)的新型數(shù)字電壓表設(shè)計(jì)[J].河南科技,2010(11):44-45.
[2] 葉朝輝,華成英.可編程片上系統(tǒng)(PSoC)原理及實(shí)訓(xùn)[M].北京:清華大學(xué)出版社,2008.
[3] 王瑩,李健.PSoC3和PSoC5:可編程嵌入式SoC的新時(shí)代[J].電子產(chǎn)品世界,2009(10):7-9.
[4] Cypress發(fā)布PSoC Creator 集成開發(fā)環(huán)境.http://www.mcuol.com/News/214/33438.htm[OL].

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。