커스터마이징의 필요성

Serial-to-Ethernet 프로토콜 컨버터는 기본적으로 시리얼 포트와 이더넷 포트간에 데이터를 교환하는 것이다. 하지만 현장의 상황에 따라서 운용 방식을 다르게 해야하는 경우가 생긴다. 이 경우에 펌웨어 커스터마이징이 필요하다.

사례 (1 Serial Port, 다수 TCP 접속 서버)

이 사례는 고객의 디바이스에는 하나의 시리얼 포트가 연결되어 있지만 시리얼 포트에서 수신된 데이터를 전송해야할 서버가 다수가 존재하는 환경이다.

제품의 특성상 최대로 접속 가능한 서버는 4대로 제한되고 있다. 각 서버는 언제든지 TCP 포트에 접속해서 연결을 유지하면서 데이터가 필요할 때, 요청 메시지를 전송한다. 펌웨어에서는 요청된 메시지가 어느 포트에서 수신되었는 지를 표시하는 정보를 심어서 시리얼 포트로 요청 메시지를 전송하고 고객의 디바이스는 디바이스의 현재 정보를 추출해서 요청한 TCP 포트의 정보를 담아서 응답을 시리얼 포트를 통해서 전달한다. 그러면 펌웨어에서는 수신 데이터에 있는 TCP 포트 정보를 제거하고 실제 데이터만 요청 메시지를 보낸 TCP 포트로 전달해서 원격지에 있는 요청 서버까지 전송되도록 한다.

시리얼 프로토콜 재정의

이 메시지 처리를 위해서 고객의 디바이스와 Serial-to-Ethernet 모듈 간의 시리얼 프로토콜은 새롭게 정의되었다. 노이즈 발생이 많은 산업 현장의 특성을 고려해서 시리얼 프로토콜에는 CRC16 으로 데이터 유효성 체크를 한다. Serial Baud Rate는 최대 2Mbps까지 지원한다.

  • 요청 포트 정보
  • 데이터 Length
  • 데이터
  • CRC16

Task Scheduler

동시에 여러개의 TCP 서버에서 요청 메시지가 와도 한번에 하나의 요청을 처리하기 위한 Task Scheduling 기능을 구현해서 데이터가 섞이지 않도록 관리한다.

하드웨어 구성

이 고객이 사용하는 Serial-to-Ethernet HW는 TW100MJ와 동일한 사양이지만 하드웨어는 사이즈를 줄이기 위해서 2mm Pitch Header 핀으로 구성하였다.

핵심 구성은 다음과 같다.

MCUSTM32F405RGT6 (1M Flash, 196K Ram)
EEPROM4KBytes (Config Data 저장용)
TCP/IPWIZnet W5500
EthernetTransformer 탑재. RJ45 없음

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

en_USEnglish