본문 바로가기

Edward's labs

(208)
W5500 イーサネット Source 分析 Japanese こんにちは。皆さんエドワードと呼ばれます。韓国の名前はアンジンフイです。よろしくお願いします。以下のコードは、TCP / IPチップのW5500 iolibraryソースです。このコードは、韓国バージョンと英語バージョン、そして日本バージョンがあります。参照してください。WIZnet社のW5500イーサネットソースコードをより簡単に説明しました。ご覧になって気になる部分があればjinhee.ahn@wiznet.co.krまたはwizwiki.net/forumにお問い合わせください。ありがとうございます。[code language="c"] //***************************************************************************** // //! \file socket.c //! \brief SOCKET AP..
WIZnet W5500 Socket Driver 분석 안녕하세요.Edward입니다.채팅프로그램에 이어서 Wiznet 사에서 배포하여 사용되는 Ethernet Driver 분석을 공유하고자 합니다.이번은 한글버전이고 다음은 영어버전 그리고 일어 버전을 추가로 업로드 하려고 합니다.궁금하신부분이 있는 분들은 댓글 남겨주시거나 혹은 http://wizwiki.net/forum/ 에 글을 남겨주시면 답해드리겠습니다.[code language="c"] //***************************************************************************** // //! \file socket.c //! \brief SOCKET APIs Implements file. //! \details SOCKET APIs like as Ber..
Ethernet Auto-Negotiation & MDI Signal에 대한 정보 IPS가 관리콘솔과 연결이 끊어지고 연결이 안되길래.. 원인을 찾다가Auto-Negoiaton이란 기능을 On하고 재연결하니까 연결이 뿅!! 하고 됬다.우왕..이게 무슨기능이지?? Auto-Negotiation이란 기능에 대해서 찾아봤다..아래글은 http://spiderpig.egloos.com/1723732 에서 퍼온글이다.이해하기 쉽게 잘 설명되어 있다.추가적으로 Auto MDI/MDI-X기능도 궁금했던건데 굿굿 Auto-Negotiation이더넷의 가장 하부 계층을 담당하는 L1, L2 계층은 각각 물리 계층(Physical Layer : PHY)과 Data LinkLayer(MAC : Media Access Control 을 보통 지칭) 계층으로 불리우며 네트워크를 구성/설계하는데 있어가장 기본..
채팅 프로그램, 링버퍼 종료 코드 추가(최종) 안녕하세요. Edward입니다.최종 채팅 프로그램 소스입니다.저번 Source Code에 비해 추가된 점은 Disconnect입니다. TCP에서 Server와 client와 연결을 끊는 것은 이론적으로 4-Handshake way 라고 칭합니다.그림의 4 way handshake 는 아래와 같은 방법으로 이루어진다. 최초에는 서로 통신 상태이기 때문에 양쪽이 ESTABLISHED 상태이다.1. 통신을 종료하고자 하는 Client가 서버에게 FIN 패킷을 보내고 자신은 FIN_WAIT_1 상태로 대기한다.2. FIN 패킷을 받은 서버는 해당 포트를 CLOSE_WAIT으로 바꾸고 잘 받았다는 ACK 를 Client에게 전하고 ACK를 받은 Client는 상태를 FIN_WAIT_2로 변경한다. 그와 동시에 S..
채팅 프로그램, 링버퍼 오류 수정 Edward입니다.링버퍼의 Debugging을 한 결과.. finder에서 Empty상태를 안만들어줘서 안되는 것으로 판명되었습니다.아래의 수정된 코드를 보시면 이해가 빠르실거라 생각됩니다.[code language="c"] /* =============================================================================== Name : W5500-EVB.c Author : $(author) Version : Copyright : $(copyright) Description : main definition =============================================================================== */ #if..
채팅 프로그램 링버퍼 코드 추가 안녕하세요. Edward입니다.저번 링버퍼 설명에 추가하여 링버퍼 구현 코드를 올리겠습니다.코드는 아래와 같습니다.[code language="c"] /* =============================================================================== Name : W5500-EVB.c Author : $(author) Version : Copyright : $(copyright) Description : main definition =============================================================================== */ #if defined (__USE_LPCOPEN) #if defined(NO_BO..
링버퍼란? 그리고 사용 이유는? Edward입니다.상기 제목처럼1. Ringbuffer란? 2. Ringbuffer를 사용하는 이유에 대해 설명해보겠습니다.먼저,Ringbuffer란 다들 아시다시피 원형 큐인데요.이 원형 큐라는 것을 이해하시려면 먼저 선형 큐(queue) 라는 것을 아셔야합니다.이 선형 큐(Queue)라는 것은 FIFO(First in First out)의 능력을 가진 녀석이에요.FIFO는 선입선출이라는 능력을 가진 녀석으로 첫번째에 들어간 Data가 가장 처음으로 출력되는 녀석이죠.이 Data들이 54321 -> | Databus | -> 54321 이렇게 처음에 들어간 Data가 가장 처음에 출력하는 능력을 가진 녀석입니다.이 FIFO의 능력을 기반으로 만든 것이 선형 큐(queue)이구요. Software 측으로..
USB to UART 설계 !! 기초부터 설계까지 !! 안녕하세요 Edward AHN입니다.이번 WIZnet의 신제품 WIZ750SR을 제작하면서 USB to UART 설계를 진행하게 되었습니다.프로젝트를 진행하면서 CP2104를 이용하여 제작하게 되었는데요.회로설계는 아래 URL의 CP2104의 Datasheet를 참조하여 제작했습니다. https://www.silabs.com/Support%20Documents/TechnicalDocs/cp2104.pdf 일단 USB to UART니깐, USB가 무엇인지 부터 알아보죠.USB의 설명은 아래 URL을 참고해주세요.https://ko.wikipedia.org/wiki/USB내용 중 아래 그림과 같이 USB는 여러 종류의 Connector가 존재합니다.이번에 WIZ750SR을 제작하면서 Micro-B type ..