基于ARM的三軸伺服控制系統(tǒng)人機界面設(shè)計
1前言
機械手控制系統(tǒng)是伴隨著機械手(機器人)的發(fā)展而進步的。機械手是在早期出現(xiàn)的古代機器人基礎(chǔ)上發(fā)展起來的,機械手研究始于20世紀(jì)中期,隨著計算機和自動化技術(shù)的發(fā)展,特別是1946年第一臺數(shù)字電子計算機問世以來,計算機取得了驚人的進步,向高速度、大容量、低價格的方向發(fā)展。同時,大批量生產(chǎn)的迫切需求推動了自動化技術(shù)的進展,又為機器人和機械手控制系統(tǒng)的開發(fā)奠定了基礎(chǔ)。另一方面,核能技術(shù)的研究要求某些操作機械代替人處理放射性物質(zhì)。在這一需求背景下,美國于1947年開發(fā)了遙控機械手控制系統(tǒng)和遙控機械手,1948年又開發(fā)了機械式的主從機械手控制系統(tǒng)和機械手。
機械手控制系統(tǒng)首先是從美國開始研制的。1954年美國戴沃爾最早提出了工業(yè)機器人的概念,并申請了專利。該專利的要點是借助伺服技術(shù)控制機器人的關(guān)節(jié),利用人手對機器人進行動作示教,機器人能實現(xiàn)動作的記錄和再現(xiàn)。這就是所謂的示教再現(xiàn)機器人控制系統(tǒng)。現(xiàn)有的機器人控制系統(tǒng)差不多都采用這種控制方式。1958年美國聯(lián)合控制公司研制出第一臺機械手鉚接機器人控制系統(tǒng)。作為機器人產(chǎn)品最早的實用機型(示教再現(xiàn))是1962年美國AMF公司推出的“VERSTRAN”和UNIMATION公司推出的“UNIMATE”。這些工業(yè)機器人和相關(guān)控制系統(tǒng)主要由類似人的手和臂組成它可代替人的繁重勞動以實現(xiàn)生產(chǎn)的機械化和自動化,能在有害環(huán)境下操作以保護人身安全,因而廣泛應(yīng)用于機械制造、冶金、電子、輕工和原子能等部門。
機械手控制系統(tǒng)經(jīng)歷了以下幾個階段:機械手完成放射源轉(zhuǎn)運年代、化工產(chǎn)品垛機械手年代、工業(yè)用機械手興起和發(fā)展年代。
2arm及其體系結(jié)構(gòu)
ARM(AdvancedRISCMachines)是微處理器行業(yè)的一家知名企業(yè),設(shè)計了大量高性能、廉價、耗能低的RISC處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應(yīng)用等?;?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/ARM">ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場份額,ARM技術(shù)正在逐步滲入到我們生活的各個方面。ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計開發(fā)的公司,作為知識產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的arm微處理器芯片進入市場。
2.1arm的結(jié)構(gòu)和特性
arm處理器共同特點
(1)、體積小、低功耗、低成本、高性能;
(2)、支持Thumb(16位)/arm(32位)雙指令集,能很好的兼容8位/16位器件;
(3)、大量使用寄存器,指令執(zhí)行速度更快;
(4)、大多數(shù)數(shù)據(jù)操作都在寄存器中完成;
(5)、尋址方式靈活簡單,執(zhí)行效率高;
(6)、指令長度固定。
2.2arm處理器的結(jié)構(gòu)
2.2.1RISC體系結(jié)構(gòu)
傳統(tǒng)的CISC(ComplexInstructionSetComputer,復(fù)雜指令集計算機)結(jié)構(gòu)有其固有的缺點,即隨著計算機技術(shù)的發(fā)展而不斷引入新的復(fù)雜的指令集,為支持這些新增的指令,計算機的體系結(jié)構(gòu)會越來越復(fù)雜,然而,在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會被反復(fù)使用,占整個程序代碼的80%。而余下的80%的指令卻不經(jīng)常使用,在程序設(shè)計中只占20%,顯然,這種結(jié)構(gòu)是不太合理的。,1979年美國加州大學(xué)伯克利分校提出了RISC(ReducedInstructionSetComputer,精簡指令集計算機)的概念,當(dāng)然,和CISC架構(gòu)相比較,盡管RISC架構(gòu)有上述的優(yōu)點,但決不能認(rèn)為RISC架構(gòu)就可以取代CISC架構(gòu),事實上,RISC和CISC各有優(yōu)勢,而且界限并不那么明顯。
2.2.2arm微處理器的寄存器結(jié)構(gòu)
ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位的寄存器。6個狀態(tài)寄存器,用以標(biāo)識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,目前只使用了其中的一部分。同時,arm處理器又有7種不同的處理器模式,在每一種處理器模式下均有一組相應(yīng)的寄存器與之對應(yīng)。即在任意一種處理器模式下,可訪問的寄存器包括15個通用寄存器(R0~R14)、一至二個狀態(tài)寄存器和程序計數(shù)器。在所有的寄存器中,有些是在7種處理器模式下共用的同一個物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。
2.2.3系統(tǒng)的工作頻率
系統(tǒng)的工作頻率在很大程度上決定了ARM微處理器的處理能力。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,常見的ARM7芯片系統(tǒng)主時鐘為20MHz-133MHz,ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時鐘頻率為100MHz-233MHz,ARM10最高可以達到700MHz。不同芯片對時鐘的處理不同,有的芯片只需要一個主時鐘頻率,有的芯片內(nèi)部時鐘控制器可以分別為arm核和USB、UART、DSP、音頻等功能部件提供不同頻率的時鐘。
3嵌入式系統(tǒng)
arm處理器開發(fā)嵌入式系統(tǒng)時,選擇合適的開發(fā)工具可以加快開發(fā)進度,節(jié)省開發(fā)成本。因此一套含有編輯軟件、編譯軟件、匯編軟件、鏈接軟件、調(diào)試軟件、工程管理及函數(shù)庫的集成開發(fā)環(huán)境一般來說是必不可少的,至于嵌入式實時操作系統(tǒng)、評估板等其他開發(fā)工具則可以根據(jù)應(yīng)用軟件規(guī)模和開發(fā)計劃選用。
3.1μC/OS-II
μC/OS-II是一種基于優(yōu)先級的搶占式多任務(wù)實時操作系統(tǒng),包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)間通信同步(信號量,郵箱,消息、隊列)和內(nèi)存管理等功能。它可以使各個任務(wù)獨立工作,互不干涉,很容易實現(xiàn)準(zhǔn)時而且無誤執(zhí)行,使實時應(yīng)用程序的設(shè)計和擴展變得容易,使應(yīng)用程序的設(shè)計過程大為減化。
3.2pSOS
pSOSystem是美國系統(tǒng)集成公司(IntegratedSystems,Inc.簡稱ISI公司,現(xiàn)已與美國WindRiver系統(tǒng)公司合并)根據(jù)幾十年從事嵌入式實時系統(tǒng)理論研究與實踐活動而設(shè)計開發(fā)的實時嵌入式操作系統(tǒng)。pSOSystem集成了一整套嵌入式軟件模塊、工具和服務(wù)。作為嵌入式系統(tǒng)微內(nèi)核設(shè)計的先驅(qū)者之一,ISI公司將pSOSystem構(gòu)造成適于嵌入式應(yīng)用系統(tǒng)開發(fā)、在嵌入式實時領(lǐng)域具有領(lǐng)導(dǎo)地位的實時操作系統(tǒng)。pSOSystem從ISI公司和許多第三廠家得到大量的支持。
3.3各種操作系統(tǒng)的對比及選用linux的原因
嵌入式操作系統(tǒng)是ARMCPU重要的軟件基礎(chǔ)從8位/16位單片機發(fā)展到以armCPU核為代表的32位嵌入式處理器,嵌入式操作系統(tǒng)將替代傳統(tǒng)的由手工編制的監(jiān)控程序或調(diào)度程序,成為重要的基礎(chǔ)組件。
第一是應(yīng)用如果你想開發(fā)的嵌入式設(shè)備是一個和網(wǎng)絡(luò)應(yīng)用密切相關(guān)或者就是一個網(wǎng)絡(luò)設(shè)備,那么你應(yīng)該選擇用嵌入式Linux或者μCLinux,而不是μC/OS-II,因為Linux不僅為你集成了TCP/IP協(xié)議,還有很豐富的其它網(wǎng)絡(luò)協(xié)議,如DHCPServer,PPPoe,webserver等等。
第二是實時性沒有一個絕對的數(shù)字可以告訴你什么是硬實時,什么是軟實時,它們之間的界限也是十分模糊的,這與你選擇什么樣的armCPU,它的主頻,內(nèi)存等參數(shù)有一定的關(guān)系,象IntelXscale這樣的處理器,即使配合普通Linux的內(nèi)核,內(nèi)核的搶占延時最壞情況也只有1.743毫秒,而99.9%的情況是1.42毫秒,而如果你使用加入實時補丁等技術(shù)的嵌入式Linux如MontaVistaLinux(2.4.17版本內(nèi)核),最壞的情況只有436微秒,而99.9%的情況是195微秒,上面的數(shù)字以及考慮到最新的Linux在實時性方面的改進(如低延時O(1)調(diào)試器,微秒級的高分辨率POSIX定時器),嵌入式Linux可以適合于90~95%的各種嵌入式系統(tǒng)應(yīng)用。當(dāng)然,你如果希望更高數(shù)量級的實時響應(yīng),如高速的A/D轉(zhuǎn)換需要幾個微秒以內(nèi)的中斷延時,要求一個毫秒級沒有DMA方式的異步串行實時處理器等類似的應(yīng)用,可能是采用μC/OS-II是合適的。當(dāng)然,你采用象Vxworks這樣傳統(tǒng)的嵌入式操作系統(tǒng)也可以滿足這樣的強實時性要求。
c++相關(guān)文章:c++教程
評論