সিরিয়াল.বেগিন (): কেন সবসময় 28800 ব্যবহার করবেন না?


35

প্রচুর নমুনা কোডে অনলাইন লোকেরা Serial.begin(9600)সেটআপ ব্লকে লাইন যুক্ত করে ।

আমি যখন Serial.begin()অফিসিয়াল ডকুমেন্টেশনে রয়েছে তা সন্ধান করি , তখন এটি বলে যে এটি প্রতি সেকেন্ডে ডেটা ট্রান্সফার বিটকে নিয়ন্ত্রণ করে।

সুতরাং সুস্পষ্ট প্রশ্নটি হল, 28800, কেন না সর্বোচ্চ ট্রান্সফার রেট? লোকেরা কেন 9600 ডলার স্থির করবেন? এখানে সীমাবদ্ধতা কি?


3
এফওয়াইআই ইউএসবি সাপোর্টে সর্বাধিক একটি আরডুইনো হ'ল প্রকৃতপক্ষে 115200, এবং 57600 প্রায়শই আপনি দেখেন এমন দ্বিতীয় সর্বাধিক সাধারণ বাউড।
ব্রেট্যাম

উত্তর:


48

মানুষ কেন স্থায়ী হয়?

লোকেরা স্থায়ী হয় কারণ এটি যথেষ্ট দ্রুতগতির চেয়ে বেশি। সর্বাধিক সাধারণ ব্যবহার হ'ল ডিবাগিনের জন্য টার্মিনালে কিছু স্টাফ মুদ্রণ করা। 9600 বাউড প্রতি সেকেন্ডে 960 অক্ষর বা সেকেন্ডে 12 x 80 টি অক্ষরের লাইন। আপনি কত দ্রুত পড়তে পারেন? :)

যদি আপনার প্রোগ্রামটি বাল্ক ডেটা স্থানান্তরের জন্য সিরিয়াল পোর্ট ব্যবহার করে থাকে তবে আপনি সেটেলমেন্ট না করা বেছে নেবেন।

সীমাবদ্ধতা কি ...

সিরিয়ালে সীমা বেশি। সরাসরি আপনি আপনার প্রোগ্রামগুলিতে 115200 বাড ব্যবহার করতে পারেন এবং এটি কেবল কার্যকর হবে। আরডুইনো টার্মিনাল সর্বাধিক 115200 কে অনুমতি দেবে, তবে রিয়েলটার্মের মতো অন্যান্য প্রোগ্রাম আপনাকে আরও বেশি চালাতে দেবে।

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

বৃহত্তর দূরত্বে, লজিক স্তর (সমতল 0 থেকে 5V) সিগন্যালিং ব্যবহার করার সময় আপনার শব্দে সমস্যা হতে শুরু করবে। বড় দূরত্ব ব্যবহার করতে, আপনি শক্তিশালী সিগন্যালিং সরবরাহ করার জন্য একটি ট্রান্সসিভার যুক্ত করবেন, সাধারণত আরএস -৩৩২ এবং কম সাধারণভাবে আরএস -৪৫৫। আরএস -232 দিয়ে আপনি 10 মাইলের দূরত্বে একটি মেগা বিট চালাতে পারেন।

মাইক্রোপ্রসেসরের ঘড়ির গতি হবে আসল সীমা। একটি হার্ডওয়্যার ইউআরটি দিয়ে, প্রসেসরের প্রতিটি বিটগুলিতে ইউআআআরটিতে একটি বাইট লোড করতে হবে (এন 81 এর জন্য)। সুতরাং আপনি যখন 1 এম বাউডে পৌঁছবেন 16 মেগাহার্টজ প্রসেসরের পক্ষে ইউআআআরটি ডেটা সরবরাহ করা রাখা চ্যালেঞ্জ হবে। প্রতি 160 টি ঘড়ির টিকিটে একটি নতুন বাইট পাঠানো হবে, যা কোডের খুব কম লাইন। সংক্ষিপ্তভাবে ডেটা ফাটানোর জন্য আপনি সেই হারটি অর্জন করতে পারেন। বার্তাটি হ'ল, ইউআআআআআরটির সীমা হওয়ার আগে প্রসেসরটি গতির বাইরে চলে যাবে।

দ্রষ্টব্য, এগুলি হার্ডওয়্যারশিরিয়ালে প্রযোজ্য , সফ্টওয়্যার সিরিয়ালটি খুব আলাদা different


দয়া করে মনে রাখবেন 2 এম এইচডব্লিউ সিরিয়াল দিয়ে সংরক্ষণাগারযোগ্য, তবে আরডুইনোর প্রয়োগটি খুব ধীর বলে মনে হচ্ছে এবং প্রচুর আবর্জনা প্রেরণ করবে। আপনার গতি দ্বিগুণ করার জন্য ম্যাজিক বিটটি খুঁজে পেতে atmega328p ds দেখুন। এছাড়াও যোগ করুন যে 9800 বাউড একটি খুব পুরানো স্ট্যান্ডার্ড, এবং অনেকগুলি সেন্সর সেই মানটিকে স্ট্যান্ডার্ড হিসাবে ব্যবহার করে, এমনকি আরও বেশি, যেমন এক্সবি, জিপিএস এবং আরও কিছুর জন্য কনফিগার করা যায়। এছাড়াও ইউএসবি অটো-বাউড্রেট আলোচনার জাদুকরী ব্যবহারের মাধ্যমে সিরিয়াল নির্বাচিত বাউদেটকে ওভাররাইড করতে পারে তবে আমার মনে হয় আরডুইনো ব্যবহার করেনি (তবে এটি
লিওনার্দোতে

1
9600 8N1 একটি ডি-ফ্যাক্টো ডিফল্ট সেটিংস। সিরিয়াল ইন্টারফেস সহ অনেকগুলি ডিভাইস এই সেটিং সহ বিতরণ করা হয় এবং যদি অন্য গতি (বা ডেটাবিটস, প্যারিটি বিট, স্টপ বিট) প্রয়োজন হয় তবে কনফিগার করা দরকার।
পিটার মর্টেনসেন

"এটি যথেষ্ট দ্রুতগতির চেয়ে বেশি" - ভাল উত্তর, তবে আমি এই বিষয়টির সাথে কিছুটা দ্বিমত পোষণ করছি। বেশিরভাগ ডিবাগ আউটপুট বাস্তবায়নগুলি ব্লক করা হয়, তাই কোড এক্সিকিউশনের সময় অতিরিক্ত পরিবর্তন রোধ করতে যত দ্রুত সম্ভব ডিবাগ আউটপুট তৈরি করা খুব কাম্য।
Rev1.0

আপনি যদি বাল্ক ডেটা ট্রান্সফার করছেন, আদর্শভাবে আপনি এসপিআই ব্যবহার করবেন, তাই না?
tuskiomi

6

সব আকর্ষণীয় উত্তর, এটা মূল্য উল্লেখ করে সিরিয়াল গতি সেটিং ছাড়াও আরও XXX বিট / s প্রয়োজনীয় পরোক্ষভাবে না XXX এর বিট / হার্ডওয়্যারে s।

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

উদাহরণস্বরূপ, যদি আপনার এটিমেগ 328 পিএ 1MHz এ চলমান থাকে তবে আপনি 0.200 ত্রুটি করে 9600b / গুলি অর্জন করতে পারেন। তবে 14400b / s এ ত্রুটিটি -3.5% (আসলে 13900 বি / গুলি এ যোগাযোগ করে)। এবং 28800b / s এ ত্রুটিটি + 8.5% (প্রকৃতপক্ষে 31200b / s এ যোগাযোগ করে)। এই সমস্ত পরিসংখ্যান এটিএমগা 48 পিএ-88PA-168PA-328PA ডেটাশিট, পি 200 এর

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

বেস ফ্রিকোয়েন্সি বৃদ্ধি তাত্পর্যপূর্ণ নির্ভুলতা উন্নত করার প্রয়োজন হয় না। উদাহরণস্বরূপ, 2MHz এ উপরের মতো একই এটিমেগ 328 পিএ চালানো আসলে ভাল ফলাফল দেয় না কারণ বেশিরভাগটি গোলাকার ত্রুটির কারণে হয়। তবে এটি চালিয়ে 1.8432MHz 2400b / s থেকে 57.6kHz অবধি খুব সঠিক বিপিএস দেয়।


3

আমি মনে করি যে ট্রান্সফার রেট ব্যবহার করা এক ধরণের 300তিহ্য যা ধীরে ধীরে (300) নয় তবে এমনও নয় যা শেষ পর্যন্ত কিছু সেটআপগুলিতে সমস্যা সৃষ্টি করতে পারে (28800 বা এমনকি 115200)। পিসি সিরিয়াল পোর্ট (প্রায়শই একটি FTDI232 ইউএসবি অ্যাডাপ্টার) উচ্চ হারের সাথে লড়াই করতে পারে তবে আপনার ডিআইওয়াই হার্ডওয়্যার এটি নাও পারে। সুতরাং 9600 বিপিএস কোড উদাহরণগুলির জন্য এক ধরণের স্ট্যান্ডার্ড ট্রান্সফার রেট হিসাবে নিজেকে প্রতিষ্ঠিত করেছে।


2

সময়ের অল্প সময়ে, রিমোট কীবোর্ডগুলির জন্য "সোনার স্ট্যান্ডার্ড" (এএ টেলিফোন মডেম ব্যবহার করে এবং টেলি টাইপগুলি, যদি আপনি মনে করেন তবে) এটি ছিল কেবলমাত্র একটি ডেডিকেটেড ফোন লাইন ধরে প্রাথমিকভাবে অর্জনযোগ্য। সময় ধীরে ধীরে চলে; প্রযুক্তি অগ্রগতি, দ্রুত; এবং স্মৃতি সময়ের চেয়ে আরও ধীরে ধীরে এগিয়ে যায় (মনে হয়)। আমরা নিয়মিত যোগাযোগ করতে পারি, কমপক্ষে কয়েক মিটারের ওপরে, কয়েক দশমিক 96৯০০ বাউডের চেয়ে বেশি মাত্রার অর্ডারে communicate যা একসময় সোনার স্ট্যান্ডার্ড হিসাবে বিবেচিত হত তা এখন আর সোনার নয়, তবে এখনও স্ট্যান্ডার্ড হিসাবে ভাবা হয়।

tl; dr: এটি ইতিহাস, প্রযুক্তি নয়।


0

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


-2

মানব প্রতিক্রিয়া সময়

কারণ আপনার আরডুইনো বন্দরে যখন আঘাত করা হচ্ছে তখন সিরিয়াল মনিটরটি বন্ধ করতে সক্ষম হওয়া ব্যবহারকারীর দ্বারা 100% সময় প্রয়োজন এবং সর্বাধিক স্থানান্তর গতি থাকা সময়ের 100% এরও কম প্রয়োজন ।

9600 বাউড "একটি পলাতক প্রক্রিয়াটিকে হত্যা করা সহজ" এবং "বিরক্তিকরভাবে ধীর" মধ্যে সমঝোতা।


100% আরে ... আকর্ষণীয়;)
রাগ করুন 84
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.