<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP與FPGA的跟蹤伺服運動控制器設(shè)計

          基于DSP與FPGA的跟蹤伺服運動控制器設(shè)計

          作者: 時間:2010-04-14 來源:網(wǎng)絡(luò) 收藏

            將片上集成的多通道緩沖串口配置成SPI模式,與內(nèi)部的SPI模塊完成數(shù)據(jù)交換,從而完成的控制。此時上的Mcbsp為SPI通信的主機,內(nèi)部的SPI模塊為從機,從FPGA讀取數(shù)據(jù)時,只需向從機發(fā)送偽數(shù)據(jù)。這種通信方式避免了占用大量的DSP I/O口資源,速度快,出錯率小。

            由于TMS320F2812內(nèi)部集成的12位高速A/D轉(zhuǎn)換器只能輸入電壓范圍在0~3 V以內(nèi)的模擬信號,因此需要對輸入的雙極性電壓信號進行處理,具體電路如圖2所示。為了提高A/D采樣精度,需要進行軟件校準,基本思想是通過采樣已知電壓信號來確定偏差。

            2.2 FPGA模塊

            FPGA選型時綜合考慮片上邏輯單元、用戶I/O口數(shù)量以及功能擴展的需要,根據(jù)前期仿真結(jié)果選用Altera公司的CycloneⅡ系列的EP2C8Q208C8,它具有8 256個邏輯單元,138個用戶I/O,36個M4KRAM和2個鎖相環(huán),內(nèi)核電壓只有1.2 V,具有低成本、低功耗的特點[8,9]。由于FPGA具有高速并行處理能力,所以保證了系統(tǒng)的同步性[10]。它的I/O口支持3.3 V LVTTL電平,與DSP管腳電平兼容,因此不用進行電平轉(zhuǎn)換,可直接連接,使用方便。

            FPGA模塊主要完成伺服控制器的邏輯接口功能,并可以擴展通用I/O口數(shù)量,方便功能擴展。在此主要實現(xiàn)4個模塊:串行通信接口模塊、SPI模塊、D/A接口模塊和中斷控制模塊。其中SPI模塊配置成從機工作模式,與DSP的Mcbsp配合完成DSP與FPGA的數(shù)據(jù)交換。各模塊獨立并行工作,并由頂層控制模塊統(tǒng)一協(xié)調(diào)控制,具有速度快、可移植性好的特點。

            2.3 D/A轉(zhuǎn)換器模塊

            根據(jù)轉(zhuǎn)換通道數(shù)、精度和轉(zhuǎn)換速度,D/A轉(zhuǎn)換芯片選擇BURR-BROWN公司的DAC7614。它是12位串行數(shù)模轉(zhuǎn)換器,4路模擬輸出,功耗只有20 mW,單次轉(zhuǎn)換建立時間10 μs[10]。

            使用單極性輸出時,采用+5 V供電;雙極性輸出時,采用±5 V供電。在此需要用到雙極性輸出,基準電壓源選用LM336-2.5,負電壓基準采用反相放大方式產(chǎn)生。為避免外電路對板內(nèi)數(shù)字電路的干擾,需要對數(shù)字部分進行光電隔離。具體電路如圖3所示。

          pid控制器相關(guān)文章:pid控制器原理




          關(guān)鍵詞: FPGA DSP 跟蹤伺服運動控制器

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();