C++ 함수 오버로딩(Function overloading) 코드 예제
코드 #include "windows.h" #include "stdio.h" double GetMax(double, double); int GetMax(int, int); void main() { int i; double d; i = GetMax(123,456); d = GetMax(1.23, 4.56); printf("\n%d",i); printf("\n%f",d); } double GetMax(double a, double b) { if(a>b) { return a; } else { return b; } }; int GetMax(int a ,int b) { if(a>b) { return a; } else { return b; } };
2022.02.13
ST에서 제공하는 lwIP 관련 자료
lwIP에 대해 전반적인 흐름을 이해하기 좋은 PDF 자료가 있었네요. ST에서 제공한 자료인데, 과거에 공부했을 때를 돌이켜보면 ST에서 lwIP 라이브러리를 잘 활용하고 있는 것 같습니다. lwIP와 MCU 관련된 자료도 찾아보면 ST가 압도적으로 많습니다. lwIP는 전체적인 구조, TCP/IP 계층, 버퍼 등에 대한 개념이 중요한데 이 내용들이 잘 정리되어 있습니다. URL링크는 아래와 같고 필요하신 분들은 참고하시기 바랍니다. ※ URL : https://comm.eefocus.com/media/download/index/id-1013648
2021.12.31
no image
MTU(Maximum Transmission Unit)와 MSS(Maximum Segment Size) 이해 및 관계
TCP/IP를 접하다보면 MTU, MSS란 단어들을 접하게 됩니다. 지금부터 간략하게 알아보도록 하겠습니다. MTU(Maximum Transmission Unit) - Ethernet 프레임을 제외한 IP 프로토콜 기준으로 송신할 수 있는 최대 크기 - MTU에서 IP 헤더(20Byte 이상)를 제외한 부분이 IP Payload 크기 - Window는 MTU가 기본적으로 1500으로 설정 MSS(Maximum Segment Size) - TCP 프로토콜 기준으로 송신할 수 있는 최대 크기 - MSS에서 TCP 헤더(20Byte 이상)를 제외한 부분이 TCP Payload 크기 MTU와 MSS 관계 - TCP는 IP의 상위 레이어 프로토콜이므로 아래와 같은 연관성이 있음 - MSS ( MTU - IP 헤더..
2021.12.30
Ethernet 와이어링 참고 사이트
Ethernet은 컴퓨터 네트워크에서 인터넷을 활용할 수 있게 해주는 중요한 통신 기술입니다. 그리고 일반인들이 인터넷을 활용할 때, 와이어에 대한 고민을 없게끔 표준이 견고하게 만들어져 있습니다. 그러나 Ethernet을 이용한 어플리케이션 및 시스템을 개발하는 입장은 조금 다릅니다. Ethernet 와이어에 대한 개념이 필요합니다. 한창 Ethernet을 공부한 때를 돌이켜보면 와이어링에 대한 자료가 잘 나오지 않았던 것 같습니다. Ethernet에 대한 분야가 워낙 광범위해서 주로 프로토콜에만 관심이 있어서 그런게 아닐까 싶습니다. 아무튼, Ethernet 와이어링에 대해 자세히 설명되어 있는 사이트가 있어 URL을 남깁니다. ※ URL: http://www.practicalnetworking.ne..
2021.12.30
지연 ACK(Delayed ACK)
Ethernet TCP 프로토콜을 분석하는데, 이론적으로 알던 내용과 다른 부분을 경험했습니다. TCP 서버에서 TCP 클라이언트로 데이터를 송신하는데, 꼭 2번씩 송신해야 TCP 클라이언트에서 ACK 답변을 하는 현상이었습니다. 예를 들면, 아래와 같습니다. TCP 서버 ----------> TCP 클라이언트 : Data TCP 서버 ----------> TCP 클라이언트 : Data TCP 서버
2021.12.30
X-by-Wire(Anything by Wire) 이해
X-by-Wire는 기계적(또는 기구적)인 장치를 Wire(선)을 이용한 전기적 신호로 대체하는 장치를 의미합니다. 자료를 찾아보면 항공 분야에서 생겨난 용어인데, 자동차 업계에서 많이 쓰이는 용어로 보여집니다. 점차, 무선 통신의 활용도도 높아질텐데 X-by-Wireless라는 용어가 새로 생길지 X-by-Wire로 통합적인 의미로 다뤄질지 궁금하네요. 본론으로 돌아와서, 대표적인 예로는 제동(Brake) 장치가 있습니다. X-by-Wire에 대한 과거 인식 과거에는 기계적인 장치를 유지하려는 경향이 있었습니다. 다양한 이유가 있었는데, 제 기준 오래 있었던 분야에서는 다음과 같은 이유들이 있었습니다. - 신뢰성 - 물리적인 감성 회사에 몸담고 있다면, 신뢰성이 생산에 얼마나 중요한지 이해하고 있을겁니..
2021.12.30
네이글 알고리즘(Nagle's Algoritm) 이해
네이글 알고리즘(Nagle's Algoritm)은 Ethernet을 이용하는 컴퓨터 네트워크에서 활용됩니다. 이 중에서도 TCP 프로토콜에서 많이 활용되고 있습니다. (다른 프로토콜에서도 활용되는지는 시간이 되면 확인해 봐야겠네요.) pseudocode 코드가 생각보다 간단하여 pseudocode 코드부터 알아보겠습니다. pseudocode if there is new data to send then if the window size ≥ MSS and available data is ≥ MSS then send complete MSS segment now else if there is unconfirmed data still in the pipe then enqueue data in the buffer ..
2021.12.30
bps, Buadrate, Datarate, Bps, fps, Framerate, pps
데이터통신 및 네트워크 분야에 있다면 bps, Bps, fps, pps 등을 접하게 됩니다. 특히, 컴퓨터 네트워크나 통신 Chip을 개발 및 연구할 때, 많이 쓰이는 듯 하다. 학생 때의 기억을 되돌아보면 보통, TCP/IP를 공부할 때 네트워크 성능에서 주로 접했습니다. 그리고 무선통신 성능에 대해 공부할 때, 많이 접했죠. 각각의 차이에 대해 간략하게 알아보겠습니다. bps(bits per second), Buadrate, Datarate 초당 비트 수를 의미합니다. 업계와 기업마다 쓰이는 용어가 조금씩 다른데 Buadrate라고 표현하기도 하고 Datarate라고 표현하기도 합니다. 한 분야에서 일을 하다보면, 다른 분야에 대해 알기 어려운데 아마도 각, 분야마다 교류가 없어서 동일한 것을 다르게..
2021.12.30
no image
BLDC 모터(Blush-Less DC Motor), PWM 제어 방식, Hall Sensor
BLDC 모터(Blush-Less DC Motor)를 사용했던 경험을 정리하려고 보니, 생각보다 종류가 많은 것 같습니다. 특히, 인버터 기술을 제어하여 BLDC 모터를 구동하는 것은 내용을 다시봐도 잘 이해가 안됩니다. 대기업에서 모터 제어 직무가 괜히 있는 게 아님을 새삼 깨달았네요. 제가 다루었던 BLDC 모터의 특징은 대략 아래와 같습니다. - PWM 제어 방식(Motor Controller 내장) - Hall Sensor 다뤘던 BLDC 모터와 다르지만, 회로도는 대략 아래와 같이 간단한 편이었습니다. PWM(Pulse-width modulation) 제어 방식을 활용한다는 것은 BLDC Motor Controller가 내장되어 있다는 의미로 봐도 되겠습니다. 모터의 속도를 제어하는 어려운 부분..
2021.12.29