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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)C8051F060的智能功率柜的設(shè)計(jì)應(yīng)用

          基于單片機(jī)C8051F060的智能功率柜的設(shè)計(jì)應(yīng)用

          作者: 時(shí)間:2011-12-14 來源:網(wǎng)絡(luò) 收藏

          1 引言

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

          目前,國產(chǎn)的勵(lì)磁柜普遍存在檢測功能不全、信息傳送技術(shù)、控制和檢測技術(shù)落后等問題。為了解決這一問題,本文給出了通過采用高集成度C8051F060實(shí)現(xiàn)的勵(lì)磁柜與CAN總線的通信方法,該方案具有完備的檢測、控制和通信功能。

          2?。茫福埃担保疲埃叮?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/單片機(jī)">單片機(jī)的特點(diǎn)

          C8051FXX系列是美國CYGNAL公司推出的一種與51系列單片機(jī)內(nèi)核兼容的單片機(jī)。僅就筆者對(duì)C8051F060的使用實(shí)踐介紹一下其新特點(diǎn):

          (1)內(nèi)核采用流水線結(jié)構(gòu),速度可達(dá)25MIPS(25MHz晶振),比普通的51單片機(jī)快10倍;其指令與標(biāo)準(zhǔn)系列51單片機(jī)兼容,因而掌握開發(fā)過程非常容易;該芯片的JTAG調(diào)試方式支持在系統(tǒng)、全速、非插入調(diào)試和編程,且不占用片內(nèi)資源。

          (2)片上集成有64kB Flash、4352B內(nèi)部RAM(256+4kB,可外擴(kuò)至64kB)、59個(gè)I/O口、 2通道16位1MSPS的可編程增益ADC、8通道10位200kSPS可編程增益ADC、2路12位DAC、3路模擬比較器、內(nèi)部電壓基準(zhǔn)以及片內(nèi)電源監(jiān)視、降壓檢測和看門狗等功能。由于C8051F060的高集成度,因而無需外擴(kuò)ROM、RAM、AD、DA、watchdog、可編程I/O口和EEPROM(用片內(nèi)Flash實(shí)現(xiàn)),從而大大簡化了硬件電路,并為構(gòu)成以C8051F060為核心的單片機(jī)系統(tǒng)創(chuàng)造了條件,同時(shí)也提高了系統(tǒng)的可靠性。



          (3)片內(nèi)集成有2個(gè)UART、1個(gè)SM(兼容I2C)和1個(gè)SPI。最為便利的是,C8051F060集成了CAN總線控制器,這使得CAN總線具有開發(fā)費(fèi)用低廉、抗干擾性強(qiáng)、可適用于工業(yè)現(xiàn)場等特點(diǎn),并可廣泛于干擾環(huán)境非常嚴(yán)重的各種工業(yè)現(xiàn)場測控領(lǐng)域。C8051F060只需加上CAN總線收發(fā)電路就可掛接到CAN通信網(wǎng)絡(luò)上,因而大大簡化了通信系統(tǒng)的,減少了通信節(jié)點(diǎn)受干擾的概率。

          (4)可編程的16位計(jì)數(shù)器陣列PCA 有6個(gè)捕捉/比較模塊和5個(gè)通用16位計(jì)數(shù)器/定時(shí)器,這一為要求定時(shí)器/計(jì)數(shù)器具有較多的測控節(jié)點(diǎn)提供了方便。

          (5)C8051F060能滿足絕大多數(shù)工業(yè)測控節(jié)點(diǎn)的要求,能夠形成以C8051F060為核心的單片機(jī)系統(tǒng),如果配以外圍測量單元,還可形成完整的測控節(jié)點(diǎn)。

          3 勵(lì)磁柜的系統(tǒng)結(jié)構(gòu)

          功率柜系統(tǒng)原理框圖如圖1所示。功率柜中最關(guān)鍵的部件是三相全控橋,控制此橋的核心參數(shù)為觸發(fā)角度,該參數(shù)可由CAN總線通過調(diào)節(jié)器送出,同時(shí)送達(dá)本地柜應(yīng)發(fā)的電流值。經(jīng)檢測得到的輸出電流與調(diào)節(jié)器的應(yīng)發(fā)給定電流進(jìn)行比較并完成PI運(yùn)算,即可產(chǎn)生新的微調(diào)觸發(fā)角度。該觸發(fā)角度經(jīng)PCA形成觸發(fā)脈沖繼而驅(qū)動(dòng)三相全控橋,從而實(shí)現(xiàn)柜間均流。與此同時(shí),通過信號(hào)檢測模塊還可將柜內(nèi)溫度、晶閘管通斷狀態(tài)、輸出電流值送入微控制器,以對(duì)各參數(shù)進(jìn)行計(jì)算分析,并將其與設(shè)定的閾值進(jìn)行比較,最后實(shí)時(shí)顯示測量結(jié)果,同時(shí)報(bào)警。

          圖3 同步信號(hào)采集電路

          3.1 PCA模塊實(shí)現(xiàn)的數(shù)字移相觸發(fā)

          三相晶閘管全控橋的工作原理及六個(gè)晶閘管的觸發(fā)脈沖相序關(guān)系如圖2所示。

          該PCA中包含6個(gè)同一16位計(jì)數(shù)器,并可作為時(shí)基的捕捉/比較模塊,每個(gè)模塊可構(gòu)成正沿捕捉、負(fù)沿捕捉、正負(fù)沿捕捉、軟件定時(shí)器、高速輸出、脈沖寬度調(diào)制器等6種方式。本中采用的是高速輸出模式,當(dāng)PCA計(jì)數(shù)器與模塊的16位捕捉/比較寄存器相匹配時(shí),相應(yīng)模塊的CEX引腳的邏輯電平將發(fā)生變化,并引起相應(yīng)中斷。

          觸發(fā)信號(hào)從同步信號(hào)過零點(diǎn)開始計(jì)時(shí),調(diào)節(jié)器則經(jīng)CAN網(wǎng)將觸發(fā)角的電角度值α、同步信號(hào)周期值TSYN和脈沖寬度W發(fā)送給各功率柜。同步信號(hào)采樣電路見圖3,當(dāng)同步信號(hào)過零產(chǎn)生中斷時(shí),PCA計(jì)數(shù)器開始計(jì)數(shù),并根據(jù)α、W、TSYN及PCA計(jì)數(shù)頻率計(jì)算出α的對(duì)應(yīng)值Tα1~Tα6和脈沖后沿的對(duì)應(yīng)值TW1~TW6,然后將Tα1~Tα6寫入6個(gè)模塊的16位捕捉/比較寄存器中。當(dāng)捕捉寄存器的值與PCA計(jì)數(shù)器的值相符時(shí),CEX引腳將變?yōu)楦唠娖剑允瓜鄳?yīng)模塊產(chǎn)生中斷,同時(shí)在中斷子程序中,相應(yīng)的TWN被寫入16位捕捉/比較寄存器。當(dāng)其與PCA計(jì)數(shù)器值相符時(shí),CEX引腳變?yōu)榈碗娖?,其中一路觸發(fā)單脈沖。用門電路便可將6路單脈沖合為6路雙窄脈沖。下式為Tα和TW計(jì)算方法:

          TαN=TSYNα+90N-1?。常叮埃裕茫蹋?/span>

          TWN=TSYNα+W+90N-1 /360TCLK

          式中,N可?。保玻?, TCLK為PCA計(jì)數(shù)器的計(jì)數(shù)周期。

          3.2 通過片內(nèi)Flash在線修改參數(shù)


          上一頁 1 2 下一頁

          評(píng)論


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