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