<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

基于FPGA與AD5422的PLC模擬量擴展單元的設計 

作者:鮑長(cháng)君 時(shí)間:2017-08-29 來(lái)源:電子產(chǎn)品世界 收藏
編者按:本文設計了一種以FPGA為核心,基于A(yíng)D5422實(shí)現多路高精度輸出的PLC模擬量擴展單元模塊。設計先對現有的方案進(jìn)行了分析和討論,之后對FPGA內部相關(guān)處理機制和實(shí)現方案做了詳盡的論述,經(jīng)過(guò)仿真和測試驗證了設計的可行性。相比于傳統的模擬量擴展單元模塊,本系統具有處理速度快、方便、靈活,電路精簡(jiǎn),抗干擾能力強等優(yōu)點(diǎn)。

作者/ 鮑長(cháng)君 上海龍誠自動(dòng)化系統有限公司(上海 200086)

本文引用地址:http://dyxdggzs.com/article/201708/363624.htm

鮑長(cháng)君(1985-),男,碩士,中級工程師,研究方向:嵌入式系統。

摘要:本文設計了一種以為核心,基于實(shí)現多路高精度輸出的PLC模擬量擴展單元模塊。設計先對現有的方案進(jìn)行了分析和討論,之后對內部相關(guān)處理機制和實(shí)現方案做了詳盡的論述,經(jīng)過(guò)仿真和測試驗證了設計的可行性。相比于傳統的模擬量擴展單元模塊,本系統具有處理速度快、方便、靈活,電路精簡(jiǎn),抗干擾能力強等優(yōu)點(diǎn)。

1 系統總體設計

1.1 方案論述

  工業(yè)自動(dòng)化控制系統經(jīng)常需要用到4~20mA 或者±5V等模擬量信號,用以控制變頻器等需要模擬信號輸入控制的設備,而模擬量擴展單元也是PLC產(chǎn)品重要的擴展單元之一。一個(gè)良好的模擬量擴展單元產(chǎn)品的設計希望不僅能夠保證系統運行的可靠性,還希望系統設計能夠非常精簡(jiǎn),有足夠的魯棒和可擴展性,在成本性、能等各方面組合成一個(gè)最優(yōu)的結果。是PLC模擬量擴展單元產(chǎn)品設計一直追求和努力的方向。

  傳統的模擬量輸出擴展單元結構如圖1,其工作原理是:1、將擴展通信總線(xiàn)上的數據通過(guò)SPI通信隔離器進(jìn)行電器隔離,然后將數據交互給MCU;2、由MCU負責數據的轉換和進(jìn)行相關(guān)的配置工作,并通過(guò)MCU的SPI接口控制輸出的DAC獲得相應的模擬電壓或者電流輸出值。

  不難看出,FPGA和MCU之間通過(guò)SPI通信,MCU和DAC之間也通過(guò)SPI通信,如果我們能把MCU的工作都集成到FPGA內完成,那方案就可以省略MCU,由FPGA直接控制DAC實(shí)現功能。但是在省略MCU前要對現有方案做以下進(jìn)一步的分析。

1.2 實(shí)現多DAC的SPI接口級聯(lián)方式

  在使用傳統MCU控制DAC的回路設計時(shí),MCU有足夠的IO口可以單獨或者級聯(lián)控制DAC芯片,但是如果換用FPGA來(lái)直接替換MCU控制,則會(huì )因為需要更多的數據隔離通道使得物料成本上升,因此,若想FPGA直接控制DAC,則最好所有的DAC能進(jìn)行級聯(lián)設計,即通過(guò)一個(gè)SPI隔離器和少數光耦實(shí)現全部的通信和控制功能。

  參考 芯片數據手冊,實(shí)際上該芯片具有多片菊花鏈連接方式,只要設計得當,多個(gè)DAC就可以在同一個(gè)SPI接口上級聯(lián)工作,圖2是的原廠(chǎng)數據表關(guān)于菊花鏈連接的結構圖[1]。

1.3 每個(gè)DAC的硬件清零信號處理方法

  應對開(kāi)機復位或者某些緊急情況,DAC需要實(shí)現硬件清零工作。關(guān)于DAC硬件清零腳的設計,我們可以用FPGA閑置的IO腳通過(guò)光耦隔離后來(lái)控制它。當然若想每個(gè)DAC都可以獨立完成清零的工作,則需要由軟件通信的方法控制相應的寄存器來(lái)實(shí)現軟件清零。

1.4 MCU需要完成的任務(wù)內容

  從PLC編程給模擬量輸出擴展的數據以及相應的AD5422原廠(chǎng)數據表看, MCU需要在這個(gè)中間環(huán)節完成以下幾個(gè)任務(wù):

  1)復位,取消復位,清零,初始化DAC芯片;

  2)拆分SPI數據,完成各DAC量程,輸出使能等相關(guān)的配置工作;

  3)完成數據轉換:包括單極性和雙極性數據轉換,數據位數擴充,數據加偏移量等工作;

  4)完成DAC狀態(tài)相關(guān)回讀工作,包括DAC電流輸出斷線(xiàn)報警,芯片過(guò)熱等異常情況。

1.5 FPGA直接控制DAC的設計方案

  綜合以上的設計分析,我們修改了整體硬件設計方案,由FPGA直接控制DAC的設計方案如圖3所示。這樣MCU要完成的工作就必須在FPGA內處理完成[2]。

2 FPGA內部具體設計實(shí)現的方案

2.1 FPGA的數據處理流程



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA AD5422 串行外設接口 201709

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>