シリアル通信インターフェイス (SCI) は、一般的には UART と呼ばれる 2 線式非同期シリアル・ポートです。SCI モジュールは、CPU と、標準 NRZ (non-return-to-zero) フォーマットを使用する他の非同期ペリフェラルとの間のデジタル通信をサポートします。
SCI のレシーバおよびトランスミッタは、処理オーバーヘッドを削減するための 16 段 FIFO を備えており、それぞれ独自のイネーブル・ビットと割り込みビットがあります。どちらも、半二重通信用に独立して動作するか、または全二重通信用に同時に動作できます。データの整合性を確保するために、SCI は、受信データの破損検出、パリティ、オーバーラン、およびフレーミングエラーをチェックします。ビット・レートは、16 ビットのボー選択レジスタにより、さまざまな速度にプログラム可能です。機能ブロック図を 図 6-71 に示します。
SCI モジュールには次のような特長があります。
- 2 本の外部ピン:
- データ・ワード・フォーマット
- 1 スタート・ビット
- データ・ワード (1~8 ビットの範囲でワード長をプログラム可能)
- パリティ・ビット (偶数 / 奇数 / なしを選択可能)
- 1 または 2 ストップ・ビット
- 4 つのエラー検出フラグ:パリティ、オーバーラン、フレーミング、ブレーク検出
- 2 つのウェークアップ・マルチプロセッサ・モード:アイドル・ラインおよびアドレス・ビット
- 半二重または全二重動作
- ダブル・バッファ付きの受信および送信機能
- トランスミッタおよびレシーバの動作は、割り込み駆動、またはステータス・フラグのポーリング・アルゴリズムによって実現できます。
- トランスミッタ:TXRDY フラグ (送信バッファ・レジスタは次の文字の受信準備完了) および TX EMPTY フラグ (送信シフト・レジスタは空)
- レシーバRXRDY フラグ (受信バッファ・レジスタは次の文字の受信準備完了)、BRKDT フラグ (ブレーク条件発生)、RX ERROR フラグ (4 つの割り込み条件の監視)
- トランスミッタおよびレシーバの割り込み用に個別のイネーブル・ビット (BRKDT を除く)
- NRZ フォーマット
- 自動ボー検出ハードウェア・ロジック
- 16 レベルの送信および受信 FIFO
注: このモジュールのすべてのレジスタは、8 ビット・レジスタです。レジスタにアクセスすると、レジスタ・データは下位バイト (ビット7 ~ 0) になり、上位バイト (ビット15 ~ 8) はゼロとして読み取られます。上位バイトへの書き込みは、何も影響がありません。
全二重動作で使用される主な要素は次のとおりです。
- トランスミッタ (TX) とその主要なレジスタ:
- SCITXBUF レジスタ – 送信データ・バッファ・レジスタ。送信するデータ (CPU によってロードされる) が入っています
- TXSHF レジスタ – 送信シフト・レジスタ。SCITXBUF レジスタからデータを受け取って、データを一度に 1 ビットずつシフトして SCITXD ピンに出力します
- レシーバ (RX) とその主要なレジスタ:
- RXSHF レジスタ – 受信シフト・レジスタ。データを SCIRXDピン から 1 ビットずつシフトして受け入れます
- SCIRXBUF レジスタ – 受信データ・バッファ・レジスタ。このデータを CPU が 読み取ります。リモート・プロセッサからのデータは RXSHF レジスタにロードされ、次に SCIRXBUF レジスタおよび SCIRXEMU レジスタにロードされます
- プログラム可能なボー・ジェネレータ
- データ・メモリにマップされた制御レジスタおよびステータス・レジスタにより、CPU は I2C モジュールのレジスタと FIFO にアクセスできます。
SCI レシーバとトランスミッタは、独立して動作します。