無線電子工学および電気工学の百科事典 MCS51シリーズマイクロコントローラ用のデバッグモジュール。 無線エレクトロニクスと電気工学の百科事典 無線電子工学と電気工学の百科事典 / マイクロコントローラー マイクロコントローラー (MC) 上のデバイスの開発は、原則として単純な計画に従って実行されます。典型的なインクルージョン内の MC は必要な周辺機器で「重み付け」され、その後ソフトウェアが作成されます。 この場合、日常的な作業を引き受けるさまざまなツールを使用する必要があり、創造的な問題の解決はプログラマーに委ねられます。 以下に説明するデバイスは、マイクロコントローラー システムの「半完成品」であり、デバッグ用のツールであると同時に研究の対象でもあります。 MCS51のプログラミングスキルの習得やプログラムのデバッグを目的としていますが、実際のシステムのモデルとしても利用でき、制御オブジェクトと一緒にアプリケーションソフトウェアのデバッグも可能です。 このようなモジュールがあれば、開発者は、コストが高いために多くの人がアクセスできないプログラマや ROM エミュレータを頻繁に使用する必要性から解放されます。 MK MCS51シリーズ用デバッグモジュールの概略図を図に示します。 ほとんどのノードは標準スキームに従って作成されており、パーソナル コンピュータ (PC) のシリアル ポートとのインターフェイス デバイスは、S. Kuleshov と Yu. Zaumenny による記事「ROM プログラマー」(「ラジオ」) で説明されているデバイスから借用されています。 」、1995年、第10号、22〜25ページ)。 DD1995マイコンのポートP10、P22の空きピン(図中の矢印で終わっているピン)には、様々な周辺機器を接続できます。 XP25 プラグはケーブルを介して PC のシリアル ポートの 1 つのソケットに接続され、モジュールはその下で動作します。 電源電圧が印加された後、コンデンサ C3 は抵抗 R1 を介して充電されます。 DD3.4 要素によって生成されたリセット信号 RES に従って、MK DD1 は初期状態になり、P1 ポートのすべてのピンに論理レベル 3 を設定するなどの準備動作を実行します。 要素 DD3.1、DD3.2 のトリガは、その出力信号がプログラム メモリ アドレス領域 0 ~ 7FFFH が ROM (DD5) を占有し、8000H ~ 0FFFFH が RAM (DD6) を占有するようなメモリ配分を設定するときの状態にあります。 ROM にあるプログラム Monitor が実行されています。 PC キーボードでモニター コマンドを入力すると、オペレーターはモジュールの RAM および周辺機器を操作できます。 トリガを他の状態に移行するには、制御 PC から下記の RESET Monitor コマンドを送信し、MOD=0 信号を設定する必要があります。 プログラム メモリの RAM と ROM のアドレスが交換され、オペレータがモジュールの RAM に事前に入力したプログラムが動作を開始します。 これにより、実際のデバイスの動作をエミュレートし、たとえば ROM への書き込み用に準備された、より低いメモリ アドレスに変換されたプログラムをチェックできます。 SB1 ボタンは、メモリ割り当てを変更せずに MK を元の状態にリセットするために使用します。 モニターは、SB2 ボタンを押すか、電源をオフにして再度オンにすることによってのみ再起動できます。 これにより、デバッグされたプログラムは、メモリ割り当てを誤って切り替えることを心配することなく、P3 ポートの状態で自由に動作 (たとえば、周辺機器の操作) することができます。 HL1 LED は、情報を表示する最も簡単な手段として機能し、特に何らかの理由で PC に接続できない場合に非常に役立ちます。 電源が投入されると、約 1 Hz の周波数で点滅し、モニターが動作していることを示します。 ツェナー ダイオードは、+5 V 電源の逆極性や過電圧からデバイスを保護します。 Monitor プログラム (表 1) は、モジュールの制御と RS-232C シリアル ポートを介した PC との対話を提供し、そこから特定のタスクの作業に必要なコマンドとデータが送信されます。 同じポートを介して、PC はモジュール操作の結果を受信し、画面に表示します。 広く使用されているシェル Norton Commander 5.0 の通信プログラム「Telemax」、Windows 95 OSR2 の「Hyper Terminal」などの通信プログラムが PC 上で実行されている必要があります。 極端な場合には、特別なプログラムを使用せずに、準備されたデータを含む MS DOS コマンド ファイルを PC のシリアル ポートに送信するだけで済みます。 通信プログラムを設定するときは、モデム初期化行を削除し、「ローカル エコー」および「CR/LF ブロードキャスト」モードを設定し、必要に応じて ANSI 端子と ASCII コード テーブルを選択する必要があります。 シリアル ポートの動作モードは次のとおりです。速度 - 4800 ボー、文字あたりのビット数 - 8、パリティ制御無効、ストップ ビット数 - 1。すべてが正しい場合、PC キーボードで入力されたテキストは、デバッグ モジュールとその応答 - 画面に表示されます。 モニター コマンドは、大文字と小文字の両方のキーボードで入力できます。 すべての文字は ASCII エンコードである必要があります。 [BackSpace] キーは、最後に入力した文字をデバッグ モジュールのバッファから削除します。 各命令は名前とオペランドで構成されます。 名前は、スペース、タブ、ラインフィード、またはキャリッジリターンなどの区切り文字で終了します。 さらに、条件付きでアンダースコア (_) を使用して示しますが、任意の名前を入力できます。 区切り文字を受け入れると、モニターは以前に受信してバッファーに配置された最初の XNUMX 文字を ROM 内の命令テーブルの内容と比較します。 一致するものが見つかると、同じテーブルからコマンド ハンドラーのアドレスを記憶し、オペランド (XNUMX つ以上の XNUMX 進数) の受け入れを開始します。 私たちは、MK の内部および外部メモリの XNUMX バイトおよび XNUMX バイトのアドレスをそれぞれ XX および XXXX とし、ブロック長を YYYY、その他のデータを ZZ または ZZZZ とすることに同意します。 たとえば、XXXX,YYYY は、アドレス XXXX で始まり、長さ YYYY バイトの外部データ メモリのブロックです。 先行ゼロをすべて指定する必要があります。 オペランドも区切り文字で終わる必要があり、区切り文字を受け取るとコマンド ハンドラが開始されます。 空のバッファに入力された区切り文字は無視されます。 RESET_ ZZZZ_ - メモリ割り当ての XNUMX 番目のモードがオンになり、MC がリセットされ、制御がアドレス ZZZZ に転送されます。 このコマンドは通常の動作に十分な RAM を必要とします。 DATA_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._- 情報は、アドレス XXXX から始まる外部データ メモリの連続するセルに入力されます。 角括弧を入力する必要はありません。角括弧は、ZZ_ オペランドの数が任意であることを示すだけです。 データ入力はドットで終わります。 テーブル内。 図 2 は、DATA および RESET コマンドを使用して単純なプログラムを RAM に入力し、実行する例を示しています。 READ_XX_ または READ_XXXX_ - 内部または外部データ RAM のメモリ セルからワード (連続する XNUMX バイト) を読み取ります。 結果は XNUMX 進数 (上位アドレスから先頭のバイト) としてシリアル ポートに送信されます。 WRITE_XX,ZZ_、WRITE_XX,ZZZZ_、WRITE_XXXX,ZZ_、または WRITE_XXXX,ZZZZ_ - バイト ZZ またはワード ZZZZ をアドレス XX または XXXX に書き込みます。 READ および WRITE コマンドは間接アドレス指定を使用して実装されているため、特殊機能レジスタでは機能しないことに注意してください。 レジスタにアクセスするには、レジスタごとに直接アドレス指定を行う交換プロシージャを作成する必要があります。 例としては、SPEED コマンド ハンドラーがあります。 256 バイトの内部 RAM を備えた MCU がモジュールに取り付けられている場合、READ および WRITE コマンドは、アドレス 128H ~ 80FFH の追加の 0 バイトを使用して動作できます。 LOAD_XXXX,YYYY_ - シリアル ポート、外部データ メモリのブロックを介して送信される情報が格納されます。 SAVE_XXXX,YYYY_ - 外部データ メモリ ブロックの内容がシリアル ポートに転送されます。 CALL_ZZZZ_ - サブルーチンはアドレス ZZZZ から呼び出されます。 モニターに戻るには、RET コマンドで終了する必要があります。 サブルーチンの実行中、割り込みは無効になります。 CHECK_XXXX,YYYY_ - チェックサムが計算されます - 外部データ メモリ ブロックの全バイトの合計の下位バイト。 FILL_XXXX,YYYY,ZZ_ - 外部データ メモリ領域を ZZ バイトで埋め、そのチェックサムを計算します。 COPY_XXXX,YYYY,ZZZZ_ または COPY_PXXXX,YYYY,ZZZZ_ - 外部データ メモリのブロックがアドレス ZZZZ にコピーされます。 P 記号は、コピーされる領域がプログラム メモリ内にあることを示します。 同時にチェックサムも計算されます。 TEST_XXXX,YYYY_ - 外部 RAM ブロックの健全性がチェックされます。 エラーがない場合は、「OK」というメッセージが表示されます。エラーがない場合は、「XXXX: YY<>ZZ」というメッセージが表示されます。ここで、XXXX は失敗したセルのアドレス、YY は書き込まれる値、ZZ は読み取られる値です。 このコマンドは RAM の内容を破壊しません。 SPEED_ZZ_ または SPEED_ZZ+_ - シリアル ポートを介したデータ交換の速度を変更します。 デフォルトは 4800 ボーです (アドレス 2DH のモニター プログラム バイトによって決定されます)。 ZZ オペランドに等しい値がマイクロコントローラの TH1 レジスタに設定され、トランシーバの速度が決まります。 オペランドにプラス記号を指定すると、PCON.7 ビットを設定することで速度が XNUMX 倍になります。 PC のシリアル ポートは、110、300、1200、2400、4800、9600、19200、38400、57600 ボー以上で動作できます。 MSC51 シリーズ マイクロコントローラーのシリアル ポートを指定された速度に正確に調整できるかどうかは、使用される水晶振動子の周波数によって異なります。 たとえば、12 MHz の場合、SPEED コマンドのオペランド 300、CC、E600、F1200、および F2400+ を使用して、ポートをそれぞれ 4800、98、6、3、および 3 ボーに設定できます。 11 MHz の共振器を使用すると、9600 ボーを達成できます。 ただし、ファイルを転送する場合、MK は高速で到着するデータに追いつけない可能性があります。 説明した一連のコマンドは、モニターを再送信することなく、また ROM を消去することなく拡張および補足することができます。 新しいコマンド ハンドラーは空き領域に配置されます。 コマンド名 (最初の 5 文字は大文字) はアドレス 0ABH から始まり、23 バイトのハンドラー アドレスとバイト XNUMXFFH が続きます。 ハンドラーはアドレス XNUMXFH へのジャンプで終了する必要があります。 以下に記載されているすべてのシングルバイト セル アドレスは、MCU の内部 RAM を指します。 モニターはレジスタ バンク 0 と 2、および位置 20H ~ 3FH を使用します。 スタックはアドレス 50H から増加します。 コマンドの受信と処理から解放されると、マイクロコントローラーは ROM 内のセル 35H と 36H で指定されたアドレスにあるサブルーチンを継続的に実行します。 デフォルトでは 063H です。 このサブルーチンは、P3.4 ビットのステータスを定期的に変更し、HL1 LED をオンおよびオフにします。 点滅の頻度は 3DH セルの内容によって異なります。 このビットを他の目的に使用する場合は、WRITE_35,006A_ コマンドを発行する必要があります。 セル 37H と 38H にはシリアル ポートからの割り込みハンドラーのアドレスがあり、実際にはモニターのバックボーンとして機能し、オペレーター コマンドに対する応答を決定します。 デフォルトでは、ここには 0 が書き込まれます。これは、ROM のアドレス 081H にある標準ハンドラの呼び出しに対応します。 3BH番地に0以外のコードを書き込むことで「エコー」機能を動作させることができます。 シリアル ポート経由で受信したすべてのデータはモニターに送り返されます。 これにより、通信プログラムの「ローカル エコー」がオフになり、必要に応じて、デバッグ モジュールに送信されたすべてのコマンドとその応答がテキスト ファイルに保存されます。 アドレス 3AH の数値は、モニターによるコマンドの受信とその応答の間の休止時間を設定します。これは、一部の通信プログラムを送信から受信に切り替えるために必要です (これは「Telemax」には必要ありません)。 これは、一時停止の長さ (秒) に 50 を乗算したものと等しくなります。 メモリ ブロックを操作するコマンド (LOAD、SAVE、CHECK、FILL、COPY) の結果の 39 つは、セル XNUMXH に配置されるブロック チェックサムです。 これを使用して、リストされたコマンドの正しい実行を制御できます。 モニターは、多くのアセンブラーによって生成された Intel HEX フォーマット ファイルを直接受け入れることができます。 通信プログラムを使用するか、単に MSDOS COPY <ファイル名> COM2 コマンドを使用して、このようなファイルを PC のシリアル ポートに送信するだけで十分です。 事前に使用されるポート (この場合は COM2) は、MODE COM2:4800,N,8,1 コマンドで設定する必要があります。 情報はデバッグ モジュールの外部データ メモリに書き込まれ、チェックサムが一致しない場合は、対応するメッセージが表示されます。 Intel HEX ファイルの各行はコロンで始まり、その後にスペースを含まない XNUMX 桁の XNUMX 進数で表されるバイトが続きます。
HEX ファイルは常に、コロンとゼロのデータ バイトとアドレスを含む行で終わり、その後に最後の行文字 (01) と FF に等しいチェックサムが続きます。 表 3 は、表 2 に従って DATA Monitor コマンドによって入力されたデータと同じデータを含むファイルの例を示しています。 著者: V. Ogleznev、イジェフスク 他の記事も見る セクション マイクロコントローラー. 読み書き 有用な この記事へのコメント. 科学技術の最新ニュース、新しい電子機器: 庭の花の間引き機
02.05.2024 最先端の赤外線顕微鏡
02.05.2024 昆虫用エアトラップ
01.05.2024
その他の興味深いニュース: ▪ 野菜地雷探知機 ▪ 嘘は脳を変える
無料の技術ライブラリの興味深い資料: ▪ 記事 A. V. スヴォーロフはどのような功績により陸軍元帥に昇進しましたか? 詳細な回答 ▪ 記事 高感度の簡易金属探知機。 無線エレクトロニクスと電気工学の百科事典 ▪ 記事マイクロHPP。 無線エレクトロニクスと電気工学の百科事典 このページのすべての言語 ホームページ | 図書館 | 物品 | サイトマップ | サイトレビュー www.diagram.com.ua |