I don't know when to quit! But I know when do I quit!

Diy -자작

arduino를 이용한 TRDP PC104 인터페이스 테스트용 보드

dudals_jung 2023. 1. 21. 10:31

업무용이든 개인용이든 잡다하게 만드는게 많은데, 기록을 남기고자 하나 둘 올려 보려고 합니다.

 

철도 차량용 제어기나 관련 전장품을 만드는 회사를 다니고 있는데,

지금은 기존의 HDLC나 RS-485 계열의 통신에서 MVB 통신을 지나 이더넷 기반으로 넘어가는 초입 단계입니다.

 

철도 차량용 통신은 이미 TCN 에서 진행하고 있으며 WTB (Wired Train Bus)나 MVB (Multifunction Vehicle Bus)도 여기에 포함되어 있고, 이더넷 기반으로는 TRDP (Train Real-time Data Protocol)가 있습니다.

 

제가 다니는 회사에서는 자체적으로 MVB 표준 문서를 이용하여 순수하게 자체적으로 제품 제작을 진행 했으며 , 이미 여러 프로젝트에 납품 및 설치 운용이 되고 있습니다.

 

이번에는 TRDP 통신 모듈을 제작하고 있습니다.

 

32Bit MCU에 Embedded Linux 와 TCNOpen 의 TRDP 를 적용했으며 타 장치와의 인터페이스는 PC104(8비트 데이터, 어드레스 20비트, 메모리 영역 1Mbyte)를 이용합니다.

 

이미 MVB 등을 PC104 보드 제품들로 만든 것이 있기에, 시험 할 수 있는 베이스 보드도 있지만

아무래도 PC104 슬래이브 장치 역할을 위해 Embedded Linux 에서 Device Driver 를 이용하기 때문에 읽고 쓸때 신호 타이밍을 변경하면서 시험을 해야할 필요가 있어서 만들어 봤습니다.

 

총 필요한 핀 수가 Reset, MEMR, MEMW, Data 8, Address 20 등 총 31개가 필요하여 arduino due 를 사용 했습니다.

몇달 전에 취미용으로 알리 익스프레스에서 1개 11달러 정도 주고  파는 것을 3개 정도 사둔게 있었습니다.

 

아래는 arduino due

 

 

 

아래는 확장용 PCB

 

기능은 간단하게 USB-Serial 포트로 PC와 통신하면서 PC104 보드와 인터페이스를 하는 겁니다.

 

배선는 확장용 PCB 아래로 테프론 와이어를 사용해서 (흔히 말하는 에나멜선) 배선했고요,

리눅스 콘솔을 위한 시리얼 포트 때문에 저렇게 수직으로 세워지도록 만들었습니다.

 

arduino due 로 만든 이유 중 하나가 PC104 베이스 보드에 설치하면 저 리눅스 콘솔 시리얼을 사용 할 수가 없네요.

보드 수정 진행시 변경 되도록 요청해야겠습니다.

 

앞에 작은 LED는 MEMW, MEMR 을 표시하고.

 

 

뒤에 잔뜩 있는 것은 8개의 데이터 핀과 20개의 어드레스 핀이네요.

 

뭐 요렇게 만들어 놓고 시험은 잘 하고 있습니다.

 

일반적으로 만능 기판에 만들어서 좀 지저분해 보이는 것보다는 훨씬 낫네요.