I2C Info – I2C Bus, Interface and Protocol

 นายจักรี  ขอร่ม เลขที่ 2 กลุ่ม 1ปวส 1/1

17 ก.พ. 64

I2C Info – I2C Bus, Interface and Protocol

I2C ย่อมาจาก Inter Integrate Circuit (IIC) แต่นิยมเรียกว่า I2C มากกว่า

I2C เป็นโปรโตคอลแบบอนุกรมสำหรับอินเทอร์เฟซสองสายเพื่อเชื่อมต่ออุปกรณ์ความเร็วต่ำเช่นไมโครคอนโทรลเลอร์ EEPROM ตัวแปลง A / D และ D / A อินเทอร์เฟซ I / O และอุปกรณ์ต่อพ่วงอื่น ๆ ที่คล้ายกันในระบบฝังตัว ถูกคิดค้นโดย Philips และตอนนี้ผู้ผลิต IC รายใหญ่เกือบทั้งหมดใช้กันแล้ว อุปกรณ์ทาส I2C แต่ละเครื่องจำเป็นต้องมีที่อยู่ซึ่งยังต้องได้รับจาก NXP (เดิมชื่อเซมิคอนดักเตอร์ของ Philips) 

i2c busบัส I2C ได้รับความนิยมเนื่องจากใช้งานง่ายสามารถมีได้มากกว่าหนึ่งต้นแบบมีการกำหนดเฉพาะความเร็วบัสบนและต้องใช้สายไฟสองเส้นที่มีตัวต้านทานแบบดึงขึ้นเพื่อเชื่อมต่ออุปกรณ์ I2C ได้ไม่ จำกัด จำนวน I2C สามารถใช้ไมโครคอนโEach slave device has a unique address. Transfer from and to master device is serial and it is split into 8-bit packets. All these simple requirements make it very simple to implement I2C interface even with cheap microcontrollers that have no special I2C hardware controller. You only need 2 free I/O pins and few simple i2C routines to send and receive commands.ทรลเลอร์ที่ทำงานช้ากว่าด้วยพิน I / O เอนกประสงค์ได้เนื่องจากจำเป็นต้องสร้างเงื่อนไข Start และ Stop ที่ถูกต้องเท่านั้นนอกเหนือจากฟังก์ชันสำหรับการอ่านและเขียนไบต์

อุปกรณ์ทาสแต่ละเครื่องมีที่อยู่ที่ไม่ซ้ำกัน การถ่ายโอนจากและไปยังอุปกรณ์หลักเป็นแบบอนุกรมและแบ่งออกเป็นแพ็กเก็ต 8 บิต ข้อกำหนดง่ายๆเหล่านี้ทำให้ง่ายต่อการติดตั้งอินเทอร์เฟซ I2C แม้จะใช้ไมโครคอนโทรลเลอร์ราคาถูกที่ไม่มีตัวควบคุมฮาร์ดแวร์ I2C พิเศษ คุณต้องการเพียง 2 พิน I / O ฟรีและรูทีน i2C ง่ายๆเพียงไม่กี่คำในการส่งและรับคำสั่ง 

ข้อกำหนด I2C เริ่มต้นกำหนดความถี่สัญญาณนาฬิกาสูงสุด 100 kHz ต่อมาเพิ่มขึ้นเป็น 400 kHz ในโหมดเร็ว นอกจากนี้ยังมีโหมดความเร็วสูงซึ่งสามารถไปได้ถึง 3.4 MHz และยังมีโหมดความเร็วสูงพิเศษ 5 MHz

 1-Wire is a device communications bus system designed by Dallas Semiconductor Corp. that provides low-speed (16.3 kbit/s[1]) data, signaling, and power over a single conductor.

1-Wire is similar in concept to I²C, but with lower data rates and longer range. It is typically used to communicate with small inexpensive devices such as digital thermometers and weather instruments. A network of 1-Wire devices with an associated master device is called

I2C Interface

I2C ใช้เพียงสองสาย: SCL (นาฬิกาอนุกรม) และ SDA (ข้อมูลอนุกรม) ทั้งสองต้องดึงขึ้นด้วยตัวต้านทานถึง + Vdd นอกจากนี้ยังมีตัวเปลี่ยนระดับ I2C ซึ่งสามารถใช้เชื่อมต่อกับบัส I2C สองตัวที่มีแรงดันไฟฟ้าต่างกัน

I2C Addresses

การสื่อสาร I2C พื้นฐานใช้การถ่ายโอน 8 บิตหรือไบต์ อุปกรณ์ทาส I2C แต่ละเครื่องมีที่อยู่ 7 บิตที่ต้องไม่ซ้ำกันบนบัส อุปกรณ์บางอย่างได้แก้ไขที่อยู่ I2C ในขณะที่อุปกรณ์อื่น ๆ มีบรรทัดที่อยู่น้อยซึ่งกำหนดบิตที่ต่ำกว่าของที่อยู่ I2C ทำให้ง่ายมากที่จะมีอุปกรณ์ I2C ทั้งหมดบนบัสด้วยที่อยู่ I2C เฉพาะ นอกจากนี้ยังมีอุปกรณ์ที่มีแอดเดรส 10 บิตตามข้อกำหนดที่อนุญาต 

ที่อยู่ 7 บิตแสดงถึงบิต 7 ถึง 1 ในขณะที่บิต 0 ใช้เพื่ออ่านสัญญาณจากหรือเขียนไปยังอุปกรณ์ หากบิต 0 (ในไบต์แอดเดรส) ถูกตั้งค่าเป็น 1 อุปกรณ์หลักจะอ่านจากอุปกรณ์ทาส I2C

อุปกรณ์หลักไม่ต้องการที่อยู่เนื่องจากสร้างนาฬิกา (ผ่าน SCL) และระบุอุปกรณ์ทาส I2C แต่ละเครื่อง

I2C Protocol

i2c protocol

ในสถานะปกติทั้งสองเส้น (SCL และ SDA) มีค่าสูง การสื่อสารเริ่มต้นโดยอุปกรณ์หลัก สร้างเงื่อนไขเริ่มต้น (S) ตามด้วยที่อยู่ของอุปกรณ์ทาส (B1) หากบิต 0 ของไบต์แอดเดรสถูกตั้งค่าเป็น 0 อุปกรณ์หลักจะเขียนไปยังอุปกรณ์ทาส (B2) มิฉะนั้นไบต์ถัดไปจะถูกอ่านจากอุปกรณ์ทาส เมื่ออ่านหรือเขียนไบต์ทั้งหมดแล้ว (Bn) อุปกรณ์หลักจะสร้างเงื่อนไข Stop (P) สิ่งนี้ส่งสัญญาณไปยังอุปกรณ์อื่น ๆ บนบัสว่าการสื่อสารสิ้นสุดลงและอุปกรณ์อื่นอาจใช้บัส 

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

สรุป

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


1-Wire

1-Wire เป็นระบบบัสการสื่อสารของอุปกรณ์ที่ออกแบบโดย Dallas Semiconductor Corp. ซึ่งให้ข้อมูลความเร็วต่ำ (16.3 kbit / s) การส่งสัญญาณและจ่ายไฟเหนือตัวนำเดียว

1-Wire มีแนวคิดคล้ายกับI²C แต่มีอัตราข้อมูลที่ต่ำกว่าและมีช่วงที่ยาวกว่า โดยทั่วไปจะใช้เพื่อสื่อสารกับอุปกรณ์ขนาดเล็กราคาไม่แพงเช่นเครื่องวัดอุณหภูมิดิจิตอลและเครื่องมือวัดสภาพอากาศ เรียกว่าเครือข่ายของอุปกรณ์ 1-Wire ที่มีอุปกรณ์หลักที่เกี่ยวข้อง 

คุณลักษณะที่โดดเด่นอย่างหนึ่งของบัสคือความเป็นไปได้ในการใช้สายไฟเพียงสองสาย - ข้อมูลและพื้นดิน เพื่อให้บรรลุสิ่งนี้อุปกรณ์ 1-Wire จะรวมตัวเก็บประจุ 800 pF เพื่อเก็บประจุและจ่ายพลังงานให้กับอุปกรณ์ในช่วงที่สายข้อมูลทำงานอยู่

ตัวอย่างการใช้งาน 

ตัวอย่างการใช้งาน

อุปกรณ์ 1-Wire มีจำหน่ายในแพ็คเกจที่แตกต่างกัน: วงจรรวม TO-92 และรูปแบบพกพาที่เรียกว่า iButton iButton (หรือที่เรียกว่า Dallas Key) เป็นแพ็คเกจสแตนเลสสตีลขนาดเล็กที่มีลักษณะคล้ายกับแบตเตอรี่นาฬิกา ผู้ผลิตยังผลิตอุปกรณ์ที่ซับซ้อนกว่าส่วนประกอบเดียวที่ใช้บัส 1 สายในการสื่อสาร

อุปกรณ์ 1-Wire สามารถใส่ในที่ต่างๆในระบบได้ อาจเป็นหนึ่งในส่วนประกอบหลายอย่างบนแผงวงจรภายในผลิตภัณฑ์ นอกจากนี้ยังอาจเป็นส่วนประกอบเดียวภายในอุปกรณ์เช่นหัววัดอุณหภูมิ อาจเชื่อมต่อกับอุปกรณ์ที่กำลังตรวจสอบ ระบบห้องปฏิบัติการบางระบบเชื่อมต่อกับอุปกรณ์ 1-Wire โดยใช้สายเคเบิลที่มีขั้วต่อโมดูลาร์หรือสาย CAT-5 ในระบบดังกล่าวนิยมใช้ RJ11 (6P2C หรือ 6P4C modular plugs ซึ่งนิยมใช้กับโทรศัพท์)

ระบบเซ็นเซอร์และแอคชูเอเตอร์สามารถสร้างขึ้นได้โดยการต่อส่วนประกอบ 1-Wire เข้าด้วยกัน ส่วนประกอบ 1-Wire แต่ละตัวประกอบด้วยตรรกะทั้งหมดที่จำเป็นในการทำงานบนบัส 1-Wire ตัวอย่าง ได้แก่ เครื่องบันทึกอุณหภูมิตัวจับเวลาเซ็นเซอร์แรงดันและกระแสจอภาพแบตเตอรี่และหน่วยความจำ สิ่งเหล่านี้สามารถเชื่อมต่อกับพีซีโดยใช้ตัวแปลงบัส อินเทอร์เฟซพอร์ตอนุกรมและพอร์ตขนาน USB, RS-232 เป็นโซลูชันยอดนิยมสำหรับการเชื่อมต่อ MicroLan กับโฮสต์พีซี อุปกรณ์ 1-Wire สามารถเชื่อมต่อโดยตรงกับไมโครคอนโทรลเลอร์จากผู้ขายหลายราย
iButtons เชื่อมต่อกับระบบบัส 1 สายโดยใช้ซ็อกเก็ตที่มีหน้าสัมผัสที่สัมผัสกับ "ฝา" และ "ฐาน" ของกระป๋อง หรืออีกวิธีหนึ่งการเชื่อมต่อสามารถเป็นแบบกึ่งถาวรโดยใช้ซ็อกเก็ตที่คลิป iButton แต่สามารถถอดออกได้อย่างง่ายดาย
ชิป 1-Wire แต่ละตัวมีรหัสระบุเฉพาะ คุณสมบัตินี้ทำให้ชิปโดยเฉพาะ iButtons, ปุ่มอิเล็กทรอนิกส์ที่เหมาะสม การใช้งานบางอย่าง ได้แก่ ตัวล็อคสัญญาณกันขโมยระบบคอมพิวเตอร์อุปกรณ์เสริมที่ผู้ผลิตอนุมัติและนาฬิกาบอกเวลา iButtons ถูกใช้เป็นตั๋วอัจฉริยะของ Akbil สำหรับการขนส่งสาธารณะในอิสตันบูล

อุปกรณ์จ่ายไฟ

อุปกรณ์จ่ายไฟจอแสดงผลและแล็ปท็อป Mac ที่ติดตั้งตัวเชื่อมต่อ Apple MagSafe และ MagSafe 2 ใช้โปรโตคอล 1-Wire เพื่อส่งและรับข้อมูลไปยังและจากแล็ปท็อป Mac ที่เชื่อมต่อผ่านพินกลางของขั้วต่อ ข้อมูลรวมถึงรุ่นของแหล่งจ่ายไฟกำลังไฟและหมายเลขซีเรียล และแล็ปท็อปสั่งให้ส่งพลังงานเต็มที่และส่องสว่างไดโอดเปล่งแสงสีแดงหรือสีเขียวในขั้วต่อ [2]

แหล่งจ่ายไฟของแล็ปท็อป Dell ของแท้ใช้โปรโตคอล 1-Wire เพื่อส่งข้อมูลผ่านสายที่สามไปยังคอมพิวเตอร์แล็ปท็อปเกี่ยวกับการจัดอันดับพลังงานกระแสและแรงดันไฟฟ้า แล็ปท็อปจะปฏิเสธการชาร์จหากอะแดปเตอร์ไม่ตรงตามข้อกำหนด

โปรโตคอลการสื่อสาร

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

เครือข่าย 1-Wire เป็นสายระบายน้ำแบบเปิดเดี่ยวที่มีตัวต้านทานแบบดึงขึ้นตัวเดียว ตัวต้านทานแบบดึงขึ้นจะดึงสายไฟสูงถึง 3 หรือ 5 โวลต์ อุปกรณ์หลักและสเลฟทั้งหมดแต่ละตัวมีการเชื่อมต่อท่อระบายน้ำแบบเปิดเพียงจุดเดียวเพื่อขับเคลื่อนสายไฟและวิธีรับรู้สถานะของสายไฟ แม้จะมีชื่อ "1-Wire" แต่อุปกรณ์ทั้งหมดยังต้องมีสายที่สองซึ่งเป็นการเชื่อมต่อกราวด์เพื่อให้กระแสไฟฟ้าไหลผ่านสายข้อมูลได้ [4] การสื่อสารเกิดขึ้นเมื่อมาสเตอร์หรือสเลฟดึงบัสให้ต่ำเป็นเวลาสั้น ๆ เช่นเชื่อมต่อตัวต้านทานแบบดึงขึ้นกับกราวด์ผ่าน MOSFET เอาต์พุต สายข้อมูลสูงเมื่อไม่มีการใช้งานดังนั้นจึงสามารถจ่ายไฟให้กับอุปกรณ์ทาสได้ในจำนวน จำกัด อัตราข้อมูล 16.3 kbit / s สามารถทำได้ นอกจากนี้ยังมีโหมดโอเวอร์ไดรฟ์ที่เพิ่มความเร็วในการสื่อสารโดยปัจจัย 10

ตัวอย่างการสื่อสารกับอุปกรณ์

สัญญาณต่อไปนี้สร้างขึ้นโดย FPGA ซึ่งเป็นหลักสำหรับการสื่อสารกับชิป DS2432 (EEPROM) และวัดด้วยเครื่องวิเคราะห์ตรรกะ ลอจิกสูงบนเอาต์พุต 1-Wire หมายความว่าเอาต์พุตของ FPGA อยู่ในโหมดไตรสถานะและอุปกรณ์ 1-Wire สามารถดึงบัสให้ต่ำได้ ต่ำหมายถึง FPGA ดึงบัสลง อินพุต 1-Wire คือสัญญาณบัสที่วัดได้ ในช่วงเวลาตัวอย่างอินพุตสูง FPGA จะสุ่มตัวอย่างอินพุตสำหรับตรวจจับการตอบสนองของอุปกรณ์และรับบิต

1-Wire-Protocol.png 

เครื่องมือพัฒนา 

เมื่อพัฒนาและ / หรือแก้ไขปัญหาบัส 1-Wire การตรวจสอบสัญญาณฮาร์ดแวร์อาจมีความสำคัญมาก เครื่องวิเคราะห์ลอจิกและเครื่องวิเคราะห์บัสเป็นเครื่องมือที่รวบรวมวิเคราะห์ถอดรหัสและจัดเก็บสัญญาณเพื่อลดความซับซ้อนในการดูรูปคลื่นความเร็วสูง


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

PZEM-004T V3.3

ระบบ​ปฏิบัติการ​