<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è) > 模擬技術(shù) > 設計應用 > 簡(jiǎn)易USB接口卡的設計和實(shí)現

簡(jiǎn)易USB接口卡的設計和實(shí)現

作者:杜鵬 秦麗 馬游舂 鮑愛(ài)達 時(shí)間:2008-05-20 來(lái)源:微計算機信息 收藏

  本項設計的驅動(dòng)程序是WDM模型的驅動(dòng)程序及應用程序是 用VC++編的,采用動(dòng)態(tài)庫與驅動(dòng)程序進(jìn)行通信的。應用程序是通過(guò)API函數和驅動(dòng)程序進(jìn)行通訊的。本驅動(dòng)程序的主要功能是控制設備上的讀寫(xiě)、擦除和一些檢查等功能。

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

  如下所示的基本驅動(dòng)程序讀寫(xiě)控制函數和相應的驅動(dòng)體系結構:

  1) 初始化例程DriverEntry ()www.51kaifa.com

  設備驅動(dòng)程序與應用程序不同,它沒(méi)有main () 或WinMain () 函數,而是有一個(gè)名為DriverEnt ry ()的入口函數,它通常完成一些初始化工作。當設備驅動(dòng)程序被加載時(shí),操作系統調用這個(gè)入口。在該例程中,需要初始化Dispatch (分派) 例程入口函數。

  2) 創(chuàng )建設備例程AddDevice ()

  大多數的PDO 都是在PnP 管理器調用該程序入口點(diǎn)時(shí)被創(chuàng )建的。插入新設備后,系統啟動(dòng)時(shí),總線(xiàn)枚舉器會(huì )發(fā)現總線(xiàn)上的所有設備,會(huì )自動(dòng)尋找并安裝設備的驅動(dòng)程序,并由驅動(dòng)程序中的處理PnP功能模塊自動(dòng)處理AddDevice () 例程及其他PnP 消息。此例程使用IoCreateDevice () 函數創(chuàng )建設備對象,再使用IoRegisterDevice InteRFace () 函數將設備組成為一個(gè)特定的設備接口,然后使用IoAttachDe2viceToDeviceStack () 函數關(guān)聯(lián)設備棧。

       

  圖4-2WDM型的驅動(dòng)體系框架

  DeviceIoControl(

  HANDLE  hDevice,

  DWORD  dwIocontrolcode,

  LPVOID   IpInBuffer,

  DWORD   nInBuffersize,

  LPVOID   IpOutBuffer,

  DWORD  nOutBuffersize,

  LPDWORD  IpBytysReturned,

  LPOVERLAPPED  IpOverLapped

  );

  NTSTATUS JXQIF::AddDevice(PDEVICE_OBJECT Pdo)

  {

  JXQIFDevice * pDevice = new (

  static_cast(KUnitizedName(L"JXQIFDevice", m_Unit)),

  FILE_DEVICE_UNKNOWN,

  NULL,

  0,

  DO_BUFFERED_IO

  )

  還有CreatFile,ReadFile,WriteFile,CloseFile 等。

       

  圖4-3應用程序的一個(gè)基本主界面。

  五、結論

  本文作者的創(chuàng )新點(diǎn)為對驅動(dòng)程序進(jìn)行了很好的裁減,而且配合上位機軟件進(jìn)行了傳輸速度的判斷和選擇,且結合實(shí)際的高速和低速采集系統做出了兩種速度的選擇。此留有多余的控制接口可以進(jìn)行再擴展,可以實(shí)現對PROM、FPG進(jìn)行讀取,可以實(shí)現大容量存儲的高速讀取。此采集卡留有插槽可以在采編器和一些存儲器上簡(jiǎn)單的插接就可以和電腦的USB口進(jìn)行通信了。文章介紹了應用CY7C68013 USB接口做一個(gè)簡(jiǎn)單的USB,以及對其程序的實(shí)現結構做了個(gè)大體的介紹和本設計的硬件實(shí)現工作做了個(gè)詳細介紹,經(jīng)過(guò)實(shí)驗室的應用得出CY7C68013 USB接口做簡(jiǎn)易USB到應用程序的開(kāi)發(fā)是比較簡(jiǎn)接和方便,且可以達到較高的數據傳輸速度,而且系統的穩定性好和易于擴展。隨著(zhù)USB 技術(shù)的不斷發(fā)展和完善,已經(jīng)使其逐漸成為先進(jìn)總線(xiàn)接口技術(shù)的標志和方向。

  參考文獻:

  1  J an Axelson. USB 大全. 北京:中國電力出版社,2001.

  2  Chris Cant . Windows WDM 設備驅動(dòng)程序開(kāi)發(fā)指南. 北京:機械工業(yè)出版社,2003

  3  KAURA V1 , BLASKO V1Operation of a phase Locked Loop System Under Distorted Utility Conditions  1IEEE Transactions On Industry Applications ,1997 ,33(1) ,58 - 631

  4  Chris Cant . 孫義馬莉波國雪飛譯,WindowsWDM設備驅動(dòng)程序開(kāi)發(fā)指南,北京:機械工業(yè)出版社 ,2000

  5  魏來(lái),董燕.程控交換實(shí)驗系統USB接口設計[J].微計算機信息,2004年,第九期


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

關(guān)鍵詞: USB 接口卡 CPLD 芯片

評論


相關(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>