《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VxWorks的PCI總線多功能數據采集卡驅動開發
基于VxWorks的PCI總線多功能數據采集卡驅動開發
現代電子技術
張 原,鄒程帥,張 帥,宋 鵬
摘要: VxWorks是WindRiver(風河)公司開發的嵌入式實時操作系統(RTOS),由于它的高實時性,所以廣泛地應用于軍事、工業控制、通信等領域;分析了Vxworks下PCI總線多功能數據采集卡的實現方法;以ADLINK的PCI7396數據采集卡為例,介紹PCI總線設備的配置空間,包括它的結構及訪問方法,重點介紹PCI總線設備在VxWorks下驅動程序的開發步驟及編程要點,并對開發過程中的關鍵部分給予代碼說明;在某綜合控制系統中,開發的驅動程序運行穩定、可
Abstract:
Key words :

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

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

a.JPG


VxWorks中設備驅動程序與I/O系統的關系非常簡單。對于塊設備來說,應用程序通過I/O系統訪問文件系統,而后由文件系統調用驅動程序訪問設備。而其它的非塊設備則是I/O系統直接調用驅動程序訪問設備。圖1顯示了應用程序、I/O系統和設備驅動程序之間的關系。

2 多功能數據采集卡7396簡介
PCI-7396是專門為工業應用而設計的96位并行數字輸入/輸出(DIO)卡。PCI-7396是模擬4個8255可編程外圍接口(PPI)芯片。每個PPI提供3個8位可同步訪問的DIO端口。總共有12個可獨立配置為輸入或輸出的端口。
PCI-7396產品具有通過外部觸發來鎖定數字輸入數據的特點,同時提供狀態改變(COS)中斷,這意味著當任何數字輸入狀態改變的時候,中斷就會發生。用戶可以通過用跳線設置上拉/下拉電阻輕松地以用戶自定義狀態(高或低)來設定PCI-7396數字I/O上電狀態。
7396有3種類型的寄存器:PCI配置寄存器,它是要實現板卡的功能所要訪問和操作的寄存器;本地配置寄存器,其是它就是操作9050所要訪問的寄存器:還有一個是PCI-6308寄存器。

3 PCI配置空間
PCI(Peripheral Component Interconnect),外部設備互聯標準,是由Intel公司提出的一種局部總線標準。每個PCI設備有3種物理空間:配置空間、存儲器空間和I/O空間。配置空間是長度256字節的一段連續空間(16個32位寄存器)其中前64個字節為頭標,其余192字節為設備相關信息。在64字節的頭標中,前16字節的定義是確定的,后48字節的具體含義因設備而異。配置空間頭標區如圖2所示。配置空間中的一個重要部分是基地址寄存器(BaseAddresssRegister),它的內容是PCI設備的地址空間映射到系統地址空間的起始物理地址。其中,bit0=1表示IO空間映射,bit0=0表示存儲器空間映射。所有PCI設備必須實現存儲器空間映射。通過向BAR寫全1即可確定所需地址空間的大小。在VxWorks下要訪問一個PCI設備,只需要知道該設備的廠商號和設備號。

b.JPG



4 數據采集卡設備驅動的實現
Adlink公司的7396數據采集卡是PCI設備,PCI設備驅動程序屬于VxWorks體系結構中的I/O系統部分,它往上為應用程序提供API接口,往下通過BSP訪問PCI設備?;赩xWorks的PCi設備驅動程序開發流程如圖3所示。分為4個步驟:①創建設備;②根據PCI設備的配置參數,對PCI設備編寫功能函數程序;③編寫測試程序進行功能測試;④驅動程序工作正??煽?,即可發布驅動程序,將其加載入VxWorks操作系統內核,完成驅動程序的開發。

c.JPG

在前面的一節中提到過,要訪問一個PCI設備,首先要知道它的廠商號和設備號,在實際工作中,可以通過WinDriver這個在windows平臺下運行的編寫驅動的軟件獲得,這樣比較方便和直觀,通過它,得到7396的廠商號(Dev7396_VENDOR_ID)為0x144a,設備號Dev7396_DEVICE_ ID)為0x7396。知道廠商號和設備號后,就可以利用VxWorks提供的函數pciFindDevice()獲得設備的總線號、設備編號和功能號。然后調用peiConfigInLong()獲得多功能數據采集卡設備的配置空間、內存空間、I/O空間的地址;pciConfigInByte得到設備中斷號。7396設備沒有要訪問的內存空間,所以沒有涉及到內存的映射和操作。主要的實現代碼如下所示:
d.JPG
在讀取設備的基地址時,要特別注意結合設備相關的說明書進行,在前面的章節中提到過,7396設備包含3個寄存器空間(詳見2多功能數據采集卡7396簡介),所以讀出來的基地址空間有可能是3個里面的一個。
e.JPG
由于使用的是PENTIUM系列的CPU來進行板卡驅動的開發,所以在邊接中斷向量的時候,中斷號要加上0x20。
f.JPG
特別要注意操作9050的控制寄存器的偏移為0x4c的地方的操作,它是要實現中斷必須要進行的操作,沒有操作正確的話,中斷是不能夠正確運行的,而且9050的這個寄存器的各個位和9052還是不一樣的,雖然都是PLX公司的產品。
讀取完上面的I/O基地址和相應的中斷后,就可以操作I/O空間了,這要根據相應板卡說明書上的基地址偏移來操作,而且還要注意設置端口是輸入端口還是輸出端口。中斷服務程序在VxWorks下也有嚴格的要求,要注意。

5 結束語
文中結合具體的Adlink公司的7396數據采集卡,介紹了在VxWorks下編寫PCI設備驅動的相關方法以及要注意的事項,并介紹了VxWorks的I/O系統和驅動相關的理論知識,它們是開發驅動的基礎。根據上面方法開發出的7396驅動已經在某綜合控制系統中穩定地運行。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美四级伦理在线| 国产精品v欧美精品v日本精品动漫| 亚洲视频一区二区免费在线观看| 欧美大片一区二区| 激情综合网址| 欧美日韩精品一区二区天天拍小说| 久久福利精品| 亚洲男人第一网站| 精品成人a区在线观看| 久久香蕉国产线看观看网| 国产精品黄色在线观看| 国产精品高清在线| 亚洲女女女同性video| 怡红院精品视频在线观看极品| 黄色欧美日韩| 免播放器亚洲一区| 国产欧美一区二区三区沐欲| 亚洲美女在线一区| 国产精品亚洲第一区在线暖暖韩国| 激情另类综合| 国产亚洲永久域名| 国产精品日韩一区二区| 亚洲免费在线播放| 欧美日韩高清区| 久久久久久91香蕉国产| 欧美偷拍一区二区| 黑人巨大精品欧美一区二区小视频| 国产视频欧美视频| 亚洲第一网站免费视频| 亚洲欧美电影在线观看| 久久久久青草大香线综合精品| 亚洲欧洲一区二区三区在线观看| 欧美日韩一区在线观看| 免费毛片一区二区三区久久久| 亚洲欧美成人一区二区三区| 国产日产欧产精品推荐色| 欧美午夜一区| 国产精品一国产精品k频道56| 国产视频欧美视频| 亚洲人成77777在线观看网| 国产精品日韩欧美一区二区| 日韩午夜av在线| 久久精品女人天堂| 午夜精品在线观看| 欧美日韩小视频| 国产精品成人免费| 伊人伊人伊人久久| 国产精品美女在线观看| 亚洲综合色激情五月| 欧美激情91| 久久成人18免费观看| 国产一区二区精品在线观看| av成人手机在线| 欧美成人首页| 99视频精品全部免费在线| 欧美亚日韩国产aⅴ精品中极品| 久久综合九色综合欧美狠狠| 在线亚洲免费| 欧美日韩一级黄| 伊人伊人伊人久久| 午夜亚洲影视| 久久精品国产久精国产思思| 国产女同一区二区| 激情懂色av一区av二区av| 中文在线资源观看网站视频免费不卡| 欧美日韩亚洲成人| 久久亚洲私人国产精品va媚药| 日韩亚洲欧美中文三级| 欧美电影在线观看完整版| 欧美日韩成人精品| 欧美在线视频一区二区| 欧美日本精品在线| 女同一区二区| 久久精品国产2020观看福利| 亚洲人成网站777色婷婷| 蘑菇福利视频一区播放| 美女啪啪无遮挡免费久久网站| 亚洲精品网站在线播放gif| 欧美猛交免费看| 久久久中精品2020中文| 尤物视频一区二区| 国产精品自拍小视频| 亚洲日本aⅴ片在线观看香蕉| 欧美日韩国产美| 久久亚洲精品中文字幕冲田杏梨| 亚洲激情一区| 国产精品日本精品| 亚洲一区中文字幕在线观看| 国产精品男女猛烈高潮激情| 欧美一区二区性| 一区二区三区我不卡| 亚洲国产成人高清精品| 黄色工厂这里只有精品| 欧美日韩欧美一区二区| 久久国产精品久久久久久电车| 亚洲欧洲日韩在线| 在线成人激情视频| 国产精品一区二区三区观看| 久久久www成人免费无遮挡大片| 在线精品国精品国产尤物884a| 欧美激情第一页xxx| 夜夜嗨av一区二区三区中文字幕| 欧美色播在线播放| 亚洲区一区二| 欧美精品激情在线| 亚洲在线播放电影| 欧美精品不卡| 欧美h视频在线| 一区二区三区蜜桃网| 免费日韩av电影| 日韩系列在线| 欧美日韩高清在线播放| 1000精品久久久久久久久| 亚洲图片欧洲图片日韩av| 乱人伦精品视频在线观看| 国产日韩在线看片| 在线电影院国产精品| 久久久精品日韩| 免费亚洲视频| 亚洲视屏一区| a91a精品视频在线观看| 欧美激情视频一区二区三区免费| 欧美视频在线不卡| 国产亚洲毛片| 国产精品区免费视频| 在线观看视频一区二区欧美日韩| 免费欧美在线| 国产亚洲欧美aaaa| 亚洲美女av在线播放| 欧美性猛片xxxx免费看久爱| 欧美大片一区二区三区| 欧美xart系列在线观看| 亚洲一区久久| 韩国三级电影一区二区| 国产日韩精品一区观看| 老司机成人在线视频| 国产日韩精品在线观看| 国产精品揄拍500视频| 欧美日韩国产综合在线| 亚洲国产精品va在线观看黑人| 鲁大师成人一区二区三区| 亚洲第一区色| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲一区二区在线| 亚洲成色精品| 在线一区二区三区做爰视频网站| 欧美一区二区在线免费播放| 免费不卡欧美自拍视频| 国产一区二区三区四区在线观看| 国产视频精品va久久久久久| 国产欧美丝祙| 国产精品wwwwww| 亚洲欧美激情四射在线日| 久久国产精品电影| 国产精品欧美日韩| 欧美日本中文| 亚洲免费在线精品一区| 免费国产一区二区| 另类酷文…触手系列精品集v1小说| 亚洲人体大胆视频| 亚洲欧洲日本在线| 亚洲电影自拍| 在线观看中文字幕亚洲| 欧美一二三视频| 亚洲视频在线免费观看| 欧美喷潮久久久xxxxx| 亚洲高清免费在线| 久久免费一区| 午夜精品免费视频| 在线视频你懂得一区二区三区| 亚洲电影在线看| 欧美亚洲成人网| 久久免费视频网站| 国产精品毛片一区二区三区| 韩国女主播一区| 欧美精品一区在线观看| 麻豆av一区二区三区| 国产精品久久久久天堂| 国产一区二区三区视频在线观看| 亚洲综合日韩| 久久国产欧美日韩精品| 精品动漫3d一区二区三区免费版| 午夜精品美女自拍福到在线| 亚洲高清视频中文字幕| 亚洲欧美综合国产精品一区| 午夜精品久久久久久久99水蜜桃| 国产一区二区三区高清播放| 国产一在线精品一区在线观看| 欧美日韩成人综合在线一区二区| 国产专区精品视频| 国产日产精品一区二区三区四区的观看方式| 欧美日韩在线精品| 国产精品女人毛片| 午夜精品久久久久久久| 日韩视频一区二区三区在线播放| 日韩一级二级三级| 亚洲视频在线观看| 国产精品一香蕉国产线看观看| 欧美国产一区二区在线观看| 欧美一区二区三区免费视| 1000部国产精品成人观看| 亚洲激情视频在线| 亚洲欧洲精品一区| 狠狠色丁香久久婷婷综合_中| 国产精品久久久久9999高清| 国产亚洲欧美日韩精品| 久久久国产精品一区二区三区| 亚洲美女av网站| 亚洲伊人网站| 欧美亚洲免费电影| 蜜桃视频一区| 美女999久久久精品视频| 中文在线资源观看视频网站免费不卡| 亚洲人体一区| 国产麻豆视频精品| 美女国产精品| 国产精品久久久一本精品| 日韩视频免费看| 国产精品ⅴa在线观看h| 国产精品二区在线观看| 99热精品在线| 亚洲无限乱码一二三四麻| 久久久精品2019中文字幕神马| 欧美在线你懂的| 亚洲欧洲日本一区二区三区| 欧美日韩精品在线播放| 亚洲免费一级电影| 久久本道综合色狠狠五月| 国产日韩欧美一区二区三区在线观看| 国产亚洲精久久久久久| 91久久精品国产91性色tv| 亚洲日本一区二区| 欧美成人视屏| 亚洲综合欧美| 国产精品久久久久9999吃药| 欧美激情一区二区三区高清视频| 在线不卡a资源高清| 亚洲三级电影在线观看| 亚洲电影欧美电影有声小说| 亚洲高清不卡| 亚洲欧美日韩系列| 亚洲美女中文字幕| 亚洲一区视频| 亚洲一区在线看| 国产精品久久久久高潮| 你懂的亚洲视频| 亚洲电影天堂av| 亚洲日本中文| 亚洲日本免费电影| 欧美制服丝袜| 久久久噜噜噜| 国产精品久久久久久久久免费樱桃| 久久不射中文字幕| 欧美视频四区| 国产精品嫩草影院av蜜臀| 欧美一区二区三区四区视频| 欧美日韩国产一区| 亚洲欧美怡红院| 好吊妞**欧美| 你懂的一区二区| 亚洲人成人77777线观看| 亚洲高清123| 久久精品一本| 欧美mv日韩mv国产网站| 一区二区在线视频观看| 海角社区69精品视频| 91久久精品www人人做人人爽| 亚洲欧洲日产国产网站| 欧美激情1区| 亚洲少妇自拍| 亚洲国产成人精品视频| 亚洲免费不卡| 亚洲国产精品成人va在线观看| 亚洲一区国产| 日韩视频在线观看| 亚洲欧洲三级电影| 夜久久久久久| 免费成人美女女| 日韩视频永久免费| 欧美久久婷婷综合色| 欧美日本高清一区| 亚洲国产天堂久久综合网| 在线观看欧美黄色| 国产精品海角社区在线观看| 欧美激情亚洲自拍| 久久福利毛片| 在线观看视频免费一区二区三区| 欧美日韩大片一区二区三区| 国产精品一区二区三区观看| 国产精品日韩在线播放| 欧美国产精品中文字幕| 亚洲丶国产丶欧美一区二区三区| 久久久综合香蕉尹人综合网| 亚洲欧美日韩另类精品一区二区三区| 亚洲丶国产丶欧美一区二区三区| 亚洲激情视频在线| 亚洲精品美女久久7777777| 国精品一区二区| 国产精品系列在线| 久久成人国产精品| 欧美日韩国产页| 美女脱光内衣内裤视频久久网站| 国产伦理精品不卡| 国产精品视区| 亚洲午夜性刺激影院| 欧美天堂亚洲电影院在线观看| 久久国产主播精品| 欧美国产日韩xxxxx| 暖暖成人免费视频| 欧美日韩性视频在线| 亚洲欧美日韩国产综合| 韩国精品主播一区二区在线观看| 91久久久亚洲精品| 亚洲乱码视频| 国产欧美亚洲一区| 国产欧美一区二区精品仙草咪| 亚洲午夜成aⅴ人片| 国产精品亚洲人在线观看| 久久久xxx| 亚洲午夜精品视频| 久久只有精品| 国产精品成人免费| 影音先锋久久| 国产美女一区| 美女精品在线| 一区二区三区av| 一本一本久久a久久精品牛牛影视| 国产伦精品一区二区三区高清版|