위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

ioLibrary 100% 활용하기 (3) 2015.06.08 23

앞서 살펴 본 ioLibrary의 가장 큰 특징은 다음과 같습니다. 모든 함수의 Success & Fail 처리 : SOCKET ERROR 시 상황 코드 Blocked & Non-Blocked I/O function Datagram Data의 Flexible 처리 각 특징들이 어떻게 활용되는지 하나씩 알아보도록 하겠습니다 Blocked vs Non-Blocked I/O function Blocked I/O function 이란, 함수를 호출 할 경우 해당 함수 수행이 완료되기 전까지 return하지 않는 함수입니다. 예로, connect(sn, ip, port) 함수를 호출 하였다고 가정할 경우 ip와 port 정보를 갖는 상대방과 접속을 성공하거나 실패할 때 까지 connect() 계속 기다립니다. 즉 리...

ioLibrary 100% 활용하기 (2) 2015.06.08 25

앞서 살펴 본 ioLibrary의 가장 큰 특징은 다음과 같습니다. 모든 함수의 Success & Fail 처리 : SOCKET ERROR 시 상황 코드 Blocked & Non-Blocked I/O function Datagram Data의 Flexible 처리 각 특징들이 어떻게 활용되는 하나씩 알아보도록 하겠습니다. SOCKET ERROR 시 상황 코드 SOCKET ERROR는 아래와 같이 정의됩니다.(socket.h 참조) #define SOCK_OK 1 ///< Result is OK about socket process. #define SOCK_BUSY 0 ///< Socket is busy on processing the operation. Valid only Non-block IO Mode. #define SOCK_FATAL -1000 ///< Result is fatal error about socket ...

ioLibrary 100% 활용하기 (1) 2015.06.08 40

ioLibray? ioLibrary는 WIZnet의 W5XXX(W5100,W5200,W5300,W5500) 기반의 통합 BSD socket Library입니다. 칩별로 차이가 있는 Hardware dependent code들을 Driver로 분리하여 각각 구현되었으며, 이를 이용하여 BSD Socket API를 구현함으로써, Webserver, FTP와 같은 Application Protocol을 구현함에 있어 Hardware적 제약 조건으로부터 자유로워질 수 있으며, Application의 최소한의 수정으로 쉽게 원하는 WIZnet Chip들로 Porting이 가능합니다. ioLibrary 특징 DRIVER 분리 기본 입출력 기능 WIZCHIP_READ 및 WIZCHIP_WRITE 모든 Register & Memory Access를 WIZCHIP_READ & W...

W5500 Ethernet Sheild 2015.05.15 36

이번 포스팅에서는 위즈네트에서 신규 출시한 W5500 Ethernet Shield을 소개하고 그 특징에 대해서 살펴보겠습니다. W5500 Ethernet Shield 는 이름 그대로 위즈네트의 최신 Ethernet Controller 인 W5500 기반의 쉴드로 각종 오픈하드웨어 플랫폼에 연결하여 이더넷 기능을 추가하도록 설계되어 있습니다. 아두이노와 보드와는 하드웨어 적으로 바로 꽂아서 사용될 수 있도록 핀이 구성되어 있으며, mbed 플랫폼들과의 사용될 수 있도록 mbed 라이브러리를 제공합니다. 아래는 보드 외형입니다. 위에 보시는 바와 같이 기존의 ioShield 등과 달리 타 오픈 플랫폼 및 쉴드와의 Stacking 에 용...

WIZwiki-W7500에 펌웨어 올리기 2015.05.14 128

WIZwiki-W7500에 펌웨어는 아래 3가지 방법으로 업로드가 가능합니다. 1. CMSIS-DAP을 이용하여 2. ISP를 이용하여 3. 외부 SW 디버거를 이용하여 이번 포스팅에서는 위의 3가지 방법 중 1번 CMSIS-DAP 을 이용하는 방법과 2. ISP를 이용하여 업로딩하는 방법에 대해서 설명합니다. 1. CMSIS-DAP 이용하여 펌웨어 올리기 W7500에 USB cable을 연결하면, PC에서 이동식 디스크가 인식됩니다. 이동식 디스크 이름은 MBED 입니다. 이동식 디스크에 펌웨어를 드래그앤드롭 하거나 복사를 한다면, 펌웨어 writing이 완료됩니다. 펌웨어 writing 완료 후, 이동식 디스크를 확인합니다. 이동식 디스크...

WIZwiki-W7500 처음 시작하기 2015.05.14 3

WIZwiki-W7500 보드를 처음 사용하기 위해서는 기본적인 Serial Driver 설치와 H/W 테스트를 진행해야 합니다. WIZwiki-W7500은 CMSIS-DAP을 이용해서 펌웨어 writing을 하지만 W7500(Target MCU)의 UART1을 serial통신으로 송/수신 할 수 있습니다. Window에서 이 기능을 이용하기 위해서는 ARM mbed에서 제공하는 serial driver를 설치해야합니다. 또한 WIZwiki-W7500가 정상 제품인지 H/W 테스트를 진행해야 합니다. [WIZwiki-W7500 Serial driver 설치하기] 앞서 언급한대로 WIZwiki-W7500의 CMSIS-DAP은 크게 두가지 기능이 있습니다.  첫번째 기능은, USB Interface를 이용하여 W7500(Ta...

WIZwiki-W7500이란? 2015.05.14 3

2015년 5월 위즈네트에서 역사에 길이 남을 W7500 (ARM Cortex-M0 + Hardwired TCP/IP) 칩을 출시하게 되었습니다. 본 칩의 출시와 함께 오픈 하드웨어 플랫폼이자 W7500의 Evaluation Board 인 WIZwiki-W7500도 함께 출시가 되었습니다. 본 포스팅에서는 위즈네트의 하드웨어 엔지니어인 정석균 마스터가 소개하는 WIZwiki-W7500 보드에 대한 내용입니다. 1. WIZwiki-W7500 스펙 보드에 대한 스펙은 간단히 아래와 같이 정리합니다. - WIZnet W7500 32-bit ARM Cortex-M0 Hardwired TCP/IP Core Supports MII Interface Flash : 128KB / SRAM : 32KB Internal 8MHz Oscillator 48MHz maximum ...

위즈네트 W7500 출시 (ARM Cortex-M0+Hardwired TCP/IP) 2015.05.04 60

위즈네트가 W7500 MCU 칩을 새롭게 출시합니다. W7500은  ARM Cortex-M0 MCU코어와 위즈네트의 고유 기술인 Hardwired TCP/IP 를  내장한 IOP (Internet Offload Processor) 로 최근 급부상하고 있는 사물인터넷(IoT: Internet Of Things) 구현에 최적화 되어 있는 칩입니다. 위즈네트는 W7500과 함께 WIZwiki-W7500 이라는 오픈 하드웨어 플랫폼 보드를 함께 출시, W7500 을 사용하기 위한 다양한 라이브러리를 제공, 초보자들도 쉽게 MCU 프로그래밍을 경험할 수 있도록 합니다. 또한 WIZwiki-W7500은 ARM이 제공하는 Open Hardware 플랫폼인 mbed-enabled 되도록 설계되었으며, 아두이노 ...

WizFi250 Automatic Re-Association 2015.04.13 19

이번 포스팅은 WizFi250 이 AP와 접속이 끊어졌을 경우 'AT + WCHECK' 명령을 사용하여 AP에 자동 재접속하는 방법에 대해서 설명합니다. 아래는 테스트에 사용된 AT Command 입니다. AT+WSET=0,WizFiDemoAP [OK] AT+WSEC=0,,12345678 [OK] AT+WNET=1 [OK] AT+SCON=S,USN,,,7000,0 [OK] AT+WCHECK=30,10,5 [OK] AT+MPROF=S [OK] WizFi250 Version 1.0.3.5 (WIZnet Co.Ltd) Joining : WizFiDemoAP Failed to join: WizFiDemoAP Joining : WizFiDemoAP Failed to join: WizFiDemoAP Joining : WizFiDemoAP Failed to join: WizFiDemoAP WizFi250 Version 1.0.3.5 (WIZnet Co.Ltd) Joining : WizF...

W5500-EVB 활용 버스도착 알리미 보드 만들기 2015.04.13 33

내가 이용하는 버스가 내가 이용하는 정거장에 도착할 때쯤 이를 알려주는 시스템이 있다면? 정말 편리할 것 같습니다. 미국에 있는 한 고객이 이러한 시스템을 만들어서 소개한 적이 있습니다. (☞ 관련 포스팅 확인) 이번 포스팅에서는 위즈네트의 연구원 허봉준 마스터가 W5500-EVB 를 활용하여 제작한 내용을 소개합니다. 대중교통 시스템이 잘되어 있는 한국에서는 각종 사이트를 통해 버스 노선 및 도착 정보를 알려주고 있습니다. 본 포스팅에서는 위즈네트 사무실이 위치한 분당 수내동에서 강남역까지 버스를 타고 이동한다고 가정하고 설명하도록 하겠습니다. 1. 버스 노선 및 도착 ...

W5500-EVB활용 Chat Client 구현하기 - 5 2015.04.09 18

[W5500-EVB 활용 Chat Client 구현하기 1~4]를 통해 Chat Client 구현하는 방법에 대해서 설명을 드렸습니다. W5500의 드라이버 소스를 이용하는 것에서는 큰 문제는 없었지만, UART 데이터를 받아 처리하는 부분에서 데이터가 유실 되는 문제가 있었습니다. 관련 문제를 해결하기 위해 구글링을 통해 링버퍼를 소스를 찾아 적용, UART 데이터 처리하는 분이 해결하게 되었으며, 이번 포스팅에는 그와 관련된 설명 입니다. 아래 소스는 링버퍼 소스입니다. ring_buffer.h와 ring_buffer.c에 링버퍼를 사용하기 위한 소스가 있습니다. 여기서는 링버퍼의 간단한 함수 설명만 진행하겠습니다. rb...

W5500-EVB활용 Chat Client 구현하기 - 4 2015.04.09 6

지난 포스팅 [W5500-EVB 활용 Chat Client 구현하기 - 3]에서는 UART 데이터가 유실되는 문제점을 발견 그 원인을 추측해 보았습니다. 이번 포스팅에서는 어떻게 문제를 해결하였는지 설명해 보겠습니다. 아래와 그림과 같이 일단 문제는 해결이 되어 정상 동작하는 것을 확인하였습니다. TCP===>> UART : 정상동작 UART ===>> TCP : 코드를 수정 후 아래와 같이 정상적으로 동작하는 것을 볼수 있습니다. UART 버퍼 사이즈는 5byte 이고 전송한 데이터는 '1234567890' 이다. 5byte 이상의 데이터가 수신되어도 모든 데이터를 TCP로 전송 성공합니다. #define SR_RX_BUF_SIZE 5 #define TCP_TX...

W5500-EVB활용 Chat Client 구현하기 - 3 2015.04.09 10

[W5500-EVB활용 Chat Client 구현하기 - 2]에서 UART 인터럽트를 사용하고, CR과 LF에 의해 출력되는 부분을 진행했었습니다.  이번 포스팅에서는 관련하여 약간의 업그레이드를 시도, 정해진 UART 버퍼 사이즈보다 큰 데이터가 들어왔을때 처리하기 위한 작업을 진행하였지만 실패한 내용에 대해서 분석해 보겠습니다. 1. TCP Server ===>> UART : 정상동작 2. UART===>>TCP Server 이부분에 대한 수정을 진행했는데, 정상적으로 동작하지 않습니다. UART 버퍼 사이즈를 5byte로 설정을 하고 5byte 이상이 들어오면 TCP로 전송을 하고 다시 UART 데이터를 수신하도록 했지만, 5byte 이후에 들...

W5500-EVB활용 Chat Client 구현하기 - 2 2015.04.09 6

지난 포스팅(W5500-EVB 활용 Chat Client 구현하기 - 1)에 구현된 Chat Client 를 업그레이드 해보겠습니다. 아래의 2가지로 업그레이드 합니다. “Socket Status Register”의 상태에 따라 해당 동작 진행 Serial로 입력 받은 값을 버퍼에 저장을 하다가, CR과 LF 값을 입력 받으면 저장된 버퍼의 값을 TCP로 전송 첫번째 수정, main 함수의 while문에서 “Socket Status Register”의 상태를 계속 확인을 하고, 그 상태에 따라 동작하게 됩니다. SOCK_CLOSED 상태일때, 소켓을 생성함. SOCK_INIT 상태일때, 서버에 접속 시도함. SOCK_ESTABLISHED 상태일때, 데이터를 주고 받음. while(1) { swit...

IoT 구현을 위한 W7500 체험단 모집 2015.04.07 2

세계 최초 Internet Processor 인 W7500 (Cortex-M0 + Hardware TCP/IP)을 출시하는 위즈네트에서 IoT (사물인터넷) 구현을 위한 프로젝트를 함께 할 체험단을 모집합니다. 아래 모집 내용을 보시고, 체험단에 신청하실 분들은 아래 신청하기 버튼을 꾹 눌러주세요~ ☞ 체험단 신청하기

오픈소스 하드웨어 플랫폼 기반 메이커스 커뮤니티 지향 (CCTV News 소개) 2015.04.07 3

위즈네트 아카데미와 뮤지엄 관련 CCTV News 저널에 기사가 소개 되었습니다.  아래 내용은 기사에서 일부 발췌한 내용입니다. 사물 인터넷(IoT)은 단순한 시대의 트렌드를 넘어 이제는 기업들뿐만 아니라 오픈하드웨어 기반의 스타트업(Start-up), 하비스트(hobbyist) 등 실로 다양한 분야의 많은 이들이 IoT 디바이스 개발을 시도하고 있다. IoT 구현을 위해서는 다양한 기술을 필요로 하며 그 중 가장 핵심은 이더넷 혹은 와이파이가 되겠지만 디바이스 단에서 이를 구현하는 것은 결코 쉬운 일이 아니다. 위즈네트 아카데미 강좌의 가장 큰 목적이 여기에 있다. 즉 기술적으로 난이도가 높...

W5500-EVB 활용 Chat Client 구현하기 -1 2015.03.31 34

W5500-EVB 를 활용 Chat Client 를 구현하는 방법에 대해서 설명합니다.  본 프로젝트는 위즈네트의 정석균 연구원이 직접 구현한 내용으로 총 5개의 시리즈로 소개합니다. W5500-EVB는 NXP社의 Cortex M0 MCU인 LPC11E36FHN33이 Main MCU로 포함되어 있고 W5500을 제어할수 있게 제작되어 있습니다. W5500-EVB의 자세한 내용은 아래 URL을 통해 확인 가능합니다. http://wizwiki.net/wiki/doku.php?id=products:w5500:w5500_evb Chat Client란? 간단하게 말하면 TCP Client로 구동되며, TCP Server로 접속해서, TCP로 수신된 데이터를 Serial로 송신하고, Serial로 수신된 데이터를 TCP로 송...

WIZ550io를 활용 mbed LPC114FN28 플랫폼을 Cloud 서버인 AXEDA에 연결하기 2015.03.19 26

이번 포스팅은 mbed 플랫폼인 LPC114FN28 보드에 이더넷 기능을 추가, Cloud 서비스의 하나인 AXEDA 에 연결하는 방법에 대해서 설명합니다. LPC114FN28 보드의 특징은 아래와 같습니다. The mbed LPC1114FN28 operates at CPU frequencies of 48 MHz. The LPC1114FN28 includes up to 32 kB of flash memory, up to 4 kB of data memory, one Fastmode Plus I2C-bus interface, one RS-485/EIA-485 UART, one SPI interface with SSP features, four general purpose counter/timers, a 10-bit ADC, and up to 22 general purpose I/O pins. 플래쉬 사이즈가 작아 RTOS 구동이 어렵기 때문에 ...

WIZ550io 와 ioShield-A 를 이용한 실시간 모니터링 Web Server 구현 2015.03.18 25

WIZnet Museum 에는 Web Server 구현에 대해 여러 예제들이 소개되고 있습니다.  그중에 가장 시각적으로 들어오는 예제는 W5100 Ethernet Shield 를 이용하여 Gauge로 센서(ADC)값을 표현하는 것이었다. 영문이기는 하지만  소스가 오픈되어 있으므로  따라하며 공부하기는 그리 어렵지 않으니, 웹서버 구현에 관심이 있으신 분들은 눈여겨 볼 수 있을 것 같습니다. Gauge 자바스크립트를 활용하고, 강력한 TCP/IP hard-wired 칩인 W5500 이 적용된 ioShield-A를 이용하여, Ajax를 활용해 실시간 모니터링이 가능한 Web Server 구현을 실행해 보겠습니다. 먼저 AJAX(Asynchronous JavaScript ...

PubNub with WizFi250 2015.03.17 12

이번 튜토리얼은 클라우드 서비스의 대표 주자인 PubNub 을 WizFi250 과 연동시키는 방법에 대해서 설명합니다. 본 튜토리얼은 위즈네트의 WiFi 연구원 김성은 마스터가 테스트 후 작성하였습니다. WizFi250에 PubNub을 연동시켜 보자. PubNub는 실시간 사물 연동 플랫폼을 제공하는 클라우드 업체이다. 대부분의 Open Cloud 업체와 마찬가지로 회원 가입만 하면, 기본적인 테스트를 진행할 수 있다. 그럼, 먼저 회원 가입부터 시작해보자. 회원 가입이 끝났으면, 테스트에 사용할 APP을 생성해 본다. 아래 그림처럼, WizFi250-demo라는 이름으로 APP을 생성하였다. APP이 생성되었으면, <Publ...