基于單片機(jī)C8051F060的智能功率柜
關(guān)鍵詞:C8051F060 微控制器 CAN 現(xiàn)場(chǎng)總線(xiàn) 勵(lì)磁
1 引言
隨著發(fā)電機(jī)容量的不斷增大,對(duì)勵(lì)磁系統(tǒng)的要求越來(lái)越高。國(guó)內(nèi)目前使用的各類(lèi)勵(lì)磁調(diào)節(jié)器都非常先進(jìn),但功率柜的制造水平卻不盡如人意,這勢(shì)必影響勵(lì)磁系統(tǒng)整體性能的提高?進(jìn)而妨礙整體發(fā)電系統(tǒng)性能的提高。
目前,國(guó)產(chǎn)的勵(lì)磁功率柜普遍存在檢測(cè)功能不全、信息傳送技術(shù)、控制和檢測(cè)技術(shù)落后等問(wèn)題。為了解決這一問(wèn)題,本文給出了通過(guò)采用高集成度單片機(jī)C8051F060實(shí)現(xiàn)的智能勵(lì)磁功率柜與CAN總線(xiàn)的通信方法,該方案具有完備的檢測(cè)、控制和通信功能。
2?。茫福埃担保疲埃叮皢纹瑱C(jī)的特點(diǎn)
C8051FXX系列單片機(jī)是美國(guó)CYGNAL公司推出的一種與51系列單片機(jī)內(nèi)核兼容的單片機(jī)。僅就筆者對(duì)C8051F060的使用實(shí)踐介紹一下其新特點(diǎn):
(1)內(nèi)核采用流水線(xiàn)結(jié)構(gòu),速度可達(dá)25MIPS(25MHz晶振),比普通的51單片機(jī)快10倍;其指令與標(biāo)準(zhǔn)系列51單片機(jī)兼容,因而掌握開(kāi)發(fā)過(guò)程非常容易;該芯片的JTAG調(diào)試方式支持在系統(tǒng)、全速、非插入調(diào)試和編程,且不占用片內(nèi)資源。
(2)片上集成有64kB Flash、4352B內(nèi)部RAM(256+4kB,可外擴(kuò)至64kB)、59個(gè)I/O口、 2通道16位1MSPS的可編程增益ADC、8通道10位200kSPS可編程增益ADC、2路12位DAC、3路模擬比較器、內(nèi)部電壓基準(zhǔn)以及片內(nèi)電源監(jiān)視、降壓檢測(cè)和看門(mén)狗等功能。由于C8051F060的高集成度,因而無(wú)需外擴(kuò)ROM、RAM、AD、DA、watchdog、可編程I/O口和EEPROM(用片內(nèi)Flash實(shí)現(xiàn)),從而大大簡(jiǎn)化了硬件電路,并為構(gòu)成以C8051F060為核心的單片機(jī)系統(tǒng)創(chuàng)造了條件,同時(shí)也提高了系統(tǒng)的可靠性。
(3)片內(nèi)集成有2個(gè)UART、1個(gè)SM(兼容I2C)和1個(gè)SPI。最為便利的是,C8051F060集成了CAN總線(xiàn)控制器,這使得CAN總線(xiàn)具有開(kāi)發(fā)費(fèi)用低廉、抗干擾性強(qiáng)、可適用于工業(yè)現(xiàn)場(chǎng)應(yīng)用等特點(diǎn),并可廣泛應(yīng)用于干擾環(huán)境非常嚴(yán)重的各種工業(yè)現(xiàn)場(chǎng)測(cè)控領(lǐng)域。C8051F060只需加上CAN總線(xiàn)收發(fā)電路就可掛接到CAN通信網(wǎng)絡(luò)上,因而大大簡(jiǎn)化了通信系統(tǒng)的設(shè)計(jì),減少了通信節(jié)點(diǎn)受干擾的概率。
(4)可編程的16位計(jì)數(shù)器陣列?PCA?有6個(gè)捕捉/比較模塊和5個(gè)通用16位計(jì)數(shù)器/定時(shí)器,這一為要求定時(shí)器/計(jì)數(shù)器具有較多的測(cè)控節(jié)點(diǎn)提供了方便。
(5)C8051F060能滿(mǎn)足絕大多數(shù)工業(yè)測(cè)控節(jié)點(diǎn)的要求,能夠形成以C8051F060為核心的單片機(jī)系統(tǒng),如果配以外圍測(cè)量單元,還可形成完整的測(cè)控節(jié)點(diǎn)。
3 智能勵(lì)磁功率柜的系統(tǒng)結(jié)構(gòu)
智能功率柜系統(tǒng)原理框圖如圖1所示。功率柜中最關(guān)鍵的部件是三相全控橋,控制此橋的核心參數(shù)為觸發(fā)角度,該參數(shù)可由CAN總線(xiàn)通過(guò)調(diào)節(jié)器送出,同時(shí)送達(dá)本地柜應(yīng)發(fā)的電流值。經(jīng)檢測(cè)得到的輸出電流與調(diào)節(jié)器的應(yīng)發(fā)給定電流進(jìn)行比較并完成PI運(yùn)算,即可產(chǎn)生新的微調(diào)觸發(fā)角度。該觸發(fā)角度經(jīng)PCA形成觸發(fā)脈沖繼而驅(qū)動(dòng)三相全控橋,從而實(shí)現(xiàn)柜間均流。與此同時(shí),通過(guò)信號(hào)檢測(cè)模塊還可將柜內(nèi)溫度、晶閘管通斷狀態(tài)、輸出電流值送入微控制器,以對(duì)各參數(shù)進(jìn)行計(jì)算分析,并將其與設(shè)定的閾值進(jìn)行比較,最后實(shí)時(shí)顯示測(cè)量結(jié)果,同時(shí)報(bào)警。
圖3 同步信號(hào)采集電路
3.1 基于PCA模塊實(shí)現(xiàn)的數(shù)字移相觸發(fā)
三相晶閘管全控橋的工作原理及六個(gè)晶閘管的觸發(fā)脈沖相序關(guān)系如圖2所示。
該PCA中包含6個(gè)基于同一16位計(jì)數(shù)器,并可作為時(shí)基的捕捉/比較模塊,每個(gè)模塊可構(gòu)成正沿捕捉、負(fù)沿捕捉、正負(fù)沿捕捉、軟件定時(shí)器、高速輸出、脈沖寬度調(diào)制器等6種方式。本設(shè)計(jì)中采用的是高速輸出模式,當(dāng)PCA計(jì)數(shù)器與模塊的16位捕捉/比較寄存器相匹配時(shí),相應(yīng)模塊的CEX引腳的邏輯電平將發(fā)生變化,并引起相應(yīng)中斷。
觸發(fā)信號(hào)從同步信號(hào)過(guò)零點(diǎn)開(kāi)始計(jì)時(shí),調(diào)節(jié)器則經(jīng)CAN網(wǎng)將觸發(fā)角的電角度值α、同步信號(hào)周期值TSYN和脈沖寬度W發(fā)送給各功率柜。同步信號(hào)采樣電路見(jiàn)圖3,當(dāng)同步信號(hào)過(guò)零產(chǎn)生中斷時(shí),PCA計(jì)數(shù)器開(kāi)始計(jì)數(shù),并根據(jù)α、W、TSYN及PCA計(jì)數(shù)頻率計(jì)算出α的對(duì)應(yīng)值Tα1~Tα6和脈沖后沿的對(duì)應(yīng)值TW1~TW6,然后將Tα1~Tα6寫(xiě)入6個(gè)模塊的16位捕捉/比較寄存器中。當(dāng)捕捉寄存器的值與PCA計(jì)數(shù)器的值相符時(shí),CEX引腳將變?yōu)楦唠娖剑允瓜鄳?yīng)模塊產(chǎn)生中斷,同時(shí)在中斷子程序中,相應(yīng)的TWN被寫(xiě)入16位捕捉/比較寄存器。當(dāng)其與PCA計(jì)數(shù)器值相符時(shí),CEX引腳變?yōu)榈碗娖?,其中一路觸發(fā)單脈沖。用門(mén)電路便可將6路單脈沖合為6路雙窄脈沖。下式為Tα和TW計(jì)算方法:
TαN=TSYN?α+90?N-1??/360TCLK
TWN=TSYN?α+W+90?N-1??/360TCLK
式中,N可?。?2?...?6, TCLK為PCA計(jì)數(shù)器的計(jì)數(shù)周期。
3.2 通過(guò)片內(nèi)Flash在線(xiàn)修改參數(shù)
C8051F060中Flash的0X0000~0X007F地址范圍既可用于片內(nèi)64kB Flash,也可用于附加的128B的扇區(qū),這可通過(guò)設(shè)置PSCTL寄存器的SFLE位來(lái)實(shí)現(xiàn)。由于片內(nèi)Flash必須先擦除再寫(xiě)入,而且應(yīng)當(dāng)以512B為一扇區(qū)進(jìn)行,故附加的128B的扇區(qū)更適合用作非易失性數(shù)據(jù)的存儲(chǔ)。在功率柜中,通常需要在線(xiàn)修改的參數(shù)為PI調(diào)節(jié)器的P和I,下面以KEIL C語(yǔ)句為例給出在線(xiàn)修改參數(shù)的程序:
WrRe Flash???
unsigned int xdata *pwrite?
unsigned int code *pread?
unsigned char i ?
unsigned char i1?
WDTCN=0xde? //禁止看門(mén)狗
WDTCN=0xad?
FLSCL|=0x09? //25MHz時(shí)鐘的擦寫(xiě)頻率
PSCTL|=0X02? //允許Flash扇區(qū)擦除
PSCTL|=0X05? //允許Flash扇區(qū)寫(xiě)
pwrite=0x0000? 0x0000指向128B扇區(qū)
*pwrite=0? //擦除Flash
PSCTL&=~0X02? //禁止擦除Flash
for?i=0?i<2?i++? //將P和I參數(shù)寫(xiě)入
?*pwrite++=PI?i?? ?
PSCTL&=~0x01? //禁止寫(xiě)Flash
pread=0x0000? //讀入當(dāng)前值
for?i1=0?i1<2?i1++?
? PI?i1?=*pread++???
4 CAN總線(xiàn)在勵(lì)磁裝置中的應(yīng)用
CAN總線(xiàn)是主要的現(xiàn)場(chǎng)總線(xiàn)之一。由于其低廉的開(kāi)發(fā)費(fèi)用、良好的抗干擾能力,CAN總線(xiàn)在工業(yè)測(cè)控領(lǐng)域得到了廣泛應(yīng)用。關(guān)于CAN總線(xiàn)的基本概念和接口電路,其相關(guān)內(nèi)容較多,本文只介紹如何用C8051F060實(shí)現(xiàn)CAN總線(xiàn)通信的方法。
4.1 C8051F060的CAN控制器結(jié)構(gòu)
圖4給出了C8051F060的內(nèi)部CAN結(jié)構(gòu)圖,由于MCU不能直接訪(fǎng)問(wèn)信息RAM,因此,必須通過(guò)IF寄存器與信息RAM交換數(shù)據(jù)。信息RAM共可存儲(chǔ)32幀信息。而IF寄存器則分為IF1和IF2兩組,以分別定義為接受、發(fā)送功能,IF的CommandRequest寄存器可用于定義訪(fǎng)問(wèn)32幀信息的哪一幀,CommandMask則用于定義將一幀信息的哪一部分傳到信息RAM中。
當(dāng)中斷寄存器IR為0x0000時(shí),表示沒(méi)有中斷發(fā)生;當(dāng)其為0x0001~0x0020時(shí),表示32幀信息的哪一幀引起中斷,而當(dāng)其為0x8000時(shí),則表示狀態(tài)改變(發(fā)送完成、接收完成、錯(cuò)誤狀態(tài)等)引起中斷。
4.2 CAN通信
通信的初始化過(guò)程與其它CAN控制器類(lèi)似,圖5給出了其發(fā)送、信息RAM與IF通信和接收中斷子程序的框圖。
4.3 CAN總線(xiàn)在智能功率柜中的應(yīng)用
CAN通信系統(tǒng)由四個(gè)節(jié)點(diǎn)組成,其中包括一個(gè)調(diào)節(jié)器和三個(gè)功率柜。功率柜由C8051F060完成通信功能,調(diào)節(jié)器由集成了CAN協(xié)議的網(wǎng)卡HT-1302B負(fù)責(zé)通信。調(diào)節(jié)器可將單柜應(yīng)發(fā)電流值、觸發(fā)角、同步信號(hào)周期以及脈沖寬度等參數(shù)發(fā)送給各功率柜。功率柜則將各柜的輸出電流值、導(dǎo)通監(jiān)視結(jié)果、柜內(nèi)各點(diǎn)溫度反饋回調(diào)節(jié)器。
5 結(jié)束語(yǔ)
由于C8051F060的高集成度,因而只需少量外圍測(cè)量電路便可組成集控制與通信功能于一體的單片系統(tǒng),同時(shí)可提高系統(tǒng)的整體可靠性。另外,C8051F060內(nèi)核與普通51系列兼容,且指令簡(jiǎn)單易學(xué),因此,可縮短系統(tǒng)開(kāi)發(fā)周期。本系統(tǒng)由帶屏蔽層的雙絞線(xiàn)構(gòu)成通信介質(zhì),最大通信距離不超過(guò)150米,通信速率可達(dá)250kbps。實(shí)際運(yùn)行證明:通信效果很好。由此可見(jiàn):本控制方案集成度高、硬件簡(jiǎn)單、工作可靠,具有很好的推廣價(jià)值。