임베디드 소프트웨어/펌웨어 구현13 Stream 클래스 분석 (feat. Serial) Stream 클래스오늘은 Arduino 클래스 중 하나인 Stream C++ 클래스를 분석해본다.해당 클래스가 중요한 이유는 데이터 입출력 처리의 기본 클래스로써 WiFi 부터 Ethernet, UART, I2C, SPI 등등 각종 통신에서 Stream 클래스를 상속하여 사용하고 있기 때문이다. (Stream 클래스를 기반으로 인터페이스 된다.)코드의 내용은 오픈소스로써 깃허브 주소에서 확인 할 수 있다.https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/Stream.cpp arduino-esp32/cores/esp32/Stream.cpp at master · espressif/arduino-esp32Arduino core for the.. 2025. 3. 19. 통신 펌웨어 구현 가이드 메모리 및 데이터 처리(1) 메모리 MSB와 LSBMSB(Most Significant Bit/Byte)는 비트단위에서 최상위 비트를 의미하고, 바이트 단위에서는 최상위 바이트를 의미LSB(Least Significant Bit/Byte)는 비트 단위에서 최하위 비트를 의미하고, 바이트 단위에서 최하위 비트를 의미MSB, LSB 용어는 시리얼 통신 구현 뿐만 아니라 모든 통신에서 LSB 부터 전송할 것인가 MSB부터 전송할 것인가와 같은 규약 (프로토콜)을 정할 때 사용된다. (2) 메모리 데이터 저장 타입, 리틀 엔디안과 빅 엔디안CPU는 데이터를 메모리에 MSB 부터 저장할 것 인지, LSB 부터 저장할 것 인지에 따른 저장 순서에 의해 리틀 엔디안(Little Endian)과 빅 엔디안(Big .. 2025. 3. 15. DWIN DGUS HMI 개발 라이브러리 1. Embedded System에서 HMI의 역할HMI(Human-Machine Interface)는 사용자가 임베디드 시스템(Embedded System)과 상호작용할 수 있도록 하는 디스플레이, 터치스크린, 버튼, GUI 인터페이스 등을 의미한다. 임베디드 시스템은 주로 센서, 액추에이터, 마이크로컨트롤러(MCU) 등으로 구성되며, HMI를 통해 사용자에게 데이터를 표시하고, 제어 입력을 받을 수 있다. 즉, 여러 수동버튼을 하나의 화면으로 구성할 수 있다는 것이다.비유하자면 개인용 컴퓨터에서 모니터를 통해 사용자와 시스템이 상호작용 하듯이 PLC에서도 HMI를 통해 데이터를 시각화하고 사용자 입력을 받을 수 있음.개인용 컴퓨터에서 모니터 + 키보드 + 마우스가 사용자 인터페이스를 담당하듯, PLC.. 2025. 3. 2. FreeRTOS 사용하기 1. FreeRTOS 개념RTOS는 임베디드 마이크로컨트롤러(MCU)에 올라가는 커널 운영체제의 일종이다. RTOS 개념과 왜 사용해야하는지에 대해서는 이미 정리한바 있으니 본 블로그의 포스팅을 참고바란다.https://www.freertos.org/ FreeRTOS™ - FreeRTOS™ freertos.orgFreeRTOS 운영체제 공식사이트에서 자세한 내용을 확인할 수 있다.주요특징으로는오픈 소스이며 무료이다. (GPL)각종 의료기기나 자동차 ECU 또한 FreeRTOS 커널을 통해 임베디드 S/W로 사용되어 진다.ARM, AVR, PIC, INTEL, ESP32 등 35개의 마이크로컨트롤러(MCU)에 이미 포팅되어 있으며 컴파일러에도 이식되어 있다.https://github.com/FreeRTOS.. 2024. 10. 16. 실시간 운영체제 (RTOS) 마이크로 컨트롤러(MCU)를 다루고 프로그래밍하는 임베디드 분야에서는 사실 RTOS의 필요성을 못느낄 수도 있는데, 사실 나도 그렇다. 운영체제(Operation System)는 프로그램 실행 관리를 수행하는 소프트웨어이다.운영체제에는 범용 운영체제와 실시간 운영체제 (Real Time Operating System, RTOS)가 있다.1. RTOS (Real Time Operating System) 개념RTOS의 목적은 정해진 시간(실시간)에 데이터 처리를 하기 위한 스케줄링 운영체제이다.임베디드 시스템이 가지는 시간 제약에는 실행 시작 타이밍이나 언제까지 처리를 완료할 것인지가 있다.처리를 종료시킨다는 것은 입력 Data를 받아 출력 Data를 출력하기까지의 처리를 완료시키는 것을 의미한다.시간제약은.. 2024. 9. 4. [GUI & 터치스크린] LVGL 구현 관련 정리 1. 하드웨어(H/W) 요소(1) 터치스크린 패널 종류종류특징저항막 (감압식)- 패널에 일정 압력을 가했을때(누르는 힘)에 의한 저항의 변화를 감지- 필름이 접촉될 정도의 압력을 가해야 하기 때문에, 터치 인식률이 낮음- 산업현장에서 장갑을 낀 손으로도 사용이 가능하기 때문에 산업 디스플레이에 주로 쓰임정전용량식- 패널에 전극 변화를 감지하여 인식- 터치감도가 매우 좋으며, 중소형 모델에 적용하기도 적합함- 대부분 모바일 스마트폰 터치스크린 패널에 사용되고 있음 (2) 터치스크린 보드의 구조 (LVGL 지원 보드) 터치스크린 보드 형태의 구조는 대부분 이렇다.디스플레이 컨트롤 칩은 다양하며 드라이버가 이미 라이브러리에 구현되어 있기 때문에 구현 시 소스코드에서 해당 드라이버 헤더파일 주석을 해제하여 사용.. 2024. 7. 31. 이전 1 2 3 다음