基于PCI總線的數據采集卡設計
(4)在“Define and Test Resources for Your Device”窗口中,設置采集卡的I/O地址及變量名,對于即插即用(Plug-and-play)設備,Windriver會自動發現其所用到的硬件資源(如:I/O范圍,存儲器范圍及中斷號等)(如圖3)。在此可對采集卡的I/O地址進行讀寫測試,以便驗證硬件設計是否正確。
(5)在“Select Code Generation Options”窗口中,選中合適的開發語言及開發平臺。在此選擇“Ms Developer Studic6,5”(即Microsoft VisualC++6/5),以便Windriver生成合適的驅動程序框架及相應的API函數(如圖4)。
(6)保存Windriver產生的驅動開發工程后,Windriver會自動打開相應的開發環境(此處為:Microsoft VisualC++6),以便開發人員進行后續開發。
通過以上步驟,Windriver生成一個基于Visual C++語言的程序框架,開發人員可以在此框架的基礎上進行修改,加入自己的程序,實現對硬件的操作。現以筆者編制的程序(工程文件名為ADC)為例進行介紹。
在程序初始化階段,先調用PCI_Get_WD_handle(),判斷驅動程序windrvr6.sys是否已被加載,如果驅動程序已被加載,則調用ADC_LocateAndOpenBoard()函數,打開數據采集卡。在退出應用程序前,需先調用ADC_Close()函數,關閉數據采集卡。
對MAX1338和8路I/O的寄存器操作可通過ADC_ReadByte()、ADC_WriteByte()兩個函數完成。對CH365內部配置寄存器的讀寫可通過ADC_Read-PCIReg()、ADC_WritePCIReg()兩個函數完成。完成應用程序的開發后,數據采集卡在其他的PC機上工作時,需提供windrvr6.sys、windrvr6.inf、wd_utils.dll、數據采集卡的,inf文件以及自己開發的應用程序或DLL。以便于PC機安裝相應的驅動程序,對板卡進行配置、操作。本文根據筆者的實踐經驗,簡要介紹了PCI擴展卡的開發流程,給出了一套快速可行的解決方案。該方案簡單易行、調試方便,可使工程技術人員迅速掌握PCI總線的開發技術,從而設計出符合工程需求的PCI擴展卡。
tcp/ip相關文章:tcp/ip是什么
評論