摘 要: 介紹了電動(dòng)自動(dòng)車充電系統(tǒng)" title="充電系統(tǒng)">充電系統(tǒng)利用SPCE061A" title="SPCE061A">SPCE061A完成了系統(tǒng)控制、電池充電狀態(tài)的動(dòng)態(tài)顯示、語(yǔ)音報(bào)警和提示等功能。闡述了采用CPLD" title="CPLD">CPLD器件實(shí)現(xiàn)鍵盤掃描電路和I/O口擴(kuò)展的方法及仿真結(jié)果。實(shí)踐表明,利用SPCE061A和CPLD器件來(lái)完成系統(tǒng)的設(shè)計(jì),有著設(shè)計(jì)快速、調(diào)試方便、研制周期短、系統(tǒng)可靠性高等優(yōu)點(diǎn)。
關(guān)鍵詞: SPCE061A CPLD VerilogHDL" title="VerilogHDL">VerilogHDL 充電系統(tǒng)
電動(dòng)車由于具有無(wú)廢氣污染、無(wú)噪音、輕便美觀等特點(diǎn),受到眾多使用者的青睞。但使用中也暴露出它的局限性,那就是蓄電池的容量決定了它的使用范圍,而且存在充電時(shí)間長(zhǎng)的缺點(diǎn)。目前隨著電動(dòng)自行車的發(fā)展,急需解決的問(wèn)題就是如何實(shí)現(xiàn)快速靈活的充電。
隨著電子技術(shù)、可編程邏輯器件(FPGA,CPLD)、EDA技術(shù)的飛速發(fā)展,基于硬件編程語(yǔ)言的自上而下(TOP-TO-DOWN)設(shè)計(jì)方法給數(shù)字系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)帶來(lái)了革命性變革,僅使用單片機(jī)來(lái)實(shí)現(xiàn)系統(tǒng)控制的傳統(tǒng)方法正在被越來(lái)越多的以MCU+FPGA/CPLD為核心的最新設(shè)計(jì)理念取代。采用這種混合設(shè)計(jì)方案的最大優(yōu)點(diǎn)是兩者的優(yōu)勢(shì)互補(bǔ),電路結(jié)構(gòu)簡(jiǎn)單,這給數(shù)字電路系統(tǒng)的設(shè)計(jì)帶來(lái)極大的方便。利用CPLD控制的靈活性很容易對(duì)電路進(jìn)行在線修改,實(shí)現(xiàn)各種復(fù)雜的數(shù)字邏輯控制,這極大地?cái)U(kuò)展了單片機(jī)的功能。而且由于硬件編程語(yǔ)言的靈活性及CPLD具有的在系統(tǒng)編程(In-SystemProgram)特點(diǎn),大大縮短了系統(tǒng)開(kāi)發(fā)研制周期?;谏鲜鏊枷耄邪l(fā)了基于SPCE061A和CPLD的電動(dòng)自行車充電系統(tǒng)。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)組成及功能
該充電系統(tǒng)由凌陽(yáng)SPCE061A單片機(jī)、充電器、按鍵、CPLD、ACM12864液晶顯示器、上位機(jī)、語(yǔ)音電路等組成。充電器采用恒流、恒壓、浮充三階段充電方法對(duì)蓄電池進(jìn)行充電。SPCE061A單片機(jī)控制六個(gè)充電器對(duì)六個(gè)蓄電池同時(shí)進(jìn)行充電,同時(shí)檢測(cè)各個(gè)充電器的恒流、恒壓、浮充三個(gè)充電狀態(tài),并通過(guò)ACM12864液晶顯示器顯示各充電器的工作狀態(tài)。通過(guò)按鍵選擇各充電器的工作與停止,并可根據(jù)不同需要選擇快速充電工作方式或普通充電工作方式,對(duì)蓄電池進(jìn)行充電。系統(tǒng)上電進(jìn)入工作狀態(tài)后,當(dāng)單片機(jī)檢測(cè)到蓄電池已充滿的信號(hào)或發(fā)生其他緊急情況所產(chǎn)生的信號(hào)時(shí),可以自動(dòng)關(guān)閉充電器,實(shí)現(xiàn)充電器操作智能化。利用凌陽(yáng)SPCE061A單片機(jī)的語(yǔ)音功能對(duì)充電過(guò)程中所出現(xiàn)的故障進(jìn)行語(yǔ)音提示,使設(shè)計(jì)更人性化,便于操作。充電系統(tǒng)可以和上位機(jī)進(jìn)行通訊,從而實(shí)現(xiàn)系統(tǒng)之間的聯(lián)網(wǎng),有利于系統(tǒng)功能的擴(kuò)充。其系統(tǒng)組成框圖如圖1所示。
1.2 液晶顯示電路的設(shè)計(jì)
顯示部分采用ACM12864C液晶顯示器,該模塊價(jià)格低??刂破鳛镵S0107和KS0108,工作溫度范圍:0℃~50℃,儲(chǔ)存溫度范圍:-20℃~70℃,自帶負(fù)電壓發(fā)生電路,單+5V供電,帶背光,可與各種微處理器直接接口,數(shù)據(jù)讀寫操作不受外部時(shí)鐘控制,不帶漢字庫(kù),占空比為1/64,外部共有20條引腳來(lái)進(jìn)行外部接口。ACM12864C能夠充分滿足漢字顯示的要求。通過(guò)必要的程序設(shè)計(jì),可實(shí)現(xiàn)在充電過(guò)程中通過(guò)對(duì)充電器恒流、恒壓、浮充等信號(hào)的采集,在ACM12864液晶顯示器上實(shí)時(shí)動(dòng)態(tài)地顯示電池狀態(tài)。SPCE061A與ACM12864的接口如圖2所示。
1.3 鍵盤電路及I/O電路設(shè)計(jì)
本系統(tǒng)采用CPLD作為SPCE061A單片機(jī)和充電器的接口部分,實(shí)現(xiàn)I/O口擴(kuò)展,并完成鍵盤掃描功能。CPLD的使用,取代了一些專用集成電路,減少了系統(tǒng)的復(fù)雜性,提高了系統(tǒng)的集成度。本系統(tǒng)采用硬件電路來(lái)完成對(duì)鍵盤的掃描工作,當(dāng)有按鍵按下時(shí),CPLD內(nèi)部狀態(tài)發(fā)生改變。按鍵彈起后,內(nèi)部狀態(tài)經(jīng)CPLD自動(dòng)處理轉(zhuǎn)化為相應(yīng)的鍵值被送到輸出端口,供單片機(jī)掃描時(shí)取走鍵值。相對(duì)于軟件判別鍵盤工作狀態(tài),這樣不僅節(jié)省了SPCE061A的存儲(chǔ)空間,還極大地提高了系統(tǒng)的工作速度,更好地實(shí)現(xiàn)了實(shí)時(shí)性。
CPLD選用ALTERA公司生產(chǎn)的MAX7000S 系列中的EPM7128SLC84-15。該芯片共有84個(gè)引腳,采用EEPROM技術(shù)制作;內(nèi)含2 500個(gè)邏輯門,128個(gè)宏單元,時(shí)鐘工作頻率可達(dá)151.5MHz。通過(guò)CPLD對(duì)資源的整合,實(shí)現(xiàn)了用一片CPLD實(shí)現(xiàn)I/O電路、硬件掃描判別等,優(yōu)化了硬件的布局。如需改變系統(tǒng)的功能,只需改變相應(yīng)的源代碼而不是硬件結(jié)構(gòu),因而具有很大的靈活性。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 主程序設(shè)計(jì)
本系統(tǒng)的軟件部分采用C語(yǔ)言和匯編語(yǔ)言混合編制而成,因而該程序具有功能強(qiáng)大、設(shè)計(jì)完備等特點(diǎn)。主程序主要完成如下功能:
(1)系統(tǒng)初始化和參數(shù)的設(shè)置;
(2)充電器三種工作狀態(tài)的檢測(cè)和顯示;
(3)控制各個(gè)充電器的工作和停止以及快速充電和普通充電兩種充電方式的選擇;
(4)蓄電池正反極性的判斷,極性接反時(shí)自動(dòng)進(jìn)行語(yǔ)音報(bào)警;
(5)充電器充滿蓄電池時(shí)自動(dòng)關(guān)閉充電器;出現(xiàn)異常情況時(shí)自動(dòng)進(jìn)行語(yǔ)音報(bào)警;
(6)對(duì)快速充電時(shí)間長(zhǎng)短進(jìn)行設(shè)定。
系統(tǒng)主程序流程圖如圖3所示。
2.2 語(yǔ)音播放程序設(shè)計(jì)
SPCE061A的D/A轉(zhuǎn)換通道的硬件實(shí)現(xiàn)大致有兩種方式,一種是直接采用數(shù)/模轉(zhuǎn)換器DAC方式,另一種是采用脈寬調(diào)制PWM驅(qū)動(dòng)方式。SPCE061A音頻輸出的結(jié)構(gòu)就是由兩個(gè)DAC通道或一個(gè)PWM驅(qū)動(dòng)通道構(gòu)成。這兩種實(shí)現(xiàn)方式實(shí)質(zhì)都為數(shù)/模轉(zhuǎn)換,都是將數(shù)字信號(hào)轉(zhuǎn)換為電流模擬信號(hào)輸出。SPCE061A的音頻輸出采用雙通道模/數(shù)轉(zhuǎn)換方式,即數(shù)字信號(hào)通過(guò)10位DAC轉(zhuǎn)換成3mA驅(qū)動(dòng)的電流模擬信號(hào)輸出。語(yǔ)音提示輸出直接采用DAC通道,經(jīng)信號(hào)放大后,由揚(yáng)聲器輸出。語(yǔ)音播放流程圖如圖4所示。
程序編寫如下:
#INCLUDE “hardware.h”
# INCLUDE “S480.h”
Void Sound (unsigned int i)
{
SACM_S480_Initial(1);
SACM_S480_Volume(10);
SACM_S480_Play(i,1,0);
while(SACM_S480_Status()&0x0001);
{
SACM_S480_ServiceLoop();
}
SACM_S480_Stop();
}
2.3 CPLD程序設(shè)計(jì)
VerilogHDL語(yǔ)言是硬件描述語(yǔ)言,是描述硬件電路的功能、信號(hào)連接關(guān)系及定時(shí)關(guān)系的語(yǔ)言,通過(guò)語(yǔ)言編程來(lái)表示邏輯器件及系統(tǒng)的功能和行為。其具有設(shè)計(jì)技術(shù)齊全、方法靈活、支持廣泛、硬件描述能力強(qiáng)、與器件工藝無(wú)關(guān)、易于共享和復(fù)用等優(yōu)點(diǎn)。與VHDL相比,VerilogHDL是一種非常容易掌握的硬件描述語(yǔ)言,而掌握VHDL設(shè)計(jì)技術(shù)就比較困難。故采用VerilogHDL語(yǔ)言來(lái)設(shè)計(jì)接口電路,能充分利用VerilogHDL語(yǔ)言在系統(tǒng)級(jí)硬件描述上的優(yōu)點(diǎn)。
CPLD實(shí)現(xiàn)兩個(gè)多路選擇器和一個(gè)鍵盤掃描電路功能。程序各端口功能如表1所示。datain1由datain1[0]......datain1[17] 18位輸入端口組成,分為6組,每組3個(gè)端口。rs由rs[0]、rs[1]、rs[2]3位端口組成,最多可以表示8個(gè)2進(jìn)制數(shù)(本設(shè)計(jì)用到其中的6個(gè))來(lái)表示端口選擇位。dataout1由 dataout1[0]、dataout1[1]、dataout1[2]3位組成,表示輸出端口。datain1、dataout1、rs組成一個(gè)多路選擇器,實(shí)現(xiàn)選擇輸入功能,rs的值決定選擇datain1的哪一組信號(hào)送給dataout1,由dataout1輸出。datain2由datain2[0]、 datain2[1]組成,表示輸入端口。dataout2由dataout2[0]......dataout2[11]12位輸出端口組成,分成6組,每組2位。同理,datain2、 dataout2、rs組成另一個(gè)多路選擇器,實(shí)現(xiàn)選擇輸出功能,rs的值決定選擇datain2的2位信號(hào)從dataout2的哪一組輸出。rt為控制脈沖,當(dāng)為上升沿時(shí)實(shí)現(xiàn)選擇輸入功能,當(dāng)為下降沿時(shí)實(shí)現(xiàn)選擇輸出功能。datain3為16位按鍵輸入口(低電平有效),每位代表一個(gè)按鍵。dataout3為4位按鍵值輸出端口,當(dāng)有按鍵按下時(shí),經(jīng)CPLD內(nèi)部狀態(tài)發(fā)生改變,按鍵彈起后,內(nèi)部狀態(tài)經(jīng)CPLD自動(dòng)處理轉(zhuǎn)化為相應(yīng)的鍵值從dataout3輸出(高電平有效)。如當(dāng)datain3位為1111111111111101時(shí),表示2號(hào)鍵按下,dataout3將輸出0010,表示按鍵值為2。
3 CPLD仿真
從最初的電路設(shè)計(jì)思想到QuartusII的波形仿真、再到CPLD的芯片編程結(jié)束,開(kāi)發(fā)設(shè)計(jì)流程圖如圖5所示。
在QuartusII 平臺(tái)上,對(duì)VerilogHDL程序編譯后,用Simulator對(duì)之進(jìn)行時(shí)序仿真,得到如圖6所示的結(jié)果。
由圖中可以看到各預(yù)定功能都得到了實(shí)現(xiàn),如datain3為111111011111時(shí),dataout3輸出為0110,仿真結(jié)果完全符合電路的要求。
基于SPCE061A+CPLD設(shè)計(jì)的電動(dòng)自行車充電系統(tǒng),簡(jiǎn)化了系統(tǒng)軟硬件設(shè)計(jì),提高了電路的穩(wěn)定性和可靠性;使系統(tǒng)設(shè)計(jì)靈活、開(kāi)發(fā)周期短、集成性更強(qiáng),同時(shí)使系統(tǒng)易于升級(jí)和擴(kuò)展。經(jīng)檢驗(yàn)測(cè)試,各項(xiàng)技術(shù)指標(biāo)均達(dá)到了設(shè)計(jì)要求。
參考文獻(xiàn)
1 張鵬舉,李樹(shù)華,竇海峰.用單片機(jī)及CPLD實(shí)現(xiàn)的多功能控制系統(tǒng)設(shè)計(jì).內(nèi)蒙古大學(xué)學(xué)報(bào)(自然科學(xué)版),2005;36(3):316~320
2 李向舜,劉明慧.基于CPLD技術(shù)的AD轉(zhuǎn)換器接口電路設(shè)計(jì).壓電與聲光,2005;27(4):385~389
3 李春雷,王祖強(qiáng).基于CPLD的電子存包系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).電子技術(shù)應(yīng)用,2005;31(7):69~72
4 李小波,孫志勇,劉春生.基于CPLD和單片機(jī)的低頻信號(hào)源設(shè)計(jì).儀器技術(shù)與傳感器, 2005;(11):46~49