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

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

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

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

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

 圖3為INPUT參數配置圖,。在這個對話框中,,設置Type為“Analog”,因為在這個設計中,,要求從外部輸入模擬電壓信號,,所以采用模擬輸入模式。


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

 

 

#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強大的圖形化集成開發(fā)環(huán)境Creator提供的固件元件實現數字電壓表的設計,通過簡單的軟件設計實現硬件電路是一種值得重視和推廣的嵌入式系統(tǒng)開發(fā)方法,。
參考文獻
[1] 徐毅,,趙龍,王海峰.基于單片機的新型數字電壓表設計[J].河南科技,,2010(11):44-45.
[2] 葉朝輝,,華成英.可編程片上系統(tǒng)(PSoC)原理及實訓[M].北京:清華大學出版社,2008.
[3] 王瑩,,李健.PSoC3和PSoC5:可編程嵌入式SoC的新時代[J].電子產品世界,,2009(10):7-9.
[4] Cypress發(fā)布PSoC Creator 集成開發(fā)環(huán)境.http://www.mcuol.com/News/214/33438.htm[OL].

此內容為AET網站原創(chuàng),未經授權禁止轉載,。