출처 : http://slgi97.egloos.com/10874166


Open-collector(오픈콜렉터)/open-drain(오픈드레인)은 여러개의 장치(Device)를 하나의 연결선으로 양방향(bi-directionally) 통신할 수 있도록 하는 Circuit 테크닉 입니다.


아래의 그림과 같이 Collector 핀이 아무것과 연결되어 있지 않기 때문에 Open Collector 라고 부르며

BJT의 경우 Open-Collector ,MOSFET의 경우  Open-Drain 이라고 부릅니다. 

개념적으로 BJT와 MOSFET는 같습니다.

Input으로 High 신호가 들어오면 Transistor는 ON 이 되면서 Output은 Gnd와 연결되기 때문에 Output은 Low 가 출력됩니다. 

Input으로 Low 신호가 들어오면 Transistor는 OFF 가 되면서 Output은 Hi-Impedence 상태가 됩니다.

Hi-Impedence란 저항이 높다는 뜻이며 Low나 High 값을 가지지 않는 회로가 끊어진 상태를 의미합니다.

따라서 일반적으로 Output에 Pull-up 저항을 달게 되는데  이 저항은 Output을 High로 당기는 역할을 해서

Transistor가 OFF시 High를 유지 하게 만들어 줍니다.

만약 Output에 달려 있는 장치들중에 하나라도 Low로 잡아 당기면 Output은 Low 가 됩니다.

선(wire)만을 연결해서 OR상태가 되기 때문에 wired-OR 라고 부릅니다. 


Open-Collector의 경우 입력이 Low 일때 Pull-Up 저항때문에 High 가 되며 Transistor에 의해 연결이 끊어진 상태가 됩니다.

따라서 여러개의 Device가 연결되어도 신호의 충돌이 생기지 않습니다.

Open-Collector를 사용하지 않을경우 여러개의 Device에서 Low또는 High 신호를 보내주면 단락(short ,합선)이 발생할 수도 있습니다.


Open Collector의 특징은 

1. 여러개의 Device를 연결하여 양방향(Bi-directionally)으로 Data를 전송가능 합니다.(wired-OR)

2. Level이 다른 Device에 Data 전송이 가능합니다. (예로 3v를 사용하는  Master 가 5v를 사용하는 Slave와 통신이 가능합니다.)


I2C도 이와 같은 개념을 이용하여 만들어 졌습니다. 

I2C에서 제일 처음 하는 동작이 SDA로 Slave Address를 전송합니다. 전송후 ACK를 기다립니다. 

이때 여러개의 Device 중에 Slave Address에 해당하는 Device가 SDA Line을 Low로 만들면  Master는 해당 Device가 존재한다고 판단하게 됩니다.

 






+ Recent posts