개요 | |
프로세서(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' 분리하여 각각별로 처리 사항을 보면 이해하기 쉽다.
| |||||
|
///337.
'임베디드.일렉트로닉스' 카테고리의 다른 글
NT3H1101/1201. NFC Forum Type2 Tag compliant IC with I2C Interface. (0) | 2015.06.26 |
---|---|
LED Matrix 6x24,12x12 시험보드. (0) | 2015.06.25 |
TI사 CC2650STK SensorTag & DevPack - SimpleLink™ Bluetooth Smart®/Multi-Standard SensorTag (0) | 2015.06.21 |
TI사 BLE SoC CC2640 (0) | 2015.06.21 |
TI사 BLE-Stack SDK. - CC2640, CC2650 개발용. (0) | 2015.06.21 |
댓글