본문 바로가기
Knowledge/Protocol

I2C? (2)

by VIR&US 2023. 6. 21.
반응형

2023.06.21 - [Knowledge] - I2C? (2)

 

I2C? (2)

2023.06.21 - [Protocol] - I2C? (1) I2C? (1) I2C is "Inter-Integrated Circuit" Interface SCL : Serial Clock (Output from master) SDA : Serial DATA (Data In & Out port) I2C 프로토콜은 하나의 데이터 라인 (SDA)과 하나의 클럭 라인 (SCL)을

vir-us.tistory.com

Start & Stop

데이터 교환 전, I2C 모듈 사이의 SCL/SDA 라인은 모두 1 = High 상태를 유지합니다.

이후, 통신이 시작되면 데이터 라인은 클럭 라인보다 먼저 0 = Low 신호로 변하게 됩니다 (falling-edge).

반대로 통신이 종료되는 시점에는 SCL -> SDA 순서로 각각의 신호가 0 에서 1  (rising-edge) 돌아오게 됩니다.

다음의 그림에서 볼 수 있듯이, Start/Stop 시점을 제외한, 실제 데이터의 교환은 모두 SCL = 1 을 유지하는 순간에 수행되는 것을 볼 수 있습니다 (MSB -> LSB).

Acknowledge (ACK)

Each byte of data (including the address byte) is followed by one ACK bit from the receiver. The ACK bit allows the receiver to communicate to the transmitter that the byte was successfully received and another byte may be sent.

Before the receiver can send an ACK, the transmitter must release the SDA line.

 

데이터의 각 바이트(주소 바이트 포함) 뒤에는 수신기의 ACK 비트 하나가 옵니다. ACK 비트를 통해 수신기는 바이트가 성공적으로 수신되었으며 다른 바이트가 전송될 수 있음을 송신기와 통신할 수 있습니다. 수신기가 ACK를 보내기 전에 송신기는 SDA 라인을 해제해야 합니다.

Not Acknowledge (NACK)

  • 수신측에서 뭔가 다른 작업을 하고있거나 통신을 시작할 준비가 안되었을 때
  • 전송 중 수신측에서 이해하지 못하는 데이터나 명령을 받을 때
  • 전송 중 수신측에서 더 이상 데이터 바이트를 수신할 수 없을 때
  • READ 동작시 Master가 수신측으로 작동하면서 예상한 만큼 데이터를 읽었을 때 더 이상 안 보내도 된다고 Slave에 알릴때

 

2023.06.21 - [Knowledge] - I2C? (3)

 

I2C? (3)

2023.06.21 - [Protocol] - I2C? (1) I2C? (1) I2C is "Inter-Integrated Circuit" Interface SCL : Serial Clock (Output from master) SDA : Serial DATA (Data In & Out port) I2C 프로토콜은 하나의 데이터 라인 (SDA)과 하나의 클럭 라인 (SCL)을

vir-us.tistory.com

 

728x90
반응형

'Knowledge > Protocol' 카테고리의 다른 글

[Ethernet] Auto-Negotiation이란?  (0) 2023.07.04
[AXI] Low Power Interface (ENG)  (0) 2023.06.30
I2C? (3)  (0) 2023.06.21
I2C? (1)  (0) 2023.06.21
[Ethernet] Packet formet  (0) 2023.06.21