<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)用 > 基于RTX的舵機(jī)控制系統(tǒng)研制

          基于RTX的舵機(jī)控制系統(tǒng)研制

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

          3.1 上層軟件
          在啟動(dòng)舵機(jī)控制程序之前,先要啟動(dòng)實(shí)時(shí)環(huán)境,因?yàn)榈讓域?qū)動(dòng)程序和上層舵機(jī)控制程序是同時(shí)運(yùn)行的。軟件的具體操作流程如圖3所示。

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

          c.jpg


          3.2 底層軟件
          根據(jù)舵機(jī)控制軟件對(duì)數(shù)據(jù)采集的實(shí)時(shí)性要求,首先要對(duì)各采集板卡做在下的驅(qū)動(dòng)開(kāi)發(fā),這是舵機(jī)解決實(shí)時(shí)性問(wèn)題的重點(diǎn)和難點(diǎn)。編寫的驅(qū)動(dòng)程序,可以通過(guò)調(diào)用實(shí)時(shí)應(yīng)用程序編程接口(RTAPI,Real-Time Applieation Programming Interface)函數(shù)來(lái)訪問(wèn)實(shí)時(shí)子系統(tǒng)(RTSS,Real-Time Sub-System),并維持其系統(tǒng)的實(shí)時(shí)性。這樣處理的優(yōu)點(diǎn)是硬件可以通過(guò)RTX函數(shù)直接訪問(wèn),驅(qū)動(dòng)開(kāi)發(fā)也更加簡(jiǎn)單。
          所謂驅(qū)動(dòng)程序,就是直接控制設(shè)備進(jìn)行工作的底層程序,實(shí)現(xiàn)了硬件和高層應(yīng)用程序的交互。如果要使用PXI總線設(shè)備上的某個(gè)功能,就需要CPU能通過(guò)某段范圍的地址訪問(wèn)或內(nèi)存訪問(wèn)的方式與該功能交互。RTX驅(qū)動(dòng)程序可以將獲得的基地址轉(zhuǎn)換成系統(tǒng)能夠識(shí)別的虛擬地址,然后通過(guò)讀寫函數(shù)對(duì)不同板卡的底層寄存器進(jìn)行操作,從而實(shí)現(xiàn)控制板卡正常工作。PCI定位寄存器配置由BIOS自動(dòng)完成初始化,如分配總線號(hào)、中斷向量、地址空間等,驅(qū)動(dòng)程序只需要對(duì)數(shù)據(jù)偏移寄存器,即設(shè)備內(nèi)部寄存器進(jìn)行配置。訪問(wèn)內(nèi)部寄存器,首先要獲得PCI設(shè)備在BIOS上的映射基地址,然后根據(jù)設(shè)備的寄存器偏移量和格式對(duì)寄存器進(jìn)行訪問(wèn)。

          d.jpg



          關(guān)鍵詞: 研制 控制系統(tǒng) RTX 基于

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