ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [마이크로프로세서] ATmega128 명령어 실행
    학점은행제/마이크로프로세서 2021. 1. 15. 11:32

    명령어 인출

    • 프로그램 카운터(PC)가 가리키는 명령어가 명령어 레지스터(IR)로 인출함
    • 프로그램 카운터의 값은 명령어 레지스터 크기만큼 증가함
    • * 프로그램 카운터(PC)란 명령어를 차례대로 인출해서 응용 프로그램을 실행하는 일종의 CPU다
    • * 산술 연산 전문 처리 프로세서 : ALU

     

    명령어 실행

    • 명령어 분석
    • ALU에 오퍼랜드 인가
    • ALU 연산 실행 및 결과 기록

     

    명령어 인출과 실행

     

    한 클록에 수행되는 명령어 실행 동작

     

    산술연산 및 논리연산 명령어

    • 통상 명령어들은 1클록이 소요됌
    • 결과를 저장하기 위해 한 개의 8비트 레지스터가 사용됌
    • ADIW 명령어는 2클록이 소요됌
    • 2개의 레지스터(16비트 워드 단위)에 결과를 기록해야 함

     

    데이터 이동 명령어

    • 어셈블리 기계어에 가장 가깝게 되어있다.
    • 레지스터와 레지스터 : 1보통 1 클록 소요
    • 레지스터에 즉시 값전달 : 보통 1클록 소요
    • 레지스터와 메모리 : 보통 2클록 소요
    • 레지스터와 I/O공간 : 보통 1클록 소요

     

    프로그램 흐름제어 명령어

    분기되지 않을 경우 프로그램 흐름

    • PC가 가리키는 플래시 프로그램 메모리에서 명령어 인출
    • PC는 1씩 하드웨어적으로 증가하면서 연속적으로 명령어를 수행

     

    분기되는 명령

    • 분기 명령으로 PC에서 가리키는 주소를 변경
    • 연속적인 명령어의 수행 흐름을 제어

     

    분기 명령어 길이

    • 변위 주소방식 : 1워드
    • 즉시 어드레싱 모드 (주소값을 가져오는 것) : 2 (명령어 길이 + 즉시 주소 길이)

     

    서브루틴 호출과 복귀

    1) RCALL, CALL 명령어에 의한 서브루틴 호출 동작

    • PC, 명령어 레지스터(IR), 스택(STACK), 스택 포인터(SP)와 연계된 동작
    • 서브루틴이 호출되기 전에 되돌아올 명령어 주소를 스택에 저장
    • PC의 값은 서브루틴의 시작 주소 k로 바뀜

    2) RET 또는 IRET 명령어에 의한 서브루틴에서 복귀 동작

    • 스택에 저장한 주소로 PC를 복귀
    • 서브루틴 호출 이후의 명령어 실행

     

    메모리

    1) 플래시 프로그램 메모리

    • 비휘발성 메모리이기 때문에 전원이 없어도 데이터를 계속 유지함
    • 128kbyte 크기의 플래시 프로그램 메모리가 내장되어 있음
    • 쓰기, 지우기를 반복할 수 있기 때문에 프로그램을 직접 변경하면서 ISP (In System Programming) 방법으로 개발함

     

    2) 데이터 메모리 (SRAM)

    • 컴퓨터의 주기억장치로 사용됌
    • 처리속도가 굉장히 빠르고 가격이 높다
    • 프로그램에서 선언한 변수와 스택을 위해 읽고, 쓰기를 빠르게 수행할 수 있는 주 메모리
    • 휘발성 메모리이므로 전원이 없으면 데이터 소멸됌
    • SRAM 4kbyte를 내장함
    • 전세계 메모리 시장의 약 60%가 삼성전자가 공급하고 있고, 인텔이 2위, SK하이닉스가 3위

     

    3) EEPROM

    • 프로그램 실행중 생성된 데이터를 전원 없이도 유지시키기 위해서 EEPROM 사용
    • 4kbyte 
    • 주기억장치가 부족할때 내장메모리를 추가로 장착할 수 있다.

     

    4) 외부 메모리 

    • 내장된 4[Kbyte] SRAM이 부족할 경우, 외부 메모리를 추가로 장착할 수 있음
    • ATmega103 비호환모드일 때는 주소 0x1100부터 사용 가능

     

     

    타이머/카운터

    1) 8비트 타이머/카운터타이머/카운터0과 타이머/카운터2

    자동 카운팅 동작

    비교일치 출력 동작

    TCNTn 레지스터는 카운터에 인가되는 매 클록마다 1씩 증가 TCNTn 레지스터와 OCRn(n은 0 또는 2) 레지스터 값을 비교
    4가지 파형 발생 모드 : 정상 모드, CTC 모드, 고속 PWM 모드, 위상 정정 PWM 모드 일치되면 OCn(n은 0 또는 2) 출력 핀의 펄스값을 바꿀 수 있음
      모터, 조명 등 다양한 기기에 공급되는 전력을 조절 제어할 수 있음

     : 작은 장비들에 설치해서 사용할 수 있다

     

     

     

    2) 16비트 타이머/카운터타이머/카운터1, 타이머/카운터3

    • 8비트 타이머/카운터와 유사함. 다양한 펄스를 생성
    • 각 타이머/카운터에 A, B, C 세 개의 출력 비교 OCRnx(n은 1 또는 3, x는 A~C) 레지스터
    • TCNTn(n은 1 또는 3) 카운터와 16비트 비교에 의해 조절되는 듀티비 출력 펄스를 OCnx(n은 1 또는 3, x는 A~C) 핀에 만들 수 있음.
    • * 주 파형 발생모드 : 정상모드, CTC 모드, 고속 PWM 모드, 위상 정정 PWM 모드, 위상 및 주파수 정정 PWM 모드

     

    직렬 통신 장치

    1) USART
    - 범용 동기/비동기 수신 및 송신기
    - 송수신을 동시에 진행할 수 있는 양방향 통신
    - 프레임을 수신할 때는 반드시 시작 비트(Start bit)부터 시작
    - 특정 레지스터로 통신 속도를 바꿀 수 있음.
    - 프레임 비트 수를 5, 6, 7, 8, 9 중 하나로 정할 수 있음.(보통 8비트 사용)
    - 프레임과 프레임 사이의 전송이 중지된 정지 비트는 1 또는 2
    - 패리티 검사, 데이터 오버런(Data OverRun) 검사, 프레임 에러 검사
    - 2개의 독립된 USART 장치
    - 송신 완료, 수신 완료, 송신 데이터 비어 있음. 인터럽트


    2) SPI 통신
    - 직렬 주변 장치 인터페이스(SPI, Serial Peripheral Interface)
    - 동기식 데이터 전송 방식
    - 마스터와 슬레이브를 정하여 통신
    - MOSI, MISO, SCK, /SS 신호 사용
    - 마스터 주관 아래 양방향 통신의 전이중(Full Duplex) 통신
    - 8비트 시프트 레지스터를 이용하여 LSB를 먼저, MSB를 나중에 전송

     

    3) TWI 시리얼 통신

    -시리얼 통신 포트
    -마스터와 슬레이브(서버와 클라이언트)로 단 2가닥 선만을 이용하여 데이터를 전송

    -클록에 해당되는 SCL(Serial CLock)
    -신호와 데이터가 이동하는 SDA(Serial DAta)

    ­-장치 사이에 연결되는 선이 간단
    -최대 128개 장치 사이에 데이터 전송
    -TWI 통신에 사용되는 장치는 고유의 주소를 가짐.
    -최대 400[KHz]의 속도로 데이터를 전송

     

    4) 1990년에 IEEE Std. 1149.1로 표준화된 Boundary-Scan 규격
    - PCB 또는 PCB 내의 IC 내부를 테스트
    - IC 내부를 관찰하거나 디버깅할 때도 광범위하게 사용
    - 4개 신호 사용 : TDI, TDO, TCK, TMS


    5) JTAG 인터페이스로 디버깅 수행 가능
    - 프로그램 카운터, 스택 포인터, 상태 레지스터 등 특수 레지스터
    - 범용 레지스터
    - 내부 주변 장치 레지스터 정보

    - 롬과 램이 들어있음

    - SRAM 데이터
    - EEPROM과 플래시 프로그램 메모리 데이터

     

    ISP(In System Programming)

     

    1) EPROM

    - 예전에 ROM을 사면 이미 프로그램이 되어 있어서 재사용이 안되어서 아깝다고 생각이 되었음 그래서 썼다 지울수 있는 롬을 개발하게 됌
    - 예전 개발자들은 주로 자외선으로 데이터를 소거할 때 사용함
    - 자외선으로 데이터 소거함
    - 많은 시행 착오가 있었음

     

    2) ISP
    - 마이크로컨트롤러를 장착한 PCB에 직접 장착하여 시스템을 개발함
    - 프로그램 개발과 하드웨어 디버깅 과정을 한꺼번에 처리할 수 있음
    - 내장된 플래시 메모리에 실행 코드를 직접 다운로드 할 수 있음
    - 개발에서 생산까지 소요되는 시간을 단축 할 수 있음

     

     

    댓글

Today
Designed by Danbee Park.