โปรโตคอล I2S: การทำงาน ความแตกต่าง & การใช้งาน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ระบบดิจิตอลและข้อกำหนดข้อมูลเสียงภายในโทรศัพท์มือถือ คอมพิวเตอร์ & ระบบอัตโนมัติในบ้าน ผลิตภัณฑ์มีการเปลี่ยนแปลงอย่างมากในช่วงระยะเวลาหนึ่ง สัญญาณเสียงจากหรือไปยังโปรเซสเซอร์กำลังกลายเป็นดิจิทัล ข้อมูลนี้ในระบบต่าง ๆ จะถูกประมวลผลผ่านอุปกรณ์ต่าง ๆ เช่น DSP , ADCs, DACs, อินเทอร์เฟซ Digital I/O เป็นต้น เพื่อให้อุปกรณ์เหล่านี้สื่อสารข้อมูลเสียงระหว่างกันได้ จำเป็นต้องมีโปรโตคอลมาตรฐาน หนึ่งในนั้นคือโปรโตคอล I2S เป็นอินเทอร์เฟซบัสอนุกรมที่ออกแบบโดย Philip Semiconductor ในเดือนกุมภาพันธ์ 1986 สำหรับอินเทอร์เฟซเสียงดิจิตอลระหว่างอุปกรณ์ บทความนี้กล่าวถึงภาพรวมของ I โปรโตคอล 2S การทำงานกับแอพพลิเคชั่น


โปรโตคอล I2S คืออะไร?

โปรโตคอลที่ใช้ในการส่งข้อมูลเสียงดิจิตอลจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่งเรียกว่า I2S หรือโปรโตคอลเสียง Inter-IC โปรโตคอลนี้ส่งข้อมูลเสียง PCM (โมดูเลตโค้ดพัลส์) จากไอซีตัวหนึ่งไปยังอีกตัวหนึ่งภายในอุปกรณ์อิเล็กทรอนิกส์ I2S มีบทบาทสำคัญในการส่งไฟล์เสียงที่บันทึกไว้ล่วงหน้าจาก MCU ไปยัง DAC หรือเครื่องขยายเสียง โปรโตคอลนี้ยังสามารถใช้เพื่อแปลงเสียงเป็นดิจิทัลโดยใช้ไมโครโฟน ไม่มีการบีบอัดภายในโปรโตคอล I2S ดังนั้นคุณจึงไม่สามารถเล่น OGG หรือ MP3 หรือรูปแบบเสียงอื่นๆ ที่บีบอัดเสียงได้ อย่างไรก็ตาม คุณสามารถเล่นไฟล์ WAV ได้



คุณสมบัติ

ดิ คุณสมบัติของโปรโตคอล I2S รวมสิ่งต่อไปนี้

  • มี 8 ถึง 32 บิตข้อมูลสำหรับแต่ละตัวอย่าง
  • Tx & Rx FIFO ขัดจังหวะ
  • รองรับ DMA
  • ระยะเวลาเลือกคำแบบ 16 บิต, 32 บิต, 48 บิต หรือ 64 บิต
  • การสตรีมเสียงแบบสองทิศทางพร้อมกัน
  • ความกว้างตัวอย่าง 8 บิต 16 บิต และ 24 บิต
  • มีอัตราตัวอย่างที่แตกต่างกัน
  • อัตราข้อมูลสูงถึง 96 kHz ตลอดระยะเวลาการเลือกคำ 64 บิต
  • FIFO สเตอริโอแบบอินเตอร์ลีฟหรือ FIFO ช่องสัญญาณซ้ายและขวาแบบอิสระ
  • เปิดใช้งานอิสระของ Tx & Rx

โปรโตคอลการสื่อสาร I2S ทำงาน

I2S โปรโตคอลการสื่อสาร เป็นโปรโตคอล 3 สายที่จัดการข้อมูลเสียงอย่างง่ายดายผ่านบัสอนุกรม 3 บรรทัดซึ่งรวมถึง SCK (นาฬิกาอนุกรมต่อเนื่อง), WS (การเลือกคำ) และ SD (ข้อมูลอนุกรม)



การเชื่อมต่อแบบ 3 สายของ I2S:

SCK

SCK หรือนาฬิกาอนุกรมเป็นบรรทัดแรกของโปรโตคอล I2S ซึ่งเรียกอีกอย่างว่า BCLK หรือสายนาฬิกาบิตซึ่งใช้เพื่อรับข้อมูลในรอบที่คล้ายกัน ความถี่สัญญาณนาฬิกาแบบอนุกรมถูกกำหนดอย่างง่าย ๆ โดยใช้สูตรเช่น ความถี่ = อัตราตัวอย่าง x บิต สำหรับแต่ละช่อง x ไม่ใช่ ของช่อง

WS

ในโปรโตคอลการสื่อสาร I2S WS หรือ word select เป็นบรรทัดที่เรียกว่า FS (Frame Select) wire ที่แยกช่องสัญญาณด้านขวาหรือด้านซ้าย

หาก WS = 0 ช่องซ้ายหรือช่อง -1 จะถูกใช้

หาก WS = 1 ช่องสัญญาณขวาหรือช่อง -2 จะถูกใช้

SD

Serial Data หรือ SD เป็นสายสุดท้ายที่เพย์โหลดถูกส่งภายใน 2 ส่วนเติมเต็ม ดังนั้นจึงเป็นสิ่งสำคัญมากที่ MSB จะถูกถ่ายโอนก่อน เนื่องจากทั้งตัวส่งและตัวรับอาจมีความยาวคำต่างกัน ดังนั้นเครื่องส่งหรือเครื่องรับจึงต้องรับรู้ว่ามีการส่งข้อมูลกี่บิต

  • หากความยาวคำของตัวรับมากกว่าตัวส่ง แสดงว่าคำนั้นสั้นลง (บิต LSB ถูกตั้งค่าเป็นศูนย์)
  • หากความยาวคำของตัวรับน้อยกว่าความยาวคำของตัวส่ง บิต LSB จะถูกละเว้น

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

ส่วนประกอบเครือข่าย I2S

เมื่อส่วนประกอบ I2S หลายตัวเชื่อมต่อกัน จะเรียกว่าเครือข่าย I2S ส่วนประกอบของเครือข่ายนี้มีชื่อต่างกันและหน้าที่ต่างกัน ดังนั้น แผนภาพต่อไปนี้แสดง 3 เครือข่ายที่แตกต่างกัน ที่นี่ใช้บอร์ด ESP NodeMCU เป็นเครื่องส่งสัญญาณและใช้บอร์ดแยกสัญญาณเสียง I2S เป็นตัวรับสัญญาณ สายสามเส้นที่ใช้เชื่อมต่อเครื่องส่งและเครื่องรับคือ SCK, WS & SD

  ส่วนประกอบเครือข่าย I2S
ส่วนประกอบเครือข่าย I2S

ในไดอะแกรมแรก ตัวส่งสัญญาณ (Tx) เป็นตัวหลัก ดังนั้นมันจึงควบคุมเส้น SCK (นาฬิกาอนุกรม) & WS (การเลือกคำ)

ในแผนภาพที่สอง ตัวรับคือตัวหลัก ดังนั้นทั้งสาย SCK & WS เริ่มจากตัวรับและตัวส่งจะสิ้นสุด

ในแผนภาพที่สาม ตัวควบคุมภายนอกเชื่อมต่อกับโหนดภายในเครือข่ายซึ่งทำงานเหมือนกับอุปกรณ์หลัก ดังนั้นอุปกรณ์นี้จึงสร้าง SCK & WS

ในเครือข่าย I2S ข้างต้นทั้งหมด มีอุปกรณ์หลักเพียงเครื่องเดียวและส่วนประกอบอื่น ๆ อีกมากมายที่ส่งหรือรับข้อมูลเสียง

ใน I2S อุปกรณ์ใด ๆ สามารถเป็นเครื่องหลักได้โดยการให้สัญญาณนาฬิกา

I2S Timing Diagram

เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับ I2S และฟังก์ชันการทำงานของ I2S เรามีไดอะแกรมการกำหนดเวลาโปรโตคอลการสื่อสาร I2S ที่แสดงด้านล่าง แผนภาพเวลาของโปรโตคอล I2S แสดงอยู่ด้านล่างซึ่งประกอบด้วยสายไฟสามสาย SCK, WS & SD

  ไดอะแกรมกำหนดเวลาโปรโตคอล I2S
ไดอะแกรมกำหนดเวลาโปรโตคอล I2S

ในแผนภาพด้านบน อันดับแรก นาฬิกาอนุกรมมีความถี่ = อัตราตัวอย่าง * บิตสำหรับแต่ละช่องสัญญาณ * ไม่ใช่ ของช่อง) คำว่า select line เป็นบรรทัดที่สองที่เปลี่ยนระหว่าง '1' สำหรับช่องด้านขวา & '0' สำหรับช่องด้านซ้าย

บรรทัดที่สามคือสายข้อมูลอนุกรมที่ข้อมูลถูกส่งในแต่ละรอบสัญญาณนาฬิกาบนขอบที่ตกลงมาซึ่งแสดงด้วยจุดจาก HIGH ถึง LOW

นอกจากนี้ เราสามารถสังเกตได้ว่าบรรทัด WS จะแปรผันหนึ่งรอบ CLK ก่อนส่ง MSB ซึ่งจะทำให้ผู้รับมีเวลาจัดเก็บคำก่อนหน้า & ล้างการลงทะเบียนอินพุตสำหรับคำถัดไป MSB จะถูกส่งเมื่อ SCK เปลี่ยนแปลงหลังจากการเปลี่ยนแปลง WS

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

ความล่าช้าในการแพร่กระจาย = (ความแตกต่างของเวลาระหว่างนาฬิกาภายนอกและนาฬิกาภายในของเครื่องรับ )+( ความแตกต่างของเวลาระหว่างนาฬิกาภายในกับเวลาที่ได้รับข้อมูล)

เพื่อลดความล่าช้าในการแพร่กระจายและการซิงโครไนซ์การรับส่งข้อมูลระหว่างเครื่องส่งและเครื่องรับ เครื่องส่งสัญญาณต้องมีช่วงนาฬิกาของ

T > tr  – สมมติว่า T คือคาบนาฬิกาของเครื่องส่งสัญญาณ และ tr คือคาบเวลานาฬิกาขั้นต่ำของเครื่องส่งสัญญาณ

ภายใต้เงื่อนไขข้างต้นหากเราพิจารณาเช่น a ตัวส่งสัญญาณด้วยอัตราการส่งข้อมูล 2.5MHz จากนั้น:

tr = 360ns

นาฬิกา สูง tHC (ขั้นต่ำ) >0.35 T.

นาฬิกา tLC ต่ำ (ขั้นต่ำ> > 0.35T.

ผู้รับเป็นทาสด้วยอัตราการส่งข้อมูล 2.5MHz แล้ว:

นาฬิกา สูง tHC (ขั้นต่ำ) < 0.35 T

นาฬิกา tLC ต่ำ (ขั้นต่ำ) < 0.35T

เวลาตั้งค่า tst (ขั้นต่ำ) < 0.20T

โปรโตคอล I2S Arduino

วัตถุประสงค์หลักของโครงการนี้คือการสร้างอินเทอร์เฟซสำหรับอินเทอร์เฟซ I2S โดยใช้ไลบรารี Arduino I2S ส่วนประกอบที่จำเป็นในการทำโครงการนี้คือ Arduino MKR ศูนย์, เขียงหั่นขนม , สายจัมเปอร์, Adafruit MAX98357A, 3W, ลำโพง 4 โอห์ม และ RobotGeek Slider

ไลบรารี Arduino I2S ช่วยให้คุณส่งและรับข้อมูลเสียงดิจิทัลผ่านบัส I2S ได้อย่างง่ายดาย ตัวอย่างนี้มีจุดมุ่งหมายเพื่ออธิบายวิธีใช้ไลบรารีนี้เพื่อขับเคลื่อน I2S DAC สำหรับการสร้างเสียงที่คำนวณได้ในการออกแบบ Arduino

สามารถต่อวงจรนี้ได้ดังนี้ I2S DAC ที่ใช้ในตัวอย่างนี้ต้องการสายไฟเพียงสามเส้นและแหล่งจ่ายไฟสำหรับบัส I2S การเชื่อมต่อสำหรับ I2S บน Arduino MKRZero มีดังต่อไปนี้

Serial Data (SD) ที่ขา A6;

Serial Clock (SCK) บน pin2;

เฟรมหรือ Word Select (FS) บน pin3;

การทำงาน

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

  I2S Thermin ไดอะแกรม
I2S Thermin ไดอะแกรม

เสียงที่ส่งบนบัส I2S เป็นคลื่นไซน์ธรรมดาที่มีแอมพลิจูดและความถี่ถูกปรับเปลี่ยนตามการอ่านโพเทนชิโอมิเตอร์

รหัส

รหัสสำหรับเชื่อมต่อ Theremin กับ Arduino MKRZero, โพเทนชิโอมิเตอร์ 2 ตัวและ I2S DAC แสดงไว้ด้านล่าง

#รวม

const int maxFrequency = 5000; //ความถี่สูงสุดที่สร้าง
const int ความถี่ต่ำสุด = 220; //ความถี่ขั้นต่ำที่สร้าง
const int maxVolume = 100; //ปริมาณสูงสุดของความถี่ที่สร้างขึ้น
const int minVolume = 0; // ปริมาณขั้นต่ำของความถี่ที่สร้างขึ้น
const int sampleRate = 44100; //สุ่มตัวอย่างความถี่ที่สร้างขึ้น
const int wavSize = 256; //ขนาดบัฟเฟอร์
ไซน์สั้น[wavSize]; //บัฟเฟอร์ที่เก็บค่าไซน์
const int ความถี่ขา = A0; // พินเชื่อมต่อกับหม้อซึ่งกำหนดความถี่ของสัญญาณ
const int amplitudePin = A1; // พินเชื่อมต่อกับหม้อซึ่งกำหนดแอมพลิจูดของสัญญาณ
ปุ่ม int const = 6; //ปักหมุดที่ปุ่มควบคุมเพื่อแสดงความถี่

การตั้งค่าเป็นโมฆะ ()
{

Serial.begin(9600); //กำหนดค่าพอร์ตอนุกรม
// เริ่มต้นตัวส่งสัญญาณ I2S
ถ้า (!I2S.begin(I2S_PHILIPS_MODE, sampleRate, 16)) {
Serial.println('ไม่สามารถเริ่มต้น I2S!');

ในขณะที่ (1);
}

สร้างไซน์ (); // เติมบัฟเฟอร์ด้วยค่าไซน์
pinMode(ปุ่ม, INPUT_PULLUP); // วางพินปุ่มในอินพุต pullup

}
วงเป็นโมฆะ () {

ถ้า (digitalRead (ปุ่ม) == ต่ำ)

{

ความถี่ลอย = แผนที่ (analogRead (ความถี่พิน), 0, 1023, minFrequency, maxFrequency); //ความถี่แผนที่
แอมพลิจูด int = แผนที่ (analogRead (amplitudePin), 0, 1023, minVolume, maxVolume); //ความกว้างของแผนที่
playWave(ความถี่, 0.1, แอมพลิจูด); //เล่นเสียง
//พิมพ์ค่าบน serial
Serial.print ('ความถี่ = ');
Serial.println (ความถี่);
Serial.print ('แอมพลิจูด = ');
Serial.println (แอมพลิจูด);

}

}
เป็นโมฆะ createSine () {
สำหรับ (int i = 0; i < wavSize; ++i) {
sine[i] = ushort(float(100) * sin(2.0 * PI * (1.0 / wavSize) * i)); //100 ใช้เพื่อไม่ให้มีจำนวนน้อย
}
}
เป็นโมฆะ playWave (ความถี่ลอย, วินาทีลอย, แอมพลิจูด int) {
// เล่นบัฟเฟอร์รูปคลื่นที่ให้มาสำหรับค่าที่ระบุ
// จำนวนวินาที
// ก่อนอื่นให้คำนวณว่าต้องเล่นตัวอย่างกี่ตัวอย่างจึงจะวิ่งได้
// สำหรับจำนวนวินาทีที่ต้องการ

การวนซ้ำ int ที่ไม่ได้ลงนาม = วินาที * sampleRate;

// จากนั้นคำนวณ 'ความเร็ว' ที่เราเคลื่อนที่ผ่านคลื่น
// บัฟเฟอร์ขึ้นอยู่กับความถี่ของเสียงที่กำลังเล่น

float delta = (ความถี่ * wavSize) / float (sampleRate);

// ตอนนี้วนลูปตัวอย่างทั้งหมดแล้วเล่นโดยคำนวณ
// ตำแหน่งภายในบัฟเฟอร์คลื่นในแต่ละช่วงเวลา

สำหรับ (unsigned int i = 0; i < iterations; ++i) {
pos สั้น = (int ที่ไม่ได้ลงนาม) (i * delta) % wavSize;
ตัวอย่างสั้น = แอมพลิจูด * ไซน์[pos];

// ทำซ้ำตัวอย่างเพื่อส่งไปยังทั้งช่องทางซ้ายและขวา
// ปรากฏว่าสั่งเป็นช่องขวา ช่องซ้าย ถ้าอยากเขียน
//เสียงสเตอริโอ

ในขณะที่ (I2S.availableForWrite() < 2);
I2S.write (ตัวอย่าง);
I2S.write (ตัวอย่าง);

}
}

ความแตกต่างระหว่างโปรโตคอล I2C และ I2S

ความแตกต่างระหว่างโปรโตคอล I2C และ I2S มีดังต่อไปนี้

2C

I2S

ดิ โปรโตคอล I2C ย่อมาจากโปรโตคอลบัสระหว่างไอซี I2S ย่อมาจาก Inter-IC Sound protocol .
ส่วนใหญ่จะใช้เพื่อเรียกใช้สัญญาณระหว่างวงจรรวมที่วางอยู่บน PCB ที่คล้ายคลึงกัน ใช้สำหรับเชื่อมต่ออุปกรณ์เสียงดิจิตอล
มันใช้สองบรรทัดระหว่างมาสเตอร์ & ทาสหลายคนเช่น SDA & SCL . ใช้สามบรรทัด WS, SCK  & SD
รองรับ multi-master & multi-slave รองรับมาสเตอร์คนเดียว
โปรโตคอลนี้รองรับการยืด CLK โปรโตคอลนี้ไม่มีการยืด CLK
I2C มีโอเวอร์เฮดสตาร์ทและหยุดบิตเพิ่มเติม I2S ไม่รวมบิตเริ่มต้นและหยุด

ข้อดี

ดิ ข้อดีของบัส I2S รวมสิ่งต่อไปนี้

  • I2S ใช้สายข้อมูล CLK และซีเรียลแยกจากกัน ดังนั้นจึงมีการออกแบบตัวรับสัญญาณที่ง่ายมากเมื่อเปรียบเทียบกับระบบอะซิงโครนัส
  • เป็นอุปกรณ์หลักเครื่องเดียวจึงไม่มีปัญหากับการซิงโครไนซ์ข้อมูล
  • ไมโครโฟนที่ใช้ I2S o/p ไม่จำเป็นต้องมีส่วนหน้าแบบแอนะล็อก แต่ใช้ภายในไมโครโฟนไร้สายโดยใช้เครื่องส่งสัญญาณแบบดิจิตอล เมื่อใช้สิ่งนี้ คุณจะมีการเชื่อมต่อแบบดิจิทัลโดยสิ้นเชิงระหว่างตัวส่งและทรานสดิวเซอร์

ข้อเสีย

ดิ ข้อเสียของบัส I2S รวมสิ่งต่อไปนี้

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

แอปพลิเคชั่น

ดิ แอปพลิเคชันของโปรโตคอล I2S รวมสิ่งต่อไปนี้

  • I2S ใช้สำหรับเชื่อมต่ออุปกรณ์เสียงดิจิตอล
  • โปรโตคอลนี้ใช้กันอย่างแพร่หลายในการถ่ายโอนข้อมูลเสียงจาก DSP หรือไมโครคอนโทรลเลอร์ไปยังตัวแปลงสัญญาณเสียงเพื่อเล่นเสียง
  • เริ่มแรก อินเทอร์เฟซ I2S ถูกใช้ในการออกแบบเครื่องเล่นซีดี ตอนนี้ ข้อมูลเสียงดิจิทัลถูกส่งระหว่างไอซีได้แล้ว
  • I2S ใช้ใน DSP, ADC เสียง, DAC, ไมโครคอนโทรลเลอร์, ตัวแปลงอัตราตัวอย่าง ฯลฯ
  • I2S ได้รับการออกแบบมาโดยเฉพาะเพื่อใช้ระหว่างวงจรรวมสำหรับการสื่อสารข้อมูลเสียงดิจิตอล
  • โปรโตคอลนี้มีบทบาทสำคัญในการเชื่อมต่อไมโครคอนโทรลเลอร์และอุปกรณ์ต่อพ่วงเมื่อ I2S เน้นที่การรับส่งข้อมูลเสียงระหว่างอุปกรณ์เสียงดิจิทัล

ดังนั้น นี่คือทั้งหมดที่เกี่ยวกับภาพรวมของ ข้อกำหนดโปรโตคอล I2S ซึ่งรวมถึงการทำงาน ความแตกต่าง และการใช้งาน I²S เป็นโปรโตคอลอนุกรมแบบซิงโครนัส 3 สาย ใช้ในการถ่ายโอนเสียงสเตอริโอดิจิตอลระหว่างสองวงจรรวม ดิ ตัววิเคราะห์โปรโตคอล I2S เป็นตัวถอดรหัสสัญญาณที่มี DigiView Logic Analyzer ทั้งหมด ซอฟต์แวร์ DigiView นี้ให้ความสามารถในการค้นหา การนำทาง ส่งออก การวัด แปลงและพิมพ์แบบกว้างๆ ให้กับสัญญาณทุกประเภท นี่คือคำถามสำหรับคุณ โปรโตคอล I3C คืออะไร?