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 |
---|