ইউআরটি ফ্রিকোয়েন্সি কতটা সমালোচিত?


17

আমি আমার মাইক্রোকন্ট্রোলারটি 16 এমআইপিএসে চালানোর জন্য একটি 8 মেগাহার্টজ স্ফটিক ব্যবহার করতে যাচ্ছি (পিএলএল 4x, 2 চক্র নির্দেশনা।) তবে, 8 মেগাহার্টজ কোনও ইউআরটি ফ্রিকোয়েন্সি আফাইককে ভাগ করে না ... তাই এই ফ্রিকোয়েন্সিগুলি কতটা সমালোচিত? আমি 115,200 বাউড ব্যবহার করার পরিকল্পনা করছি।

ইউআরটি কি ± 1% এর মধ্যে চালানো যেতে পারে? যদি এটি কাজ না করে তবে আমার কী ফ্রিকোয়েন্সি ব্যবহার করা উচিত? (আমি সর্বাধিক প্রক্রিয়াজাতকরণের গতির জন্য যথাসম্ভব 16 এমআইপিএসের কাছাকাছি যেতে চাই)) যদি এটি গুরুত্বপূর্ণ হয় তবে আমি একটি পিক 24 এফজে 64640000 ব্যবহার করছি।

উত্তর:


13

আপনি যদি 1% এর মধ্যে থাকেন তবে আপনার ঠিক আছে।

মনে করুন আপনার ইউআরটি 16x ওভারস্যাম্পলিং ঘড়ি ব্যবহার করে, উদাহরণস্বরূপ, আপনি এটি 1,843,200 Hz থেকে 16x ওভারসামাল ১১,০০,২০০ বিপি সেট করতে পারেন। (এটির মতো ওভারস্যাম্পলিং মোটামুটি সাধারণ) এটি ইউআর্টকে স্টার্ট বিটের প্রান্ত থেকে 8 টি ওভার-ক্লকগুলি গণনা করতে দেয়, সুতরাং এটি বিট সেলগুলির কেন্দ্রটি ওভার ক্লকটির পরে +/- এক সময়ের মধ্যে সনাক্ত করতে পারে কখন এটি নমুনার ডেটা নির্ধারণ করতে ওভার-ক্লকের 16 টি পিরিয়ড গণনা করে।

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

যাইহোক, আপনি ফ্রিকোয়েন্সিতে নিখুঁতভাবে অপর দিকে নির্ভর করতে পারবেন না। যদি আপনি 4% ধীর গতিযুক্ত ডিভাইসে 4% দ্রুত কোনও ডিভাইস সংযোগ করেন তবে আপনার সমস্যা হবে। আমি কমপক্ষে একটি কেসটি চালিয়েছি যে পিসিটি একটু ধীরে চলছিল, এবং একটি ডিভাইসটি দ্রুত দ্রুত চলছিল, এবং দু'জনই কেবলমাত্র সামান্য যোগাযোগ করতে পারত, যদিও একই ডিভাইসটি অন্যান্য পিসিগুলির সাথে ভাল ছিল, এবং পিসি অন্যটির সাথে ভাল ছিল was ডিভাইস। (এগুলি প্রায় ১১২ কেবিপিএস এবং ১১৯ কেবিপিএসে ও-স্কোপড) সে কারণে নামমাত্র ফ্রিকোয়েন্সি যতটা সম্ভব নিবিড়ভাবে আঘাত করার চেষ্টা করা ভাল। আমি নামমাত্র 2% এর মধ্যে কিছুই দেখিনি কখনও।

করণীয় হ'ল মাস্টার ক্লক রেটটি ব্যবহার করা হয় যা বাউডের হারের চেয়ে বেশি পরিমাণে-স্যাম্পলিং হারের চেয়ে বেশি পরিমাণে স্যাম্পলিং হারের সম্পূর্ণ সংখ্যাটি সরবরাহ করে। উদাহরণস্বরূপ, যদি আপনি প্রায় 8 মেগাহার্টজ এ চালিত সিপিইউ চান, আপনি একটি 7.3728MHz অসিলেটর ব্যবহার করতে পারেন, যা 1.8432MHz পেতে 4 দ্বারা বিভক্ত করা যেতে পারে, যা হ'ল ১200 বার 115200 হয়ে যায়।


১১ মেগাহার্টজকে ১১৯,৯৪২ পেতে 69৯ ভাগ করে ভাগ করা যায় যা ± 1% এর মধ্যে ভাল। আমি ভাবছি পিআইসি তার বাড রেট জেনারেটরের জন্য এই ধরণের বিভাগকে সমর্থন করে কিনা। আমি তাই আশা করছি, তবে আমি তা মনে করি না।
টমাস হে

পিআইসির একটি বাড রেট জেনারেটর রয়েছে। এটি ভালভাবে কাজ করবে তবে কেবলমাত্র 96৯০০ এর মতো নিম্ন বাউডের জন্য এটি 115,200 এর মতো উচ্চ বাউডের পক্ষে কাজ করবে না, এটি অত্যধিক খালি হয়ে যায়।
টমাস হে

আপনি কি মনে করেন যে আমি একটি 7.3728 মেগাহার্টজ স্ফটিক ব্যবহার করতে পারি? (আমি অভ্যন্তরীণ 7.37 মেগাহার্টজ দোলক ব্যবহার করতে যাচ্ছি না কারণ আমি নির্ভুলতা চাই)) এটি আমাকে 115,200 এর ইউআরটি ফ্রিকোয়েন্সি পেতে 64 দ্বারা বিভক্ত করতে দেয়। এটি উচ্চ সহনশীলতার সাথে আমি দ্রুত যেতে পারি।
টমাস হে

1
যদি আপনার ইউআরটি এটি সমর্থন করে, তবে এটি একটি ওভারক্লক দেওয়া (16x এর মতো) দেওয়া পছন্দনীয় যাতে এটি প্রারম্ভ বিটটি নমুনা করতে পারে এবং বিট কোষের কেন্দ্রটি সন্ধান করতে পারে, তবে 115 কে জন্য 1% এর মধ্যে 16x পাওয়া একটি চ্যালেঞ্জ হতে পারে, যদি না আপনি একটি বাড একাধিক স্ফটিক ব্যবহার।
জাস্টজেফ

4

1% জাস্টজেফ উল্লেখ করেছেন যে প্রয়োজন হয় না। বেশিরভাগ ইউআরটি শেষ বিটটিতে অর্ধ বিট ত্রুটির অনুমতি দেয়। বেশিরভাগ সময় ফ্রেমটিতে মোট 10 বিটের জন্য 1 স্টার্ট বিট, 8 টি ডাটাবিট এবং 1 স্টপ বিট থাকে। 10 বিটের অর্ধেক বিট 5% (জাস্টজেফের 6.25% অ্যাকাউন্ট শুরু করে এবং বিট বন্ধ করে না)।


1
আমাকে ভুল উদ্ধৃতি দেবেন না; আবার "1%", আমার বক্তব্য ছিল এটি অর্জন করা কঠিন হতে পারে। "6.25%" ধরে নিচ্ছিল যে আপনি স্টার্ট বিটের কেন্দ্রে আঘাত হানার ঘটনা ঘটেছে, এবং এই জাতীয় পরিস্থিতিতে রিসিভার-বনাম-ট্রান্সমিটার ঘড়ির হারের সর্বাধিক অনুমোদিত পার্থক্য
জাস্টজেফ

1

জাস্টজেফ স্টার্ট বিটটি সম্পর্কে ভুলে গিয়েছিলেন, তবে স্টিভেন স্টপ বিটটি যুক্ত করেছিলেন। 8 ডেটা বিটের সাধারণ প্রোটোকল, 1 স্টার্ট বিট এবং কোনও প্যারিটি বিট, (স্টপ বিটের সংখ্যা কিছু যায় আসে না) ধরে নেওয়া, প্রারম্ভের বিটটির শীর্ষ প্রান্ত থেকে মাঝখানে 8/2 বিট বার থাকে সর্বশেষ তথ্য বিট। সাধারণত, আপনি রিসিভারটি 1/4 বিট সময়ের মধ্যে এই শেষ বিটের নমুনা করতে চান। নোট করুন যে 1/2 বিটটি থ্রোসোল্ডে ব্যর্থ হওয়ার গ্যারান্টিযুক্ত। সর্বদা কিছুটা বৈদ্যুতিক শব্দ এবং জটলা থাকায় কাছের যে কোনও কিছু অকার্যকর হয়ে যায়।

1/4 টি 8 1/2 = 2.94% দ্বারা ভাগ হয়েছে।

জাস্টজেফ যেমন উল্লেখ করেছেন, বেশিরভাগ ইউআরটি বাস্তবায়নগুলি আসিনক্রোনাস 16x ঘড়ির সাথে আগত ডেটার নমুনা দেয়। এটি আরেকটি ১/১ bit বিট সময়ের অনিশ্চয়তা যুক্ত করে যেহেতু এটি ত্রুটি যার সাহায্যে প্রারম্ভ বিটের শীর্ষস্থানীয় প্রান্তটি পরিমাপ করা যায়। 8/2 বিটের মধ্যে 1/16 বিট সময় অন্য .74%। এটি পূর্বে গণনা করা ত্রুটি বাজেটের বাইরে আসে। আপনি তার কেন্দ্রের 1/4 বিট সময়ের মধ্যে শেষ বিটটি নমুনার জন্য গ্রাহকটির জন্য 2.2% অনুমোদিত ঘড়ি অমিলের সাথে শেষ করেছেন।

অন্যরা যেমন বলেছে, ba.৩7২২ মেগাহার্টজ স্ফটিক ব্যবহার করা একটি সাধারণ অভ্যাস, যখন সঠিক বাউড রেট প্রয়োজন হয়। সাধারণত আপনি স্ফটিক ত্রুটির মধ্যে ইউআরএটি বাড রেট মারার সময় সিপিইউকে তার সর্বোচ্চ হারের কাছাকাছি চালানোর ব্যবস্থা করতে পারেন।


আমি একমত নই যে স্টপ বিটগুলি কিছু আসে না। ইন এই প্রশ্নের যোগাযোগ ব্যর্থ হয়েছে কারণ স্টপ বিট ভুল একটি নিম্ন স্তরের সেট করা হয়।
স্টিভেনভ

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

আমি স্টার্ট বিটটি তিনবার উল্লেখ করেছি, তাই না?
জাস্টজেফ

@OlinLathrop: স্টপ বিট তা নিশ্চিত করার জন্য একটি বাইট যার MSB হয় পাঠানোর শূন্য সেখানে হবে প্রয়োজন বোধ করা হয় হতে পরের বার সেশন শুরু বিট জন্য একটি পতনশীল প্রান্ত। ধারণা করার আগে ডেটা লাইন কম যাওয়ার ক্ষেত্রে বিভিন্ন ডিভাইসগুলি ভিন্নভাবে আচরণ করে তবে স্টপ বিট না থাকলে শূন্য বাইটের সংক্রমণিত ক্রমটি কোনও কার্যকর সময়সীমার তথ্য থাকতে পারে না। এই জাতীয় প্রয়োজন 25% এর চেয়ে কম স্থির ফ্রেমিং ওভারহেডের মাধ্যমে অন্য উপায়ে পূরণ করা যেতে পারে তবে আমি কেউ এগুলি সম্পর্কে অসচেতন।
সুপারক্যাট

1

এখনও উল্লেখ করা হয়নি এমন একটি বিষয় হ'ল কিছু ডিভাইস তাদের প্রাপ্ত প্রতিটি বাইট ডেটার জন্য ডেটা বাইট প্রেরণ করার প্রত্যাশা করে। যদি এই জাতীয় কোনও ডিভাইসকে অবিচ্ছিন্নভাবে ডেটা খাওয়ানো হয় তবে এর বাড রেট ট্রান্সমিটিং ডিভাইসের তুলনায় এমনকি 0.1% ধীরে কম এবং এতে সামান্য সঙ্কুচিত স্টপ বিট প্রেরণের কোনও সুবিধা নেই, এর আউটপুট পর পর প্রতি 1000 এর জন্য বাইট পিছনে আসবে বাইটস যা আসে। এটি উল্লেখযোগ্যভাবে বলা যায় যে তথাকথিত "1200 বাউড" মডেমগুলি আসলে 1200 বিট / সেকেন্ডের চেয়ে সামান্য বেশি হারে পরিচালনা করে (আমি মনে করি এটি প্রায় 1202) এই কারণেই (যাতে ট্রান্সমিটারটি তার চেয়ে 0.15% দ্রুততর হয়) থাকা,

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