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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VxWorks的PCI總線(xiàn)多功能數(shù)據(jù)采集卡驅(qū)動(dòng)開(kāi)發(fā)

          基于VxWorks的PCI總線(xiàn)多功能數(shù)據(jù)采集卡驅(qū)動(dòng)開(kāi)發(fā)

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

          摘要:是WindRiver(風(fēng)河)公司的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),由于它的高實(shí)時(shí)性,所以廣泛地應(yīng)用于軍事、工業(yè)控制、通信等領(lǐng)域;分析了Vxworks下卡的實(shí)現(xiàn)方法;以ADLINK的7396卡為例,介紹設(shè)備的配置空間,包括它的結(jié)構(gòu)及訪(fǎng)問(wèn)方法,重點(diǎn)介紹PCI設(shè)備在程序的步驟及編程要點(diǎn),并對(duì)過(guò)程中的關(guān)鍵部分給予代碼說(shuō)明;在某綜合控制系統(tǒng)中,開(kāi)發(fā)的程序運(yùn)行穩(wěn)定、可靠。
          關(guān)鍵詞:;PCI;卡;

          VxWorks是一種高性能的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),它由WindRiver公司開(kāi)發(fā),具有小巧的內(nèi)核,可根據(jù)需要進(jìn)行裁減;它還獲得廣泛的硬件支持,像X86系列的CPU,Motorola 68K系列的CPU,Motorola/IBM Power PC等等;它還具有很高的可靠性和實(shí)時(shí)性,像美國(guó)登陸的火星探測(cè)器使用的就是VxWorks操作系統(tǒng);它還有其它的很多優(yōu)點(diǎn),因此被廣泛地使用在通信、軍事、航空、控制等高精尖技術(shù)以及實(shí)時(shí)性要求極高的領(lǐng)域中。
          PCI總線(xiàn)由于其即插即用、獨(dú)立于微處理器、通用性好、具有很高的兼容性等等優(yōu)良的特點(diǎn),使得它成為運(yùn)用最廣泛的局部總線(xiàn)標(biāo)準(zhǔn),而且具有很大的發(fā)展?jié)摿?。使它成為具有很好發(fā)展?jié)摿Φ木植靠偩€(xiàn)標(biāo)。數(shù)據(jù)采集卡在工業(yè)控制中有著廣泛的運(yùn)用,它是信號(hào)和嵌入式處理器的有效交互的工業(yè)控制系統(tǒng)中的重要環(huán)節(jié),特別是它的中斷功能能提供很有效的實(shí)時(shí)性。在Vxworks下,一個(gè)重要的問(wèn)題就是如何開(kāi)發(fā)出高效率的數(shù)據(jù)采集卡驅(qū)動(dòng),只有驅(qū)動(dòng)穩(wěn)定了,才能使系統(tǒng)高效地運(yùn)轉(zhuǎn)。文中結(jié)合Adlink公司的7396芯片,探討在VxWorks下PENTIUM CPU的PCI數(shù)據(jù)采集卡的驅(qū)動(dòng)開(kāi)發(fā)。

          1 VxWorks下的設(shè)備驅(qū)動(dòng)程序
          1.1 VxWorks下的I/O系統(tǒng)
          I/O系統(tǒng)全稱(chēng)為(Input/Output)輸入輸出系統(tǒng),在VxWorks系統(tǒng)中,I/O系統(tǒng)向用戶(hù)屏蔽了硬件層,為用戶(hù)提供了一個(gè)統(tǒng)一的標(biāo)準(zhǔn)接口,使得應(yīng)用層的用戶(hù)只要了解I/O系統(tǒng)的標(biāo)準(zhǔn)接口使用方法,就可以正確地操作外部設(shè)備。I/O系統(tǒng)為設(shè)備提供了7個(gè)標(biāo)準(zhǔn)的I/O接口函數(shù):creat(...)、delete(...)、open(...)、close(...)、read(...)、write(...)、ioctl(...)。驅(qū)動(dòng)程序設(shè)計(jì)者只要根據(jù)實(shí)際項(xiàng)目、工程的需要設(shè)計(jì)完成相應(yīng)功能的接口函數(shù),然后在使用時(shí)I/O系統(tǒng)就可以把應(yīng)用程序的I/O請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的設(shè)計(jì)好的設(shè)備驅(qū)動(dòng)程序進(jìn)行處理。在VxWorks系統(tǒng)中I/O系統(tǒng)是通過(guò)維護(hù)文件描述符表、設(shè)備描述符表和驅(qū)動(dòng)程序列表這3張表格來(lái)實(shí)現(xiàn)對(duì)驅(qū)動(dòng)程序的管理的。
          1.2 VxWorks設(shè)備驅(qū)動(dòng)程序的分類(lèi)
          在Vxworks系統(tǒng)中,輸入/輸出設(shè)備從宏觀(guān)上分為3種類(lèi)型:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。依據(jù)設(shè)備的類(lèi)型,VxWorks下設(shè)備驅(qū)動(dòng)程序的管理也被劃分成3種模塊:字符設(shè)備驅(qū)動(dòng)程序模塊、塊設(shè)備驅(qū)動(dòng)程序模塊、網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序模塊。從架構(gòu)上說(shuō),字符設(shè)備驅(qū)動(dòng)程序的實(shí)現(xiàn)相對(duì)來(lái)說(shuō)是最簡(jiǎn)單的,它向上只是與I/O系統(tǒng)接口,所以只需要提供內(nèi)個(gè)接口就可以了。塊設(shè)備驅(qū)動(dòng)程序相對(duì)于字符設(shè)備來(lái)說(shuō)相對(duì)的復(fù)雜,它還要與中間的文件系統(tǒng)相連,為文件系統(tǒng)提供服務(wù),塊設(shè)備的最大特點(diǎn)就是以“塊”為單位進(jìn)行操作,在讀取其中的數(shù)據(jù)時(shí),必須將所在塊的數(shù)據(jù)完全讀出。網(wǎng)絡(luò)設(shè)備則提供了另外的接口,相對(duì)于字符設(shè)備和塊設(shè)備來(lái)說(shuō),處于相對(duì)底層,這是由網(wǎng)絡(luò)協(xié)議的復(fù)雜性決定的。為了更好地支持網(wǎng)絡(luò)設(shè)備,VxWorks在網(wǎng)絡(luò)協(xié)議層和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序之間增加了MUX接口。
          1.3 驅(qū)動(dòng)程序和I/O系統(tǒng)
          驅(qū)動(dòng)程序的結(jié)構(gòu)包括3個(gè)部分:初始化部分,函數(shù)功能部分和中斷服務(wù)程序ISR。初始化部分主要是初始化硬件,分配硬件所需要的系統(tǒng)資源。函數(shù)功能主要是根據(jù)實(shí)際的需要,完成系統(tǒng)指定的功能。中斷服務(wù)程序主要是響應(yīng)外部中斷,使系統(tǒng)能夠快速地對(duì)外部交互作出反應(yīng),由于中斷服務(wù)程序要求盡可能地反應(yīng)快,所以中斷服務(wù)程序應(yīng)該盡可能簡(jiǎn)單。

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

          a.JPG


          VxWorks中設(shè)備驅(qū)動(dòng)程序與I/O系統(tǒng)的關(guān)系非常簡(jiǎn)單。對(duì)于塊設(shè)備來(lái)說(shuō),應(yīng)用程序通過(guò)I/O系統(tǒng)訪(fǎng)問(wèn)文件系統(tǒng),而后由文件系統(tǒng)調(diào)用驅(qū)動(dòng)程序訪(fǎng)問(wèn)設(shè)備。而其它的非塊設(shè)備則是I/O系統(tǒng)直接調(diào)用驅(qū)動(dòng)程序訪(fǎng)問(wèn)設(shè)備。圖1顯示了應(yīng)用程序、I/O系統(tǒng)和設(shè)備驅(qū)動(dòng)程序之間的關(guān)系。


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

          評(píng)論


          相關(guān)推薦

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