이 커뮤니케이션은 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.