• 検索結果がありません。

非同期受信

ドキュメント内 mega88A.pdf (ページ 119-122)

PIND 6 PIND 5 PIND 4 PIND 3 PIND 2 PIND 1

20. USART

20.8. 非同期受信

ATmega48A/48PA/88A/88PA/168A/168PA/328/328P [データシート] 120 20.8.3. 非同期での動作範囲

受信部の動作範囲は受信したビット速度と内部的に生成したボーレート間の不一致に依存します。送信部が速すぎるまたは遅すぎるビッ ト速度でフレームを送出したり、内部的に発生した受信部のボーレートが類似した(表20-2.参照)基準周波数を持たない場合、受信部は開 始ビットでフレームを同期できません。

次式は到着データ速度と内部受信部ボーレート間の比率計算に使用できます。

Rslow = (D + 1)×S

S - 1 + D×S + SF Rfast = (D + 2)×S (D + 1)×S + SM D : データとパリティのビット数 (5~10)

S : ビットあたりの採取数 (標準速=16、倍速=8)

SF : 多数決に使用する最初の採取番号 (標準速=8、倍速=4) SM : 多数決に使用する中心の採取番号 (標準速=9、倍速=5)

Rslow : は受信側ボーレートに対して許容できる最低受信ビット速度の比率です。

Rfast : は受信側ボーレートに対して許容できる最高受信ビット速度の比率です。

表20-2.は許容できる最大受信部ボーレート誤差一覧です。標準速動作には、より高いボーレート変動許容力があることに注目してくださ い。

表20-2. 標準速と倍速での受信部ボーレート推奨最大許容誤差

D 推奨許容誤差(%)

5 ±3.0

±2.5 総合許容誤差(%)

-6.80~+6.67 7

-5.88~+5.79

±2.0 -5.19~+5.11

±2.0 -4.54~+4.58

Rslow(%) 93.20 94.12 94.81 95.36

注: Dはデータ ビット数とパリティ ビットの合計ビット数です。

(訳注) 原書は表20-2.に標準速、表20-3.に倍速を記載していますが、比較が容易なように表20-2.として纏めました。

6 8

Rfast(%) 106.67 105.79 105.11 104.58

推奨許容誤差(%)

±2.5 総合許容誤差(%)

-5.88~+5.66 Rslow(%)

94.12

Rfast(%) 105.66

標準速動作 (U2Xn=0) 倍速動作 (U2Xn=1)

9 -4.19~+4.14 ±1.5

±1.5 -3.83~+3.78

95.81 96.17 10

104.14 103.78

±2.0 -5.08~+4.92

94.92 104.92

±1.5 -4.48~+4.35

95.52 104.35

±1.5 -4.00~+3.90

96.00 103.90

±1.5 -3.61~+3.53

96.39 103.53

±1.0 -3.30~+3.23

96.70 103.23

受信部ボーレートの推奨最大許容誤差は最大総合許容誤差を送信部と受信部で等分割するという仮定の元で作られました。

受信部ボーレート誤差に対して2つの起こり得る原因があります。受信部のシステム クロック(XTAL)は供給電圧範囲と温度範囲に関して常 に若干の不安定性があります。システム クロックを生成するのにクリスタル発振子を使用する時は殆ど問題ありませんが、(セラミック)振動子で のシステム クロックは振動子偏差に依存して2%を越えて異なるかもしれません。2つ目の誤り原因はより制御可能です。ボーレート発振器は 欲したボーレートを得るためにシステム周波数の正確な分周を常に行うことはできません。この場合、可能ならば受け入れ可能な低い誤 差を与えるUBRRn値が使用できます。

20.9. 複数プロセッサ通信動作

USART制御/状態レジスタA(UCSRnA)での複数プロセッサ通信動作(MPCMn)ビットの設定(1)はUSART受信部によって受信された到着フ レームの選別機能を許可します。アドレス情報を含まないフレームは無視され、受信緩衝部に格納されません。これは同一直列バス経由で 通信する複数MCUのシステムで、CPUによって扱われなければならない到着フレーム数を効果的に減らします。送信部はMPCMnビット設 定によって影響されませんが、複数プロセッサ通信動作を利用するシステムの一部の時は違うふうに使用されなければなりません。

受信部が5~8データ ビットを含むフレームを受信するように設定されるなら、最初の停止ビットはデータまたはアドレス情報を含むフレームかどう かを示します。受信部が9データ ビットのフレームに設定されるなら、USART制御/状態レジスタB(UCSRnB)の受信第9(RXB8n)ビットがアドレス とデータのフレームを識別するのに使用されます。フレーム種別(最初の停止または第9)ビットが1の時にフレームはアドレスを含みます。フレーム種 別ビットが0の時にそのフレームはデータ フレームです。

複数プロセッサ通信動作は主MCUからのデータを多くの従MCUで受信することを可能にします。これはどのMCUがアドレス指定されるか を検出するため、最初にアドレス フレームを調べることによって行われます。特定の従MCUがアドレス指定されたなら、そのMCUは後続す るデータ フレームを通常のように受信し、一方その他の従MCUは他のアドレス フレームが受信されるまで受信したフレームを無視します。

20.9.1. 複数プロセッサ通信の使用法

主MCUとして動作するMCUは9ビット データ フレーム形式(UCSZn=7)を使用できます。UCSRnBの送信第9(TXB8n)ビットはアドレス フレーム時 に設定(1)、またはデータ フレーム時に解除(0)されて送信されなければなりません。この場合、従MCUは9ビット データ フレーム形式の使用 に設定されなければなりません。

複数プロセッサ通信動作でデータを交換するのに次の手順が使用されるべきです。

① 全ての従MCUは複数プロセッサ通信動作です(UCSRnAの複数プロセッサ通信動作(MPCMn)ビットが設定(1))。

② 主MCUはアドレス フレームを送り、全ての従装置がこのフレームを受信し、これを読みます。従CPUでは通常のようにUCSRnAで受信完 了(RXCn)フラグが設定(1)されます。

③ 各従MCUはUSARTデータ レジスタ(UDRn)を読み、選択されたかを判定します。選択された場合はUCSRnAのMPCMnビットを解除(0) し、そうでなければ(非選択の場合は)MPCMnビット設定を保ち、次のアドレス フレームを待ちます。

④ アドレス指定されたMCUは新規アドレス フレームが受信されるまで全データ フレームを受信します。MPCMnビットが未だ設定(1)されている 他の従CPUはこのデータ フレームを無視します。

⑤ 最後のデータ フレームがアドレス指定されたMCUによって受信されると、アドレス指定されたMCUはMPCMnビットを設定(1)し、主装置から の新規アドレス フレームを待ちます。以降、手順は②からを繰り返します。

5~8ビット データ フレーム形式のどの使用も可能ですが、受信側が使用するnとn+1ビット データ フレーム形式間を切り替えなければならない ため非実用的です。これは送信部と受信部が同じデータ ビット長設定を使用するため、全二重(フルデュープレックス)動作を困難にします。

5~8ビット データ フレームが使用される場合、最初の停止ビットがフレーム種別を示すのに使用されるので、送信部は2停止ビット使用(USBSn

=1)に設定されなければなりません。

MPCMnビットを設定(1)または解除(0)するのに読み-修正-書き(リード モデファイ ライト)命令(SBIとCBI)を使用してはいけません。MPCMn ビットは送信完了(TXCn)フラグと同じI/O位置を共用しており、SBIまたはCBI命令を使用すると偶然に解除(0)されるかもしれません。

(訳注) ATmega48A/48PA/88A/88PA/168A/168PA/328/328PではUCSRnAのI/OアドレスがSBI,CBI命令適用範囲外なので上記記 述は不適切です。 但し、命令の組み合わせによる同様処理の場合に対して、上記注意の本意は適切(有効)です。

ATmega48A/48PA/88A/88PA/168A/168PA/328/328P [データシート] 122

ドキュメント内 mega88A.pdf (ページ 119-122)