リテラシー:シングルチップマイクロコンピューターのタイミングとタイミング図の理解方法

すべてのクラスが学校の鐘で制御されていることは誰もが知っていますが、シングルチップマイクロコンピュータは命令のフェッチ、命令の実行、およびその他の操作にどのような方法を使用していますか?タイミングの概念を以下に紹介します。

1.
クロック回路MCUクロック回路には次の3つの方法
があります。1. MCU内に発振器を形成するために使用される高ゲイン反転増幅器があります。ピンXTAL1およびXTAL2はそれぞれこの増幅器の入力および出力です。XTAL1およびXTAL2は外部接続する必要があります。水晶と適切なコンデンサ。

2.一部のMCUには、クロック信号を生成するために使用される独自のクロック回路もあります。
3.シングルチップピンXTAL2は、水晶発振器に直接接続されています。

次に、サイクル
1、クロックサイクル
クロック回路がクロック信号を生成するサイクルをクロックサイクル(発振サイクル)と呼びます。
シングルチップマイクロコンピュータの電源投入後、公称値が固定されたパルス信号が発生します。パルス信号によりシングルチップマイクロコンピュータが駆動され、ROM(プログラムメモリ)から順次命令を取得して順次実行し、一連のマイクロ動作制御を行って完了します。指定されたさまざまなアクション。
2.マシンサイクル
SCMがメモリにアクセスするたびに、マシンサイクルと呼ばれます。これは、私たちの日常生活で使用される秒のような時間基準です。シングルチップマイコンの1マシンサイクルには、12発振サイクルが含まれます。発振周期は、発振源の周期であり、使用する水晶発振器の周期です。12M水晶発振器の時間間隔は1/12マイクロ秒であるため、12M水晶発振器MCUを使用するマシンサイクルは、12 * 1/12マイクロ秒、つまり1マイクロ秒に等しくなるはずです。
3.命令サイクル
シングルチップマイクロコンピュータの一部の命令は1マシンサイクルのみを必要とし、一部の命令は2または3マシンサイクルを必要とし、2つの命令は4マシンサイクルを必要とします。命令実行時間の長さを測定する方法では、新しい概念を使用します。命令サイクル、つまり命令の実行に必要なマシンサイクルです。

3.タイミング
SCMタイミングとは、命令を実行するときにSCMが発行する必要がある制御信号の時系列を指します。時間におけるこれらの制御信号の相互関係は、CPUのタイミングです。時系列の一連のパルス信号です。
CPUが発行するタイミングには2つのタイプがあり、1つはチップ上のさまざまな機能コンポーネントを制御するために使用され、チップ設計者の関心事であり、ユーザーには意味がありません。もう1つのタイプは、デバイスの制御ピンを介してオフチップに送信する必要があるオフチップメモリ​​またはI / Oポートの制御に使用されます。タイミングのこの部分は、ハードウェア回路の原理の分析に不可欠です。マスター

CPUが発行するタイミングには2つのタイプがあり、1つはチップ上のさまざまな機能コンポーネントを制御するために使用され、チップ設計者の関心事であり、ユーザーには意味がありません。もう1つは、シングルチップマイクロコンピューターの外部チップの制御に使用されるタイプで、ハードウェア回路の原理を分析する上で重要なタイミングであり、ソフトウェアプログラミングの原理にも従います。
操作シーケンスは、常にどのICチップでも最も重要な内容です。チップの使用に関する詳細はすべて、公式のデバイスマニュアルに記載されています。したがって、デバイスを使用する際に最初に行うべきことは、デバイスのマニュアルから有用なコンテンツを抽出し、その動作シーケンスを習得することです。
ここでは、LCD 1602を例にその動作タイミングを分析します。基本的なタイミングには、ステータスの読み取り、コマンドの書き込み、データの読み取り、データの書き込みが含まれます。

ここでは、1602のいくつかのピン、つまりRS、RW、E、D0 ... D7に注意を払う必要があります。上記の説明から、
RS:データ/コマンド(状態)選択端子を知ることができます。このピンがハイの場合、データバイトを1602に転送できます。このピンがローの場合、コマンド(ステート)バイト転送操作。
RW:読み取りおよび書き込み選択端子。このピンがハイレベルの場合、LCD1602はデータを読み取り、それ以外の場合はデータを書き込むことができます。
E:イネーブル信号は、実際にはLCD1602のデータ制御クロック信号です。この信号の立ち上がりエッジは、LCD1602へのデータ送信を実現するために使用されます。
D0 ... D7:8ビットパラレルデータポート。
ここでは、書き込みコマンドと書き込みデータの2つの書き込みタイミングを分析します。
1.命令ワードを書き込んでLCD1602の動作モードを設定する場合:RSをローレベルに、RWをローレベルに設定する必要があります。その後、データはデータポートD0〜D7に送信され、最後にEにハイパルスが送信されますデータを書き込みます。

void WriteCommandLCD(unsigned char WCLCD、BuysC)// BusyCは0、ビジー検出を無視
{
if(BuysC)ReadStatusLCD(); //
必要に応じてビジーLCD_Data = WCLCDを検出; //コマンドをデータラインに
書き込むLCD_RS = 0; // RSがローであることは、書き込まれるコマンドが
LCD_RW = 0であることを示します// RSがローであることは、書き込み操作が実行されることを示します
LCD_E = 0;
LCD_E = 0;
LCD_E = 1; //上記の3つのステートメントは、ハイパルスを導入します
}
2.データワードを書き込んで1602に表示する場合:RSをハイレベルに、RWをローレベルに設定し、データをデータポートD0〜D7に送信する必要があります。最後にEピンがハイになります。パルスはデータを書き込みます。

void WriteDataLCD(unsigned char WDLCD)
{
ReadStatusLCD(); //ビジーをチェック
LCD_Data = WDLCD; //書き込むコマンドをデータラインに
書き込むLCD_RS = 1; // RSはハイで、書き込むデータが
LCD_RW = 0;であることを示します// RSがローの場合、書き込み操作が実行されたことを示します
LCD_E = 0;
LCD_E = 0;
LCD_E = 1; //上記の3つのステートメントは、ハイパルスを導入します
}

書き込みコマンドと書き込みデータの違いは、RSレベルが異なることです。以下はLCD1602のタイミング図です。ドライバーコードを書くときは、デバイスのタイミング図(テキストの説明を含む)を完全に理解する必要があります。そうしないと、認定されたドライバーコードを書くことができず、デバイスは動作しません。上記のコードを次の図と比較して、同じかどうかを確認できます。

ここに画像の説明を挿入
タイミング図を見るときの注意点:
1.時間軸に注意左から右への方向が正の時間軸、つまり時間が増えている。
2.タイミングチャートの左端の部分は通常、特定のピンの識別であり、このラインのラインがピンの変化を反映していることを示しています。上の図は、4種類のピンRS、R / W、E、DB0〜DB7のタイミングをそれぞれ示しています。変化。
3.有線の断面は、レベルが変化していることを示しています。
4. 2つの平行線は、上の図の右上隅に示すように、それぞれ高レベルと低レベルに対応しています。
5.封印されたひし形の部分は、データが有効であることを示しており、Valid Dataという語もこれを示しています。
6.タイミング図の各ピンのレベル変化は、同じ時間軸に基づいています。時間軸の伸びる方向に合わせて正確にタイミング図を観察してください。デバイスがタイミング図の変化に厳密に従うようにします。
7.時間のラベル付けも非常に重要な情報であり、これらの時間のラベル付けは、特定の状態を維持する必要がある最短または最長の時間を示します。デバイスの動作速度も制限されているため、一般的にメイン制御チップの速度に追いつくことができないため、それらの間には直接タイミング調整が必要です。以下は、タイミングパラメータテーブルです。

ここに画像の説明を挿入

97件の元の記事を公開 200件の賞賛 80,000回以上の閲覧

おすすめ

転載: blog.csdn.net/weixin_44212493/article/details/104335238