본문 바로가기
임베디드.일렉트로닉스

MCU간 오픈드레인 1핀 요청 응답 프로토콜.

by i.got.it 2015. 6. 22.

 

 

개요

 

프로세서(MCU)들 간 통신하는 경우 각 MCU 핀들을 결선하여 요청, 응답계를 구축해야하는 경우가 흔히 있다. 통상 GPIO 2핀 할당하여 아래 그림과 같은 구성으로 하면 간단하게 달성되나,

 

 

이를 아래 그림처럼 1개의 핀만으로 요청 응답처리 하도록 구성하는 방법과 간단 프로토콜 정리한다.

 

 

 

프로토콜 골격. 

단계1. M 이 주도적으로 임의시점 M'에 요청한다.

단계2. M' 은 M의 요청에 대응한 응답처리(이후 단계3을 M' 이 수행할 수 있음을 알리는 것임)한다.

단계3. M'의 응답을 받은 M이 주도적으로 M'과의 추가의 처리(I2C 통신등) 한다.

 

 

 

 

 

 

1핀 요청/응답 프로토콜 구현.

 

 

핀 H/W 처리.

1. M과 M' 의 핀은 양쪽 모두 Open Drain 으로 하고, 풀업저항 연결한다.

- 정확하게는 OpenDrain- Drive Low 임(아래 그림)

2. M과 M' 의 각 핀의 디폴트 출력상태는 High 로 한다.

 

각 MCU에서의 핀처리.

1. M 이 M'에 요청하고자 하는 시점에 H(default) ->L -> H 로 출력한다. - 아래그림의 M출력. M은 B 시점 이후 하기 4의 처리진행.

2. M' 은 자신이 생성하지 않은 버스 상태 H->L A 시점을 M의 요청으로 인지 되게 한다.

- M' 내부적으로 이 신호를 인지하는 방법은 인트럽트/wakeup소스/폴링등 임의로 구현한다.

3. 상기 2에서 M의 요청에 해당하는 처리를 M'이 수행한 경우 M' 핀의 출력을 H(default) -> L 로 출력한다. 아래 그림의 M' 출력의 A'시점.

4. M은 버스의 Low 상태(M자신이 생성하지 않은) 를 M' 의 응답으로 인지 되게 한다. - 아래 그림의 A' 시점이후.

- M'의 응답식별용으로 버스의 A' 시점의 하강에지를 이용하면 안됨. 사유 : M'의 출력 A' 이 M의 B 전에 출력될 수도 있으며 이런 경우 버스상의 A' 시점의 하강에지는 나타나지 않게되므로 하강에지는 정보로써 가치 없음.

5. 상기4에서 M'의 응답을 받은 시점부터 M은 M'과의 추가의 처리(통신등)를 수행한다. 이 동안 M'출력은 Low 상태를 유지한다.

6. 상기5의 추가의 처리가 완료된 시점에 M'이 출력을 High 로 한다.

 

 

 

앞의 단계별 처리를 M과 M' 분리하여 각각별로 처리 사항을 보면 이해하기 쉽다.

 

M의 처리 

 M' 의 처리

 1. 핀출력 H(default) ->L -> H

 4. 핀 상태가 L 되었다면, (오른쪽 3번 인지) 하기 5 진행.

- 핀상태L : M'이 하기 5를 수행할 준비되었다는 의미.

 5. M'과의 추가의 처리(I2C 통신등)를 수행한다.

- M은 처리 개시역할 가능해야함. 예:I2C Master, SPI Mster등.

 2. 핀의 H->L 검출되면,

 3. 왼쪽 5의 처리를 수행가능한 상태 달성후 핀 출력 L

 6. 왼쪽5의 처리사항이 완료되면 핀 출력 H.

 

 

 

 

 

 

 

///337.

댓글



 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5