基于VxWorks的PCI總線多功能數(shù)據(jù)采集卡驅(qū)動開發(fā)
2 多功能數(shù)據(jù)采集卡7396簡介
PCI-7396是專門為工業(yè)應(yīng)用而設(shè)計的96位并行數(shù)字輸入/輸出(DIO)卡。PCI-7396是模擬4個8255可編程外圍接口(PPI)芯片。每個PPI提供3個8位可同步訪問的DIO端口??偣灿?2個可獨立配置為輸入或輸出的端口。
PCI-7396產(chǎn)品具有通過外部觸發(fā)來鎖定數(shù)字輸入數(shù)據(jù)的特點,同時提供狀態(tài)改變(COS)中斷,這意味著當任何數(shù)字輸入狀態(tài)改變的時候,中斷就會發(fā)生。用戶可以通過用跳線設(shè)置上拉/下拉電阻輕松地以用戶自定義狀態(tài)(高或低)來設(shè)定PCI-7396數(shù)字I/O上電狀態(tài)。
7396有3種類型的寄存器:PCI配置寄存器,它是要實現(xiàn)板卡的功能所要訪問和操作的寄存器;本地配置寄存器,其是它就是操作9050所要訪問的寄存器:還有一個是PCI-6308寄存器。
3 PCI配置空間
PCI(Peripheral Component Interconnect),外部設(shè)備互聯(lián)標準,是由Intel公司提出的一種局部總線標準。每個PCI設(shè)備有3種物理空間:配置空間、存儲器空間和I/O空間。配置空間是長度256字節(jié)的一段連續(xù)空間(16個32位寄存器)其中前64個字節(jié)為頭標,其余192字節(jié)為設(shè)備相關(guān)信息。在64字節(jié)的頭標中,前16字節(jié)的定義是確定的,后48字節(jié)的具體含義因設(shè)備而異。配置空間頭標區(qū)如圖2所示。配置空間中的一個重要部分是基地址寄存器(BaseAddresssRegister),它的內(nèi)容是PCI設(shè)備的地址空間映射到系統(tǒng)地址空間的起始物理地址。其中,bit0=1表示IO空間映射,bit0=0表示存儲器空間映射。所有PCI設(shè)備必須實現(xiàn)存儲器空間映射。通過向BAR寫全1即可確定所需地址空間的大小。在VxWorks下要訪問一個PCI設(shè)備,只需要知道該設(shè)備的廠商號和設(shè)備號。本文引用地址:http://www.ex-cimer.com/article/148492.htm
4 數(shù)據(jù)采集卡設(shè)備驅(qū)動的實現(xiàn)
Adlink公司的7396數(shù)據(jù)采集卡是PCI設(shè)備,PCI設(shè)備驅(qū)動程序?qū)儆?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/VxWorks">VxWorks體系結(jié)構(gòu)中的I/O系統(tǒng)部分,它往上為應(yīng)用程序提供API接口,往下通過BSP訪問PCI設(shè)備。基于VxWorks的PCi設(shè)備驅(qū)動程序開發(fā)流程如圖3所示。分為4個步驟:①創(chuàng)建設(shè)備;②根據(jù)PCI設(shè)備的配置參數(shù),對PCI設(shè)備編寫功能函數(shù)程序;③編寫測試程序進行功能測試;④驅(qū)動程序工作正??煽?,即可發(fā)布驅(qū)動程序,將其加載入VxWorks操作系統(tǒng)內(nèi)核,完成驅(qū)動程序的開發(fā)。
評論