どうもミソジです。

今回は筆者が持っているラズベリーパイとPCをUART接続してUART通信のシリアル波形をアナライザで解析してみた」を紹介します

簡単にアナライザでUART通信でのを確認するまでの手順を紹介しています。
「自分でUARTを色々解析してみたい!」という方におススメな記事となっています

過去記事の「I2CのACKとNACKの波形を見てみる」でI2Cでも同様に解析しましたので、I2Cのことも調べたいという方はこちらからどうぞ
sP_20180512_095551.jpg

目次
1.ラズベリーパイとUART接続をしてみる
2.アナライザを用意する
3.アナライザを使ってUARTの波形を確認する
4.CR含めてデータを見てみる
5.まとめ・感想

1.ラズベリーパイとUART接続をしてみる
まずはUART通信環境をラズベリーパイを使って作っていきます。

ラズベリーパイとPCをUART接続の動かし方は何も設定しなくても可能です。非常に簡単です。

実際につなげた写真がこちらとなります。
「ラズベリーパイ」「UART-USB変換モジュール」PCを接続しています。

sP_20180814_064517.jpg

ラズベリーパイの接続も簡単で下記4本(5V,GND,TX,RX)をそのままピンに差し込むだけでUART接続が可能です

※赤_5Vに関してはラズベリーパイ側の電源を使うならば接続しなくても大丈夫です)
sP_20180814_113943.jpg



筆者のは少し型が古いラズベリーパイですが、UARTをつなぐのは新旧ともに簡単にできます。

URT-USB変換モジュールは下記製品を使っています。

回路図的には下記の形になります。「5V」「GND」「TX」「RX」繋げるだけです

点線箇所のUART-USB変換IC(PC)は必要箇所だけ切り取った概要のブロック図となっています。(20180814時点での参考データシートはこちらから)
UART10.PNG
※1_ラズベリーパイのGPIOピン配置は新しい型に合わせています
※2_GND配線が見やすさ優先したため実配線箇所と異なっています
※3_TXD,RXD配線名はPC側視点で書いています

そしてPCからコンソール接続するソフト「Tereterm」を起動していきます
UART11.PNG
※Teretermの詳細に関してはググってもらえればすぐダウンロードサイトが出てきますので省略します。ダウンロードすればすぐに使えます


下記がTeretermを動かした際の手順です。
①UART-USB変換モジュールをPCのUSBポートに挿す。ドライバが自動的にインストールされます

※WindowsのVerによっては手動でドライバをインストール必要があるようです。(筆者のは「7」です)ググれば直ぐに手順が分かる記事が沢山ありますので省略します
UART1.PNG
②最初の選択でシリアルを選択して、UART-USB変換のポートを選択します
 UART3.PNG
③設定⇒ボーレートで115200を選択します。
※ボーレートというのは通信速度のことでラズベリーパイのデフォルト設定は115200となっていると思います。
UART5.PNG

④「Enter」を押してみましょう。ログイン画面が出てきます(もし電源投入時は初期のカーネルログが出てくると思います。)これで無事UART通信ができました。
UART2.PNG

アナライザを使って④の箇所のUART波形を次章から紹介してきたいと思います

2.アナライザを用意する
今回はUARTの「TX」「RX」を見ますのでアナライザを使って確認していきます。

最近はI2CやSPIなど数MHz,数十MHz程度の解析するアナライザが1000円足らずで買えます。

筆者は色々触りたかったのでモジュール化されていないアナライザの開発ボードを買いました。

(値段は一番安く多くのピンで遊べますが、EEPROMなどの設定が必要ですのでマイコン初心者は少し難しいかもしれません)
sP_20171104_120005.jpg

本当にマイコン(サイプレス製CY7C68013A)が載っているだけのボードです。PCとUSB経由で接続して解析することができます。詳細は下記になります
MiniUSBケーブルとジャンパーワイヤは別で購入が必要です



但し数百円の差ですので下記のようなモジュールになっているアナライザを買った方が直ぐに測定できて楽できるかと思います。

PCとUSB接続してI2C,UART,SPIなど多くの通信を解析できます。
USBケーブル、ジャンパーワイヤまで付いてきますので単に解析するだけならば筆者的には下記をおススメします





「スポンサーリンク」


3.アナライザを使ってUARTの波形を確認する

最初の配線より少し手間になりますがアナライザにも配線する必要がありますので下記のようにブレッドボードで中継していきます
sP_20180814_070631.jpg

アナライザを使って「TX」「RX」の箇所に接続します。そしてEnter押してラズベリーパイのログイン画面を表示した波形を確認します。
UART2.PNG

実際に回路図ベースでイメージすると下記のような手順になります

①URT-USB変換モジュール(PC)側から「Enter」のキー入力がラズベリーパイ側に送信されます

②ラズベリーパイ側からログイン画面の表示がUART-USB変換モジュールに送信されます

UART10.PNG

そして実際にとれた波形の一部が下記です。無事「TX」「RX」の波形を取れました。(この波形では①②の全体波形を示しています)
※TX,RXは上記回路図の信号シンボル通りUSB-UART変換モジュール側の視点です
 UART12.PNG

これだけだと何のデータか分からないので解析の設定でUARTを選択します
正しい波形が取れていれば勝手に解析をしてくれます
UART13.PNG

これで、無事アナライザでUARTの解析ができました。
下記のように各bit、[Start bit][Stop bit]のデータが視覚的に分かるようになります。

UART16.PNG

では次の章からUART解析した結果を詳細に確認してきます

4.CR含めてデータを見てみる
では今回のUART波形を詳細に見ていきたいと思いますが、今回はASCII文字コード表を見ながら確認していきます。

下記①②の送信内容はすべてASCII文字で明確にできます(ASCII文字とググればいろんなサイトが出てきます)

UART14.PNG

ではまず①から詳細に見ています

①「Enter」のキー入力

まず今回の設定「Enter」キー入力はASCII文字でいうと改行「CR」という意味で送信されています。

ASCII表をみると「CR」は16進表記で「0x0d」になっており、今回の波形でも「0x0d」=「CR」の信号がTXから送信されているので問題ありません。
UART16.PNG


①'「CR」+「LF」にするには
少し余談になりますが「「CR」に加えて「LF」も送りたい!」送りたい方がいればTertermの設定で変更できます。(「LF」についての詳細の説明は省略させてください)
UART8.PNG

例えば送信設定を「CR+LF」変更すると下記のように先ほど波形に加えて「0x0d」=「LF」が追加されてTXから送信されます
UART18.PNG

「スポンサーリンク」



②ログインの画面表示
①のキー入力が済んだあとに②のログイン画面が表示されますが、これを4段階に分けてみます
「②-1_改行する」
「②-2_「Rasp・・・」文字表示」
「②-3_2回改行する」
「②-4_「rasp・・・」文字表示」

UART2.PNG

波形のタイミングとしては下記になります。RXの信号を個別に見ていきます。

UART14.PNG


②-1_改行する
ラズベリ-パイ側から「CR」+「LF」の信号がUARTのRXを経由して出力されており問題無しです。

連続するデータだと各8bitおきに[Start bit]と[Stop bit]があることがよく分かります
UART19.PNG


②-2_「Rasp・・・」文字表示
改行された後はOS名の「Raspbian・・・」と表示されます。

UART波形を全部表示すると文字数分の8bitデータが並ぶ形になります。下記のように分かりづらいです
UART20.PNG

そのため最初の5文字だけをアップします
UART21.PNG

ラズベリーパイ側からUARTを通じて出力されたデータは[0x52][0x61][0x73][0x70][0x62]でASCIIの16進より文字に直すと[R][a][s][p][b]となります。

無事文字のデータが送られてきていることが解析できました


②-3_2回改行する
②-2で示したOS名の表示列の[・・・ttyAMA0]最後の[0x30_0]後に[0x0d_CR][0x0A_LF]の改行が2回連続でラズベリーパイから出力されています

UART22.PNG

②-4_2回改行する
2回改行の後はログインの「raspberry login:」が表示がされます。

下記の波形を確認するとASCII16進表示[72 61 73 70 62 65 72 72 79 70 69 20 6C 6F 67 69 6E 3A 20]ですので無事問題なく解析できています
UART23.PNG

5.まとめ・感想
どうでしたでしょうか、最近では1000円足らずでUARTを測定・解析することができます。
前回記事のI2C・SPIと同様にUARTでも波形解析を行うことが問題なく可能です。

データシート見て確認するのもいいですが、やはり実物の波形見ることでよりUARTの理解が深まると思います。よろしければ皆様もアナライザを購入して確認してみてください

今日はここまでにしたいと思います
どうもありがとうございました

<<20180818追記>>
UARTとは別にRS232CのTX,RX波形を見てみた記事をアップしました。

RS232CとUARTの違いをアナライザで確認してみた
リンク先はこちらからです。よろしければこちらもご確認ください
sP_20180817_160414.jpg


1000円足らずでアナライザが購入できます
HiLetgo 24MHz 8チャンネル USBロジックアナライザ 8CHロジックアナライザ UART IIC SPI デバッグ MCU FPGA ARMに対応 [並行輸入品]
HiLetgo






ラズベリーパイで簡単にSPI通信ができます。