シリアルポートテストの最も一般的なタイプは、おそらくループバックテストです。ポートの出力ピンを入力ピン(TX-> RX、RTS-> CTSなど)に接続するテストフィクスチャを作成します。すべての出力ピンに一致する入力ピンがない場合は、3方向接続を行う必要があります。
ループバックを作成したら、ピンを実行するソフトウェアを作成する必要があります。TXとRXが接続されている場合は、バイトを送信して、それがエコーバックされたことを確認できます。コントロールピンについては、それらを切り替えて、接続の反対側でトランジションが見られることを確認します。 シリアルポートのすべてのピンを実行するようにしてください。
TX->RXデータループバックを複数のボーレートで実行する必要があることに注意してください。 より高いボーレートでのみ現れるデザインにシグナルインテグリティの問題がある可能性があります。また、より高いボーレートでインダクタンスと静電容量によってマスクされたボード上の信号接続が不良である可能性もあります。したがって、最も遅いボーレート、最も速いボーレート、および途中で1-2でデータループバックを実行することをお勧めします。
あなたがしなければならないもう一つのことは、ボーレート精度テストです。これにより、UARTを駆動するクロックが適切な周波数で動作し、適切に分割されていることが証明されます。Xバイトを特定のボーレートで送信し、予想される時間内に到着したことを確認します。正確な数値を取得するには、OSシリアルポートドライバーのバッファリングをバイパスし(たとえば、ダイレクトレジスタI / Oを使用)、スタート/ストップビットのオーバーヘッドに対応する必要があります(以下のコメントを参照)。
ただし、ループバックテストは網羅的ではありません。 デバイスがそれ自体と通信できることを証明するだけです。デバイスには、ローカルで検出できない欠陥(電圧レベルなど)がまだある可能性があります。したがって、外部ハードウェアを使用していくつかのテストも実行する必要があります。ボードを別のシステムにケーブル接続し、テストを実行します(例:minicomを使用)。彼らがお互いに話すことができることを確認してください。
外部のコミュニケーションテストでさえ、何かを見逃す可能性があります。 ボードからの信号品質はまだ低い可能性がありますが、他のデバイスには十分です。 信号品質/タイミングを正確に検証するには、オシロスコープが必要です。
通信テストの実行中に、スコーププローブをさまざまな信号に接続し、シグナルインテグリティを確認します。電圧レベルが有効であること、クリーンなロー/ハイビット遷移が見られること、およびデータピンのタイミングが指定されたボーレートに対して正しいように見えることを確認してください。(スコープは、前述のソフトウェアベースの方法よりもボーレートを測定するためのより正確な方法です。)