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