ENGLISH 简体中文 日本語 한국어  

    로그인 | 회원가입 


   
 
키워드나 부품번호를 입력해주세요    




애플리케이션 노트 3552

웹 액세스 기능이 있는 저가 컨트롤러

개요: 네트워크 또는 인터넷 연결 없이 제어, 레귤레이션 및 데이터 통신 시스템을 설계하는 것은 고속도로 대신 갓길에서 운전하는 것과 같다. 이 애플리케이션 노트에서는 혁신적 8비트 네트워크 마이크로컨트롤러(Maxim의 DS80C400)를 이용하여 웹이 연결되는 저렴한 산업용 애플리케이션을 구현하는 설계에 대하여 상세히 설명한다.

서론

오늘날 네트워크는 시스템 서비스와 케이블링을 매우 단순하게 해주어 더욱 더 많은 기능들이 이더넷에서 구현되고 있다. 특히 단순한 작업의 경우, 이더넷에 사용되고 있는 마이크로컨트롤러 애플리케이션이 급격히 늘고 있는데, 무선 액세스 포인트, 보안 감시를 위한 모니터링 카메라, 프린터 서버 및 라우터 등이 그 예다.

이제 소프트웨어 부담과 비용을 줄이기 위해서는 마이크로컨트롤러 코어 칩에 이더넷 인터페이스를 TCP/IP 스택과 함께 통합해야 한다는 점이 더욱 분명해지고 있다. DS80C400 8비트 네트워크 연결 마이크로컨트롤러에서는 이러한 통합이 이미 이루어지고 있다.

DS80C400 마이크로컨트롤러는 위에서 언급한 모든 애플리케이션에 적합하다. 이러한 애플리케이션은 24시간 동작하므로 매우 적은 에너지를 소비해야 한다. DS80C400은 VoIP 및 인터넷 전화와 같은 애플리케이션을 쉽게 구현할 수 있으며, 또한 가정용 냉방 및 난방 시스템을 인터넷이나 홈 네트워크를 통해 제어할 수 있다. DS80C400을 사용할 경우 시스템의 각 장치에 값비싼 단일 블록 회로를 설치할 필요가 전혀 없다. 대신 DS80C400은 시스템의 PC에서 성능 데이터를 확인하고 제어할 수 있도록 한다. DS80C400은 기존 네트워크(가정, 회사 또는 인터넷)에 연결하기만 하면 네트워크 상의 PC에 의해 서비스와 설치가 실행된다.



이 마이크로컨트롤러는 네트워크 성능을 시각화하고 모니터하는 새로운 방법을 다양하게 제공한다. 사용자는 실시간으로 여러 다른 곳의 온도 데이터를 얻고 표시하거나 또는 온도 조절 사이클의 변화를 컬러 그래픽 디스플레이로 제공한다. 연구/개발 엔지니어는 각 장치에 컨버터나 값비싼 서보 액츄에이터를 추가하지 않고도 다른 여러 개의 모니터링/조절 가능 방법 등을 개발할 수 있다. DS80C400은 이더넷 링크를 통해 공중 인터넷에 직접 연결할 수 있으므로, 조작자의 실제 위치는 상관없다. 원격 및 원거리 유지보수도 쉽게 수행된다.

저전력

DS80C400(그림 1)은 전류 소비가 적고 외부 회로를 최소화하는, 단순하지만 효과적인 애플리케이션을 구현하기 위해 개발되었다. 기준 설계(DSTINIm400과 DSTINIs400이 함께 DS80C400을 평가)에는 이더넷 및 2개의 직렬 포트 외에도 1MB RAM과 1MB 플래시 메모리가 포함되어 있다. 29.4912MHz의 클록 주파수에서 TINI OS 및 웹 서버 운영 시스템을 모두 실행하는 동안에도 총 소비전력은 0.5W에 불과하다.

Figure 1. Address and data bus for the DS80C400 network microcontroller.
큰 이미지 보기

그림 1. DS80C400 네트워크 마이크로컨트롤러를 위한 어드레스 및 데이터 버스

마이크로컨트롤러는 내부 클록이 256로 분주되는 전력 관리 모드(PMM)를 갖고 있다. 따라서 PMM은 마이크로컨트롤러가 매우 낮은 속도에서 동작하도록 할 뿐 아니라 초저 소비 전류(아이들 모드보다 더 낮음)에서 동작하는 동안에도 지속적으로 명령을 실행할 수 있도록 해준다. 마이크로컨트롤러는 인터럽트 명령이 떨어지거나 직렬 포트 중 하나로부터 데이터가 수신되면 자동으로 정상 모드로 복귀한다. 전력 소비가 많은 내부 타이머는 PMM에서 계속 동작하지만, 타이머의 클록 레이트는 4가 아닌 1024로 분주된다! 이 마이크로컨트롤러는 8051 코어 프로세서는 1.8V, 내부 I/O 드라이버(5V 허용)에는 3.3V를 공급하면서도 이렇게 에너지 소비가 적다.

최대 18.75MIPS(Million Instructions Per Second)

DS80C400은 최대 75MHz의 클록 주파수에서 최대 18.75MIPS 레이트로 코드를 실행한다. 이 레이트는 이더넷을 통해 압축되지 않은 오디오 데이터 스트림을 수신하고, 이를 다시 디지털-아날로그 컨버터(DAC)로 전송하기에 충분하다. 이러한 MIPS 레이트를 제공하는 DS80C400은 저해상도나 낮은 리프레시 레이트를 갖는 감시 카메라에 적합하다. 그러나 DS80C400은 보다 높고 연속적인 스루풋이 필요한 파일 서버나 네트워크 DVD 버너와 같은 애플리케이션에는 적합하지 않다.

인터페이스 및 주변장치

DS80C400(그림 2)은 총 64개의 디지털 I/O 포트에 CAN 2.0B 컨트롤러 1개, 3개의 직렬 1-Wire, 풀 듀플렉스 하드웨어 포트, 8개의 양방향 8비트 포트 등 다양한 인터페이스를 제공하며, 온 칩 연산 가속기(math accelerator)를 통해 16비트 및 32비트 곱셈, 나눗셈, 이동 및 정규화를 수행한다. 이 소자는 16MB 어드레스 공간, 22개의 어드레스 인에이블, 4개의 내부적으로 인코딩되는 칩 선택 인에이블 기능을 갖추고 있을 뿐 아니라, 하프 듀플렉스 및 풀 듀플렉스 지원 인터넷 프로토콜 버전 4(IPv4) 및 인터넷 프로토콜 버전 6(IPv6)을 위해 10/100Mb 이더넷 MAC을 통합하고 있다. 송수신 동안 CPU 부하를 경감시키기 위해 마이크로컨트롤러는 버퍼 기능이 있는 8kB 패킷 데이터 메모리를 포함하고 있다.

Figure 2. DS80C400 block diagram.
그림 2. DS80C400 블록 다이어그램

내장된 64kB ROM은 빠른 접속과 네트워킹을 지원한다. ROM에는 TFTP와 DHCP를 사용하여 이더넷 연결을 통해 네트워크 부팅을 실행하는 펌웨어가 포함되어 있다. UDP, TCP, DHCP, ICMP 및 IGMP를 지원하는 ROM 펌웨어는 애플리케이션에 완벽하게 응용이 가능한 TCP/IP 스택을 구현한다. 옵션으로 사용자는 IEEE 등록 DS2502-E48, 48비트 노드 어드레스 칩으로부터 MAC 어드레스를 얻을 수 있다.

Java™

DS80C400과 함께 사용할 수 있도록 8051 코어의 OS를 기반으로 하는 무료 Java 운영 시스템이 제공된다. 다음의 TINI 제품 사이트에서 다양한 예제 프로그램을 다운로드할 수 있다. 동일한 사이트에서 Java 운영 시스템 TINI OS도 다운로드할 수 있다. 이 OS는 SLUSH 셸 및 UNIX와 유사한 셸에 FTP 및 Telnet과 같은 표준 구성요소를 제공한다. 다른 간단한 예제 프로그램을 TINI 웹사이트에서 다운로드할 수 있다. 예를 들어, DS1920 온도 iButton(1-Wire 프로토콜을 통해 디지털 출력을 제공하는 온도 센서)을 사용하여 온도를 측정하고 이를 HTML 페이지로 보여주는 웹 서버용의 완벽한 Java 소스 코드를 찾을 수 있다.

실제 구현

DS80C400에 TINI OS로 웹 서버를 설치하려면 다음과 같은 구성요소가 필요하다.
  • DS80C400, 최소 1MB의 플래시 메모리 및 최소 1MB SRAM이 포함된 하드웨어 설계. TINIm400 모듈은 이러한 요구사항을 만족하는 완벽하게 시험된 기준 설계이며, Maxim에서 구입 가능하다. 모든 인터페이스 신호를 커넥터로 출력하는 TINIs400용 소켓 보드도 구입 가능하다. TINI 페이지를 참조한다.
  • TINI OS 최신 버전.
  • J2SDK 1.4.x, Linux/Unix 또는 Windows 버전을 컴파일하려면, 다운로드한다.
  • DS80C400에 통합된 직렬 로더를 사용하여 소프트웨어를 전송하려면, Java-Communications-API, Linux/Unix 또는 Windows 버전을, 다운로드한다.

단계별 웹 실행

먼저 모든 부속 파일과 함께 Java2SDK와 JAVA-Comm API을 둘다 설치한다. JAVA-Communication-API 설치 절차에 대해서는 platformspecific.html 파일을 참조한다. 그런 다음, 다운로드한 Tini-Paket tini1_13.tgz의 압축을 푼다. Windows 사용자는 메인 디렉토리에 테이블의 압축을 풀고, 전체 파일 경로를 수동으로 입력해야 하는 일이 종종 있으므로 가능한 가장 간단하고 짧은 이름을 사용하도록 한다. 다음의 예는 테이블을 C:\TINIOS 안에 압축을 풀었다고 가정한다. 그런 다음, DS80C400에 포함된 로더와 직접 통신하는 Java 프로그램을 호출하려면, 다음과 같이 Tini JavaKit을 실행하여야 한다.
java -classpath c:\tinios\bin\tini.jar;c:\j2sdk1.4.2_05\lib\comm.jar JavaKit
이제 JavaKit은 DS80C400와 통신할 수 있으므로, 직렬 포트 0(P3_B0 및 P3_B1)을 통해 직렬 TxRx 케이블(Null-modem이 아닌 straight through)을 사용하여 PC를 DS80C400에 연결해야 한다. DTR-Reset을 인에이블하려면, 다른 직렬 트랜시버를 사용하여 PC COM 포트 DTR 라인이 인가될 때 DS80C400의 리셋 핀을 로우로 구동해야 한다.

사용자는 리셋 동안 DS80C400의 핀 96(P1_B7)을 접지로 연결하지 않도록 한다. 이렇게 하지 않을 경우, 이 소자는 주소 40000h에서 프로그램을 자동으로 시작하려고 한다. 또 DS80C400의 핀 32는 접지로 연결해서는 안된다. 접지로 연결할 경우, TFTP 서버에 의해 리셋이 된 후 ROM이 NetBoot 프로세스를 시작시킨다. 리셋 후, DS80C400은 이제 다음의 정보로 돌아온다.
DS80C400 silicon software.
Welcome to the TINI DS80C400 car boat Loader 1.0.1
이제 사용자는 Java-Kit에서 Load-File: C:\tinios\bin\tini_400.tbin을 사용하여 TINI-OS-File을 DS80C400 회로 보드의 FLASH로 복사하고, slush 셸에서 FileLoad-File: C:\tinios\bin\slush_400.tbin을 둘다 복사한다. 재시작하기 전에 HEAP(사용자 프로그램에 의해 데이터 저장에 할당된 영역으로 스택과 유사)을 삭제해야 한다.
b18: this command changes to the bank 18, where the HEAP is...
f0: this command fills the current memory bank with zeros.
그 다음 DS80C400의 핀 96(P1_B7)을 접지로 구동하고 리셋을 실행한다. 리셋 후에는 다음과 같은 정보가 표시된다.
[,= slush version 1.13 =,]
[System coming up. ]
[Beginning initialization... ]
[Need generating log file. ] [Info]
[Initializing shell commands... ] [Done]
[Checking system files... ] [Done]
[Initializing and parsings. startup... ]
[Initializing network... ]
[Starting DHCP client... ]
[Waiting of for DHCP IP Lease... ]
[DHCP IP of lease Successful. ]
[Network configuration] [Done]
[Starting up Telnet servers... ] [Done]
[Starting up FTP servers... ] [Done]
[System init routines] [Done]
[slush initialization complete. ]
Press any key to log-in.
위의 출력은 운영 시스템이 이미 DS80C400에서 실행되고 있다는 것을 나타낸다. 사용자는 이제 사용자 이름, "root" 및 암호, "tini"를 입력하면 로그인할 수 있다. 네트워크가 DHCP(Dynamic Host Configuration Protocol)을 지원하지 않을 경우, 사용자는 스태틱 IP 어드레스를 사용해야 한다. IP 어드레스를 스태틱 값으로 설정하려면, ipconfig을 다음과 같이 사용한다.
-a 192.168.1.50 -m 255.255.255.0.
구성 결과가 HEAP에 저장된다. SRAM이 기준 설계의 SRAM처럼 지속되는 경우(즉, 배터리 백업을 갖는 경우), 네트워크 파라미터와 시스템 데이터는 일차 전원이 존재하지 않는 경우에도 그대로 유지된다. 이 JAVA-Kit이나 직렬 연결은 더 이상 필요하지 않다. 사용자는 FTP 서버를 통해 자신의 소프트웨어를 시스템 파일로 복사할 수 있다. 추가적인 구성은 Telnet을 통해 할 수 있다.

간단한 JAVA 웹 서버 애플리케이션의 예를 테이블 c:\tinios\examples\TINIWebserver에서 볼 수 있다. 배치 파일 buildWebServer.bat에서 컴파일만 하면 FTP에서 입수한 파일 TINIWebServer.tini를 DS80C400 파일 시스템의 table /bin에 복사할 수 있다. 이 파일은 Telnet에서 명령 java/bin/TINIWebServer.tini로 시작할 수 있다. 시스템이 시동될 때 웹 서버 애플리케이션이 시작하도록 하려면, 이 명령을 시작 파일 (/etc/.startup, PC의 autoexec.bat와 유사한 파일) 안에 쓸 수 있다.

이제 인터넷 익스플로러에서 DS80C400 상에서 실행되는 웹서버를 실행할 수 있다. 그림 3과 같이 주소 http://192.168.1.50를 입력한다.

Figure 3. This screen gives you access to the web server running on the DS80C400. In the reference design, temperature is monitored by the DS1920 temp sensor connected to pin PIN99 (OW), while time information comes from the I2C bus on the DS1672 real-time clock (RTC).
그림 3. 이 화면에서 사용자는 DS80C400에서 실행되는 웹 서버에 액세스할 수 있다. 기준 설계에서 온도는 핀 PIN99(OW)에 연결된 DS1920 온도 센서에 의해 모니터되며, 시간 정보는 I2C 버스에서 생성되어 DS1672 실시간 클록(RTC)이 된다.

JAVA

디렉토리 c:\tinios\examples에서 DS80C400을 위한 몇 가지 Java 프로그램을 볼 수 있다. 모든 프로그램은 TINI OS 운영 시스템을 위해 설계되었다.
-Blinky: showing the access to the GPIOs of DS80C400
-canautobaud: showing automatic baud recognition for the CAN-Bus
-cantester: simple send-receive program for the CAN-Bus
-CommTester: showing a serial-to-Ethernet communication conversion
-Echo: send data received over Ethernet on an assigned port, then back
-I2CTest: showing the use of I2C bus with the temperature sensor DS1621
-ListOW: showing the use of 1-Wire bus, listing all existing components with 1-Wire address
-MemDisplay: showing memory statistic in graphic way
-OWDump: showing access to the 1-Wire bus
-PostExample: showing the HTTP-POST functionality
-PPPClient: showing the use of PPP-Class as PPP-Client.
-PPPServer: showing the use of the PPP-Class as PPP-Server.
-SPIExample: implementing a simple SPI interface

C 프로그래밍

많은 사용자들이 8비트 마이크로컨트롤러를 프로그래밍할 때 어셈블리 언어만을 생각하겠지만, 이제는 매우 우수한 C 크로스 컴파일러를 사용할 수 있다. DS80C400에는 Keil Compiler (www.keil.com)를 권장한다. 다운로드: C 라이브러리.

라이브러리에는 다음과 같은 파일이 제공된다.
  • 1-Wire public domain kit: 1-wire 버스를 위한 액세스 함수
  • Crypto (SHA1, MD4): 8비트 어레이의 SHA1 알고리즘을 보여줌
  • Debug port: 디버깅 함수를 보여줌
  • DHCP client: DHCP 서버의 IP 어드레스를 수신함
  • DNS: 호스트 네임을 IP 주소로 변환함
  • Enhanced Network Stack: 네트워크 스택을 향상시킴
  • ROM error codes: 내부 ROM에 의해 반환되는 오류 코드 리스트
  • File system: 기본적인 파일 읽기, 쓰기, 이름 변경 및 삭제 기능
  • Flash programming: FLASH 삭제 및 프로그래밍 함수를 보여줌
  • I2C: DS1672 실시간 클록을 읽는 데에 필요한 모든 가용 라이브러리 함수
  • ISR installation: 인터럽트 벡터 사용을 보여줌
  • Memory manager: Malloc, MallocDirty 및 Free의 사용을 보여줌
  • MIME encoder/decoder: POP3 및 SMTP 샘플 애플리케이션에서 보이지 않게 사용됨
  • Netstat: 네트워크 스택의 상태에 대한 현재 정보를 얻을 수 있음
  • NTLM authentication: POP3 샘플 애플리케이션에 사용됨
  • POP3 client: 사용자에게 e-mail 계정 정보를 요청하고, 서버에서 지정된 e-mail 계정 정보 검색 시도
  • Raw 1-Wire: 소자에 대한 1-wire 버스 검색. DS2502가 발견되면 DS2502의 메모리가 표시됨
  • RTC access: DS1672U 실시간 클록 구성
  • SMTP client: 임의의 e-mail 계정으로 간단한 테스트 메시지를 전송하는 방법을 보여줌
  • SPI: Port 5의 PCEN 핀을 사용하여 SPI 장치와 통신할 수 있는 간단한 인터페이스 제공
  • Task schedulers: 사용자의 요청에 의해 프로세스를 spawning/killing/suspending/awakening함
  • TFTP client: 애플리케이션에서 TFTP 서버를 설정한 다음 해당 서버에 파일을 요청할 수 있도록 해 줌
  • Utilities: 여러가지 유용한 기능으로 접근하는 애플리케이션 제공



Java는 Sun Microsystems, Inc.의 상표이다.


관련 부품  APP 3552: Mar 22, 2006
DS80C400 네트워크 마이크로컨트롤러 전체 데이터 시트
(PDF, 1.8MB)
무료 샘플
DSTINIM400 네트워크 마이크로컨트롤러 EV 보드 전체 데이터 시트
(PDF, 876kB)
DSTINIS400 DSTINIs400/DSTINIs-00x 소켓 EV 보드 전체 데이터 시트
(PDF, 496kB)

자동 업데이트
관심 분야의 애플리케이션 노트가 나올 때 자동으로 업데이트를 원하십니까? 그렇다면 EE-Mail™을 신청하십시오.


We Want Your Feedback!



의견을 보내주세요!
위 내용이 도움이 되셨나요?
여러분의 의견을 기다립니다 — Maxim은 보내주신 정정이나 제안사항을 반영하고 있습니다. 이 페이지를 평가하고 의견을 보내주십시오.

 

다운로드, PDF 형식다운로드, PDF 형식 (204kB)
 AN3552, AN 3552, APP3552, Appnote3552, Appnote 3552

        •         •         •     개인정보보호 정책     •     법적 고지

    Copyright © 2009 by Maxim Integrated Products