일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 문화일보홀
- 엄마배우 손혜정
- 대학로
- 꿈꾸는 거북이
- 엄마배우
- #xm5800
- 달려라 달려 달달달
- 무선랜
- 달려라달려달달달
- 연극놀이
- 이히히오호호우하하
- 문화체육관광부
- CANTUS
- 참여극
- 공연
- 이오우
- SoC
- 가족극
- 소외지역을 찾아가는 문화순회
- 연극
- apk
- 아동극
- 나들이
- 조은
- 에이디칩스
- 손혜정
- EISC
- 극단 마실
- 마실
- 노키아
Archives
- Today
- Total
Dr.Lee's Blog..
직렬통신으로 컴퓨터와 대화하기 본문
반응형
직렬통신, 시리얼통신, UART 등 다양한 이름으로 이미 많은 사람들이 알고 사용하고 있는 기본적인 통신 방식이다.
다 똑같다고 생각할지 모르겠지만, 사실 엄격하게 구분하면 직렬통신에 여러 세부갈래가 있다.
동기식이냐 비동기식이냐부터 16550호환 여부에, RS232 신호 수준인지 RS485인지,
심지어 그냥 익숙하게 사용하고 있는 USB 또한 Universal Serial BUS의 약자인 범용 직렬통신이다.
이것 말고도 I2C, I2S 등 특정 용도를 위한 직렬통신도 있고..
그냥 다 잊어버리고, 여기서는 컴퓨터의 포트에 COM1, COM2... 이런 식으로 생기는 그런 UART통신만 생각하기로 하자.
(다들 그렇게 생각하고 있는데 괜한 말 썼나?)
CANTUS Trip 보드에는 UART 포트가 J4에 따로 나와 있다. (J4에 나와 있는 UART는 #7에 해당하는 UART이다.)
물론 CANTUS 자체가 8쌍의 UART 포트를 사용할 수 있게 만들어진 칩이기 때문에 J4이외에 다른 곳으로 UART 통신이 가능하다.
트립보드의 J1과 J2에 일반 GPIO 처럼 숨겨 있는 핀 중에 7쌍의 UART가 더 숨어 있는 샘이다.
예를 들어 J2의 23번 24번 핀은 P1.0, P1.1로 표기되어 있는데 각각 UART #4의 송신(TX), 수신(RX)의 역할로 탈바꿈할 수 있는 핀이다.
그런데, CANTUS 칩에서 나오는 UART용 송/수신 핀의 전압은 0V와 3.3V이다.
3.3V LVTTL 수준의 전압으로 연결되는 다른 칩이나 시스템에는 바로 연결 가능하겠지만
우리 PC에서는 전압 수준이 서로 다르기 때문에 별도의 칩이 필요로 하다.
이미 개인이 가지고 있는 UART 장치가 많이 있겠지만 (사실 없을수도 있지만 T.T)
이 J4 커넥터에 딱 맞춰 놓은 에이디칩스에서 따로 만들어 쓰는 UART 커넥터를 이용해 보았다.
회색 박스 안에 RS232 신호 수준을 맞추어 주는 트랜시버 IC가 들어 있다. (있을거다 ^^)

지난 글에서 사용한 예제에 보면, 그냥 무시하고 넘어갔지만 이 UART로 출력하는 부분이 이미 들어 있었다.
라는 게 이미 있었고,
라는 것도 이미 있었다.
UartConfig라는 함수는 UART를 어떻게 사용할 것인지 설정하는 부분인데,
앞서 언급한 J4커넥터에 할당되어 있는 UART가 #7이라고 했으니까 첫번째 숫자 부분에 7을 사용했다. 그 다음은 통신 속도인데 115200bps 라는 속도를 이용하겠다는 이야기다.
이 숫자는 나중에 연결될 상대, 그러니까 지금은 내 PC의 통신 프로그램에서 서로 맞춰주어야 할 속도이다.
다음도 역시 상대 통신 대상에서 서로 맞추어 주어야 하는 규약인데, 데이터는 8비트로, 정지비트는 1비트, 패러티는 사용하지 않는다는 의미이다.
설정이 다 되었다 싶으면, 지난 LED 깜박이는 실행파일이 들어 있는 Cantus Trip보드에 전원을 넣고, PC의 UART 포트와 연결해보자.

이렇게 나온다.
앞의 5줄은 부트로더라고 이야기 했던, USB로 프로그램을 다운 받을지, sector 1에 저장되어 있는 실행파일을 실행할지를 결정해서 동작하는 또 다른 프로그램이 들어 있는데, 그 프로그램에서 출력한 내용이다.
C 언어를 공부하려고 시도해 보았다면 꼭 한번은 봤을 'Hello World!'를 출력하고 싶은가?
그러면,
를 프로그램에 넣고, 앞에서 연습한 대로 실행파일을 만들어서 동작시켜보시길.. 숙제~
아, 위에서 사용한 통신 프로그램까지 따라하고자 하시는 분?
Tera Term이라는 공짜 프로그램..
이 프로그램에서 Setup>Serial Port 로 들어가면
아래 화면이 나온다. 설명했던대로 통신 속도, 데이터비트수, 정지비트수, 흐름제어 등을 프로그램 내용대로 설정하면 된다.

윈도우에 기본으로 들어 있는 하이퍼터미널을 쓰던, 옛날 모뎀 시절 사용하던 이야기 프로그램을 쓰던,
리눅스 계열 같으면 minicom을 쓰던.... 무수히 많은 통신 프로그램을 쉽게 구할 수 있을테니, 이건 알아서~
다 똑같다고 생각할지 모르겠지만, 사실 엄격하게 구분하면 직렬통신에 여러 세부갈래가 있다.
동기식이냐 비동기식이냐부터 16550호환 여부에, RS232 신호 수준인지 RS485인지,
심지어 그냥 익숙하게 사용하고 있는 USB 또한 Universal Serial BUS의 약자인 범용 직렬통신이다.
이것 말고도 I2C, I2S 등 특정 용도를 위한 직렬통신도 있고..
그냥 다 잊어버리고, 여기서는 컴퓨터의 포트에 COM1, COM2... 이런 식으로 생기는 그런 UART통신만 생각하기로 하자.
(다들 그렇게 생각하고 있는데 괜한 말 썼나?)
CANTUS Trip 보드에는 UART 포트가 J4에 따로 나와 있다. (J4에 나와 있는 UART는 #7에 해당하는 UART이다.)
물론 CANTUS 자체가 8쌍의 UART 포트를 사용할 수 있게 만들어진 칩이기 때문에 J4이외에 다른 곳으로 UART 통신이 가능하다.
트립보드의 J1과 J2에 일반 GPIO 처럼 숨겨 있는 핀 중에 7쌍의 UART가 더 숨어 있는 샘이다.
예를 들어 J2의 23번 24번 핀은 P1.0, P1.1로 표기되어 있는데 각각 UART #4의 송신(TX), 수신(RX)의 역할로 탈바꿈할 수 있는 핀이다.
그런데, CANTUS 칩에서 나오는 UART용 송/수신 핀의 전압은 0V와 3.3V이다.
3.3V LVTTL 수준의 전압으로 연결되는 다른 칩이나 시스템에는 바로 연결 가능하겠지만
우리 PC에서는 전압 수준이 서로 다르기 때문에 별도의 칩이 필요로 하다.
이미 개인이 가지고 있는 UART 장치가 많이 있겠지만 (사실 없을수도 있지만 T.T)
이 J4 커넥터에 딱 맞춰 놓은 에이디칩스에서 따로 만들어 쓰는 UART 커넥터를 이용해 보았다.
회색 박스 안에 RS232 신호 수준을 맞추어 주는 트랜시버 IC가 들어 있다. (있을거다 ^^)

지난 글에서 사용한 예제에 보면, 그냥 무시하고 넘어갔지만 이 UART로 출력하는 부분이 이미 들어 있었다.
UartConfig(7,115200,DATABITS_8,STOPBITS_1,UART_PARNONE);
라는 게 이미 있었고,
debugstring("================================================\r\n");
debugprintf(" LED TEST. System Clock(%dMhz)\r\n",GetAHBclock()/1000000);
debugstring("================================================\r\n");
라는 것도 이미 있었다.
UartConfig라는 함수는 UART를 어떻게 사용할 것인지 설정하는 부분인데,
앞서 언급한 J4커넥터에 할당되어 있는 UART가 #7이라고 했으니까 첫번째 숫자 부분에 7을 사용했다. 그 다음은 통신 속도인데 115200bps 라는 속도를 이용하겠다는 이야기다.
이 숫자는 나중에 연결될 상대, 그러니까 지금은 내 PC의 통신 프로그램에서 서로 맞춰주어야 할 속도이다.
다음도 역시 상대 통신 대상에서 서로 맞추어 주어야 하는 규약인데, 데이터는 8비트로, 정지비트는 1비트, 패러티는 사용하지 않는다는 의미이다.
설정이 다 되었다 싶으면, 지난 LED 깜박이는 실행파일이 들어 있는 Cantus Trip보드에 전원을 넣고, PC의 UART 포트와 연결해보자.

이렇게 나온다.
앞의 5줄은 부트로더라고 이야기 했던, USB로 프로그램을 다운 받을지, sector 1에 저장되어 있는 실행파일을 실행할지를 결정해서 동작하는 또 다른 프로그램이 들어 있는데, 그 프로그램에서 출력한 내용이다.
C 언어를 공부하려고 시도해 보았다면 꼭 한번은 봤을 'Hello World!'를 출력하고 싶은가?
그러면,
debugprintf("Hello world!");
를 프로그램에 넣고, 앞에서 연습한 대로 실행파일을 만들어서 동작시켜보시길.. 숙제~
아, 위에서 사용한 통신 프로그램까지 따라하고자 하시는 분?
Tera Term이라는 공짜 프로그램..
이 프로그램에서 Setup>Serial Port 로 들어가면
아래 화면이 나온다. 설명했던대로 통신 속도, 데이터비트수, 정지비트수, 흐름제어 등을 프로그램 내용대로 설정하면 된다.

윈도우에 기본으로 들어 있는 하이퍼터미널을 쓰던, 옛날 모뎀 시절 사용하던 이야기 프로그램을 쓰던,
리눅스 계열 같으면 minicom을 쓰던.... 무수히 많은 통신 프로그램을 쉽게 구할 수 있을테니, 이건 알아서~
반응형
'Engineer's world > EISC' 카테고리의 다른 글
UART에 외부 장치 연결하기 1 - GPS연동 (3) | 2011.05.14 |
---|---|
노래하는 캔투스 (0) | 2011.05.10 |
Cantus Trip 보드에 생명을~ (4) | 2011.05.05 |
Cantus Trip board 시작하기 (2) | 2011.05.05 |