ARM7 기반 LPC2148 마이크로 컨트롤러 아키텍처 소개

문제를 제거하기 위해 도구를 사용해보십시오





ARM (Advanced RISC Machine)은 다양한 애플리케이션을위한 다양한 코어와 다양한 기능을 가진 여러 프로세서를 출시했습니다. 첫 번째 ARM 아키텍처 디자인에는 26 비트 프로세서가 있지만 이제는 64 비트 프로세서에 도달했습니다. ARM 제품의 일반적인 확장은 일부 특정 정보로 분류 할 수 없습니다. 그러나 ARM 제품은 아키텍처를 기반으로 이해할 수 있습니다. 시장에서 사용 가능한 표준 ARM 시리즈 프로세서는 ARM7부터 ARM11까지입니다. 이러한 프로세서에는 캐시, 데이터 긴밀하게 결합 된 메모리, MPU, MMU 등과 같은 여러 기능이 있습니다. 널리 알려진 ARM 프로세서 시리즈 중 일부는 ARM926EJ-S, ARM7TDMI 및 ARM11 MPCore입니다. 이 기사는 특히 ARM7 기반 LPC2148 마이크로 컨트롤러 아키텍처 개요를 대상으로 작성되었습니다. 마이크로 컨트롤러 건축물.

ARM7 기반 LPC2148 마이크로 컨트롤러 아키텍처

ARM7은 32 비트 범용입니다. 마이크로 프로세서 , 적은 전력 사용률 및 고성능과 같은 일부 기능을 제공합니다. ARM의 아키텍처는 RISC의 원칙 . 관련된 디코딩 메커니즘과 RISC 명령어 세트는 다음과 비교할 때 훨씬 쉽습니다. 마이크로 프로그래밍 된 CISC -복잡한 명령어 세트 컴퓨터.




파이프 라인 방법은 아키텍처의 모든 블록을 처리하는 데 사용됩니다. 일반적으로 단일 명령어 세트가 수행되고 그 하위 항목이 번역되고 3rd-메모리에서 명령을 얻고 있습니다.

독점 ARM7의 아키텍처 계획 Thumb이라고하며 코드의 간결함이 중요한 대용량 애플리케이션에 완벽하게 적합합니다. ARM7은 Thumb이라는 독점 아키텍처도 사용합니다. 코드 밀도가 중요한 메모리 제한으로 인해 다양한 애플리케이션에 완벽하게 적합합니다.



ARM7 기반 마이크로 컨트롤러 (LPC2148) 아키텍처

ARM7 기반 마이크로 컨트롤러 (LPC2148) 아키텍처

인터럽트 소스

모든 주변 장치는 내부에 다양한 인터럽트 플래그를 가질 수 있지만 VIC (벡터 인터럽트 컨트롤러)에 연결된 단일 인터럽트 라인으로 구성됩니다. 개별 인터럽트 플래그는 하나 이상의 인터럽트 리소스를 나타낼 수도 있습니다.


온칩 플래시 프로그램 메모리

마이크로 컨트롤러 LPC2141 / 42 / 44 / 46 / 48은 각각 32 킬로바이트, 킬로바이트, 128 킬로바이트, 256 킬로바이트와 같은 플래시 메모리를 포함합니다. 이 플래시 메모리는 데이터 저장과 코드 모두에 사용할 수 있습니다. 플래시 메모리 프로그래밍은 직렬 포트를 통해 시스템에서 수행 할 수 있습니다.

프로그램 응용 프로그램은 또한 프로그램 응용 프로그램이 실행되는 동안 지워 지므로 데이터 저장 필드 펌웨어 개선 등의 유연성을 허용합니다. / 44 / 46 / 48은 32 킬로바이트, 킬로바이트, 128 킬로바이트, 256 킬로바이트, 500 킬로바이트입니다. 이러한 마이크로 컨트롤러의 플래시 메모리는주기 당 1, 00,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와 같은 마이크로 컨트롤러에는 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 및 VREF의 최대 출력입니다 디지털에서 아날로그로 전압.

장치 컨트롤러 -USB 2.0

범용 직렬 버스는 4 선으로 구성되며 여러 주변 장치와 호스트 간의 통신을 지원합니다. 이 컨트롤러는 토큰 기반 프로토콜을 사용하여 장치를 연결하기 위해 USB 대역폭을 허용합니다.

버스는 핫 플러깅 분리 및 장치의 동적 수집을 지원합니다. 모든 통신은 호스트 컨트롤러를 통해 시작됩니다. 이 마이크로 컨트롤러는 USB의 호스트 컨트롤러로 대체되는 12Mbit / sec 데이터를 허용하는 범용 직렬 버스 장치 컨트롤러로 설계되었습니다.

UART

이러한 마이크로 컨트롤러에는 표준 전송 및 데이터 라인 가져 오기를위한 두 개의 UART가 포함되어 있습니다. 이전 마이크로 컨트롤러 (LPC2000)와 달리 마이크로 컨트롤러 LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148의 UART는 두 UART에 사용되는 부분 보오율 생성기를 시작하여 이러한 유형의 마이크로 컨트롤러가 2MHz 이상의 모든 크리스털 주파수에서 115200과 같은 일반적인 보오율을 달성 할 수 있습니다. . 또한 CTS / RTS와 같은 제어 기능은 하드웨어에서 완전히 실행됩니다.

I2C-bus의 직렬 I / O 컨트롤러

LPC2141 / LPC2142 / LPC2144 / LPC2146 / LPC2148의 각 마이크로 컨트롤러에는 다음이 포함됩니다. 두 개의 I2C 버스 컨트롤러이며 이것은 양방향입니다. IC 간 제어는 SCL과 SDA라는 두 개의 와이어를 사용하여 수행 할 수 있습니다. 여기서 SDA 및 SCL은 직렬 클럭 라인과 직렬 데이터 라인입니다.

모든 장치는 개별 주소로 식별됩니다. 여기에서 송신기와 수신기는 마스터 모드 / 슬레이브 모드와 같은 두 가지 모드에서 작동 할 수 있습니다. 이것은 다중 마스터 버스이며 연결된 하나 이상의 버스 마스터에 의해 관리 될 수 있습니다. 이러한 마이크로 컨트롤러는 최대 400kbit / s 비트 전송률을 지원합니다.

SPI 직렬 입력 / 출력 컨트롤러

이러한 마이크로 컨트롤러는 단일 SPI 컨트롤러를 포함하며 지정된 버스와 관련된 수많은 마스터 및 슬레이브를 처리하도록 설계되었습니다.

단순히 마스터와 슬레이브는 지정된 데이터 전송을 통해 인터페이스를 통해 대화 할 수 있습니다. 이 과정에서 마스터는 지속적으로 데이터 바이트를 슬레이브로 전송하고 슬레이브는 지속적으로 데이터를 마스터로 전송합니다.

SSP 직렬 입력 / 출력 컨트롤러

이러한 마이크로 컨트롤러에는 단일 SSP가 포함되어 있으며이 컨트롤러는 SPI, Microwire 버스 또는 4 선 SSI에서 처리 할 수 ​​있습니다. 여러 마스터 및 슬레이브의 버스와 통신 할 수 있습니다.

그러나 특정 마스터와 슬레이브는 지정된 데이터 전송을 통해 버스에서 대화 할 수 있습니다. 이 마이크로 컨트롤러는 마스터 (슬레이브) 및 슬레이브 (마스터)의 데이터 흐름에 사용되는 4-16 비트 데이터 프레임에 의한 전이중 전송을 지원합니다.

타이머 / 카운터

타이머 및 카운터 PCLK (주변 클럭) 사이클을 계산하고 선택적으로 4- 매치 레지스터를 기반으로 인터럽트를 생성하도록 설계되었습니다.

또한 i / p 신호가 변경 될 때 타이머 값을 포착하기 위해 4 개의 캡처 i / ps로 구성됩니다. 특정 캡처를 실행하기 위해 여러 핀을 선택할 수 있습니다. 이러한 마이크로 컨트롤러는 최소 외부 펄스가 동일한 경우 캡처 입력에서 외부 이벤트를 계산할 수 있습니다. 이 배열에서 유휴 캡처 라인은 일반적인 타이머 캡처 i / ps로 선택 될 수 있습니다.

워치 독 타이머

워치 독 타이머는 적절한 시간에 마이크로 컨트롤러를 재설정하는 데 사용됩니다. 허용 될 때 소비자 프로그램이 고정 된 시간에 타이머를 다시로드하는 데 성공하지 못하면 타이머가 시스템 재설정을 생성합니다.

RTC- 실시간 클록

RTC는 유휴 또는 정상 작동 방법이 선택 될 때 시간을 계산하는 카운터를 제공하기위한 것입니다. RTC는 소량의 전력을 사용하며 중앙 처리 장치가 지속적으로 작동하지 않는 적절한 배터리 전원 구동 장치를 위해 설계되었습니다.

전력 통제

이러한 마이크로 컨트롤러는 전원 차단 모드 및 유휴 모드와 같은 두 가지 응축 전원 모드를 지원합니다. 유휴 모드에서는 인터럽트 또는 RST가 발생할 때까지 명령 실행이 균형을 이룹니다. 주변 장치의 기능은 유휴 모드에서 작동을 유지하며 CPU가 종료를 다시 시작하도록 인터럽트를 생성 할 수 있습니다. 유휴 모드는 CPU, 컨트롤러, 메모리 시스템 및 내부 버스에서 사용하는 전력을 제거합니다.

파워 다운 모드에서는 발진기가 비활성화되고 IC는 내부 클록을 얻지 못합니다. 주변 레지스터, 레지스터가있는 프로세서 상태, 내부 SRAM 값은 파워 다운 모드 동안 보존되며 칩 로직 레벨 출력 핀은 고정 된 상태로 유지됩니다.

이 모드는 종료 될 수 있으며 클록없이 작동 할 수있는 특정 인터럽트에 의해 공통 프로세스가 다시 시작됩니다. 칩 작동이 균형을 이루기 때문에 전원 차단 모드는 칩 전력 사용률을 거의 0으로 줄입니다.

PWM-펄스 폭 변조기

PWM은 일반 타이머 블록을 기반으로하며 모든 기능에 포함되지만 단순히 펄스 폭 변조기 기능이 LPC2141 / 42 / 44 / 46 / 48과 같은 마이크로 컨트롤러에 고정되어 있습니다.

타이머는 PCLK (주변 시계)주기를 계산하고 7- 일치 레지스터를 기반으로 특정 타이머 값이 발생할 때 선택적으로 인터럽트를 생성하기위한 것이며 PWM 기능도 일치 레지스터 이벤트에 의존합니다.

경계 위치의 증가 및 감소를 개별적으로 제어하는 ​​기능을 통해 펄스 폭 변조를 여러 애플리케이션에 활용할 수 있습니다. 예를 들어, 다상을 사용하는 일반적인 모터 제어는 모든 펄스 폭과 위치를 개별적으로 제어하여 PWM의 3 가지 비 중첩 출력을 사용합니다.

VPB 버스

VPB 디바이더는 CCLK (프로세서 클록)와 PCLK (주변 장치에서 사용하는 클록) 간의 연결을 해결합니다. 이 구분선은 두 가지 목적으로 사용됩니다. 첫 번째 용도는 VPB 버스를 사용하여 선호하는 PCLK로 주변 장치를 공급하여 ARM 프로세서의 선택한 속도로 작동 할 수 있도록하는 것입니다. 이를 달성하기 위해이 버스 속도는 프로세서의 클럭 속도를 1⁄2 -1⁄4에서 줄일 수 있습니다.

이 버스는 전원을 켤 때 정확하게 작동해야하고 RST (재설정)의 기본 상태는 버스가 프로세서 클럭 속도의 1/4에서 작동하는 것입니다. 두 번째 용도는 애플리케이션이 전체 프로세서 속도로 작동하는 데 주변 장치가 필요하지 않을 때마다 절전을 허용하는 것입니다. VPB-divider는 PLL의 출력과 연관되어 있기 때문에 이것은 유휴 모드 동안 활성 상태로 유지됩니다.

에뮬레이션 및 디버깅

마이크로 컨트롤러 (LPC2141 / 42 / 44 / 46 / 48)는 직렬 포트 -JTAG를 통해 에뮬레이션 및 디버깅을 보유하고 있으며 추적 포트는 프로그램 실행 추적을 허용합니다. 추적 기능 및 디버깅 개념은 port1 및 GPIO로 다중화됩니다.

코드 보안

이러한 마이크로 컨트롤러 LPC2141 / 42 / 44 / 46 / 48의 코드 보안 기능은 검사로부터 보호 또는 디버깅 할 수 있는지 여부를 제어하는 ​​기능을 허용합니다.

따라서 이것은 ARM7 기반 LPC2148 마이크로 컨트롤러 아키텍처에 관한 것입니다. 위의 기사에서 마지막으로 ARM은 마이크로 컨트롤러뿐 아니라 수많은 프로세서에서 사용되는 아키텍처라는 결론을 내릴 수 있습니다. ARM 프로세서의 아키텍처는 무엇입니까?