[망고보드 M32] RS-232와 UART

2017. 5. 14. 10:37개발/ARM

반응형

RS-232-C




망고보드의 경우 UART의 출력을 RS-232-C 신호 레벨로 변경하여 통신

이 때 RS-232-C는 신호를 전송하기 위한 신호 레벨 및 커넥터 규격을 정의

Bit Rate 및 기타 신호의 포맷은 UART


전기적으로 바라보면 RS-232-C는 Logic HIGH를 나타내기 위해 +12V, LOW를 나타내기 위해 -12V 사용

수신측은 +3V 이상이면 HIGH , -3V 이면 LOW로 인식하도록 되어 있음.

--> +12V를 만들어 내기 힘들면, +5V를 사용할 수 있음. (이때는 RS-232-C호환이라 부르기도 함)


UART vs RS-232-C    ---> Universal Asynchoronous Receiver Transmitter (UART)

UART는 CPU에서 나오는 신호레벨(TTL 레벨)

RS-232는 SP3232를 거쳐 나온 신호

UART는 RS-232뿐만 아니라 RS-422 이나 RS-485와 같은 레벨로 변환되어 사용 가능


UART통신의 포맷

Start Bit , Data 0 ~ 7 , Stop Bit

Baudrate는 데이터 전송 속도의 측청치, 보통 초당 비트수




Token2Shell 의 설정



Bauderate, Date Bits, Parity, Stop Bits, Flow Control

이 부분은 소프트웨어쪽에서도 설정값과 맞추어 주어야한다.

 





프로토콜



Baudrate구하는 공식

Tx/Rx baud = f(ck)/(16*USARTDIV)



data word의 단위를 8비트나 9비트로 설정할 수 있다. (9비트 초과 X)


Stop Bits 0.5, 1, 1.5, 2등의 stop bits를 설정할 수 있다.

          0.5나 1.5 stop bits는 Smartcard mode에서 사용하는 것.


Parity - 패리티를 설정해서 보내고 받는 것이 가능 홀수,짝수중 선택 가능


Hardware Flow Control - CTS나 RTS를 이용해서 직렬 데이타 흐름을 control할 수 있다.

                                (CTS(Clear To Send), RTS(Request To Send))


Mode - 이 부분은 USART_CR1 레지스터에서 Bit3 TE : Transmitter Enable 과 Bit2RE : Receiver Enable를 설정





Polling vs Interrrupt



Polling 방식 - 계속 어떤 특정 값이 변하였는지를 검사하면서 기다리는 것.

               간단한 프로그램에서는 상관없지만 큰규모의 프로그램에서 다른일을 하지않고 마냥 기다릴 수 없다.


Interrupt 방식 - 특정한 이벤트가 발생시 interrupt를 거쳐주는것 (ISR - Interrupt Service Routine) 






[출처] ARM Cortex-M3 시스템 프로그래밍 완전정복

반응형

'개발 > ARM' 카테고리의 다른 글

[망고보드 M32] UART 통신  (0) 2017.05.14