USB完全に理解したー通信仕様とコントローラ編ー[74TH-B016]
- 紙+PDF(送料200円)¥ 650
- PDF¥ 500
私74thがマイコンでUSBデバイスを作れるようになるために、必要と考えられる知識をまとめたものになります。 そもそもUSBの通信とはどのようなプロトコルなのかを理解し、マイコンに備わるUSBコントローラの機能を解説し、HIDキーボードなどの応用デバイスを実装できるライブラリTinyUSBの使い方に進んでいきます。 下層から順序よく理解していくことで、よりありふれたプロトコルであるUSBを理解した状態で、USBデバイスが実装できるようになるのではと思いました。 ハードウェアの実装をしない、ソフトウェアエンジニアであっても、この層状のプロトコルとアーキテクチャを順番に理解していくプロセスは楽しめるのではないかと思っています。
目次
1. USB通信のプロトコル - 通信の仕様の全体像 - 物理層 - パケットとトランザクション - 転送モード 2. ホストとの通信の開始とディスクリプタ - アプリケーションの通信が始まるまでの手順 - ホストからデバイスにアドレスを通知する - ディスクリプタとは - ディスクリプタの項目 3. マイコン持つUSBコントローラの機能 - RP2040マイコンが持っている機能 - コントロール転送でのファームウェアの役割 - RP2040でファームウェア側がしなければならないこと 4. USBライブラリTinyUSBの役割と、利用 - TinyUSBとは - TinyUSBの設定の追加 - TinyUSBを使うためのmain関数への追加 - ディスクリプタの設定 - デバイスクラスAPIを利用する - カスタムプロトコルのデバイスを実装する
説明に利用するもの
ディスクリプタの説明には、HIDキーボードを例に説明します。 USBコントローラの説明には、RP2040を例に説明します。 TinyUSBでの実装の説明には、HIDキーボードの実装を例に説明します。
正誤表
内容に一部誤りがあり、正誤表を出しております。 https://docs.google.com/spreadsheets/d/1a9kPmwudlfPJB3UThdzPHL19kOpqKOuFq7G5yLNm6y4/edit?usp=sharing 現在ダウンロードできるPDFは修正後のものになります。 ご迷惑おかけしますがよろしくお願いします。