พัฒนาโดยฟิลิปส์ในปี 1980 I2C (สะกดอีกแบบคือ I2C) ได้กลายเป็นหนึ่งในโปรโตคอลการสื่อสารแบบอนุกรมที่ใช้บ่อยที่สุดในอุปกรณ์อิเล็กทรอนิกส์ I2C อำนวยความสะดวกในการสื่อสารระหว่างส่วนประกอบอิเล็กทรอนิกส์หรือวงจรรวม ไม่ว่าส่วนประกอบจะอยู่บน PCB เดียวกันหรือเชื่อมต่อด้วยสายเคเบิล
โปรโตคอล I2C คืออะไร
I2C เป็นโปรโตคอลการสื่อสารแบบอนุกรมที่ต้องใช้สายสัญญาณเพียงสองเส้นเท่านั้น มันถูกออกแบบมาสำหรับการสื่อสารระหว่างชิปบนแผงวงจรพิมพ์ (PCB) I2C เดิมออกแบบมาสำหรับการสื่อสาร 100 Kbps อย่างไรก็ตาม โหมดการรับส่งข้อมูลที่เร็วขึ้นได้รับการพัฒนาในช่วงหลายปีที่ผ่านมาเพื่อให้ได้ความเร็วสูงสุดถึง 34 Mbit.
คุณสมบัติหลักของ I2C คือความสามารถในการมีส่วนประกอบหลายอย่างบนบัสสื่อสารเดียวด้วยสายไฟเพียงสองเส้น ซึ่งทำให้ I2C สมบูรณ์แบบสำหรับการใช้งานที่เรียบง่าย โปรโตคอล I2C ได้รับการกำหนดเป็นมาตรฐานอย่างเป็นทางการ ซึ่งช่วยให้สามารถใช้งาน I2C ย้อนหลังได้
สัญญาณ I2C
โปรโตคอล I2C ใช้สายสัญญาณสองทิศทางเพื่อสื่อสารกับอุปกรณ์บนบัสสื่อสาร สองสัญญาณที่ใช้คือ:
- สายข้อมูลอนุกรม (SDL)
- นาฬิกาข้อมูลอนุกรม (SDC)
เหตุผลที่ I2C สามารถใช้สัญญาณเพียงสองสัญญาณในการสื่อสารกับอุปกรณ์ต่อพ่วงต่างๆ ได้ก็อยู่ที่วิธีการจัดการการสื่อสารระหว่างรถบัส การสื่อสาร I2C แต่ละรายการเริ่มต้นด้วยที่อยู่ 7 บิต (หรือ 10 บิต) ที่เรียกที่อยู่ของอุปกรณ์ต่อพ่วง
สิ่งนี้ทำให้อุปกรณ์หลายเครื่องบนบัส I2C เล่นบทบาทของอุปกรณ์หลักได้ตามความต้องการของระบบเพื่อป้องกันการชนกันของการสื่อสาร โปรโตคอล I2C รวมถึงความสามารถในการอนุญาโตตุลาการและการตรวจจับการชนกัน ซึ่งช่วยให้การสื่อสารเป็นไปอย่างราบรื่นตลอดเส้นทาง
ประโยชน์ของ I2C
เป็นโปรโตคอลการสื่อสาร I2C มีข้อดีดังต่อไปนี้:
- อัตราการส่งข้อมูลที่ยืดหยุ่น
- สื่อสารทางไกลกว่า SPI
- แต่ละอุปกรณ์บนรถบัสสามารถระบุที่อยู่ได้โดยอิสระ
- อุปกรณ์มีความสัมพันธ์หลัก/รองอย่างง่าย
- ต้องใช้เพียงสองสายสัญญาณ
- มันสามารถจัดการการสื่อสารหลักหลายตัวโดยให้อนุญาโตตุลาการและการตรวจจับการชนกันของการสื่อสาร
ข้อจำกัดของ I2C
ด้วยข้อดีทั้งหมดเหล่านี้ I2C ยังมีข้อจำกัดบางประการที่อาจจำเป็นต้องได้รับการออกแบบ ข้อจำกัดที่สำคัญที่สุดของ I2C ได้แก่:
- เนื่องจากการระบุที่อยู่อุปกรณ์มีเพียง 7 บิต (หรือ 10 บิต) เท่านั้น อุปกรณ์บนรถบัสเดียวกันจึงสามารถใช้ที่อยู่เดียวกันได้ อุปกรณ์บางอย่างสามารถกำหนดค่าที่อยู่สองสามบิตสุดท้ายได้ แต่สิ่งนี้กำหนดข้อจำกัดของอุปกรณ์บนบัสเดียวกัน
- ความเร็วในการสื่อสารมีจำกัด และอุปกรณ์จำนวนมากไม่รองรับการส่งสัญญาณด้วยความเร็วสูง จำเป็นต้องรองรับความเร็วแต่ละระดับบนบัสบางส่วนเพื่อป้องกันไม่ให้อุปกรณ์ที่ช้ากว่าจับการส่งสัญญาณบางส่วนที่อาจส่งผลให้เกิดความผิดพลาดในการทำงาน
- ลักษณะร่วมของรถบัส I2C อาจส่งผลให้รถบัสทั้งคันหยุดทำงานเมื่อมีอุปกรณ์เดียวบนรถบัสหยุดทำงาน การนำไฟฟ้าไปขึ้นรถบัสสามารถฟื้นฟูการทำงานที่เหมาะสมได้
- เนื่องจากอุปกรณ์กำหนดความเร็วในการสื่อสารของตนเอง อุปกรณ์ที่ทำงานช้ากว่าอาจทำให้การทำงานของอุปกรณ์ที่เร็วกว่านั้นล่าช้าได้
- I2C ดึงพลังมากกว่าบัสการสื่อสารแบบอนุกรมอื่น ๆ เนื่องจากโทโพโลยีแบบเปิดโล่งของสายการสื่อสาร
- ข้อจำกัดของบัส I2C โดยทั่วไปจะจำกัดจำนวนอุปกรณ์บนรถบัสไว้ที่ประมาณสิบเครื่อง
แอปพลิเคชั่น I2C
I2C เป็นตัวเลือกที่ยอดเยี่ยมสำหรับแอปพลิเคชันที่ต้องการต้นทุนต่ำและการใช้งานที่ง่าย แทนที่จะเป็นความเร็วสูง ตัวอย่างเช่น การใช้งานทั่วไปของโปรโตคอลการสื่อสาร I2C ได้แก่:
- กำลังอ่านไอซีหน่วยความจำบางตัว
- การเข้าถึง DAC และ ADC
- การส่งและควบคุมการดำเนินการที่ผู้ใช้กำหนด
- อ่านเซ็นเซอร์ฮาร์ดแวร์
- สื่อสารกับไมโครคอนโทรลเลอร์หลายตัว