70 likes | 228 Views
Serial Communication. 80C196KC UART(Universal Asynchronous Receiver Transmitter) 는 세 종류의 비동기 모드와 한 개의 동기 모드가 있다 . 비동기 모드에서는 풀 듀풀렉스 (full duplex) 로 송 / 수신을 동시에 할 수 있도록 되어 있다 . 시리얼 포트는 시리얼 컨트롤 레지스터 , 시리얼 스테터스 레지스터를 이용하여 주로 제어하며 , 송 / 수신에 필요한 버퍼를 따로 내장하고 있다 .
E N D
Serial Communication • 80C196KC UART(Universal Asynchronous Receiver Transmitter)는 세 종류의 비동기 모드와 한 개의 동기 모드가 있다. • 비동기 모드에서는 풀 듀풀렉스(full duplex)로 송/수신을 동시에 할 수 있도록 되어 있다. • 시리얼 포트는 시리얼 컨트롤 레지스터, 시리얼 스테터스 레지스터를 이용하여 주로 제어하며, 송/수신에 필요한 버퍼를 따로 내장하고 있다. • 시리얼 보레이트(baud rate)는 독립적인 컨트롤이 가능하며, XTAL1혹은 T2CLK을 이용할 수 있다. 시리얼 포트에 사용하는 외부 핀 포트 NO. 입/출력 기 호 기 능 P2.1 입력 RxD 비동기 모드 : 수신 핀, 동기모드 : 송/수신 데이터 핀 P2.0 출력 TxD 비동기 모드 : 송신 핀, 동기모드 : 클록 핀 XTAL1 보레이트 발생을 위한 내부 클록 P2.3 T2CLK 보레이트 발생을 위한 외부 클록 2014-10-23
Serial Communication 시리얼 포트 컨트롤 레지스터
Serial Communication 시리얼 포트 상태 레지스터
Serial Communication • RI/TI 플래그 RI 플래그는 데이터를 수신하면 셋되고, TI 플래그는 데이터의 송신이 끝났을 경우 셋 된다. 이 플래그들은 인터럽트 인에이블이 되어 있을 경우는 송/수신 인터럽트를 발생하게 된다. • TxE 플래그 송신 버퍼가 비어 있거나 2바이트를 송신버퍼에 라이트 할 경우 TxE 플래그는 셋 된다. • RPE/RB8 플래그 패리티가 인에이블 되면 패리티 에러가 검출되고 RPE는 셋되며, 패리티가 인에이블이 아니라 면 모드 2, 3에서 9번째 비트를 수신하는 RP8로 사용한다. • 시리얼 포트 인터럽트 시리얼 포트는 송신, 수신 두개의 인터럽트를 사용 할 수 있다. 80C196KC에서는 INT06은 디스에이블 시키고, INT08, INT09는 인에이블 시켜서 사용하고 있다.
Serial Communication • 시리얼 포트 모드 동기 모드 모드 0 : RxD핀이 데이터를 송/수신 할때, TxD핀은 8개 클록 펄스를 출력한다. 데이터는 LSB를 시작으로 한번에 8 비트씩 송신된다. 비동기 모드 세 개의 비동기 모드 중 하나를 사용할 경우 송신 버퍼에 데이터를 라이트하면 송신은 시작 되고, REN = 1이 되어 있는 상태에서 RxD의 하강 모서리에서 수신이 시작된다. 송신 버퍼에 새로운 데이터가 로드되면 송신중인 데이터의 스톱 비트가 송신되기 전까지는 데이터를 그대로 갖고 있으며 REN=0이면 수신은 불가능하게 된다. 송신은 IOC1.5 = 1이 되어 있어야 P2.0를 TxD핀으로 사용할 수 있다. 모드 1 : 표준 비동기 통신 모드이다. 이 모드에서 데이터 프레임은 10비트 형태이다. 1) 스타는 비트(0) 2) 8개 데이터 비트(LSB가 처음) 3) 스톱 비트(1) 로 구성된다.
Serial Communication 시리얼 포트 프레임 모드 1, 2, 3 • 송신 인터럽트(TI)와 수신 인터럽트(RI)플래그는 동작이 완료되면 셋 된다. • 수신하는 동안 RI플래그는 스톱비트의 끝 전에 바로 셋 되고, 송신하는 동안 TI 플래그는 스톱비트의 시작에 셋 된다. • 송신 인터럽트는 TI플래그가 셋 되었을 때 발생하고, 스톱비트를 송신하기 전에 다른 데이터를 보내면 스톱 비트를 송신할 때까지 송신은 지연된다. • 시리얼 포트의 상태 레지스터를 읽으면 TI, RI 플래그는 클리어 된다. 이것은 비트 테스트 명령 JBS, JBC도 포함한다.
Serial Communication 보레이트(baud rate) • 보레이트는 16비트 레지스터를 이용한다. • 보 레지스터의 MSB가 1이면 XTAL1핀의 주파수를 선택하고, MSB=0이면, T2CLK핀의 • 외부 신호로부터 주파수를 선택한다. • 이 레지스터는 바이트 단위로 처음에 하위 바이트, 다음에 상위 바이트 순으로 라이트 하 여야 한다.