ARM7ベースのLPC2148マイクロコントローラアーキテクチャの概要

問題を排除するために楽器を試してください





ARM(Advanced RISC Machine)は、さまざまなアプリケーション向けにさまざまな機能とさまざまなコアを備えたいくつかのプロセッサを発売しました。最初のARMアーキテクチャ設計には26ビットプロセッサがありましたが、現在は64ビットプロセッサに達しました。 ARM製品の一般的な拡張は、特定の情報に分類することはできません。しかし、ARM製品はそのアーキテクチャに基づいて理解できます。市場で入手可能な標準のARMシリーズプロセッサは、ARM7からARM11までです。これらのプロセッサには、キャッシュ、データ密結合メモリ、MPU、MMUなどのいくつかの機能があります。広く知られているARMプロセッサシリーズには、ARM926EJ-S、ARM7TDMI、ARM11MPCoreなどがあります。この記事は、ARM7ベースのLPC2148マイクロコントローラアーキテクチャの概要を特に対象としており、 マイクロコントローラー 建築。

ARM7ベースのLPC2148マイクロコントローラーアーキテクチャ

ARM7は32ビットの汎用です マイクロプロセッサ 、およびそれは、わずかな電力使用率、および高性能などのいくつかの機能を提供します。 ARMのアーキテクチャは、 RISCの原則 。関連するデコードメカニズム、およびRISC-命令セットは、 マイクロプログラムされたCISC -複雑な命令セットコンピュータ。




パイプライン方式は、アーキテクチャ内のすべてのブロックを処理するために使用されます。一般に、単一の命令セットが実行され、次にその子孫が変換され、3rd-命令はメモリから取得されています。

独占 ARM7のアーキテクチャ計画 はThumbと呼ばれ、コードのコンパクトさが問題となる大量のアプリケーションに最適です。ARM7は、Thumbという独自のアーキテクチャも使用しています。コードの密度が問題となるメモリ制限により、さまざまなアプリケーションに完全に適しています。



ARM7ベースのマイクロコントローラー(LPC2148)アーキテクチャ

ARM7ベースのマイクロコントローラー(LPC2148)アーキテクチャ

割り込みソース

すべての周辺機器は、VIC(ベクトル割り込みコントローラー)に関連付けられた単一の割り込みラインで構成されていますが、内部にさまざまな割り込みフラグを含めることができます。個々の割り込みフラグは、1つ以上の割り込みリソースを示すこともできます。


オンチップフラッシュプログラムメモリ

マイクロコントローラLPC2141 / 42/44/46/48には、それぞれ32キロバイト、キロバイト、128キロバイト、256キロバイトのようなフラッシュメモリが含まれています。このフラッシュメモリは、データストレージとコードの両方に使用できます。フラッシュメモリのプログラミングは、シリアルポートを介してシステムで実行できます。

プログラムアプリケーションは、プログラムのアプリケーションの実行中に消去されることもあり、データストレージフィールドのファームウェアの改善などの柔軟性が得られます。オンチップブートローダーのアーキテクチャソリューションが選択されているため、マイクロコントローラーLPC2​​141 / 42で使用可能なメモリ/ 44/46/48は、32キロバイト、キロバイト、128キロバイト、256キロバイト、および500キロバイトです。これらのマイクロコントローラのフラッシュメモリは、1サイクルあたり100,000の消去と、長年にわたるデータ保存を提供します。

ピン接続ブロック

このブロックにより、ARM7ベースのLPC2148マイクロコントローラの選択されたピンがいくつかの機能を持つことができます。 マルチプレクサ ピンとオンチップ周辺機器の間のリンクを可能にするための構成レジスタによって制御できます。

周辺機器は、トリガーされる前、および接続された割り込みが許可される前に、適切なピンと結合する必要があります。マイクロコントローラの機能は、特定のハードウェア環境でのレジスタのピン選択によるピン制御モジュールによって定義できます。

ポートのすべてのピン(ポート0とポート1)を再配置した後、指定された例外によってi / pとして配置されます。デバッグが許可されている場合

デバッグが許可されている場合、JTAGのピンはJTAGの機能を推測します。トレースが許可されている場合、トレースピンはトレースの機能を推測します。 I2C0ピンとI2C1ピンに接続されているピンはオープンドレインです。

GPIO-汎用パラレル入力/出力

GPIOレジスタは、特定の周辺機能にリンクされていないデバイスピンを制御します。デバイスピンは、i / p [sまたはo / psとして配置できます。個々のレジスタにより、任意の数のo / pを同時にクリアできます。出力レジスタ値とポートピンの現状を読み戻すことができます。これらのマイクロコントローラーは、LPC200デバイス上で加速機能を開始します。

汎用入出力レジスタは、最も可能性の高いI / O時間に使用されるプロセッサバスに移動されます。

  • これらのレジスタはアドレス可能なバイトです。
  • ポートの合計値は次のようになります。
  • ポートの完全な値は、唯一の命令で書き込むことができます

10ビットADC(アナログ-デジタルコンバーター)

LPC2141や42のようなマイクロコントローラーには2つ含まれています ADCコンバーター 、およびこれらは10ビットのみで1つ、LPC2144 / 46/48には2つのADCがあり、これらは10ビットの直線近似ADCのみです。 ADC0には6チャネルが含まれ、ADC1には8チャネルが含まれます。したがって、LPC2141または42のアクセス可能なADC i / psの数は、LPC2141または42の場合は6および14です。

10ビットDAC(デジタル-アナログコンバーター)

DACにより、これらのマイクロコントローラーは変更可能なアナログo / pおよびVを生成できます。REFの最大の出力です デジタルからアナログへ 電圧。

デバイスコントローラー-USB2.0

ユニバーサルシリアルバスは4線で構成されており、多数の周辺機器とホスト間の通信をサポートします。このコントローラーは、トークンに基づくプロトコルを使用してデバイスを接続するためのUSBの帯域幅を許可します。

バスは、ホットプラグの取り外しとデバイスの動的収集をサポートします。すべての通信は、ホストコントローラーを介して開始されます。これらのマイクロコントローラーは、12メガビット/秒のデータをUSBのホストコントローラーに置き換えることができるユニバーサルシリアルバス装置コントローラーを使用して設計されています。

UART

これらのマイクロコントローラには、標準の送信および取得データライン用の2つのUARTが含まれています。以前のマイクロコントローラー(LPC2000)とは対照的に、マイクロコントローラーのUART LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148は、両方のUARTに使用される部分ボーレートジェネレーターを開始し、これらのタイプのマイクロコントローラーが2MHzを超えるすべての水晶周波数で115200のような典型的なボーレートを達成できるようにします。 。さらに、CTS / RTSなどの制御機能は完全にハードウェアで実行されます。

I2CバスのシリアルI / Oコントローラー

LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148の各マイクロコントローラーには 2つのI2C バスコントローラー、これは双方向です。 IC間制御は、SCLとSDAの2本のワイヤを使用して実行できます。ここで、SDAとSCLはシリアルクロックラインとシリアルデータラインです。

すべての装置は、個別のアドレスによって識別されます。ここで、送信機と受信機は、マスターモード/スレーブモードのような2つのモードで動作できます。これはマルチマスターバスであり、それにリンクされた1つ以上のバスマスターによって管理できます。これらのマイクロコントローラーは、最大400 kbit / sのビットレートをサポートします。

SPIシリアル入力/出力コントローラー

これらのマイクロコントローラーには単一のSPIコントローラーが含まれており、指定されたバスに関連付けられた多数のマスターとスレーブを処理することを目的としています。

マスターとスレーブは、指定されたデータ送信全体を通じてインターフェイスを介して会話できます。この間、マスターは常にデータのバイトをスレーブに送信し、スレーブは常にデータをマスターに送信します。

SSPシリアル入力/出力コントローラー

これらのマイクロコントローラーには単一のSSPが含まれており、このコントローラーはSPI、Microwireバス、または4線式SSIで処理できます。複数のマスターおよびスレーブのバスと通信できます

ただし、特定のマスターとスレーブは、指定されたデータ送信全体を通じてバス上で会話できます。このマイクロコントローラは、マスター(スレーブ)およびスレーブ(マスター)からのデータのフローに使用される4〜16ビットのデータフレームによる全二重転送をサポートします。

タイマー/カウンター

タイマーとカウンター PCLK(ペリフェラルクロック)サイクルをカウントするように設計されており、オプションで4マッチレジスタに基づいて割り込みを生成します。

また、i / p信号が変化したときにタイマーの値をキャッチする4つのキャプチャi / psで構成されています。特定のキャプチャを実行するために、いくつかのピンを選択できます。これらのマイクロコントローラは、最小の外部パルスが同等である場合、キャプチャの入力で外部イベントを計算できます。この配置では、アイドルキャプチャラインを通常のタイマーキャプチャi / psとして選択できます。

ウォッチドッグタイマー

ウォッチドッグタイマーは、妥当な時間内にマイクロコントローラーをリセットするために使用されます。許可されている場合、コンシューマプログラムが一定の時間内にタイマーのリロードに成功しなかった場合、タイマーはシステムのリセットを生成します。

RTC-リアルタイムクロック

RTCは、アイドルまたは通常の操作方法が選択された時間を計算するためのカウンターを提供することを目的としています。 RTCは少量の電力を使用し、中央処理装置が常に機能していない適切なバッテリー駆動の配置用に設計されています

パワーコントロール

これらのマイクロコントローラは、パワーダウンモードとアイドルモードなどの2つの凝縮電力モードをサポートしています。アイドルモードでは、割り込みまたはRSTが発生するまで命令の実行のバランスが取られます。周辺機器の機能は、アイドルモード全体で動作を維持し、割り込みを生成してCPUの終了を再開させることができます。アイドルモードは、CPU、コントローラー、メモリシステム、および内部バスによって使用される電力を取り除きます。

パワーダウンモードでは、オシレータは非アクティブになり、ICは内部クロックを取得しません。周辺レジスタ、レジスタを備えたプロセッサの状態、内部SRAM値は、パワーダウンモード中に保存され、チップロジックレベルの出力ピンは固定されたままです。

このモードは終了でき、クロックなしで動作できる特定の割り込みによって共通プロセスを再開できます。チップ動作のバランスが取れているため、パワーダウンモードではチップの電力使用率がほぼゼロになります。

PWM-パルス幅変調器

PWMは通常のタイマーブロックに基づいており、すべての機能を備えていますが、LPC2141 / 42/44/46/48などのマイクロコントローラーではパルス幅変調機能が固定されています。

タイマーは、PCLK(ペリフェラルクロック)サイクルを計算し、オプションで、7マッチレジスタに基づいて特定のタイマー値が発生したときに割り込みを生成することを目的としています。PWM機能もマッチレジスタイベントに依存します。

境界位置の増減を個別に制御する機能により、パルス幅変調をいくつかのアプリケーションに利用できます。たとえば、多相の一般的なモーター制御では、すべてのパルス幅と位置を個別に制御することにより、PWMの3つの重複しない出力を使用します。

VPBバス

VPB分周器は、CCLK(プロセッサクロック)とPCLK(周辺機器が使用するクロック)間の関連付けを解決します。この仕切りは2つの目的で使用されます。最初の使用法は、VPBバスを使用して優先PCLKによって周辺機器に電力を供給し、ARMプロセッサの選択された速度で動作できるようにすることです。これを実現するために、このバス速度をプロセッサのクロックレートを1⁄2 -1⁄4から下げることができます。

このバスは電源投入時に正確に動作する必要があり、RST(リセット)でのデフォルト状態は、バスがプロセッサクロックレートの1/4で動作するためです。これの2番目の使用法は、アプリケーションが完全なプロセッサレートで動作するために周辺機器を必要としない場合はいつでも、省電力を可能にすることです。 VPBディバイダーはPLLの出力に関連付けられているため、これはアイドルモードの間アクティブのままです。

エミュレーションとデバッグ

マイクロコントローラ(LPC2141 / 42/44/46/48)は、シリアルポート-JTAGを介してエミュレーションとデバッグを保持します。トレースポートにより、プログラムの実行をトレースできます。トレース機能とデバッグの概念は、port1およびGPIOと多重化されています。

コードセキュリティ

これらのマイクロコントローラのコードセキュリティ機能LPC2141 / 42/44/46/48により、検査から保護またはデバッグできるかどうかを制御する機能が可能になります。

したがって、これはすべてARM7ベースのLPC2148マイクロコントローラアーキテクチャに関するものです。上記の記事から、最後に、ARMはマイクロコントローラーだけでなく多くのプロセッサーで使用されているアーキテクチャーであると結論付けることができます。ここにあなたへの質問があります、ARMプロセッサのアーキテクチャは何ですか?