王鳳英 ,沈湘洪 ,劉金豹
(1.內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010;2.呼和浩特市第三職業(yè)中等專業(yè)學(xué)校,內(nèi)蒙古 呼和浩特 010030)
隨著電子技術(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)換芯片的模擬輸入端輸入模擬信號(電壓),然后通過微型機(jī)的I/O端口讀取A/D轉(zhuǎn)換芯片數(shù)字量輸出端的數(shù)字信號,接著通過線性化處理得到相應(yīng)的模擬量并顯示出來。在這個(gè)過程中,為了驗(yàn)證轉(zhuǎn)換的準(zhǔn)確性,會使用電壓表測量轉(zhuǎn)化的輸入電壓與轉(zhuǎn)化后的顯示電壓進(jìn)行比較。在這個(gè)過程中,會遇到兩個(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為基于PSoC的數(shù)字電壓表設(shè)計(jì)的原理方框圖。其工作原理:利用模擬總線將外部的電壓信號傳送到A/D轉(zhuǎn)換模塊,將得到的數(shù)字信號傳送給LCD驅(qū)動模塊,然后通過數(shù)字總線將要顯示的內(nèi)容傳送給外部的LCD液晶顯示屏。在本設(shè)計(jì)中采用Cy83c3866AXI-040作為控制芯片,此處理器為PSoC3可編程混合信號處理器。此處理器以8051作為內(nèi)核,包含了非易失性存儲子系統(tǒng)、編程和調(diào)試子系統(tǒng)、輸入和輸出、時(shí)鐘資源、電源、數(shù)字子系統(tǒng)及模擬子系統(tǒng)。在本設(shè)計(jì)中主要使用芯片上集成的8051處理器、ADC模塊及LCD驅(qū)動模塊來實(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微處理器。
圖1 數(shù)字電壓表原理框圖
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軟件平臺自動配置時(shí)鐘和布線I/O到所選擇的引腳,并且為給定的應(yīng)用程序接口函數(shù)API對硬件進(jìn)行控制。在開發(fā)的任意階段,能自由地修改硬件配置,甚至是目標(biāo)處理器,也可修改C編譯器和進(jìn)行性能評估。
PSoC Creator軟件平臺的特點(diǎn)主要有:集成了原理圖捕獲功能用于設(shè)備配置;提供了豐富的元件IP核資源;集成了源代碼編輯器;內(nèi)置調(diào)試器;支持自定義元件創(chuàng)建 (設(shè)計(jì)重用)功能;PSoC 3編譯器——Keil CA51(無代碼大小限制);PSoC5編譯器——CodeSourcery TM 的 Sourcery TM Lite版[4]。
圖2為在PSoC Creator下實(shí)現(xiàn)的數(shù)字電壓表程序功能圖。在本設(shè)計(jì)中包含 INPUT、ADC_Delsig及CharacterLCD三個(gè)模塊,INPUT用來將外部電壓信號輸入到ADC_Delsig,ADC_Delsig將范圍為 (0~Vdda)V 的電壓轉(zhuǎn)換成12位的二進(jìn)制數(shù)字量,通過線性化處理可以得到相應(yīng)的電壓值,并通過CharacterLCD驅(qū)動模塊連接外部的LCD顯示屏,將數(shù)字量和模擬量都顯示出來。
圖2 程序功能圖
圖3為INPUT參數(shù)配置圖。在這個(gè)對話框中,設(shè)置Type為“Analog”,因?yàn)樵谶@個(gè)設(shè)計(jì)中,要求從外部輸入模擬電壓信號,所以采用模擬輸入模式。
圖3 INPUT參數(shù)配置
模數(shù)轉(zhuǎn)換ADC_Delsig的屬性配置如圖4所示,轉(zhuǎn)換模式為 Continuous,分辨率為 12 bit,時(shí)鐘頻率為 320 kHz,輸入模式為Single,輸入電壓范圍為Vass to Vdda,即0~5 V。
圖4 ADC_Delsig參數(shù)配置
圖5為CharacterLCD參數(shù)配置圖。
圖5 CharacterLCD參數(shù)配置
圖6為輸入輸出端口分配圖。分配引腳后,就可以下載到芯片,觀察結(jié)果。
圖6 輸入輸出端口分配
圖7 總流程圖
圖7為數(shù)字電壓表總體程序流程圖設(shè)計(jì)。在PSoC Creator開發(fā)環(huán)境支持下,編譯器自動生成了固件元件的C語言源代碼。但是,中斷子程序和main子程序僅提供了程序框架,子程序內(nèi)容需要開發(fā)者根據(jù)固件元件原理圖所要完成的任務(wù)來編寫。在工作空間瀏覽區(qū)找到元件的源程序,打開后在編輯區(qū)找到中斷子程序框架,在里面嵌入應(yīng)用的源代碼即可。在main主函數(shù)中需要對使用的元件進(jìn)行初始化和啟動(有的元件不需要),根據(jù)應(yīng)用程序流程調(diào)用元件的子程序和函數(shù)。數(shù)字電壓表的程序見下所示:
利用PSoC強(qiáng)大的圖形化集成開發(fā)環(huán)境Creator提供的固件元件實(shí)現(xiàn)數(shù)字電壓表的設(shè)計(jì),通過簡單的軟件設(shè)計(jì)實(shí)現(xiàn)硬件電路是一種值得重視和推廣的嵌入式系統(tǒng)開發(fā)方法。
[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].