การสื่อสารนี้เป็นI²Cหรือไม่


9

ฉันต้องการถอดรหัสการสื่อสารระหว่างอุปกรณ์สองเครื่อง แต่ฉันไม่มีข้อมูลเกี่ยวกับอุปกรณ์เหล่านี้ ทั้งหมดที่ฉันรู้คือจำเป็นต้องใช้สายสี่เส้น (GND, VCC และการสื่อสารสองสาย) ฉันสงสัยว่ามันคือI²Cการสื่อสาร

ฉันพยายามที่จะถอดรหัสด้วยเครื่องมือถอดรหัสออสซิลโลสโคป แต่ฉันก็ไม่แน่ใจ ฉันไม่สามารถระบุองค์ประกอบของการสื่อสารI²Cได้อย่างเหมาะสมเมื่อฉันตรวจสอบรูปคลื่น

เมื่อดูที่รูปคลื่นฉันได้ตั้งสมมติฐานดังต่อไปนี้และอาจมีคนช่วยได้ นี่คือสมมติฐานของฉัน:

  1. ทุกอย่างทำให้เชื่อว่านาฬิกาเป็นสัญญาณสีน้ำเงินและข้อมูลเป็นสัญญาณสีแดง
  2. ดูเหมือนว่านาฬิกาจะกลับด้านเนื่องจากสถานะไม่ได้ใช้งานอยู่ในระดับสูง
  3. ฉันไม่แน่ใจว่าสัญญาณข้อมูลกลับด้านด้วยหรือไม่ แต่ดูเหมือนว่าจะเป็นเช่นนั้น

สมมติฐานของฉันถูกต้องหรือไม่

ในรูปสุดท้ายตัวเลขที่มีหมายเลข 5 ระบุไว้ในวงกลมและมีส่วนหนึ่งของสัญญาณ ฉันไม่สามารถระบุบิตเริ่มต้น ack และ stop ใครสามารถระบุองค์ประกอบเหล่านี้เพียงแค่ดูที่รูป?

ป้อนคำอธิบายภาพที่นี่ ป้อนคำอธิบายภาพที่นี่

[แก้ไข] บางคนถามฉันเกี่ยวกับอุปกรณ์ที่อยู่ในการสื่อสาร การสื่อสารอยู่ระหว่างกุญแจรถและเครื่องมือที่ฉันไม่ได้รับอนุญาตให้พูด แต่ฉันพยายามทำวิศวกรรมย้อนกลับบนมัน


1
คุณมีเงื่อนไขเริ่มต้นที่ขอบสีแดงซ้ายสุด (SDA) มันจะต่ำในขณะที่สีน้ำเงินคว่ำ (–SCL) จะต่ำ หลังจากนั้นการเปลี่ยนเป็นสีแดง (SDA) ดูเหมือนจะเกิดขึ้นเฉพาะเมื่อสีน้ำเงินคว่ำ (–SCL) สูง นั่นคือการพูดคุยI²Cที่ถูกต้อง
Janka

2
@Janka นั่นเป็นเพียงการพูดคุย I2C ที่ถูกต้องหากคุณคิดว่า SCL กลับด้าน ไม่มีเหตุผลที่จะคิดได้
แอนนี่

2
@Janka กลุ่ม OP ระบุว่าเป็นข้อสมมติฐาน สมมติฐานนั้นขึ้นอยู่กับสมมติฐานว่านี่คือ I2C มีหลายสาเหตุที่ทำให้เชื่อว่านี่ไม่ใช่ I2C - หนึ่งในนั้นคือนาฬิกาไม่มีการใช้งานต่ำ
Annie

5
@Daniel คุณจะบอกเราได้ไหมว่าอุปกรณ์ทั้งสองนั้นคืออะไร
Annie

2
บางทีแทนที่จะกังวลว่า "มันคืออะไร" คุณควรคิดถึง "สิ่งที่มันพูด" กำหนดว่าต้องการขอบตัวอย่างใด รับตัววิเคราะห์เชิงตรรกะซึ่งอาจเป็นสตรีมมิ่ง USB และเริ่มเขียนตัวถอดรหัสซึ่งจับขอบเขตความแปรปรวนได้ จากนั้นเริ่มค้นหารูปแบบในข้อมูล
Chris Stratton

คำตอบ:


6

ฉันเดาว่ามันเป็นโพรโทคอล "เหมือน I2C" ของ บริษัท เอง มีบางส่วนของวันนั้นเมื่อใช้ I2C หมายถึงต้องให้เงินกับฟิลิปส์

ดูเหมือนว่าจะมี ACK (พัลส์สั้น ๆ ในสายข้อมูลก่อนที่จะยืดนาฬิกาดูเหมือนมากเช่นสายข้อมูลที่ส่งผ่านจากต้นแบบไปยังทาส)

มันดูผิดปกติในการส่งครั้งละ 7 บิต


1
ถ้ามันเป็นรุ่นที่เป็นกรรมสิทธิ์ของโปรโตคอลมันอาจจะใช้ 7 หรือการสื่อสารน้อยน้อยกว่าเช่นเดียวกับดี
เมเปิ้ล

6
@Maple ใช่ ฉันสามารถนึกภาพวิศวกรคนหนึ่งพูดว่า "เราจะสร้างสิ่งนี้ได้อย่างไรเช่น I2C แต่ต่างกันมากพอที่เราไม่ต้องจ่ายค่าลิขสิทธิ์กลับหัวนาฬิกาและส่ง 7 บิตในแต่ละครั้ง" แต่ฉันเดาได้เท่านั้น
Annie

11

ระบุว่ามีเพียง 8 นาฬิกาต่อไบต์ (I2C ต้องใช้นาฬิกาที่ 9 สำหรับบิต ACK / NAK) และสถานะว่างของนาฬิกาดูเหมือนจะต่ำฉันจะบอกว่านี่น่าจะเป็นอินเตอร์เฟซ SPI (หรือคล้าย SPI)

ไม่แน่ใจเกี่ยวกับความกว้างของนาฬิกาพิเศษในบิตแรกของแต่ละไบต์


1
ในทางกลับกันชีพจรที่แคบที่ลำดับสุดท้ายของนาฬิกาจะดูเหมือน NACK มาก นอกจากนี้สิ่งที่ดูเหมือนว่าว่างเบา ๆ สามารถยืดนาฬิกาได้ซึ่งไม่ได้รับอนุญาตจากสเป็คอีกต่อไป แต่สามารถใช้โดยทาสเก่า สถานะเริ่มต้นของรูปภาพ (1) และ (2) นั้นสูงมาก
Maple

1
@Maple: ฉันเห็นพัลส์ข้อมูลแคบ ๆ ของคุณ แต่ฉันก็ยังไม่เห็นพัลส์นาฬิกาที่ 9 รูปแบบข้อมูลสอดคล้องอย่างสมบูรณ์กับการกำหนดค่า SPI บางอย่างของเฟสนาฬิกาและขั้วนาฬิกา
Dave Tweed

1
นั่นคือความจริงฉันเห็นด้วยกับคุณอีกครั้งนาฬิกา สิ่งที่แปลกสำหรับฉันคือ SDI / SDO ที่ไม่สอดคล้องกัน (ไม่ว่าจะเป็นอะไร) พฤติกรรมที่ไม่ได้ใช้งานในตอนท้ายของ (1)
Maple

1
@Maple I2C จะไม่ปล่อยไลน์ให้ว่างเปล่าหรือเปล่า?
Selvek

1
@Selfk ใช่และนั่นคือสิ่งที่ฉันเห็นในภาพ (1) และจุดเริ่มต้นของรูปภาพ (2) อย่างไรก็ตามที่เหลือก็สอดคล้องกับ SPI มากขึ้นเมื่อเดฟชี้ให้เห็น นอกเหนือจากนาฬิกาแรกที่น่าประหลาดใจที่ดูเหมือนบิตเริ่มต้น อืม ... เริ่มหน่อย ... นี่น่าจะเป็น ...
เมเปิ้ล

3

ฉันจะโยนหมวกของฉันในแหวน ...

หากเป็นอุปกรณ์เก่าคุณสามารถดูตัวแปร RS-232 แบบซิงโครนัส 7 บิตแบบเปลือยเปล่า

  • ชีพจรที่ยาวขึ้นในการเริ่มต้นของแต่ละเฟรมอาจเป็นบิตเริ่มต้นและ

  • ที่ราบสูงในสัญญาณนาฬิกาที่จุดเริ่มต้นมากสามารถกลับไปที่ 0 ก่อนที่จะไปที่ "เครื่องหมาย" เชิงลบ (คุณไม่ได้ให้แรงดันไฟฟ้ากับภาพหน้าจอดังนั้นฉันจึงคาดเดาได้ที่นี่)


1
Oooh นี่ใหม่สำหรับฉัน มันมี ack หรือไม่? (หาไม่เจอในการค้นหาโดยย่อของ Google) ถ้าไม่มีอะไรอีกที่จะอธิบายพัลส์สั้น ๆ บนดาต้าไลน์หลังจากวันที่ 8 clk?
แอนนี่

1
ไม่ใช่ที่ฉันรู้ และในกรณีใด ๆ หากเป็นอนุกรมที่ล้าสมัยการสื่อสารในทิศทางอื่นจะต้องใช้สายแยก ชีพจรนั้นสั้นเกินไปที่จะมีความหมายอะไร เป็นไปได้มากว่าคนขับจะรีเซ็ตตัวเองก่อนเฟรมถัดไป ทั้งหมดนี้เป็นการคาดเดาอย่างที่คุณพูดเอง เว้นแต่ OP จะให้รายละเอียดเพิ่มเติมเกี่ยวกับอุปกรณ์ทั้งหมดที่เราทำได้
Maple

@Maple การสื่อสารอยู่ระหว่างกุญแจรถและเครื่องมือที่ฉันไม่ได้รับอนุญาตให้พูด แต่ฉันพยายามทำวิศวกรรมย้อนกลับบนมัน
Daniel

RS232 เป็นมาตรฐานสำหรับระดับไฟฟ้าไม่ใช่สำหรับการเข้ารหัสคำข้อมูล
Chris Stratton

@ChrisStratton คุณพบสิ่งใดเกี่ยวกับการเข้ารหัสในคำตอบของฉัน ทั้งหมดที่ฉันพูดคือถ้าระดับแรงดันไฟฟ้าตรงกับ RS232 และสัญญาณคล้ายกับอนุกรมแบบซิงโครนัสก็น่าจะไม่ใช่ I2C
Maple

-1

ตามประสบการณ์ของฉันกับ I2C ฉันสามารถใช้อุปกรณ์หลายเมตรเพื่อตรวจสอบนาฬิกาโดยการตั้งค่าอุปกรณ์ให้วัดความถี่ (เป็นเฮิรตซ์) ดังนั้นถ้ามันอ่านค่าคงที่เช่น 2k มันคือนาฬิกา I2C


3
ไม่นั่นไม่ใช่ข้อสรุปที่ถูกต้องเลย หลายสิ่งที่ไม่ใช่ I2C มีนาฬิกานิ่ง ในความเป็นจริง I2C ไม่มีนาฬิกานิ่ง แต่ค่อนข้างระเบิด หากเครื่องวัดของคุณนับตามช่วงเวลาจริง ๆ แล้วมันจะเป็นค่าเฉลี่ยการตอกบัตรด้วยการหยุดพักชั่วคราว - คุณต้องวัดส่วนกลับของความกว้างของพัลส์ตามขอบเขตที่คุณมั่นใจได้ว่าคุณเป็น จริง ๆ แล้ววัดสิ่งที่ตั้งใจไว้ ในทางตรงกันข้ามชุดรูปแบบอื่น ๆ เช่น I2S มักจะมีนาฬิกาทำงานอย่างต่อเนื่อง แต่ความถี่สัญญาณนาฬิกาสามารถออกกฎบางอย่างไม่ได้
Chris Stratton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.