কিছু এডিসি / ড্যাক ডিভাইসে এগুলি 2 এর পরিপূরক আকারে ডেটা আউটপুট / ইনপুট দেওয়ার বিকল্পসমূহ।
দু'টির পরিপূরক ফর্মটিতে ডিজিটাল ডেটা উপস্থাপনের সুবিধা কী কী যখন আপনি কেবল সোজা বাইনারি কোড রাখতে পারেন এবং রূপান্তরটির সময় বাঁচাতে পারেন?
কিছু এডিসি / ড্যাক ডিভাইসে এগুলি 2 এর পরিপূরক আকারে ডেটা আউটপুট / ইনপুট দেওয়ার বিকল্পসমূহ।
দু'টির পরিপূরক ফর্মটিতে ডিজিটাল ডেটা উপস্থাপনের সুবিধা কী কী যখন আপনি কেবল সোজা বাইনারি কোড রাখতে পারেন এবং রূপান্তরটির সময় বাঁচাতে পারেন?
উত্তর:
দু'জনের স্বাক্ষরিত পূর্ণসংখ্যার প্রশংসা উপস্থাপনাটি হার্ডওয়ারে চালিত করা সহজ। উদাহরণস্বরূপ, অবহেলা (অর্থাত্ x = -x ) সংখ্যার সমস্ত বিট উল্টিয়ে একটি যুক্ত করে সম্পাদন করা যেতে পারে। কাঁচা বাইনারিতে একই ক্রিয়াকলাপ সম্পাদন করা (যেমন একটি সাইন বিট সহ) সাধারণত আরও অনেক বেশি কাজ জড়িত, কারণ আপনাকে অবশ্যই স্ট্রিমের কিছু বিটকে বিশেষ হিসাবে বিবেচনা করতে হবে। একই হিসাবে যুক্ত হয় - negativeণাত্মক সংখ্যার জন্য অ্যাড অপারেশন ধনাত্মক সংখ্যার জন্য অ্যাড অপারেশনের অনুরূপ, তাই নেতিবাচক কেস পরিচালনা করার জন্য কোনও অতিরিক্ত যুক্তি (কোনও পাং উদ্দেশ্যে নয়) প্রয়োজন হয় না।
যদিও এর অর্থ এই নয় যে এটি আপনার দৃষ্টিকোণ থেকে সহজ, এই ডেটার গ্রাহক হিসাবে, এটি ডিভাইসের নকশার প্রচেষ্টা এবং জটিলতা কমিয়ে দেয়, সম্ভবত এটি একেবারে সস্তা করে তোলে।
এডিসি ডেটা রূপান্তর করতে পারে (0 এবং 5V এর মধ্যে ইনপুট ভোল্টেজ বলুন) এবং আপনার প্রয়োজন হয় সেই তথ্যটি স্বাক্ষরিত (0 ভি = 0, 5 ভি = সর্বোচ্চ কোড) বা স্বাক্ষরিত (2.5V = 0, 0 ভি = সর্বোচ্চ -5, 5 ভি = সর্বোচ্চ) + + ve)।
2 এর পরিপূরক স্বাক্ষরিত তথ্যের জন্য কম্পিউটারের সাধারণ প্রতিনিধিত্ব হওয়া ছাড়াও, উপরে বর্ণিত দুটি ফর্ম্যাটের মধ্যে রূপান্তর সম্পূর্ণ নগণ্য: কেবল এমএসবি উল্টে দিন!
এটি এডিসির অভ্যন্তরীণ যুক্তি যুক্ত করার জন্য অবিশ্বাস্যভাবে সস্তা এবং এডিসিকে ডেটাশিটে আরেকটি বিক্রয় পয়েন্ট দেয় ...
যদি আপনার নেতিবাচক সংখ্যার উপস্থাপনে গণিত করা দরকার হয় তবে দ্বিগুণ পরিপূরক এটি অফসেট বাইনারি তুলনায় আরও সহজ করে তোলে যা "স্বাক্ষরিত ইনট" ডেটা টাইপের সাথে মিলবে। আপনার সংকলকটি সহজেই এটির সাথে কীভাবে व्यवहार করবেন তা জানবে will অন্যথায়, আপনি ঘড়ির টিক্সগুলি পিছনে পিছনে রূপান্তর করতে ব্যয় করেন।
প্রশ্নে, এটিকে বোঝা যাচ্ছে যে এডিসিকে 2 এর পরিপূরক ফর্মের মধ্যে স্ট্রেট বাইনারিগুলির চেয়ে মান ফিরিয়ে দিতে বেশি সময় লাগে। যদিও এটি কোনও এডিসির কোনও নির্দিষ্ট বাস্তবায়নের ক্ষেত্রে এটি হতে পারে তবে এটি সাধারণভাবে সত্য নয় (উদাহরণস্বরূপ, মাইক্রো-কন্ট্রোলারদের এমএসপি ৪৩০ সিরিজের একটি এডিসি পেরিফেরাল অন-চিপ রয়েছে যা স্ট্রিন বাইনারি বা 2 এর পরিপূরক হিসাবে মানটির প্রতিবেদন করবে, তবে এটি উভয় ক্ষেত্রে একই সংখ্যক চক্র গ্রহণ করে)।
উপায়টি অতিক্রম করার সাথে সাথে, 2 এর পরিপূরক এবং স্ট্রেইট বাইনারিগুলির মধ্যে পছন্দটি বেশিরভাগ ক্ষেত্রে আপনার ট্রান্সডুসারগুলি কীভাবে কাজ করে এবং আপনি কীভাবে আপনার ডেটা প্রক্রিয়াকরণ করতে চান তা নেমে আসে।
সোজা বাইনারি মোডে, এডিসি আপনাকে এমন একটি নম্বর দিচ্ছে যা এনালগ পরিমাণের পরিমাপের (ভার্চুয়ালি সর্বদা ভোল্টেজ) এবং পূর্ণ-স্কেল রেফারেন্স পরিমাণের মধ্যে অনুপাতকে উপস্থাপন করে। উদাহরণস্বরূপ, একটি 10-বিট এডিসি 0 থেকে 1023 (অন্তর্ভুক্ত) পর্যন্ত মানগুলি ফিরিয়ে দিতে পারে। আপনি যদি কোনও ভোল্টেজ (বলুন, 1.25 ভোল্ট) পরিমাপ করেন যা এডিসির রেফারেন্স ভোল্টেজের অর্ধেক (বলুন, 2.50 ভোল্ট), আপনি যে বাইনারি কোড পড়েছেন তা আপনি পড়তে পারেন এমন সর্বোচ্চ মানের অর্ধেক হয়ে যাবে - সুতরাং, 512, বা তার আশেপাশে, এডিসিতে রাউন্ডিং এবং অ-লাইনারিটির বিষয়।
উদাহরণস্বরূপ, ধরা যাক আপনার একটি ট্রান্সডুসার রয়েছে যা একটি ট্যাঙ্কে রকেট জ্বালানির পরিমাণের প্রতিবেদন করে। 0 ভি মানে ট্যাঙ্কটি খালি এবং 2.5V ভোল্টের অর্থ এটি পূর্ণ। সুতরাং আপনি কেবল আপনার এডিসিতে ট্রান্সডুসারকে সংযুক্ত করুন এবং আপনি চলে যাবেন!
তবে লক্ষ্য করুন যে উপরের অনুচ্ছেদে নেতিবাচক ভোল্টেজগুলি পরিমাপ করার কোনও উপায় নেই। যদি আমরা ট্যাঙ্কের ভিতরে এবং বাইরে রকেট জ্বালানির প্রবাহ পরিমাপ করতে চাই (এবং আমাদের এটির জন্য একটি ট্রান্সডুসার ছিল)? এডিসি নেতিবাচক সংখ্যাগুলি পরিমাপ করতে পারে না, সুতরাং আমাদের সমস্যা আছে। যাইহোক, 2 এর পরিপূরক মোড ব্যবহার করে এটি জাল করার সহজ উপায় রয়েছে: এই ক্ষেত্রে, ট্রান্সডুসার আউটপুটটিকে পুনরায় পক্ষপাত করা হয় যাতে এডিসির দুটি রেফারেন্স ভোল্টেজের মধ্যে শূন্য পয়েন্ট অর্ধেক হয়ে যায়। অন্য কথায়, ইতিবাচক প্রবাহ 1.25V এবং 2.50V এর মধ্যে ভোল্টেজ দ্বারা প্রতিনিধিত্ব করা হয়, এবং নেতিবাচক প্রবাহ 1.25V থেকে 0V দ্বারা প্রতিনিধিত্ব করা হয় - সুতরাং ট্যাঙ্কে প্রবাহ 512 থেকে 1023 এর এডিসি কোড দেবে এবং ধন্যবাদটির বাইরে প্রবাহিত হবে 511 থেকে 0 এর কোড (সরাসরি বাইনারি ফর্ম্যাটে)।
এখন এটি ভীষণ অসুবিধাজনক। এটিকে কিছু করার আগে আমাদের প্রতিটি পরিমাপ থেকে 512 বিয়োগ করতে হবে, যা -512 থেকে +1111 এর মধ্যে নম্বর দেয়। 2 এর পরিপূরক মোডের পয়েন্টটি এটি আপনার জন্য এটি করে!
তবে, আপনি এখনও একটি ট্রান্সডুসার দিয়ে সোজা বাইনারি ব্যবহার করতে চাইতে পারেন যা স্বাক্ষরিত ফলাফল তৈরি করে। উদাহরণস্বরূপ, আপনার ট্রান্সডুসারের ডিফারেনশিয়াল আউটপুট থাকতে পারে: এক্ষেত্রে আপনি যে কোনওভাবেই উল্টানো আউটপুট থেকে উল্টানো আউটপুট বিয়োগ করতে চান, সুতরাং 2 এর পরিপূরক ব্যবহার করার কোনও সুবিধা নেই।
দুটির পরিপূরক সিস্টেমটি ব্যবহারে রয়েছে কারণ এটি কীভাবে সহজ হার্ডওয়্যারটি প্রাকৃতিকভাবে পরিচালনা করে তা থেকে আসে। উদাহরণস্বরূপ চিন্তা করুন আপনার গাড়ির ওডোমিটার, যা আপনি শূন্যে পুনরায় সেট করেছেন। তারপরে গিয়ারটি বিপরীত করুন এবং 1 মাইল পিছনে গাড়ি চালান (দয়া করে বাস্তবে এটি করবেন না)। আপনার ওডোমিটার (যদি এটি যান্ত্রিক হয়) 0000 থেকে 9999 পর্যন্ত গড়িয়ে যাবে The দু'জনের পরিপূরক সিস্টেমটি একই রকম আচরণ করে।
দয়া করে মনে রাখবেন যে আমি এখানে কোনও নতুন তথ্য দিচ্ছি না, কেবল ওডোমিটার উদাহরণ যা কারও পক্ষে সহায়ক মনে হতে পারে - এটি যখন আমি ছোট ছিলাম তখন দুটির পরিপূরক সিস্টেমের যুক্তি বুঝতে সহায়তা করেছিল। এর পরে, আমার পক্ষে স্বজ্ঞাতভাবে গ্রহণ করা সহজ হয়েছিল যে সংযোজক, বিয়োগকারকগণ ইত্যাদি দুটির পরিপূরক সিস্টেমের সাথে ভাল কাজ করে।
এবং হ্যাঁ, আমার নিসনের ওডোমিটারটি এভাবে কাজ করে।
অন্যরা ইতিমধ্যে উত্তর দিয়েছে যে দ্বিগুণ প্রশংসা বাইনারি কম্পিউটার হার্ডওয়্যারের জন্য কেন সুবিধাজনক। তবে, আপনি সম্ভবত জিজ্ঞাসা করছেন যে এ / ডি কেন "স্ট্রেট বাইনারি" (আপনি যা ভাবেন তার সত্যিকারের অর্থ) এর পরিবর্তে দু'বার প্রশংসা আউটপুট করবে কেন?
বেশিরভাগ এ / ডিএস একটি সাধারণ স্বাক্ষরিত বাইনারি মান 0 থেকে 2 এন -1 পর্যন্ত আউটপুট দেয় , যেখানে এন / এ রূপান্তরিত বিটের সংখ্যা N নোট করুন যে এটি দু'টি প্রশংসনীয় স্বরলিপি হিসাবেও বিবেচিত হতে পারে, মানগুলি কখনই নেতিবাচক হয় না। যদি আপনি কেবল ইতিবাচক সংখ্যার সাথেই কাজ করে থাকেন তবে বেশিরভাগ বাইনারি উপস্থাপনাগুলি একই। এর মধ্যে দ্বিগুণ প্রশংসা এবং সাইন এর বিশালতা অন্তর্ভুক্ত।
কিছু এ / ডিএস, বিশেষত যারা মাইক্রোকন্ট্রোলারগুলিতে নির্মিত তাদের কাছে তাদের পরিসীমাটির নীচের অর্ধেকের জন্য নেতিবাচক মান উত্পাদন করার বিকল্প রয়েছে। বাইপোলার সিগন্যাল পরিমাপ করার সময় এটি একটি অনুভূত সুবিধা হতে পারে।
কমপক্ষে একটি মাইক্রোকন্ট্রোলারে, এটি সাধারণত নির্বোধ। কিছু ক্ষেত্রে আপনি কোনও রূপান্তর ছাড়াই সরাসরি এ / ডি মান ব্যবহার করতে পারেন। সেক্ষেত্রে আপনি ইতিমধ্যে অন্যান্য সমস্ত মান A / D ব্যাপ্তিতে রূপান্তর করেছেন। সমস্ত অ-নেতিবাচক সংখ্যায় এটি সীমাবদ্ধ করা আসলে জিনিসগুলিকে সরল করে।
অন্যথায়, আপনি অভ্যন্তরীণভাবে মানগুলির জন্য যে কোনও ইউনিট ব্যবহার করেন সেগুলিতে আপনি এ / ডি রিডিংগুলিতে কিছু স্কেলিং প্রয়োগ এবং অফসেট করতে যাচ্ছেন। এখানে আবার স্বাক্ষরবিহীন মানগুলির সরাসরি / ডি থেকে বেরিয়ে আসা কোনও খারাপ দিক নেই। আসলে, আমি সাধারণত কোনও স্কেলিং এবং অফসেটের আগে কাঁচা মানগুলিতে কিছু কম পাস ফিল্টারিং প্রয়োগ করি। এই মানগুলি জেনে নেতিবাচক হবে না কখনই গণনা সামান্য সরল। স্বাক্ষরবিহীন মানগুলিতে স্কেলিং করা জিনিসগুলিকে মাঝে মাঝে কিছুটা সহজ করে তোলে।
আমি 100 টিরও বেশি মাইক্রোকন্ট্রোলার প্রকল্পগুলিতে এমন একটি ক্ষেত্রেও স্মরণ করতে পারি না যেখানে আমি স্বাক্ষরযুক্ত আউটপুট বিন্যাস ছাড়া অন্য কোনও ক্ষেত্রে A / D ব্যবহার করি।
সুতরাং এ / ডি আউটপুটটিং "দ্বিগুণ প্রশংসা" এর সুবিধাগুলি কী সে প্রশ্নের প্রশ্নের উত্তর দিতে দুটি উত্তর রয়েছে:
ডেডিকেটেড হার্ডওয়্যারগুলিতে নেতিবাচক ইনপুট ভোল্টেজ নির্দেশ করে নেতিবাচক মানগুলি অর্জনের কিছু সুবিধা থাকতে পারে, সেক্ষেত্রে দ্বিগুণ প্রশংসা মানগুলির সীমাটি মোকাবেলার সহজতম উপায়। নোট করুন যে যদি ইনপুট ভোল্টেজের পরিসীমা প্রায় 0 টির প্রতিসাম্য না হয় তবে এই সুবিধাটি চলে যায়।
আপনি যে 'স্ট্রিট বাইনারি কোড' এর কথা বলছেন তা কী? আমি ধরে নিলাম আপনার একটি চিহ্ন বিট থাকার অর্থ যা নেতিবাচক জন্য '1' এবং ধনাত্মক (বা তদ্বিপরীত ) জন্য '0' । এর দ্বিগুণ পরিপূরকগুলির সাথে আরও দুটি অসুবিধা রয়েছে যা এখনও উল্লেখ করা হয়নি: একটি আজকাল এই সময়ের মধ্যে অপ্রাসঙ্গিক এবং একটি গুরুত্বপূর্ণ।
মূলত অপ্রাসঙ্গিক একটি হ'ল আপনি একটি কম সংখ্যক প্রতিনিধিত্ব করতে পারেন - অর্থাত 8 বিটে 255 সংখ্যা। আপনি যখন 32 বা 64 বিট পেয়েছিলেন তবে আপনি যখন 4 বা 6 টি বিট নিয়ে কাজ করতে চান তখন এটি বেশ অপ্রাসঙ্গিক।
আরও গুরুত্বপূর্ণটি হ'ল এখন একই সংখ্যাটি উপস্থাপনের দুটি উপায় রয়েছে - বিশেষতঃ 0 - +0 এবং -0 তবে +0 এবং -0 একই সংখ্যা তাই আপনার বাস্তবায়নের বিষয়টি নিশ্চিত করতে হবে যে আপনি এইগুলি তুলনা করছেন না প্রতিবার সমতা পরীক্ষা করার জন্য সংখ্যাগুলি।