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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于DSP的運(yùn)動(dòng)控制器的研究與開發(fā)

          基于DSP的運(yùn)動(dòng)控制器的研究與開發(fā)

          作者: 時(shí)間:2009-03-03 來(lái)源:網(wǎng)絡(luò) 收藏

          2.1 系統(tǒng)軟件功能設(shè)計(jì) 通常作為一個(gè)獨(dú)立的過程控制單元用于工業(yè)自動(dòng)化生產(chǎn)中,它的功能是由硬件和軟件共同實(shí)現(xiàn)的硬件為軟件運(yùn),行提供了支撐環(huán)境,軟件負(fù)責(zé)實(shí)現(xiàn)系統(tǒng)要求的所有功能。本系統(tǒng)軟件需要完成控制和管理兩大任務(wù),圖 2 表示的是其軟件功能結(jié)構(gòu)。

          圖 2 軟件功能結(jié)構(gòu)圖

          其中,系統(tǒng)的控制包括位置控制、插補(bǔ)、速度處理和開關(guān)量 I/O 控制等,這類任務(wù)的實(shí) 時(shí)性很強(qiáng),所以軟件程序的優(yōu)先級(jí)也較高;系統(tǒng)的管理包括人機(jī)界面顯示、參數(shù)設(shè)置和程序 下載等,這類任務(wù)的實(shí)時(shí)性要求不高,所以軟件程序的優(yōu)先級(jí)也相對(duì)較低。可以說,一個(gè)運(yùn) 動(dòng)控制系統(tǒng)的基本功能均由上述功能的子程序?qū)崿F(xiàn),通過增加子程序可進(jìn)一步增加系統(tǒng)的功 能。

          要實(shí)現(xiàn)這些功能,必須做好的軟件規(guī)劃,劃分各個(gè)功能模塊,才能在 芯片上設(shè)計(jì)運(yùn)行程序。本系統(tǒng)軟件主要分為兩個(gè)層次,包括 PC 層軟件和 層軟件,其中PC 層軟件在單板式運(yùn)動(dòng)控制中主要實(shí)現(xiàn)加工程序的傳輸和下載等功能;在插卡式運(yùn)動(dòng)控制中,除此之外,還需實(shí)現(xiàn)加工情況顯示、加工命令發(fā)送等人機(jī)交互界面的功能。 運(yùn)動(dòng)控制器的主要功能由 層完成,本課題的主要任務(wù)也是 DSP 層軟件的程序?qū)崿F(xiàn),具體包括:

          1.運(yùn)動(dòng)控制 運(yùn)動(dòng)控制功能是運(yùn)動(dòng)控制器的主要功能,包括位置控制、插補(bǔ)和輔助功能的輸入輸出I/O 控制。本系統(tǒng)基本功能是實(shí)現(xiàn) XYZ 三軸的運(yùn)動(dòng)控制,包括三軸聯(lián)動(dòng)的直線插補(bǔ)運(yùn)動(dòng)和任意兩軸圓弧插補(bǔ)運(yùn)動(dòng),可以實(shí)現(xiàn)步進(jìn)電機(jī)的運(yùn)動(dòng)控制,提供單脈沖(即脈沖+方向)和雙脈 沖(即脈沖+脈沖)兩種控制方式。

          2.速度控制

          速度控制即調(diào)速,利用加減速算法,實(shí)現(xiàn)系統(tǒng)的平穩(wěn)運(yùn)動(dòng)。系統(tǒng)設(shè)計(jì)空行程時(shí)的運(yùn)動(dòng)速度不小于 100KHz,加工過程中的插補(bǔ)運(yùn)動(dòng)速度不小于 40KHz;當(dāng)脈沖當(dāng)量為 2.5 微米時(shí)可達(dá)到的空行程和加工的最高速度分別為 15m/min 和 6m/min。

          3.通信功能

          運(yùn)動(dòng)控制器不是一個(gè)孤立封閉的系統(tǒng),它必須和外界交換數(shù)據(jù),主機(jī)通信主要完成兩個(gè) 任務(wù):一個(gè)是程序的下載,另一個(gè)是控制指令的發(fā)送和加工狀態(tài)的反饋。根據(jù)單板式控制和插卡式控制兩種不同的應(yīng)用,分別有不同的通信方式。其中,在單板式控制中,通過 USB總線進(jìn)行程序下載而通過串口進(jìn)行控制指令的發(fā)送和加工狀態(tài)的反饋;在插卡式控制中,兩種任務(wù)都是由 PCI 總線來(lái)完成。本系統(tǒng)的多用性特點(diǎn)主要體現(xiàn)在通信方式的不同上,支持PCI 總線方式、USB 總線方式以及異步串行總線方式,供用戶自由選擇。

          4.參數(shù)設(shè)置 作為開放式運(yùn)動(dòng)控制器,應(yīng)該允許用戶對(duì)控制系統(tǒng)的各運(yùn)動(dòng)參數(shù)進(jìn)行實(shí)時(shí)調(diào)整與修改。

          本系統(tǒng)設(shè)計(jì)將各參數(shù)存放在 FLASH 中,允許用戶通過人機(jī)界面對(duì)參數(shù)進(jìn)行修改,修改后的參數(shù)將在下次操作中起作用。

          2.2 系統(tǒng)軟件層次設(shè)計(jì)

          DSP 軟件采用模塊化和層次化的設(shè)計(jì)思路,為使結(jié)構(gòu)清晰,整個(gè)系統(tǒng)軟件按功能群分割為多個(gè)文件分別處理和完成相應(yīng)的任務(wù),主要分為三個(gè)層次:

          1.主控層:不涉及具體操作,只負(fù)責(zé)各個(gè)任務(wù)調(diào)度、中斷安排、時(shí)間和優(yōu)先級(jí)處理等, 主控層只有一個(gè)文件 main.c,包括主函數(shù)和中斷函數(shù),在主函數(shù)和中斷函數(shù)中調(diào)用算法層的函數(shù)來(lái)實(shí)現(xiàn)系統(tǒng)的各個(gè)功能。

          2.算法層:負(fù)責(zé)具體任務(wù)執(zhí)行,控制算法實(shí)現(xiàn),系統(tǒng)的主要功能都在算法層實(shí)現(xiàn),包 含的模塊由系統(tǒng)要求的各個(gè)功能來(lái)決定,算法層主要用以實(shí)現(xiàn)運(yùn)動(dòng)控制、速度控制和系統(tǒng)管理等功能,各模塊之間通過標(biāo)志位來(lái)聯(lián)系,不互相調(diào)用。

          3.接口層:負(fù)責(zé)與硬件的接口,所有與外設(shè)有關(guān)的操作都在該層進(jìn)行處理,接口層中 包括 DSP 硬件資源的定義、系統(tǒng)硬件的驅(qū)動(dòng)等。除接口層外,系統(tǒng)其它層的程序禁止直接對(duì)外設(shè)進(jìn)行操作,接口層直接對(duì)外設(shè)進(jìn)行操作的函數(shù)盡可能做到功能完善。 綜上所述,本系統(tǒng)根據(jù)以上功能和層次進(jìn)行軟件設(shè)計(jì)并遵循以下原則:

          (1)全局性:盡量保證系統(tǒng)各模塊負(fù)載均衡;

          (2)正確性:數(shù)學(xué)推導(dǎo)嚴(yán)密,盡可能利用試驗(yàn)驗(yàn)證;

          (3)結(jié)構(gòu)化:軟件設(shè)計(jì)做到層次化、模塊化、封裝化;

          (4)規(guī)范性:保證程序的易讀性、移植性和可維護(hù)性。

          3 小結(jié):

          本文作者創(chuàng)新點(diǎn)是運(yùn)動(dòng)控制是數(shù)控技術(shù)的核心,近年來(lái),隨著開放式數(shù)控系統(tǒng)的發(fā)展, 開放式運(yùn)動(dòng)控制器也得到了前所未有的發(fā)展。運(yùn)動(dòng)控制器作為一個(gè)獨(dú)立的工業(yè)自動(dòng)化控制類標(biāo)準(zhǔn)部件,已經(jīng)被越來(lái)越多的產(chǎn)業(yè)領(lǐng)域接受,并形成了令人矚目的市場(chǎng)規(guī)模。本文介紹了運(yùn)動(dòng)控制器的總體設(shè)計(jì)方案,包括運(yùn)動(dòng)控制器的硬件平臺(tái)以及軟件設(shè)計(jì)思路。


          上一頁(yè) 1 2 下一頁(yè)

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