天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術(shù)熱線(xiàn): 4007-888-234
設(shè)計(jì)開(kāi)發(fā)

專(zhuān)注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開(kāi)發(fā)工具

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

單片機(jī)技術(shù)在電氣傳動(dòng)控制系統(tǒng)中的應(yīng)用與研究

更新時(shí)間: 2019-03-22
閱讀量:1975

單片機(jī)開(kāi)發(fā)商深圳英銳恩分享單片機(jī)技術(shù)在電氣傳動(dòng)控制系統(tǒng)中的應(yīng)用與研究。

摘 要:本文從單片機(jī)的技術(shù)應(yīng)用角度出發(fā),提出了一種用80C196系列單片機(jī)實(shí)現(xiàn)數(shù)字調(diào)速的系統(tǒng)控制方案,并在實(shí)際中驗(yàn)證了本方案的可行性,同時(shí)對(duì)80C196單片機(jī)的一些關(guān)鍵技術(shù)作了深入研究,以期開(kāi)發(fā)出更高性能的單片機(jī)系統(tǒng)。
    關(guān)鍵詞:80C196 單片機(jī) RL196 PWM C96

0 引 言
  單片機(jī)進(jìn)入中國(guó)10余年以來(lái),以其體積小、功能強(qiáng)、擴(kuò)展靈活、使用方便等特點(diǎn),逐漸應(yīng)用到各行業(yè)的工程實(shí)際應(yīng)用中。目前,大多數(shù)系統(tǒng)以51系列的8位單片機(jī)為首選,但是在一些比較復(fù)雜的、性能要求較高的系統(tǒng)中,它不得不讓位于16位單片機(jī)。本文采用的MCS-96系列的16位單片機(jī)特別適用于各類(lèi)自動(dòng)控制系統(tǒng)。如交直流調(diào)速機(jī)、工業(yè)過(guò)程控制系統(tǒng)、伺服系統(tǒng)等。本文以一直流伺服控制系統(tǒng)裝置為例,介紹了系統(tǒng)的結(jié)構(gòu),改進(jìn)了有關(guān)算法,實(shí)驗(yàn)證明,此系統(tǒng)可以良好地跟蹤給定速度曲線(xiàn),響應(yīng)時(shí)間可控制在10-3s的數(shù)量級(jí)以?xún)?nèi)。
1 硬件系統(tǒng)的構(gòu)成
1.1 電氣主回路
  主電路結(jié)構(gòu)圖如圖1所示,采用雙極性的H橋構(gòu)成,用大功率硅管整流橋?qū)⒔涣髡鞒芍绷鳎捎?br/>電壓型穩(wěn)壓方式(并入大容量電容)提供主電源,用IPM中的IGBT構(gòu)成H橋,采用PWM進(jìn)行調(diào)速,其中富士通的IPM技術(shù)較為成熟,并具有多種保護(hù)功能。只需加入一定的周邊電路便可進(jìn)行驅(qū)動(dòng)。
1.2 單片機(jī)系統(tǒng)
  本文采用MCS-96系列的80C196MC構(gòu)成16位總線(xiàn)的單片機(jī)系統(tǒng),與MCS-51系列相比,此類(lèi)型的單片機(jī)至少在以下幾方面提高了系統(tǒng)的實(shí)時(shí)性。
  (1)CPU中的算術(shù)邏輯單元不采用常規(guī)的累加器結(jié)構(gòu),改用寄存器-寄存器結(jié)構(gòu),CPU的操作直接面向256字節(jié)的寄存器,消除了CPU結(jié)構(gòu)中存在的累加器瓶頸效應(yīng),提高了操作速度和數(shù)據(jù)吞吐能力。
  (2)256字節(jié)寄存器中,24字節(jié)是專(zhuān)用寄存器,其余232字節(jié)均為通用寄存器。其通用寄

存器的數(shù)量遠(yuǎn)比一般CPU的寄存器數(shù)量多。這樣可以為各中斷服務(wù)程序中的局部變量指定專(zhuān)門(mén)的寄存器,免除了中斷服務(wù)過(guò)程中保護(hù)和恢復(fù)現(xiàn)場(chǎng)所支付的軟件開(kāi)銷(xiāo),并大大方便了程序設(shè)計(jì)。

 


  (3)80C196MC具有波形發(fā)生器(WG),不用外圍元器件即可生成PWM波形,而波形發(fā)生器(WG)具有靈活的死區(qū)調(diào)節(jié)功能。這對(duì)實(shí)用 PWM功率放大器很關(guān)鍵,它能防止雙極H型主電路四個(gè)IGBT“共態(tài)穿通”。所謂“共態(tài)穿通”即橋臂中的一個(gè)IG-BT沒(méi)有退出飽和而另一個(gè)IGBT已導(dǎo)通而形成電源短路的現(xiàn)象。
  (4)有一套效率更高、執(zhí)行速度更快的指令系統(tǒng),可采用20M赫茲的時(shí)鐘,并新增加了EPA(事件處理器陣列),PTS(外設(shè)事務(wù)服務(wù)器),再加上其內(nèi)帶的10位A/D轉(zhuǎn)換器,從而可以快速完成電流和轉(zhuǎn)速的轉(zhuǎn)換過(guò)程,滿(mǎn)足對(duì)系統(tǒng)動(dòng)態(tài)響應(yīng)時(shí)間的要求。
  其中,16位單片機(jī)的系統(tǒng)構(gòu)成如下:由于伺服系統(tǒng)電流控制調(diào)節(jié)器采樣周期短、計(jì)算量大,所以80C1 96MC系統(tǒng)采用16位系統(tǒng)總線(xiàn)以提高系統(tǒng)的吞吐能力。二片EPROM27C256地址分配為:2000H~7FFFH;二片RAM62256地址分配為:A000H~FFFFH;由于采用16位地址數(shù)據(jù)總線(xiàn),二片存儲(chǔ)器共用同一地址,具體聯(lián)接如下:系統(tǒng)地址總線(xiàn)A0不用,A1與EPROM、RAM的 A0連接,A2與A1連接,……依此類(lèi)推,A15與A14連接。當(dāng)CPU讀存儲(chǔ)器高位地址時(shí),同時(shí)選中高、低位的存儲(chǔ)器,高8位、低8位的數(shù)據(jù)同時(shí)讀入 CPU,由CPU正確選擇高8位的數(shù)據(jù)作為操作數(shù),舍去低8位的數(shù)據(jù);讀低8位時(shí)情況也一樣。RAM的片選信號(hào)由INST和A15通過(guò)與非門(mén)構(gòu)成(RAM =INST+A15———),其中要注意的是INST在讀程序存儲(chǔ)器時(shí)為低電平,但要避開(kāi)2000- 2080的地址,因?yàn)樵谧x取中斷向量時(shí),INST引腳為高電平。其系統(tǒng)原理框圖如圖2所示。

2 軟件系統(tǒng)
  采用C與ASM的混合編程模式,下面著重于其協(xié)同開(kāi)發(fā)和算法的改進(jìn)進(jìn)行闡述。

2.1 C程序與匯編程序的協(xié)同開(kāi)發(fā)
  匯編語(yǔ)言的難點(diǎn)在于數(shù)據(jù)處理。由于匯編語(yǔ)言不直接支持單精度的浮點(diǎn)運(yùn)算,而現(xiàn)在單片機(jī)開(kāi)發(fā)日趨復(fù)雜,在許多地方必須應(yīng)用高精度的復(fù)雜算法。C96直接支持單精度的浮點(diǎn)運(yùn)算,對(duì)于大多數(shù)場(chǎng)合已經(jīng)夠用,并且可以方便的通過(guò)算法擴(kuò)展到雙精度。算法的設(shè)計(jì)上已有大量的C程序可供選用,基本不用重新開(kāi)發(fā)。在這些模塊中應(yīng)用C96可以盡快地解決問(wèn)題。然而,完成同樣的功能,C96程序經(jīng)編譯連接生成的代碼比匯編生成的代碼稍長(zhǎng)。在需要實(shí)時(shí)響應(yīng)的場(chǎng)合,開(kāi)發(fā)者往往從執(zhí)行速度的角度出發(fā),把這些模塊用匯編代碼實(shí)現(xiàn)。其實(shí),筆者認(rèn)為凡是匯編實(shí)現(xiàn)的功能用C96都能實(shí)現(xiàn),只是一個(gè)熟練程度的問(wèn)題,而且據(jù)最新資料,新版的 C96編譯器的效率可以達(dá)到1.1。在單片機(jī)項(xiàng)目中應(yīng)用C96,更重要的是開(kāi)發(fā)周期可以大大縮短,一般來(lái)說(shuō),一個(gè)資深的C96程序員,他只要花費(fèi)匯編程序員的一半不到的時(shí)間就可以完成開(kāi)發(fā)任務(wù),而兩者的執(zhí)行速度相差無(wú)幾,如果不是有特別苛刻的要求,用C96開(kāi)發(fā)程序?qū)⑹鞘掳牍Ρ丁?br/>    例如:
    Timer1=0x33f8;
    而在匯編中則需要寫(xiě)成:
    LD1CH,33F8H
    ST1CH,1F7A[00H]
  顯然,C96寫(xiě)出來(lái)的程序具有良好的可讀性,并方便日后的修改和維護(hù),而匯編大多數(shù)則要靠注釋來(lái)解讀,而且個(gè)人注釋風(fēng)格不同,會(huì)帶來(lái)調(diào)試工作和日后的軟件升級(jí)的困難,加長(zhǎng)了開(kāi)發(fā)時(shí)間和人力投入。
  在開(kāi)發(fā)單片機(jī)的項(xiàng)目時(shí),經(jīng)常會(huì)遇到關(guān)于匯編模塊和C模塊相互調(diào)用的問(wèn)題,下面從兩個(gè)方

面加以闡述:
  (1)如果不涉及參數(shù)傳遞,則可以采用在程序中嵌入ASM{…}偽指令實(shí)現(xiàn)(適用于C96和C51 ) 。
  (2)當(dāng)涉及參數(shù)傳遞的時(shí)候,下面以C語(yǔ)言作主程序?yàn)槔f(shuō)明一個(gè)相互調(diào)用的實(shí)例;(只適用于C51)。
    主程序:

  但在A-FUNC.A51文件中則需按照C51與匯編語(yǔ)言的接口規(guī)則進(jìn)行書(shū)寫(xiě),完成相應(yīng)的功能。
    NAMEA-FUNC
    ;聲明函數(shù)名稱(chēng)
 
    ;聲明外部函數(shù)代碼段名
    PUBLICA-FUNC
    ;外部公共符號(hào) 
    RSEG?DT?-a-func?A-FUNC
    ?-a-func?BYTE:
    ;可覆蓋局部數(shù)據(jù)段
    x?00: DS 2;定義傳遞參數(shù)字節(jié)
    RSEG?DT?A-FUNC?A-FUNC
    -A-FUNC:
    …;程序代碼體
    END
    ;A-FUNC函數(shù)結(jié)束
  因此,我們可以很方便地在程序代碼體處加入所期望的匯編程序。
  最后,全部程序編譯鏈接通過(guò)后,應(yīng)仔細(xì)查看生成的M96或M51文件,有無(wú)溢出或沖突的情況,數(shù)
據(jù)存儲(chǔ)區(qū)與程序存儲(chǔ)區(qū)是否定位恰當(dāng)。對(duì)于C196來(lái)說(shuō),C96程序的代碼段、參數(shù)段可以設(shè)成是浮動(dòng)定
位還是絕對(duì)定位的,當(dāng)C96代碼段、參數(shù)段與匯編程序沖突時(shí),應(yīng)用RL196的編譯控制選項(xiàng)ram(…),rom(…),romcode(…),romdata(…)來(lái)精確定位代碼數(shù)據(jù)段解決沖突。
    例如:

 以上定義了模塊MOD2的代碼的常量數(shù)據(jù),MOD3的代碼放在ROM1中,即(2000-3FFFH)處。main、mod1、mod3的代碼和常量放在第二段ROM(4000-FFFFH)中,MOD1的常量數(shù)據(jù)放在(4000-5FFFH)的ROM中。STACK堆棧段的值應(yīng)根據(jù)最后的 M96文件顯示的總共占用的內(nèi)存RAM,設(shè)為最大可用的堆棧段(用STACKSIZE控制項(xiàng)),C96的子程序調(diào)用最好不要超過(guò)三級(jí),以免堆棧溢出。經(jīng)實(shí)踐證明,這些C96程序與匯編語(yǔ)言作到了真正意義上的“無(wú)縫鏈接”。
2.2 算法的改進(jìn)
2.2.1 波形發(fā)生器工作原理簡(jiǎn)介
  波形發(fā)生器WG是80C196MC單片機(jī)最具特色的外設(shè),在PWM伺服系統(tǒng)中起到關(guān)鍵的作用。80C196MC的WG可產(chǎn)生三相(三路)正弦PWM (SP-WM)波形用于三相交流同步電機(jī)的變頻調(diào)速,這種情況的WG工作方式稱(chēng)為中心對(duì)準(zhǔn)方式;也可產(chǎn)生斬波調(diào)壓的PWM用于直流電機(jī)調(diào)壓調(diào)速,這種工作方式稱(chēng)為邊沿對(duì)準(zhǔn)方式。下面對(duì)PWM伺服系統(tǒng)采用的邊沿對(duì)準(zhǔn)方式給予簡(jiǎn)要介紹。

工作于邊沿對(duì)準(zhǔn)方式,不考慮死區(qū)時(shí)間的影響的工作波形見(jiàn)圖3。有關(guān)的幾個(gè)寄存器意義如下:

  (1)WG-RELOAD:重裝載寄存器,決定載波周期。
  (2)WG-COMPX(X=1,2,3):相位比較寄存器,決定波形占空比。
  (3)WG-COUNT:雙向計(jì)數(shù)器,為WG的時(shí)基(邊沿對(duì)準(zhǔn)時(shí),只向上計(jì)數(shù))。
  當(dāng)WG-COUNT的值一直與WG-RELOAD的值比較,當(dāng)?shù)扔赪G-RELOAD的值時(shí),WG復(fù)位到1,又重新開(kāi)始計(jì)數(shù)。同時(shí)WG-COUNT的值也一直與WG-COMPX的值比較,當(dāng)WG-COUTN的值等于WG-COMPX的值時(shí)改變輸出引腳(WGX)的電平,輸出PWM波形。當(dāng)WG-COUNT復(fù)位為1時(shí),引發(fā)一次WG中斷,CPU響應(yīng)WG中斷時(shí),根據(jù)電流環(huán)運(yùn)算得出的新的WG-COMPX的值,改寫(xiě)WG-COMPX的值,改變輸出波形的占空比,實(shí)現(xiàn)調(diào)節(jié)電機(jī)轉(zhuǎn)速的目的。
  (4)WG-CON:控制、死區(qū)時(shí)間寄存器,決定WG的工作方式和死區(qū)時(shí)間。
  前文已談到H型PWM電路中的一個(gè)橋臂,當(dāng)其中的一個(gè)IGBT沒(méi)有退出飽和時(shí),另一個(gè)IGBT又開(kāi)始導(dǎo)通,會(huì)造成電源直接短路的“共態(tài)導(dǎo)通”現(xiàn)象,這是絕對(duì)不能出現(xiàn)的故障。要避免這一現(xiàn)象的發(fā)生
就是設(shè)置合適的死區(qū)時(shí)間,即當(dāng)一個(gè)IGBT關(guān)斷后,經(jīng)歷一個(gè)死區(qū)時(shí)間,另一個(gè)IGBT接著導(dǎo)通,這樣就
可避免“共態(tài)導(dǎo)通”現(xiàn)象出現(xiàn)。
2.2.2 算法改進(jìn)的思路
  實(shí)際上,在轉(zhuǎn)速和電流環(huán)的計(jì)算中并不是全部計(jì)算都需要用到浮點(diǎn)運(yùn)算的方式,為簡(jiǎn)單起見(jiàn),下面論述只考慮轉(zhuǎn)速環(huán)(電流環(huán)當(dāng)成一比例環(huán)節(jié)):
  因?yàn)椴捎玫氖寝D(zhuǎn)速編碼器采樣轉(zhuǎn)速信號(hào),而80C196MC系列的單片機(jī)用相移計(jì)數(shù)器的方式即可
以獲得時(shí)間T內(nèi)的轉(zhuǎn)速值,而這個(gè)值一定是整數(shù),因此轉(zhuǎn)速的跟蹤精度實(shí)際上取決于轉(zhuǎn)速編碼的精度,當(dāng)T時(shí)間取一較小的時(shí)間間隔,我們完全可以用時(shí)間T內(nèi)獲得的脈沖數(shù)PL作為轉(zhuǎn)速值,實(shí)際上此時(shí)的轉(zhuǎn)速為:PL/T,我們以時(shí)間T作為速度環(huán)控制回路采樣周期,當(dāng)給定速度同樣在整數(shù)值給出時(shí),如圖4所示,由于輸出PWM周期一定(WG-RELOAD取為100μs),輸出比較寄存器WG-COMP1也只能在整數(shù)范圍變化,PI控制器的輸入為整數(shù)SP-GIVEN-SP-NOW,輸出同樣為整數(shù),所以只需調(diào)整PI的參數(shù)就可達(dá)到對(duì)轉(zhuǎn)速環(huán)的控制。

  實(shí)際上,我們不難證明給定轉(zhuǎn)速如果換算成在T時(shí)間內(nèi)脈沖數(shù)不是整數(shù)的話(huà),其控制作用同整數(shù)值的效果是一樣的。但是PI參數(shù)經(jīng)常以浮點(diǎn)數(shù)的方式出現(xiàn),我們?cè)谡{(diào)試過(guò)程中先用浮點(diǎn)數(shù)計(jì)算定下P、I參數(shù)的值之后,再利用C96的賦值運(yùn)算符賦予一整型變量,這樣即充分利用了C96的浮點(diǎn)運(yùn)算庫(kù),又精簡(jiǎn)了代碼,提高了運(yùn)算速度。對(duì)于電流環(huán)同樣可以依照以上方法確定電流環(huán)的P、I參數(shù)并進(jìn)行電流控制。
2.2.3 程序框圖和實(shí)驗(yàn)結(jié)果
  在以上思路的指引下,我們?cè)O(shè)計(jì)了如下程序框圖并對(duì)轉(zhuǎn)速環(huán)進(jìn)行了驗(yàn)證,可以控制轉(zhuǎn)速環(huán)的調(diào)節(jié)時(shí)間在數(shù)量級(jí)以?xún)?nèi)。

 

(文源網(wǎng)絡(luò),侵刪)

联系我们: 高要市| 安康市| 梁平县| 嘉峪关市| 百色市| 娄底市| 洪湖市| 兴安盟| 巴青县| 安塞县| 丰县| 分宜县| 土默特右旗| 仁布县| 隆化县| 正宁县| 元阳县| 赤壁市| 长汀县| 成都市| 县级市| 中宁县| 青田县| 永春县| 宁强县| 千阳县| 沈阳市| 普兰县| 邓州市| 高州市| 绿春县| 长海县| 通化市| 景德镇市| 佛山市| 定襄县| 玉山县| 绍兴市| 乐陵市| 莱州市| 乌兰县|