I2S প্রোটোকল: কাজ, পার্থক্য এবং এর অ্যাপ্লিকেশন

সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন





মোবাইল হ্যান্ডসেট, কম্পিউটার এবং এর মধ্যে ডিজিটাল সিস্টেম এবং এর অডিও ডেটা প্রয়োজনীয়তা অধিবাস স্বয়ংক্রিয়তা সময়ের সাথে সাথে পণ্যগুলি নাটকীয়ভাবে পরিবর্তিত হয়েছে। প্রসেসর থেকে অডিও সিগন্যাল ডিজিটালাইজড হয়ে যাচ্ছে। বিভিন্ন সিস্টেমে এই ডেটা যেমন অনেক ডিভাইসের মাধ্যমে প্রক্রিয়া করা হয় ডিএসপিরা , ADCs, DACs, ডিজিটাল I/O ইন্টারফেস ইত্যাদি এরকম একটি হল I2S প্রোটোকল। এটি একটি সিরিয়াল বাস ইন্টারফেস, ফিলিপ সেমিকন্ডাক্টর দ্বারা 1986 সালের ফেব্রুয়ারিতে ডিভাইসগুলির মধ্যে ডিজিটাল অডিও ইন্টারফেসের জন্য ডিজাইন করা হয়েছিল। এই নিবন্ধটি আমি একটি ওভারভিউ আলোচনা 2S প্রোটোকল এটি অ্যাপ্লিকেশনগুলির সাথে কাজ করে।


I2S প্রোটোকল কি?

একটি ডিভাইস থেকে অন্য ডিভাইসে ডিজিটাল অডিও ডেটা প্রেরণের জন্য যে প্রোটোকল ব্যবহার করা হয় তা I2S বা ইন্টার-আইসি সাউন্ড প্রোটোকল নামে পরিচিত। এই প্রোটোকলটি একটি ইলেকট্রনিক ডিভাইসের মধ্যে একটি আইসি থেকে অন্য আইসিতে PCM (পালস-কোড মড্যুলেটেড) অডিও ডেটা প্রেরণ করে। I2S অডিও ফাইলগুলি প্রেরণে একটি মূল ভূমিকা পালন করে যা একটি MCU থেকে একটি DAC বা এম্প্লিফায়ারে প্রাক-রেকর্ড করা হয়। এই প্রোটোকলটি মাইক্রোফোন ব্যবহার করে অডিও ডিজিটাইজ করতেও ব্যবহার করা যেতে পারে। I2S প্রোটোকলের মধ্যে কোন কম্প্রেশন নেই, তাই আপনি OGG বা MP3 বা অন্যান্য অডিও ফরম্যাট চালাতে পারবেন না যা অডিওকে ঘনীভূত করে, তবে, আপনি WAV ফাইলগুলি চালাতে পারেন।



বৈশিষ্ট্য

দ্য I2S প্রোটোকল বৈশিষ্ট্য নিম্নলিখিত অন্তর্ভুক্ত.

  • প্রতিটি নমুনার জন্য এটিতে 8 থেকে 32 ডেটা বিট রয়েছে।
  • Tx & Rx FIFO বাধা।
  • এটি DMA সমর্থন করে।
  • 16-বিট, 32-বিট, 48-বিট, বা 64-বিট শব্দ নির্বাচনের সময়কাল।
  • যুগপত দ্বি-নির্দেশক অডিও স্ট্রিমিং।
  • 8-বিট, 16-বিট, এবং 24-বিট নমুনা প্রস্থ।
  • এটির বিভিন্ন নমুনার হার রয়েছে।
  • 64-বিট শব্দ নির্বাচন সময়ের মাধ্যমে ডাটা রেট 96 kHz পর্যন্ত।
  • ইন্টারলিভড স্টেরিও ফিফো বা স্বাধীন ডান ও বাম চ্যানেল ফিফো
  • Tx এবং Rx এর স্বাধীন সক্ষম।

I2S কমিউনিকেশন প্রোটোকল কাজ করছে

I2S যোগাযোগ নীতি একটি 3 ওয়্যার প্রোটোকল যা কেবলমাত্র একটি 3-লাইন সিরিয়াল বাসের মাধ্যমে অডিও ডেটা পরিচালনা করে যার মধ্যে SCK (কন্টিনিউয়াস সিরিয়াল ক্লক), WS (শব্দ নির্বাচন) এবং SD (সিরিয়াল ডেটা) রয়েছে।



I2S এর 3-তারের সংযোগ:

SCK

SCK বা সিরিয়াল ক্লক হল I2S প্রোটোকলের প্রথম লাইন যা BCLK বা বিট ক্লক লাইন নামেও পরিচিত যা অনুরূপ চক্রের ডেটা পেতে ব্যবহৃত হয়। ক্রমিক ঘড়ি ফ্রিকোয়েন্সি সহজভাবে সূত্র ব্যবহার করে সংজ্ঞায়িত করা হয় যেমন ফ্রিকোয়েন্সি = নমুনা হার x বিট প্রতিটি চ্যানেল x নম্বরের জন্য। চ্যানেলের।

ডব্লিউএস

I2S কমিউনিকেশন প্রোটোকলে, WS বা শব্দ নির্বাচন হল সেই লাইন যা FS (ফ্রেম সিলেক্ট) ওয়্যার নামেও পরিচিত যা ডান বা বাম চ্যানেলকে আলাদা করে।

WS = 0 হলে লেফট চ্যানেল বা চ্যানেল-১ ব্যবহার করা হয়।

WS = 1 হলে সঠিক চ্যানেল বা চ্যানেল-2 ব্যবহার করা হয়।

এসডি

সিরিয়াল ডেটা বা SD হল শেষ তার যেখানে পেলোড 2টি পরিপূরকের মধ্যে প্রেরণ করা হয়। সুতরাং, এটি অত্যন্ত তাৎপর্যপূর্ণ যে MSB প্রথমে স্থানান্তরিত হয়েছে, কারণ ট্রান্সমিটার এবং রিসিভার উভয়ই বিভিন্ন শব্দের দৈর্ঘ্য অন্তর্ভুক্ত করতে পারে। এইভাবে, ট্রান্সমিটার বা রিসিভারকে চিনতে হবে কতগুলি বিট প্রেরণ করা হয়েছে।

  • যদি রিসিভারের শব্দের দৈর্ঘ্য ট্রান্সমিটারের চেয়ে বেশি হয়, তাহলে শব্দটি সংক্ষিপ্ত করা হয় (এলএসবি বিটগুলি শূন্যে সেট করা হয়)।
  • যদি রিসিভারের শব্দের দৈর্ঘ্য ট্রান্সমিটারের শব্দ দৈর্ঘ্যের চেয়ে কম হয়, তাহলে 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 টাইমিং ডায়াগ্রাম

I2S এবং এর কার্যকারিতা সম্পর্কে আরও ভালভাবে বোঝার জন্য, আমাদের নীচে দেখানো I2S যোগাযোগ প্রোটোকল টাইমিং ডায়াগ্রাম রয়েছে। I2S প্রোটোকলের টাইমিং ডায়াগ্রাম নীচে দেখানো হয়েছে যার মধ্যে তিনটি তারের SCK, WS এবং SD রয়েছে৷

  I2S প্রোটোকল টাইমিং ডায়াগ্রাম
I2S প্রোটোকল টাইমিং ডায়াগ্রাম

উপরের চিত্রে, প্রথমে, সিরিয়াল ঘড়ির একটি ফ্রিকোয়েন্সি = নমুনা হার * প্রতিটি চ্যানেলের জন্য বিট * নং। চ্যানেলের)। শব্দ নির্বাচন লাইন হল দ্বিতীয় লাইন যা ডান চ্যানেলের জন্য '1' এবং বাম চ্যানেলের জন্য '0'-এর মধ্যে পরিবর্তিত হয়।

তৃতীয় লাইনটি হল সিরিয়াল ডেটা লাইন যেখানে প্রতিটি ঘড়ি চক্রে ডাটা স্থানান্তরিত হয় পতনশীল প্রান্তে বিন্দু দিয়ে উচ্চ থেকে নিম্ন পর্যন্ত।

উপরন্তু, আমরা লক্ষ্য করতে পারি যে MSB প্রেরণের আগে WS লাইন একটি CLK চক্র পরিবর্তিত হয় যা রিসিভারকে আগের শব্দটি সংরক্ষণ করার জন্য সময় দেয় এবং পরবর্তী শব্দের জন্য ইনপুট রেজিস্টার সাফ করে। WS পরিবর্তনের পর SCK পরিবর্তিত হলে MSB পাঠানো হয়।

যখনই ট্রান্সমিটার এবং রিসিভারের মধ্যে একটি ডেটা প্রেরণ করা হয় তখন প্রচারে বিলম্ব হয় যা হবে

প্রচার বিলম্ব = (বাহ্যিক ঘড়ি এবং রিসিভারের অভ্যন্তরীণ ঘড়ির মধ্যে সময়ের পার্থক্য )+( তথ্য প্রাপ্তির সাথে অভ্যন্তরীণ ঘড়ির মধ্যে সময়ের পার্থক্য)।

প্রচারের বিলম্ব কমাতে এবং ট্রান্সমিটার এবং রিসিভারের মধ্যে ডেটা ট্রান্সমিশনের সিঙ্ক্রোনাইজেশনের জন্য ট্রান্সমিটারের একটি ঘড়ি সময় থাকতে হবে

T > tr  – ধরে নেওয়া যে T হল ট্রান্সমিটারের ঘড়ির সময়কাল এবং tr হল ট্রান্সমিটারের সর্বনিম্ন ঘড়ির সময়কাল।

উপরের অবস্থার অধীনে যদি আমরা উদাহরণ হিসাবে বিবেচনা করি a ডেটা ট্রান্সমিশন রেট 2.5MHz সহ ট্রান্সমিটার তারপর:

tr = 360ns

ঘড়ি উচ্চ টিএইচসি (সর্বনিম্ন) >0.35 টি।

ঘড়ি কম tLC (সর্বনিম্ন>> 0.35T।

ডেটা ট্রান্সমিশন রেট 2.5MHz সহ স্লেভ হিসাবে রিসিভার তারপর:

ঘড়ি উচ্চ টিএইচসি (সর্বনিম্ন) <0.35 টি

ঘড়ি কম tLC (সর্বনিম্ন) <0.35T।

সেটআপ সময় tst(সর্বনিম্ন) <0.20T।

I2S প্রোটোকল Arduino

এই প্রকল্পের মূল উদ্দেশ্য হল Arduino I2S লাইব্রেরি ব্যবহার করে একটি I2S  theremin ইন্টারফেস তৈরি করা। এই প্রকল্পটি তৈরি করার জন্য প্রয়োজনীয় উপাদানগুলি হল; আরডুইনো এমকেআর জিরো, ব্রেডবোর্ড , জাম্পার তার, Adafruit MAX98357A, 3W, 4 ohms স্পিকার, এবং RobotGeek স্লাইডার।

Arduino I2S লাইব্রেরি আপনাকে I2S বাসে ডিজিটাল অডিও ডেটা প্রেরণ ও গ্রহণ করতে দেয়। সুতরাং এই উদাহরণটি Arduino ডিজাইনে গণনা করা শব্দ পুনরুত্পাদনের জন্য একটি I2S DAC ড্রাইভ করার জন্য এই লাইব্রেরিটি কীভাবে ব্যবহার করা যায় তা ব্যাখ্যা করার লক্ষ্য করে।

এই সার্কিট হিসাবে সংযুক্ত করা যেতে পারে; এই উদাহরণে ব্যবহৃত I2S DAC-এর জন্য I2S বাসের জন্য কেবল তিনটি তারের পাশাপাশি একটি পাওয়ার সাপ্লাই প্রয়োজন। Arduino MKRZero-তে I2S-এর সংযোগগুলি অনুসরণ করে;

পিন A6-তে সিরিয়াল ডেটা (SD);

পিন 2-তে সিরিয়াল ক্লক (এসসিকে);

pin3-এ ফ্রেম বা ওয়ার্ড সিলেক্ট (FS);

কাজ করছে

মূলত, থেরেমিনের দুটি নিয়ন্ত্রণ পিচ এবং ভলিউম রয়েছে। সুতরাং, এই দুটি পরামিতি দুটি স্লাইড পটেনশিওমিটার সরানোর মাধ্যমে সংশোধন করা হয়েছে, তবে, আপনি সেগুলি পড়ার জন্য সামঞ্জস্য করতে পারেন। দুটি পটেনশিওমিটার একটি ভোল্টেজ বিভাজক আকারে সংযুক্ত রয়েছে, তাই এই পটেনশিওমিটারগুলিকে সরিয়ে আপনি 0 থেকে 1023 পর্যন্ত মান পাবেন৷ এর পরে, এই মানগুলি সর্বাধিক এবং সর্বনিম্ন ফ্রিকোয়েন্সি এবং সর্বনিম্ন এবং সর্বোচ্চ আয়তনের মধ্যে ম্যাপ করা হয়৷

  I2S থার্মিন ডায়াগ্রাম
I2S থার্মিন ডায়াগ্রাম

I2S বাসে প্রেরিত শব্দ হল একটি সাধারণ সাইন তরঙ্গ যার প্রশস্ততা এবং ফ্রিকোয়েন্সি potentiometers পড়ার উপর ভিত্তি করে পরিবর্তিত হয়।

কোড

একটি Arduino MKRZero, 2-স্লাইডার potentiometers এবং একটি I2S DAC সহ একটি থেরেমিনকে ইন্টারফেস করার কোডটি নীচে দেওয়া হয়েছে৷

#অন্তর্ভুক্ত

const int maxFrequency = 5000; //সর্বোচ্চ উৎপন্ন ফ্রিকোয়েন্সি
const int minFrequency = 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; //পিনটি পাত্রের সাথে সংযুক্ত যা সংকেতের প্রশস্ততা নির্ধারণ করে
const int বাটন = 6; //পিন ফ্রিকোয়েন্সি প্রদর্শন করতে বোতাম নিয়ন্ত্রণের সাথে সংযুক্ত

অকার্যকর সেটআপ()
{

Serial.begin(9600); // সিরিয়াল পোর্ট কনফিগার করুন
// I2S ট্রান্সমিটার চালু করুন।
যদি (!I2S.begin(I2S_PHILIPS_MODE, স্যাম্পল রেট, 16)) {
Serial.println('I2S আরম্ভ করতে ব্যর্থ!');

যখন (1);
}

generateSine(); // সাইন মান দিয়ে বাফার পূরণ করুন
পিনমোড (বোতাম, INPUT_PULLUP); //ইনপুট পুলআপে বোতাম পিন রাখুন

}
অকার্যকর লুপ() {

যদি (ডিজিটালরিড(বোতাম) == কম)

{

ফ্লোট ফ্রিকোয়েন্সি = মানচিত্র(অ্যানালগরিড(ফ্রিকোয়েন্সিপিন), 0, 1023, মিন ফ্রিকোয়েন্সি, সর্বোচ্চ ফ্রিকোয়েন্সি); // মানচিত্রের ফ্রিকোয়েন্সি
int amplitude = map(analogRead(amplitudePin), 0, 1023, minVolume, maxVolume); // মানচিত্রের প্রশস্ততা
প্লেওয়েভ (ফ্রিকোয়েন্সি, 0.1, প্রশস্ততা); //খেলার শব্দ
// সিরিয়ালে মান মুদ্রণ করুন
Serial.print('ফ্রিকোয়েন্সি = ');
Serial.println(ফ্রিকোয়েন্সি);
Serial.print('এম্পলিটিউড = ');
Serial.println(প্রশস্ততা);

}

}
void generateSine() {
জন্য (int i = 0; i < wavSize; ++i) {
sine[i] = ushort(float(100) * sin(2.0 * PI * (1.0 / wavSize) * i)); //100 ছোট সংখ্যা না থাকার জন্য ব্যবহৃত হয়
}
}
অকার্যকর প্লেওয়েভ (ফ্লোট ফ্রিকোয়েন্সি, ফ্লোট সেকেন্ড, int প্রশস্ততা) {
// নির্দিষ্ট করার জন্য প্রদত্ত তরঙ্গরূপ বাফার ব্যাক করুন
// সেকেন্ডের পরিমাণ।
// প্রথমে গণনা করুন কতগুলি নমুনা চালানোর জন্য খেলতে হবে
// সেকেন্ডের পছন্দসই পরিমাণের জন্য।

স্বাক্ষরবিহীন int পুনরাবৃত্তি = সেকেন্ড * স্যাম্পল রেট;

// তারপর 'গতি' গণনা করুন যা আমরা তরঙ্গের মধ্য দিয়ে চলেছি
// বাফার বাজানো হচ্ছে স্বর ফ্রিকোয়েন্সি উপর ভিত্তি করে.

float delta = (ফ্রিকোয়েন্সি * wavSize) / float(sampleRate);

// এখন সমস্ত নমুনা লুপ করুন এবং গণনা করে সেগুলি চালান
// সময়ের প্রতিটি মুহূর্তের জন্য তরঙ্গ বাফারের মধ্যে অবস্থান।

জন্য (আনসাইন করা int i = 0; i < পুনরাবৃত্তি; ++i) {
সংক্ষিপ্ত pos = (আনসাইন করা int)(i * ডেল্টা) % wavSize;
সংক্ষিপ্ত নমুনা = প্রশস্ততা * সাইন [পোস];

// নমুনাটি নকল করুন যাতে এটি বাম এবং ডান উভয় চ্যানেলে পাঠানো হয়।
// মনে হচ্ছে ডান চ্যানেল, বাম চ্যানেল যদি লিখতে চান
// স্টেরিও সাউন্ড।

যখন (I2S.availableForWrite() <2);
I2S.write(নমুনা);
I2S.write(নমুনা);

}
}

I2C এবং I2S প্রোটোকলের মধ্যে পার্থক্য

I2C এবং I2S প্রোটোকলের মধ্যে পার্থক্য নিম্নলিখিতগুলি অন্তর্ভুক্ত করে।

2C

I2S

দ্য I2C প্রোটোকল ইন্টার-আইসি বাস প্রোটোকলের জন্য দাঁড়িয়েছে I2S মানে ইন্টার-আইসি সাউন্ড প্রোটোকল .
এটি প্রধানত একটি অনুরূপ পিসিবিতে স্থাপন করা সমন্বিত সার্কিটের মধ্যে সংকেত চালানোর জন্য ব্যবহৃত হয়। এটি ডিজিটাল অডিও ডিভাইস সংযোগ করার জন্য ব্যবহার করা হয়.
এটি এসডিএ এবং এসসিএলের মতো বেশ কয়েকটি প্রভু এবং দাসদের মধ্যে দুটি লাইন ব্যবহার করে . এটি তিনটি লাইন WS, SCK  এবং SD ব্যবহার করে।
এটি মাল্টি-মাস্টার এবং মাল্টি-স্লেভ সমর্থন করে। এটি একটি একক মাস্টার সমর্থন করে।
এই প্রোটোকল CLK স্ট্রেচিং সমর্থন করে। এই প্রোটোকলটিতে CLK স্ট্রেচিং নেই।
I2C অতিরিক্ত ওভারহেড স্টার্ট এবং স্টপ বিট অন্তর্ভুক্ত করে। I2S কোনো স্টার্ট এবং স্টপ বিট অন্তর্ভুক্ত করে না।

সুবিধাদি

দ্য I2S বাসের সুবিধা নিম্নলিখিত অন্তর্ভুক্ত.

  • I2S পৃথক CLK এবং সিরিয়াল ডেটা লাইন ব্যবহার করে। তাই অ্যাসিঙ্ক্রোনাস সিস্টেমের তুলনায় এটিতে খুব সাধারণ রিসিভার ডিজাইন রয়েছে।
  • এটি একটি একক মাস্টার ডিভাইস তাই ডেটা সিঙ্ক্রোনাইজেশনের সাথে কোন সমস্যা নেই।
  • I2S o/p ভিত্তিক মাইক্রোফোনের জন্য একটি এনালগ ফ্রন্ট এন্ডের প্রয়োজন হয় না তবে একটি ডিজিটাল ট্রান্সমিটার ব্যবহার করে একটি বেতার মাইক্রোফোনের মধ্যে ব্যবহার করা হয়। এটি ব্যবহার করে, আপনি ট্রান্সমিটার এবং ট্রান্সডুসারের মধ্যে একটি সম্পূর্ণ ডিজিটাল সংযোগ থাকতে পারেন।

অসুবিধা

দ্য I2S বাসের অসুবিধা নিম্নলিখিত অন্তর্ভুক্ত.

  • তারের মাধ্যমে ডেটা স্থানান্তরের জন্য I2S প্রস্তাবিত নয়।
  • উচ্চ-স্তরের অ্যাপ্লিকেশনের মধ্যে I2S সমর্থিত নয়।
  • এই প্রোটোকলের তিনটি সিগন্যাল লাইনের মধ্যে একটি সিঙ্ক্রোনাইজেশন সমস্যা রয়েছে যা উচ্চ বিট রেট এবং স্যাম্পলিং ফ্রিকোয়েন্সিতে লক্ষ্য করা যায়। সুতরাং এই সমস্যাটি মূলত ঘড়ির লাইন এবং ডেটা লাইনের মধ্যে প্রচার বিলম্বের তারতম্যের কারণে ঘটে।
  • I2S একটি ত্রুটি সনাক্তকরণ প্রক্রিয়া অন্তর্ভুক্ত করে না, তাই এটি ডেটা ডিকোডিংয়ের মধ্যে ত্রুটি সৃষ্টি করতে পারে।
  • এটি প্রধানত একটি অনুরূপ PCB-তে আন্তঃ-আইসি যোগাযোগের জন্য ব্যবহৃত হয়।
  • I2S এর জন্য কোন সাধারণ সংযোগকারী এবং আন্তঃসংযোগকারী তার নেই, তাই বিভিন্ন ডিজাইনার বিভিন্ন সংযোগকারী ব্যবহার করেন।

অ্যাপ্লিকেশন

দ্য I2S প্রোটোকলের অ্যাপ্লিকেশন নিম্নলিখিত অন্তর্ভুক্ত.

  • I2S ডিজিটাল অডিও ডিভাইস সংযোগের জন্য ব্যবহৃত হয়।
  • এই প্রোটোকলটি অডিও চালানোর জন্য একটি ডিএসপি বা মাইক্রোকন্ট্রোলার থেকে অডিও কোডেকে অডিও ডেটা স্থানান্তর করতে ব্যাপকভাবে ব্যবহার করা হয়।
  • প্রাথমিকভাবে, I2S ইন্টারফেস সিডি প্লেয়ার ডিজাইনের মধ্যে ব্যবহার করা হয়। এখন, এটি পাওয়া যাবে যেখানে IC-এর মধ্যে ডিজিটাল অডিও ডেটা পাঠানো হচ্ছে।
  • I2S DSP, অডিও ADC, DAC, মাইক্রোকন্ট্রোলার, স্যাম্পল রেট কনভার্টার ইত্যাদিতে ব্যবহৃত হয়।
  • I2S বিশেষ করে ডিজিটাল অডিও ডেটা যোগাযোগের জন্য ইন্টিগ্রেটেড সার্কিটের মধ্যে ব্যবহার করার জন্য ডিজাইন করা হয়েছে।
  • যখন I2S ডিজিটাল অডিও ডিভাইসগুলির মধ্যে অডিও ডেটা ট্রান্সমিশনের উপর ফোকাস করে তখন এই প্রোটোকল মাইক্রোকন্ট্রোলার এবং এর পেরিফেরাল ডিভাইসগুলির সাথে সংযোগ স্থাপনে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে।

সুতরাং, এই একটি ওভারভিউ সম্পর্কে সব I2S প্রোটোকল স্পেসিফিকেশন যার মধ্যে কাজ, পার্থক্য এবং এর অ্যাপ্লিকেশন রয়েছে। I²S হল একটি 3 তারের সিঙ্ক্রোনাস সিরিয়াল প্রোটোকল দুটি সমন্বিত সার্কিটের মধ্যে ডিজিটাল স্টেরিও অডিও স্থানান্তর করতে ব্যবহৃত হয়। দ্য I2S প্রোটোকল বিশ্লেষক একটি সংকেত ডিকোডার যা সমস্ত DigiView লজিক বিশ্লেষক অন্তর্ভুক্ত করে। এই ডিজিভিউ সফ্টওয়্যারটি কেবল সমস্ত ধরণের সংকেতগুলিতে বিস্তৃত অনুসন্ধান, নেভিগেশন, রপ্তানি, পরিমাপ, প্লট এবং মুদ্রণের ক্ষমতা সরবরাহ করে। এখানে আপনার জন্য একটি প্রশ্ন, I3C প্রোটোকল কি?