<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è) > 嵌入式系統 > 設計應用 > PCI9052在多功能CAN適配卡中的應用研究

PCI9052在多功能CAN適配卡中的應用研究

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

NTSTATUS PCIDriverDevice::DeviceControl(KIrp I)
{
NTSTATUS status;
switch (I.IoctlCode())
{
………………………………………
case IOCTL_HIL100_READ_IO_DATA:
status = IOCTL_HIL100_READ_IO_DATA _Handler(I);
case IOCTL_HIL100_WRITE_IO_DATA:
status = IOCTL_HIL100_WRITE_IO_DATA _Handler(I);
case IOCTL_HIL100_WRITE_DA_DATA:
status = IOCTL_HIL100_WRITE_DA_DATA _Handler(I);
case IOCTL_HIL100_READ_AD_DATA:
status = IOCTL_HIL100_READ_AD_DATA _Handler(I);
default:
status = STATUS_INVALID_PARAMETER;
break;
}
………………………….
}
在該函數進(jìn)行驅動(dòng)中相應的數據處理與傳遞,包括從內存中讀上層程序發(fā)送下來(lái)的數據或將AD、等外設傳遞上來(lái)的數據送到上層程序。
API函數主要提供了PCI卡的開(kāi)關(guān),A/D、D/A、I/O的讀寫(xiě)函數,的設置、讀寫(xiě),中斷事件消息函數等。API函數與以上控制代碼相關(guān)聯(lián),傳遞數據和控制參數。如下程序所示:
bool WriteDataToIO(unsigned char data) //寫(xiě)數據到IO口
{
……
ULONG BytesReturned;
if (!DeviceIoControl(hHIL100, IOCTL_HIL100_WRITE_IO_DATA, data, 1,
NULL, 0, BytesReturned, NULL))
……
}
bool ReadDataFromIO(unsigned char *data) //從IO口讀數據
{
……
ULONG BytesReturned;
if (!DeviceIoControl(hHIL100, IOCTL_HIL100_READ_IO_DATA, data, 1,
data, 1, BytesReturned, NULL))
……
}
bool WriteDataToDA(unsigned short control,unsigned short freq[4])//寫(xiě)數據到AD
{
……
ULONG BytesReturned;
unsigned short pData[16];
pData[0]=control;
pData[1]=freq[0];
pData[2]=freq[1];
pData[3]=freq[2];
pData[4]=freq[3];
if (!DeviceIoControl(hHIL100, IOCTL_HIL100_WRITE_DA_DATA, pData, 10,
NULL, 0, BytesReturned, NULL))
……
}
bool ReadDataFromAD(unsigned short address[8],unsigned short data[8])
{ //從AD讀數據
……
ULONG BytesReturned;
if (!DeviceIoControl(hHIL100, IOCTL_HIL100_READ_AD_DATA,address,16,
data,16, BytesReturned, NULL))
……
}
bool ReadDataFromDA (unsigned char address,unsigned short *data)//從DA讀數據
{
……
ULONG BytesReturned;
if (!DeviceIoControl(hHIL100, IOCTL_HIL100_READ_DA1_DATA,address,1,
data, 2, BytesReturned, NULL))
……
}
將這些接口函數生成動(dòng)態(tài)鏈接庫的形式,供上層程序調用。
3 結束語(yǔ)
由于PCI總線(xiàn)的高速特性,使其被廣泛應用于高速數據采集系統和數據傳輸通信系統中,有效地解決了實(shí)時(shí)采集、實(shí)時(shí)傳輸和實(shí)時(shí)存儲等問(wèn)題。而PCI總線(xiàn)控制器專(zhuān)用芯片的出現則縮短了PCI總線(xiàn)硬件設備的開(kāi)發(fā)周期,使得硬件設備的可靠性和穩定性都有了較大的提高。在開(kāi)發(fā)過(guò)程中,尤其對于高速采樣及實(shí)時(shí)嚴格的系統,我們實(shí)現了對該系統高效率的操作特性,該有效的解決了高速實(shí)時(shí)采集、實(shí)時(shí)傳輸和實(shí)時(shí)存儲等的驅動(dòng)問(wèn)題。同時(shí)該PCI卡既實(shí)現了CAN總線(xiàn)通信功能,同時(shí)也實(shí)現了多路通道的數據采集和相應控制。
3 本文的創(chuàng )新觀(guān)點(diǎn)
1) 本文將API函數與控制代碼建立起關(guān)聯(lián)
2) 本文將應用程序集成到對應的API函數里

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

上一頁(yè) 1 2 下一頁(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>