引言 光伏并網(wǎng)發(fā)電系統(tǒng)是將太陽電池發(fā)出的直流電饋送給交流電網(wǎng)的DCAC逆變系統(tǒng)。傳統(tǒng)的光伏并網(wǎng)系統(tǒng)常常被設(shè)計(jì)成只有單個DSP的嵌入式系統(tǒng),即在一塊電路板上,DSP除了要完成數(shù)字信號處理和逆變器控制的功能外,還要完成顯示、輸入等功能。由于并網(wǎng)逆變系統(tǒng)復(fù)雜,采用單個DSP的設(shè)計(jì)方案時,適時性往往難以達(dá)糾要求。為此,在原來設(shè)計(jì)的基礎(chǔ)上外加一塊單片機(jī),構(gòu)成艤核的主從式結(jié)構(gòu)。DSP只負(fù)責(zé)逆變器的控制和信號的處理,而由單片機(jī)來完成剩余的功能。同時利用MODBUS協(xié)議來實(shí)現(xiàn)單片機(jī)和DSP問的通信,單片機(jī)作為通信方的主機(jī).DSP作為從機(jī),主從雙方各自獨(dú)立的T作,僅在串口通信的時候才占用系統(tǒng)資源。采用這種設(shè)計(jì)方案,極大的節(jié)省了DSF的開銷,保證了并網(wǎng)系統(tǒng)高效穩(wěn)定的運(yùn)行。 1 光伏并網(wǎng)系統(tǒng)的硬件結(jié)構(gòu) 在項(xiàng)目中,使用的DSP足TI的TMS320F2812,而單片機(jī)為AVR系列的Mega64。光伏并網(wǎng)系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。在圖中,將由172812DSP控制的部分稱為并網(wǎng)逆變模塊,而將由Mega64單片機(jī)控制的部分稱為人機(jī)接口模塊,兩個模塊構(gòu)成一個完整的光伏并網(wǎng)系統(tǒng)。通信接口電路負(fù)責(zé)連接F2812和Mega64的串行口。 ![]() 圖1光伏并網(wǎng)系統(tǒng)硬件結(jié)構(gòu) 1.1并網(wǎng)逆變模塊硬件結(jié)構(gòu)及原理 并網(wǎng)逆變模塊的功能足將太陽能電池產(chǎn)生的直流電逆變成與電網(wǎng)電壓同頻同相的交流電。在項(xiàng)目中采用的并網(wǎng)逆變模塊硬件結(jié)構(gòu)如圖2所示。 ![]() 圖2并網(wǎng)逆變模塊硬件結(jié)構(gòu)圖 太陽能電池發(fā)出的直流電首先由高頻逆變器轉(zhuǎn)換為高頻脈動電壓,通過高頻變壓器隔離升壓后,再經(jīng)整流、低頻逆變,轉(zhuǎn)換成與電網(wǎng)電壓同頻同相的交流電送到電網(wǎng)中。整個模塊為DC一高頻AC—DC一工頻AC 三級功率變換電路,TMS320F2812為其主控芯片。采樣的太陽能電池輸出電壓、電流送入F2812后,按照MPPT(太陽能電池最大功率點(diǎn)跟蹤)的要求,產(chǎn)生出PWM信號,驅(qū)動高頻逆變部分的功率管,以實(shí)現(xiàn)MPPT功能。工頻逆變部分采用電流內(nèi)環(huán)、電壓外環(huán)的控制策略,采樣劍的電壓電流信號按照控制策略處理后,產(chǎn)生出PWM驅(qū)動信號驅(qū)動工頻逆變部分功率管,保證高壓側(cè)電壓穩(wěn)定,同時保證并網(wǎng)電流與電網(wǎng)電壓問頻同相,并網(wǎng)的功率因素為1。 1.2人機(jī)接口模塊硬件結(jié)構(gòu)及原理 人機(jī)接口模塊的功能是實(shí)現(xiàn)對并網(wǎng)系統(tǒng)的監(jiān)控和設(shè)置,大致可概括為以下幾點(diǎn): (1)能實(shí)現(xiàn)DSP和單片機(jī)的正確通信; (2)能實(shí)現(xiàn)對并網(wǎng)逆變系統(tǒng)運(yùn)行參數(shù)的實(shí)時顯示,如太陽電池當(dāng)前輸出的直流電壓、系統(tǒng)當(dāng)前發(fā)出的電量等等,同時還能對并網(wǎng)系統(tǒng)的一些系要參數(shù)進(jìn)行設(shè)置,如最高輸入電壓、最低輸出頻率等等。 (3)當(dāng)并網(wǎng)系統(tǒng)運(yùn)行出現(xiàn)故障時,能判別故障類型,并能產(chǎn)生報警信號通知用戶。在故障末解決前,能停止并網(wǎng)逆變系統(tǒng)的工作; (4)能和PC機(jī)實(shí)現(xiàn)通信,將霞要參數(shù)傳遞給PC機(jī)用于存檔。 人機(jī)接口模塊的硬件結(jié)構(gòu)如圖3所示。 ![]() 圖3人機(jī)接口模塊硬件結(jié)構(gòu) 整個接口模塊是以Mega64為核心的小型嵌入式系統(tǒng)。采用帶中文字庫的160*32液晶模塊作為整個系統(tǒng)的主顯示屏。其與Mega64采用并行總線的方式通信。時鐘芯片選用Dallas公司出品的DS1302,它采用三線接口和CPU進(jìn)行同步通信,控制簡單易于實(shí)現(xiàn)。模塊與Pc機(jī)的通信有可選的RS232或RS485兩種方式,使用BL0505LS隔離電源模塊為該通信塊供電。 在硬件設(shè)計(jì)中,F(xiàn)2812和Mega64的通信接口電路是整個設(shè)計(jì)的關(guān)鍵之一。由于F2812是3.3V的CMOS電平,而Mega64是5V的TTL電平,兩者的串行口不能直接相連,中間必須進(jìn)行電平轉(zhuǎn)換。在本項(xiàng)目中,采用電阻分壓的方法來實(shí)現(xiàn)電平轉(zhuǎn)換,Mega64接收電路如圖4所示: ![]() 圖4 MEGA64串口接收電路 三極管T1及T2組成3.3V/5V電平轉(zhuǎn)換電路,通過R1與R2的分壓來保證輸入接口的電壓不超過3.3V,二極管D1防止電流反向。F2812發(fā)送高電平時,T1導(dǎo)通T2截止,保證Mega64接收高電平信號;F2812發(fā)送低電平時,T1截止T2導(dǎo)通,Mega64接收低電平信號。 2 MODBUS通信協(xié)議簡介 MODBUS是一種工業(yè)通信和分布式控制系統(tǒng)協(xié)議,該協(xié)議是一個主從協(xié)議,允許一臺主機(jī)與多臺從機(jī)通信。若主機(jī)發(fā)送一個信息,則可從一臺從機(jī)設(shè)備返回一個響應(yīng),類似,當(dāng)一臺從機(jī)接受信息時,它就組織一個相應(yīng)的響應(yīng)信息,并返回至原發(fā)送信息的主機(jī)。在物理層,標(biāo)準(zhǔn)的MODBUS端口是使用一個RS232兼容的串行接口。在MODBUS協(xié)議中有兩種有效的數(shù)據(jù)傳送方式,即ASCII碼和RTU方式。無論哪種傳送方式,MODBUS信息都是以幀的方式傳輸,每幀有確定的起始點(diǎn)和結(jié)束點(diǎn)。 在本項(xiàng)目中,采用了RTU的傳送方式。RTU信息幀格式如下表所示: ![]() 每個信息幀的發(fā)送至少要以3.5個字符時間的停頓間隔開始,即表格中的T1-T4。每一幀以地址字符為起始點(diǎn),以CRC校驗(yàn)碼為結(jié)束點(diǎn),每個字符包括1位起始位,8位數(shù)據(jù)位,1位偶校驗(yàn)位,1位停止位。整個信息幀必須連續(xù)發(fā)送,如果在發(fā)送幀信息期間,相鄰字符問有超過1.5個字符時間的停頓,則認(rèn)為幀錯誤,停止接收。最后一個傳輸字符結(jié)束后,至少要停頓3.5個字符的時間才能開始下一個信息幀的傳遞。字符的時間與具體的通信波特率有關(guān),如波特率設(shè)置為4800,則1.5個字符時間為:1/4800*11*1.5*1000=3.44ms。 3 MODBUS協(xié)議軟件實(shí)現(xiàn) 在并網(wǎng)逆變模塊和人機(jī)接口模塊的MODBUS通信中,Mega64作為主機(jī),F(xiàn)2812作為從機(jī)。在通信中,主要使用了MODBUS協(xié)議的兩個公用功能碼:0x03讀多個保持寄存器,0x10預(yù)置多個寄存器。從上文可看出,在MODBUS通信中,信息幀的區(qū)分和同步完全依靠相鄰幀之問的時間間隔來實(shí)現(xiàn)。要保證主從雙方通信的成功,必須對信息幀之間的間隔進(jìn)行準(zhǔn)確判斷。 3.1 MODBUS協(xié)議主機(jī)程序設(shè)計(jì) 通信時,主機(jī)Mega64首先發(fā)送信息幀,如果從機(jī)響應(yīng)正確則進(jìn)行數(shù)據(jù)處理同時發(fā)送下一幀信息。如果從機(jī)響應(yīng)錯誤或在0.5秒內(nèi)無響應(yīng),則主機(jī)重復(fù)發(fā)送上一幀信息,直到響應(yīng)正確。在程序中,利用串口接收中斷和定時器中斷來實(shí)現(xiàn)信息幀的區(qū)分和闊步。設(shè)定Mega64的定時器T1每隔1個字符時間中斷一次。定時器中斷服務(wù)程序如下,其中eom_flag為通信標(biāo)志,num_stop為信息幀結(jié)束標(biāo)志,fail_flag為通信失敗標(biāo)志Send_Data為字符發(fā)送函數(shù),SendDataProc為發(fā)送信息幀預(yù)處理函數(shù),RevDataProc為接收數(shù)據(jù)處理函數(shù)。在發(fā)送狀態(tài)下.每次定時器中斷時發(fā)送一個字符。保證相鄰字符的時間間隔小于1.5個字符,一幀信息發(fā)送結(jié)束后,復(fù)位發(fā)送標(biāo)志并等待從機(jī)響應(yīng)。在接收狀態(tài)下,每次串口接收中斷都將置位接收標(biāo)志同時將信息幀結(jié)束標(biāo)志清0。一幀信息接收完時,結(jié)束標(biāo)志從0開始累加,當(dāng)結(jié)束標(biāo)志增到4時,表明一幀信息結(jié)束.主機(jī)進(jìn)行接收數(shù)據(jù)處理。由于使用了同一通信標(biāo)志來判斷主機(jī)是接收還是發(fā)送狀態(tài),因此只能實(shí)現(xiàn)半雙工通信。 void TICISR(void) { unsigned char flag; CLl(); //禁止中斷嵌套 if(com_flag==SEND) //如果通信標(biāo)志為發(fā)送,則發(fā)送數(shù)據(jù)SendData0; num_stop++; fail_flag++; if(num_stop>3) //判斷一幀信息是否結(jié)束 { num_stop=0: if(corn_flag==RECEIVE) //如果主機(jī)已接收數(shù)據(jù) { flag=CrcCheck(revP): //CRC校驗(yàn) if(flag) //如果接收正確,則進(jìn)行處理,否則重復(fù)發(fā)送上一指令 RevDataProc(); SendDataProc(); //下一次發(fā)送數(shù)據(jù)預(yù)處理 } } if(fail_flag>200) //如果在0.5秒內(nèi),從機(jī)無響應(yīng),則重復(fù)發(fā)送上一指令 SendDataProc(); SEl(); } 3.2 MODBUS協(xié)議從機(jī)程序設(shè)計(jì) F2812作為通信方的從機(jī),首先對接收列的信息幀進(jìn)行解釋。在網(wǎng)送應(yīng)答報文給主機(jī)。其程序基本設(shè)計(jì)思想與主機(jī)類似,仍利用定時器中斷和串口接收中斷來實(shí)現(xiàn)信息幀的區(qū)分和同步。但在從機(jī)中,定時器和串口接收中斷部必須允許中斷嵌套。即在通信過程中.若逆變部分發(fā)生了捕獲中斷、功牢保護(hù)中斷等,F(xiàn)2812應(yīng)立即執(zhí)行,否則會引起并網(wǎng)電流失真。若由此引起某一幀信息通信失敗,則需要主機(jī)重復(fù)發(fā)送該信息幀。 4 結(jié)論 本文的創(chuàng)新點(diǎn)在于:將原來單核的光伏并網(wǎng)系統(tǒng)設(shè)計(jì)為雙核的主從式系統(tǒng),保證了實(shí)時性:同時利用MODBUS協(xié)議來實(shí)現(xiàn)F2812DSP與單片機(jī)的通信.并且利用MODBUS協(xié)議中保留的擴(kuò)展功能碼,用戶可以方便的實(shí)現(xiàn)特定的功能。而不需要自己去制定串口通信協(xié)議。兩個模塊可獨(dú)立研發(fā),最后在聯(lián)機(jī)進(jìn)行通信調(diào)試.極大的節(jié)省了,研發(fā)時間。通過樣機(jī)實(shí)驗(yàn)表明,此方案切實(shí)可行,整個樣機(jī)運(yùn)行穩(wěn)定。通信數(shù)據(jù)準(zhǔn)確,適時性好。 作者:羅力,沈玉粱,何金偉,孫韻琳 來源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第4-2期 |