LINE2020.01.08USBの波形をロジアナで解析してみました。D±の波形、また測定動画含めて紹介します。USB2.0や3.0の高速信号の測定では差動プローブ・専用機器が必要ですが、Low-speed(1.5Mbps)ならば個人の環境で対応可能でした。Aliveが確認できるUSBのLow-speedの最大転送速度(1.5Mbps)を確認するUSBパケットのSOPからEOPまでを確認するUSBのSYNCを確認するUSBのPIDを確認するUSBのADDRとENDPとCRCを確認するまとめUSBの波形を測定!D+とD-をロジックアナライザで解析してみたUSBのLow-Speed(1.5Mbps)ならば個人的な環境で十分にロジアナで解析できます。Packet)まで確認できています。PC-マウス間のUSB信号のD±を取り出してロジアナで確認しました。USB2.0やUSB3.0の高速信号は難しいですが、Low-Speed(1.5Mbps)を確認するだけでも十分にUSBの勉強になります。分かりやすいように動画でもまとめてみました。した波形の詳細を紹介していきます。USBの規格を確認して測定可能なデバイスを探すUSBといえば「USBメモリ」「USBキーボード」「USBハードディスク」など身近にいくらでもあります。最近はUSB2.0やUSB3.0の規格が主流です。信号速度も高速になっています。Speedモードは最大転送速度_5.0Gbps)高速の差動信号を測定しようとすると差動プローブや専用機器が必要です。個人的な環境では難しいと思われます。(筆者の趣味のロジアナの最大サンプリングは最大12MHzです。Speedの5Gbps」の高速なUSB信号は筆者の環境では測定できません。Low-speedの1.5Gbpsならば測定可能しかし、高速の信号を測定できなくともUSBの解析は可能です。USB2.0、USB3.0含めて「Low-speed」というモードが規格が定められています、現在でも多くの箇所で使われています。マウス・キーボードのような高速な転送速度が必要ないデバイスは「Low-speed」で対応しています。(USB2.0や3.0の通信している高機能なマウス・キーボードもあると思いますが、そこは省略します)「Low-speed」はUSBのモードでも一番遅く、最大転送速度は1.5Mbpsです。1.5Mbps程度ならば個人的なロジアナでも十分に測定可能です。以前にUSB以外のシリアル通信のUART(転送速度115200bps)も測定しました。その際の下記記事もよろしければ参考ください。Pythonでserial(シリアル)通信!Read/Writeの波形を見てみたuartのシリアル通信でRead/Write・ボーレート変更時の波形をアナライザで確認しました。piでテストして測定動画を撮っており、シリアル通信の使い方・基礎を確認したい方におすすめです。以前...misoji-engineer.com2019.05.12USBの規格書はダウンロード可能もし「USB」について本格的に勉強したい方は規格書を読めばどれだけでも勉強可能です。規格書はUSBの規格団体から自由に個人でもダウンロードできます。リンク先はこちらから※実際に波形を見て勉強したい方もいると思います(主に筆者ですが...)。そのため今回は実際に測定してみました。USB4.0の規格書もダウンロードできます最新のUSB4.0はコネクタはType-Cで最大転送速度が40Gbpsという高速信号になっています。興味ある方は規格書をダウンロードして詳細を確認してみてください。リンク先はこちらからUSB波形の解析ならオシロスコープよりロジアナ今回はUSBの信号の中身(プロトコル)を解析したいという目的ですのでロジアナを使用します。信号特性(DC特性・AC特性)を確認したいのであれば、オシロスコープが必要です。ロジックアナライザの購入は個人でも可能です趣味のロジックアナライザ(ロジアナ)は簡単に購入できます最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。(※値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですので少し手間がかかる思います)数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。[並行輸入品]HiLetgoAmazonの商品レビュー・口コミを見るAmazonUSB通信のプロトコルを解析するマウスのUSB信号を引き出してロジアナでプロトコルを解析する準備をしていきます。今回は「Low-speed(1.5Mbps)の遅い通信速度」かつ「個人的なデバッグ」のためジャンパー接続していきます。※冒頭にも記載しましたがUSBを波形を正確に測定するには差動プローブや専用機器が必要になります。USBのケーブルからD+とD-とGNDを引き出す最初にUSBケーブルをワイヤーストリッパーで被膜を剥きます。USBケーブルの一番外の被膜だけ剥がすと「電源_赤」「GND_黒」「D+_緑」「D-_白」の信号線が確認できます。USB信号である「D+_緑」「D-_白」とグランドの「GND_黒」の被膜をさらに剥いてロジアナと接続します。USBのロジアナの設定をするロジアナについては各装置・ソフトで設定方法が違いますので、筆者の環境を簡単に説明します。ロジアナのソフトを起動してUSBの設定にします。(筆者のソフトは「sigrok」です)「D+」と「D-」にどの信号Chを使っているかを設定します。あとはサンプリングとレコード長を設定しておきます。samples」にしました。50M/12M=約4秒分のUSB通信のデータが取れます。後はマウスとPCを繋げれば接続・設定が終了しますので、測定すれば波形が取れます。USB通信の基礎を波形から学ぶUSB通信の中身を測定した波形から勉強していきます。USBのプロトコルを学ぶ上で非常に参考になったのは下記3記事です。この場を借りて御礼申し上げます。SimpleUSBの通信プロトコルUSBフルスピード信号波形USBのプロトコルの全ては紹介できないので、Low-speedの基礎的なことを紹介していきます。最初に紹介した動画を再度下記にも載せておきます。解析の流れ含めて分かりますのでぜひ一緒にご覧ください。詳細を確認したい場合は紹介したサイト、もしくはUSBの仕様書をご確認お願いします。USBのLow-speedはD-がプルアップされているUSBのLow-speed(1.5Mbps)は「D-」が1.5kΩでプルアップされています。今回はデバイスのマウス内でプルアップされます。回路構成は下記となっています。※Hi-speed(12Mbps)では「D+」が1.5kΩでプルアップする形になります。alive」と言って1ms事にデバイスが接続していることを示す信号です。alive」信号がないとデバイスが接続されていないと判断され、サスペンド(一時停止))されてしまいます。USBのLow-speedの最大転送速度(1.5Mbps)を確認するUSBのLow-speedの最大転送速度1.5Mbpsを波形から確認しました。1bit当たり1/1.5M=667nsを確認できましたので問題有りませんでした。12MHzのサンプリングのため1bit当たり8個サンプルが取れています。Packet)と呼ばれています。Packet)はアイドル状態からK状態になったタイミングを示します。Packet)は「SE0」が2bit以上のタイミング(その後にJ状態1bit)です。両方ともLowに落ちている時です。USBのSYNCを確認するパケットの最初に同期をとるためのデータ「SYNC」があります。測定したSYNC箇所のデータを確認すると「00000001」ということが分かりますUSBのPIDを確認するSYNCの後にはパケットの種類のデータ「PID」があります。Identifier)※PIDの詳細は今回は省略させてください。ここ説明し始めるとパケットの種類全て説明する必要があるため...PIDは「前半4bit」+「後半(反転した)4bit」の8bit構成となっています。今回は「10010110」ですのでPIDは「1001」の4bitとなり「INパケット」と分かります。パケットの種類がINということはデータをホストへ転送するパケットです。USBのADDRとENDPとCRCを確認するPIDの後ろの中身はPIDの種類によって変わってきますので概略だけの説明にします。今回はINパケットのため「ADDR」「ENDP」「CRC」となります。Packet)となります。省略した形になりますがUSBのパケットを紹介することができましたまとめUSBをロジアナで測定、その後にパケットの中身を確認しながらプロトコルを勉強することができました。USB通信の基礎ならばLow-speedでも十分に勉強できます。piで産業・業務利用の使い方をまとめてみました。センサー、カメラ、プログラミングと多くのことがラズパイ1台で可能です。仕事でも使えて、自分自身の勉強にもなる活用方法を具体的に紹介します。未経験で社会人である筆者がPythonと機械学習を学ぶにあたって「今回の勉強方法はかなり実用的かつ効率的!」と強く実感した内容でしたので紹介したいと思います。普段全く英語を使わない筆者ですが、約10年ぶりにTOEICを受けて600点取れました。勉強期間は2週間でした。簡単にアナライザでSPI通信でのを確認するまでの手順を紹介しています。「自分でSPI...PLC(シーケンサ)三菱PLC(シーケンサ)とMiniUSB(B)で接続・通信するどうもミソジです。簡単にI2C通信でのACK,NACKを確認するまでの手順を紹介しています。「自分でI2...PythonPythonでserial(シリアル)通信!Read/Writeの波形を見てみたuartのシリアル通信でRead/Write・ボーレート変更時の波形をアナライザで確認しました。piでテストして測定動画を撮っており、シリアル通信の使い方・基礎を確認したい方におすすめです。RS232CとUART通信の差を比較するまでの手順を紹介しています。簡単にアナライザでSDカードでの波形を確認するまでの手順を紹介しています。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。電源プライバシーポリシープライバシーポリシーはこちらからアーカイブ2020年2月2020年1月2019年12月2019年11月2019年9月2019年8月2019年7月2019年6月2019年5月2019年4月2019年3月2019年2月2019年1月2018年12月2018年11月2018年10月2018年9月2018年8月2018年7月2018年6月2018年5月2018年4月2018年3月2018年2月2018年1月2017年12月2017年10月2017年9月スポンサーリンク。