2013年8月30日 星期五

USB不能做什麼
1.介面限制;傳送距離、P2P及Broadcasting.

對於開發者的挑戰
 有傳輸協定的複雜度、OS對應用的支援;取得Vendor ID.

複雜度,一個usb device需要回應命令及介面上事件的處理。控制器晶片對韌体的支援不相同。而在裝置的設計和程式需要知道usb傳輸協定是如何在介面上交換資料.在pc host中的application 無須知底層硬体介面協定.driver仍需知其usb傳輸協定.

usb是個分享式介面,有其規制的傳輸介面,os不允許AP直接存取usb device.

OS支援;
需內建device class driver.

Vendor ID: 需要向usb if取得Vendor ID and product ID.

術語(terminology);
機能(function);
一個裝置可以有一或多個機能。host可讀取device descriptor and interface descriptor來獲得裝置所有的功能.描述表格descriptor包含裝置的相關資料結構。

device;
實体產品。host 會對各個device給一個唯一的位址。而對於compound device(hub +device)分別個有一個。composite device則共有一個介面位址。

port;
可以被定址的位置.

主機的作業;
  1. 偵測device;列舉,enumeration. 決定其傳送速度、位址並送出額外的資訊.
  2. 管理資料流;因為可能有多個device同時傳收資料故主機需分配其顏宽。而usb2只有半雙工;而usb 3為全雙工.
  3. 錯誤檢驗;由裝置送來的資料可由host來檢驗.
  4. 電源提供及管理.
  5. 與裝置交換資料.
裝置的作業;
  1. 針對晶片偵測通信;位址檢查後,去做回應.
  2. 對標準命令回應;
  3. 錯誤檢查
  4. 電源管理
  5. 與主機交換資料.

沒有留言:

張貼留言