ระบบบัส I2C I2C Bus System
ทำความรู้จักกับระบบบัส I2C I2C ย่อมาจาก Inter IC Communication ถูกพัฒนาขึ้นมากว่า 20 ปีโดยบริษัท Philips สามารถควบคุม-ติดต่อ-สั่งงานระหว่าง IC เพียงสายสัญญาณ 2 เส้น สามารถต่ออุปกรณ์ร่วมบนบัสได้หลายตัวและแต่ละตัวไม่จำเป็นต้องมีไฟเลี้ยงวงจรที่เท่ากัน มีสายสัญญาณ 2 เส้น คือ SDA และ SCL เป็น bi-directional line มีความเร็วในการส่งข้อมูล 100K (bits/sec) ที่โหมดปกติ และที่ fast mode 400k (bits/sec) ที่ high speed mode 3.4M (bits/sec)
การเชื่อมต่อโมดูลในระบบสื่อสารแบบ I2C
โครงสร้าง I2C
หลักการทำงานของ I2C ในการใช้งานต้องต่อตัวต้านทานพูลอัปกับไฟ +5v ตลอดเวลาเพื่อป้องกันสัญญาณรบกวน วงจรเอาท์พุตที่ต่ออยู่บนบัสต้องมีลักษณะเป็น open drain หรือ open collector เท่านั้น อุปกรณ์ที่ต่อร่วมอยู่บนบัสต้องมีค่าความจุไฟฟ้ารวมที่เกิดขึ้นระหว่างสาย SDA และ SCL ไม่เกิน 400pf
สภาวะที่เกิดขึ้นบนบัส I2C มีดังนี้ - บัสว่าง SDA และ SCL สถานะเป็น ‘1’ - เริ่มต้นการส่งข้อมูล SDA ‘1’=>’0’ , SCL ‘1’ - ภาวะถ่ายถอดข้อมูล ลอจิกบน SDA คือข้อมูลและต้องคงที่ในขณะที่ SCL มีค่าเป็น ‘1’ - รับรู้ข้อมูล(ack) เป็นสัญญาณที่ SDA โดยอุปกรณ์รับหรือส่งจะผลิต ออกมาหลังจากที่ส่ง data หรือได้รับdata แล้ว จะส่งมา 1 บิต - หยุด(stop) SDA ‘0’=>’1’ , SCL ‘1’
ภาวะเริ่มและหยุด
สภาวะการส่งข้อมูล
ตัวอย่าง Bit sequence ของ CMPS03 write Read SDA SCL
การเข้าถึงอุปกรณ์บนบัส I2C การติดต่อกับอุปกรณ์บนบัส I2C ซึ่งมีหลายตัวนั้นได้มีการกำหนดรูปแบบการติดต่อขึ้นมาเรียกว่า BUS COMMUNICATION โดยการกำหนด Address ให้อุปกรณ์แต่ละตัว แบ่งเป็นการเข้าถึงแบบ 7 บิต และ 10 บิต
การเข้าถึงอุปกรณ์ I2C แบบ 7 บิต และ 10 บิต
การกำหนด Address แบบทั่วไป 7 บิต
ตารางเปรียบเทียบการทำงานของ I2C กับระบบอื่น
ตารางสรุปเปรียบเทียบข้อดีข้อเสียของระบบ Serial Bus
ตัวอย่าง อุปกรณ์ที่ใช้ I2C
CMPS03 เซนเซอร์ทิศทาง
ตัวอย่างการใช้ CMPS03 ติดต่อกับ BrainStem GP 1.0 Circuit Schematic