How Does a W5500 Modbus TCP BMS Connect a Rescue Robot Battery to ROS 2?
A Paderborn University lab BMS runs a Modbus TCP server on a W5500 hardware socket, port 502, so a ROS 2 node reads cell data and publishes BatteryState.
0
Project description
๐ Project Overview
This project is an open-source hardware and software solution implementing an IoT-based Battery Management System (BMS) designed for applications such as Energy Storage Systems (ESS), Electric Vehicles (EVs), or remote off-grid power systems.
Key features include:
1. Data Acquisition and Monitoring: Real-time measurement of voltage, current, and temperature for each battery cell to calculate the State of Charge (SoC) and State of Health (SoH).
2. Protection Control: Detection of hazardous conditionsโsuch as over-charge, over-discharge, or overheatingโtriggers the control of relays or pack contactors to disconnect the circuit.
3. Remote Telemetry: Transmission of collected battery diagnostic data over a network to a central control server, dashboard, or MQTT broker, enabling administrators to monitor and control the system remotely.
๐ Role of the W5500
In this BMS design, the WIZnet W5500 serves as a hardware TCP/IP controller dedicated to providing reliable wired Ethernet communication for remote monitoring.
Its specific roles and advantages include:
* Network Processing Offloading: The BMS's main MCU must prioritize safety-critical operations, such as real-time voltage/current calculations and relay control. The W5500 handles complex network protocolsโincluding TCP, UDP, and IPv4โentirely within its internal hardware, thereby drastically reducing the resource burden (CPU usage and memory) on the MCU. * Ensuring communication reliability in noisy environments: The areas surrounding battery packs and inverters are prone to severe electromagnetic interference (EMI/EMC) and noise due to high-voltage, high-current switching. While wireless communication like Wi-Fi may experience interruptions in such industrial settings, W5500-based wired Ethernet remains unaffected by signal interference, ensuring uninterrupted data transmission.
* Real-time data streaming (SPI interface): The main MCU accesses the W5500 via SPI communication to transmit real-time battery diagnostic data (cell voltage, temperature, alarm logs, etc.) to an external server over Ethernet. Supporting up to eight independent hardware sockets, the system allows for simultaneous operationโfor instance, using one socket for MQTT data transmission while another manages a local web server for monitoring.
In summary, the W5500 plays a pivotal role as an industrial network bridge in this project, establishing a secure and uninterrupted remote battery monitoring network.
[Q&A]
Q1. What are the primary objectives and key features of the `frankonerio/BMS` project?
A1. This is an IoT-based Battery Management System (BMS) project designed for Energy Storage Systems (ESS), Electric Vehicles (EVs), and remote power systems. It provides functions such as monitoring battery cell voltage, current, and temperature; calculating SoC (State of Charge) and SoH (State of Health); performing safety cut-offs via relays in the event of anomalies; and transmitting remote monitoring data (telemetry) over a network.
Q2. Why was W5500-based wired Ethernet chosen over wireless (Wi-Fi) for this Battery Management System (BMS)?
A2. The areas surrounding battery packs, inverters, and motors are environments prone to significant electromagnetic interference (EMI/EMC) and noise due to high-current switching and high-voltage operations. Since wireless communication carries a high risk of packet loss or connection drops in such noisy environments, the stable wired Ethernet controller (W5500)โwhich is less susceptible to signal interferenceโis utilized to ensure reliable communication.
Q3. What benefits does the W5500โs hardware TCP/IP offloading function offer regarding the main MCU's processing tasks?
A3. The BMS main MCU must perform critical, real-time tasksโsuch as calculating cell voltages, monitoring temperatures, and controlling relay cutoffsโwithout any latency. Because the W5500 handles complex network protocols (including TCP/IP, UDP, and IPv4) via its internal hardware, it drastically reduces the MCU's CPU load and memory usage, allowing the MCU to focus on the main control logic.
Q4. How are the W5500 and the MCU connected, and how can the multi-socket function be utilized?
A4. The MCU and the W5500 exchange real-time data via an SPI interface. Since the W5500 supports up to eight independent hardware sockets, it enables a multitasking network environment; for instance, one or more sockets can be used to transmit data to an external cloud via the MQTT protocol, while other sockets are simultaneously allocated to run a web server for local network monitoring. [Similar Projects]
1. [BeeMS - Open-Source Battery Management System](https://www.google.com/search?q=https://maker.wiznet.io/matthew/projects/beems/)
* Key Components: Battery control MCU, CAN bus, WIZnet W5500 Ethernet module
* Project Features: An open-source BMS project that collects safety logic and cell monitoring data from within an EV (Electric Vehicle) battery pack and transmits it in real-time to a host SCADA or control PC via a CAN-to-Ethernet bridge.
* Similarities and Relevance: This project aligns most directly with `frankonerio/BMS`. It shares an architecture that reliably offloads battery safety control and cell diagnostic dataโcollected in high-noise hardware environmentsโvia a wired backhaul using the W5500 hardware TCP/IP stack.
---
2. [OpenDTU-OnBattery - Smart Solar & BESS Monitor](https://www.google.com/search?q=https://maker.wiznet.io/irina/projects/opendtu-onbattery/)
* Key Components: ESP32, WIZnet W5500, protocols for interfacing with battery BMS (e.g., Daly, JK)
* Project Features: An energy monitoring solution that collects battery BMS data from solar inverters and Battery Energy Storage Systems (BESS/ESS) and transmits it over a wired network using open protocols (MQTT/HTTP).
* Similarities and Relevance: It shares the common function of monitoring battery pack (BMS) data, such as SoC/SoH, voltage, and current status. It is also similar in its use of a W5500-based wired Ethernet networkโrather than Wi-Fiโto ensure reliable connectivity amidst the strong electromagnetic interference (EMI) typically found around inverters and high-power battery systems. ---
3. [EPEM ESP32-C6 ATM90E36 Ethernet Power Energy Monitor](https://www.google.com/search?q=https://maker.wiznet.io/scott/projects/epem-esp32-c6-atm90e36-ethernet-power-energy-monitor-sdk/)
* Key Components: ESP32-C6, ATM90E36 power metering IC, WIZnet W5500 Ethernet controller, RS-485.
* Project Features: An open-source hardware power monitoring platform that precisely measures power, voltage, and current data; it utilizes the W5500's hardware TCP/IP stack to stream real-time telemetry data to a monitoring server, thereby offloading computational tasks.
* Similarities and Relevance: It shares a design philosophy with BMS systems by focusing on the core functions of data acquisition (power, voltage, current) and protection logic, while offloading network protocol processing to the W5500 to dedicate the MCU's CPU resources to control and calculation tasks.
===============
๐ ํ๋ก์ ํธ ์์ฝ (Overview)
์ด ํ๋ก์ ํธ๋ ์๋์ง ์ ์ฅ ์ฅ์น(ESS), ์ ๊ธฐ์ฐจ(EV) ๋๋ ์๊ฒฉ ๋ ๋ฆฝํ ์ ์ ์์คํ ์ ์ํ IoT ๊ธฐ๋ฐ ๋ฐฐํฐ๋ฆฌ ๊ด๋ฆฌ ์์คํ (Battery Management System, BMS)์ ๊ตฌํํ ์คํ์์ค ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ์๋ฃจ์ ์ ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ชจ๋ํฐ๋ง: ๊ฐ ๋ฐฐํฐ๋ฆฌ ์
์ ์ ์(Voltage), ์ ๋ฅ(Current), ์จ๋(Temperature)๋ฅผ ์ค์๊ฐ์ผ๋ก ์ธก์ ํ์ฌ ๋ฐฐํฐ๋ฆฌ์ ์ถฉ์ ์ํ(SoC, State of Charge)์ ๊ฑด๊ฐ ์ํ(SoH, State of Health)๋ฅผ ๊ณ์ฐํฉ๋๋ค.
2. ๋ณดํธ ์ ์ด(Protection): ๊ณผ์ถฉ์ (Over-charge), ๊ณผ๋ฐฉ์ (Over-discharge), ๊ณผ์ด ๋ฑ ๋ฐฐํฐ๋ฆฌ์ ์ํ ์ํ๋ฅผ ๊ฐ์งํ๋ฉด ๋ฆด๋ ์ด๋ ํฉ ์ปจํํฐ๋ฅผ ์ ์ดํ์ฌ ํ๋ก๋ฅผ ์ฐจ๋จํฉ๋๋ค.
3. ์๊ฒฉ ํ
๋ ๋ฉํธ๋ฆฌ(Telemetry): ์์ง๋ ๋ฐฐํฐ๋ฆฌ ์ง๋จ ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ์ค์ ๊ด์ ์๋ฒ, ๋์๋ณด๋ ๋๋ MQTT ๋ธ๋ก์ปค๋ก ์ ์กํ์ฌ ๊ด๋ฆฌ์๊ฐ ์๊ฒฉ์์ ์์คํ
์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ ์ดํ ์ ์๋๋ก ํฉ๋๋ค.

๐ W5500์ ์ญํ (Role of W5500)
์ด BMS ์ค๊ณ์์ WIZnet W5500์ ์๊ฒฉ ๋ชจ๋ํฐ๋ง์ ์ํ ์์ ์ ์ธ ์ ์ ์ด๋๋ท(Ethernet) ํต์ ์ ์ ๋ดํ๋ ํ๋์จ์ด TCP/IP ์ปจํธ๋กค๋ฌ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
๊ตฌ์ฒด์ ์ธ ์ญํ ๊ณผ ๋์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
* ๋คํธ์ํฌ ์ฒ๋ฆฌ ์คํ๋ก๋(Offloading): ๋ฐฐํฐ๋ฆฌ ๊ด๋ฆฌ ์์คํ
์ ๋ฉ์ธ MCU๋ ์ค์๊ฐ ์ ์/์ ๋ฅ ๊ณ์ฐ ๋ฐ ๋ฆด๋ ์ด ์ ์ด ๋ฑ ์์ ๊ณผ ์ง๊ฒฐ๋ ์ฐ์ฐ์ ์ง์คํด์ผ ํฉ๋๋ค. W5500์ TCP, UDP, IPv4 ๋ฑ์ ๋ณต์กํ ๋คํธ์ํฌ ํ๋กํ ์ฝ ์ฒ๋ฆฌ๋ฅผ ์นฉ ๋ด๋ถ ํ๋์จ์ด์์ ์ ๋ดํ๋ฏ๋ก MCU์ ๋ฆฌ์์ค(CPU ์ ์ ์จ, ๋ฉ๋ชจ๋ฆฌ) ๋ถ๋ด์ ํ๊ธฐ์ ์ผ๋ก ์ค์ฌ์ค๋๋ค.
* ๋
ธ์ด์ฆ ํ๊ฒฝ์์์ ํต์ ์ ๋ขฐ์ฑ ํ๋ณด: ๋ฐฐํฐ๋ฆฌ ํฉ๊ณผ ์ธ๋ฒํฐ ์ฃผ๋ณ์ ๊ณ ์ ์ ๋ฐ ๋์ ๋ฅ ์ค์์นญ์ผ๋ก ์ธํด ์ ์๊ธฐ ๊ฐ์ญ(EMI/EMC)๊ณผ ๋
ธ์ด์ฆ๊ฐ ๋งค์ฐ ์ฌํ ํ๊ฒฝ์
๋๋ค. Wi-Fi์ ๊ฐ์ ๋ฌด์ ํต์ ์ ์ด๋ฌํ ์ฐ์
ํ๊ฒฝ์์ ๋๊น์ด ๋ฐ์ํ ์ ์์ง๋ง, W5500 ๊ธฐ๋ฐ์ ์ ์ ์ด๋๋ท์ ๋ฐฉํด ์ ํ์ ์ํฅ์ ๋ฐ์ง ์๊ณ ์ค๋จ ์๋ ๋ฐ์ดํฐ ์ก์์ ์ ๋ณด์ฅํฉ๋๋ค.
* ์ค์๊ฐ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ (SPI ์ธํฐํ์ด์ค): ๋ฉ์ธ MCU๋ SPI ํต์ ์ ํตํด W5500์ ์ ๊ทผํ์ฌ ์ค์๊ฐ ๋ฐฐํฐ๋ฆฌ ์ง๋จ ๋ฐ์ดํฐ(์
์ ์, ์จ๋, ์๋ ๋ก๊ทธ ๋ฑ)๋ฅผ ์ด๋๋ท์ ํตํด ์ธ๋ถ ์๋ฒ๋ก ์ ์กํฉ๋๋ค. ์ต๋ 8๊ฐ์ ๋
๋ฆฝ์ ์ธ ํ๋์จ์ด ์์ผ์ ์ง์ํ์ฌ, ํ๋์ ์์ผ์ MQTT ๋ฐ์ดํฐ ์ ์ก์ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ์์ผ์ ๋ก์ปฌ ์น์๋ฒ ๊ด์ ์ฉ์ผ๋ก ๋์ ์ด์ํ ์ ์์ต๋๋ค.
์์ฝํ์๋ฉด, ์ด ํ๋ก์ ํธ์์ W5500์ '์์ ํ๊ณ ์ค๋จ ์๋ ๋ฐฐํฐ๋ฆฌ ์๊ฒฉ ๊ด์ ๋ง'์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ฐ์ ์ฉ ๋คํธ์ํฌ ๋ธ๋ฆฟ์ง์ ํต์ฌ ์ญํ ์ ์ํํฉ๋๋ค.
[Q&A]
Q1. `frankonerio/BMS` ํ๋ก์ ํธ์ ์ฃผ์ ๋ชฉ์ ๊ณผ ํต์ฌ ๊ธฐ๋ฅ์ ๋ฌด์์ธ๊ฐ์?
A1. ์๋์ง ์ ์ฅ ์ฅ์น(ESS), ์ ๊ธฐ์ฐจ(EV), ์๊ฒฉ ์ ์ ์์คํ
์ ์ํ IoT ๊ธฐ๋ฐ ๋ฐฐํฐ๋ฆฌ ๊ด๋ฆฌ ์์คํ
(BMS) ํ๋ก์ ํธ์
๋๋ค. ๋ฐฐํฐ๋ฆฌ ์
์ ์ ์ยท์ ๋ฅยท์จ๋ ๋ชจ๋ํฐ๋ง, SoC(์ถฉ์ ์ํ)/SoH(๊ฑด๊ฐ ์ํ) ์ฐ์ฐ, ์ด์ ๋ฐ์ ์ ๋ฆด๋ ์ด๋ฅผ ํตํ ์์ ์ฐจ๋จ, ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ๋ฅผ ํตํ ์๊ฒฉ ๊ด์ ๋ฐ์ดํฐ ์ ์ก(ํ
๋ ๋ฉํธ๋ฆฌ) ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Q2. ๋ฐฐํฐ๋ฆฌ ๊ด๋ฆฌ ์์คํ
(BMS)์์ ๋ฌด์ (Wi-Fi) ๋์ W5500 ๊ธฐ๋ฐ์ ์ ์ ์ด๋๋ท์ ์ฑํํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
A2. ๋ฐฐํฐ๋ฆฌ ํฉ, ์ธ๋ฒํฐ, ๋ชจํฐ ์ฃผ๋ณ์ ๋์ ๋ฅ ์ค์์นญ ๋ฐ ๊ณ ์ ์์ผ๋ก ์ธํด ์ ์๊ธฐ ๊ฐ์ญ(EMI/EMC)๊ณผ ๋
ธ์ด์ฆ๊ฐ ๊ฐํ๊ฒ ๋ฐ์ํ๋ ํ๊ฒฝ์
๋๋ค. ๋ฌด์ ํต์ ์ ์ด๋ฌํ ๋
ธ์ด์ฆ ํ๊ฒฝ์์ ํจํท ์์ค์ด๋ ์ ์ ๋๊น์ด ๋ฐ์ํ ์ํ์ด ํฌ๊ธฐ ๋๋ฌธ์, ๋ฐฉํด ์ ํ์ ์ํฅ์ด ์ ๊ณ ์์ ์ ์ธ ์ ์ ์ด๋๋ท ์ปจํธ๋กค๋ฌ(W5500)๋ฅผ ํ์ฉํด ํต์ ์ ๋ขฐ์ฑ์ ํ๋ณดํฉ๋๋ค.
Q3. W5500์ ํ๋์จ์ด TCP/IP ์คํ๋ก๋(Offloading) ๊ธฐ๋ฅ์ด ๋ฉ์ธ MCU ์์
์ฒ๋ฆฌ์ ์ด๋ค ์ด์ ์ ์ฃผ๋์?
A3. BMS์ ๋ฉ์ธ MCU๋ ๋ฐฐํฐ๋ฆฌ์ ์์ ๊ณผ ์ง๊ฒฐ๋ ์ค์๊ฐ ์
์ ์ ๊ณ์ฐ, ์จ๋ ๊ฐ์ง, ๋ฆด๋ ์ด ์ฐจ๋จ ์ ์ด ๋ฑ์ ์ง์ฐ ์์ด ์ํํด์ผ ํฉ๋๋ค. W5500์ TCP/IP, UDP, IPv4 ๋ฑ ๋ณต์กํ ๋คํธ์ํฌ ํ๋กํ ์ฝ ์ฒ๋ฆฌ๋ฅผ ์นฉ ๋ด๋ถ ํ๋์จ์ด๋ก ์์ฒด ๋ด๋นํ๋ฏ๋ก MCU์ CPU ์ ์ ์จ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ๊ธฐ์ ์ผ๋ก ๋ฎ์ถฐ ๋ฉ์ธ ์ ์ด ๋ก์ง์ ์ง์คํ ์ ์๊ฒ ํด์ค๋๋ค.
Q4. W5500๊ณผ MCU๋ ์ด๋ค ์ธํฐํ์ด์ค๋ก ์ฐ๊ฒฐ๋๋ฉฐ, ๋ค์ค ์์ผ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ํ์ฉ๋ ์ ์๋์?
A4. MCU์ W5500์ SPI ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ค์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค. W5500์ ์ต๋ 8๊ฐ์ ๋
๋ฆฝ์ ์ธ ํ๋์จ์ด ์์ผ์ ์ง์ํ๋ฏ๋ก, ํ๋ ์ด์์ ์์ผ์ MQTT ํ๋กํ ์ฝ์ ํตํ ์ธ๋ถ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ ์ ์ก์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ , ๋ค๋ฅธ ์์ผ์ ๋ก์ปฌ ๋คํธ์ํฌ ๊ด์ ์ฉ ์น์๋ฒ ์ด์์ ๋์์ ํ ๋นํ์ฌ ๋ฉํฐํ์คํน ๋คํธ์ํฌ ํ๊ฒฝ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
[์ ์ฌ ํ๋ก์ ํธ]
1. [BeeMS - Open-Source Battery Management System](https://www.google.com/search?q=https://maker.wiznet.io/matthew/projects/beems/)
* ์ฃผ์ ๊ตฌ์ฑ: ๋ฐฐํฐ๋ฆฌ ์ ์ด MCU, CAN ๋ฒ์ค, WIZnet W5500 ์ด๋๋ท ๋ชจ๋
* ํ๋ก์ ํธ ํน์ง: EV(์ ๊ธฐ์ฐจ) ๋ฐฐํฐ๋ฆฌ ํฉ ๋ด๋ถ์ ์์ ๋ก์ง๊ณผ ์
๋ชจ๋ํฐ๋ง ๋ฐ์ดํฐ๋ฅผ ์์งํ ๋ค, CAN-to-Ethernet ๋ธ๋ฆฟ์ง๋ฅผ ํตํด ์์ SCADA/๊ด์ PC๋ก ์ค์๊ฐ ์ ์กํ๋ ์คํ์์ค BMS ํ๋ก์ ํธ์
๋๋ค.
* ์ ์ฌ์ ๋ฐ ์ฐ๊ด์ฑ: `frankonerio/BMS`์ ๊ฐ์ฅ ์ง์ ์ ์ผ๋ก ์ผ์นํ๋ ํ๋ก์ ํธ์
๋๋ค. ๋ฐฐํฐ๋ฆฌ์ ์์ ์ ์ด ๋ฐ ์
์ํ ์ง๋จ ๋ฐ์ดํฐ๋ฅผ ๋
ธ์ด์ฆ๊ฐ ์ฌํ ํ๋์จ์ด ํ๊ฒฝ์์ W5500 ํ๋์จ์ด TCP/IP๋ฅผ ํตํด ์ ์ ๋ฐฑํ๋ก ์์ ์ ์ผ๋ก ์คํ๋ก๋ฉ(Offloading)ํ๋ ์ํคํ
์ฒ๋ฅผ ๊ณต์ ํฉ๋๋ค.
---
2. [OpenDTU-OnBattery - Smart Solar & BESS Monitor](https://www.google.com/search?q=https://maker.wiznet.io/irina/projects/opendtu-onbattery/)
* ์ฃผ์ ๊ตฌ์ฑ: ESP32, WIZnet W5500, ๋ฐฐํฐ๋ฆฌ BMS(Daly, JK ๋ฑ) ์ฐ๋ ํ๋กํ ์ฝ
* ํ๋ก์ ํธ ํน์ง: ํ์๊ด ์ธ๋ฒํฐ ๋ฐ ์๋์ง ์ ์ฅ ์ฅ์น(BESS/ESS)์ ๋ฐฐํฐ๋ฆฌ BMS ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ์คํ ํ๋กํ ์ฝ(MQTT/HTTP) ๊ธฐ๋ฐ์ผ๋ก ์ ์ ๋ง์ ์ ์กํ๋ ์๋์ง ๋ชจ๋ํฐ๋ง ์๋ฃจ์
์
๋๋ค.
* ์ ์ฌ์ ๋ฐ ์ฐ๊ด์ฑ: ๋ฐฐํฐ๋ฆฌ ํฉ(BMS)์ SoC/SoH, ์ ์, ์ ๋ฅ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ค๋ ๊ณตํต์ ์ด ์์ต๋๋ค. ์ธ๋ฒํฐ ๋ฐ ๊ณ ์ ๋ ฅ ๋ฐฐํฐ๋ฆฌ ์ฃผ๋ณ์ ๊ฐํ ์ ์๊ธฐ ๊ฐ์ญ(EMI)์ ๊ทน๋ณตํ๊ธฐ ์ํด Wi-Fi ๋์ W5500 ์ ์ ์ด๋๋ท ๊ธฐ๋ฐ์ ํ๋์จ์ด ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ ์ ์ด ์ ์ฌํฉ๋๋ค.
---
3. [EPEM ESP32-C6 ATM90E36 Ethernet Power Energy Monitor](https://www.google.com/search?q=https://maker.wiznet.io/scott/projects/epem-esp32-c6-atm90e36-ethernet-power-energy-monitor-sdk/)
* ์ฃผ์ ๊ตฌ์ฑ: ESP32-C6, ATM90E36 ์ ๋ ฅ ๊ณ์ธก IC, WIZnet W5500์ด๋๋ท ์ปจํธ๋กค๋ฌ, RS-485
* ํ๋ก์ ํธ ํน์ง: ์ ๋ ฅ ๋ฐ ์ ์ยท์ ๋ฅ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ ์ธก์ ํ๊ณ , ์ฐ์ฐ ๋ถํ๋ฅผ ์ฐจ๋จํ๊ธฐ ์ํด W5500์ ํ๋์จ์ด TCP/IP๋ฅผ ํ์ฉํด ์ค์๊ฐ ํ
๋ ๋ฉํธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๊ด์ ์๋ฒ๋ก ์คํธ๋ฆฌ๋ฐํ๋ ์คํ์์ค ํ๋์จ์ด ์ ๋ ฅ ๋ชฌํฐ๋ง ํ๋ซํผ์
๋๋ค.
* ์ ์ฌ์ ๋ฐ ์ฐ๊ด์ฑ: BMS ์์คํ
์ ํต์ฌ ์์์ธ ์ ๋ ฅ/์ ์/์ ๋ฅ ์์ง ๋ฐ ๋ณดํธ ๋ก์ง์ ์ง์คํ๋ฉด์, ๋คํธ์ํฌ ํ๋กํ ์ฝ ์ฒ๋ฆฌ๋ W5500์ ์คํ๋ก๋ํ์ฌ MCU์ CPU ๋ฆฌ์์ค๋ฅผ ์ ์ด ๋ฐ ๊ณ์ฐ์ ์ง์ค์ํจ๋ค๋ ์ค๊ณ ์ฒ ํ์ ๊ณต์ ํฉ๋๋ค.
[์์ฌ์ ]
1. ๊ณ ๋
ธ์ด์ฆยท๊ณ ์ ์ ํ๊ฒฝ(BMS/BESS)์์์ ํ๋์จ์ด ์ ์ ์ด๋๋ท ์ฐ์ ๊ฒ์ฆ
์์ฌ์ : ๋ฐฐํฐ๋ฆฌ ํฉ, ์ธ๋ฒํฐ, ๋ชจํฐ ๋๋ผ์ด๋ฒ ์ฃผ๋ณ์ ๊ณ ์ ์ ๋ฐ ๋์ ๋ฅ ์ค์์นญ์ผ๋ก ์ธํด ๊ฐ๋ ฅํ ์ ์๊ธฐ ๊ฐ์ญ(EMI/EMC)์ด ๋ฐ์ํ๋ ๋ํ์ ์ธ ๊ณ ๋
ธ์ด์ฆ ํ๊ฒฝ์
๋๋ค.
์์ฆ๋คํธ์ ๊ธฐํ: ์ด๋ฌํ ํ๊ฒฝ์์๋ Wi-Fi๋ BLE ๊ฐ์ ๋ฌด์ ํต์ ์ ์ ๋ขฐ์ฑ์ด ๊ธ๊ฒฉํ ๋จ์ด์ง๋๋ค. W5500๊ณผ ๊ฐ์ ์ ์ ํ๋์จ์ด ์ด๋๋ท ์นฉ์ด ๋จ์ํ '์ฐ๊ฒฐ ์๋จ'์ ๋์ด '๋ ธ์ด์ฆ๋ฅผ ๊ทน๋ณตํ๊ณ ์์คํ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ ํ์ ๋ถํ'์ผ๋ก ํ๊ฐ๋ฐ๊ณ ์์์ ์ ์ฆํฉ๋๋ค.
2. '์์ ํ์(Safety-Critical) ์์คํ
'์์ ํ๋์จ์ด TCP/IP ์คํ๋ก๋ฉ์ ํต์ฌ ๊ฐ์น
์์ฌ์ : BMS์ ๋ฉ์ธ MCU๋ ๋ฐฐํฐ๋ฆฌ ํญ๋ฐยท์ดํญ์ฃผ๋ฅผ ๋ง๊ธฐ ์ํด ์
์ ์/์จ๋ ๊ฐ์ง, ์ค์๊ฐ ๋ฆด๋ ์ด ์ฐจ๋จ ๋ฑ ์ ๋ก ๋๋ ์ด(Zero-delay) ์ค์๊ฐ ์ ์ด๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
์์ฆ๋คํธ์ ๊ธฐํ: SW ๊ธฐ๋ฐ TCP/IP ์คํ์ ๊ตฌ๋ํ ๊ฒฝ์ฐ MCU์ CPU ๋ฆฌ์์ค ์ ์ ์ ์ธํฐ๋ฝํธ ์ง์ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ฆ๋คํธ ํนํ ๊ธฐ์ ์ธ Hardwired TCP/IP Engine์ด ๋คํธ์ํฌ ํ๋กํ ์ฝ ์ฒ๋ฆฌ๋ฅผ 100% ํ๋์จ์ด๋ก ์คํ๋ก๋ฉํด ์ค์ผ๋ก์จ, "์์ ์ฑ ์ฆ๋ + MCU ์คํ ์ ๊ฐ(Cost reduction)"์ด๋ผ๋ ๊ฐ๋ ฅํ ์ธ์ผ์ฆ ํฌ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
3. ๊ธ์ฑ์ฅํ๋ ์๋์ง(BESS/ESS/EV) ์์ฅ์ผ๋ก์ ์ ๊ท ํ๊น ํ์ฅ
์์ฌ์ : ์ ์ธ๊ณ์ ์ธ ์นํ๊ฒฝ ์๋์ง ์ ํ(ํ์๊ด, ESS, ์ ๊ธฐ์ฐจ ๋ฑ)์ผ๋ก ์ธํด BMS ๋ฐ ์๋์ง ๋ชจ๋ํฐ๋ง ์์คํ
์์ฅ์ด ํญ๋ฐ์ ์ผ๋ก ์ฑ์ฅํ๊ณ ์์ต๋๋ค.
์์ฆ๋คํธ์ ๊ธฐํ: ๊ธฐ์กด ์ค๋งํธ ํ, ์๋ฆฌ์ผ-ํฌ-์ด๋๋ท(Serial-to-Ethernet) ์์ฅ์ ๋์ด ์ฐ์ ์ฉ BESS/BMS ๋ชจ๋ํฐ๋ง ๋ฐฑํ ์์ฅ์ ์์ฆ๋คํธ ์นฉ(W5500, W6100 ๋ฑ)์ ํต์ฌ ์ฑ์ฅ ๋๋ ฅ(Growth Engine)์ผ๋ก ์ฌ์ ์ํ๊ณ ์ง์ค ์กฐ๋ช ํ ์ ์์ต๋๋ค.
Documents
BMS repository (frankonerio/BMS)
Full project: STM32CubeIDE firmware, KiCad boards, ROS 2 host node, Qt GUI
Project README
Build instructions including section 5, Integrating W5500 Ethernet Library
WIZnet ioLibrary_Driver
The W5500 socket driver family vendored into the firmware at Core/Src/w5500
WIZnet W5500 product page
Hardwired TCP/IP Ethernet controller serving the Modbus TCP session
libmodbus
Host-side Modbus TCP client library used by the ROS 2 node
Paderborn University news on its RoboCup rescue robots
University coverage of the GET Lab rescue robot line at RoboCup (German)
SEGGER SystemView
Task tracing tool integrated into the FreeRTOS firmware; captures are in the Records folder