基于AT89C52的CAN總線無(wú)功補(bǔ)償控制設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
根據(jù)資料統(tǒng)計(jì),輸電線路、高壓配電網(wǎng)、低壓用戶三個(gè)部分的線損中,低壓用戶線損最大,因此,降損節(jié)能應(yīng)主要圍繞低壓380V用戶進(jìn)行。長(zhǎng)期以來(lái),我國(guó)低壓配電網(wǎng)網(wǎng)架薄弱,自然功率因數(shù)低,而且結(jié)構(gòu)復(fù)雜,降低了電網(wǎng)的經(jīng)濟(jì)效益。目前,電力部門(mén)一般采用就地?zé)o功補(bǔ)償?shù)姆椒ń鉀Q這一問(wèn)題。目前市場(chǎng)上所投入使用的低壓無(wú)功補(bǔ)償裝置有很多種,但大部分補(bǔ)償單元基本上都是由主控制器的CPU直接驅(qū)動(dòng)的,系統(tǒng)有多少組電容器,就會(huì)從CPU引出相應(yīng)路數(shù)的線,從無(wú)功補(bǔ)償器引出的線路很多,同時(shí)傳輸距離也很有限。這給安裝、檢修、維護(hù)和擴(kuò)展帶來(lái)了極大的不方便。
CAN(Controller Area Network)總線屬于現(xiàn)場(chǎng)總線的范疇,它是德國(guó)Bosch公司從20世紀(jì)80年代初為解決現(xiàn)代汽車(chē)中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議。CAN總線標(biāo)準(zhǔn)支持全雙工通信,傳輸介質(zhì)采用雙絞線和光纖,傳輸速率可達(dá)1Mbps,節(jié)點(diǎn)數(shù)可達(dá)110個(gè)。其最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼。其容錯(cuò)能力和抗干擾能力強(qiáng),傳輸安全性高、通訊速率快、傳輸距離可達(dá)10KM、同時(shí)還具有良好的抗電磁干擾能力,因而在實(shí)際應(yīng)用中具有極高的應(yīng)用價(jià)值。我們將CAN總線技術(shù)應(yīng)用低壓無(wú)功補(bǔ)償裝置上,可以取得較好的無(wú)功補(bǔ)償效果。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件總體結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)硬件總體結(jié)構(gòu)設(shè)計(jì)原理框圖如圖1所示??刂葡到y(tǒng)由數(shù)據(jù)采集單元、中心微處理控制器、CAN總線通信和驅(qū)動(dòng)執(zhí)行單元、輸入鍵盤(pán)、顯示單元等部分組成。
圖1 硬件總體結(jié)構(gòu)框圖
控制器的工作原理是:從控制現(xiàn)場(chǎng)傳感器CT、PT送來(lái)的電流、電壓信號(hào),經(jīng)過(guò)二次變換,轉(zhuǎn)換成0~2V,0~5A信號(hào)。這些信號(hào)再經(jīng)過(guò)處理,使輸入的電壓、電流信號(hào)滿足數(shù)據(jù)采集測(cè)量芯片SA9904B的輸入要求。SA9904B把測(cè)得的三相電力參數(shù)相關(guān)值如電壓、有功能量、無(wú)功能量、頻率等存在其內(nèi)部暫存器里。微處理控制器采用的是AT89C52型單片機(jī),通過(guò)SPI接口訪問(wèn)SA9904B內(nèi)部的24位暫存器,把暫存器的數(shù)據(jù)根據(jù)相應(yīng)的公式計(jì)算就可以得到各相有功功率和無(wú)功功率,以及各分相有效電壓和頻率。根據(jù)預(yù)設(shè)的控制策略就可以決定要?jiǎng)幼鞯拈_(kāi)關(guān)模塊,然后主控制器把要?jiǎng)幼鞯闹悄芡肚心K以及要進(jìn)行的投切動(dòng)作以幀的形式送到CAN總線上,相應(yīng)的智能開(kāi)關(guān)模塊控制電容器的投切。
2.2 CAN總線節(jié)點(diǎn)的硬件設(shè)計(jì)
節(jié)點(diǎn)是組成CAN總線網(wǎng)絡(luò)的基本單位,在本系統(tǒng)中,主控制器和智能投切模塊都可以看作是CAN總線的一個(gè)節(jié)點(diǎn),每一個(gè)總線節(jié)點(diǎn)都由微處理器、CAN控制器、CAN驅(qū)動(dòng)器組成,各節(jié)點(diǎn)之間通過(guò)總線連接起來(lái)。接線示意圖如圖2:
圖2 CAN節(jié)點(diǎn)硬件結(jié)構(gòu)圖
CAN通信接口采用PHILIPS公司生產(chǎn)的SJA1000通信控制器和82C250總線驅(qū)動(dòng)器。82C250是CAN控制器和物理總線間的接口,速率高,并且有過(guò)熱保護(hù),它可以提供對(duì)總線的差動(dòng)發(fā)送和接受功能。
2.3通信電路設(shè)計(jì)
CAN智能節(jié)點(diǎn)結(jié)構(gòu)由3部分組成:微控制器、CAN控制器、CAN收發(fā)器。CAN收發(fā)器負(fù)責(zé)建立CAN控制器和物理總線之間的連接,控制邏輯電平信號(hào)從CAN控制器到達(dá)物理總線的物理層,反之亦然。CAN控制器和收發(fā)器分別采用的是PHILIPS公司的SJA1000和PCA82C250。微控制器負(fù)責(zé)從CAN控制器接受數(shù)據(jù),然后進(jìn)行數(shù)據(jù)處理,將處理結(jié)果通過(guò)CAN控制器和CAN收發(fā)器發(fā)送給網(wǎng)絡(luò)中其他的節(jié)點(diǎn)。為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,SJA1000的TX0和RX0并不是直接與82C250的TXD和RXD相連,而是通過(guò)高速光耦6N137后與82C250相連,從而實(shí)現(xiàn)了總線上各個(gè)CAN節(jié)點(diǎn)間的電氣隔離。
2.4 安全保護(hù)電路設(shè)計(jì)
單片機(jī)微處理器CPU在運(yùn)行過(guò)程中,很可能因受到外界干擾而出現(xiàn)程序“跑飛”或死機(jī)。當(dāng)CPU在掃描工作時(shí)間超過(guò)正常周期時(shí),需要監(jiān)視控制定時(shí)器發(fā)出強(qiáng)行復(fù)位信號(hào),將CPU重新拉回初始狀態(tài),使系統(tǒng)恢復(fù)正常。本設(shè)計(jì)中采用美國(guó)XICOR公司的新型產(chǎn)品X5045可編程看門(mén)狗,當(dāng)系統(tǒng)出現(xiàn)故障時(shí),只要其計(jì)時(shí)的掃描周期達(dá)到編程設(shè)定的超時(shí)極限,或者當(dāng)電源電壓降到最低轉(zhuǎn)換點(diǎn)以下時(shí),芯片RESET引腳就會(huì)立即輸出高電平復(fù)位信號(hào),從而避免了因系統(tǒng)故障、電源通斷、瞬時(shí)電壓不穩(wěn)等因素系統(tǒng)安全性能的影響。
2.5 人機(jī)接口設(shè)計(jì)
本裝置通過(guò)4個(gè)按鍵組合可用來(lái)設(shè)定控制參數(shù),如電壓上下限,功率因數(shù)上下限,電流互感器變比等,還可用來(lái)選擇手動(dòng)運(yùn)行方式還是自動(dòng)運(yùn)行方式。液晶顯示器選用RT12864,可顯示4排漢字,小巧精致、美觀。液晶顯示模塊在工作時(shí)顯示三相實(shí)時(shí)功率因數(shù),通過(guò)按鍵翻閱還可以顯示三相實(shí)時(shí)電壓,有功功率,無(wú)功功率等參數(shù)。
3 軟件設(shè)計(jì)
采用模塊化的軟件設(shè)計(jì),將軟件分成若干相對(duì)的獨(dú)立的功能模塊,并為各模塊安排適當(dāng)?shù)娜肟诤统隹趨?shù),使得模塊之間的相互連接,組合靈活方便。智能傳感器的的軟件由數(shù)據(jù)采集模塊、輸出控制模塊、CAN總線通信模塊等組成,各模塊在監(jiān)控系統(tǒng)的程序調(diào)度下協(xié)調(diào)工作。CAN總線通信模塊由3部分組成:初始化程序、發(fā)送數(shù)據(jù)程序和接受終端程序3部分組成。由于系統(tǒng)中任意時(shí)刻均可主動(dòng)與其他節(jié)點(diǎn)通信,所以,各節(jié)點(diǎn)的通信程序相同。基于AT89C52和SJA1000的CAN接口模塊通過(guò)CAN總線建立通信。SJA1000的應(yīng)用程序可以被分為初始化程序、報(bào)文發(fā)送程序和報(bào)文接收程序。
3.1 CAN控制器SJA1000初始化設(shè)計(jì)
節(jié)點(diǎn)的初始化主要是指系統(tǒng)上電后對(duì)微處理器AT89C52和CAN控制器SJA1000進(jìn)行的初始化,以確定工作主頻、波特率和輸出特性等。對(duì)AT89C52的初始化可結(jié)合其監(jiān)控任務(wù)進(jìn)行,主要是對(duì)中斷允許與屏蔽、中斷優(yōu)先級(jí)、定時(shí)器的使用與設(shè)置等,由于SJA1000內(nèi)部無(wú)微處理器,故其初始化仍要通過(guò)AT89C52對(duì)其進(jìn)行編程實(shí)現(xiàn)。初始化程序流程如圖3所示。
圖3 初始化程序流程圖
SJA1000的初始化應(yīng)在復(fù)位模式下進(jìn)行,所以在SJA1000初始化程序中首先要將工作方式置為復(fù)位模式,之后要設(shè)置驗(yàn)收濾波方式、驗(yàn)收屏蔽寄存器(AMR)和驗(yàn)收代碼寄存器(ACR)、波特率參數(shù)和中斷允許寄存器(IER)等。CAN協(xié)議物理層中的同步跳轉(zhuǎn)寬度和通信波特率的大小由定時(shí)寄存器BTR0、BTR1的內(nèi)容決定。需要指出的是:對(duì)于一個(gè)系統(tǒng)中的所有節(jié)點(diǎn),這兩個(gè)寄存器的內(nèi)容必須相同,否則將無(wú)法進(jìn)行通信。初始化設(shè)置完成后,將復(fù)位請(qǐng)求位置“0”,SJA1000就可以進(jìn)入工作狀態(tài),執(zhí)行正常的通信任務(wù)。
3.2 CAN總線發(fā)送和接受數(shù)據(jù)程序設(shè)計(jì)
對(duì)SJA1000進(jìn)行初始化建立CAN總線通信后,模塊就可以通過(guò)CAN總線發(fā)送和接收CAN數(shù)據(jù)包。消息的發(fā)送由CAN控制器SJA1000根據(jù)CAN規(guī)則自動(dòng)完成,主控制器必須把要發(fā)送的信息送到SJA1000的發(fā)送緩沖器中,并設(shè)置“發(fā)送請(qǐng)求標(biāo)識(shí)位”于命令寄存器中。模塊向總線上發(fā)送數(shù)據(jù)包是主動(dòng)的,如果一次發(fā)送不成功,可以再次發(fā)送。
CAN控制器SJA1000根據(jù)規(guī)則自動(dòng)接收消息,接收到的消息放入接收緩沖器,此時(shí)接收緩沖器狀態(tài)標(biāo)識(shí)RBS置為1,此時(shí)表示接收緩沖器中有接收到的消息。主控制器必須將消息保存到程序設(shè)置的消息緩沖器中,同時(shí)釋放接收緩沖器并對(duì)消息內(nèi)容做出反應(yīng)。接收過(guò)程可以通過(guò)SJA1000的中斷請(qǐng)求或查詢SJA1000的標(biāo)志位來(lái)進(jìn)行。
4 結(jié)束語(yǔ)
本文介紹的通信設(shè)計(jì)方法應(yīng)用于電網(wǎng)在線無(wú)功補(bǔ)償控制系統(tǒng)中,其采用的短幀結(jié)構(gòu),數(shù)據(jù)傳輸速度快,受干擾概率低;不同的檢測(cè)設(shè)備節(jié)點(diǎn)同時(shí)傳輸數(shù)據(jù)時(shí),優(yōu)先級(jí)高的節(jié)點(diǎn)先傳輸;采用多主式的數(shù)據(jù)傳輸方式,網(wǎng)絡(luò)上任何一個(gè)節(jié)點(diǎn)出錯(cuò)都不會(huì)影響其它節(jié)點(diǎn)的正常運(yùn)行的特性,從總體設(shè)計(jì)上可以看出,基于CAN總線無(wú)功補(bǔ)償裝置突出的優(yōu)點(diǎn)是使整個(gè)系統(tǒng)減少了引出線,使設(shè)備簡(jiǎn)潔,易于擴(kuò)展,同時(shí)也便于安裝、檢修和維護(hù)。
本文德主要?jiǎng)?chuàng)新點(diǎn):將CAN現(xiàn)場(chǎng)總線技術(shù)用于低壓電網(wǎng)無(wú)功動(dòng)態(tài)補(bǔ)償,使用標(biāo)準(zhǔn)協(xié)議的通訊方式擴(kuò)展了系統(tǒng)的通訊結(jié)構(gòu)。采用先進(jìn)的總線技術(shù)使系統(tǒng)結(jié)構(gòu)簡(jiǎn)潔,效率高,網(wǎng)絡(luò)上任何一個(gè)節(jié)點(diǎn)出錯(cuò)都不會(huì)影響,大大提高了系統(tǒng)的可靠性和適應(yīng)能力。