用TMS320LF2407和FPGA實(shí)現(xiàn)電能質(zhì)量監(jiān)測(cè)
(作者未知) 2010/6/3
(接上頁(yè))路,dini為結(jié)果的虛部, 。在進(jìn)行開(kāi)方運(yùn)算時(shí),若設(shè)計(jì)64M×13位長(zhǎng)度的存儲(chǔ)器進(jìn)行查表計(jì)算,對(duì)于現(xiàn)有的可編程邏輯器件來(lái)說(shuō)是很難實(shí)現(xiàn)的。因此,本次設(shè)計(jì)中采用了修正查表算法:將待開(kāi)方的數(shù)據(jù)z=(dinr2 dini2)左移m次(m為偶數(shù)),直到其最高兩位不全為0,此時(shí)z變?yōu)閦1;取z1的高8位來(lái)查表(此時(shí)表長(zhǎng)為2 8=256個(gè)字)得到t1;使用牛頓一次迭代公式t=(t1 z1/t1)/2,對(duì)t1進(jìn)行修正得到t;最后將t右移m/2次,得到開(kāi)方結(jié)果。實(shí)驗(yàn)證明,上述修正后的查表法誤差在允許的范圍內(nèi),對(duì)本系統(tǒng)來(lái)說(shuō)是可行的。
在軟件方面,為了提高芯片的性能及資源利用率,采用Quartus II 2.0t Synplify7.1。在Synplify中使用有效的代碼,采取流水線設(shè)計(jì)、優(yōu)化組合邏輯及減少邏輯延時(shí)等措施來(lái)提高整體性能,還進(jìn)行了多個(gè)文件的分塊設(shè)計(jì),然后將這些文件映射到頂層文件進(jìn)行綜合,并運(yùn)行VHDL或者Verilog HDL對(duì)單個(gè)文件編寫、信真和優(yōu)化。在用到組合邏輯時(shí),Synplify會(huì)盡量避免鎖存器的出現(xiàn),節(jié)省邏輯單元。對(duì)于ACEX系列的芯片,它還支持寄存器配平技術(shù)、流水線操作、復(fù)制邏輯模塊及使用LPM函數(shù)等技術(shù)來(lái)提高其整體性能。Synplify和其它結(jié)合軟件一樣,編譯后生成的電子設(shè)計(jì)交換格式文件(EDIF)可以在MAX PLUS II或Quartus II 2.0中進(jìn)行編譯、分別引腳和其它優(yōu)化處理。因此,采用Quartus II 2.0和Synplify7.1相結(jié)合,對(duì)FPGA進(jìn)行設(shè)計(jì)、優(yōu)化及綜合,不僅能提高系統(tǒng)性能,還能提高芯片資源的利用率。
(2)通信接口模塊
為了靈活地與外界系統(tǒng)進(jìn)行連接,F(xiàn)PGA提供了并行通信和串行通信兩種形式。并行通信可以直接和DSP連接組成電力監(jiān)測(cè)和控制系統(tǒng);串行通信不僅可以方便地和DSP連接,不可以和不具備諧波分析功能的系統(tǒng)組成更加完善的電力監(jiān)測(cè)系統(tǒng)。
以于并行通信,如系統(tǒng)框圖所示,根據(jù)規(guī)劃好的LF2407擴(kuò)展I/O空間,由LF2407的高位地址線的邏輯組合來(lái)產(chǎn)生FPGA選片信號(hào),低位地址線向LF2407輸出要訪問(wèn)數(shù)據(jù)的地址,在IS引腳的下降沿,F(xiàn)PGA中的數(shù)據(jù)傳輸?shù)絃F2407的數(shù)據(jù)總線。值得注意的是,在編寫FPGA的并行通信模塊時(shí),除了編寫相應(yīng)的控制程序以外,還要利用LF2407的IS引腳來(lái)選通FPGA的三態(tài)總線進(jìn)行數(shù)據(jù)輸出,這樣可以避免FPGA與LF2407的數(shù)據(jù)接口影響LF2407的工作。
如果利用FPGA進(jìn)行串行通信,則可以完善已有的電力監(jiān)測(cè)系統(tǒng)。為了使其能和現(xiàn)有的設(shè)備更好的進(jìn)行連接,還設(shè)計(jì)了TMS320LF2407和FPGA之間的串行通信。本系統(tǒng)中,LF2407包含了可以直接利用RS232通信的串行通信接口(SCI)模塊,所以對(duì)FPGA編寫串行通信接口模塊時(shí),要保證和LF2407相同的通信格式。本系統(tǒng)在實(shí)際設(shè)計(jì)中采用的通信格式為:1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)奇/校驗(yàn)位,1個(gè)停止位。TMS320LF2407的串口通訊電路如圖5所示。
FPGA的UART模塊中,確定相同通信格式的同時(shí),還要確定相同的波特率,并根據(jù)波特率產(chǎn)生發(fā)送、接收時(shí)鐘。對(duì)于數(shù)據(jù)的發(fā)送,F(xiàn)PGA監(jiān)測(cè)txrdy(發(fā)送就緒)信號(hào)。如果txrdy=“1”,就從待發(fā)送數(shù)據(jù)區(qū)中取出數(shù)據(jù)寫入U(xiǎn)ART的數(shù)據(jù)總線,隨后產(chǎn)生一位起始位。然后,利用發(fā)送時(shí)鐘觸發(fā)移位寄存器,將待發(fā)送數(shù)據(jù)送到內(nèi)部寄存器,將數(shù)據(jù)依次送到發(fā)送端(TX)。最后,根據(jù)發(fā)送數(shù)據(jù)的“1”的個(gè)數(shù),加上校驗(yàn)位和停止位,就實(shí)現(xiàn)了數(shù)據(jù)的串行發(fā)送。
FPGA的監(jiān)測(cè)單元監(jiān)測(cè)到RX的下降沿,則啟動(dòng)接收單元。在采樣時(shí)鐘的上升沿對(duì)接收信號(hào)進(jìn)行采樣,高電平為“1”,低電平為“0”。然后通過(guò)移位寄存器,將串行數(shù)據(jù)轉(zhuǎn)換成并行的8位數(shù)據(jù),完成數(shù)據(jù)的接收。
3 DSP模塊
根據(jù)算法的分配,高層的信號(hào)處理量小,但控制結(jié)構(gòu)復(fù)雜,適合用處理速度較快的DSP來(lái)處理。本系統(tǒng)中,DSP主要是根據(jù)FPGA中模擬量的采樣結(jié)果和運(yùn)算結(jié)果,計(jì)算電力參數(shù)以及發(fā)出相應(yīng)的控制信號(hào)。如有必要,還可以用液晶來(lái)顯示結(jié)果。
對(duì)于LF2407和FPGA的并行通信,使用LF2407的擴(kuò)展I/O來(lái)讀取FPGA中ADC采樣數(shù)據(jù)保存區(qū)和各次諧波系數(shù)放區(qū)中數(shù)據(jù)。LF2407可以直接使用IN和OUT指令對(duì)FPGA進(jìn)行讀寫。
對(duì)于串行通信,LF2407向FPGA發(fā)送數(shù)據(jù)。只要查詢SCICTL2的7號(hào)位,來(lái)判斷發(fā)送器是否為高。如果為空,LF2407就可以向FPGA發(fā)送數(shù)據(jù)(命令),控制FPGA的運(yùn)行。同樣,LF2407采用中斷方式接收從FPGA發(fā)送來(lái)的數(shù)據(jù)。LF2407接收中斷的向量地址為INT1(0002H)(未完,下一頁(yè))
|