컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 슬레이브 시스템이 SCL을 로우로 풀 수 있나요?

슬레이브 시스템이 SCL을 로우로 풀 수 있나요?

이 책은 잘못 쓰여졌습니다. 슬레이브의 활성 대기는 SDA 라인을 로우로 끌어서 슬레이브가 아직 유휴 상태가 아님(통신할 수 없음)을 호스트가 알 수 있도록 하는 것입니다.

아, 제가 실수했어요. 이 책은 맞습니다. 슬레이브 머신이 SCL을 로우로 끌어올리는 상황이 있습니다. 슬레이브 머신이 사용 중이어서 품질과 수량에 대한 다음 통신을 완료할 수 없을 때 SCL을 로우로 끌어올릴 수 있습니다. 이를 클록 스트레칭이라고 합니다. 이는 전체 I/C 버스에서 슬레이브가 SCL을 로우로 풀 수 있는 권한을 갖는 유일한 특수 사례입니다.

SCL을 사용한 클록 확장[편집]

I?C 프로토콜의 가장 중요한 기능 중 하나는 클록 확장입니다. 주소가 지정된 슬레이브 장치는 클록 라인(SCL)을 낮게 유지할 수 있습니다. 슬레이브와 통신 중인 마스터는 아직 더 많은 데이터를 처리할 준비가 되지 않았음을 나타내는 바이트를 수신(또는 전송)한 후 현재 비트의 전송을 완료하지 못할 수 있지만 클럭 라인이 실제로 높아질 때까지 기다려야 합니다. 슬레이브가 클럭을 늘리는 경우 클럭 라인은 여전히 ​​낮습니다(연결이 오픈 드레인이기 때문에). 더 느린 두 번째 마스터가 동시에 클럭을 구동하려고 시도하는 경우에도 마찬가지입니다. 하나 이상의 마스터는 일반적으로 중재를 잃게 됩니다.)

마스터는 클럭 라인이 높아지는 것을 관찰할 때까지 기다려야 하며 추가 최소 시간(표준 100kbit/s의 경우 4μs)을 기다려야 합니다. I?C) 클럭을 다시 로우로 당기기 전에.

마스터가 원하는 만큼 SCL 라인을 로우로 유지할 수도 있지만(이는 프로토콜의 최신 개정판 6 – 하위 섹션 3.1에서는 허용되지 않습니다. .1) "클럭 스트레칭"이라는 용어는 일반적으로 슬레이브가 수행하는 경우에만 사용됩니다. 이론적으로는 모든 클럭 펄스가 늘어날 수 있지만 일반적으로 사용되는 승인 비트 전후의 간격입니다. 마이크로컨트롤러인 경우 해당 I?C 인터페이스는 소프트웨어가 다음을 결정할 때까지 각 바이트 이후에 클럭을 늘릴 수 있습니다.

긍정적인 승인이나 NACK를 보내기 위해.

클럭 확장은 슬레이브가 SCL을 구동하는 I/C에서 유일한 시간입니다. 많은 슬레이브는 클록 확장이 필요하지 않으므로 SCL을 아무런 제한 없이 엄격하게 입력으로 취급합니다. 맞춤형 ASIC 내부에 있는 것과 같은 일부 마스터는 클록 확장을 지원하지 않을 수 있으며 종종 이러한 장치는 I?C가 아닌 "2선 인터페이스"로 표시됩니다.

최소 버스 처리량을 위해 SMBus는 클럭 확장 범위에 제한을 둡니다. 이러한 제한을 준수하는 호스트와 슬레이브는 짧은 시간 이상 버스에 대한 액세스를 차단할 수 없습니다. 이는 순수 I?C 시스템에서 보장되지 않습니다.

上篇: 광모듈이란 무엇인가요? 下篇: Yangshengtong 소프트웨어에는 요금이 부과되나요?
관련 내용