একজন i2c মাস্টার কতজন i2c ক্রীতদাস সমর্থন করতে পারেন?


17

I2c মাস্টার যে গাড়ি চালাতে পারে সেখানে সর্বাধিক সংখ্যক আই 2 সি ক্রীতদাস রয়েছে? শারীরিক সীমাবদ্ধতার কারণগুলি কী কী?


1
আপনার একটি 7 বিটের ঠিকানা আছে। এর অর্থ আপনি 127 দাস পর্যন্ত সম্বোধন করতে পারেন।
বটনিক

ধন্যবাদ। বর্তমান ড্রাইভ, ক্যাপাসিটেন্স বা এমন কিছুর মতো শারীরিক সীমাবদ্ধ কারণগুলি কি দাসের সংখ্যা 127 পর্যন্ত পৌঁছাতে বাধা দেয়?
user768421

1
@ বটনিক সম্পূর্ণরূপে আই 2 সি সুইচ, হাবস, বাফার, রিপিটার এবং কোনও আই 2 সি ডিভাইস উপেক্ষা করছে যা আপনাকে একটি বাস প্রসারিত করতে দেয়।
পাসেরবি

উত্তর:


22

সফ্টওয়্যার সীমিতকরণের কারণটি দাসদের জন্য ব্যবহৃত ঠিকানার আকার: 7-বিট বা 10-বিট, যা যথাক্রমে 127 এবং 1023 ডিভাইস সমর্থন করে support শারীরিকভাবে, দুটি বিধিনিষেধ আছে। প্রথমত, বাসের দৈহিক আকার কারণ বাসটি কেবল সংক্ষিপ্ত রানের জন্য ব্যবহৃত হয় (আন্তঃ আইসি অংশ)। বাসটি খুব বড় হলে ক্যাপাসিটিভ লোডিং এবং প্রসারণের বিলম্বের প্রভাব রয়েছে যা মোকাবেলা করা দরকার। দ্বিতীয়ত, কিছু ডিভাইস I2C ঠিকানার সম্পূর্ণ পরিসর সমর্থন করতে পারে না। উদাহরণস্বরূপ, MPU6050 জাইরোস্কোপ কেবল দুটি ঠিকানা সমর্থন করে এবং কিছু ডিভাইস বিশেষ উদ্দেশ্যে নির্দিষ্ট ঠিকানা সংরক্ষণ করে।


2
আপনার একের পর এক ত্রুটি রয়েছে। 7 বিট ঠিকানা 128 ঠিকানার (0 থেকে 127) সমর্থন করে। 10 বিট অ্যাড্রেসিং সমর্থন 1024 ঠিকানার (0 থেকে 1023)।
কার্টিসএইচএক্স

3
এটি এক ত্রুটির দ্বারা বন্ধ নয়। এটি একটি "6 ত্রুটি বন্ধ" কারণ এখানে কেবল একটি নয় 7 টি সংরক্ষিত ঠিকানা রয়েছে।
ক্রুয়েমি

সম্বোধন প্রকল্পটি বাস, মাস্টার বা ক্রীতদাসের ডিভাইস দ্বারা নির্ধারিত হয়। কিছু ডিভাইসে পূর্বনির্ধারিত অ্যাড্রেস রেঞ্জ এবং সংরক্ষিত ঠিকানা রয়েছে। অন্যান্য ডিভাইস, উদাহরণস্বরূপ অনেক মাইক্রো কন্ট্রোলারগুলির কোনও সংরক্ষিত ঠিকানা নেই এবং প্রদত্ত বিট স্কিমের কোনও ঠিকানা ব্যবহার করতে পারেন।
vini_i

এই সংখ্যাগুলি কিছুটা সঠিক, তবে একটি সতর্কতার প্রয়োজন। 1111 XXX এবং 0000 XXX এর মতো কয়েকটি সংরক্ষিত ঠিকানা রয়েছে। এর অর্থ হ'ল 7-বিট = 2 ^ 7 - 16 = 112 ব্যবহারযোগ্য ঠিকানা, 10-বিট পূর্ণ 2 ^ 10 1024। 8-বিট নয় (কোনও জিনিস হওয়া উচিত নয়) এটি সাধারণত আর / ডাব্লু বিট সহ অন্তর্ভুক্ত 7 বিট উপর। nxp.com/docs/en/user-guide/UM10204.pdf
বাসফাল্ট

@ বুসফল্ট আমি স্বীকার করি যে 8 বিট ঠিকানা কার্যকরভাবে কোনও জিনিস নয়। আমি তাদের আমার উত্তর থেকে সরিয়েছি। বেশিরভাগ মাইক্রোকন্ট্রোলাররা কিছু সংরক্ষিত ঠিকানাগুলিকে অগ্রাহ্য করতে এবং পুরো ঠিকানার ব্যাপ্তি ব্যবহার করতে পারেন। আমি আমার উত্তরে নোট করছি যে এটি ডিভাইস নির্দিষ্ট।
vini_i

10

নোডের সর্বাধিক সংখ্যা ঠিকানার জায়গার দ্বারা সীমাবদ্ধ এবং 400 পিএফের মোট বাসের সীমাবদ্ধতার দ্বারা, যা ব্যবহারিক যোগাযোগের দূরত্ব কয়েক মিটার পর্যন্ত সীমাবদ্ধ করে।

I²C এ আরও পড়ুন


9

সম্বোধন ডিভাইসের সংখ্যা সীমিত করে - কেউ কেউ 10-বিট ঠিকানা ব্যবহার করতে পারে (মোটামুটি খুব কম ব্যবহৃত হয়), যা ঠিকানার সংখ্যা 1024-এ সীমাবদ্ধ করে। সেখানে বেশ কয়েকটি 'সংরক্ষিত' ঠিকানা রয়েছে।

আই 2 সি ("দুটি তারের বাসের বিপরীতে" বা অন্যেরা যাঁরা অনুরূপ বাস কল করতে চান) এর NXP ( N Phile ফিলিপস) স্ট্যান্ডার্ড, ইউএম 10204 আই 2 সি -বাস স্পেসিফিকেশন এবং ব্যবহারকারী ম্যানুয়াল অনুসরণ করা উচিত । এটি আপনার প্রাথমিক রেফারেন্স ডকুমেন্ট হতে হবে, অন্য কোথাও বিদ্যমান বিভিন্ন ব্যাখ্যা এবং উপগ্রহ নয়।

সর্বাধিক সংখ্যক ডিভাইস দুর্বল আউটপুট (যা পরিবর্তে সর্বনিম্ন পুলআপ প্রতিরোধক নির্ধারণ করে), তারের এবং ইনপুট ক্যাপাসিটেন্স এবং অপারেটিং মোড / ফ্রিকোয়েন্সি দ্বারা ড্রাইভ ক্ষমতা দ্বারা প্রভাবিত হবে। Cap.২ বিভাগটি সর্বাধিক অনুমোদনযোগ্য বাস ক্যাপাসিট্যান্সের উপরে অপারেটিং দেখুন যদি সর্বাধিক ক্যাপাসিট্যান্স অতিক্রম করতে হবে:

এখানে চিত্র বর্ণনা লিখুন


7

একটি আই 2 সি বাস মূলত বাসের ক্যাপাসিটেন্স (এবং এইভাবে গতি), এবং অ্যাক্সেসযোগ্য ডিভাইসের ঠিকানাগুলির দ্বারা সীমাবদ্ধ। এবং শারীরিক বোর্ড স্পেস।

তবে কোনও বাস্তব উপরের সীমা নেই, যখন আপনি বাস বাফার, এক্সটেন্ডার, রিপিটার, হাবস, মাল্টিপ্লেক্সার, সুইচ (বা একাধিক বাসের মধ্যে স্যুইচ করতে পারে এমন কোনও ডিভাইসের জন্য অন্য কোনও নাম) ফ্যাক্ট করেন। এগুলি কিছু আই 2 সি ওভারহেড যুক্ত করে, একই আই 2 সি বাসের মাধ্যমে অ্যাক্সেসযোগ্য হতে পারে। উদাহরণস্বরূপ, PCA9548A হ'ল একটি 8 বিটের বাস স্যুইচ।

এই একক চিপ তাত্ত্বিকভাবে আই 2 সি ক্রীতদাসের সংখ্যা (127 * 8) অন্যথায় উপলভ্য করতে পারেন। এবং PCA9548A একক বাসে 8 টি পর্যন্ত ঠিকানার জন্য কনফিগার করা যায়, তাই 8 * 8 * 127 ডিভাইস। (গণিত বন্ধ হতে পারে)। এবং এটি কেবল এই ডিভাইসটির সাথে এবং আরও কিছু নয়।

সত্যি বলতে গেলে, আপনি ক্যাপাসিট্যান্সের জন্য সামঞ্জস্য করলে কোনও তাত্ত্বিক সীমা নেই।


5

আই 2 সি 2 ঠিকানা দৈর্ঘ্য, 7 এবং 10 বিট নির্দিষ্ট করে , যা তাত্ত্বিক সর্বোচ্চ 128 এবং 1024 স্বতন্ত্র ঠিকানা দেয় যথাক্রমে।

তবে কয়েকটি সংরক্ষিত ঠিকানা রয়েছে, যেমন 0x00 (সাধারণ কল)। এটি ঠিকানার জায়গার আরও সীমাবদ্ধ করে।

আপনি যদি এমন কোনও সিস্টেম তৈরি করছেন যেখানে আই 2 সি ডিভাইসগুলির উপর আপনার সরাসরি নিয়ন্ত্রণ রয়েছে, আপনি নিজের ব্যবহারের জন্য সংরক্ষিত ঠিকানাগুলি ব্যবহার করতে পারেন তবে সিস্টেমটি আর আই 2 সি মান মেনে চলবে না।

সম্বোধনের পাশাপাশি শারীরিক বাসের সীমাবদ্ধতা রয়েছে। বাসের প্রতিটি ডিভাইসকে একটি নির্দিষ্ট সময়ের ব্যবধানে (বাসের গতির উপর নির্ভর করে) বাসটিকে কম টানতে সক্ষম হতে হবে। বাসে প্রচুর ক্যাপাসিটেন্স থাকলে ডিভাইসগুলি এসডিএকে খুব কম দ্রুত টানতে সক্ষম না হতে পারে এবং টানা আপগুলি এসডিএকে দ্রুত পর্যাপ্ত পরিমাণে ব্যাক আপ করতে না পারে।

এখন, ড্রাইভার হার্ডওয়্যার কিছুটা দিয়ে হার্ডওয়্যার সমস্যাগুলি কাটিয়ে উঠতে পারে। আমি এই মুহূর্তে এমন একটি প্রকল্পে কাজ করছি যা বেশ কয়েকটি 10 ​​মিটারের বেশি ডিভাইসগুলির সাথে যোগাযোগ করতে I2C ব্যবহার করে। প্রধান বাসটিতে 24v ব্যবহার করা হয় এবং প্রতিটি বোর্ডের একটি ড্রাইভার থাকে যা এটিকে 3.3v এ নামিয়ে দেয়।

বাদামের শেলের মধ্যে, আই 2 সি এর শারীরিক সীমাবদ্ধতা কাটিয়ে উঠতে পারে। অ্যাড্রেসিং করতে পরাস্ত, কিন্তু শুধুমাত্র যদি আপনি ডিভাইস এর মাধ্যমে সরাসরি নিয়ন্ত্রণ রয়েছে।


আপনি খুব দীর্ঘ আই 2 সি বাসে কাজ করে চলেছেন প্রায় তিন বছর হয়ে গেছে। তারা কি ঠিক আছে?
wallyk

1
@ ওয়াল্ক আমি উত্তরটি পোস্ট করার পরেই এই সংস্থাটি ছেড়ে দিয়েছি। আমি বলব যে সঠিক হার্ডওয়্যার দেওয়ার পরে, আপনি I2C দীর্ঘ দূরত্বে যোগাযোগ করতে পারবেন। তবে, অন্যান্য যোগাযোগ প্রোটোকল রয়েছে যা দীর্ঘ দূরত্বের জন্য ডিজাইন করা হয়েছে এবং সম্ভবত I2C এর চেয়ে ভাল পছন্দ হবে।
কার্টিসএইচএক্স

5

একজন মাস্টার যে দাসদের চালনা করতে পারে তার প্রাথমিক সীমাবদ্ধতাটি কেবল বৈদ্যুতিন কারণ যেমন বাস ক্যাপাসিটেন্স, ফুটো, ড্রাইভিং শক্তি ইত্যাদি থেকে আসতে পারে যদি কেউ শূন্য পরজীবী ক্যাপাসিটেন্স এবং শূন্য ফাঁস দিয়ে দাস তৈরি করতে পারে, এবং যদি কেউ তাদের সংযোগ করতে পারে শূন্য-ক্যাপাসিট্যান্স বোর্ডের ট্রেস সহ, তবে বাসের ক্যাপাসিটেন্স কোনও কারণ হবে না, তবে বাস্তবে উভয়ই অনুমান ধারণ করবে না।

অন্যদিকে একে অপরের সম্পর্কে "জানে" এমন ডিভাইসগুলির সম্বোধন করা আসলেই কোনও সমস্যা নয়। পেরিফেরিয়াল ডিজাইন করা তুচ্ছ হবে যা একটি পড়ার এবং একটি লেখার ঠিকানা ব্যবহার করে কোটি কোটি চিপকে সংযুক্ত হতে দেয়। কেবলমাত্র উল্লেখ করুন যে প্রতিটি ডিভাইসের অবশ্যই একটি অনন্য ফোর-বাইট আইডি থাকতে হবে এবং লেখার ঠিকানাটি সর্বদা শোনার প্রয়োজন হয় তবে অবশ্যই প্রতিটি লেনদেনের বাইরে যেতে হবে যার প্রথম চারটি সংক্রমণিত ডেটা বাইটগুলি তাদের আইডির সাথে মেলে না। আরও উল্লেখ করুন যে শেষ লিখনের লেনদেন শুনেছি যদি তারা তাদের ঠিকানার সাথে মিলে যায় তবে ডিভাইসগুলি কেবল পঠনের ঠিকানায় সাড়া দিতে পারে।

যদি কোনও মাস্টার সমস্ত সংযুক্ত দাসের আইডি নির্ধারণ করার ক্ষমতা যুক্ত করতে চান তবে এই জাতীয় উদ্দেশ্যে কেউ কিছু বিশেষ আইডি রেঞ্জ সংরক্ষণ করতে পারে। উদাহরণস্বরূপ, কেউ বলতে পারেন যে প্রথম আইডি বাইটটি যদি এফএফ হয়, তবে পরবর্তী চারটি বাইটগুলি একটি মাস্ক এবং চারটি পরে একটি আইডি হবে; কোনও ডিভাইস সংযুক্ত থাকতে হবে (এবং মাস্কের দ্বারা নির্দিষ্ট করা আইডির অংশটি কমান্ডের সাথে মিলে গেলে এটির শেষ আইডি বাইটটি ছোঁড়া উচিত)। এটি কোনও মাস্টারকে 64 টি লেনদেন ব্যবহার করে কমপক্ষে একটি ডিভাইস এবং 62 বা ততোধিক সংখ্যক কম লেনদেন ব্যবহার করে অতিরিক্ত ডিভাইস সনাক্ত করার অনুমতি দেবে। সম্ভবত ডিভাইস শনাক্তকরণের দ্রুততম উপায় নয়, তবে বিলিয়ন বিলিয়ন ডিভাইসের আইডি অনুসন্ধানের জায়গা দেওয়া খারাপ নয়।


2

সংক্ষিপ্ত উত্তর: এটি নির্ভর করে

যদি আপনার 104 ডিভাইস পর্যন্ত 7 বিট অ্যাড্রেস সহ (সাধারণ) ডিভাইস থাকে (128 ঠিকানা - সংরক্ষিত ঠিকানা (0x00-0x07 এবং 0xF0-0xFF সংরক্ষিত)) (নির্দিষ্ট সীমাবদ্ধতা প্রযোজ্য) যদি আপনার (কম সাধারণ) ডিভাইসগুলি থাকে যা 10 বিট সমর্থন করে 1024 ডিভাইস পর্যন্ত সম্বোধন করা (আপনি 7 বিট এবং 10 বিবিট ডিভাইসগুলি মিশ্রিত করতে পারেন এবং 1136 ডিভাইস পর্যন্ত যেতে পারেন)

এখন সীমাবদ্ধতা: সর্বাধিক সাধারণ ডিভাইসগুলি কেবল দুটি থেকে 8 টি আলাদা ঠিকানায় কনফিগার করা যায়। আপনি বিভিন্ন বেস ঠিকানাগুলির সাথে কাস্টম অর্ডার করে ডিভাইসগুলি দিয়ে এটি কাটিয়ে উঠতে পারেন (তবে এর অর্থ সাধারণত আপনি ডিভাইসের ন্যূনতম পরিমাণের অর্ডার দেন) এখানে হার্ডওয়্যার সীমাবদ্ধতাগুলিও রয়েছে (মূলত বাস ক্যাপাসিটেন্স) তবে এটি বিশেষ আই 2 সি ড্রাইভার দ্বারা সমাধান করা যেতে পারে।

আপনি যদি বড় ডিস্টেন্সের মাধ্যমে অনেকগুলি ডিভাইস সংযোগ করতে চান তবে আমি যেভাবেই কোনও ফিল্ডবাস ব্যবহার করার পরামর্শ দেব! আই 2 সি একটি ডিভাইসের অভ্যন্তরে যোগাযোগের উদ্দেশ্যে করা হয়েছে (টিভি সেটের মতো)। আমি নিজেই আইপিসিটি রাস্পবেরিপি দিয়ে 50 সেমি পর্যন্ত বহিরাগত কেবলগুলি সহ ব্যবহার করছি (এমনকি টি-বিভাগগুলির সাথেও আপনার কোনও বাস সিস্টেমে থাকা উচিত নয়)। এটি আশ্চর্যজনকভাবে ভাল কাজ করে।


0

বাসের সাথে সংযুক্ত ডিভাইসের সংখ্যা কেবলমাত্র 400 পিএফ এর অনুমোদিত অনুমোদিত বাস ক্যাপাসিটেন্স দ্বারা সীমাবদ্ধ। যেহেতু আইসিসি ইন্টারফেস সহ বেশিরভাগ আইসি কম-শক্তি, উচ্চ-প্রতিবন্ধক সিএমওএস প্রযুক্তি ব্যবহার করে, সর্বাধিক ক্যাপাসিট্যান্স পৌঁছানোর আগে অনেকগুলি আইসি আই আই সি বাসের সাথে সংযুক্ত হতে পারে


1
এটি সম্পূর্ণ ম্যানরারে ওপির প্রশ্নের উত্তর দেয় না। আনুমানিক মানগুলি ব্যবহার করেও প্রশ্নের সমস্ত দিকের উত্তর দেওয়ার চেষ্টা করুন। নির্দিষ্ট করুন এবং / অথবা আপনার তথ্যের উত্সটিতে একটি লিঙ্ক রেখে দিন।
স্পার্ক 256

0

যুক্ত মাল্টিপ্লেক্সার চিপস (যেমন টিসিএ 9544 এ) বা বাফারগুলির সাথে (পিসিএ 9515 বি এর মতো) আপনি সমস্ত সীমা অতিক্রম করতে পারবেন - উভয় বাসের সক্ষমতা এবং সম্বোধন।

আপনি একটি মাল্টিপ্লেক্সারের পিছনে অভিন্ন ঠিকানা সম্বলিত 3 টি ডিভাইস রাখতে পারেন এবং এর মধ্যে কেবল একটি নির্বাচন করতে পারেন, এটির সাথে যোগাযোগ করুন এবং পরে অন্যটি নির্বাচন করতে পারেন। অবশ্যই সফ্টওয়্যার আরও জটিল হয়।

আপনার যদি দীর্ঘ তারের থাকে তবে আপনি মাঝখানে একটি বাফার রাখতে পারেন এবং ক্যাপাসিট্যান্স সীমাটি অতিক্রম করতে পারেন।


না, আপনি এখনও সীমাবদ্ধ থাকবেন: 4 চ্যানেল / মাল্টিপ্লেক্সার, প্রতি চ্যানেলটিতে আপনার কাছে 4 টি সাব-চ্যানেল রয়েছে, তারপরে আপনার কাছে সাব-চ্যানেল, সাবসুবসুব্যাঙ্কেল এবং আরও অনেক কিছু রয়েছে। আপনার কাছে প্রতি চ্যানেলবিছরের 3 ঠিকানা-লাইন রয়েছে: 4 ^ (2 ^ 3) = 65536 চ্যানেল। প্রতি চ্যানেলটিতে আপনার কাছে 2 ^ 8 - 7 - 8 + 2 ^ 10 = 1265 ডিভাইস / চ্যানেল রয়েছে (যখন আপনি বাফারও ব্যবহার করেন) (-7 সংরক্ষিত ঠিকানার জন্য এবং মাল্টিপ্লেক্স ঠিকানাগুলির জন্য -8)। 1265 * 65536 = 82903040 সর্বোচ্চ ডিভাইস।
12431234123412341234123

সম্পাদনা: দুঃখিত একটি ত্রুটি ছিল: এটি 2 ^ 7 - 7 - 8 + 2 ^ 10 = 1137 ডিভাইস / চ্যানেল => 1137 * 65536 = 74514432 ডিভাইস। তবে আপনি যখন কিছু বাফার চালু এবং বন্ধ করতে আইও-এক্সপেন্ডার ব্যবহার করেন তখন আরও বেশি সম্ভাবনা থাকতে পারে (যা ব্যবহারিক ব্যবহারের চেয়ে বেশি তবে তাত্ত্বিক সম্ভাবনা কী)।
12431234123412341234123
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.