基于FPGA與AD5422的PLC模擬量擴(kuò)展單元的設(shè)計(jì)
作者/ 鮑長(zhǎng)君 上海龍誠(chéng)自動(dòng)化系統(tǒng)有限公司(上海 200086)
本文引用地址:http://www.ex-cimer.com/article/201708/363624.htm鮑長(zhǎng)君(1985-),男,碩士,中級(jí)工程師,研究方向:嵌入式系統(tǒng)。
摘要:本文設(shè)計(jì)了一種以FPGA為核心,基于AD5422實(shí)現(xiàn)多路高精度輸出的PLC模擬量擴(kuò)展單元模塊。設(shè)計(jì)先對(duì)現(xiàn)有的方案進(jìn)行了分析和討論,之后對(duì)FPGA內(nèi)部相關(guān)處理機(jī)制和實(shí)現(xiàn)方案做了詳盡的論述,經(jīng)過仿真和測(cè)試驗(yàn)證了設(shè)計(jì)的可行性。相比于傳統(tǒng)的模擬量擴(kuò)展單元模塊,本系統(tǒng)具有處理速度快、方便、靈活,電路精簡(jiǎn),抗干擾能力強(qiáng)等優(yōu)點(diǎn)。
1 系統(tǒng)總體設(shè)計(jì)
1.1 方案論述
工業(yè)自動(dòng)化控制系統(tǒng)經(jīng)常需要用到4~20mA 或者±5V等模擬量信號(hào),用以控制變頻器等需要模擬信號(hào)輸入控制的設(shè)備,而模擬量擴(kuò)展單元也是PLC產(chǎn)品重要的擴(kuò)展單元之一。一個(gè)良好的模擬量擴(kuò)展單元產(chǎn)品的設(shè)計(jì)希望不僅能夠保證系統(tǒng)運(yùn)行的可靠性,還希望系統(tǒng)設(shè)計(jì)能夠非常精簡(jiǎn),有足夠的魯棒和可擴(kuò)展性,在成本性、能等各方面組合成一個(gè)最優(yōu)的結(jié)果。是PLC模擬量擴(kuò)展單元產(chǎn)品設(shè)計(jì)一直追求和努力的方向。
傳統(tǒng)的模擬量輸出擴(kuò)展單元結(jié)構(gòu)如圖1,其工作原理是:1、FPGA將擴(kuò)展通信總線上的數(shù)據(jù)通過SPI通信隔離器進(jìn)行電器隔離,然后將數(shù)據(jù)交互給MCU;2、由MCU負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)換和進(jìn)行相關(guān)的配置工作,并通過MCU的SPI接口控制輸出的DAC獲得相應(yīng)的模擬電壓或者電流輸出值。
不難看出,F(xiàn)PGA和MCU之間通過SPI通信,MCU和DAC之間也通過SPI通信,如果我們能把MCU的工作都集成到FPGA內(nèi)完成,那方案就可以省略MCU,由FPGA直接控制DAC實(shí)現(xiàn)功能。但是在省略MCU前要對(duì)現(xiàn)有方案做以下進(jìn)一步的分析。
1.2 實(shí)現(xiàn)多DAC的SPI接口級(jí)聯(lián)方式
在使用傳統(tǒng)MCU控制DAC的回路設(shè)計(jì)時(shí),MCU有足夠的IO口可以單獨(dú)或者級(jí)聯(lián)控制DAC芯片,但是如果換用FPGA來(lái)直接替換MCU控制,則會(huì)因?yàn)樾枰嗟臄?shù)據(jù)隔離通道使得物料成本上升,因此,若想FPGA直接控制DAC,則最好所有的DAC能進(jìn)行級(jí)聯(lián)設(shè)計(jì),即通過一個(gè)SPI隔離器和少數(shù)光耦實(shí)現(xiàn)全部的通信和控制功能。
參考AD5422 芯片數(shù)據(jù)手冊(cè),實(shí)際上該芯片具有多片菊花鏈連接方式,只要設(shè)計(jì)得當(dāng),多個(gè)DAC就可以在同一個(gè)SPI接口上級(jí)聯(lián)工作,圖2是AD5422的原廠數(shù)據(jù)表關(guān)于菊花鏈連接的結(jié)構(gòu)圖[1]。
1.3 每個(gè)DAC的硬件清零信號(hào)處理方法
應(yīng)對(duì)開機(jī)復(fù)位或者某些緊急情況,DAC需要實(shí)現(xiàn)硬件清零工作。關(guān)于DAC硬件清零腳的設(shè)計(jì),我們可以用FPGA閑置的IO腳通過光耦隔離后來(lái)控制它。當(dāng)然若想每個(gè)DAC都可以獨(dú)立完成清零的工作,則需要由軟件通信的方法控制相應(yīng)的寄存器來(lái)實(shí)現(xiàn)軟件清零。
1.4 MCU需要完成的任務(wù)內(nèi)容
從PLC編程給模擬量輸出擴(kuò)展的數(shù)據(jù)以及相應(yīng)的AD5422原廠數(shù)據(jù)表看, MCU需要在這個(gè)中間環(huán)節(jié)完成以下幾個(gè)任務(wù):
1)復(fù)位,取消復(fù)位,清零,初始化DAC芯片;
2)拆分SPI數(shù)據(jù),完成各DAC量程,輸出使能等相關(guān)的配置工作;
3)完成數(shù)據(jù)轉(zhuǎn)換:包括單極性和雙極性數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)位數(shù)擴(kuò)充,數(shù)據(jù)加偏移量等工作;
4)完成DAC狀態(tài)相關(guān)回讀工作,包括DAC電流輸出斷線報(bào)警,芯片過熱等異常情況。
1.5 FPGA直接控制DAC的設(shè)計(jì)方案
綜合以上的設(shè)計(jì)分析,我們修改了整體硬件設(shè)計(jì)方案,由FPGA直接控制DAC的設(shè)計(jì)方案如圖3所示。這樣MCU要完成的工作就必須在FPGA內(nèi)處理完成[2]。
2 FPGA內(nèi)部具體設(shè)計(jì)實(shí)現(xiàn)的方案
2.1 FPGA的數(shù)據(jù)處理流程
評(píng)論