이 블로그는 임베디드 컴퓨터를 이용한 장치(시스템) 개발과 원격제어에 필요한 지식을 공유 하기 위한 블로그 입니다.
실제 개발과 프로그램 예를 위하여 Microchip 사의 ATmega128를 사용한 보드와 Arduino Mega 보드(ATmega2560), Raspberry Pi, Raspberry Pi Pico, WiFi 모듈을 사용 합니다.

Rg 사이의 Data 전달과 I/O Operation

Rg - Rg Transfer Operation
          Rg - Rg Data Transfer Operation 과 I/O Operation

      Microprocessor와 같은 Digital System에서 한 Rg에서 다른 Rg로 data를 전달 하는 Operation이 대단히 중요 하다.

      이 예에서는 Rg A의 Data를 Rg B로 전달 하는 Operation과 Rg B의 Data를 Rg A로 전달 하는 Operation 예를 보인다.

      A-Rg가 Microprocessor 내부의 Data Rg이고, B-Rg가 입력 장치에서 Data를 받는 Rg 인 경우 A-Rg에 B-Rg의 Data을 전달 하는 동작은 Input Operation이 되고 이때 B-Rg는 Input Port 가 된다.

      A-Rg가 Microprocessor 내부의 Data Rg이고, B-Rg가 출력 장치에서 Data를 보내는 Rg 인 경우 B-Rg에 A-Rg의 Data을 전달 하는 동작은 Output Operation이 되고 이때 B-Rg는 Output Port 가 된다.

Rg - Rg Data Transfer Oeration A-Rg Di1 Do1 CP1(Clock) OE1 B-Rg Di2 Do2 CP2(Clock) OE2 Rg-Rg Data Transfer 이 예에서는 Rg A의 Data를 Rg B로 전달 하는 Operation과. Rg B의 Data를 Rg A로 전달 하는 Operation 예를 보인다. 아래 버튼은 Animation을 이용 하여 시각적으로 Rg 사이의 Data 전달에 대한 이해를 돕기 위한 예 이다. Rg B <- Rg A Transfer Operation 1. A-Rg의 OE1 신호가 Enable 되면 A-Rg에 저장된 data(Do1)이 B-Rg 입력 Line(Di2)에 출력 된다. 2. B-Rg의 CP2(Clock Pulse)의 Leading Edge 에서 Di2 Data가 B-Rg에 저장 된다. 3. A-Rg의 Data가 B-Rg에 복사 되기 때문에 이 동작이 종료된 후에는 A-Rg와 B-Rg가 동일한 값(Data)을 갖는다. Rg A <- Rg B Transfer Operation 1. B-Rg의 OE1 신호가 Enable 되면 B-Rg에 저장된 data(Do2)이 A-Rg 입력 Line(Di1)에 출력 된다. 2. A-Rg의 CP1(Clock Pulse)의 Leading Edge 에서 Di1 Data가 A-Rg에 저장 된다. 3. B-Rg의 Data가 A-Rg에 복사 되기 때문에 이 동작이 종료된 후에는 A-Rg와 B-Rg가 동일한 값(Data)을 갖는다.