基于CPLD的智能數(shù)字電壓表設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
CPLD ( Complex Programmable Logic Device ) 是新型的可編程邏輯器件,與傳統(tǒng)ASIC相比,具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)等優(yōu)點(diǎn),特別適合于產(chǎn)品的樣品開發(fā)和小批量生產(chǎn)。傳統(tǒng)的數(shù)字電壓表多以單片機(jī)為控制核心,芯片集成度不高,系統(tǒng)連線復(fù)雜,難以小型化,尤其在產(chǎn)品需求發(fā)生變化時(shí),不得不重新布版、調(diào)試,增加了投資風(fēng)險(xiǎn)和成本。而采用CPLD進(jìn)行產(chǎn)品開發(fā),可以靈活地進(jìn)行模塊配置,大大縮短了開發(fā)周期,也有利于數(shù)字電壓表向小型化、集成化的方向發(fā)展。
2系統(tǒng)原理及組成
系統(tǒng)組成原理框圖如圖1所示。系統(tǒng)的控制核心是一片CPLD芯片,它由三個(gè)功能模塊構(gòu)成: A/D轉(zhuǎn)換時(shí)序控制模塊、碼制變換模塊以及顯示控制/驅(qū)動(dòng)模塊。三個(gè)模塊的功能分別為發(fā)出控制信號(hào)啟動(dòng)A/D轉(zhuǎn)換及讀取采樣值、對(duì)AD采樣值進(jìn)行碼制轉(zhuǎn)換、發(fā)出控制信號(hào)驅(qū)動(dòng)LED/LCD顯示相應(yīng)數(shù)據(jù)。
系統(tǒng)工作原理:測(cè)量信號(hào)經(jīng)過信號(hào)預(yù)處理,變換為0~2.5V范圍內(nèi)的有效信號(hào)后送入A/D轉(zhuǎn)換電路中,然后A/D轉(zhuǎn)換時(shí)序控制模塊發(fā)出控制信號(hào),啟動(dòng)A/D 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,A/D采樣得到的數(shù)字信號(hào)在碼制變換模塊中轉(zhuǎn)換為相應(yīng)的顯示代碼,最后經(jīng)顯示控制/驅(qū)動(dòng)模塊發(fā)出控制與驅(qū)動(dòng)信號(hào),推動(dòng)外部的顯示模塊(LED/LCD)顯示相應(yīng)的數(shù)據(jù)。
3CPLD功能模塊設(shè)計(jì)
智能數(shù)字電壓表的控制核心CPLD的三個(gè)功能模塊皆用VHDL語言編程實(shí)現(xiàn),下面主要介紹CPLD的三個(gè)功能模塊的設(shè)計(jì)。
3.1 A/D轉(zhuǎn)換時(shí)序仿真模塊AD_CONTROL
ANALOG DEVICES公司生產(chǎn)的AD7715是一片16位的∑-Δ ADC集成電路。它的主要特性有:3V/5V工作電壓,單/雙極性輸入;可編程改變?cè)鲆鏋?,2,32,128倍;在單極性輸入狀態(tài)下模擬電壓輸入范圍允許為0~20mV, 0~80mV, 0~1.25V, 0~2.5V不等(有利于提高精度);三線串行接口;支持差分輸入;低功耗(450 mF [email=Max@3V]Max@3V[/email])。在本系統(tǒng)中AD7715的作用是將0~2.5V的輸入模擬信號(hào)轉(zhuǎn)換為16位的高精度的數(shù)字信號(hào)供CPLD處理。AD_CONTROL模塊用于控制AD7715的啟動(dòng)、讀、寫等操作。設(shè)計(jì)的AD_CONTROL模塊如圖2所示,其VHDL語言的 ENTITY定義部分如下:
如圖所示,二者的接口信號(hào)線直接連接并由AD_CONTROL模塊模擬產(chǎn)生AD7715芯片的各個(gè)接口信號(hào),完成ADC的啟動(dòng)、讀、寫操作。AD7715的工作模式由內(nèi)部寄存器(Communications Register,Setup Register,Test Register,Data Register)中的控制字決定。內(nèi)部寄存器的數(shù)據(jù)寫入和讀出都由CS,DRDY,SCLK信號(hào)控制。當(dāng) AD7715被訪問時(shí),SCLK腳應(yīng)出現(xiàn)一次帶上升沿的高電平,其時(shí)鐘頻率應(yīng)為9.2kHz。這是關(guān)鍵信號(hào),其他信號(hào)均以此信號(hào)作為時(shí)基。因此,CPLD 中的AD_CONTROL模塊的功能之一就是提供SCLK 以及其他信號(hào)的嚴(yán)格時(shí)序。圖3、圖4分別為AD_CONTROL模塊讀、寫AD7715時(shí)序圖。
3. 2 碼制變換模塊DATA_CONVERSION
在此碼制變換模塊DATA_CONVERSION中主要實(shí)現(xiàn)的功能是將AD采樣送來的16位的二進(jìn)制數(shù)轉(zhuǎn)換為可被LED/LCD識(shí)別的七段LED顯示碼或字符型LCD碼。在本系統(tǒng)中此模塊包含了這兩種轉(zhuǎn)換功能以適應(yīng)顯示端不同的配置。為了達(dá)到這一目的,首先要將16位二進(jìn)制碼變換為BCD碼,然后再分別進(jìn)行轉(zhuǎn)換,得到七段顯示碼及字符型碼。在此模塊中各個(gè)BLOCK部分的碼制變換的VHDL程序可通過WHEN-ELSE語句進(jìn)行查表來實(shí)現(xiàn)。轉(zhuǎn)換的過程如圖5 所示。
3.3 顯示控制及驅(qū)動(dòng)模塊DISL_DRIVE
電壓值的顯示可由LED或LCD實(shí)現(xiàn)。在本系統(tǒng)中對(duì)于電壓值的顯示分為mV和V兩檔,所以需要在后面加上單位來明確,且本系統(tǒng)為低功耗系統(tǒng),若用LED則功耗相對(duì)過大,所以選用了一塊8×2字符型液晶顯示模塊MDSL81809-03,實(shí)現(xiàn)了低功耗,而且可帶單位雙排顯示,字體美觀大方。 DISL_DRIVE示,整個(gè)電路十分簡(jiǎn)潔。系統(tǒng)工作過程首先由 CPLD對(duì)AD7715及LCD進(jìn)行初始化,然后當(dāng)有輸入信號(hào)V i(0~2.5V)到AIN+端后,由CPLD通過接口向AD7715的寄存器中寫入控制字,使其對(duì)輸入的模擬信號(hào)進(jìn)行轉(zhuǎn)換,變?yōu)?6位的數(shù)字信號(hào)送到 DOUT端,由CPLD經(jīng)過碼制變換等處理后,再通過與LCD的接口驅(qū)動(dòng)并發(fā)送數(shù)據(jù),將電壓值及單模塊與LCD的接口如圖6所示。圖中LCD的RS端需輸入方波驅(qū)動(dòng),這可由CPLD編程提供。當(dāng)AD7715采樣完成后,由DATA_CONVERSION模塊將采樣數(shù)字信號(hào)轉(zhuǎn)換為L(zhǎng)CD可識(shí)別的字符型數(shù)據(jù)后,送至DISL_DRIVE模塊,再由其驅(qū)動(dòng)LCD,將字符型數(shù)據(jù)送到LCD的D0~D7端,實(shí)現(xiàn)顯示。
4系統(tǒng)設(shè)計(jì)和邏輯仿真
CPLD的三個(gè)功能模塊用VHDL語言描述,進(jìn)行綜合仿真后連接起來的系統(tǒng)電路原理圖如圖7所位顯示在LCD上。
本系統(tǒng)采用的CPLD芯片為ALTERA公司的EPF10K10LC84-4芯片,邏輯門數(shù)為10000門,用MAX+PLUSⅡ10.0軟件工具開發(fā)。設(shè)計(jì)輸入完成后,進(jìn)行整體的編譯和邏輯仿真,然后進(jìn)行轉(zhuǎn)換、延時(shí)仿真生成配置文件,最后下載至CPLD器件,完成結(jié)構(gòu)功能配置,實(shí)現(xiàn)其硬件功能。
5 總結(jié)
本系統(tǒng)是用CPLD實(shí)現(xiàn)的智能數(shù)字電壓表。隨著EDA技術(shù)的廣泛應(yīng)用,CPLD已成為現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的主要手段,CPLD目前正朝著更高速、更高集成度、更強(qiáng)功能和更靈活的方向發(fā)展。