新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 簡易USB接口卡的設(shè)計(jì)和實(shí)現(xiàn)

簡易USB接口卡的設(shè)計(jì)和實(shí)現(xiàn)

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

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

本文引用地址:http://butianyuan.cn/article/82820.htm

  如下所示的基本驅(qū)動(dòng)程序讀寫控制函數(shù)和相應(yīng)的驅(qū)動(dòng)體系結(jié)構(gòu):

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

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

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

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

       

  圖4-2WDM型的驅(qū)動(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應(yīng)用程序的一個(gè)基本主界面。

  五、結(jié)論

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

  參考文獻(xiàn):

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

  2  Chris Cant . Windows WDM 設(shè)備驅(qū)動(dòng)程序開發(fā)指南. 北京:機(jī)械工業(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設(shè)備驅(qū)動(dòng)程序開發(fā)指南,北京:機(jī)械工業(yè)出版社 ,2000

  5  魏來,董燕.程控交換實(shí)驗(yàn)系統(tǒng)USB接口設(shè)計(jì)[J].微計(jì)算機(jī)信息,2004年,第九期


上一頁 1 2 下一頁

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

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉