基于DSP+FPGA的磁鐵電源控制器的設(shè)計
摘要:介紹了一種基于DSP和FPGA的磁鐵電源控制器的設(shè)計方案,闡述了該控制器硬件系統(tǒng)的組成,包括信號調(diào)理電路、中間數(shù)據(jù)處理部分、后端的驅(qū)動電路。同時給出了DSP和FPGA之間通過SPI接口通信的具體流程和輸出PWM波形死區(qū)部分的控制流程。設(shè)計的磁鐵電源控制器有很好的控制和運(yùn)算能力,同時具有很好的靈活性和可靠性。
關(guān)鍵詞:磁鐵電源控制器;DSP;FPGA;SPI
磁鐵電源大多作為電源中的一種特種電源被廣泛應(yīng)用于加速器、質(zhì)譜儀等設(shè)備,為磁鐵提供特定的勵磁電流以產(chǎn)生所需的磁場,對磁鐵電源的基本要求來源于磁場特性,因此基于數(shù)字化電源控制器的磁鐵電源為輸出高精度的穩(wěn)定勵磁電流,以獲得符合運(yùn)行模式的穩(wěn)定磁場結(jié)構(gòu)提供了重要保證。文中介紹的磁鐵電源控制器采用DSP和FPGA的雙CPU結(jié)構(gòu),采用FPGA控制高精度模數(shù)轉(zhuǎn)換器AD7679進(jìn)行采樣,通過DSP的SPI接口把采集到的數(shù)據(jù)送給DSP;由DSP運(yùn)算處理后輸出用來控制磁鐵電源的帶有死區(qū)的PWM波形。
1 控制器總體結(jié)構(gòu)
控制器采用DSP TMS320F2812為數(shù)字處理輸出模塊,以Altera公司的CvcloneⅢ系列FPGA控制前端AD進(jìn)行數(shù)據(jù)采集,數(shù)據(jù)傳輸部分由FPGA與DSP的SPI接口完成。通過DSP的SCI串口與上位機(jī)實現(xiàn)通訊,顯示并控制電源的運(yùn)行狀態(tài),后端的驅(qū)動電路中實現(xiàn)主電路和驅(qū)動電路的隔離??刂破骺傮w結(jié)構(gòu)框圖如圖1所示。
2 硬件電路設(shè)計
2.1 信號調(diào)理電路
信號調(diào)理電路的主要作用是實現(xiàn)信號的放大和低通濾波。因為要保證將AD轉(zhuǎn)換器的采集信號限制在0~+5 V之間,為防止大電流信號時產(chǎn)生過高的輸入電壓會損壞A/D端口,設(shè)計了電平限制保護(hù)電路。AD轉(zhuǎn)換器輸入采用差分輸入方式,將單端信號轉(zhuǎn)換為差分信號,實現(xiàn)比例放大,有效的濾除了高頻噪聲,便于AD對輸入信號的高精度采集。圖2為信號限幅、隔離、濾波和放大電路。
2.2 FPGA對AD的控制
本設(shè)計采用的AD7679是18位電荷分配的完全差分逐次逼近型模數(shù)轉(zhuǎn)換器,具有570 ksps的采樣速率,同時可以與5 V或3 V的數(shù)字邏輯電平兼容。為防止采樣點(diǎn)在開關(guān)脈沖之上,系統(tǒng)出現(xiàn)振蕩,可以使DSP在發(fā)出開關(guān)脈沖的同時給FPGA一個同步信號,作適當(dāng)延時,等信號的尖峰脈沖消失后,F(xiàn)PGA再給ADC發(fā)出采樣命令。AD操作分為空閑、開始AD轉(zhuǎn)換、等待AD轉(zhuǎn)換、讀AD轉(zhuǎn)換結(jié)果4個狀態(tài)。在CONVST信號的下降沿后,開啟轉(zhuǎn)換過程,BUSY會自動置1,保持轉(zhuǎn)換。當(dāng)BUSY信號變?yōu)榈碗娖剑珻ONVST保持高電平時,AD7679處于數(shù)據(jù)采集階段。FPGA對AD的控制如圖3所示,實際的電路中,F(xiàn)PGA和AD轉(zhuǎn)換器之間加入四通道的磁隔離器件ADuM1412進(jìn)行數(shù)據(jù)隔離。
2.3 DSP與FPGA間的通信
TMS320F2812內(nèi)部帶有一個SPI接口,通過定義控制寄存器。設(shè)置DSP為主設(shè)備,為通信提供時鐘信號,F(xiàn)PGA作為從設(shè)備。由于DSP和FPGA的I/O口引腳電壓相匹配(3.3 V),所以不需要電平轉(zhuǎn)換電路。設(shè)置FPGA在時鐘脈沖上升沿時發(fā)送數(shù)據(jù),在下降沿時接收數(shù)據(jù)。由于FPGA發(fā)送的數(shù)據(jù)時總是將最高位的數(shù)據(jù)移出,接著將剩余的數(shù)據(jù)分別左移一位,所以DSP將接收到的數(shù)據(jù)逐位左移實現(xiàn)數(shù)據(jù)接收。當(dāng)SPISTE引腳為低電平時,F(xiàn)PGA逐位發(fā)送數(shù)據(jù);當(dāng)SPICLK引腳為高電平時,DSP逐位讀取數(shù)據(jù),并且左移一位后等待下一次SPICLK為高電平,當(dāng)SPISTE為高電平時,則DSP已經(jīng)接收完FPGA發(fā)送的數(shù)據(jù),經(jīng)過8個時鐘脈沖后,完成一次SPI時序,DSP將接收到的數(shù)據(jù)存儲到已經(jīng)定義的數(shù)組中。DSP與FPGA通信引腳連接如圖3所示。
評論