+ All Categories
Home > Documents > Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... ·...

Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... ·...

Date post: 05-Mar-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
36
ORDERING CODE: HLCDM/UM/KO/R0 Graphic LCD Designer 모듈 모듈 모듈 모듈 HARDWARE 사용설명서 사용설명서 사용설명서 사용설명서 REVISION 0 Research is your business;™ Instrumentation is our job. PQRS Corporation 2010
Transcript
Page 1: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

ORDERING CODE: HLCDM/UM/KO/R0

Graphic LCD Designer 모듈모듈모듈모듈

HARDWARE 사용설명서사용설명서사용설명서사용설명서 REVISION 0

Research is your business;™ Instrumentation is our job. PQRS Corporation

2010

Page 2: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈

HARDWARE 사용설명서사용설명서사용설명서사용설명서 REVISION 0

Copyright © 2010, PQRS Corporation, all right reserved.

ORDERING CODE: HLCDM/UM/KO/R0

이 사용설명서를 작성함에 있어서 오류가 없게 하기 위하여 최선을 노력을

기울였으나, 이 사용설명서에는 문법적 오류, 기술적 부정확성 또는

오식이 있을 수 있다. 공급자는 이러한 오류나 부정확성에 기인하는 어떤

손상이나 손실에 대해서도 책임지지 아니한다. 공급자는 제품의 성능 개선

또는 이 사용설명서의 내용의 명료성 및 정확성을 개선하기 위해서

언제라도, 어떤 사용자에게라도 사전 통보 없이 이 사용설명서의 내용을

변경할 수 있다.

이 사용설명서에서 설명하는 어떤 문장, 그림, 그래프, 표, 프로그램,

앨거리듬 등의 정보, 또는 이 사용설명서가 기술하는 제품을 사용함에

있어서, 실제 시스템에 대한 적용성을 결정을 하기 위해서는 시스템

전반에 관한 사항과 관련하여 사전에 이 모든 정보를 충분히 평가하여

보기를 권장한다. 공급자는 이 정보들이나 제품을 올바로 평가하지

아니하고 사용하여서 발생할 수 있는 어떤 손상이나 손실에 대해서도

책임지지 아니한다.

이 사용설명서가 설명하는 제품은 인명이 위험할 수 있는 상황에서 사용할

수 있는 장치에 사용하는 것을 가정하여 설계되거나 제조되지 아니하였다.

또한 이 제품은 수송 장치, 의료 장치, 항공 우주 장치, 핵발전 관련 장치,

잠수 장치 등 극한환경의 특정 용도로 사용하는 것을 전제로 하여

설계되거나 제조되지 아니하였다. 제품을 특정 용도로 사용하는 것의

적합성과 관련하여 공급자에게 문의하고 논의하기를 권장한다.

이 사용설명서가 설명하는 제품은 기술자를 위하여 제작되었으며, 제품의

설치는 전기 회로와 기계 장치에 대한 지식이 있는 기술자만이 하여야

한다. 이 제품이나 제품이 포함된 장치에서 이 제품과 관련한 조작은

사전에 그 사용법에 대하여 기술자로부터 교육받거나 기술적인 설명서를

읽어 알게 된 사람이 그 교육받거나 알게 된 지식의 범위 내에서만 하여야

한다. 이이이이 사용설명서에사용설명서에사용설명서에사용설명서에 나타나는나타나는나타나는나타나는 제삼자의제삼자의제삼자의제삼자의 상호상호상호상호, 등록상표등록상표등록상표등록상표 또는또는또는또는 상표에상표에상표에상표에 대한대한대한대한 모든모든모든모든 권리는권리는권리는권리는 그그그그 소유자에게소유자에게소유자에게소유자에게 있다있다있다있다.

Page 3: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

iii

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

목차목차목차목차 1. 제품의제품의제품의제품의 특징특징특징특징 1

1.1 기본 기능 1 1.2 그리기 기능 2 1.3 비트맵 파일 표시 기능 2

2. Graphic LCD Designer 모듈모듈모듈모듈의의의의 사용을사용을사용을사용을 지원하기지원하기지원하기지원하기 위한위한위한위한 도구들도구들도구들도구들 3 2.1 GLCD Simulator™ 3 2.2 GLCD Designer™ 3 2.3 GLCD Designer 라이브러리 4

3. Graphic LCD Designer 모듈모듈모듈모듈의의의의 연결연결연결연결 5 3.1 연결 커넥터의 핀 맵 5 3.2 하드웨어적인 연결 6 3.3 데이터 프레임 구성 7 3.4 통신 속도 8 3.5 정수 데이터의 바이트 전송 순서 9 3.6 연결 선의 수 10

4. 명령어명령어명령어명령어 13 4.1 기본 기능 13

4.1.1 한글 LCD 초기화 13 4.1.2 화면 지우기 14 4.1.3 커서의 위치 지정 15 4.1.4 문장 출력하기 15 4.1.5 작은 그래픽 출력하기 16 4.1.6 표시할 글자체 선택 18 4.1.7 글자의 두께 지정 19 4.1.8 글자 폭 지정 19 4.1.9 흑백 반전 (역상체) 선택 20 4.1.10 한글 코드의 선택 20 4.1.11 보이기 페이지(active page) 선택 21 4.1.12 그리기 페이지(draw page) 선택 21 4.1.13 고유 모드로 전환하기 22

4.2 선 및 도형 그리기 22 4.2.1 선 그리기 22 4.2.2 직사각형 그리기 23 4.2.3 타원 그리기 23 4.2.4 점 찍기 24

4.3 비트맵 그래픽스 25 4.3.1 비트맵 그리기 25

5. 외형외형외형외형 치수치수치수치수 27 부록부록부록부록 29

부록 A. 컴파일 테크놀로지 LCD 모듈과의 호환성과 GLCD Simulator의 사용

29

부록 B. Graphic LCD Designer 모듈에 사용한 커넥터의 도면 30

Page 4: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험
Page 5: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

1. 제품의제품의제품의제품의 특징특징특징특징

1

1. 제품의제품의제품의제품의 특징특징특징특징

Graphic LCD Designer 모듈은 기본적으로는 그래픽 LCD를 이용하여 한글, 한자, 특수 문자, 16×16 크기의 작은 그래픽 등을 출력하도록 만들

어진 장치이다. 좀 더 고급의 제품은 선 및 도형 그리기 기능을 지원한

다. 또한 비트맵 그래픽스 기능이 있어서 GLCD Designer™에서 변환한 비트맵 파일 데이터를 다운로드 해서 자유롭게 표시할 수 있는 제품도 있다. Graphic LCD Designer 모듈은 그 자체만으로도 다양한 기능으로 손쉽게 그래픽 LCD 모듈 기반의 시스템을 구성할 수 있게 하여 주지만, Graphic LCD Designer 모듈을 사용한 시스템 개발을 지원하기 위하여 제공되는, PC 기반으로 동작하는 GLCD Simulator™, GLCD Designer 및 GLCD Designer 라이브러리는 Graphic LCD Designer 모듈을 사용한 시스템의 개발을 더욱 가속하여 준다.

이 사용설명서는 Graphic LCD Designer 모듈 제품에 공통되는 내용만 기술하고 있으며, 개별 모델에 특별한 사항은 개별 제품의 데이터 시트

를 참조하여야 한다.

1.1 기본기본기본기본 기능기능기능기능

� 4 핀 또는 3 핀 접속의 +5V 레벨의 시리얼 통신

� 통신 속도 선택 가능: 19200 bps, 4800 bps

� 표시 가능한 문자 및 작은 그래픽

� 한글 (2350 자, 완성형 코드표에 있는 모든 문자) � 영숫자(ASCII 문자 코드표의 알파벳 숫자 및 기호 문자) � 한자 (4888 자) � 특수 문자(A1-AC 맵에 있는 모든 특수 문자, 1128 자) � 16×16 크기의 작은 그래픽.

� 완성형 한글코드 및 조합형 한글 코드 지원 (단 조합형 한글은 완성

형 코드표에 있는 문자에 해당하는 문자만 표시 가능)

� 명조체 전자, 명조체 반자, 고딕체 전자, 고딕체 반자 및 ASCII text font의 다양한 글자체 지원

� 굵은체, 역상체 및 가로 2배 확대의 문자 장식 기능

� 다중 디스플레이 페이지 (2 페이지) 기능으로 보이지 않는 페이지에 출력한 후 보이는 페이지로 전환이 가능하므로,1 그리는 과정의 플

리커(flicker)를 제거할 수 있다.

� GLCD Simulator™, GLCD Designer™ 및 GLCD Designer 라이브러

리 제공으로 손쉬운 화면 디자인, 프로그램 개발 및 디버깅이 가능

하다.

� 컴파일 테크놀로지 HLCD 시리즈와의 호환 모드. Graphic LCD Designer 모듈은 컴파일 테크놀로지 HLCD 시리즈와의 호환 모드

(컴파일 호환 모드)를 제공하므로 기존 컴파일 테크놀로지 LCD 모

듈 사용자들이 별도의 소프트웨어 변경 없이 Graphic LCD Designer

1 Graphic LCD Designer 모듈의 일부 제품에서는 이 기능이 지원되지 않는다. 특정

제품에서 이 기능을 지원하는가 하는 것은 개별 제품 데이터시트를 참조하여야 한다.

Page 6: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

2

모듈을 사용할 수 있다.2

1.2 그리기그리기그리기그리기 기능기능기능기능3

� 선 및 도형 그리기 기능

� 선 그리기 � 직사각형 그리기 (채워진 사각형 및 채워지지 않은 사각형) � 타원 그리기 (채워진 타원 및 채워지지 않은 타원) � 원 그리기 (채워진 원 및 채워지지 않은 원) � 점 그리기

� 그리기 색상 선택 가능

1.3 비트맵비트맵비트맵비트맵 파일파일파일파일 표시표시표시표시 기능기능기능기능4

� GLCD Designer에서 변환한 비트맵 파일을 GLCD Simulator에서 다운로드 하여 임베디드 시스템에서 사용하는 기능

2 Graphic LCD Designer 모듈과 컴파일 테크놀로지 LCD 모듈과의 호환성과 관련한

내용은 필요할 때마다 설명되어 있으며, 권말에서도 GLCD Simulator의 사용과 관련

하여 간략하게 설명하였다. Graphic LCD Designer 모듈의 다른 회사의 제품과의 호환성은 설계에 포함되었

고, 그 설계에 의하여 제품에 구현되기는 하였으나 그 호환성의 정도는 평가되지 아니하였다. Graphic LCD Designer 모듈의 타 제품과의 호환성의 정도가 중요한 선택 기준이 되는 사용자는 그 정도에 대하여 직접 평가하여야 할 것이다.

3 이 기능은 선 및 도형 그리기 기능이 지원되는 Graphic LCD Designer 모듈에 대해

서만 적용된다. 4 이 기능은 비트맵 그래픽스 기능이 지원되는 Graphic LCD Designer 모듈에 대해서

만 적용된다.

Page 7: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

2. Graphic LCD Designer 모듈모듈모듈모듈의의의의 사용을사용을사용을사용을 지원하기지원하기지원하기지원하기 위한위한위한위한 도구들도구들도구들도구들

3

2. Graphic LCD Designer 모듈모듈모듈모듈의의의의 사용을사용을사용을사용을 지원하기지원하기지원하기지원하기 위한위한위한위한 도구들도구들도구들도구들

Graphic LCD Designer 모듈의 사용자는 Graphic LCD Designer 모듈과 더불어 PC 기반으로 동작하는 다양한 지원 기능들을 즐길 수 있다. Graphic LCD Designer 모듈의 사용자가 Graphic LCD Designer 모듈을 사용한 시스템 개발

을 가속화할 수 있도록 다음과 같은 도구들이 지원된다.

2.1 GLCD Simulator™

Graphic LCD Designer 모듈을 사용한 제품의 신속한 개발을 지원하기 위해서 PC에서 동작하는 개발 지원 프로그램인 GLCD Simulator가 제공된다. GLCD Simulator는 다음의 강력한 기능으로 Graphic LCD Designer 모듈을 사용한 시스템의 개발을 지원한다.

� Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

을 할 수 있게 하여 준다. � 실제 Graphic LCD Designer 모듈을 PC의 시리얼 통신 포트에 연결하

여 동작하는 것을 실험해 볼 수도 있게 되어 있다. � Graphic LCD Designer 모듈에서 사용하는 16×16 크기의 작은 그래픽

을 디자인하기 위한 Graphic designer를 포함하고 있다. � PC 화면상에서 행한 모의 실험 및 Graphic LCD Designer 모듈을 연

결하여 행한 동작 실험의 과정을 저장하여 다시 실행할 수 있다. � 소스 생성기를 포함하고 있어서 실험 과정 및 저장한 실험 결과를 자

동으로 임베디드 시스템에서 바로 사용할 수 있는 C 소스 코드로 변

환해 준다. � 선 및 도형 그리기 기능을 지원하기 위한 대화형 디자인 기능이 제공

된다. � GLCD Designer에서 디자인한 화면에 사용하기 위한 비트맵 데이터를

한글 LCD모듈에 다운로드 할 수 있게 하여 준다.

GLCD Simulator의 사용에 관해서는 별도로 상세한 사용설명서가 제공된다. GLCD Simulator는 무료 소프트웨어이므로, Graphic LCD Designer 모듈을 구입

하지 않더라도 Graphic LCD Designer 모듈 홈페이지에서 자유롭게 다운로드 받아서 사용할 수 있다.

2.2 GLCD Designer™

Graphic LCD Designer 모듈이 가진 비트맵 파일 표시 기능인 비트맵 그래픽스 기능은 PC에서 사용하는 LCD 화면 디자인 및 소스 생성 프로그램인 GLCD Designer 기술에 기반을 두고 있다. GLCD Designer는 원래 그래픽 LCD 모듈

을 사용하는 일반적인 시스템의 개발을 지원하기 위해 만들어진 프로그램으로 Graphic LCD Designer 모듈의 기능의 범위를 넘어서는 다른 많은 기능들을 가지고 있는 프로그램인데, 이 프로그램을 Graphic LCD Designer 모듈에 사용하

기 위한 용도에 맞추어 제공된다. GLCD Designer는 다음과 같은 기능으로 Graphic LCD Designer 모듈을 사용한 시스템의 개발을 지원한다.

� 다른 그래픽 프로그램 등에서 디자인한 비트맵 파일들을 모아서 화면

을 구성하는 디자인 기능을 제공한다. � 소스 생성기를 포함하고 있어서 디자인한 화면 구성을 자동으로 임베

디드 시스템에서 바로 사용할 수 있는 C 소스 코드로 변환해 준다. � 화면 구성에 사용된 비트맵 파일들을 GLCD Simulator에서 한글 LCD

로 다운로드 할 수 있는 헥스 파일로 변환하여 준다. � GLCD Simulator에서 다운로드 한 변환된 비트맵 데이터를 임베디드

Page 8: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

4

시스템에서 사용할 수 있게 하기 위한 교차 참조 데이터를 포함한 C 소스 파일을 자동으로 생성한다.

GLCD Designer의 사용에 관해서는 별도로 상세한 사용설명서가 제공된다. Graphic LCD Designer 모듈용 GLCD Designer는 무료 소프트웨어이므로, Graphic LCD Designer 모듈을 구입하지 않더라도 Graphic LCD Designer 모듈 홈페이지에서 자유롭게 다운로드 받아서 사용할 수 있다.

2.3 GLCD Designer 라이브러리라이브러리라이브러리라이브러리

Graphic LCD Designer 모듈은 임베디드 시스템과 시리얼 통신을 통하여 상호 연결되도록 만들어진 장치로 임베디드 시스템과 특별한 문자열을 주고 받도록 설계되어 있다. GLCD Designer 라이브러리는 C 언어를 사용하는 임베디드 시스템의 프로그래머가 임베디드 시스템과 Graphic LCD Designer 모듈이 주고 받는 이 특별한 문자열의 구조를 자세히 공부하지 않더라도 바로 Graphic LCD Designer 모듈을 시스템에 연결하여 쉽게 사용하게 하기 위하여 잘 구성된 인

터페이스를 제공한다.

Page 9: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

3. Graphic LCD Designer 모듈모듈모듈모듈의의의의 연결연결연결연결

5

3. Graphic LCD Designer 모듈모듈모듈모듈의의의의 연결연결연결연결

Graphic LCD Designer 모듈은 아래의 그림과 같이 몰렉스(Molex)의 5267의 4 핀 커넥터로 임베디드 시스템 등에 연결된다. 이 커넥터의 1 번 핀 및 2 번 핀을 통해서 임베디드 시스템에서 Graphic LCD Designer 모듈로 전력이 공급된

다. Graphic LCD Designer 모듈의 전원 전압은 +5V이다. 나머지 두 핀은 시리

얼 통신을 위한 신호 선에 연결되어 있다. Graphic LCD Designer 모듈에서 사용하는 시리얼 통신의 신호는 흔히 사용되는 RS232C 신호와 모든 점에서 동

등하지만, MCU 등에서 사용하는 +5V의 신호와 RS232C에서 사용하는 ±12V의 신호 사이의 레벨 변환을 행하는 라인 드라이버 및 라인 리시버를 포함하고 있지 않다. 따라서 Graphic LCD Designer 모듈과 올바로 통신을 하기 위해서는 임베디드 시스템에서도 라인 드라이버 및 라인 리시버 회로를 포함하지 않아

야 한다. 이 점에 대해서는 아래의 하드웨어적인하드웨어적인하드웨어적인하드웨어적인 연결연결연결연결에서 좀 더 자세히 설명

한다.

3.1 연결연결연결연결 커넥터의커넥터의커넥터의커넥터의 핀핀핀핀 배치배치배치배치

Graphic LCD Designer 모듈은 이 커넥터의 3 번 핀을 통해서 동작 명령을 수신하고 4 번 핀을 통해서 응답 신호를 송신한다. Graphic LCD Designer 모듈의 입장에서 보았을 때의 수신 핀(핀 3)은 임베디드 시스템에서 보았을 때의 송신 핀이 되고, Graphic LCD Designer 모듈의 입장에서 보았을 때의 송신 핀(핀 4)은 임베디드 시스템에서 보았을 때의 수신 핀이 된다. 아래의 그림은 이 개념

을 설명하고 있는 것이다.

아래에 Graphic LCD Designer 모듈과 임베디드 시스템을 연결하기 위한 커넥

터인 P5의 핀 배치를 다음과 같이 표로 요약한다.

표표표표 1. Graphic LCD Designer 모듈 커넥터(P5)의 연결 핀핀핀핀 번호번호번호번호 기능기능기능기능

1 GND. 이 핀은 임베디드 시스템에서 Graphic LCD Designer 모듈에 공급하는 전력 및 두 장치가 주고 받는 신호의 공통 선로

가 된다. 2 VCC. 이 핀은 임베디드 시스템에서 Graphic LCD Designer 모

듈에 공급하는 전력의 + 선로이다. 이 핀에 GND에 대해서 +5V의 전압을 걸어 준다.

3 RX. 임베디드 시스템에서 보내 주는 명령어 데이터를 수신하

기 위한 선로이다. 5.1k의 저항으로 VCC에 풀업 되어 있다. 4 TX. Graphic LCD Designer 모듈이 임베디드 시스템에서 보내

주는 명령을 수행하면서 응답을 송신하는 선로이다. Graphic LCD Designer 모듈에서 임베디드 시스템과 연결하기 위해서 사용하는 커넥터에 대하여 한 가지 지적하고 넘어가야 할 점이 있다. 아래의 왼쪽 그림

을 보자. 흔히 이 커넥터에서 모서리에 베벨(bevel)이 있는 쪽이 1 번 핀으로 알고 있는 사람들이 많다. 그러나 오른쪽 그림에 나타낸 제조자의 도면에서 보는 것과 같이, 이 커넥터는 베벨이 없는 쪽에서부터 핀 번호가 시작된다. 핀 번

Page 10: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

6

호를 거꾸로 읽던 사용자들에게는 생소한 방법일 수도 있겠으나, Graphic LCD Designer 모듈에서 사용하는 커넥터 핀 번호는 제조자가 번호를 붙이는 방법

과 같은 방법으로 붙여져 있다.

Graphic LCD Designer 모듈은 RS232C 통신을 통해서 임베디드 시스템 컨트롤

러 또는 GLCD Simulator와 정보를 주고 받는다. 모든 두 장치 사이의 연결을 통한 통신이 올바로 이루어지기 위해서는 하드웨어적인 연결과 주고 받는 신

호의 형식이 일치해야 한다. 통신에 있어서 이런 하드웨어적인 연결과 주고 받는 신호의 형식에 관한 일체의 사항을 프로토콜이라고 부르는데, 프로토콜 중

에서 어느 하나라도 일치하지 않는 것이 있으면, 통신이 올바로 이루어지지 않는다. 아래에서 통신에 필요한 이러한 고려 사항에 대하여 설명한다.

3.2 하드웨어적인하드웨어적인하드웨어적인하드웨어적인 연결연결연결연결

Graphic LCD Designer 모듈은 RS232C 통신을 통해서 임베디드 시스템 컨트롤

러 또는 GLCD Simulator와 정보를 주고 받는다. 일반적으로 한 장치가 다른 장치와 RS232C로 통신을 한다고 할 때, 주고 받는 신호의 레벨은 ±12V로 되

어 있다. 이것은 통신을 하는 장치들 사이의 선로에서의 노이즈 마진을 크게 하기 위해서 신호의 레벨을 크게 한 것이고 Graphic LCD Designer 모듈이나 기타 임베디드 시스템의 CPU 또는 MCU의 입장에서는 자체의 전원 전압에 해당하는 레벨로 통신이 이루어진다. 일반적인 MCU들이 사용하는 전압은 5V 또는 그 이하의 전압인데, Graphic LCD Designer 모듈의 전원 전압은 5V이다.

다른 장치와 ±12V 레벨로 통신을 하는 장치에서는 시스템의 전원 전압 레벨의 신호를 ±12V 레벨로 변환하고, 또 ±12V 레벨의 신호를 시스템의 전원 전압 레벨로 변환해 주는 소자가 붙게 된다. 전원 전압 레벨의 신호를 ±12V 레벨로 변환하는 소자를 라인 드라이버(line driver)라고 하고 ±12V 레벨의 신호를 시스

템의 전원 전압 레벨로 변환해 주는 소자를 라인 리시버(line receiver)라고 하는

데, 라인 드라이버와 리시버는 개별 소자로 구성되기도 하고 단일 소자로 구성

되기도 한다. 오늘날 많은 시스템에서 라인 드라이버와 리시버가 단일 소자로 구성된 회로를 많이 쓴다. 우리가 흔히 쓰는 MAX232라고 하는 IC가 라인 드

라이버와 라인 리시버가 함께 들어 있는 소자의 대표적인 예이다.

두 장치가 ±12V 레벨로 통신을 하는 경우, 양쪽 모두 라인 드라이버 및 라인 리시버를 가져야 한다. 그런데, 두 장치 사이의 거리가 극단적으로 짧고, 또한 한 상자 안에 들어 있는 경우, 두 장치 모두에서 라인 드라이버 및 리시버 회

로를 제거하고 직접 연결한다고 하더라도 전혀 문제가 없을 것이다. Graphic LCD Designer 모듈은 임베디드 시스템 컨트롤러와 통신을 하기 위해서 RS232C 통신을 이용하기는 하지만,5 임베디드 시스템 컨트롤러 바로 옆에, 그

5 사실 RS232C라고 하는 용어가 ±12V 레벨로 시리얼 통신을 하는 시스템의 규격에 관한 것이므

로 그 레벨의 통신을 하고 있지 않은 Graphic LCD Designer 모듈의 통신과 관련하여 RS232C라

고 하는 용어를 사용하는 것이 적절하지는 않다. Graphic LCD Designer 모듈은 RS232C 통신

의 ±12V 레벨에 대한 것을 제외한 부분을 사용하는 것이라고 보는 것이 적절하겠으나, 여기서 용

Page 11: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

3. Graphic LCD Designer 모듈모듈모듈모듈의의의의 연결연결연결연결

7

것도 같은 상자 안에 들어가는 것을 염두에 두고 만들어진 장치이므로 라인 드라이버 및 리시버 회로를 포함하고 있지 않다. 그래서 Graphic LCD Designer 모듈을 사용하는 임베디드 시스템 컨트롤러 또한 Graphic LCD Designer 모듈

과 같이 라인 드라이버 및 리시버 회로를 포함하지 않고 Graphic LCD Designer 모듈에 직접 연결하여야 한다. Graphic LCD Designer 모듈의 TX 단자

와 시스템 컨트롤러의 RX 단자, 그리고 Graphic LCD Designer 모듈의 RX 단자와 시스템 컨트롤러의 TX 단자를 직접 연결해 주면 된다.

Graphic LCD Designer 모듈은 5V 레벨의 신호를 사용하는데, GLCD Simulator는 PC에서 동작하는 애플리케이션인 관계로 ±12V 레벨을 사용하는 PC의 통

신 포트를 사용한다. 그래서 Graphic LCD Designer 모듈이 GLCD Simulator와 통신을 하기 위해서는 둘 사이의 레벨 변환을 하여 주기 위한 라인 드라이버 및 리시버 회로가 필요하다. 이 회로는 직접 제작할 수도 있을 것이다. 랩에 RS232C 통신을 하도록 만들어진 장치의 빈 보드가 있다면 라인 드라이버 및 리시버 회로만 적당히 오려서 사용하는 것도 한 방법일 것이다. 이런 것이 갖

추어지지 않아서 Graphic LCD Designer 모듈을 이용한 개발에 어려움이 있다

고 생각하는 사용자를 위해서 이 회로와 전원 회로를 갖춘 별도의 개발 도구를 판매하고 있다.6

3.3 데이터데이터데이터데이터 프레프레프레프레임임임임 구성구성구성구성

RS232C 통신은 선로를 통해서 데이터를 직렬로 주고 받는데, 통신을 하는 장치에서 한 단위의 데이터가 이루어진 형태에 관한 사항을 프레임 구성(framing)이라고 부른다. RS232C 통신에서 전송되는 프레임의 모양이 어떻게 되어 있는

가 하는 것을 살피는 것이 중요하겠다. 아래의 그림에 한 프레임의 데이터의 모양을 대략 표시하였다. 통신을 하지 않는 상태 즉, 아이들(IDLE) 상태일 때 데이터 선로는 5V의 상태를 유지하고 있다. 데이터의 전송이 시작되면 송신을 하는 장치는 한 비트 분만큼의 시간 동안 0V의 상태를 유지한다. 아래의 그림

에서 St라고 표시된 이 비트를 시작 비트(start bit)라고 한다. 이 비트는 반드시 그 값이 0이어야 한다. 그 다음에 데이터를 하위 바이트에서부터 한 비트씩 내보낸다. 아래의 그림에서 0-8까지의 비트를 데이터 비트(data bit)라고 하는데, 장치에 따라서 5 비트에서 9 비트까지 사용한다. 그 다음에 오는 P라고 하는 비트를 패리티 비트(parity bit)라고 한다. 패리티 비트 다음에는 Sp라고 표시된 정지 비트(stop bit)가 따라온다. RS232C 통신 데이터의 한 프레임은 이렇게 시작 비트에서부터 정지 비트까지 보내짐으로써 완성된다. 그 다음에는 다음 프

레임의 시작 비트가 오거나, 더 이상 보낼 데이터가 없으면, 아이들(IDLE) 상태

가 된다. 아래의 그림에서 [ ] 안에 든 비트들은 장치들에 따라 선택적으로 사

용되는 비트들을 나타낸다. 괄호를 쓰지 않고 표시한 비트들은 반드시 있어야 한다. 데이터 비트를 논외로 하고 살펴 보면, 시작 비트와 한 비트의 정지 비트

가 반드시 있어야 한다.

RS232C 통신의 한 프레임의 구성을 설명하기 위해서는 패리티 비트(그 유무 및 값), 데이터 비트의 수 및 정지 비트의 수를 표시하면 되겠다. 패리티 비트

를 P, 데이터 비트의 수를 D, 정지 비트의 수를 S라고 할 때, 흔히 이것을 P-D-S의 형식으로 표현한다. 이 중 데이터 비트의 수 및 정지 비트의 수는 숫자

로 표현되는데, 패리티 비트는 N, O 또는 E로 표시한다. N은 패리티 비트를 사

어법은 그리 중요한 것은 아니다.

6 이 개발 도구는 이 사용설명서가 제작된 시점에서는 개발 중이므로, 현재 공급이 가능한

가 하는 점에 대해서는 공급자의 홈페이지를 참조하시기 바란다.

Page 12: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

8

용하지 않는다는 의미이며, 데이터 비트들에서 1인 비트의 수가 홀수 개일 때 패리티 비트의 값이 1이 되면 O, 짝수 개일 때 1이 되면 E로 표시한다.

Graphic LCD Designer 모듈은 한 바이트 단위로 데이터를 주고 받으면, 프레임 구성에 8 비트의비트의비트의비트의 데이터데이터데이터데이터 비트를비트를비트를비트를 사용하며사용하며사용하며사용하며, 패리티패리티패리티패리티 비트는비트는비트는비트는 없으며없으며없으며없으며, 한한한한 비트의비트의비트의비트의 정정정정

지지지지 비트를비트를비트를비트를 사용한다사용한다사용한다사용한다. 따라서 Graphic LCD Designer 모듈의 데이터 프레임은 N-8-1과 같이 표현하면 되겠다.

3.4 통신통신통신통신 속도속도속도속도

하드웨어적인 연결과 데이터 프레임 구성이 올바로 구성되었다고 해서 통신이 이루어지는 것은 아니다. 앞서 데이터 프레임 구성에 대해서 설명하면서 비트 시간(bit time)이라는 용어를 사용하였는데, 말 그대로 데이터 프레임의 한 비트

가 유지되는 시간이다. 그런데, 송신하는 장치에서 생각하는 비트 시간과 수신

하는 장치에서 생각하는 비트 시간이 다르게 되면, 프레임 구성이라고 하는 개념 자체가 의미가 없어진다. RS232C 통신에서는 송신하는 장치와 수신하는 장치가 데이터를 동일한 속도로 주고 받아야 한다. 그래서 송신하는 장치에서도 수신하는 장치에서도 이 시간을 설정해 준다. 두 장치에서 이 비트 시간이 일

치해야 올바른 통신이 이루어지는 것이다. RS232C 통신에서 흔히 통신 속도

(communication speed)라고 부르는 말은 이 비트 시간의 역수이다. 말하자면, 이 비트 시간이 1/9600 초이면, 통신 속도는 9600 bps(bits per second, 초당 비트 수)가 된다. 통신이라고 하는 것은 항상 상대가 있어야 이루어지는 것이기 때문에 어떤 사람이 통신 장치를 설계하면서 통신 속도를 자기 마음대로 정하

면, 다른 사람이 그 사람 마음대로 정한 통신 속도를 가지는 장치와 통신하는 것은 불가능할 것이다. 그래서 업계 표준으로 정해진 통신 속도들이 있는데, 어떤 통신 속도를 사람들이 사용하는가 하는 것은 Windows에 있는 하이퍼터

미널과 같은 통신 프로그램의 통신 포트 설정 창을 열어 보면 여러 가지 통신 속도들이 나열되어 있는데, 그런 통신 속도를 사람들이 쓰고 있다고 생각하면 될 것이다. 흔히 쓰이는 속도는 300에 2의 제곱수를 곱한 형태로 나타나는데, 그래서 300, 600, 1200, 2400, 4800, 9600, 19200, 38400 하는 식이다. 지금 나열한 범위 밖의 통신 속도 값은 반드시 300×2n 규칙을 따르지는 않는다. 또 다른 어떤 수 N이 있어서 N×2n 규칙이 있기도 하다. 57600 같은 수가 대표적

인 경우이다.

흔히 우리가 MCU 회로를 구성하면서 사용하는 크리스털 공명기(crystal resonator)의 진동수가 11.0592 MHz와 같은 식으로 해괴한 값을 가지는 것도 알고 보면 RS232C 통신에서의 통신 속도와 관련이 있다. 살펴 보기로 하자. 11059200/300 = 36864, 11059200/38400 = 288, 11059200/57600 = 192 하는 식으로 크리스털 공명기의 진동수에서 통신 속도를 나눈 값들이 전부 정수 값이 된다는 것을 알 수 있다. 통신 속도를 정확히 맞춰 주자면, 그 시간을 정확히 측정하는 장치가 있어야 할 것인데, 그 시간 표준(time base)을 정확히 작동하

는 시스템의 클럭 발생기에서 얻어내기 위해서 그런 진동수를 가지는 크리스

털 공명기를 사용하여 적당한 정수값으로 나누어 사용하는 것이다.

앞서 송신하는 장치에서 정한 통신 속도와 수신하는 장치에서 정한 통신 속도

가 일치하여야 한다고 하였는데, 세상에 돌아 다니는 아주 비싼 시계도 시간이 정확히 맞지 않는데,7 어떻게 송신하는 장치와 수신하는 장치가 통신 속도를 정확히 맞게 할 수 있는가 하는 의문이 있을 수 있다. 이 문제를 해소하기 위

해서는 여러 가지 수법을 생각할 수 있겠는데, 가장 대표적인 방법을 여기서 설명하기로 한다. 수신하는 장치는 송신기에서 보내는 데이터가 들어 오면, 아

7 믿거나 말거나, 손목 시계와 같은 시계의 시간의 정확성은 시계의 가격과는 별로 상관이

없다. 어떤 사람이 끼고 있는 혼인 반지의 가격이 그 사람이 혼인 관계에 대하여 얼마나 성실한가 하는 것과는 별 상관이 없는 것과 같다고 할 것이다.

Page 13: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

3. Graphic LCD Designer 모듈모듈모듈모듈의의의의 연결연결연결연결

9

이들 시간에서 시작 비트 시간으로 전이하는 순간부터 이 변화가 송신기가 보

낸 정보인가 아니면 선로의 노이즈인가 열심히 검사한다. 이 검사를 얼마나 열심히 하는가 하는 것이 수신하는 장치의 품질과 직결되어 있다.8 이런 과정을 거쳐서 수신기는 송신기에서 보낸 데이터라는 것을 판단한 다음에는 각 비트 시간의 정중간에서 보내온 데이터를 읽는다. 그래서 송신기가 보낸 데이터의 정중간과 수신기가 받는 데이터의 정중간이 정지 비트를 읽을 때까지 그리 차

이가 나지 않으면, 수신기가 송신기가 보낸 데이터의 프레임을 재구성하는데 문제가 발생하지 않는다. Graphic LCD Designer 모듈이 사용하는 프레임 형식

을 예로 들어서 이야기하자면, 10 개의 데이터 비트를 주고 받는데 있어서 최

악의 경우 통신 속도가 5% 가까이 차이가 나더라도 문제가 되지 않을 것이

다.9 그래서 흔히 약간의 마진을 생각해서 5% 정도는 아니지만 송신기가 생각

하는 통신 속도와 수신기가 생각하는 통신 속도가 3-4% 정도의 차이가 나더라

도 통신이 가능하다고 본다. 그래도 가능하다면 정확히 맞춰 주는 것이 좋을 것이다.

Graphic LCD Designer 모듈은 업계 표준으로 사용되는 여러 통신 속도를 모두 지원하지는 않는다. 한글 LCD가 지원하는 통신 속도는 4800 bps 및 19600 bps 두 가지이다. 이 두 통신 속도 중 어느 것을 사용할 것인가 하는 것은 사

용자가 결정해야 한다.

Graphic LCD Designer 모듈의 회로 기판에 JP1이라고 하는 점퍼가 있을 것이

다. 이 점퍼의 연결 상태로 두 가지 통신 속도 중 하나를 선택할 수 있다. 점퍼 핀을 꽂아서 이 JP1 점퍼를 단락시키면, Graphic LCD Designer 모듈은 통신 속도가 4800 bps인 것으로 받아들이고, 점퍼 핀을 꽂지 않으면, 19200 bps인 것으로 받아들인다. Graphic LCD Designer 모듈이 내부적으로 이 점퍼의 상태를 읽어서 통신 속도를 판단하는 것이지, 이 점퍼가 통신 속도와 관련된 어떤 하

드웨어에 연결된 것은 아니다. Graphic LCD Designer 모듈은 전원을 투입하였

을 때 이 점퍼의 상태를 읽어서 통신 속도를 결정한다. 그래서 일단 전원을 투입하여 Graphic LCD Designer 모듈이 사용자가 원하는 통신 속도에 대한 정보

를 읽고 난 다음에는 사용자가 점퍼의 상태를 바꾼다고 하여도 통신 속도가 바뀌지 않는다. 다시 요약해서 말하자면, 한글한글한글한글 LCD는는는는 전원을전원을전원을전원을 투입할투입할투입할투입할 때의때의때의때의 JP1 점퍼점퍼점퍼점퍼 상태를상태를상태를상태를 읽어서읽어서읽어서읽어서 통신통신통신통신 속도를속도를속도를속도를 결정한결정한결정한결정한다다다다. 사용 중 통신 속도를 바꾸고 싶으면, 전원을 끈 다음, 점퍼 JP1의 상태를 바꾼 다음 전원을 다시 투입하여야 한다.

표표표표 2. 통신 속도를 정하기 위한 점퍼(JP1)의 설정 JP1의의의의 상태상태상태상태 설명설명설명설명

개방 통신 속도를 19200 bps로 맞춘다. 단락 통신 속도를 4800 bps로 맞춘다.

3.5 정수정수정수정수 데이터의데이터의데이터의데이터의 바이트바이트바이트바이트 전송전송전송전송 순서순서순서순서

Graphic LCD Designer 모듈과 같은 작은 시스템에서 정수 데이터(unsigned 및 signed int)는 2 바이트의 크기를 가진다. RS232C 통신을 통해서 한 바

이트의 데이터를 보낼 때, 비트의 순서는 하위 비트부터 보내도록 통신 규격에 정해져 있지만, 통신을 통해서 정수 데이터를 보낼 때 상위 바이트를 먼저 보

낼 것인가 하위 바이트를 먼저 보낼 것인가 하는 문제가 있을 수 있다.

이 점은 컴퓨터 시스템에서 내부에 데이터를 저장할 때도 발생하는 문제이다.

8 그래서 많은 소자 제조 업체들이 자기들이 만드는 소자가 얼마나 이 검사를 열심히 하는

가 하는 것을 그들의 데이터시트에 장황하게 설명한다. 9 Graphic LCD Designer 모듈이 사용하는 N-8-1 규칙이라면 한 프레임이 10 비트로 구성된

다. 첫 비트가 비트 시간의 정중간에 정확히 있다고 보았을 때, 마지막 비트가 수신기가 생각하는 비트 시간에서 벗어나게 되려면 대략 1/10 프레임 시간의 1/2, 즉 1/20 프레임 시간 또는 한 프레임 시간의 5%를 생각할 수 있을 것이다.

Page 14: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

10

데이터의 상위 바이트를 메모리 어드레스의 상위에 놓을 것인가 하위에 놓을 것인가 하는 것이다. 이것은 옳고 그름의 문제가 아니라 선택의 문제인데, 컴

퓨터 공학을 하는 사람들에게 이 선택은 엔디언(endian)이라고 알려져 있다. 상위 바이트를 메모리의 상위 어드레스에 놓는 방법을 작은 엔디언(little endian)이라고 하고, 상위 바이트를 메모리의 하위 어드레스에 놓는 방법을 큰 엔디언

(big endian)이라고 한다. 우리가 흔히 사용하는 PC는 내부에 데이터를 작은 엔디언 방식으로 저장하는 작은 엔디언 기계이다.10

우리가 통신을 통해서 데이터를 주고 받을 때 일반적으로 메모리에 데이터를 하위 어드레스에서 상위 어드레스로 쓸 것이다. 그래서 큰 엔디언 기계에서는 상위 바이트를 먼저 보내고 하위 바이트를 보내는 방법을 쓸 것이고, 작은 엔

디언 기계에서는 그 반대의 순서를 택하게 될 것이다. 여기서 Graphic LCD Designer 모듈이 큰 엔디언 기계라는 것을 밝히게 되면, 더 이상 장황하게 설

명하지 않더라도 통신으로 정수 데이터를 보낼 때 상위 바이트를 먼저 보내야 한다는 것이 이해가 될 것으로 본다. 반복하는데, Graphic LCD Designer 모듈모듈모듈모듈

에에에에 정수정수정수정수 데이터를데이터를데이터를데이터를 보낼보낼보낼보낼 때는때는때는때는 상위상위상위상위 바이트를바이트를바이트를바이트를 먼저먼저먼저먼저 보내야보내야보내야보내야 한다한다한다한다. 그렇지 않으면, Graphic LCD Designer 모듈은 사용자가 통신을 통해서 보내는 정보를 제대로 이해하지 못한다.

GLCD Designer 라이브러리 인터페이스는 정수 데이터를 보낼 때 시스템 컨트

롤러의 엔디언에 상관없이 상위 바이트를 먼저 보낸다. 그래서 사용자가 C 언

어 프로그래머이고 GLCD Designer 라이브러리를 사용하고 있다면 이런 문제

에 대해서 전혀 생각할 필요가 없다.

3.6 연결연결연결연결 선의선의선의선의 수수수수

Graphic LCD Designer 모듈은 본질적으로 임베디드 시스템 컨트롤러에서 보내 주는 명령을 받아서 LCD 화면에 표시를 하는 장치이다. 따라서, Graphic LCD Designer 모듈이 임베디드 시스템 컨트롤러와 통신을 하는데 있어서, 데이터를 수신하기만 하고 송신을 할 필요가 없어 보인다.

많은 부분에서 맞는 말이다. 그렇지만, 시골에 계시는 부모님께서 대처에 나가 살고 있는 딸이나 아들에게 굴비를 보내 주시면, 자식 된 도리로 잘 받았다고 전화라도 한 통 해드리는 것이 당연한 일이다. Graphic LCD Designer 모듈도 임베디드 시스템 컨트롤러에서 명령을 보내면 그 명령을 받아서 잘 처리하였

다고 응답한다. 이런 과정을 핸드세이크(handshake)라고 한다. 물론 Graphic LCD Designer 모듈이 임베디드 시스템 컨트롤러에게 응답하는 것은 어떤 도리 때문에 그렇게 하는 것은 아니다. Graphic LCD Designer 모듈이 응답하도록 되어 있는 것은 그렇게 하는 것이 전체 시스템이 효과적으로 동작하는데 도움이 되기 때문이다.

Graphic LCD Designer 모듈과 임베디드 시스템 컨트롤러의 관계만 놓고 보자

면, 임베디드 시스템 컨트롤러는 Graphic LCD Designer 모듈에게 어떤 동작을 하라는 명령을 내리기만 하고 Graphic LCD Designer 모듈은 그 명령을 해석하

여 LCD 화면에 표시하는 일을 한다. Graphic LCD Designer 모듈이 임베디드 시스템 컨트롤러로부터 한 명령을 받아 실행하는 데는 당연히 시간이 걸린다. 이 걸리는 시간이 모든 명령에 대하여 일정한 것이 아니어서, 어떤 간단한 명

령은 임베디드 시스템 컨트롤러에서 보내는 다음 명령이 들어오기도 전에 끝

나고, 또 어떤 명령은 제법 긴 시간이 걸린다. 특히 큰 타원 등의 도형을 채우

는 명령이나, 비트맵 그래픽스 명령 같은 경우는 거의 1 초 가까운 시간이 걸

리기도 한다. 10 데이터의 바이트 수가 2를 넘는 경우, 즉 4 바이트나 8 바이트와 같이 되는 경우에는 큰 엔디

언과 작은 엔디언이 혼합되는 형태의 혼합 엔디언(mixed endian)이라고 하는 것도 있기는 한데, 여기서 논의할 필요는 없을 것이다.

Page 15: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

3. Graphic LCD Designer 모듈모듈모듈모듈의의의의 연결연결연결연결

11

시스템 컨트롤러 입장에서 보았을 때, Graphic LCD Designer 모듈이 명령을 실행하는데 걸리는 시간을 예측하여 Graphic LCD Designer 모듈이 한 명령을 완전히 수행했을 것이라고 여겨지는 시간이 지났을 때 다음 명령을 보내 주는 것이 그리 만만한 일이 아니다. 그렇다고 최악의 경우를 예상하여 명령을 하나 보내고 1 초 기다리고, 그 다음 명령 보내고 다시 1 초 기다리고 할 수도 없는 노릇이다. 시스템 컨트롤러는 Graphic LCD Designer 모듈에 화면 표시를 위한 명령을 보내기만 하는 일을 하는 것이 아니라, 다른 여러 일을 하여야 하는데, 마냥 Graphic LCD Designer 모듈이 화면 표시를 하도록 기다릴 수 없는 것이

다. 사실 시스템이 이런 식으로 구성되어 있다면, 시스템 컨트롤러가 문제가 아니라, 시스템의 엔드유저가 먼저 분통을 터트릴 일이다. 화면 하나 바뀌는데, 몇 분씩 기다려야 할 지 모르기 때문이다.

Graphic LCD Designer 모듈은 이런 시스템의 사용 시간 자원의 낭비를 막기 위하여 시스템 컨트롤러로부터 한 명령을 받으면 그 명령을 실행한 다음, 즉시 명령의 실행이 끝났다는 응답을 보낸다. 그래서 Graphic LCD Designer 모듈의 기능을 최대한 사용하려고 하면 시스템 컨트롤러 쪽에서 보았을 때 송신과 수

신의 두 핀이 필요하다. 그래서 VCC와 GND의 두 개의 전원 선을 포함해서 시스템 컨트롤러와 Graphic LCD Designer 모듈 사이에 4 핀이 필요하다.

연결 선 하나를 아끼고 싶다면, 물론 시스템 컨트롤러 쪽에서 보았을 때 수신

을 하기 위한 선을 생략하고 3 핀으로 연결할 수는 있다. 이 경우 시스템 컨트

롤러 입장에서는 Graphic LCD Designer 모듈이 한 명령의 실행을 끝냈는가 하는 것을 예측으로 알 수밖에 없다. 어떤 연결 방법을 사용할 것인가 하는 것은 전적으로 사용자의 선택에 달려 있는 것이지만, 4 핀 연결을 선택할 것을 강력

히 권장한다. Graphic LCD Designer 모듈과 같은 류의 제품을 만드는 사람이 자기 제품이 4 핀 연결이 아니라 3 핀 연결로 되어 있다고 자랑한다면, 그것은 자랑이 아니라 그 제품이 중대한 결함을 가진 제품이라는 것을 선전하는 것이

라는 것을 알아야 한다.

비트맵 그래픽스를 사용하는 경우 GLCD Simulator에서 Graphic LCD Designer 모듈에 비트맵 데이터를 다운로드 할 때는 많은 양의 데이터를 고속으로 전송

해야 하기 때문에 Graphic LCD Designer 모듈과 적극적으로 핸드세이크를 하

고 있다. 그래서 GLCD Simulator에서 비트맵 데이터를 다운로드 할 때는 4 핀 연결이 위에 설명한 것과 같이 권장 사항이 아니라 반드시 필요한 사항이다. 이 경우도 GLCD Simulator에서 다운로드 한 비트맵 데이터는 한 번 다운로드 되고 나면 Graphic LCD Designer 모듈 내부의 플래시 메모리에 저장되어서 그 데이터를 바꿔야 할 필요가 있는 경우를 제외하고는 다시 다운로드 해야 할 필요가 없기 때문에 Graphic LCD Designer 모듈이 시스템에 들어간 경우에는, 권장되지는 않지만, 3 핀 연결로 사용할 수는 있다.

시스템에서 Graphic LCD Designer 모듈을 사용하는 것을 지원하기 위해서 만

들어진 GLCD Designer 라이브러리에는 선택적으로 Graphic LCD Designer 모듈로 명령을 보낸 다음에 Graphic LCD Designer 모듈로부터 응답이 있을 때까

지 기다리는 기능이 들어 있다. 시스템의 프로그램에서 GLCD Designer 라이브

러리의 응답 기능을 선택하거나, 선택하지 않을 수 있다.

Page 16: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

12

[This page is left blank intentionally.]

Page 17: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

13

4. 명령어명령어명령어명령어

Graphic LCD Designer 모듈은 시리얼 통신으로 임베디드 시스템의 컨트롤러나 Graphic LCD Designer 모듈 프로그램을 지원하기 위하여 만들어진 특별한 프

로그램인 GLCD Simulator에서 보내 주는 명령을 해석해서 그래픽 LCD 화면에 표시를 하여 주는 장치이다. 그래서 Graphic LCD Designer 모듈을 제어하기 위해서는 정해진 명령을 보내 주어야 한다. 아래에 Graphic LCD Designer 모듈을 제어하기 위한 명령들에 대해서 설명한다.

각 명령은 명령어(op code)와 데이터로 구성된다. 모든 명령의 명령어는 한 바이트의 크기를 가진다. 명령어에 이어서 명령어에 따른 인수(parameter)나 데

이터를 보내 주어야 하는데, 이 인수나 데이터들의 길이는 각 명령어마다 다르

다.

여기서 각각의 Graphic LCD Designer 모듈 명령을 설명할 때 사용할 양식을 예시한다.

op code

MNEMONIC 니모닉: 명령어마다 붙여진 고유한 이름으로, GLCD Designer 라이브러리의 사용과 관련하여, 니모닉을 사용하

는 것이 편리하다. 인수/데이터:

P1(1) P2(1) ... ... ... PN(1)

여기서 P1, P2…PN: 각각의 인수들로 인수/데이터의 표 바로 아래에 자세히 설명된다. 괄호 안의 숫자는 각 인수의 바이트 수를 나타낸다.

아래의 개별 명령의 설명에서 명령어 및 인수/데이터의 값을 나타내면서 사용

하고 있는 $ 기호는 그 수의 값이 16진수라는 것을 의미한다.

4.1 기본기본기본기본 기능기능기능기능

여기서 설명하는 기능들은 Graphic LCD Designer 모듈에서 문자를 출력하고, 화면을 조작하고, 호환성을 제어하는 기본적인 기능들이다.

4.1.1 한글한글한글한글 LCD 초기화초기화초기화초기화

Graphic LCD Designer 모듈에서 LCD를 초기화한다는 용어는 LCD 모듈을 사용하면서 흔히 사용하는 용어와는 차이가 있으므로 이 용어에 대해서 약간의 설명을 하는 것이 필요하겠다.

먼저 일반적인 LCD 모듈에서 사용되는 LCD 초기화라고 하는 용어에 대해서 살펴 보자. LCD 모듈이라고 하는 장치는 LCD 패널에 그 패널을 제어하기 위

한 LCD 컨트롤러라고 하는 반도체 칩 및 기타 회로로 구성되어 있다. LCD 모듈을 제어한다고 하는 것은 LCD 컨트롤러에 있는 레지스터(register)들에 어떤 값을 써 넣어서 그 결과가 LCD 화면에 나오게 한다는 것인데, LCD 모듈을 처음 사용하기 위해서는 LCD 컨트롤러의 레지스터들에 LCD 패널의 크기, 메모

리 사용, 데이터 출력 위치 등 특정한 초기값을 넣어 주어야 한다. 그렇게 하지 않고 LCD 모듈은 제대로 사용할 수 있는 상태가 되지 않는다.

Graphic LCD Designer 모듈은 위에서와 같이 LCD 모듈을 하드웨어적으로 제

어하는 부분에 있어서는 사용자가 어떤 개입을 하지 않아도 되도록 전원이 투

입되면, 알아서 LCD 모듈을 사용자가 바로 사용할 수 있는 상태로 만들어 준

다. 따라서 Graphic LCD Designer 모듈의 사용자는 그런 하드웨어적인 제어에 대해서는 전혀 생각할 필요가 없다. 그러므로 Graphic LCD Designer 모듈에서 LCD를 초기화한다는 용어의 의미는 일반적인 LCD 모듈을 초기화한다는 것과

Page 18: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

14

는 의미가 전혀 다르다.

Graphic LCD Designer 모듈은 전원을 투입하면, 사용자가 바로 사용할 수 있게 해 주면서, 사용자가 Graphic LCD Designer 모듈을 사용하면서 지정하게 되는 내부 변수의 값을 초기값이라고 하는 특정한 값으로 지정한다. 이런 내부 변수

의 값들은 사용자가 Graphic LCD Designer 모듈을 사용하면서 사용자의 필요

에 따라서 다른 값으로 바뀌게 될 것이다. Graphic LCD Designer 모듈에서 LCD를 초기화한다는 것은 이런 내부 변수들의 값을 다시 앞서 말한 초기값이

라고 하는 특정한 값으로 되돌려 주는 것을 의미한다. 다시 말하자면 LCD 초

기화라고 하는 것은 Graphic LCD Designer 모듈이 다음의 동작을 한다는 것을 의미한다.

LCD의의의의 모든모든모든모든 페이지의페이지의페이지의페이지의 화면을화면을화면을화면을 지우고지우고지우고지우고, 커서의커서의커서의커서의 위치를위치를위치를위치를 좌측좌측좌측좌측 상단상단상단상단 즉즉즉즉, (0, 0)으로으로으로으로 이동한다이동한다이동한다이동한다. 문자문자문자문자 출력출력출력출력 속성을속성을속성을속성을 나타내는나타내는나타내는나타내는 모든모든모든모든 내부내부내부내부 변수의변수의변수의변수의 초기초기초기초기값으로값으로값으로값으로 되돌린다되돌린다되돌린다되돌린다. 좀 더 자세하게 설명하자면 LCD 초기화에 의해서 다음의 동작이 이루어진다.

� LCD의 모든 페이지의 화면이 지워진다. � 보이기 페이지(active page)가 0으로 설정된다. � 그리기 페이지(draw page)가 0으로 설정된다. � 커서의 위치가 좌측 상단 즉, (0, 0)으로 이동한다. � 글자체가 명조체 전자로 선택된다. � 글자 두께가 얇은 체(Normal face)로 선택된다. � 글자의 폭이 일반 폭(Normal width)으로 선택된다. � 흑백 반전 기능이 취소된다. � 고유 모드에서는 한글 코드를 완성형으로, 컴파일 호환 모드에서는 한글

코드를 조합형으로 선택한다.

길이: 1 바이트

$A0 CMD_LCDINIT

GLCD Designer 라이브러리 함수:

void lcd_initialize(void);

주의주의주의주의: GLCD Simulator에서는 LCD 초기화 버튼을 눌렀을 때, 실제로는 Graphic LCD Designer 모듈에 LCD 초기화 명령을 보내지 않고, 뒤에 설명할 고유고유고유고유 모모모모드로드로드로드로 전환하기전환하기전환하기전환하기 명령을 내보낸다. 이것은 GLCD Simulator가 잘못되었기 때문

에 그런 것이 아니고 원래 그렇게 동작하도록 설계된 것이다. GLCD Simulator는 조합형 한글 코드를 지원하지 않기 때문에 고유고유고유고유 모드로모드로모드로모드로 전환하전환하전환하전환하

기기기기 명령으로 Graphic LCD Designer 모듈을 초기화함으로써 Graphic LCD Designer 모듈이 완성형 한글 코드를 받아들일 수 있는 상태로 만들어 주기 위해서 그렇게 하는 것이다. 또한 GLCD Simulator는 컴파일 호환 모드를 지원하지 않기 때문에 GLCD Simulator 입장에서는 이것이 더 합리적인 판단인 것이다.

4.1.2 화면화면화면화면 지우기지우기지우기지우기

현재의 그리기 페이지의 화면을 지우고, 커서의 위치를 (0, 0)으로 이동한다. 이후에 문장 출력 명령을 사용하여 문장을 출력하면, 좌측 상단(0, 0)에서부터 표시된다. 화면 지우기 명령은 그리기 페이지의 화면만을 지운다.

길이: 2 바이트

Page 19: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

15

$A3 CMD_CLEARSCR

인수/데이터:

$01

이 명령의 인수는 1 바이트이며, 항상 $01의 값만을 가진다.

GLCD Designer 라이브러리 함수:

void lcd_clear_screen(void);

4.1.3 커서의커서의커서의커서의 위치위치위치위치 지정지정지정지정

화면에 문장이 출력될 위치, 즉 커서의 위치 (x, y)를 지정한다.

길이: 3 바이트

$A1 CMD_LOCATE

인수/데이터:

X(1) Y(1)

X: 커서의 가로 위치 (초기값은 0이다) (가질 수 있는 값의 범위는 개별 LCD 모듈에 대한 설명서 참조) Y: 커서의 세로 위치 (초기값은 0이다) (가질 수 있는 값의 범위는 개별 LCD 모듈에 대한 설명서 참조)

GLCD Designer 라이브러리 함수:

void lcd_locate(signed char x, char y);

4.1.4 문장문장문장문장 출력하기출력하기출력하기출력하기

Graphic LCD Designer 모듈에 문장을 출력한다. 문장을 출력할 위치는 문장 출력 위치를 지정하는 커서 위치 지정 명령을 보내었을 때는 그 지정 위치가 될 것이고, 앞서 문장을 출력한 경우에는 그 문장이 끝나는 바로 오른쪽 위치가 된다.

출력하고자 하는 문장의 길이가 길어서 화면의 오른쪽 끝을 넘는 경우, 다음 줄로 넘어가지 않고, 화면의 오른쪽 끝을 넘는 위치의 문자들은 출력되지 않는

다.

길이: 출력하고자 하는 문장의 길이+2 바이트

$A2 CMD_WRITESTR

인수/데이터:

STR(Variant) $00(1)

STR: 출력하고자 하는 문장의 문자열로, 그 길이는 문장의 길이에 따라

서 달라지며, NUL 문자(값이 0인 문자)를 포함해서는 안 된다. $00: 출력할 문장 다음에는 반드시 NUL 문자(값이 0인 문자)가 와야 한

Page 20: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

16

다.

GLCD Designer 라이브러리 함수:

void lcd_write_str(char *str);

4.1.5 작은작은작은작은 그래픽그래픽그래픽그래픽 출력하기출력하기출력하기출력하기

16×16 크기의 작은 그래픽을 출력한다. 명령어 다음에 작은 그래픽을 표현하

는 32 바이트의 데이터를 보내야 한다.

길이: 33 바이트

$A4 CMD_PUTGRAPHIC

인수/데이터:

IMG(32)

IMG: 출력하고자 하는 16×16의 작은 그래픽 데이터. 데이터 형식에 대해서는 아래에서 자세히 설명한다.

GLCD Designer 라이브러리 함수:

void lcd_put_graphic(char *str);

그래픽 LCD 모듈에서 바이트가 배열되는 형식은 LCD 모델에 따라서 차이가 있다. 가로로 배열되는 모듈도 있고, 세로로 배열되는 모듈도 있다. Graphic LCD Designer 모듈에서 사용하는 그래픽 LCD 모듈에 무관하게 일정한 형식을 사용하지 않고 사용되는 그래픽 LCD 모듈에 따라서 데이터의 형식이 다르게 되어 있는 것은 가장 빠른 방법으로 데이터를 표시하기 위해서는 사용자에게 약간의 번거로움이 있기는 하지만, 그래픽 LCD 모듈에서 사용하는 데이터 형

식을 사용하는 것이 가장 합리적이라고 판단하였기 때문이다. Graphic LCD Designer 모듈에는 GLCD Simulator라고 하는 화면 설계 및 소스 생성을 도와 주는 프로그램이 함께 제공되어 Graphic LCD Designer 모듈에서 사용하는 데

이터 형식을 일일이 기억하지 않고도 GLCD Simulator에서 사용하는 Graphic LCD Designer 모듈의 모델만 지정하면 그 모델에 맞는 프로그램 소스 코드를 생성해 주기 때문에 이 번거로움도 전혀 문제가 되지 않을 것이다.

다만 여기서는 사용자의 참고를 위해서 실제 작은 그래픽 데이터가 Graphic LCD Designer 모듈의 화면에 어떤 형식과 순서로 표시되는가를 설명한다.

아래의 그림은 바이트가 가로로 배열된 가로 배열형 한글 LCD모듈과 세로로 배열된 세로 배열형 한글 LCD모듈에서의 데이터의 형식과 순서를 보여 준다. 가로 배열형 Graphic LCD Designer 모듈에서 바이트 내의 비트 배열은 왼쪽이 상위 비트, 오른쪽이 하위 비트이다. 세로 배열형 Graphic LCD Designer 모듈

에서 바이트 내의 비트 배열은 위쪽이 하위 비트, 아래쪽이 상위 비트이다.

Page 21: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

17

가로 배열형 데이터 형식 및 순서 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

0 0 1

1 2 ----

3

2 4

5

3 6

7

4 8

9

5 10

11

6 12

13

7 14

15

8 16

17

9 18

19

10 20

21

11 22

23

12 24

25

13 26

27

14 28

29

15 30

31

세로 배열형 데이터 형식 및 순서

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0

1

2

3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

4

5

6

7

0

1

2

3 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

4

5

6

7

어느 경우든 데이터의 바이트 순서는 왼쪽에서 오른쪽으로 그 다음에 위에서 아래로 향하는 방향이다. 이 형식을 C 언어에서 사용하는 배열 변수의 형식으

로 표현하자면 다음과 같다. 가로 방향의 데이터 배치가 먼저이므로, 아래의 배열 변수에서 가로 방향 인덱스가 오른쪽 세로 방향의 인덱스가 왼쪽이 되겠

다.

가로 배열형

unsigned char graphic_image[16][2];

세로 배열형

unsigned char graphic_image[2][16];

물론 이 배치 방향만 염두에 둔다면, 배열 변수를

unsigned char graphic_image[32];

와 같이 선언하고 사용하더라도 전혀 문제가 없을 것이며, 실제로 Graphic LCD Designer 모듈의 사용을 지원하기 위한 소프트웨어인 GLCD Simulator에서는 이 형식의 배열로 소스를 생성한다.

컴파일컴파일컴파일컴파일 테크놀로지테크놀로지테크놀로지테크놀로지 LCD 모듈과의모듈과의모듈과의모듈과의 호환성에호환성에호환성에호환성에 대한대한대한대한 주석주석주석주석. 컴파일 테크놀로지 LCD 모듈은 세로 배열형 LCD에서 데이터 전송 순서가 Graphic LCD Designer 모듈의 데이터 전송 순서가 약간 다르다. Graphic LCD Designer 모듈은 컴파일

Page 22: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

18

호환 모드에서는 컴파일 LCD 모듈과 같은 순서로 데이터를 수신한다.

4.1.6 표시할표시할표시할표시할 글자체글자체글자체글자체 선택선택선택선택

Graphic LCD Designer 모듈은 다음과 같은 다섯 가지의 글자체를 지원한다.

� 명조체 반자: 8×16 크기의 한글 글자체 � 고딕체 반자: 8×16 크기의 한글 글자체 � 명조체 전자: 16×16 크기의 한글 글자체 � 고딕체 전자: 16×16 크기의 한글 글자체 � ASCII text font: 이 글자체는 8×16 크기를 가지는데, 글자의 모양은 예전

PC의 텍스트 모드에서의 글자체와 유사하다.

길이: 2 바이트

$B0 CMD_SETFONT

인수/데이터:

FONT(1)

FONT: 표시할 글자체. 가질 수 있는 값은 아래와 같다. $00: 명조체 반자 $01: 고딕체 반자 $02: 명조체명조체명조체명조체 전자전자전자전자 (초기값) $03: 고딕체 전자 $04: ASCII text font. 이 글자체가 선택되면 한글, 한자, 특수 문자

등은 ??로 표시된다.

GLCD Designer 라이브러리 함수:

void lcd_set_font(char font);

명조체 반자 및 고딕체 반자체는 한글에 대해서만 적용된다. 영숫자, 한자 및 특수 문자에 대해서는 적용되지 않는다.

컴파컴파컴파컴파일일일일 테크놀로지테크놀로지테크놀로지테크놀로지 LCD 모듈과의모듈과의모듈과의모듈과의 호환성에호환성에호환성에호환성에 대한대한대한대한 주석주석주석주석. 컴파일 테크놀로지 LCD 모듈은 일부 모델에서만 $00에 9×16 크기의 샘물체, $01에 9×16 크기의 고딕체 글자체를 사용한다. Graphic LCD Designer 모듈에서 사용하는 글자체와 모양과 크기가 다르므로 컴파일 제품을 사용하던 시스템에서 Graphic LCD Designer 모듈을 그대로 사용하는 경우 화면의 모양이 달라질 수 있다. 컴파

일 테크놀로지 LCD 모듈은 $03에 태고딕체라고 해서 Graphic LCD Designer 모듈에서 사용하는 고딕체보다 두꺼운 글자체를 사용한다. 컴파일 제품을 사용하던 시스템에서 Graphic LCD Designer 모듈을 그대로 사용하는 경우 화

면의 모양이 달라질 수 있다. 명조체의 경우에도 컴파일 제품과 Graphic LCD Designer 모듈은 글자체가 다르므로, 글자체와 관련하여 컴파일 제품과 Graphic LCD Designer 모듈은 일반적으로 호환되지 않는다고 보는 것이 좋

다. 컴파일 제품을 사용하던 시스템에서 Graphic LCD Designer 모듈을 그대

로 사용하여도 문제가 없다면 그냥 써도 좋다. 그러나, 기존 시스템의 소스 코드가 있어서 새로 컴파일할 수 있다면, Graphic LCD Designer 모듈이 제공

하는 기능에 맞추어 새로 디자인하여 쓰기를 권한다.

4.1.7 글자의글자의글자의글자의 두께두께두께두께 지정지정지정지정

Page 23: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

19

얇은 체 또는 두꺼운 체를 지정한다. 이 지정은 한글 명조체 전자 및 한글 고

딕체 전자에 대해서만 적용된다. 반자체의 한글, 한자, 특수 문자 및 ASCII text font에 대해서는 적용되지 않는다.

길이: 2 바이트

$B1 CMD_SETFACE

인수/데이터:

FACE(1)

FACE: 글자의 두께. 가질 수 있는 값은 아래와 같다. $00: 얇은얇은얇은얇은 글자체글자체글자체글자체 (초기값) $01: 두꺼운 글자체

GLCD Designer 라이브러리 함수:

void lcd_set_fontface(char fontface);

4.1.8 글자글자글자글자 폭폭폭폭 지정지정지정지정

글자의 폭을 일반 폭으로 지정하거나 넓은 폭으로 지정한다. 넓은 폭은 일반 폭을 2배 확대한 것이다. 글자체가 명조체 반자 또는 고딕체 반자체인 경우 반자체의 글자를 넓은 폭으로 표시하지 않고 각각 명조체 전자 또는 고딕체 전자

체로 표시한다.

길이: 2 바이트

$C0 CMD_SETWIDTH

인수/데이터:

WIDTH(1)

WIDTH: 글자의 폭. 가질 수 있는 값은 아래와 같다. $00: 일반일반일반일반 폭폭폭폭 (초기값) $01: 넓은 폭

GLCD Designer 라이브러리 함수:

void lcd_set_width(char width);

4.1.9 흑백흑백흑백흑백 반전반전반전반전 (역상체역상체역상체역상체) 선택선택선택선택

Page 24: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

20

글자의 색과 바탕색을 뒤집어서 표시(역상체)할 것인가, 글자의 색과 바탕색을 올바로 표시(정상체)할 것인가를 선택한다.

길이: 2 바이트

$D0 CMD_PUTMODE

인수/데이터:

PUT(1)

PUT: 흑백 반전 선택. 가질 수 있는 값은 아래와 같다. $00: 흑백흑백흑백흑백 반전반전반전반전 없음없음없음없음 (초기값) $01: 흑백을 반전함

GLCD Designer 라이브러리 함수:

void lcd_set_putmode(char put);

4.1.10 한글한글한글한글 코드의코드의코드의코드의 선택선택선택선택

완성형 한글과 조합형 한글의 코드를 선택한다. Graphic LCD Designer 모듈은 조합형 코드를 지원하지만 모든 조합형 문자를 표시할 수 있는 것은 아니다. 한글 완성형 코드표에 있는 한글 문자들(2,350자)만 출력된다.

길이: 2 바이트

$E0 CMD_HONCODE

인수/데이터:

HONCODE(1)

HONCODE: 한글 코드. 가질 수 있는 값은 아래와 같다. $00: 조합형 한글 코드 $01: 완성형 한글 코드

GLCD Designer 라이브러리 함수:

void lcd_set_putmode(char put);

컴파일컴파일컴파일컴파일 테크놀로지테크놀로지테크놀로지테크놀로지 LCD 모듈과의모듈과의모듈과의모듈과의 호환성에호환성에호환성에호환성에 대한대한대한대한 주석주석주석주석. Graphic LCD Designer 모듈이 초기화되었을 때 선택되는 한글 코드는 고유 모드(genuine mode)에 있을 때와 컴파일 호환 모드에 있을 때 다르다. 고유 모드에 있을 때는 완성

형 한글 코드가 선택되고, 컴파일 호환 모드에 있을 때는 조합형 한글 코드

가 선택된다.

4.1.11 보이기보이기보이기보이기 페이지페이지페이지페이지(active page) 선택선택선택선택

Graphic LCD Designer 모듈은 다중 디스플레이 페이지(2 페이지) 기능을 지원

Page 25: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

21

한다. (일부 모델 제외) Graphic LCD Designer 모듈은 LCD에서 데이터가 출력

되고 있는 페이지와 무관하게 항상 보이기 페이지만을 보여 준다. 보이기 페이

지 선택 기능과 다음에 설명할 그리기 페이지 선택 기능을 이용하면, 보이지 않는 페이지에 출력하여 완료한 다음 그 페이지를 보이게 전환하는 방법을 이

용해서 화면이 갱신되는 도중의 모습이 나타나지 않게 할 수 있다.

길이: 2 바이트

$A5 CMD_SELECTPAGE

인수/데이터:

PAGE(1)

PAGE: 화면을 보여 줄 페이지. 페이지 값의 범위는 $00 또는 $01이다. 초기치는 page 0이다.

GLCD Designer 라이브러리 함수:

void lcd_select_page(char page);

4.1.12 그리기그리기그리기그리기 페이지페이지페이지페이지(draw page) 선택선택선택선택

Graphic LCD Designer 모듈은 다중 디스플레이 페이지(2 페이지) 기능을 지원

한다. (일부 모델 제외) Graphic LCD Designer 모듈은 현재 보이는 페이지와 무관하게 항상 그리기 페이지에만 데이터를 출력한다. 앞서 설명한 보이기 페이

지 선택 기능과 이 그리기 페이지 선택 기능을 이용하면, 보이지 않는 페이지

에 출력하여 완료한 다음 그 페이지를 보이게 전환하는 방법을 이용해서 화면

이 갱신되는 도중의 모습이 나타나지 않게 할 수 있다.

길이: 2 바이트

$A6 CMD_DRAWPAGE

인수/데이터:

PAGE(1)

PAGE: 데이터를 출력하는 페이지. 페이지 값의 범위는 $00 또는 $01이

다. 초기치는 page 0이다.

GLCD Designer 라이브러리 함수:

void lcd_draw_page(char page);

4.1.13 고유고유고유고유 모드로모드로모드로모드로 전환하기전환하기전환하기전환하기

Graphic LCD Designer 모듈은 Graphic LCD Designer 모듈의 고유한 동작 모드

인 고유 모드와 컴파일 테크놀로지 LCD 모듈을 사용하던 사용자들을 지원하

기 위한 컴파일 호환 모드를 지원한다. Graphic LCD Designer 모듈은 컴파일 호환 모드를 지원하기 위하여 전원을 켰을 때 항상 컴파일 호환 모드로 기동한

다. 고유 모드는 컴파일 호환 모드와 화면상의 문자들의 위치에 대한 맵이나 작은 그래픽 출력 방법이 다르기 때문에 고유 모드에서 사용하는 방법을 쓰고

자 하는 경우에는 고유 모드로 전환해야 한다. 이 명령을 수행하면 Graphic LCD Designer 모듈은 고유 모드로 전환한 다음, LCD 초기화 명령을 수행하여

Page 26: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

22

모든 내부 변수들을 초기화한다.

길이: 1 바이트

$B2 CMD_GENUINE

GLCD Designer 라이브러리 함수: void lcd_switch_to_genuine(void);

주의주의주의주의: GLCD Simulator에서는 LCD 초기화 버튼을 눌렀을 때, 실제로는 Graphic LCD Designer 모듈에 LCD 초기화 명령을 보내지 않고, 뒤에 설명할 고유고유고유고유 모모모모드로드로드로드로 전환하기전환하기전환하기전환하기 명령을 내보낸다. 이것은 GLCD Simulator가 잘못되었기 때문

에 그런 것이 아니고 원래 그렇게 동작하도록 설계된 것이다. GLCD Simulator는 조합형 한글 코드를 지원하지 않기 때문에 고유고유고유고유 모드로모드로모드로모드로 전환하전환하전환하전환하

기기기기 명령으로 Graphic LCD Designer 모듈을 초기화함으로써 Graphic LCD Designer 모듈이 완성형 한글 코드를 받아들일 수 있는 상태로 만들어 주기 위해서 그렇게 하는 것이다. 또한 GLCD Simulator는 컴파일 호환 모드를 지원하지 않기 때문에 GLCD Simulator 입장에서는 이것이 더 합리적인 판단인 것이다. 위에서 설명한 것과 같이 이 명령이 실행되면 LCD 초기화가 이루어

지기 때문에, 완성형 한글 코드가 사용되고 고유 모드의 좌표계가 사용된다

는 점을 제외하고는 결과에 있어서 차이가 없다.

4.2 선선선선 및및및및 도형도형도형도형 그리기그리기그리기그리기11

여기서는 Graphic LCD Designer 모듈의 선 및 도형 그리기 기능을 설명한다. 선 및 도형 그리기 기능에서 사용하는 좌표계는 문자 출력이나 비트맵 그래픽

스에서 사용하는 좌표계와 약간 다르다. 문자 출력이나 비트맵 그래픽스에서는 8×8 픽셀 단위의 좌표계를 사용하는 반면, 그리기 기능에서는 한 픽셀 단위의 좌표계를 사용한다. 따라서, 예를 들어, LCD 화면의 크기가 320×240이라면 그리기 기능에서 사용하는 좌표의 범위는 (0,0)에서 (319,239)가 된다.

4.2.1 선선선선 그리기그리기그리기그리기

선 그리기 명령은 LCD 화면상의 두 점 사이를 잇는 직선을 그려 준다.

길이: 10 바이트

$A8 CMD_DRAWLINE

인수/데이터:

X1(2) Y1(2) X2(2) Y2(2) COLOR(1)

X1: 첫째 점의 X 좌표 Y1: 첫째 점의 Y 좌표 X2: 둘째 점의 X 좌표 Y2: 둘째 점의 Y 좌표 COLOR: 선의 색. $00에서 $0F 사이의 값을 갖는다.

GLCD Designer 라이브러리 함수:

void lcd_draw_line(unsigned x1, unsigned y1, unsigned x2,

11 이 기능은 선 및 도형 그리기 기능이 지원되는 Graphic LCD Designer 모듈에 대해서만 적용된다.

Page 27: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

23

unsigned y2, char color);

4.2.2 직사각형직사각형직사각형직사각형 그리기그리기그리기그리기

직사각형 그리기 기능은 기울어지지 않은, 즉 두 변은 X 축에 평행하고 다른 두 변은 Y 축에 평행한 직사각형을 그리는 기능이다.

이런 직사각형을 그리기 위해서는 서로 마주 보는 두 꼭지점의 좌표를 지정해 주기만 하면 된다. 두 꼭지점의 좌표를 각각 (x1, y1), (x2, y2)라고 하자. 이 두 점을 꼭지점으로 하는 기울어지지 않은 직사각형은 (x1, y2), (x2, y1)를 두 꼭지점으

로 하는 기울어지지 않은 직사각형과 같은 도형이다. 그래서 두 꼭지점의 좌표

를 지정할 때, 왼쪽 위의 점과 오른쪽 아래의 점을 지정할 수도 있고, 오른쪽 위의 점과 왼쪽 아래의 점을 지정할 수도 있다.

길이: 11 바이트

$A9 CMD_DRAWRECT

인수/데이터:

X1(2) Y1(2) X2(2) Y2(2) COLOR(1) FILL(1)

X1: 첫째 점의 X 좌표 Y1: 첫째 점의 Y 좌표 X2: 둘째 점의 X 좌표 Y2: 둘째 점의 Y 좌표 COLOR: 선의 색. $00에서 $0F 사이의 값을 갖는다. FILL: 채우기 기능의 선택

$00: 직사각형의 내부를 채우지 않는다. $01: 직사각형의 내부를 채운다.

GLCD Designer 라이브러리 함수:

void lcd_draw_rect(unsigned x1, unsigned y1, unsigned x2, unsigned y2, char color, char fill);

4.2.3 타원타원타원타원 그리기그리기그리기그리기

타원(ellipse) 그리기 기능은 기울어지지 않은 타원을 그리는 기능이다. 타원이 기울어지지 않았다고 하는 것은 타원의 중심에서 둘레 중 중심에서 가장 먼 거리에 있는 점을 잇는 선(이 선을 타원의 장축이라고 한다)이 X 축 또는 Y 축과 평행하다는 것을 의미한다. (중심에서 둘레 중 중심에서 가장 가까운 점을 잇는 선을 단축이라고 한다. 장축의 방향과 단축의 방향은 항상 직교한다. 그래서 장축이 X 축과 평행하면, 단축은 Y 축과 평행할 것이고, 그 반대의 경우도 마

찬가지이다.)

기울어지지 않은 타원을 규정하는 방법은 여러 가지가 있겠지만, Graphic LCD Designer 모듈에서는 중심점의 좌표와 X 방향의 축 반지름 RX, Y 방향의 축 반지름 RY로 규정한다. RX의 값이 RY보다 크면 타원은 누운 형태가 될 것이

고, RY의 값이 RX보다 크면 타원은 세워진 형태가 될 것이다. RX와 RY의 값이 같으면, 타원은 원(circle)이 될 것이다. Graphic LCD Designer 모듈은 따로 원을 그리기 위한 명령을 제공하지 않는다. 원을 그리고 싶을 때는 RX와 RY의 값이 같은 타원을 그리는 명령을 사용하면 될 것이다.

길이: 11 바이트

Page 28: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

24

$AB CMD_DRAWELLIPSE

인수/데이터:

CX(2) CY(2) RX(2) RY(2) COLOR(1) FILL(1)

CX: 중심 점의 X 좌표 CY: 중심 점의 Y 좌표 RX: X 방향의 축 반지름 RY: Y 방향의 축 반지름 COLOR: 선의 색. $00에서 $0F 사이의 값을 갖는다. FILL: 채우기 기능의 선택

$00: 타원의 내부를 채우지 않는다. $01: 타원의 내부를 채운다.

GLCD Designer 라이브러리 함수:

void lcd_draw_ellipse(unsigned cx, unsigned cy, unsigned rx, unsigned ry, char color, char fill);

GLCD Simulator나 GLCD Designer 라이브러리에 타원 그리기 기능과 별도로 원 그리기 기능이 있는데, 이것은 따로 원 그리기 명령이 있어서 사용하는 것

이 아니고, 편리함을 위해서 만들어 넣은 유틸리티 기능이다. GLCD Simulator 화면상에서 타원 그리기 기능을 이용해서 원을 그리려고 하면, 반지름을 선택

할 때 마우스 포인터의 방향이 중심에서부터 축에 대해서 정확히 45가 되게 해 주어야 하는데, 이런 번거로움을 줄여 주기 위해서 GLCD Simulator에서는 따로 원 그리기 기능을 가지고 있는 것이다.

4.2.4 점점점점 찍기찍기찍기찍기

이 명령은 LCD 화면상의 지정된 위치에 정해진 색의 점을 찍는 기능이다.

길이: 6 바이트

$AA CMD_DRAWPIXEL

인수/데이터:

X(2) Y(2) COLOR(1)

X: 점의 X 좌표 Y: 점의 Y 좌표 COLOR: 선의 색. $00에서 $0F 사이의 값을 갖는다.

GLCD Designer 라이브러리 함수:

void lcd_put_pixel(unsigned x, unsigned y, char color);

4.3 비트맵비트맵비트맵비트맵 그래픽스그래픽스그래픽스그래픽스12

비트맵 그래픽스라고 하는 말의 의미는 비트맵으로 구성된 표시 장치에 그림

을 그린다는 것이고 그런 의미에서 보자면, 지금까지 설명한 모든 기능이 비트

맵 그래픽스의 범주에 든다. 여기서는 비트맵 그래픽스라고 하는 말을 GLCD

12 이 기능은 비트맵 그래픽스 기능이 지원되는 Graphic LCD Designer 모듈에 대해서만 적

용된다.

Page 29: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

4. 명령어명령어명령어명령어

25

Designer™라고 하는 소프트웨어에 사용된 비트맵 관리 기술을 일부 이용하여 Graphic LCD Designer 모듈에 비트맵 데이터를 다운로드 한 다음, 이 비트맵 데이터를 이용해서 한글 LCD 화면상에 그림을 그리게 하는 기능으로 제한해

서 쓰기로 한다.

Graphic LCD Designer 모듈에는 비트맵 그래픽스 관련 명령이 하나밖에 없지

만, 이 기능은 GLCD Designer에서 생성한 비트맵 데이터 파일을 GLCD Simulator를 통하여 다운로드 함으로써, GLCD Designer가 가진 강력한 프로그

램 생산성 향상 기능을 Graphic LCD Designer 모듈에서 구현할 수 있다.

이 기능을 사용하기 위해서는 GLCD Simulator에서 비트맵 데이터 파일을 다운

로드 해야 한다. 일단 GLCD Simulator에서 Graphic LCD Designer 모듈로 다운

로드 한 비트맵 데이터는 Graphic LCD Designer 모듈 내부의 플래시 메모리에 저장되므로, 그 데이터를 바꿔야 할 경우가 아니라면 다시 다운로드 해야 할 필요는 없다. 비트맵 데이터 파일의 생성이나 다운로드와 관련한 사항은 GLCD Designer Software 사용설명서사용설명서사용설명서사용설명서 및 GLCD Simulator Software 사용설명사용설명사용설명사용설명

서서서서를 참조하기 바란다.

이 기능은 문자 출력 기능과 같이 8×8 픽셀 단위의 좌표계를 사용한다.

4.3.1 비트맵비트맵비트맵비트맵 그리기그리기그리기그리기

이 명령은 GLCD Simulator에서 다운로드 한 비트맵 데이터를 Graphic LCD Designer 모듈의 화면에 그리는 기능이다.

길이: 6 바이트

$A7 CMD_PUTBITMAP

인수/데이터:

X(1) Y(1) INDEX(2) PUT(1)

X: 비트맵을 그릴 위치의 X 좌표 Y: 비트맵을 그릴 위치의 Y 좌표 INDEX: 그릴 비트맵의 번호 PUT: 흑백 바꾸기 선택

$00: 비트맵을 디자인할 때의 색을 사용한다. $01: 비트맵을 디자인할 때의 색과 반대되는 색을 사용한다.

GLCD Designer 라이브러리 함수:

void lcd_put_bitmap(char x, char y, unsigned index, char put);

Page 30: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

26

[This page is left blank intentionally.]

Page 31: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

5. 외형외형외형외형 치수치수치수치수

27

5. 외형외형외형외형 치수치수치수치수

5.1 HLCD320240N/ HLCD320240D/ HLCD320240H

정면 측면

5.2 HLCD240128N/ HLCD240128D/ HLCD240128H

뒷면 측면 정면

Page 32: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

28

5.3 HLCD240641N/ HLCD240641D/ HLCD240641H

뒷면 측면 정면

5.4 HLCD128643N/ HLCD128643D/HLCD128643H

뒷면 측면 정면

주의주의주의주의: 1. 여기서 사용된 치수의 단위는 mm, 투상법은 제3각법이 사용되고 있다. 2. 외형도에 나오는 외곽 치수는 설계 치수를 표시한 것으로 PCB 제작 과정에서 발생하는 절단

플래시 등은 포함되지 않은 것이다. 따라서 실제 Graphic LCD Designer 모듈을 시스템에 적용

할 때는 이런 점을 감안하여야 한다.

Page 33: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

5. 외형외형외형외형 치수치수치수치수

29

3. 여기에 나타낸 도면에서는 Graphic LCD Designer 모듈과 그래픽 LCD를 연결하기 위한 커넥터, Graphic LCD Designer 모듈과 임베디드 시스템을 연결하기 위한 커넥터를 위한 치수 등은 포

함하지 않고 있다.

Page 34: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

30

[This page is left blank intentionally.]

Page 35: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

5. 외형외형외형외형 치수치수치수치수

31

부록부록부록부록

부록부록부록부록 A. 컴파일컴파일컴파일컴파일 테크놀로지테크놀로지테크놀로지테크놀로지 LCD 모듈과의모듈과의모듈과의모듈과의 호환성호환성호환성호환성과과과과 GLCD Simulator 의의의의 사용사용사용사용

Graphic LCD Designer 모듈은 사용하는 기본적인 몇 가지 기능에서 컴파일 테크놀로지의 HLCD Series 시리얼 한글 LCD 디스플레이 모듈과 호환성을 유지

하고 있다. 이 호환성은 Graphic LCD Designer 모듈에 처음 전원을 투입하였을 때만 유지되며, 시스템 컨트롤러의 명령에 의하여 고유 모드로 전환하면 유지

되지 않는다.

Graphic LCD Designer 모듈을 이용한 시스템의 개발을 가속하기 위하여 지원

되는 GLCD Simulator는 호환 모드를 지원하지 않으며, 프로그램이 처음 실행

될 때 Graphic LCD Designer 모듈에게 고유 모드로 전환할 것을 요구한다. 그래서 GLCD Simulator를 이용하여 Graphic LCD Designer 모듈을 사용하는 시스

템을 개발할 때, GLCD Simulator의 실행을 먼저 개시한 다음 Graphic LCD Designer 모듈의 전원을 투입하면, Graphic LCD Designer 모듈은 컴파일 호환 모드에 있는데, GLCD Simulator는 Graphic LCD Designer 모듈이 고유 모드로 동작하고 있는 것으로 오인할 수 있다.

GLCD Simulator에서 버튼을 눌러서 Graphic LCD Designer 모듈을 초기화하는 기능은 앞서 명령어 설명에서도 언급한 것과 같이 실제로는 고유 모드로 전환하기를 요구하는 명령이다. Graphic LCD Designer 모듈은 고유 모드로 전환 요구를 받으면 고유 모드로 전환하여 다시 초기화한다. 따라서 고유 모드로 전환하기 명령은 Graphic LCD Designer 모듈을 고유 모드로 전환하게 할 뿐만 아니라 초기화하기도 하기 때문에 그 이후의 결과는 동일하게 나타난다. GLCD Simulator를 이용해서 임베디드 시스템의 프로그램을 개발하는 경우, Graphic LCD Designer 모듈의 전원을 껐다 켤 때마다 GLCD Simulator에서

버튼을 눌러서 Graphic LCD Designer 모듈을 고유 모드로 전환하여 사용하여야 한다.

Page 36: Graphic LCD Designer 모듈ganasys.co.kr/kor/support_board4/pds_file/GLCD%B8%F0%B5... · 2018-06-24 · Graphic LCD Designer 모듈의 모든 기능을 PC 화면상에서 모의 실험

Graphic LCD Designer 모듈모듈모듈모듈 사용설명서사용설명서사용설명서사용설명서

32

부록부록부록부록 B. Graphic LCD Designer 모듈모듈모듈모듈에에에에 사용한사용한사용한사용한 커넥터의커넥터의커넥터의커넥터의 도면도면도면도면

아래의 커넥터 도면은 몰렉스 홈페이지에서 다운로드 받은 것으로 이 사용설

명서의 일부를 구성하지 않는다.

앞서 본문에서도 논의하였지만 이 커넥터의 사용자 중에서 커넥터 핀의 순서

를 오인하고 있는 경우가 있어서 이 도면을 여기에 실어서 바로 잡고자 한다. 이 커넥터는 플러그(PCB에 부착되는 부품)가 수직 방향인 5267 시리즈이든 직각 방향인 5268 시리즈이든 플러그 하우징 외부에 베벨이 없는 쪽의 핀 번

호가 1 번이다.


Recommended