マイクロコントローラーは、RAM、ROMタイマーなどの多くの周辺機器を含む制御デバイスです。 シリアルデータ通信 、など、いくつかの事前定義されたタスクを実行するために必要です。今日では、 高度なタイプのマイクロコントローラ いくつかの望ましいタスクを実行する能力と実現可能性に応じて、さまざまなアプリケーションで使用され、これらのコントローラーには次のものが含まれます。 8051、AVRおよびPICマイクロコントローラー 。この記事では、高度なAVRファミリーマイクロコントローラーとそのプログラミングについて学習します。 。
AVRマイクロコントローラー
AVRは、1996年にAtmel Corporationによって製造された制御装置の一種です。AVRは何の略でもありません。単なる名前です。 AVR マイクロコントローラはハーバードアーキテクチャで構成されています 、したがって、デバイスは非常に高速に実行され、マシンレベルの命令(RISC)の数が少なくなります。 AVRマイクロコントローラーは、6スリープモード、内蔵ADC、内部発振器、シリアルデータ通信などの他のマイクロコントローラーと比較した特別な機能で構成されています。 AVRマイクロコントローラー さまざまな操作を実行するために、8ビット、16ビット、および32ビットのさまざまな構成で利用できます。
AVRマイクロコントローラー
AVRマイクロコントローラーでのUSARTシリアルデータ通信
USARTは、ユニバーサル同期および非同期の受信機と送信機の略です。これは、2つのプロトコルのシリアル通信です。このプロトコルは、単線のクロックパルスに関してビットごとにデータを送受信するために使用されます。ザ・ AVRマイクロコントローラー TXDとRXDの2つのピンがあり、データをシリアルに送受信するために特別に使用されます。すべての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スタジオによって開発されています。さらに、についての追加情報が必要な場合 マイクロコントローラーベースのプロジェクトを構築する手順 、またはこのトピックの詳細情報については、以下にコメントしてお問い合わせください。