2022년 11월 25일 금요일

RS-422/485 통신 - 자동 주소 할당 방법

RS-422/485 통신에서 각 노드는 고유의 주소로 설정해야 한다. 다른 노드가 동일한 주소로 설정되면 통신이 충돌한다.


노드 주소를 설정하기 위해 보통 딥스위치를 사용하거나 각 노드의 플래시 메모리에 저장한다.


각 노드의 주소를 일일이 설정하기 않고 전체를 자동으로 주소 할당하는 몇 가지 기법이 있다.


1. 랜덤 주소 할당

각 노드에서 랜덤수를 생성하여 주소를 설정한다. 전체 노드를 스캔하면서 중복된 주소가 있는지 확인한다. 중복된 주소의 노드는 다시 랜덤수를 생성하여 주소를 설정한다. 중복된 주소가 없을 때 까지 반복한다.


2. 랜덤 응답 시간

마스터에서 요청 패킷을 보내면 각 노드에서는 랜덤 시간 지연 후 응답을 보낸다. 마스터에서는 가장 먼저 응답하는 노드에 #1을 할당한다. #1을 제외하고 위 과정을 반복하여 #2, #3 등을 할당한다.


2개 이상의 노드의 랜덤 지연 시간이 동일하면 응답 패킷이 깨지고 다시 시도한다.


3. 직렬 연결

각 노드를 멀티 드랍으로 연결하지 않고 다음과 같이 연결한다.



처음에는 마스터에 직접 연결되는 노드만 통신하여 주소를 #1 할당한다. 순서대로 통신하며 주소를 할당한다.


댓글 없음:

댓글 쓰기