부제목: 20일차
일정: 2023.11.22(수)
수업 내용:
- UART 제어
목표:
UART 제어
• 병렬 통신(Parallel communication)
: 여러 개의 라인을 통해 동시에 데이터를 전송
: 고속 데이터 통신이 가능하지만 통신 거리에 제한이 있음
• 직렬 통신(Serial communication)
: 하나(또는 2-3개)의 라인을 통해 데이터를 전송
: 통신 속도는 병렬 통신에 비해 느리지만 먼 거리까지 통신이 가능함
: 동기식, 비동기식 직렬 통신
• 동기식 시리얼 통신(Synchronous communication)
: 데이터 라인 외에 기준 clock인 동기 clock 라인이 있음
: 데이터를 기준 clock에 동기 되어 순차적으로 송수신 함
: 비동기 방식에 비해 비용이 많이 들지만 통신의 안정성이 좋음
• 비동기식 시리얼 통신(Asynchronous communication)
: 동기 clock 없이 데이터만을 송수신 함
: 데이터의 전송 속도 및 기타 사항을 송수신부간에 동기 시킴
• ATmega128은 동기 및 비동기 전송모드에서 전이중 통신(송수신 동시가능)이 가능한 USART 2개를 내장
• 특징 : 전이중 Full-duplex transmission
: 높은 정밀도의 Baud Rate Generator 내장 : 5~9비트의 데이터 비트와 1~2비트의 스톱 비트 설정
: Noise filtering 내장 : 짝수 또는 홀수 Parity bit 설정 : 3개의 인터럽트 소스
송신 완료, 송신데이터 Empty, 수신 완료
• 용어 : Baud, bps Baud는 직렬 통신에서 전송 속도의 단위, bps(bit per second) 개념 : Parity bit - 통신 정상 전송 검출 bit (Data 전송 오류를 탐지하기 위한 bit
Parity bit
• 데이터 이전 과정에서 발생하는 오류(error)를 탐지하기 위해. 1개의 비트, 단어 또는 이보다
큰 단위를 기준으로 하여, 그 안에 포함된 2진 숫자인 0이나 1의 수를 동일하게 만들어 주는
것. 이러한 목적을 위해서 데이터에다 불필요한 0 또는 1을 첨가하는데 이를 패리티 비트라고
한다.
• 패리티에는 이븐 패리티(even parity)와 오드 패리티(odd parity)가 있다. 이븐 패리티에서는
한 단어 안에 있는 데이터를 구성하는 1의 수가 홀수이면, 패리티 비트가 1, 짝수이면 0이 된
다. 오드 패리티에서는 반대로 한 단어 안의 1의 수가 짝수이면 패리티 비트가 1이 되고, 홀수
이면 0이 된다. 즉, 이븐 패리티에서는 1의 수가 짝수가 되고, 오드 패리티에서는 1의 수가 홀
수가 되도록 한다. 데이터 이전 과정에서 이 패리티의 상태를 점검하는 것을 패리티검사
(parity check)라고 한다. 이때, 패리티의 상태가 올바르지 않으면 패리티 오류(parity error)
가 발생한다.
• 패리티 비트 값은 다음 식에 의해 구해짐
𝑃_𝑒𝑣𝑒𝑛 = 𝑑_(𝑛−1)⊕…⊕𝑑_3 ⊕𝑑_2 ⊕𝑑_1 ⊕𝑑_0 ⊕0 (1의 수가 홀수면 +1, 짝수면 +0)
𝑃_𝑜𝑑𝑑 = 𝑑_(𝑛−1)⊕…⊕𝑑_3 ⊕𝑑_2 ⊕𝑑_1 ⊕𝑑_0 ⊕1 (1의 수가 짝수면+1, 홀수면 +0)
• Register
: UDR0, UCSR0A, UCSR0B, UCSR0C, UBRR0H, UBRR0L
: UDR1, UCSR1A, UCSR1B, UCSR1C, UBRR1H, UBRR1L
• UDRn (USARTn Data Register)
: 전송/수신 데이터 버퍼 레지스터
: 전송/수신 데이터 버퍼가 동일하지만 내부적으로 별개의 레지스터
전송은 UDR에 WRITE, 수신은 UDR에서 READ
'[Intel] 엣지 AI SW 아카데미 > 펌웨어 프로그래밍 75hour' 카테고리의 다른 글
[Intel] 엣지 AI SW 아카데미 23일차 (부산상공회의소 인력개발원) (1) | 2023.12.17 |
---|---|
[Intel] 엣지 AI SW 아카데미 22일차 (부산상공회의소 인력개발원) (1) | 2023.12.17 |
[Intel] 엣지 AI SW 아카데미 19일차 (부산상공회의소 인력개발원) (2) | 2023.12.04 |
[Intel] 엣지 AI SW 아카데미 18일차 (부산상공회의소 인력개발원) (0) | 2023.12.04 |
[Intel] 엣지 AI SW 아카데미 17일차 (부산상공회의소 인력개발원) (0) | 2023.11.30 |