KyungHee Univ. 2-0 AVR UART Serial I/O AVR UART Serial I/O.

21
KyungHee Univ. 2-1 AVR UART Serial I/O
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    231
  • download

    1

Transcript of KyungHee Univ. 2-0 AVR UART Serial I/O AVR UART Serial I/O.

KyungHee Univ. 2-1

AVR UART Serial I/O

KyungHee Univ. 1-2

Serial I/O Communication

UART(Universal Asynchronous Receiver/Transmitter). DTE(Data Terminal Equipment) DCE(Data Communication Equipment)

UART UART

DTE DCEInterface

KyungHee Univ. 2-3

USART(Universal Synchronous and Asynchronous Receiver/Transmitter) Block Diagram

KyungHee Univ. 2-4

USART and Asynchronous CommunicationSerial frame format

Every frame will have at least 1 start bit data bits (5,6,7,8 or 9) 1-2 stop bit

Parity is optional

KyungHee Univ. 2-5

USART and Asynchronous CommunicationStart Bit 를 Sampling 하기 위하여 16 배 속도의 내부

Clock 를 사용 한다 .중간 부분에서 3 번 Sampling 하여 2 개 이상이 0 이면

0, 2 개 이상이 1 이면 1 로 결정 한다 ..

KyungHee Univ. 2-6

Error detection : Parity Data bits 의 XOR 에 의하여 Parity Bit 를 생성 한다 .

Parity 는 Even 과 Odd Parity 로 구분 한다 .

Peven= dn XOR dn-1 XOR dn-2 ........ XOR d0 XOR 0

Podd= dn XOR dn-1 XOR dn-2 ........ XOR d0 XOR 1

Parity Bit

data bits

KyungHee Univ. 2-7

Error detection : Frame error Frame Error : Stop Bit 가 발견 되지 않는 경우

첫 번째 Stop bit 가 0 으로 검출되는 경우 Data Overrun Error :

수신 버퍼에 현재 읽지 않은 데이터가 들어있는 상태에서 새로운 데이터가 수신 완료되고 , 그 다음 수신 데이터인 Start bit 가 검출된 경유

Stop bits

KyungHee Univ. 2-8

USART and Asynchronous Communication

Logic(0,1) 의 전압 TTL Logic : 0V, 5V

RS-232 : -12V, +12V

MAX232 : Negative와 Positive 전압을 발생 시키는 Charge pump 기능을 포함 함 .

KyungHee Univ. 2-9

Serial Communication 에 사용하는 Connector 예

간단한 RS232 Cable 연결 예

KyungHee Univ. 2-10

ATmega128 USART

UART : Universal Asynchronous Receiver and Transmitter

Asynchronous: 두 장치간에 clock 을 공유 하지 않는다 .

Synchronous: clock 을 공유 한다 .

USART : UART 의 기능과 Synchronous Communication 을 포함 하고 있다 .

Baud rate : 매 초간 전달 ( 수신 , 송신 ) 되는 Symbol 의 수

Data rate : 매 초간 전달 ( 수신 , 송신 ) 되는 Data 수

Data rate = Baud rate / Frame Bits(Data Bits + Start,Stop, Parity Bits)

KyungHee Univ. 2-11

ATmega128 USART

USART0 : Port E 사용 PE0: Receive Pin

PE1: Transmit Pin

PE2: External Clock

USART1 : Port D 사용 PD2: Receive Pin

PD3: Transmit Pin

PD5: External Clock

KyungHee Univ. 2-12

USART Programming Interface

UDRn: 8-bit Data Register

UBRRnH and UBRRnL: Baud Rate Registers

( n 은 0 또는 1)

2 개의 8-bit registersUCSRnA, UCSRnB, UCSRnC: Control andStatus Registers

KyungHee Univ. 2-13

USART Data Registers

UDRn(Usart 0,1 I/O Data Register)UDRn 레지스터는 송 / 수신되는 데이터 값을

저장하는 버퍼 역활을 하게 된다 .UDRn 은 TXBn( 송신버퍼 )/RXBn( 수신버퍼 )

레지스터로 구성되고 , 같은 I/O 주소를 갖는다 .송신할 때는 TXBn 에 데이터를 Write 하고 ,수신할 때는 RXBn 의 테이터를 Read 한다 .

KyungHee Univ. 2-14

Baud Rate Registers USART internal clock 은 the UBRR register 에 의하여

설정 된다 . 12 bits Baud Rate Rg UBRR 의 값은

UBRR = (System Clock / 16XBaud Rate) – 1주의 : UBBRnH Write 후 UBBRnL 를 나중에 Write 하여야 한다 .

KyungHee Univ. 2-15

UBRR register 값과 baud rates 예

KyungHee Univ. 2-16

UCSRnA(USART Control and Status Register A)Bit 7 – RXCn(USART Receive Complete)Bit 6 – TXCn(USART Transmit Complete)Bit 5 – UDREn(USART Data Register Empty)

Transmit Buffer (UDRn) 의 상태를 표시 한다 . Bit 4 – FEn(USART Frame Error)Bit 3 – DORn(USART Data Overrun Error)Bit 2 – UPEn(USART Parity Error)Bit 1 – U2Xn(Double the USART Transmission Speed)

U2Xn = 1 : 비동기 모드에서 클럭의 분주비를 16에서 8 로 낮추어 전송속도를 2 배 높이는 기능 .

Bit 0 – MPCMn(USART Multi-Processer Communication Mode)

KyungHee Univ. 2-17

UCSRnB(USART Control and Status Register B)Bit 7 – RXCIEn(USART RX Complete Interrupt Enable)Bit 6 – TXCIEn(USART TX Complete Interrupt Enable) Bit 5 – UDRIEn(USART Data Register Empty Interrupt

Enable)Bit 4 – RXENn(USART Receiver Enable)Bit 3 – TXENn(USART Transmitter Enable)Bit 2 – UCSZn2(USART Character Size)

UCSTnC 의 UCSZn1:0 와 함께 사용 함 .Bit 1 – RXB8n(USART Receive Data Bit 8)Bit 0 – TXB8n(USART Transmit Data Bit 8)

KyungHee Univ. 2-18

UCSRnC(USART Control and Register C)

Bit 6 – USMSELn(USART Mode Select) USMSELn = 1 : 동기전송모드 USMSELn = 0 : 비동기전송모드

Bit 5, 4 – UPMn1, UPMn0(USART Parity Mode)

fdevopen UPMn0 Parity Mode

0 0 Disabled

0 1 (Reserved)

1 0 Enabled, Even Parity

1 1 Enabled, OddParity

KyungHee Univ. 2-19

UCSRnC(USART Control and Register C)

Bit 3 – USBSn(USART Stop Bit Select) USBSn = 0 : 1 Stop bits USBSn = 1 : 2 Stop bits

Bit 2, 1 – 다음 페이지 참고요Bit 0 – UCPOLn(USART Clock Polarity)

동기 전동 모드에서만 사용 . UCPOLn = 1 : 송신데이터는 XCKn Clock Falling Edge 에서 ,

출력 수신데이터는 XCKn Clock Rising Edge 에서 검출 UCPOLn = 0 : 송신데이터는 XCKn Clock Rising Edge 에서 ,

출력 수신데이터는 XCKn Clock Falling Edge 에서 검출

KyungHee Univ. 2-20

UCSRnC(USART Control and Register C)

Character Size : UCSZn2(UCSRnB: Bit2 ), UCSZn1, UCSZn0 의 설정에 따라 5-9Bits 로 결정 된다 .

UCSZn2 UC-SZn1

UCSZn0 Character Size

0 0 0 5-Bit

0 0 1 6-Bit

0 1 0 7-Bit

0 1 1 8-Bit

1 0 0 Reserved

1 0 1 Reserved

1 1 0 Reserved

1 1 1 9-Bit

KyungHee Univ. 2-21

ATmega128 USART 프로그램 예

cho_uart_basic_i_o 참고 요