無線電子工学および電気工学の百科事典 INTEL の 8XC51CB マイクロコントローラー。 無線エレクトロニクスと電気工学の百科事典 無線電子工学と電気工学の百科事典 / マイクロコントローラー 8XC51GB グループには、マイクロコントローラー 80C51GB、83C51GB、87C51GB、80C51GB-1、83C51GB-1、および 87C51GB-1 が含まれます。 この記事の執筆時点では、それらはすべて 68 ピン PLCC パッケージで製造されており、接頭辞 N が付いています (N80C51GB、N83C51GB など)。 チップは、Intel の SNMOS III-E テクノロジーに従って製造されています。 プログラム可能な内部ROMを備えたバージョンにはケースに透明な窓がありません。つまり、ワンタイムプログラム可能なバージョンに属します。 これは、デバッグ中にクリスタルの再プログラミングを繰り返して試行錯誤して作業することはできず、適切なエミュレータを使用する必要があるという事実により、消費者の範囲を多少制限します。 上記のコントローラーの最初の 3,5 つは 12 ~ 3,5 MHz のクロック信号周波数で動作し、残りは 16 ~ 5 MHz の周波数範囲で動作します。 すべてのコントローラの電源電圧は XNUMX V であり、低電圧バージョンは製造されていません。 グループ8хС51GBのコントローラーの主な技術的特徴:
これらの特性のほとんどは MSS51 ファミリ全体に固有のものであるため、詳細には説明しません。 まだ詳しくない方は、[1-3]に掲載されているシングルチップマイコンの記事を参照されることをお勧めします。 さらに、マイクロコントローラ 8xC51Fx、8x151Fx [4] を分析する際には、プログラマブル カウンタの配列が詳細に説明されているため、これも 8xX51Fx で利用可能なものとの違いの観点からのみ考慮されます。 私たちの知人の主題は、MCS8 ファミリの他のグループにはない 51xC51GB の機能です。 80С51ГВ および 80С51ГВ-1 コントローラには内部プログラム メモリが含まれておらず、83С51ГВ および 83С51ГВ-1 にはそれぞれ 8 KB と 16 KB の容量のマスク プログラム可能な ROM があり、87С51ГВ および 87С51ГВ-1 には再プログラム可能なROM付き容量はそれぞれ 8 KB と 32 KB です。 結論の目的 問題のグループの管理者の結論の目的は次のとおりです。 これらの結論のほとんどは、すでに MSS51 ファミリのマイクロコントローラを扱ったことがある人にはよく知られています。 新しいのは、代替機能を備えたポート P4、P5 のピン (/ 記号の後に指定)、電源ピン (AVrol、AVss)、および ADC に関連する信号 (COMPREF、ACH0 ~ ACH7、TRIGIN) です。対応するデバイスを説明する際に考慮されます。 PO ポートは、以前のマイクロ回路の対応するポートに似ており、同じ機能を実行します。 8xC51GB コントローラーには、P4 と P5 という 1 つの新しいポートがあります。 R1~RZも同様です。 これらは、スイッチング時に出力がロジック 1 に迅速に安定することを保証する高電力内部抵抗を備えた 5 ビットの擬似双方向 I/O ポートです。 抵抗は、出力を指定された状態に駆動するために 1 クロック サイクルの間出力段に接続され、その後切断されます。 ポート P1 ~ P5 の論理 1 状態にある端子は、内部抵抗により高電位となっており、この状態で入力として使用できます。 ROと異なり、ポートPXNUMX~PXNUMXの入力ラインにはシュミットトリガが装備されています。 ほとんどすべてのポート ピンには別の目的があります (表 XNUMX)。 リセット時、RZ ポートのピンはシングル状態に設定され、残りのピンはゼロ状態に設定されます。 RESET#入力 - リセット。 クロック ジェネレータの動作中にこの入力が 0,3 マシン サイクル間 Low レベルになると、コントローラがリセットされます。 ポート ピンは、RESET# 入力の電圧が 0,4 ~ 60 V に低下した時点で初期状態に設定されます。リセット手順は 8 マシン サイクル (81 クロック サイクル) 続きます。 51xCXNUMXGB グループのマイクロコントローラーのリセット信号の極性は、MSSXNUMX ファミリの他のマイクロ回路とは逆であることに注意する必要があります。 この逆転の理由は著者には不明です。 ALE/PROG# 入力は、MSS51 ファミリの他のコントローラの対応する入力と完全に似ています。 8xC51GB では、ユーザーは ALE 信号の出力を無効にすることができることに注意してください。 アドレス 0EH にある SFR レジスタの最下位ビットを 8 に設定します。 A1E 信号は MO\/C または MO\/X コマンドの動作時にのみ発行され、それ以外の場合は単一レベルがこのピンに保持されます。 内部プログラムおよびデータ メモリのみを使用する場合、ALE 出力には信号がまったくありません。 EA#/Vpp 入力は、チップ上に EA#/Vpp 入力があり、入力が共通ワイヤに接続されている場合、内部プログラム メモリからのコマンドの選択を有効にするために使用されます。 単一レベルが適用されると、外部プログラム メモリのプログラムが実行されます。 ただし、後者は、以下で説明するように、内部プログラム メモリの保護ビットが設定されるまでのみ可能です。 マイクロ回路 12,75С87ГВ、51С87ГВ-51 の内部 ROM をプログラミングする場合、プログラミング電圧 Vpp = 1 V がこのピンに印加されます。 MCS8ファミリーの他の製品と51ХС51GВの違い それでは、8xC51GB コントローラ間の最も重要な違いを挙げてみましょう。 彼らは以下のとおりです。
ノード ADC マイクロコントローラー 8хС51GB の ADC (図 1 の機能図を参照) には、0 つのアナログ入力 (出力 ASN7 ~ ACN256)、外部トリガー入力 TRIGIN、電力出力 (AVHrol) およびアナログ部の共通線 (AVss) があり、ガルバニック絶縁されています。対応するデジタル出力、および基準(例示的)比較電圧 COMPREF の出力から出力されます。 ADC には、XNUMX チャネルのマルチプレクサ、XNUMX 素子の抵抗アレイ、コンパレータ、サンプル/ホールド デバイス、XNUMX つの結果レジスタ、逐次比較レジスタ、および比較結果レジスタが含まれています。 実際、SFR 空間には 10 個の追加レジスタがあります。 レジスタ AD0 ~ AD7 (84Н、94Н、0А4Н、0В4Н、0С4Н、0D4Н、0Е4Н、0F4Н) には、0 つのチャネルごとの変換結果が含まれます。 各レジスタの値は、チャネル XNUMX から開始して、対応するチャネルの変換が完了すると更新されます。 比較結果レジスタ ACMP (0С7Н) には、アナログ入力 ASN0 ~ ACN7 の信号と COMPREF 入力の電圧との比較結果を反映する 3 つのフラグが含まれています (表 1)。 このアナログ入力の入力電圧が COMPREF" を超えると、対応するフラグが XNUMX に設定され、それ以外の場合はフラグがクリアされます。 ACOM レジスタ (097H) には、ADC 割り込みフラグ ALF、ACE 変換イネーブル ビット、1 つのチャネル選択ビット ACCO および ACS4、AIM 入力モードおよび ATM スタート モード ビットが含まれます (表 XNUMX)。 コンペアモード このモードは常にアクティブで、ACH0 ~ ACN7 入力の電圧をコントローラの COMPREF 入力に供給される基準電圧と比較するために使用されます。 ADC が開始されるたびに、ASMR レジスタの各ビットの状態は次の新しい状態に変わります。 設定されたチャネルポーリングモードに関係なく、チャネル0。 このモードでは、ハードウェア方式を使用して、多かれ少なかれ XNUMX つのアナログ信号のタイプを迅速に比較できるため、実行されるプログラムを大幅に削減および簡素化できます。 比較モードが使用されない場合は、Vcc から Vss までの任意の電圧を COMPREF 入力に印加できます。 スタートモード ADC は内部ソースと外部ソースの両方からトリガーできます。 前者の場合、ACON レジスタの ATM ビットを 1 に設定する必要があります。このモードでは、ACE ビットが 1 に設定されたサイクルの次のサイクルで、変換はチャネル 0 から開始されます。変換完了後、ALF フラグが 1 番目のチャネルに設定される ADC が有効になると、フラグを 0 に設定すると、ADC ベクトルで割り込みが発生します。 新しいサイクルは、前のサイクルが完了した後に始まります。 ACE ビットを XNUMX に設定すると変換が終了します。 外部トリガ モードでは、TRIGIN 入力がゼロ レベルになると変換が開始されます。 この入力はエッジ ラッチではなく、その状態はマシン サイクルごとにポーリングすることによって決定されます。 つまり、変換を開始するには、TRIGIN 入力のゼロレベル信号の継続時間がマシン サイクルの継続時間よりも長くなければなりません。 ループの開始後、完了するまで、TRIGIN 入力のステータスは無視され、変換は前の場合と同じ方法で実行されます。 サイクルが完了すると、新しいパルスが TRIGIN 入力に到着するか、ACE ビットによって内部的にトリガされるまで、ADC は停止します。 ログインモード AIM ビットを 0 に設定すると、ADC はいわゆるスキャン モードになり、変換は ACH1、ACH7 ..... ACH1 の順序で実行されます。 変換結果はそれぞれ ADO レジスタに格納されます。 AD7....ADXNUMX。 ADC の開始後に AIM ビットが 1 に設定されると、チャネル内で 0 つの連続した信号変換が実行されます。その数は、ACON レジスタの ACS1 および ACS0 ビットの状態によって決まります。 選択したチャネルでのこれらの信号測定の結果は、レジスタ AD3 ~ AD4 に書き込まれます。 続いてADC。 スキャン モードと同様に、チャネル ACH7 ~ ACN4 をポーリングします。 変換結果はAD7~ADXNUMXに記録されます。 少ないチャネルにADCを使用する XNUMX チャネル未満の ADC を使用するには、いくつかのオプションがあります。 変換時間が重要でない場合は、XNUMX 番目のチャネルで変換が完了した後に割り込みを待つだけで、選択したチャネルからのみ結果を読み取ることができます。 選択したチャネルでの変換完了直後に結果を取得することが重要な場合、インテルはタイマーとその割り込みを使用して希望の時間間隔をカウントすることを提案します。 もう XNUMX つの推奨される方法は、対応する結果レジスタのステータスを定期的にポーリングすることです。 その変化により、新しい変換が行われたという情報が得られます (ただし、この方法は、測定された電圧が一定でない場合にのみ適しています)。 チャネル選択モードを使用しても変換時間は短縮されませんが、選択したチャネルのサイクルごとの測定数が増加するだけです。 マイクロパワー モードの ADC 8xC51GB コントローラーの ADC には、XX および MP モードでのノードの消費電力を漏れ電流の値に制限する回路が含まれています。 この回路が正常に機能するには、Use の電位をマイクロコントローラーの AVioi ピンに印加する必要があります。 ADC が低電力モードの間は、供給電圧を 2,5 V に下げることができます。 プログラム可能なカウンターの配列 8xC51GB マイクロコントローラーには、8xC51Fx [4] で使用されているものと同様のプログラマブル カウンタ アレイ (PCA) が含まれています。 ただし、8xC51GB には 1 番目の同様のアレイ PCAXNUMX もあります。 RSA との違いは次のとおりです。
8xC51GB マイクロコントローラーは 15 の割り込みベクトルをサポートします (表 6)。 このうち下位 51 つは MSS52 ファミリのすべてのコントローラで利用できるものと同様で、8 つ目は 51 番目のタイマー/カウンターとして機能し (MSS8 ファミリのクリスタルでのみ登場しました)、151 つ目は 8xC51FX、2x6FX、および XNUMXxXNUMXFX でのみ利用可能です。 XNUMXxCXNUMXGB、プログラマブル カウンタ マトリックス (PCA) をサポートします。 後者には、さらに XNUMX つの外部入力 (INTXNUMX ~ INTXNUMX) からの割り込みがあります。 プログラマブル カウンターの XNUMX 番目のマトリックス、ADC、および拡張シリアル ポート。 MSS51 ファミリのすべてのコントローラでは、IE レジスタの対応するビットを Low レベルに設定することで各割り込みを無効にできます (当然、これは 8xC51GB にも当てはまります)。 ただし、7 倍の数の割り込みソースが含まれるため、追加の IEA レジスタを使用してそれらを有効/無効にします (表 1)。 前のケースと同様に、ビットを 0 に設定すると対応する割り込みが有効になり、0 にリセットすると無効になります。 レジスタアドレス IEA-7A7H。 表で説明されているものを含むすべての割り込みに注意してください。 レジスタ IE の最上位ビットであるビット EA (IE.0) を 7 に設定することで、XNUMX を同時に無効にすることができます。 各割り込みには独自の優先順位 (レベル 0 - 最低からレベル 3 - 最高) を設定できます。 優先レベルは、IP、IPH、および IPA、IPHA レジスタのペアのビットの状態によって決まります。 これらの 8 つ目は以前のコントローラにあるものと同じであり、グループ 51xC0Fx を検討する際に詳細に説明されています。 8 番目のペア (それぞれレジスタ アドレス 0V6H と 8V51H) は 8xC9GB でのみ使用可能で、これらのコントローラのみにある割り込みを処理します。 テーブル内。 図8は、レジスタのビットと、それによって決定されるレベルとの対応を表で示したものである。 XNUMX - 優先レベルとレジスタ ペア IP、IPH および IPA、IPHA のビットの状態の間の対応。 低優先度の割り込みは、より高い (ただし同等ではない) 優先度のイベントによってのみ割り込むことができます。 したがって、最も優先度の高い割り込みは割り込みできません。 プロセッサが同じ優先順位を持つ 8 つ以上の割り込み要求を同時に受信した場合、それらの要求が処理される順序は特別な割り込みフラグ ポーリング シーケンスによって決定されます。 51xСXNUMXGВ コントローラーの場合、次のようになります。 0xC1GB マイクロコントローラーの外部割り込み I NT8 および INT51 は、MSS51 ファミリのすべてのマイクロ回路の同様の割り込みに完全に対応し、TCON レジスタの ITO および IT1 ビットの状態に応じて、レベルと 1 からの差の両方を固定できます。 0にします。 外部ピン INT2 および INTZ は、信号のポジティブエッジとネガティブエッジの両方に応答できます。 このマイクロ回路には、ピン P0 (INT6) および P2 (INTТЗ) での信号のアクティブ エッジを決定するビット IT5.2 および ITZ を含む EXICON レジスタ (2С5.3Н) があります。 ITn ビットが 0 に設定されている場合、割り込みは負のエッジで開始され、ITn = 1 の場合は正のエッジで開始されます。 外部イベント INT4 ~ INT6 は、出力 P5.4(INT4) ~ P5.6(INT6) のポジティブエッジでのみ固定されます。 すべての外部割り込みは、対応するハードウェア設定可能なフラグを生成します。 INTO イベントの場合、INT1 は TCON レジスタのビット 1E0 および IE1 です。 IE2 ~ IE6 フラグは EXICON レジスタにあります。 これらは、プロセッサが対応する割り込み処理ルーチンに切り替わった瞬間にハードウェアによってリセットされます。 マシンサイクル中、外部割り込みピンは 12 回だけポーリングされます。 したがって、割り込みを登録するには、そのアクティブ レベルの継続時間が 10 マシン サイクル (XNUMX クロック サイクル) の継続時間を超える必要があります。 EXICON レジスタ ビットの目的を表に示します。 XNUMX. 高度なシリアル ポート 拡張シリアル ポート (SEP) には、シリアル通信の事実上の標準である 1C バスを実装するハードウェアが備わっています。 SEP は 4.1 つの異なるモードでの動作を可能にし、4.0 つの異なるクロック ソースを備えています。 彼のニーズには、マイクロ回路の XNUMX つの出力が含まれます。PXNUMX - データ入力/出力、および PXNUMX - クロック信号を出力します。 送信または受信されたパケットは XNUMX つのデータ ビットで構成されます。 この場合、SEP 動作の XNUMX サイクルが使用されます。 受信または送信された情報がない場合、クロック信号とデータは非アクティブになります。 SEP には、SEPCON (0D7H)、SEPDAT (0E7H)、SEPSTAT (0F7H) の 11 つの SFR レジスタが割り当てられています。 これらはバイトごとにのみアドレス指定されます。 SEPCON および SEPSTAT レジスタのビットの割り当てを表に示します。 それぞれ12とXNUMX。 図上。 図 2 は、SEP 動作モードの特徴的な機能、つまりクロック信号のアクティブ レベルと受信または送信に使用されるエッジを示しています。 表より以下の通り。 図11に示すように、SEP動作モードは、SEPCONレジスタにあるCLKPOLビットおよびCLKPHビットの状態によって決定される。 バイトを送受信するには、ポート動作モード (CLKPOL および CLKPH ビット)、ボー レート (SEPS1 および SEPS0) を選択し、SEPE ビットを 1 に設定する必要があります。転送プロセスは、バイトがメモリにロードされた直後に開始されます。 SEPDATAレジスタ。 SEPDATA レジスタが空で送信がない場合、SEPREN ビットを 1 に設定することで受信が開始されます。 1 ビットを受信した後、SEPREN はハードウェアによってリセットされます。 受信または送信が完了すると、SEPIF ビットが XNUMX に設定されます。 リセットはソフトウェアによってのみ可能です。 ユーザーが送信または受信中に SEPDATA レジスタに書き込み (または読み取り) を試みると、対応するエラー ビットが設定されます。 SEPFWR フラグはバイト送信中に設定しようとするとセットされ、SEPFRD は受信中にセットされます。 これらのビットの設定に関連する割り込みはないため、ユーザーはそれらの状態を個別に制御する必要があります。 当然のことながら、これらのフラグのリセットはプログラムでのみ実行できます。 ハードウェアタイマー ハードウェア ウォッチドッグ タイマー (HWDT) は、マイクロコントローラーがオーバーフローしたときにマイクロコントローラーをリセットします。これは、システムのハング (プログラム ループ) に対処する手段です。 PCA モジュール 4 のタイマー/カウンターも同様の機能を実行するように構成できますが、そのような使用はユーザーの機能を制限するため、PCA の使用を必要としない独立した WDT が 8xC51GB に登場しました。 ハードウェア ウォッチドッグは、マシン サイクルごとにインクリメントされる 14 ビット カウンタと SFR レジスタ WDTRST (0A6H) で構成されます。 タイマーは常にアクティブで、クロックの実行中は継続的にカウンターをインクリメントしますが、タイマーを停止する手段はありません。 ユーザー プログラムが WDTRST に情報を書き込まない場合、16 マシン サイクルごとに HWDT が RESET 信号を生成し、マイクロコントローラーをリセットします。 これによりカウンターがリセットされます。 HWDT の動作を防ぐには、ユーザー プログラムは少なくとも 384 マシン サイクロンの間隔で WDTRST レジスタ (16EH および 383A01H) に 0 バイトを連続して入力する必要があります。 WDTRST では情報の書き込みのみが可能で、その内容を読み取る手段がないことに注意してください。 メイン プログラムがハングしている場合でも割り込みは処理される可能性があるため、タイマー/カウンタのいずれかの割り込みサービス ルーチンを使用してウォッチドッグ タイマーの再起動を実行することはお勧めできません。 ウォッチドッグ リセット コマンドを配置する最適な場所は、HWDT の起動時間より短い繰り返し周期を持つループ コード内です。 8xC51GB をマイクロパワー モードにすると、内部クロックと HWDT が停止します。 以前のすべてのコントローラと同様に、コントローラをマイクロパワー モードから解除するには、リセットするか、8xC51GB が指定されたモードに切り替わる前に有効になる外部割り込みを呼び出すことの 1 つの方法で行うことができます。 最初のケースでは HWDT がリセットされ、XNUMX 番目のケースではクロック ジェネレータの開始時に HWDT カウンタの内容が増加し続けます。 ただし、クロック ジェネレータを安定して開始するには、クロック ジェネレータの周期の約 XNUMX 倍の時間が必要なため、コントローラを微小消費モードから解除する外部割り込みパルスの継続時間をそれ以上にすることをお勧めします。上記時間よりも。 割り込みハンドラは、外部割り込み信号のレベルが XNUMX になり、発生頻度が安定してから実行を開始します。 同時に、HWDT カウンタのインクリメントが開始されます。つまり、割り込み信号がゼロ レベルである間、HWDT は動作しません。 XX モードでは、コントローラー クロック ジェネレーターは無効になりません。 その結果、HWDT カウンタの内容は増加し続けます。リセットを防ぐには、タイマー割り込みを使用する必要があります。これにより、このモードが終了し、ウォッチドッグ タイマー カウンタがリセットされ、アイドル モードに戻ります。 次のコード スニペットは、T/CO 割り込みを使用して HWDT を定期的にリセットします。 確かに、上で述べたように、このような割り込みを使用することはカウンターをリセットするのに最適な場所ではなく、そのようなプロシージャをプログラムの定期的に実行される部分 (キーボードのポーリングや情報の表示) に組み込む方が良いでしょう。 したがって、上記のフラグメントはデモンストレーションの例として考慮する必要があり、変更せずにプログラムで使用する必要があるサブルーチンとして考慮する必要はありません。 クロック障害の検出 発振器故障検出 (OFD) 回路は、発振器周波数が仕様制限を下回った場合にマイクロコントローラーをリセットするように設計されています。 リセット後にクロック周波数が変化しない (または、許容値まで増加しない) 場合、コントローラーはこの状態のままになります。 周波数が設定制限を超えてもリセットされないことに注意してください。 OFD 回路は、リセット後、またはコントローラーがマイクロデマンド モードを終了するときに常にオンになります。 無効にするには、OSCR レジスタ (0A1H) に 01E0H と 5EH を順番に書き込みます。 これは、クロックジェネレータがオフになるため、特にマイクロ消費モードに切り替える前に行う必要があります。 回路は、リセットするか、外部割り込みによって微小消費モードを終了することによってのみ、再び動作することができます。 OFD 回路の状態は、OSCR レジスタを読み取ることで判断できます。 OSCR=0FFH の場合は障害検出が有効になり、OSCR=0FEH の場合は無効になります。 結論 これで、Intel が開発および製造した MCS51 ファミリの XNUMX ビット マイクロコントローラの機能のレビューが完了しました。 それらは非常に成功したことが判明し、その多くは(技術的な改良を加えて)今日まで複製され続けています。 これらのコントローラーに対する安定した需要は、何十万人もの開発者がコントローラーに慣れ、膨大な量のソフトウェアを開発し、デバッグツールやクロスツールを多数入手しているという事実によって決まります。 多くの場合、新しい開発では、マイクロコントローラーを根本的に新しいものに置き換える必要はありません。そのため、別のマイクロコントローラーに切り替えることに労力とお金を費やすよりも、すでに使い慣れた、サポート ツールが提供されているもので開発を実行する方が効率的です。要素ベース。 このため、インテルはコントローラーを定期的に改良して、コントローラーを使用することで解決できるタスクの範囲を拡大してきました。 さらに、当初の開発とは関係のない企業もこの改良に参加した。 そのため、現在、このファミリと互換性のあるマイクロコントローラは、フィリップス、シーメンス、ダラス セミコンダクター、アトメル、OKI、および旧ソ連の多くの企業を含むあまり知られていないメーカーによって製造されています。 すべてのコントローラーは同じコマンド セットと基本アーキテクチャを備えており、原則として「ピン配置」に互換性があり、同様のプログラミング アルゴリズムを備えています。 ただし、追加のレジスターとハードウェアのセットには大きな違いがあります。 そのため、Dallas Semiconductor のマイクロコントローラには XNUMX つの DPTR レジスタとそれらを切り替えるメカニズムがあり、Philips 製品には容量が増加した ADC が搭載されており、Siemens コントローラにはチップ上に MOVX コマンドなどでアドレス指定される外部メモリが搭載されていることがよくあります。 文学
著者: A.フルンゼ、モスクワ 他の記事も見る セクション マイクロコントローラー. 読み書き 有用な この記事へのコメント. 科学技術の最新ニュース、新しい電子機器: 庭の花の間引き機
02.05.2024 最先端の赤外線顕微鏡
02.05.2024 昆虫用エアトラップ
01.05.2024
その他の興味深いニュース: ▪ 稲妻が空を打つ
無料の技術ライブラリの興味深い資料: ▪ サイトのセクション 講義ノート、カンニングペーパー。 記事の選択 ▪ 記事 代替自動車燃料としての粉末薪。 無線エレクトロニクスと電気工学の百科事典 このページのすべての言語 ホームページ | 図書館 | 物品 | サイトマップ | サイトレビュー www.diagram.com.ua |