モトローラ 68HC12

68HC12
デザイナーフリースケール・セミコンダクタ
ビット8ビット/ 16ビット
デザインCISC
エンコーディング変数
エンディアン大きい
レジスター
8
68HC12上で動作するDragon12-Pマイクロコントローラ評価ボード

68HC12 ( 6812またはHC12とも略される)は、モトローラ・セミコンダクター(後にフリースケールNXP )のマイクロコントローラファミリーです。1990年代半ばに初めて導入されたこのアーキテクチャは、フリースケール68HC11の拡張版です。HC11用に作成されたプログラムは通常、いくつかの追加命令を持つHC12と互換性があります。最初の68HC12派生製品は、最大バス速度8MHz  フラッシュメモリ容量は最大128KBでし 

建築

68HC11と同様に、68HC12は2つの8ビットアキュムレータAとB(AとBを組み合わせて16ビットの演算を可能にする場合は、単一の16ビットアキュムレータDと呼ばれます )、2つの16ビットプロセッサレジスタXとY、16ビットプログラムカウンタ、16ビットスタックポインタ、および8ビット条件コードレジスタを備えています。68HC11とは異なり、このプロセッサは16ビットの内部データパスを備えています。

68HC12は、68HC11の命令の一部を追加、または6809プロセッサに近い新しい形式に置き換えています。さらに重要な点として、命令エンコーディングの密度が大幅に向上し、6809に類似した多くのインデックス機能が追加され、中にはより柔軟性の高いものもあります。その結果、コードサイズは平均で30%縮小されています。[ 1 ]

HCS12/MC9S12誘導体

2000 年以降、このファミリは、最大 25 MHz のバス速度と最大 512 KB のフラッシュ サイズを備えた MC9S12 派生製品の導入により拡張されました。

MC9S12NE64はフリースケール社が2004年9月に発表した「業界初のシングルチップ高速イーサネットフラッシュマイクロコントローラ」です。25MHzのHCS12 CPU、64KBのフラッシュEEPROM、8KBのRAM、そして10/  100Mbpsイーサネットコントローラを搭載しています。

MC9S12X派生製品

2004年に発売されたMC9S12XDP512は、バス速度40MHzと、XGATEと呼ばれる周辺コプロセッサを搭載しており、CPUから一部のタスクをオフロードできます。S12X派生版のCPUには、パフォーマンスを向上させるための新しい命令もいくつか搭載されています。

フリースケールは、S12X ファミリを 50 MHz のバス速度までさらに拡張し、メモリ保護ユニット (セグメンテーションに基づく) とエミュレートされたEEPROMを提供するハードウェア スキームを追加したMC9S12XEP100 を2006 年 5 月に発表しました。

HCS12 製品には単一のプロセッサが含まれており、HCS12X には追加の XGATE 周辺プロセッサが搭載されています。

S12X ファミリは、64KByte を超えるアドレス指定に主に 2 つの方法を提供します。

  • 64 KB ローカルマップ内のページメモリ領域: ページプログラムデータの PPAGE、ページ RAM の RPAGE、ページ EEPROM/フラッシュの EPAGE
  • グローバルアドレス指定は、 8MBのアドレス空間内の任意のアドレスへのアクセスを許可します 。GPAGEは特殊なオペコード(gldaaなど)と組み合わせて使用​​されます。

XGATE

XGATEコプロセッサは、メインバスクロックの2倍で動作する16ビットRISCプロセッサです。割り込み処理のみを行い、バックグラウンドループは実行しないため、S12Xコアの負荷を軽減します。XGATEの初期バージョンでは、現在処理中の割り込みを、より優先度の高い割り込みがプリエンプトすることができませんが、9S12XEP100(およびその他)に搭載されている「XGATEV3」では、これが可能になります。S12XはXGATEコアのソフトウェア割り込みをトリガーすることができ、その逆も可能です。セマフォシステムが実装されており、S12XコアとXGATEコアは周辺機器へのアクセスを同期させることができます。

通常、XGATEコードはデバイスの起動時にRAMにコピーされ、その後RAMから実行されるため、速度が向上します。XGATEはページングのない64KBの部分的なアドレス空間を備えています。レジスタはアドレスを共有しますが、フラッシュメモリとRAMはコア間で異なるアドレスに配置されます。(詳細はデータシートをご覧ください。)

参考文献

  1. ^ Sibigtroth, James M. (1996)「M68HC11 コードの M68HC12 デバイスへの転送」、Motorola Semiconductor アプリケーション ノート AN1284/D、Motorola。

さらに読む