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

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 嵌入式多軸運(yùn)動(dòng)控制系統(tǒng)軟硬件實(shí)現(xiàn)方案

          嵌入式多軸運(yùn)動(dòng)控制系統(tǒng)軟硬件實(shí)現(xiàn)方案

          作者: 時(shí)間:2016-12-05 來(lái)源:網(wǎng)絡(luò) 收藏
          運(yùn)動(dòng)控制技術(shù)是推動(dòng)新的技術(shù)革命和新的產(chǎn)業(yè)革命的關(guān)鍵技術(shù),高速、高精度始終是運(yùn)動(dòng)控制技術(shù)追求的目標(biāo)。運(yùn)動(dòng)控制技術(shù)能夠快速發(fā)展主要得益于計(jì)算機(jī)、高速數(shù)字處理器(DSP)、自動(dòng)控制、網(wǎng)絡(luò)技術(shù)的發(fā)展,不僅應(yīng)用于數(shù)控機(jī)床、工業(yè)機(jī)器人、輕工、紡織、化工、冶金等傳統(tǒng)行業(yè),還在國(guó)防、航空航天等多個(gè)領(lǐng)域得到廣泛應(yīng)用。數(shù)控技術(shù)、機(jī)器人技術(shù)更是一個(gè)國(guó)家運(yùn)動(dòng)控制技術(shù)發(fā)展水平的重要標(biāo)志。隨著國(guó)民經(jīng)濟(jì)發(fā)展,數(shù)控技術(shù)為了滿足不同加工領(lǐng)域的要求也有了的長(zhǎng)足進(jìn)步,但對(duì)于大型的,高精密、高速數(shù)控裝備和數(shù)控系統(tǒng)仍需要進(jìn)口,大大制約了我國(guó)裝備制造業(yè)和加工能力的提升。

          當(dāng)前,基于PC和運(yùn)動(dòng)控制器的開(kāi)放式數(shù)控系統(tǒng)得到了很大發(fā)展,運(yùn)動(dòng)控制器在系統(tǒng)中接收PC控制指令,運(yùn)算后轉(zhuǎn)換成控制信號(hào)到伺服驅(qū)動(dòng)部分,從而快速構(gòu)建數(shù)控平臺(tái)。開(kāi)發(fā)人員可以根據(jù)運(yùn)動(dòng)控制器提供的驅(qū)動(dòng)程序,進(jìn)行二次開(kāi)發(fā),滿足用戶的各種特殊需求。目前,PC和運(yùn)動(dòng)控制器構(gòu)成的開(kāi)放式數(shù)控系統(tǒng)的研究核心在于運(yùn)動(dòng)控制器的關(guān)鍵技術(shù),因?yàn)閿?shù)控機(jī)床的高速、高精和高可靠性等指標(biāo)主要取決于運(yùn)動(dòng)控制器的性能。數(shù)字信號(hào)處理器(DSP)的發(fā)展,使運(yùn)動(dòng)控制過(guò)程的運(yùn)算能力有了很大程度的提高,利用DSP開(kāi)發(fā)的運(yùn)動(dòng)控制器性能越來(lái)越穩(wěn)定,功能也日趨強(qiáng)大。DSP強(qiáng)大的運(yùn)算能力使運(yùn)動(dòng)控制過(guò)程中復(fù)雜的運(yùn)動(dòng)控制算法能夠得到很好的支持,使運(yùn)動(dòng)控制系統(tǒng)能有效進(jìn)行運(yùn)動(dòng)規(guī)劃、高速實(shí)時(shí)多軸插補(bǔ)、誤差補(bǔ)償和更復(fù)雜的運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)計(jì)算,使得運(yùn)動(dòng)控制精度更高、速度更快、運(yùn)動(dòng)更加平穩(wěn)。因此,以DSP為控制核心結(jié)合FPGA模塊的嵌入式運(yùn)動(dòng)控制器成為發(fā)展的主流。

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

          運(yùn)動(dòng)控制器中運(yùn)動(dòng)控制算法作為關(guān)鍵技術(shù),其復(fù)雜程度、精確性、可靠性直接影響控制系統(tǒng)的控制性能。因此,對(duì)相關(guān)運(yùn)動(dòng)控制算法及其在運(yùn)動(dòng)控制器中的實(shí)現(xiàn)進(jìn)行研究,有利于達(dá)到控制過(guò)程的高速、高精度和高可靠性。

          本課題研究?jī)?nèi)容

          本論文工作的主要研究?jī)?nèi)容是設(shè)計(jì)研究基于PCI總線并以DSP為核心的運(yùn)動(dòng)控制卡,對(duì)運(yùn)動(dòng)控制卡的硬件部分進(jìn)行設(shè)計(jì),并在此基礎(chǔ)上對(duì)運(yùn)動(dòng)控制卡的軟件進(jìn)行設(shè)計(jì),從而可以為后續(xù)開(kāi)發(fā)研制成熟產(chǎn)品提供良好的軟硬件平臺(tái)。主要的研究?jī)?nèi)容如下:

          1.運(yùn)動(dòng)控制卡總體方案設(shè)計(jì)。對(duì)運(yùn)動(dòng)控制卡的整體結(jié)構(gòu)進(jìn)行分析,利用模塊化設(shè)計(jì)的思想設(shè)計(jì)一些主要功能,并在此基礎(chǔ)上設(shè)計(jì)本運(yùn)動(dòng)控制卡的總體設(shè)計(jì)方案,主要包括硬件部分的設(shè)計(jì)方案和軟件部分的設(shè)計(jì)方案。

          2.運(yùn)動(dòng)控制卡的硬件設(shè)計(jì)。根據(jù)運(yùn)動(dòng)控制卡的硬件設(shè)計(jì)方案,對(duì)DSP芯片和PCI接口芯片等主要芯片的功能和特點(diǎn)進(jìn)行研究,選擇適合本運(yùn)動(dòng)控制卡的芯片。在此基礎(chǔ)上進(jìn)行運(yùn)動(dòng)控制卡的硬件設(shè)計(jì)工作,包括DSP的電源電路模塊、時(shí)鐘電路模塊、JTAG接口模塊、外擴(kuò)存儲(chǔ)器模塊、步進(jìn)電機(jī)的驅(qū)動(dòng)模塊、上下位機(jī)通訊模塊以及輸入輸出接口模塊的設(shè)計(jì)工作,在提高系統(tǒng)的穩(wěn)定性方面,需要進(jìn)行硬件抗干擾設(shè)計(jì)。

          3.系統(tǒng)軟件設(shè)計(jì)。并采用模塊化程序設(shè)計(jì)方法,對(duì)DSP主控程序進(jìn)行設(shè)計(jì),包括DSP初始化模塊、DSP與PC機(jī)的實(shí)時(shí)通信模塊設(shè)計(jì);在插補(bǔ)控制算法上,利用比逐點(diǎn)比較法精度更高的最小偏差法,設(shè)計(jì)直線和圓弧的插補(bǔ)算法并給出插補(bǔ)流程圖。

          運(yùn)動(dòng)控制器設(shè)計(jì)要求

          本文設(shè)計(jì)的運(yùn)動(dòng)控制器要求能應(yīng)用于數(shù)控行業(yè)、機(jī)器人控制系統(tǒng)等領(lǐng)域。要求高速處理數(shù)據(jù)的能力,具有高集成度、高可靠性。主要性能指標(biāo)和技術(shù)要求如下:

          (1)具有4路模擬信號(hào)輸出,輸出電壓范圍為-10V 到+10V,同時(shí)具有 4路脈沖信號(hào)輸出,脈沖輸出頻率可達(dá) 4MHz,能控制交、直流步進(jìn)電機(jī)和伺服電機(jī)。

          (2)具有 4 路正交編碼器信號(hào)輸入接口,能采集 4 路增量式光電編碼器反饋信號(hào),采集頻率可達(dá) 2MHz,能實(shí)現(xiàn)對(duì)電機(jī)速度和位置的實(shí)時(shí)檢測(cè),滿足速度閉環(huán)和控制閉環(huán)控制系統(tǒng)的需要,位置寄存器的長(zhǎng)度達(dá)到 32 位。

          (3)設(shè)計(jì)并行通信接口能與 PC 機(jī)實(shí)現(xiàn)高速實(shí)時(shí)通信,同時(shí)設(shè)計(jì) RS232 通信接口。

          (4)采用開(kāi)放式模塊化設(shè)計(jì),同時(shí)實(shí)現(xiàn)高集成度。

          (5)具有豐富的 I/O 接口,以實(shí)現(xiàn)對(duì)電機(jī)的控制和其他開(kāi)關(guān)量信號(hào)的控制,比如限位信號(hào)、報(bào)警信號(hào)、原點(diǎn)檢測(cè)等。

          (6)具有高速的運(yùn)算處理能力,系統(tǒng)反應(yīng)快,系統(tǒng)時(shí)鐘頻率為 150MHz。

          (7)具有 S 曲線、T 型曲線、電子齒輪等運(yùn)動(dòng)控制方式,同時(shí)能實(shí)現(xiàn)多軸插補(bǔ)功能,能實(shí)現(xiàn)較復(fù)雜的算法。

          (8)具有良好的軟件接口和功能豐富的函數(shù)庫(kù),滿足多方面應(yīng)用的需要。在實(shí)現(xiàn)上述性能與指標(biāo)的同時(shí),在設(shè)計(jì)中我們還應(yīng)該遵循可靠性、模塊化、整體性、低成本等原則以此增強(qiáng)產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。

          設(shè)計(jì)方案:

          電源電路負(fù)責(zé)提供各模塊的電源,對(duì) DSP 進(jìn)行了 SRAM 和 FLASH 擴(kuò)展,時(shí)鐘電路負(fù)責(zé)提供 DSP 和 FPGA 所需的時(shí)鐘信號(hào),雙口 RAM用于負(fù)責(zé) DSP 與 PCI總線的并行通信,電平轉(zhuǎn)換電路負(fù)責(zé) RS232 與 DSP 之間的電平轉(zhuǎn)換。I/O 隔離負(fù)責(zé)各路 I/O 信號(hào)的光電隔離,專(zhuān)用輸入/輸出是一些電機(jī)控制中所必須有的 I/O 信號(hào),通用輸入/輸出可用于其它 I/O 信號(hào)的控制,在 FPGA 模塊中設(shè)計(jì)了 D/A 轉(zhuǎn)換電路、脈沖輸出電路和編碼器輸入模塊。

          脈沖輸出接口模塊主要任務(wù)是發(fā)送脈沖序列和方向指令給伺服驅(qū)動(dòng)器,實(shí)現(xiàn)對(duì)電機(jī)的位移,速度,方向的控制。編碼器電路則是實(shí)現(xiàn)電機(jī)狀態(tài)的反饋,包括方向、速度等。A/D、D/A 模塊主要實(shí)現(xiàn)運(yùn)動(dòng)控制器跟伺服電機(jī)間模擬量與數(shù)字量之間的處理。I/O 接口則實(shí)現(xiàn)各種開(kāi)關(guān)量信號(hào)的控制。本文沒(méi)有設(shè)計(jì) A/D 轉(zhuǎn)換模塊,因?yàn)?DSP 自帶的 A/D 轉(zhuǎn)換接口可以滿足需求。在精度要求高的數(shù)控工業(yè)制造時(shí)可以用高精度 A/D 轉(zhuǎn)換芯片(如 AD7663)來(lái)實(shí)現(xiàn),通過(guò) FPGA 設(shè)計(jì)的A/D 接口傳遞給 DSP。

          軟件總體設(shè)計(jì)

          整個(gè)運(yùn)動(dòng)控制軟件系統(tǒng)可分為兩大塊:PC 層的軟件和 DSP 層的軟件。人機(jī)交互界面主要是提供包括工藝流程、軌跡規(guī)劃、狀態(tài)監(jiān)控等功能,提供用戶操作的界面環(huán)境。初始化程序后,對(duì)人機(jī)界面輸入的數(shù)據(jù)進(jìn)行處理,代碼編譯生成相應(yīng)的控制指令。設(shè)備驅(qū)動(dòng)程序接口層是與硬件相關(guān)的一層,負(fù)責(zé)對(duì)運(yùn)動(dòng)控制器的硬件設(shè)備進(jìn)行管理和控制,同時(shí)進(jìn)行數(shù)據(jù)通信處理。DSP層的軟件通過(guò)對(duì) PC層傳遞下來(lái)的指令代碼進(jìn)行解析,然后實(shí)施具體的插補(bǔ)算法運(yùn)算,并控制電機(jī)運(yùn)動(dòng)。同時(shí)將底層的狀態(tài)信息反饋給 PC 機(jī)。



          評(píng)論


          技術(shù)專(zhuān)區(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); })();