關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于FPGA與AD5422的PLC模擬量擴(kuò)展單元的設(shè)計(jì) 

        基于FPGA與AD5422的PLC模擬量擴(kuò)展單元的設(shè)計(jì) 

        作者:鮑長(zhǎng)君 時(shí)間:2017-08-29 來源:電子產(chǎn)品世界 收藏
        編者按:本文設(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列舉了模擬量輸出規(guī)格,包括量程、用戶分辨率、用戶編程的數(shù)據(jù)范圍等。

        本文引用地址:http://www.104case.com/article/201708/363624.htm

          可見因?yàn)槲覀兘oPLC編程的數(shù)據(jù)和最終送給芯片的數(shù)據(jù)有一定的區(qū)別,則對(duì)于數(shù)據(jù)處理來說,我們需要完成以下幾個(gè)功能:

          1)識(shí)別數(shù)據(jù)有效性:PLC給用戶1/12000的分辨率和控制字并不能占用0x0000-0xFFFF全部范圍內(nèi)的數(shù)據(jù),也就是說存在一部分的輸入數(shù)據(jù)是非法的無效的,需要在經(jīng)過處理前識(shí)別出來,避免后續(xù)處理出錯(cuò),設(shè)計(jì)通過數(shù)據(jù)比較輸出數(shù)據(jù)有效或者無效判斷,當(dāng)然設(shè)計(jì)可以選擇無效數(shù)據(jù)丟失或者輸出報(bào)警信號(hào)。

          2)雙極性轉(zhuǎn)換:對(duì)應(yīng)雙極性輸出數(shù)據(jù)中的-10~+10V的數(shù)據(jù)范圍是十六進(jìn)制的0xE890到0x1770 對(duì)應(yīng)十進(jìn)制的-6000到+6000,而的-10V-+10V對(duì)應(yīng)的數(shù)據(jù)范圍是十六進(jìn)制的0x000-0xFFFF是單極性的,所以先要給雙極性的原始數(shù)據(jù)加上十進(jìn)制的6000,統(tǒng)一輸入為十六進(jìn)制的0x0000-0x2EE0,對(duì)應(yīng)十進(jìn)制的0-12000。

          3)數(shù)據(jù)擴(kuò)充:通過乘法器實(shí)現(xiàn)輸入數(shù)據(jù)的擴(kuò)充,從給用戶的十六進(jìn)制0x0000-0x2EE0需要對(duì)應(yīng)轉(zhuǎn)換到十六進(jìn)制0x0000-0xFFFF。特別地,對(duì)于1~5V量程來說因?yàn)檩敵鲇袀€(gè)1V的基準(zhǔn)量,在適用的0~5V量程時(shí)通過擴(kuò)展到AD5422對(duì)應(yīng)的0~4V量程,即十六進(jìn)制的0x0000-0xCCCC,當(dāng)然,這一步的處理需要在內(nèi)部設(shè)計(jì)硬件乘法器,使得每個(gè)量程都能乘上響應(yīng)的系數(shù)完成數(shù)據(jù)擴(kuò)充工作。

          4)添加偏移量:對(duì)于1~5V量程來說這個(gè)1V的基準(zhǔn)量是始終存在的,這就需要在完成數(shù)據(jù)擴(kuò)充后添加偏移量,其他量程則不需要這個(gè)偏移量的添加。

        2.2 其余需要添加的功能塊還包括

          1)控制字識(shí)別模塊:針對(duì)獲得的命令控制字,需要能甄別,并且分離出每個(gè)通道的量程和使能信息,在獲得合法的控制字后才能通知初始化模塊開始正常的數(shù)據(jù)運(yùn)行。對(duì)于非法的控制字信息也能報(bào)錯(cuò)并停機(jī)。

          2)初始化模塊:在上電后初始化每一個(gè)DAC芯片,包括復(fù)位芯片,開啟菊花鏈?zhǔn)鼓埽蹇蛰敵鰯?shù)據(jù)寄存器等操作[1]

          3)SPI接口模塊:該模塊能自動(dòng)的將處理完成的數(shù)據(jù)添加字頭地址并發(fā)送,而且能夠配合初始化模塊完成DAC的初始化工作。在完成數(shù)據(jù)發(fā)送后最好還可以自動(dòng)回讀DAC的狀態(tài)信息了解DAC是否過熱,電流環(huán)開路等信息。在處理完成所有工作后,自動(dòng)的提供一個(gè)幀復(fù)位信號(hào)給狀態(tài)機(jī)完成一幀數(shù)據(jù)的處理工作。

          4)時(shí)鐘控狀態(tài)機(jī):該模塊能協(xié)調(diào)每個(gè)模塊的工作順序,使這個(gè)機(jī)制在數(shù)據(jù)幀能順利工作并且自動(dòng)復(fù)位。

          5)通道識(shí)別模塊:對(duì)于多通道數(shù)據(jù)使用同一個(gè)數(shù)據(jù)處理線來說,要有效的識(shí)別通道,通知各模塊裝載對(duì)應(yīng)的量程控制字和控制SPI模塊的菊花鏈數(shù)據(jù)裝載順序。 圖4是FPGA內(nèi)部整體處理機(jī)制的結(jié)構(gòu)圖。

        3 FPGA仿真測(cè)試

          通過Verilog HDL語言編寫相關(guān)的硬件描述語言模塊,并綜合生成實(shí)例。圖5是FPGA內(nèi)部實(shí)現(xiàn)DAC數(shù)據(jù)轉(zhuǎn)換處理的實(shí)例模塊,也是本設(shè)計(jì)的核心模塊,其相應(yīng)的輸入端口包括:模塊復(fù)位rst_n;模塊主時(shí)鐘輸入mclki;通道1的總線送來的十六位數(shù)據(jù)BUSdata1[15:0];通道2的總線送來的十六位數(shù)據(jù)BUSdata2[15:0];2個(gè)DAC通道的配置數(shù)據(jù)(包括量程和使能信號(hào))configdata[7:0] ;轉(zhuǎn)換使能信號(hào)start;相應(yīng)的輸出信號(hào)包括送往SPI通信模塊發(fā)送給DAC1的數(shù)據(jù)Txdata1[15:0];發(fā)送給DAC2的數(shù)據(jù)Txdata2[15:0],以及轉(zhuǎn)換完成的使能信號(hào)TXok。

          使用ModelSim軟件對(duì)FPGA內(nèi)部的處理機(jī)制進(jìn)行仿真測(cè)試,圖6是SPI端口對(duì)DAC進(jìn)行初始化的時(shí)序仿真結(jié)果。包括發(fā)送0x560001 進(jìn)行復(fù)位功能,發(fā)送0x560000 取消復(fù)位功能,發(fā)送0x550008 開啟菊花鏈?zhǔn)鼓艿炔僮鳌?/p>

          圖7顯示了FPGA內(nèi)部數(shù)據(jù)轉(zhuǎn)換的仿真測(cè)試結(jié)果,我們先預(yù)設(shè)了DAC工作在-10~10V量程下,并在該模式下給FPGA送入十進(jìn)制的6000 對(duì)應(yīng)0x1770 代表要求DAC輸出正10V滿量程,計(jì)算結(jié)果輸出是有符號(hào)數(shù)的0x7FFF,說明和預(yù)期結(jié)果一致,即這部分功能模塊可以正常工作。

          樣機(jī)測(cè)試使用Microsemi的FPGA為處理核心,使用Libero SoC開發(fā)平臺(tái)下移植了以上設(shè)計(jì)進(jìn)行實(shí)體電路的運(yùn)行,圖8為樣機(jī)的實(shí)物照片,左邊為頂層FPGA板,右邊為底層模擬量輸出板。其中模擬部分的硬件設(shè)計(jì)可以參考EVAL-AD5422[3]。另外,注意要做好輸出ESD保護(hù)對(duì)策。圖9顯示了該樣機(jī)輸出0~10V階躍信號(hào)的實(shí)測(cè)波形,驗(yàn)證了設(shè)計(jì)的可行性,完成了相關(guān)產(chǎn)品的開發(fā)任務(wù)。

        4 結(jié)論

          本設(shè)計(jì)憑借FPGA強(qiáng)大的硬件可編程能力,在硬件設(shè)計(jì)方面直接省略了一顆MCU處理器及相關(guān)配套的硬件,既可以極度的精簡(jiǎn)物料表。提升整體硬件可靠性,降低系統(tǒng)功耗,又不用擔(dān)心MCU會(huì)存在死機(jī)等實(shí)際運(yùn)行的風(fēng)險(xiǎn)。

          對(duì)于數(shù)據(jù)處理交由FPGA來實(shí)現(xiàn),既可更嚴(yán)格的管理完善整體系統(tǒng)運(yùn)行的時(shí)序。而且輸入輸出數(shù)據(jù)的關(guān)聯(lián)性更差,這樣整個(gè)設(shè)計(jì)具有更好的保密性。利用FPGA的靈活性,使電子設(shè)計(jì)能夠在很短的周期內(nèi)完成[4],而且FPGA內(nèi)部設(shè)計(jì)硬件乘法器,加法器等硬件模塊可以極大的提升數(shù)據(jù)處理速度,從而提升系統(tǒng)響應(yīng)時(shí)間[5]。

          參考文獻(xiàn):

          [1]AD5422 Datasheet[Z] Analog Devices, Inc.

          [2]于笑凡,費(fèi)樹岷.基于FPGA 與AD5422 的多功能信號(hào)發(fā)生器的設(shè)計(jì)[J].信息技術(shù)與信息化,2013(6): 53-55.

          [3]UG-422:Evaluating the AD5422 Single Channel,16Bit,Current Source and Voltage Output DAC,HART Connectivity.[Z] Analog Devices, Inc.

          [4]王玨文,金偉信,蔡一兵,等.基于FPGA的SPI總線接口的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010(14):102-104.

          [5]周維龍.基于FPGA 的智能變送器的設(shè)計(jì)與開發(fā)[D].長(zhǎng)沙:湖南大學(xué),2010:18-22.

          本文來源于《電子產(chǎn)品世界》2017年第9期第61頁,歡迎您寫論文時(shí)引用,并注明出處。


        上一頁 1 2 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 长子县| 石景山区| 什邡市| 吴桥县| 台山市| 通州区| 石景山区| 光泽县| 建阳市| 精河县| 扎赉特旗| 正镶白旗| 建始县| 肥东县| 亚东县| 南澳县| 山丹县| 东山县| 三原县| 依安县| 忻城县| 临澧县| 西乌| 奉新县| 泰安市| 绵竹市| 中卫市| 襄垣县| 林西县| 汪清县| 郓城县| 兰西县| 浙江省| 深州市| 阿克| 锦屏县| 浦城县| 大埔区| 鹤庆县| 夏邑县| 定兴县|