<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/148492.htm

a.JPG


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


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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>