AVRマイクロコントローラー(Atmel 8)シリアル通信USART構成

問題を排除するために楽器を試してください





マイクロコントローラーは、RAM、ROMタイマーなどの多くの周辺機器を含む制御デバイスです。 シリアルデータ通信 、など、いくつかの事前定義されたタスクを実行するために必要です。今日では、 高度なタイプのマイクロコントローラ いくつかの望ましいタスクを実行する能力と実現可能性に応じて、さまざまなアプリケーションで使用され、これらのコントローラーには次のものが含まれます。 8051、AVRおよびPICマイクロコントローラー 。この記事では、高度なAVRファミリーマイクロコントローラーとそのプログラミングについて学習します。

AVRマイクロコントローラー

AVRは、1996年にAtmel Corporationによって製造された制御装置の一種です。AVRは何の略でもありません。単なる名前です。 AVR マイクロコントローラはハーバードアーキテクチャで構成されています 、したがって、デバイスは非常に高速に実行され、マシンレベルの命令(RISC)の数が少なくなります。 AVRマイクロコントローラーは、6スリープモード、内蔵ADC、内部発振器、シリアルデータ通信などの他のマイクロコントローラーと比較した特別な機能で構成されています。 AVRマイクロコントローラー さまざまな操作を実行するために、8ビット、16ビット、および32ビットのさまざまな構成で利用できます。




AVRマイクロコントローラー

AVRマイクロコントローラー

AVRマイクロコントローラーでのUSARTシリアルデータ通信

USARTは、ユニバーサル同期および非同期の受信機と送信機の略です。これは、2つのプロトコルのシリアル通信です。このプロトコルは、単線のクロックパルスに関してビットごとにデータを送受信するために使用されます。ザ・ AVRマイクロコントローラー TXDとRXDの2つのピンがあり、データをシリアルに送受信するために特別に使用されます。すべてのAVRマイクロコントローラーは、独自の機能を備えたUSARTプロトコルで構成されています。



AVRマイクロコントローラーでのUSART通信

AVRマイクロコントローラーでのUSART通信

AVRUSARTの主な機能

  • USARTプロトコルは、全二重プロトコルをサポートします。
  • 高解像度のボーレートを生成します。
  • 5〜9のシリアルデータビットの送信をサポートし、2つのストップビットで構成されています。

USARTピン構成

AVRのUSARTは3つのピンで構成されています:


  • RXD:USARTレシーバーピン(ATMega8ピン2 ATMega16 / 32ピン14)
  • TXD:USART送信機ピン(ATMega8ピン3 ATMega16 / 32ピン15)
  • XCK:USARTクロックピン(ATMega8ピン6 ATMega16 / 32ピン1)

動作モード

USARTプロトコルのAVRマイクロコントローラーは次の3つのモードで動作します。

  • 非同期通常モード
  • 非同期倍速モード
  • 同期モード
動作モード

動作モード

非同期通常モード

この通信モードでは、データはUBBRレジスタによって設定された事前定義されたボーレートによってクロックパルスなしでビットごとに送受信されます。

非同期倍速モード

この通信モードでは、ボーレートの2倍で転送されるデータは、UBBRレジスタによって設定され、UCSRAレジスタにU2Xビットが設定されます。データを迅速に送受信するための同期通信用の高速モードです。このシステムは、正確なボーレート設定とシステムクロックが必要な場合に使用されます。

同期モード

このシステムでは、クロックパルスに関するデータの送受信は、UCSRCレジスタでUMSEL = 1に設定されています。

AVRマイクロコントローラーのUSART構成

USARTは、次のような5つのレジスタを使用して構成できます。 3つの制御レジスタ 、UDR、UCSRA、UCSRB、UCSRC、UBRRなどの1つのデータレジスタとボーレート選択レジスタ。

プログラムを構成するための7つのステップ

ステップ1: ボーレートの計算と設定

USART / UARTのボーレートはUBRRレジストラによって設定されます。このレジスタは、特定の速度でデータ送信を生成するために使用されます。 UBRRは16ビットレジスタです。 AVRは8ビットマイクロコントローラーであり、そのレジスタサイズは8ビットであるため。したがって、ここでは、16ビットUBRRレジスタは、UBRR(H)、UBRR(L)などの2つの8ビットレジスタで構成されています。

ボーレートの式は次のとおりです。

ボー=ダーク/(16 *(UBBR + 1))

UBRRレジスタの式は次のとおりです。

UBRR =ダーク/(16 *(BAUD-1))

AVRマイクロコントローラーの周波数は16MHz = 16000000です。ボーレートを19200Bpsと仮定すると、

UBRR = 16000000 /(16 *(19200-1))

UBRR = 16000000 /(16 *(19200-1))

UBRR = 51.099

最終的にボーレートを見つける

ボー= 16000000 /(16 *(51 + 1))
UBRR = 19230bps

ステップ2: データモードの選択

データ転送モード、スタートビットとストップビット、および文字サイズは、制御およびステータスレジスタUCSRCによって設定されます。

データモードの選択

データモードの選択

ステップ3: データ送信モードの選択

同期モードと非同期モードは、制御ステータスレジスタのUMSELビットによって選択されます。 UMSEL = 0を指定すると、USARTは非同期モードで動作し、それ以外の場合は同期モードで動作します。

データ送信モードの選択

データ送信モードの選択

ステップ4: スタートビットとストップビット

スタートビットとストップビットは、データをシリアルに送受信するための方法です。一般に、データの名声は1つの統計ビットと1つのストップビットで構成されますが、AVRマイクロコントローラーにはデータを処理するための1つのスタートビットと2つのストップビットがあります。追加のストップビットは、受信処理時間を少し追加するのに役立ちます。これは、データ転送速度が速い場合に特に役立ちますが、データ転送速度は非常に速いため、適切なデータを取得できません。したがって、2つのストップビットを使用して適切なデータを取得することにより、処理時間を増やすことができます。

スタートビットとストップビット

スタートビットとストップビット

ストップビットの数は、UCSRCのUSBSビット(制御ステータスレジスタ)によって選択されます。 1つのストップビットの場合はUSBS = 0、2つのストップビットの場合はUSBS = 1。

ステップ5: 文字サイズを設定する

の場合のように 基本的なマイクロコントローラー データのバイト(8ビット)を一度に送受信します。AVRマイクロコントローラーの場合でも、UCSRCレジスタのUCSZビットによって各フレームのデータフレーム形式を選択できます。

データフレームフォーマット

データフレームフォーマット

ステップ6: 受信したデータを保存する

AVRマイクロコントローラは、データを送受信するためのUDRバッファレジスタで構成されています。 UDRは16ビットのバッファレジスタで、8ビットはデータの受信(RXB)に使用され、他のビットはデータの送信(TXB)に使用されます。送信データバッファレジスタは、その場所に書き込まれたデータのUDRレジスタへの宛先になります。データバッファレジスタを受信すると、UDRレジスタの内容が返されます。

ステップ7: 送信機と受信機の有効化

送受信されるデータは、マイクロコントローラのUCSRAレジスタによって設定されるマイクロコントローラのRXCピンとTXCピンによって許可されます。マイクロコントローラによってデータ用に設定されたこのフラグビットは、送受信によって完了します(TXC = RXC = 1)。

ボーレートを2倍にする

AVRのUSART通信の転送速度を2倍にすることができます 16ビットから8ビットまでのマイクロコントローラー UCSRAレジスタのU2Xビットによって効果的に。このビットは、非同期操作にのみ影響します。このビット(U2X = 1)を設定できれば、ボーレートが16ビットから8ビットに減少し、同期通信の転送速度が実質的に2倍になります。

これは、データを迅速に処理するためのAVRマイクロコントローラーの高度な機能です。

USARTプログラム

すべてのマイクロコントローラーは特定のIDEで事前定義されており、このIDEに基づいて マイクロコントローラは組み込みCでプログラムされています またはアセンブリ言語。 AVRマイクロコントローラープログラミングはAVRスタジオによって開発されています。さらに、についての追加情報が必要な場合 マイクロコントローラーベースのプロジェクトを構築する手順 、またはこのトピックの詳細情報については、以下にコメントしてお問い合わせください。