기술자료

[스크랩] tcp/ip를 이용한 led전광판제어

티가세 2006. 10. 28. 10:13

TCP/IP를 이용한 DotMatrix 제어

1. 서론 (작품개념 및 내용)

우리가 목표로 잡고 구현하도록 계획한 도트 매트릭스 전광판은 상업적인 분야에서 널리 사용되고 있다.
실례로 버스터미널, 공항, 가장 쉽게 접할 수 있는 지하철역의 플랫폼, 전동차안 등 우리 생활에서 자주
접할 수 있고 특히 광고판의 크기라든지 활용도 면에서 다른 디스플레이 장치보다도 저렴하고 쉽게 제작할
수 있는 게 큰 강점이다.

일반적으로 ROM으로 정형화된 광고판은 일련의 저장된 프로그램에 따라서 작동되지만 이것의 단점을
보완하여 인터넷을 통해 실시간으로 메시지를 보내면 이를 받아 전광판에서 사용할수 있는 data로 변환한 후
이를 다시 RS232 serial port를 통해 연결된 전광판 control board로 전송 control board는 이를 display하게
하는 것이 이번 졸업작품의 목적이었다.
하지만 졸작이 진행되면서 현재 추진하고 있는 작품이 그다지 효율적이지 못하다는 생각이 들었다. 물론
이론상으로는 문제가 없었지만 네트웍의 방법적인 면에서 볼 때 좀더 기술적인 부분이 많이 들어가는 방법이
졸작을 진행하면서 학습하는데 있어 좋겠다는 생각이 들어 Computer base를 Firmware base로 바꾸기 위해
제작 계획을 수정하였다.


전체적인 기능은 위의 작품내용에서 설명한 바와 같이 인터넷을 통해 전광판을 제어하는 것이다.
하지만 방법적인 면에서 처음에 제시했던 서버를 따로 이용해서 데이터를 얻은후 이를 다시 RS-232를 통해
마이컴에 전송하여 전광판을 제어하는 방법보다는 전광판을 제어하는 컨트롤러에 TCP/IP프로토콜을 띄워서
네트웍에서 직접 컨트롤러에 접속하여 전광판을 제어하는 방법이 비용면이나 기술적인면에서 더욱 효과적이라고
생각하여 졸작계획을 수정 진행하게 되었다.


다음 그림에서 보는 바와 같이 8051 컨트롤러에 Realtek사의 Ethernet Controller인 RTL8019AS칩을 사용하여
따로 컴퓨터를 쓰지않고 MPU내에서 TCP/IP프로토콜을 띄어 직접 이더넷에 접속하는 방식을 택하였다.


이러는 편이 서버를 이용하여 구현하는 것보다 기술적으론 어렵긴 하지만 좀더 배울수 있는 부분이 많다고 생각한다.















<기존의 hardware 구성도>















<수정된 hardware 구성도>

현재까지는 자료조사 및 기본연구 단계로 구체적인 하드웨어와 소프트웨어가 제작되지 않았다.
하드웨어 제작과 Ethernet프로토콜은 여름방학부터 들어갈 예정이며 현재는 기본적인 스펙조사와
컨트롤러의 학습단계에 있다.


현재 졸업작품을 진행하는데 있어서 필요한 지식은 8051micro controller의 사용법과 matrix구현방법
그리고 Ethernet/IEEE802.3과 TCP/IP 프로토콜의 이해와 구현, RTL8019AS chip의 주변회로구성과
사용법 등이다. 본론에서 간단하게 구현방법들을 설명하겠지만 졸업작품이 하드웨어적인 부분보다는
소프트웨어적(프로토콜구현)인 부분에서 많은 어려움이 예상된다.

2. 본론 (기초이론 및 시스템 구성요소)

1) Main Controller

메인컨트롤러로는 8051을 선택하였다. 인텔사에서 전통적으로 사용하고 있는 MCS-51이라는 것은
CPU를 포함해서 메모리, 발진회로 I/O확장용 디바이스 등 인텔의 마이크로 컴퓨터로 되어 있는 일련의
패밀리 또는 시스템을
총칭해서 부르고 있다. 그래서 MCS다음에 따라오는 숫자는 마이크로컴퓨터
또는 마이크로프로세서 이름을 의미하고 있다. 이번 작품에서 8051을 선택한 이유는 일단 학부수업에서
이미 배웠기 때문에 타 프로세서 보다 접근하기 쉽다는 점에서이다. 물론 PIC나 Z80으로도 구현할 수 있으나
좀더 많은 사용자 계층을 가지고 있는 8051을 선택하기로 결정하였다.


다음으로 간단히 8051의 특징에 대해서 알아보겠다.

1. HMOS기술로 만들어서, 5V 단일전원으로 동작한다.

2. 4096바이트의 프로그램 메모리를 내장하고 있다.

   (단 8031은 내장되어 있지 않다.)

3. 128바이트의 데이터 메모리를 내장하고 있다.

4. 4개의 레지스터 뱅크를 갖고 있다.

5. 사용자가 임의로 지정할 수 있는 128비트의 플래그를 갖고 있다.

6. 프로그램 메모리 및 외부 데이터 메모리를, 각각 최대 64K바이트까지 확장할 수 있다.

7. 명령실행 사이클이 기본으로 1us(12MHz인 경우)이다.

8. 4개의 8비트 I/O로서, 32개의 양방향성 I/O라인을 갖고 있다.

9. 다중 모드로 사용할 수 있는 고속 직렬 I/O Port

10. 2개의 모드로 동작시킬 수 있는, 2개의 16비트 타이머/카운터를 내장 하고 있다.

11. 2레벨 우선순위와 인터럽트를 소프트웨어로 처리가 가능하다.
 
12. 서브루틴 리턴 및 데이터 저장용 스택으로, 최대 128바이트까지 사용이 가능하다.

13. 비트 처리 능력이 있다.

14. 2진수 또는 10진수 연산처리 능력이 있다.

15. 오버플로 검출 및 패리티 체크 기능이 있다.

16. 하드웨어에 의한 고속 곱셈/나눗셈 처리 능력이 있다.

17. 제어용 응용에서 불대수 처리 기능을 갖고 있다.

     <8051의 특징>

이상이 8051이 가지고 있는 특징이다. 현재 작업환경으로는 Keil사의uVision-51을 사용하여 컴파일한다.
작업은 C언어로 할 예정이며 이는 어셈블리 보다 C언어를 사용하는게 프로토콜을 구현함에 있이서
효과적일 것이라는 생각에서 이다. 만약 프로세서가 속도적인 제약 때문에 네트웍상에서 브로드캐스팅이
힘들 경우 프로세서를 교체해야 될지도 모르기 때문에 호환성이 좋은 C언어를 사용하는게 소스의 수정이나
교체에 도움이 될 것이라는 결론을 내렸다.


2) W3100A 개요

w3100a는 하드웨어적으로 이더넷에 접속할수 있도록 내부에 TCP/IP스택을포함하고 있는 chip이다.
OS에 구애받지 않고 작은 사이즈의 ROM과 RAM만으로도 동작할 수 있으며 4개의 독립된 채널과 Physical Layer
접속단자를 제공한다. 내부적으로는 3.3V로 동작하며 5V레벨과 무리없이 인터페이스 될 수 있다.

Features (특징)

Includes TCP, IP, UDP, ICMP, ARP, DLC and MAC Protocols (DHCP, HTTP, SMTP, and PING are included as Application protocols)

- tcp, ip, udp, icmp, arp, dlc와 mac프로토콜을 내부적으로 포함하고 있으며,

dhcp, http, smtp, ping은 프로그램적으로 구현할 수 있다
Supports 4 independent channels simultaneously (dynamic buffer allocation for each channel)

- 4개의 독립된 소켓을 제공한다, 각각의 채널간에는 동적인 버퍼를 가지고
있다.

Protocol processing speed (depending upon MCU) : full-duplex 6Mbps (i386), 300Kbps (8051 MUC)
- i386에서는 초당 6Mbps의 속도를 보장하고, 8031에서는 초당 300Kbps의 속도를 보장한다.
Intel/Motorola MCU bus interface
- 인텔/모토로라 MPU버스와 인터페이스가 가능하다

i2C serial interface
- i2C 시리얼 인터페이스를 지원한다


Socket API support for easy application programming

- 소켓 API를 지원하며 이를통해 쉽게 애플리케이선 프로그래밍이 가능하다


Support for full-duplex mode

- 전이중 모드를 지원한다.


Embedded 16Kbyte data buffer

- 내부에 16K의 데이터버퍼가 내장되었다.

3
) LAN프로토콜의 이해

LAN중에서도 특히 Ethernet과 TCP/IP는 최근들어 네트워크의 폭발적인 보급에 따라 일반적으로
이용할 수 있게 되었다. 여기에서 졸업작품을 진행하는데 필수적으로 이해해야하는 Ethernet과 TCP/IP
프로토콜에 대해서 설명하겠다.


가. Ethernet와 IEEE 802.3

Ethernet는 1970년대 초 Xerox사에 의해 개발되었던 LAN기술이다. 현재 널리 사용되고 있는 버전 2는
1978년에 Xerox, Digital Equipment Corporation과 Intel에 의해 표준화되었다. 이것은 현재 로컬 에어리어
네트워크를 위한 가장 널리 사용되고 있는 기술들 중 하나이다. 1980년대 초 다소 동일한 버전이 국제
표준으로 정의되어 IEEE 802.3으로 이름붙여졌다. LAN 토큰 링(IEEE 802.5)과 토큰 버스(IEEE 802.4)
기술을 위한 다른 IEEE 802 표준들도 존재한다.

(1) 연결 특성

Ethernet은 초당 천만비트의 전송율을 가지고 작동하는 동축 케이블 버스를 기초로한다. 케이블의 단위는
500미터까지 가능하며 200개까지의 연결 포인트(소위 트랜스버 transceiver)를 가질 수 있다. IEEE 802.3 표준안은
10base5로 알려져 있다. 각각의 트랜스버 사이에는 최소한 2.5미터이상의 거리가 있어야한다. 몇개의 Ethernet
케이블이 소위 리피터(repeater)라는 신호 증폭기에 의해 연결되어질 수 있는데 2개의 트랜시버사이에는 2개의
리피터까지만 사용가능하다. 따라서 모든 세그먼트의 길이의 최대값은 수 킬로미터로 제한된다. 현재는 다수의
포트를 가진 소위 MAC layer bridge라는 리피터를 이용하여 더 먼거리의 네트워크가 가능해졌다, 또한 fan-out units
라는 연결 다중기를 이용할 수 있으며 이것을 통하여 하나의 트랜시버에 여러 호스트를 동시에 연결할 수 있다.

Thin Ethernet (Cheapernet)은 Ethernet의 변형으로 단지 그 전기적 연결 특성만이 다르며 그 데이타 전송 프로토콜은
동일하다. 이 변형은 10base2로 알려져있다. 더 가늘고 유연한 케이블의 사용은 설치와 연결을 간편화하는데,
컴퓨터는 Ethernet 제어 카드에 집적된 트랜시버를 통하여 케이블과 직접연결된다. 따라서 트랜시버의 비용이 낮아진다.
최대 케이블 세그먼트 길이와 최대 연결 가능 스테이션의 수가 Ethernet의 절반에 못 미치지만 작은 규모의 네트워크에는
아무런 문제가 없다. 게다가 케이블의 구조적 특성때문에 Thin Ethernet은 비전문가에 의해서도 설치가 가능하다.
Ethernet와 Cheapernet가 전송 속도와 프로토콜의 관점에서 볼 때 동일하기 때문에 두 형태의 네트워크들은 리피터에
의해 문제없이 적절히 연결될 수 있다.

2중 회선 회로에 바탕을 둔 Ethernet(Twisted-Pair Ethernet, 10baseT)는 점점더 인기를 얻어가고 있다. 연결된
스테이션과 접합점까지 최대 30미터의 거리를 트위스트 페어를 이용하여 연결할 수 있다. 스테이션들은 각 접합점
주위에 별 모양으로 배열된다.

(2) Protocol

Ethernet는 CSMA/CD(Carrier Sense Multiple Access with Collision Detect) 프로토콜을 사용한다. 간단히 설명하면:

스테이션이 패킷을 전송하기에 앞서 다른 스테이션이 벌써 활성화되었는가를 보기위해 검사한다(carrier sense). 만약
그렇다면 케이블이 사용가능할 때까지 기다린다. 그렇지 않다면 즉시 전송을 시작한다. 그들은 항상 보내진 데이타와
케이블상의 데이타를 비교하기 때문에 만약 2개이상의 스테이션이 우연히 동시에 전송을 시작한다면(collision) 그들은
이러한 상황을 인지하게 된다. 데이타가 훼손되는 경우 전송 프로시져는 즉시 인터럽트를 발생시키고 얼마간의 대기
시간 후 다시 반복한다. 대기 시간은 난수 생성기에의해 결정되는데 이 난수 생성기는 재전송시 지연시간을 지수적으로
증가시킨 값을 반환한다. 이것은 두개의 스테이션이 지속적으로 같은 지연시간을 갖는 것을 방지한다.

주소지정은 48비트 주소를 사용하는데 Ethernet 제어기의 하드웨어에 고정되어있다. IEEE가 Ethernet 제어기 생산자들에게
그 번호를 배분하기 때문에 세계의 모든 스테이션은 유일한 주소를 갖게된다.

Ethernet 패킷의 preamble은 수신 스테이션을 동기화시키기 위한 특별한 비트 패턴이다. 그 뒤에 목적지와 근원지 주소가
따라온다. Ethernet 표준안에서는 패킷 타입 항목에 바로 위층의 프로토콜의 주소가 들어가도록 되어있다. 따라서 Ethernet
위에 다양한 프로토콜들이 동시에 지원될 수 있다. IEEE 802.3 표준안에서는 패킷 타입 항목이 길이를 표시하는 항목으로
사용된다.

그리고 상위 층의 주소는 데이타 영역에 의해 운반된다. 최대 1500비트의 데이타 영역뒤에는 32비트 CRC 체크섬이 뒤따라온다.
전송과 관련된 기술적 이유로 하나의 패킷은 최소한 64바이트 이상되어야 한다. 이보다 적은 데이타가 전송되는 경우에는
운영체제안에 있는 Ethernet 드라이버에 의해 인위적으로 패킷을 이 크기로 만들어야한다.
각각의 스테이션은 케이블상의 패킷을 읽고 목적지 주소를 자신의 주소와 비교한다. 만약 두개의 주소가 일치하는 경우에는
그 스테이션이 목적지임을 뜻하므로 그 패킷을 전부 수신한다. 이러한 성질(네트워크의 모든 스테이션이 패킷을 읽는다)
때문에 한 메세지를 동시에 모든 스테이션에 전송하거나(broadcast) 일정한 그룹네 속하는 스테이션에 전송(multicast)할
수 있다.


충돌의 가능성 때문에 Ethernet은 종종 비판을 받기도한다. 그러나 고속의 전송율과 carrier sense 프로시져에 의해 실제로는
거의 발생하지 않는다. 실험에 의하면 이론적인 전송 대역의 40%수준의 부하량의 다양한 길이의 패킷을 사용하는 경우 충돌이
평균이상으로 증가하게된다.


(3) 네트워크 층의 주소 지정

네트워크층의 주소 지정을 위해서 Ethernet 프로토콜 헤더는 주소 항목을 가지고 있어야 한다.

Ethernet 802 표준안은 802계열의 네트워크에서의 LLC(Logical Link Control)사용을 규약하고 있다. LLC 프로토콜 헤더는
바로 위층의 프로토콜의 주소를 담고 있다. 사실 LLC가 UNIX의 세계에 파고들지는 않았다. 현재의 모든 구현들은 RFC 894에
명세된 모드들을 사용하고 있다. 그러나 호스트가 ISO 프로토콜(에를 들어 LLC)과 TCP/IP를 동시에 사용하고자 한다면 시스템은
가지고 있는 패킷의 타입을 판별할 수 있어야한다. 다행히도 RFC에 명세되어있는 패킷 타입 번호는 Ethernet 패킷의 최대 길이보다
길다. 따라서 1500까지의 주소인 경우 LLC 패킷을 가지고 있다고 추측할 수 있다.

802계열의 네트워크를 위한 LLC의 확장판인 SNAP(Subnetwork Access Protocol)가 RFC 1042에서 제안되었다.
그러나 Ethernet와 IEEE 802.3 네트워크에서는 이전처럼 RFC 894가 사실상의 표준이다.


나. TCP/IP

(1) Internet Protocol

IP(Internet Protocol)은 TCP/IP 구조의 초석이며 RFC 791과 MIL-STD 1777로 명세되어있다. 인터넷 상의 모든 컴퓨터는
IP를 이해한다. IP의 주된 작업들은 스테이션들의 주소를 지정과 패킷의 단편화이다. IP는 종점간의 신뢰성 있는 메세지
전달이나 흐름제어를 위한 기능은 가지고 있지 않다. IP는 이웃 목적 노드로의 전송에 '최선의 시도'를 수행하지만 이것
이 반드시 보장되는 것은 아니다. 프로토콜 헤더에 대하여 언급하기 앞서 IP의 주요 속성들을 간단히 정리해 보겠다.


- 비연결 프로토콜이다. 필요시 패킷을 분할, 단편화한다.

- 32비트의 Internet address를 이용하여 주소를 지정한다.

- 8비트의 트랜스포트 프로토콜의 주소를 사용한다.

- 최대 패킷의 크기는 65,535바이트이다.

- 헤더에 대한 checksum만 가지며 데이타에 관한 checksum은 없다.

- 항상 필요한 프로토콜 항목 필드가 아닌 경우 선택적으로 사용 가능하다.

- 유한한 패킷 수명을 가진다. 최선의 시도로 전송한다.

각각의 항목들에 대한 자세한 설명이 필요하나 이미 TCP/IP프로토콜에 관한 자료는 많이 나와있는 관계로
설명을 생략하도록 하겠다.



(2) TCP (Transmission Control Protocol)


TCP는 트랜스포트 층의 프로토콜이다. 따라서 IP보다 상위에 있다. 이것의 주된 작업은 네트워크를 통한,
신뢰할 수 있는 데이타의 전송이다. TCP는 RFC 793와 MIL-STD 1778에 명세되어 있다. IP 프로토콜 헤더에서
TCP의 트랜스포트 주소는 6이다. TCP의 속성을 간략히 말하면


- 전이중의 양방향의 가상 회선을 제공한다.

- 사용자의 입장에서 볼 때 데이타는 블록이 아니라 데이타의 스트림이 전송된다.

- 다음과 같은 기법을 이용하여 신뢰할 수 있는 전송을 보장한다.

→ 순선번호(sequence number),

→ 수신 개체의 억놀리지먼트를 포함한 체크섬 형식


→ 시간 할당에 의한 억놀리지먼트

→ 시간 할당 억놀리지먼트후의 재전송.

- 효율성의 향상을 위한 sliding-window 원리

- 긴급 데이다(Urgent data)와 push function

- 깨끗한 연결 해제

TCP의 기능들은 블럭의 경계가 유지되지 않는다는 것을 제외하고는 다른 복잡한 트랜스포트 프로토콜과
그다지 많이 다르지 않다. 작업 방식에서의 이 차이는 TCP의 바이트 지향적인 특성에 기인한 것이다.
프로토콜에서 사용되는 거의 모든 항목들이 블럭이 아니라 바이트 단위로 계산된다. 이것은 블럭의 크기 결정을
유연하게 할 수 있도록 하여준다. 데이타는 블럭(TCP의 용어로는 세그먼트(segment))들의 형태로 전송된다.

네트워크에서의 세그먼트의 크기는 네트워크의 부하, 윈도우의 크기 또는 상대편의 자원과 같은 인자들에 의해
결정된다. 따라서 이러한 가변적인 크기의 세그먼트들에 있어서 처음 사용자에 의해 생성되었던 것처럼 블럭들을
유지하는 것은 비용이 많으드는 작업이 된다. 또한 트랜스포트 층에서 블럭의 경계를 유지해야할 절대적인 필요성이
없으며 이것은 다른 층의 기능에 의해서 수행되어질 수 있다는 것이 경험적으로 알려졌다(예를 들어 세션 층).

다음 그림에 TCP 프로토콜 헤더의 구조를 보였다. 포함되어있는 항목들은 다음과 같은 필요성들을 가진다.

이상으로 인터넷에 사용되는 프로토콜의 간단한 설명을 마쳤다. 졸업작품을 진행하는데에 있어서
프로토콜의 이해는 필수이며 또한 이 프로토콜을 랭귀지 언어로 구현하여 8051보드에
올리는 것이 가장 어렵지만 꼭 이해하고 넘어가야 하는 부분이기도 하다.


4) 도트 매트릭스 (모듈)

전광판 화면구성은 기본 DOT MATRIX로 적당한 모듈을 구성하며 모듈이 조합 되어 화면을 구성한다.
이때 Matrix 형태를 이룬 DOT 가 전광판의 품질을 좌우하는 제일 중요한 요소이다. 도트의 형태나 밝기에
따라 전체화면의 디스플레이가 안정적이고 선명하며 넓은 시야각을 만들 수 있다.


모듈은 '16×16'(가로×세로,DOT)로 12개 조합으로 직렬로 구성되어(가격의 제한으로 인하여) 데이터
(영문, 한글 등 문자정보) 표출의 최소 단위가 된다. DOT의 크기와 모양에 의해 모듈의 크기가 결정된다.


모듈의 크기는 전광판의 용도에 따라 새롭게 구성되기도 한다. 모니터와 같이 영문 및 숫자를 표현하기 위해서는
최소 ‘8 X 16’ DOT가 필요하며 1모듈에 2자를 쓸 수 있다. 한글은 '16 X 16’ DOT가 필요하므로 1모듈에 1자를 표현
할 수 있다. 한 개 모듈의 크기에 따라 문자정보 표출 크기와 같다.

이미지 데이터는 전광판의 수평, 수직 화면 해상도를 생각하여 데이터를 구성, 표현 한다.











 

16⁓16 도트매트릭스 (직렬로 10개 조합)

< soft ware >

● 8051 moniter program

어셈으로 작성되었으며 응용프로그램을 다운로딩하고 실행하는 간단한 기능만을 가지도록 만들었다.

모니터 프로그램은 89c52안에 내장되며 시리얼을 통해 모니터로 보여진다

다운로딩된 프로그램은 램에 저장되며 테스트가 끝나면 롬으로 구워져 스위치를 통해 모니터 프로그램은 차단된다.


3. 결론

이번 졸업작품은 dot matrix광고판을 인터넷상에서 컨트롤 해보자는 것이 목표였다. 처음 계획에서 다소 수정이
있었지만 원래 목적한 바에서 크게 벗어나지 않았고 계속적으로 본 작품을 진행할 예정이다. 현재까지 기초자료
조사와 기본회로를 구성하였으나 아직 방법론적에서 확실한 해답을 구하지 못했다.

임베디드 보드에 인터넷을 연결한다는 것이 그리 쉽지만은 않고 또 현재 상용화된 제품도 있지만 그 수가 많지 않아
자료를 구한다는 것도 어려운 실정이다. 판매되는 제품이라 그런지 관련업체에서도 소스제공에 무척 인색함을 보였다.
하지만 학부에서 배운 지식을 바탕로 하여 최대한 작업을 진행시키도록 할것이며 앞으로의 작업도 현재까지 공개된
정보를 바탕으로 인터넷프로토콜을 이해하고 이를 target processor에 porting하여 마지막으로 웹상에서 원격지
프로세서를 원하는 대로 제어할수 있게 하는 것이 목표이다.


4. 기술동향








1) 다양한 이미지나 에니메이션을 전송한다.

























2) 무선 인터넷 전광판 통신 (무선 모뎀 이용)

 

 

 






3) PCS폰의 문자메시지 전송기술로 실시간으로 광고를 전송한다.


 

 

 

 

 

 

4) 데이터베이스를 이용한 정보저장기능 - 서비스 하고자 하는 데이터를 스케줄링 하여 보관하고, 전송 History를 관리하는 기능

5) 데이터 추출기능 - 무선 Data및 위성 Data 를 수신하여 필요한 기능을 추출

6) 중앙 통제기능 - 전송매체에 대하여 중앙 관제시스템으로부터 제어하는 기능

7) 원활한 이동성이 보장된다. (실시간 이동체 전송) 


 

 

 

 






출처 : LED 조명
글쓴이 : LED 조명 원글보기
메모 :