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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 一種基于ARM 單片機(jī)與CPLD的數(shù)字軸角轉(zhuǎn)換方法

          一種基于ARM 單片機(jī)與CPLD的數(shù)字軸角轉(zhuǎn)換方法

          作者: 時(shí)間:2013-09-15 來源:網(wǎng)絡(luò) 收藏

          引言 同步機(jī).正余弦旋轉(zhuǎn)變壓器等廣泛應(yīng)用于火力控制.航空航天.自動(dòng)控制等領(lǐng)域以實(shí)現(xiàn)系統(tǒng)間軸角信息的傳輸.由于計(jì)算機(jī)技術(shù)在上述領(lǐng)域的廣泛應(yīng)用,數(shù)字-軸角轉(zhuǎn)換已(Digitalto Shaft-angle Converting,DSC)成為一個(gè)重要的問題.市場上DSC集成模塊產(chǎn)品價(jià)格較高且接口不夠靈活,在某些領(lǐng)域應(yīng)用受到限制,特別在多路DSC使用時(shí)效費(fèi)問題更為突出.基于上述問題,提出一種采用 +實(shí)現(xiàn)數(shù)字-軸角轉(zhuǎn)換的方法.

          本文引用地址:http://www.ex-cimer.com/article/228339.htm

          1 數(shù)字-軸角轉(zhuǎn)換原理數(shù)字-軸角轉(zhuǎn)換(DSC)是將數(shù)字形式表示的軸角度θ通過運(yùn)算電路轉(zhuǎn)換為正余弦旋轉(zhuǎn)變壓器形式的電壓(如式(1)),經(jīng)正余弦旋轉(zhuǎn)變壓器和經(jīng)過Scott變壓器后驅(qū)動(dòng)同步機(jī)指向?qū)?yīng)軸角位置,從而完成數(shù)字-軸角轉(zhuǎn)換.

          當(dāng)同步機(jī).正余弦旋轉(zhuǎn)變壓器的激磁繞組電壓為U0 =Umsinωt時(shí),則正余弦旋轉(zhuǎn)變壓器兩相繞組輸出電壓為:

          URS =KRUmsinωtsinθ

          URC =KRUmsinωtcosθ

          驅(qū)動(dòng)同步機(jī)三相繞組電壓為:

          US1 =KSUmsinωtsinθ

          US2 =KSUmsinωtsin(θ+120°)

          US3 =KSUmsinωtsin(θ-120°)

          其中,KR ?KS分別為正余弦旋轉(zhuǎn)變壓器和同步機(jī)的變壓比,θ為軸角位置.

          為了將兩相正余弦旋轉(zhuǎn)變壓器信號(hào)變?yōu)槿嗤綑C(jī)信號(hào),需使用Scott變壓器.其基本構(gòu)造及原理分析如圖1所示.

          一種基于ARM 單片機(jī)與CPLD的數(shù)字軸角轉(zhuǎn)換方法

          在圖1 (a)中,URS ?URC是空間兩相正余弦旋轉(zhuǎn)變壓器信號(hào),將兩變壓器按圖中抽頭連接,如圖1 (b)的相量圖分析:

          Us1 =URS

          US2 =-0.5URS -0.866URC

          US3 =-0.5URS +0.866URC

          這樣就將空間兩相正余弦旋轉(zhuǎn)變壓器信號(hào)轉(zhuǎn)變?yōu)榭臻g的三相同步機(jī)信號(hào).2 硬件設(shè)計(jì)

          2.1 總體設(shè)計(jì)

          以一路DSC為例,系統(tǒng)的硬件結(jié)構(gòu)如圖2所示.工作原理為:STM32F407微控制器為主控芯片,通過通信接口接收外部輸入的軸角信號(hào)θ,并對其進(jìn)行粗精分離及利用查表法計(jì)算對應(yīng)占空比大小,通過總線方式將通道對應(yīng)地址及占空比對應(yīng)數(shù)據(jù)信息送入;根據(jù)數(shù)據(jù)及地址信息產(chǎn)生對應(yīng)通道和占空比的PWM 信號(hào);由4個(gè)互補(bǔ)MOS管構(gòu)成的全橋驅(qū)動(dòng)電路由全橋驅(qū)動(dòng)器UBA2032根據(jù)PWM 信號(hào)控制全橋電路開斷,并經(jīng)選頻電路后產(chǎn)生對應(yīng)軸角的調(diào)制波,經(jīng)Scott變壓器轉(zhuǎn)變?yōu)槿嘈盘?hào)后驅(qū)動(dòng)同步機(jī)指向?qū)?yīng)軸角位置即完成系統(tǒng)的數(shù)字-軸角轉(zhuǎn)換.

          一種基于ARM 單片機(jī)與CPLD的數(shù)字軸角轉(zhuǎn)換方法

          2.2 STM32F4微控制器

          STM32F4微控制器是由意法半導(dǎo)體生產(chǎn)的基于Cortex-M4內(nèi)核的新型微控制器,性能優(yōu)越.下面主要說明選用此型號(hào)MCU的原因:

          (1)內(nèi)核架構(gòu)先進(jìn),性能優(yōu)越.由于MCU需要完成諸如軸角粗精分離.取整以及調(diào)制波對應(yīng)PWM 信號(hào)占空比等運(yùn)算,涉及到較多乘除法運(yùn)算,要求所選MCU需具備較強(qiáng)浮點(diǎn)及乘除運(yùn)算能力,而所選STM32F4微控制器具有專門的硬件乘法器和具有較高的主頻(168MHz),且可適當(dāng)超頻,適合完成較為復(fù)雜的實(shí)時(shí)運(yùn)算;(2)接口豐富,可方便完成功能擴(kuò)展.RS232串口用于接收外部信息,同時(shí),此型號(hào)MCU具有網(wǎng)絡(luò)接口,可在系統(tǒng)組網(wǎng)時(shí)作為網(wǎng)絡(luò)節(jié)點(diǎn);(3)可變靜態(tài)存儲(chǔ)控制器(FSMC),是STM32系列采用的一種新型的存儲(chǔ)器擴(kuò)展技術(shù),可根據(jù)不同的外部存儲(chǔ)器類型通過設(shè)置進(jìn)而匹配信號(hào)的速度,達(dá)到方便擴(kuò)展.使用靈活的目的.系統(tǒng)中通過數(shù)據(jù)/地址/控制三總線方式與CPLD通信.

          在多路DSC中,通過地址總線傳遞所選通道號(hào),數(shù)據(jù)總線傳遞對應(yīng)此通道相應(yīng)軸角調(diào)制波的PWM 信號(hào)的占空比,控制總線傳遞相應(yīng)控制信號(hào).

          2.3 CPLD電路如果利用MCU產(chǎn)生PWM信號(hào),由于其需擔(dān)負(fù)大量運(yùn)算工作,會(huì)增加MCU的負(fù)擔(dān)從而系統(tǒng)的實(shí)時(shí)性與穩(wěn)定性均可能得不到保證,因此需要專門產(chǎn)生PWM信號(hào)的單元.CPLD是可編程邏輯器件,器件的時(shí)延特點(diǎn)較為固定,信號(hào)輸出穩(wěn)定性及實(shí)時(shí)性均可得到保證,因此使用CPLD完成PWM信號(hào)的生成.

          2.4 全橋電路及選頻電路

          全橋電路由兩對互補(bǔ)連接的MOS管組成,具有丙類功率放大的特征,發(fā)熱低.效率高.工作時(shí)由PWM 信號(hào)驅(qū)動(dòng)全橋驅(qū)動(dòng)器UBA2032產(chǎn)生控制全橋電路橋臂開斷時(shí)間,從而產(chǎn)生不同有效值的電壓.50%的占空比對應(yīng)調(diào)制波的零值,為了保證UBA2023的工作及MOS管的正常開斷,通常PWM 信


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: ARM 單片機(jī) CPLD

          評論


          相關(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); })();