이 커뮤니케이션은 I²C입니까?


9

두 장치 간의 통신을 디코딩해야하지만 이러한 장치에 대한 정보가 없습니다. 내가 아는 것은 4 개의 전선 (GND, VCC 및 2 개의 통신 전선)이 필요하다는 것입니다. I²C 통신 인 것 같습니다.

오실로스코프 디코딩 도구로 해독하려고하는데 확실하지 않습니다. 파형을 시각적으로 확인할 때 I²C 통신 요소를 올바르게 식별 할 수 없습니다.

파형을 살펴보면 다음과 같은 가정을했으며 누군가 도울 수 있습니다. 이것들은 나의 가정이었습니다.

  1. 모든 것은 시계가 파란색 신호이고 데이터가 빨간색 신호라고 믿습니다.
  2. 유휴 상태가 높지 않아서 시계가 반전 된 것 같습니다.
  3. 데이터 신호가 반전되는지 확실하지 않지만 그럴 것 같습니다.

내 가정이 맞습니까?

마지막 그림에서 숫자 5의 숫자는 원으로 표시되며 신호의 일부가 있습니다. 시작, ack 및 중지 비트를 식별 할 수 없습니다. 누구나 그림을 보면서 이러한 요소를 식별 할 수 있습니까?

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

[편집] 일부 사람들은 통신중인 장치에 대해 물었습니다. 의사 소통은 내가 말할 수없는 자동차 키와 도구 사이에 있지만 리버스 엔지니어링을 시도하고 있습니다.


1
가장 왼쪽의 빨간색 (SDA) 가장자리에 시작 조건이 있습니다. 역 청색 (–SCL)이 낮게 유지되면 낮아집니다. 그 후, 빨강 (SDA)으로의 변경은 역 청색 (–SCL)이 높을 때만 발생하는 것으로 보입니다. 유효한 I²C 대화입니다.
Janka

2
@Janka, SCL이 반전되었다고 가정하면 유효한 I2C 대화입니다. 그렇게 생각할 이유가 없습니다.
Annie

2
@Janka, OP는 그 가정을 가정했습니다. 이 가정은 이것이 I2C라는 가정에 기초합니다. 이것이 I2C가 아니라고 생각하는 데에는 몇 가지 이유가 있습니다. 그 중 하나는 클럭이 유휴 상태라는 것입니다.
Annie

5
@Daniel, 두 장치가 무엇인지 말씀해 주시겠습니까?
Annie

2
아마도 "무엇인지"에 대해 걱정하는 대신 "무언가에 대해"생각해야합니다. 샘플링해야 할 가장자리를 파악하십시오. 아마도 스트리밍 USB 종류의 로직 분석기를 얻고 가변 범위를 포착하는 디코더를 작성하십시오. 그런 다음 데이터에서 패턴 찾기를 시작하십시오.
Chris Stratton

답변:


6

내 생각에 그것은 회사의 자체 개발 한 "I2C-like"프로토콜 일 것입니다. I2C를 사용하는 것이 필립스에 돈을 주어야했던 시절에 일부 사람들이있었습니다.

ACK가있는 것으로 보입니다 (클록 스트레치 이전의 데이터 라인의 짧은 펄스는 데이터 라인이 마스터에서 슬레이브로 전달되는 것과 매우 유사합니다).

이상하게도 한 번에 7 비트를 전송하는 것으로 보입니다.


1
독점 프로토콜 인 경우 7 비트 이하의 통신도 사용할 수 있습니다
Maple

6
@ 메이플 그래. 엔지니어는 "I2C와 비슷하게 만들지 만 로열티를 지불 할 필요가 없을만큼 충분히 다른 방법은 무엇입니까? 시계를 뒤집어 한 번에 7 비트를 보내십시오"라고 말하는 엔지니어를 상상할 수 있습니다. 그러나 나는 단지 추측 할 수있다.
Annie

11

바이트 당 8 개의 클럭 만 있고 (I2C는 ACK / NAK 비트에 대해 9 번째 클럭이 필요함) 클럭 유휴 상태가 낮은 것 같습니다. 이것이 SPI (또는 SPI와 유사한) 인터페이스 일 가능성이 더 높습니다.

그러나 각 바이트의 첫 번째 비트에 대한 추가 클럭 너비는 확실하지 않습니다.


1
다른 한편으로, 클록 시퀀스의 끝에서의 좁은 펄스는 NACK과 매우 유사하다. 또한 유휴 낮음으로 보이는 것은 클록 스트레칭 일 수 있으며, 이는 스펙에서 더 이상 허용되지 않지만 오래된 슬레이브가 사용할 수 있습니다. 그림 (1)과 (2)의 초기 상태는 실제로 높습니다
Maple

1
@Maple : 좁은 데이터 펄스가 표시되지만 여전히 9 번째 클럭 펄스가 표시되지 않습니다. 데이터 패턴은 클럭 위상 및 클럭 극성의 특정 SPI 구성과 완벽하게 일치합니다.
Dave Tweed

1
사실, 나는 당신이 다시 시계에 동의합니다. 나에게 이상한 것은 (1)의 끝에서 일관되지 않은 SDI / SDO (무엇이든) 유휴 동작입니다.
Maple

1
@Maple I2C가 회선을 유휴 상태로 해제하지 않습니까?
Selvek

1
@Selvek 네, 그리고 그것은 제가 그림 (1)과 그림의 시작 (2)에서 정확히 보는 것입니다. 그러나 Dave가 지적했듯이 나머지는 SPI와 더 일관성이 있습니다. 글쎄, 시작 ​​비트처럼 보이는 놀라운 첫 번째 시계를 제외하고. 흠 ... 비트를 시작합니다 ...이 될 수 ...
메이플

3

모자에 반지를 던지겠습니다.

이러한 장치가 오래된 장치 인 경우 "최소한"7 비트 동기식 RS-232 변형을 볼 수 있습니다.

  • 각 프레임의 시작에서 더 긴 펄스는 시작 비트가 될 수 있으며

  • 맨 처음에 클럭 신호의 고원은 음의 "마크"로 가기 전에 0으로 돌아갈 수 있습니다. (스크린 샷에 전압을 제공하지 않았으므로 여기에서 추측하고 있습니다).


1
우, 이건 나 한테 처음이야 ack가 있습니까? (내 간단한 Google 검색에서 찾을 수 없습니다). 그렇지 않다면, 8 번째 clk 이후 데이터 라인의 짧은 펄스를 설명하는 다른 것이 있습니까?
Annie

1
내가 아는 한에서는 아니다. 어쨌든 이것이 실제로 구식 직렬 인 경우 다른 방향의 통신에는 별도의 전선이 필요합니다. 맥박이 너무 짧아서 의미있는 것이 아닙니다. 다음 프레임 전에 드라이버가 자동으로 재설정됩니다. 당신이 말했듯 이이 모든 것이 추측입니다. OP가 장치에 대한 자세한 정보를 제공하지 않는 한 이것이 우리가 할 수있는 전부입니다.
메이플

@ Maple, 통신은 자동차 키와 도구 사이에서 말할 수는 없지만 리버스 엔지니어링을 시도하고 있습니다.
Daniel

RS232는 데이터 레벨을 인코딩하는 것이 아니라 전기적 레벨의 표준입니다.
Chris Stratton

@ChrisStratton 내 답변에서 인코딩과 관련하여 어디에서 찾았습니까? 내가 말하고 모든 전압 레벨은 RS232에 해당하고 신호가 다음 동기식 시리얼을 닮은 경우가 대부분 I2C되지 않는 것입니다
메이플

-1

I2C에 대한 나의 경험에 따르면, 멀티 미터 장치를 사용하여 주파수를 측정하도록 장치를 설정하여 클럭을 확인할 수 있습니다 (헤르츠 단위) .2k와 같은 안정적인 값을 읽으면 I2C 클럭입니다.


3
아닙니다, 그것은 전혀 유효한 결론이 아닙니다. I2C가 아닌 많은 것들에는 꾸준한 시계가 있습니다. 실제로, I2C 꾸준한 시계가 아니라 오히려 바쁜 시계를 가지고 있습니다. 미터기가 일정 기간 동안 카운트하는 경우 실제로 유휴 인터 루드를 사용하여 능동적 인 클럭킹을 평균화합니다. 펄스 폭의 역수를 측정해야합니다. 실제로 의도 한 것을 측정합니다. 반대로, I2S와 같은 다른 체계는 지속적으로 작동하는 클록을 갖는 경향이 있습니다. 그러나 클럭 주파수는 무언가를 배제 할 수 있습니다.
Chris Stratton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.