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 보레이트 발생을 위한 외부 클록 2018-09-19
Serial Communication 시리얼 포트 컨트롤 레지스터
Serial Communication 시리얼 포트 상태 레지스터
Serial Communication RI/TI 플래그 TxE 플래그 RPE/RB8 플래그 시리얼 포트 인터럽트 이 플래그들은 인터럽트 인에이블이 되어 있을 경우는 송/수신 인터럽트를 발생하게 된다. 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핀의 외부 신호로부터 주파수를 선택한다. 이 레지스터는 바이트 단위로 처음에 하위 바이트, 다음에 상위 바이트 순으로 라이트 하 여야 한다.