USART 송/수신, Visual C# 시리얼 통신
================================== Outline ==================================
USART 송/수신(설정 및 절차)
* 시험 공고
Visual C#시리얼 통신
-----------------------------------------------------------------------------
USART 송신 절차(설정)
1. 제어 레지스터에 대해 필요한 통신 모드를 설정한다.(Baud Rate, Stop bit, Parity)
2. UCSRB Register의 TXEN bit를 set하여 TxD핀이 USART 송신 단자로 사용될 수 있도록 한다.
레지스터 설정은,
UBRR0L/UBRR0H: Baud Rate 설정
UCSRn0으로 Baud Rate를 제외한 설정
USART 송신 절차(전송)
1. 전송할 Data를 송신 버퍼 UDR에 써 준다.
2. UCSRA Register의 UDRE or TXC bit를 체크하여 송신 버퍼에 데이터를 쓸 수 있는지 검사.
//UDRE 플래그 비트는 송신 버퍼가 비어 있는 것만을 나타내지만, TXC 플래그 비트는 송 신 버퍼 및 송신 Shift Register가 비어 있는 상태까지 확인하기 때문에 속도가 느릴 수 있다.
3. 인터럽트 이용 시 UCSRB레지스터에 대응하는 인터럽트 Enable Bit와 SREG의 I Bit를 Set 해주어야 한다.
USART 수신(설정)
1. 제어 레지스터에 필요한 통신모드를 설정한다.
2. Baud Rate레지스터에 사용자 전송속도에 맞는 설정 값을 설정한다.
3. UCSRB에서 RXEN비트를 Set하여 RxD 핀이 수신 단자로 동작하도록 해야 한다.
//송신은 polling, 수신은 interrupt방식
USART 수신(절차)
1. 수신 버퍼(UDR)의 값을 읽기 전에 수신 데이터가 전송되어 수신 버퍼에 저장되어 있는지 UCSRA 레지스터의 RXC 플래그 비트를 검사한다.(RXC = 1 : 아직 읽지 않은 수신 데이터가 수신 버퍼에 있다)
2. RXC 비트는 수신 버퍼를 읽으면 자동 Clear 된다.
//Windows CE에서 HMI를 사용하여 구동시킨다. ex) 네비게이션
//PLC(Programmable Logic Controller): 산업 플랜트의 자동 제어 및 감시에 사용하는 제어장치.
/* 시험공고 */
평가목적:
- 온도 및 조도 정보의 ADC 변환 기술 능력 평가
- Character LCD 제어 능력 평가
- 시리얼 통신에 대한 처리 능력 평가
평가방법
- 보고서(실기)
- 객관식 10문항(필기, 4지선다, 60분)
평가내용
- ADC 변환 기술, Character LCD 제어, 시리얼 통신 기술
평가기준
- 실기: ADC 변환(30점), Character LCD 제어(30점), 시리얼 통신(30점)
- 필기: ADC 용어(2점), ADC Register(3점), Timing Diagram(3점), USART Register(2점)
평가활용:
- 실기 50점 이하: 보고서 재작성 및 재평가
- 필기 5점 이하: 관련 내용 보고서 작성 제출 및 재시험
// 필기 객관식 10문제
- ADC 레지스터가 아닌 것은?
ADC 레지스터는.
- ADMUX, ADCSRA, ADCH/ADCH
- A/D converter의 아날로그 입력 단자에서 디지털 입력 버퍼를 금지시켜 병렬 I/O포트로 동작하지 못하도록 하는 기능을 수행하여 디지털 입력 버퍼에서 소비 전력을 절약하는데 이바지하는 레지스터를 모두 고르시오.
- 다음 중 A/D 컨버터의 동작을 설정하거나 동작 상태를 표시하는 기능을 수행하는 레지스터는 무엇인가
- 다음 중 A/D변환 오차에 대한 설명으로 틀린 것
- Crystal이 10mhz일 때 9600 bps의 Buad Rate를 만들고자 할 때 UBRR0l 및 UBRRnH에 적용해야 할 값은?
- LCD 타이밍 차트 보는 법
- ADC 잡음 제거 방법으로 옳지 않은 것은?
- USART와 관련이 없는 레지스터는?
지난 시간에 Visual C#을 활용하여 LED전구에 불을 켜고 끈 것에 이어 문자를 보내 화면에 출력하는 실습을 해보자!
우선 text상자를 만들고,

시리얼포트 -> 이벤트에서 다음과 같이 설정해 준다.
