網站導航:首頁開源項目 USB開源項目:Easy USB 51 Programer  

目錄導航

   
  1、項目簡介
USB開發基礎
1、USB接口的優點及開發難易度
2、USB設備的開發流程
3、USB接口芯片(USB控制器)的選擇
4、了解USB的通訊過程
5、USB命令(請求)和USB描述符
6、實例講解USB的枚舉(配置)過程
准備工作
1、需要哪些工具
2、電路原理圖
3、手工制作您的電路板
4、測試您的硬件
HID設備類
1、讓PC機找到我們的硬件
2、如何成爲一個HID設備(模擬鼠標)
3、如何成爲一個HID設備(模擬鍵盤)
4、如何與HID設備通訊(一)
5、如何與HID設備通訊(二)
6、51編程器的實現
Windows USB 驱动程序(自定义设备)
1、Windows驅動開發基礎
2、開發環境配置
3、第一个实例-Hello Wdm(一)
4、第一个实例-Hello Wdm(二)
5、真正的實例—驅動我們的實驗板
6、真正的實例—測試驅動程序
7、真正的實例—控制LED及讀取按鍵狀態
8、如何編寫應用程序
   

相关産品    淘寶網店
     
 

 
  更多...  
 
 
了解USB的通訊過程 查看/参与此開源項目相关讨论
 

  USB的两根信号线负责与总线上的设备交换数据。这些电缆形成了所有设备必须共享的惟一的一条传输通路。 RS-232有一条Tx线用来传输一个方向的数据,一条Rx线用来传输另一个方向的数据。与RS-232不同,USB的一对电线只传输一个不同的信号,不 同方向的信号要按顺序来传输。

  因为所有的传输共享一个数据通道,所以每一个事务必须包括事务的源和目的地址。每个设备有一个由 主机分配的惟一的地址,所有的数据都是流向主机或从主机获取。每个事务都是以主机发送数据块开始的,这个数据块包括接收设备的地址以及设备中被称为终端的 一个特殊位置。一个设备发送的每个数据是为了响应从主机接到的请求而发送的接收到的数据或状态信息。  

  USB通信分爲兩類,根據它們被用于原始配置還是應用中。在配置通信中主機通知設備,設備收到通知後准備好交換數據。大部分這類通信發生在上電或連接時主機檢測到外設的時候。應用通信出現在主機的應用程序與一個檢測到的外設交換數據的時候。這些是實現設備應用的通信。例如,對鼠標來說,應用通信是發送點擊動作給主機,主機端應用程序接收到這個動作後執行相應動作。

配置通信

  在檢測過程中,設備的固件對主機的一系列標准請求做出響應。設備必須識別出每一個請求,返回被請求的信息。

  在PC上,Windows執行檢測工作,所以不涉及用戶編程的問題。然而,爲了完成檢測工作,Windows必須有兩個可用的文件:一個識別這個設備驅動程序的文件名和位置的INF文件和設備驅動程序本身,如果您的項目符合某種通用設備類,則操作系統可能已經提供了此類設備的所需的這兩個文件,而不需要開發人員自己提供。

  根據設備以及設備將被如何使用,設備驅動可能是如下兩者之一;Wlndows自帶的或芯片或外設廠商提供的。INF文件是一個文本文件,通常你可以對驅動提供考提供例子,稍加修改就可以得到了。

應用通信

  在主机已经与设备交换了检测信息并且设备驱动已经被分配并载入后,應用通信过程可以非常顺利地进行下去了。在主机上,应用程序可以使用标准Windows API功能来读和写设备。在外设上,传输数据通常需要把要发送的数据放在USB控制器的传输缓冲器中,当一个硬件中断发出数据已经到达的信号时从接收缓冲器中读取接收到的数据,并且在完成传输时确保外设准备好下一次传输。

主機與設備建立通信的過程

  主機端的USB集線器監視著它的每個端口的信號線的電壓,當USB設備插入主機時,信號線的電平會發生變化,此時主機知道有新設備插入了。

  當主機檢測到設備的插入後會首選重啓這個設備,接著主機發出Get_Port_Status請求來驗證設備是否已經重啓,設備重啓後主機通過檢測根信號線的電平狀態判斷設備的速度。

  主機發送第一次Get_Descriptor(wValue字段的高字節爲0x01,表示設備描述符)請求取得設備描述符,設備描述符提供了設備的多種信息,包括:設備通訊終端0的最大包的大小,設備支持的配置號以及有關這個設備的其它信息,主機通過對這些信息的分析以確定接下來的通信動作。

  設備描述符裏規定了設備一個或多個配置描述符,主機再次或多次發出Get_Descriptor(wValue字段的高字節爲0x02,表示配置描述符)指令來讀取這些配置描述符,第一次只讀出配置描述符的前9個字節,這9個字節裏包含了配置描述符和它的所有從屬描述符(接口描述符、端點描述符)的總長度,然後主機根據這個長度讀出設備的所有配置描述符(當然包括其所有從屬描述符)。

  在读取完配置描述符后,若之间读取的设置描述中指定了相关字符串描述符(用来描述厂商、産品和设备序列号信息的)的索引,主机将发出若干次Get_Descriptor(wValue字段的高字节为0x03,表示字符串描述符)命令来获得这些字符串描述,此时主机将会弹出窗口,展示发现新设备的信息,产商、産品描述、型号等。

  在主機已經從它的描述符中知道了能夠知道的所有信息後,便開始爲這個設備安裝驅動程序。

  加載了USB設備驅動以後,主機發送Set_Configuration命令請求爲該設備選擇一個合適的配置。

  至此,USB枚舉過程結束,設備可以正常使用了。

 
 
 
本站程序由百合電子工作室開發和維護
Copyright @ baihe electric studio
渝ICP備09006681號-4