[[nishino]] *USBホストドライバの開発 [#c2daad13] USBホストドライバの開発をSH7262上で行います。 他のUSBホストコントローラ付きのヤツでも参考になれば……いいな。 **参考 [#t56ece1f] 公式 ・[[USB.org:http://www.usb.org/home]] 参考サイト ・[[H8/3069F で USB:http://www.ehdo.go.jp/toyama/college/ka/apit/usblue.html]] ・[[Enjoy CQ-SH7262:http://sourceforge.jp/projects/enjoy-cq-sh7262/]] 参考書籍 ・[[組込み機器へのUSBホスト実装 Interface編集部 編:http://www.cqpub.co.jp/hanbai/books/49/49941.htm]] **用語注意 [#j1b87c29] USBホストスタック=USBホストプロトコルスタック 通信のためのプロトコルスイートを何故かプロトコルスタックと呼ぶ。 USBホストプロトコルスタックと書いてあれば、USBホストがデバイスと通信できるようにするための機能が実装されてるんだな、と考えればおk。 めんどいので、取り敢えずはUSBホストスタック≒USBホストドライバという認識で可。 USBホストスタックって書いたほうがいいんじゃないの?と思われる場所もこの記事ではUSBホストドライバと書いてます。 **USB開発に必要なスキル&知識 [#o12ebc97] 【最低限必要なモノ】 ・C言語の知識 ・コードを書きまくっても折れない心 ・[[SEC BOOKS:http://sec.ipa.go.jp/publish/index.html]] 【USBの概要】 [[Wikipedia-USB:http://ja.wikipedia.org/wiki/Universal_Serial_Bus]](微妙) [[ルネサスのUSB解説のページ:http://www2.renesas.com/usb/ja/about_usb/index.html]] [[Fujitsu技術解説(USB):http://jp.fujitsu.com/microelectronics/technical/usb/]] [[Wikipedia(USB):http://ja.wikipedia.org/wiki/Universal_Serial_Bus]](微妙) [[Fujitsu技術解説(USB):http://jp.fujitsu.com/microelectronics/technical/usb/]] [[ルネサス(USBとは):http://www2.renesas.com/usb/ja/about_usb/index.html]] 【ハードウェアについて】 ・ハードウェア固有の特性や構造の違い(通信モード, 通信パイプの種類, DMA, SOF・転送スケジューリングパケット, HUB くらいは概要を確認しておく) ・USBホストを使用する際のレジスタ設定 ・USBホストコントローラの通信方式(OHCI, UHCI, EHCI, ベンダ独自) 【ソフトウェアについて】 ・USBホストドライバの実装に必要な関数やデータの構造体がぼんやり浮かぶ ・ホストとデバイス間でやり取りする情報の中身 ・分からないコードは「おまじない」で済ませる諦め 仕様書ぐらい見よう。 **実装手順 [#w21e33a1] 大雑把に言うと 1.USBホストドライバを作成 2.クラスドライバを作成 基本的にUSBホストの通信は何かと面倒臭いので [[TOPPERS/ASP:http://www.toppers.jp/asp-kernel.html]]上にホスト機能を実装します。これで多少はクラスドライバの移植が楽になります。 BT用のクラスドライバの実装は「H8/3069FでUSB」を参考にBluzを移植。 **開発環境 [#s600d9c4] **初めの一歩 [#n36ac3e3] **USB Protocol Analyzerなしでデータを解析する方法 [#gf8fd184] **魔法の言葉”根性” [#sa0184d4] IP:116.82.129.248 TIME:"2010-12-21 (火) 04:08:47" REFERER:"http://merl.ec.t.kanazawa-u.ac.jp/micon-bu/index.php?cmd=edit&page=nishino%2Fusb-host" USER_AGENT:"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10"