Download presentation
Presentation is loading. Please wait.
Published byChristine Eleanore McKenzie Modified 5년 전
1
ATmega128의 USART통신의 활용 Robotics_LAB 발표자 : 유 홍 선
2
USART 제어 USART 특징 동기 모드 : Master(내부클럭). Slave(외부클럭:XCKn)
ATmega128에는 같은 기능을 가지는 USART0, USART1 통신 관련 회로를 가지고 있다. USART = Universal Synchronous and Asynchronous serial Receiver and Transmitter USART 특징 동기 모드 : Master(내부클럭). Slave(외부클럭:XCKn) 비동기 모드 : 내부클럭사용 멀티프로세서 통신 높은 정밀도의 보레이트발생기 내장 전송데이터 5~9비트 설정 스톱비트 1~2설정 페리티비트 설정(사용, 미사용, 짝수/홀수패리티 선택) 에러검출기능(페리티에러, 오버런에러, 프레임에러) 노이즈필터링(3번 샘플링 동작)
3
USART 제어 USART 구성 USART 인터럽트 클럭발생부 : 보레이트발생기, 외부클럭입력 회로
비동기 일반모드 : 내부클럭으로 보레이트발생 비동기 2배속모드 : 내부클럭으로 2배의 보레이트발생 동기 마스터 모드 동기 슬레이브 모드 송신부 : 송신버퍼, 송신 시프트 레지스터, 페리티발생기 수신부 : 수신버퍼, 수신 시프트 레지스터, 페리티검사기 USART 인터럽트 수신완료 인터럽트 송신완료 인터럽트 송신데이터 준비완료 인터럽트
4
USART 제어 USART 동작
5
USART 제어 USART 전송데이터 포멧
6
USART 제어 비동기모드에서의 1비트 샘플링 수신데이터의 정확한 검출을 위하여 1비트의 샘플링이 이루어진다.
검출을 하기 위해서 1비트당 16배 주파수(2배속모드 : 8배주파수)를 이용한다. 16배 주파수중 중앙부(8,9,10)에 3번 샘플링하여 2번 이상인 값으로 처리
7
USART 제어 USART 관련 레지스터 UDRn(Usart 0 I/O Data Register)
USART 0과 1을 제어하기 위해서는 USART 0/1 관련 레지스터(UDRn, UCSRnA, UCSRnB, UCSRnC, UBRRnH, UBRRn)의 사용법을 알아야 한다. UDRn(Usart 0 I/O Data Register) UDRn 레지스터는 송/수신되는 데이터 값을 저장하는 버퍼역활을 하게 된다. UDRn은 TXBn(송신버퍼)/RXBn(수신버퍼) 레지스터로 구성되어 있는데 이는 I/O 같은 주소에 공유된 형태로 구성되어 있으며 송/수신 이라는 다른 일을 하게 구성되어 있다. 송신할 때는 TXBn의 데이터를 전송 수신할 때는 RXBn에 수신된 데이터를 저장하게 된다.
8
USART 제어 USART 관련 레지스터 UCSRnA(USART Control and Status Register A)
Bit 7 – RXCn(USART Receive Complete) RXCn = 1 : UDRn의 수신버퍼에 아직 안 읽은 데이터가 존재하는 상태 RXCn = 0 : UDRn의 수신버퍼를 읽어서 비워져 있는 상태 Bit 6 – TXCn(USART Transmit Complete) TXCn = 1 : 송신 시프트 레지스터에 있는 송신데이터가 모두 전송되고 UDRn의 송신버퍼에 아직 새로운 송신데이터가 라이트되지 않은 상태 Bit 5 – UDREn(USART Data Register Empty) UDREn = 1 : 송신 버퍼가 비어있어서 새로운 송신 데이터를 받을 준비가 된 상태 Bit 4 – FEn(USART Frame Error) FEn = 1 : 수신할 때 프레임 에러가 발생한 상태 ☞ 프레임에러? – 수신문자의 첫 번째 스톱비트가 0으로 검출되는 것
9
USART 제어 USART 관련 레지스터 UCSRnA(USART Control and Status Register A)
Bit 3 – DORn(USART Data Overrun Error) DORn = 1 : 수신할 때 오버런 에러가 발생한 상태 ☞ 오버런에러? – 수신버퍼에 현재 읽지 않은 데이터가 들어있는 상태에서 수신 시프트레지스터에 새로운 데이터가 수신 완료되고 다시 그 다음 수신 데이터인 3번째 데이터의 스타트 비트가 검출된 것 Bit 2 – UPEn(USART Parity Error) UPEn = 1 : 수신할 때 패리티 에러가 발생한 상태 ☞ 패리티에러? – 정보의 전달 과정에서 오류가 생겼는지를 검사하기 위해 원래의 정보에 덧붙이는 비트를 패리티비트라 하며 데이터와 패리티비트를 계산하여 짝수, 홀수를 판별하여 에러인지 아닌지 구분한다.(거의 쓰이지 않음) Bit 1 – U2Xn(Double the USART Transmission Speed) U2Xn = 1 : 비동기 모드에서만 유효한 것으로서 클럭의 분주비를 16에서 8로 절반만큼 낮추어 전송속도를 2배 높이는 기능을 수행한다. Bit 0 – MPCMn(USART Multi-Processer Communication Mode) MPCMn = 1 : 멀티프로세서 통신모드로 설정한다.
10
USART 제어 USART 관련 레지스터 UCSRnB(USART Control and Status Register B)
Bit 7 – RXCIEn(USART RX Complete Interrupt Enable) RXCn = 1 : 수신완료 인터럽트 활성화 Bit 6 – TXCIEn(USART TX Complete Interrupt Enable) TXCn = 1 : 송신완료 인터럽트 활성화 Bit 5 – UDRIEn(USART Data Register Empty Interrupt Enable) UDRIEn = 1 : 송신 데이터 레지스터 준비완료 인터럽트 활성화 Bit 4 – RXENn(USART Receiver Enable) RXENn = 1 : 수신부 동작 활성화 Bit 3 – TXENn(USART Transmitter Enable) TXENn = 1 : 송신부 동작 활성화
11
USART 제어 USART 관련 레지스터 UCSRnB(USART Control and Status Register B)
Bit 2 – UCSZn2(USART Character Size) UCSRnC의 UCSZn1~0 비트와 함께 전송 문자의 데이터 비트수를 설정한다. Bit 1 – RXB8n(USART Receive Data Bit 8) 전송 데이터수가 9로 설정된 경우 수신된 9번째 데이터를 저장하게 된다. Bit 0 – TXB8n(USART Transmit Data Bit 8) 전송 데이터수가 9로 설정된 경우 송신될 9번째 데이터를 저장하게 된다.
12
USART 제어 USART 관련 레지스터 UCSRnC(USART Control and Register C)
Bit 6 – USMSELn(USART Mode Select) USMSELn = 1 : 동기전송모드 USMSELn = 0 : 비동기전송모드 Bit 5, 4 – UPMn1, UPMn0(USART Parity Mode) Bit 3 – USBSn(USART Stop Bit Select) USBSn = 1 : 스탑비트 2개로 설정 USBSn = 0 : 스탑비트 1개로 설정 Bit 2, 1 – UCSZn1, UCSZn0(USART Character Size) UCSRnB의 UCSZn2 비트와 함께 전송 문자의 데이터 비트수를 설정한다. Bit 0 – UCPOLn(USART Clock Polarity) 이 비트는 동기 전동 모드의 슬레이브 동작에서만 사용된다. UCPOLn = 1 : 송신데이터는 XCKn 클럭의 하강에지에서 새로운 값이 출력 수신데이터는 XCKn클럭의 상승에지에서 검출된다. UCPOLn = 0 : 송신데이터는 XCKn 클럭의 상승에지에서 새로운 값이 출력 수신데이터는 XCKn믈럭의 하강에지에서 검출된다.
13
USART 제어 USART 관련 레지스터 UBBRnH/L(USART Baud Rate Register)
주의) UBBRnH 설정 후 UBBRnL를 나중에 라이트해야 한다.
14
USART 제어 USART의 활용 RS232 회로구성
15
USART 제어 USART의 활용 USART 예제소스 USART0을 이용하여 KEY입력을 컴퓨터로 송신하는 프로그램
16
USART 제어 USART의 활용 USART 동작결과
17
Thank You
Similar presentations