কিছু মাইক্রোকন্ট্রোলার কীভাবে বাউড রেট কার্যকর করে যদিও এটি স্ফটিক ফ্রিকোয়েন্সি ব্যবহার করে স্ট্যান্ডার্ড বাউডের হারের তুলনায় নয়?


16

আমি ঠিক বুঝতে পেরেছি যে স্ট্যান্ডার্ড বাউডের হারগুলি উত্পন্ন করার জন্য 8051 পরিবার 11.0592 মেগাহার্টজ এবং এর গুণগুলি ব্যবহার করে। তবে এমন এসসি রয়েছে যা 15 মেগাহার্টজ ব্যবহার করে। তারা কীভাবে তখন এটি করবে?


5
বেশিরভাগ ক্ষেত্রে তারা স্ট্যান্ডার্ড বাউডের কাছাকাছিভাবে গ্রহণযোগ্য হারগুলি উত্পন্ন করতে নন-পাওয়ার-অফ -২ বিভাজক ব্যবহার করে।
ব্রায়ান

4
আরও কী, ইউআরটিসগুলি সিগন্যালটির ওপরে নমুনা দিতে পারে (যেমন ইউআর্ট বিট প্রতি 16 টি নমুনা), যা সময় (এবং গোলমাল) সমস্যার সমাধান করে: বৈদ্যুতিন
ফ্লোরিয়ান ক্যাসটেলেন

1
আগ্রহী যে কারও জন্য, এভিআর ইউএসআর্ট টাইমিং ত্রুটির টেবিলগুলি ডেটাশিটে সাধারণ ঘড়িগুলির জন্য উপলব্ধ (168 পৃষ্ঠায় এইটিতে)
সেবি

উত্তর:


22

যতক্ষণ না এটি যুক্তিসঙ্গতভাবে নির্ভুল হয় ততক্ষণ ইউআরটির যত্ন নেই।

1500000023040065

65230400=14976000

সুতরাং আপনার ইউআরটি 15000 এর একটি ফ্যাক্টর দ্বারা খুব দ্রুত হতে চলেছে। এটি1+1এ সমস্যা হয়ে যায়15000149761.0022041+ +12111,045


9
লক্ষ্য করার মতো বিষয় যে ট্রান্সমিটার এবং রিসিভার উভয়েরই ঘড়ি রয়েছে, তাই যদি উভয়ই ভুল দিক থেকে ভুল করে থাকে ..
স্পিহ্রো পেফানি

7
আরও গুরুত্বপূর্ণ বিষয়, প্রাসঙ্গিক সিরিয়াল প্রোটোকলগুলি (আরএস -৩৩২ ইত্যাদি) ক্লকগুলি আরও সুসংগত করতে স্টার্ট এবং স্টপ বিট ব্যবহার করে। এমনকি যদি উভয় পক্ষের 230400 Hz ঘড়ি নিখুঁত ছিল তবে দুটি ঘড়ি সম্ভবত পর্যায়ের বাইরে চলে যাবে। প্রারম্ভ বিট প্রাপককে তার ঘড়িটি প্রেরকের সাথে সিঙ্ক করার অনুমতি দেয়। যেহেতু এটি প্রতি বাইটে প্রথম বিট এ ঘটতে পারে তাই অপূর্ণ ঘড়ির অর্থ আরও ঘন পর্যায়ের সামঞ্জস্য।
এমসাল্টার

1
অনুশীলনে এটি সম্ভবত এই পোস্টের চেয়ে বেশি দ্বারা বন্ধ হয়ে যাওয়ার সম্ভাবনা রয়েছে কারণ ডিভাইডার সিস্টেমটি 100% নমনীয় হওয়ার সম্ভাবনা কম।
পিটার গ্রিন

2
@PeterGreen: That's true; most real UARTs require an input clock that is 16x the baud rate, and the programmable divider must produce the faster clock. In this example, the overall divider would have to be 64 (= 16 x 4), and the error would be 15MHz/64230400baud=1.01725, or +1.7%, which is still an acceptable value.
Dave Tweed

2
@ ডেভটভিড: তবে অ্যাসিঙ্ক সিরিয়াল সম্পর্কে গুরুতর চিপস তাদের সিরিয়াল পেরিফেরিয়ালটিতে 13 এর একটি সুপারস্ট্যাম্পিং ফ্যাক্টারের অনুমতি দেয়, যা 3 মেগাহার্টজ এর একাধিক এক ঘড়ি দিয়ে শুরু করে চমৎকার লো ত্রুটিযুক্ত সাইমনকে প্রাপ্ত করে। বিকল্পভাবে, কিছু কিছু বিভাজনযুক্ত বিভাজক ব্যবহার করে যেখানে বিট সময়টি যথাযথ মান থেকে বেরিয়ে যায় যদিও স্বতন্ত্র বিটগুলিতে> 2% সময়সীমা ত্রুটি থাকতে পারে।
বেন ভয়েগট

12

তুলনামূলকভাবে উচ্চ প্রান্তের এআরএম এমসিইউর বিবরণটি এখানে 'বড় মুদ্রণ' রয়েছে।

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

অনেকগুলি পিএলএল এবং প্রিসকেলার এবং পোস্টক্যালারগুলির সাথে বিভাজক রয়েছে যা আপনাকে পূর্ণসংখ্যার অনুপাত হিসাবে প্রয়োজন হতে পারে প্রায় কোনও ফ্রিকোয়েন্সি তৈরি করতে সক্ষম। PLL তা বৃদ্ধি পায় কিছু পূর্ণসংখ্যা দ্বারা তার ইনপুট ফ্রিকোয়েন্সি, এবং একটি বিভাজক কিছু নম্বর (দ্বারা বিভক্ত করা যেতে পারে না অগত্যা প্রতিটি ক্ষেত্রে 2 ক্ষমতা)।

অভ্যন্তরীণ তুলনামূলকভাবে উচ্চ ফ্রিকোয়েন্সিগুলি (এই ক্ষেত্রে প্রায় অর্ধেক গিগাহার্টজ) কোনও সমস্যা নয় (যেমনটি তারা চিপের বাইরে থাকলে) - অপেক্ষাকৃত সামান্য শক্তি গ্রাস করা হয়।

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

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


2
(এর = অধিকারী, এটি = "এটি" বা "এটি রয়েছে" example উদাহরণস্বরূপ দেখুন কীভাবে এটি ব্যবহার করতে হয় এবং এটি ।)
পিটার মর্টেনসেন

4
@ পিটারমোরটেনসেন ধন্যবাদ, স্থির। কোনও কারণে রিপোর্ট লেখার মোডের পরিবর্তে কথোপকথন চিন্তাভাবনা মোডে থাকাকালীন টাইপগুলি (এবং ভুল স্বতন্ত্র নামগুলি স্থাপন করা) করা সহজ।
স্পিহ্রো পেফানি

10

এটি একটি মডুলেটর ব্যবহার করে অর্জন করা যেতে পারে ।

উদাহরণস্বরূপ MSP430x1xx ব্যবহারকারী গাইড দেখুন । 260 পৃষ্ঠায় এটি বলে:

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

বাড রেট সময়

(ধূসর অঞ্চল নোট করুন)

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

[...]

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

[...]


5

অনেক লোক ধরে নেয় যে ইউআআরটি আসলে একটি নির্দিষ্ট ঘড়িতে চলছে অর্থাৎ আপনি প্রতিটি নমুনা নেন take টিসেকেন্ড। এটি অগত্যা সত্য নয়। কমপক্ষে আমি সমস্ত ইউআরটি মডিউলগুলি ডিজাইন করেছি not

এটি যেভাবে কাজ করে তা হ'ল আপনার একটি অভ্যন্তরীণ নমুনা ঘড়ি। বলুন আপনি প্রতি 100ns নমুনা করতে পারেন। আপনি জানেন যে প্রতিটি বিটের মাঝখানে। সুতরাং, আপনি একটি নমুনা পয়েন্ট বাছাই করুন যা মাঝের নিকটেতম। এটি আপনাকে সর্বাধিক 50ns এর ত্রুটি দেয়।

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

বাস্তব সিস্টেমে আরও অনেক কিছু ঘটে থাকে। উদাহরণস্বরূপ, আপনি একটি নমুনা গ্রহণ করেন না, আপনি কিছু নিতে পারেন এবং তাদের উপর কিছু প্রক্রিয়াজাতকরণ ইত্যাদি করতে পারেন বাস্তবে এটি 1 বিট এডিসি, কোয়ান্টাইজেশনের আওয়াজের মতো সমস্ত প্রবণতা সহ। তবে আপনার সাধারণ ধারণাটি পাওয়া উচিত।


3

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


2

একটি বিট বাইট ধরে একক শুরুর বিট এবং তার পরে একটি একক স্টপ বিট এবং রিসিভার দ্বারা নিখুঁত নমুনা ধরে নেওয়া মানে যে 9.5 বিট পিরিয়ড পরে ঘড়িটি আধ বিট পিরিয়ডেরও কম সময়ের মধ্যে বন্ধ হতে হবে um

তার অর্থ ট্রান্সমিটার এবং রিসিভারের মধ্যে সর্বাধিক সহনীয় সহনীয় ঘড়ির পার্থক্য প্রায় 5%। তবে লিঙ্কটির উভয় প্রান্তে ত্রুটি থাকতে পারে এবং রিসিভারের সিঙ্ক্রোনাইজেশনটি সঠিক নাও হতে পারে। বাস্তবে তাই আমি সাধারণত সুপারিশ করব যে প্রকৃত বাড রেট নামমাত্র বাউড হারের 1% এর মধ্যে রাখা হয়।

আমি যে মাইক্রোকন্ট্রোলারের সাথে সর্বাধিক পরিচিত সেগুলি হ'ল পিক 18 ডিভাইস। এগুলির পুরানো মডেলগুলি বাউড্রেটকে স্কেল করতে একটি নমনীয় 8 বিট কাউন্টার ব্যবহার করে যখন নতুনগুলির মধ্যে একটি নমনীয় 16 বিট কাউন্টার থাকে। এখানে highচ্ছিক "উচ্চ" এবং "নিম্ন" গতির মোডগুলিও রয়েছে যা চারটির একটি উপাদান দ্বারা বাউড্রেটকে পরিবর্তন করে change

20 মেগাহার্টজ ইনপুট ক্লক সহ এই প্রজন্মের স্কিমের 8 বিট সংস্করণ 1800 থেকে 19200 পর্যন্ত সমস্ত রেটগুলির জন্য নামমাত্র বাড রেটের 0.25% এর মধ্যে পাওয়ার পক্ষে যথেষ্ট। 16 বিট সংস্করণ আপনাকে আরও কম গতিতে নামতে দেয়।

http://www.nicksoft.info/el/calc/?ac=spbrg&submitted=1&mcu=+ জেনেরিক +16 বিট + বিআরজি অ্যান্ড ফসাস=20&FoscMul=1000000&FoscAutoSelector=0&MaxBaudRateError=1 (তারা ইউএস-এর জন্য চলছে সিঙ্কটি = 1 কলম্ব উপেক্ষা করুন সিঙ্ক্রোনাস মোড)

ইউএআরটি সিরিয়ালটির জন্য পিএলএল, ভগ্নাংশ বিভাজক ইত্যাদির সত্যই প্রয়োজন নেই।


0

সিরিয়াল ডেটা এক্সচেঞ্জ করতে একটি নিয়ামকের অবশ্যই "আদর্শ" সময়ের একটি নির্দিষ্ট উইন্ডোর মধ্যে আউটপুট বা নমুনা ডেটা আবশ্যক। যদিও এমন একটি কন্ট্রোলার থাকা সহজ যা একটি ঘড়িটিকে প্রোগ্রামযোগ্য ফ্যাক্টর দ্বারা এবং তারপরে আবার অতিরিক্ত হার্ড-কোডেড ফ্যাক্টর দ্বারা ভাগ করে দেয়, বিটগুলি সমান বিরতিতে পড়তে বা লিখতে হবে এমন কোনও প্রয়োজন নেই। যদি কোনও সংযোগের প্রান্তের শেষ প্রান্তটি বাউডের হারের সাথে মিলিত হুবহু অভিন্ন বিরতিতে বিট দেয় তবে কোনও রিসিভার সঠিক সময়ে নমুনার জিনিস সরবরাহ করে বাউডের হারের দ্বিগুণের চেয়ে বেশি যে কোনও নমুনা হারের সাথে পেতে পারেন। উদাহরণস্বরূপ, ধরুন ডেটা 19,200 এ আউটপুট এবং একটি সঠিকভাবে 48,000Hz (2.5x) এ নমুনা দিচ্ছে।

যখন কেউ একটি পড়ন্ত প্রান্ত দেখবে, তখন কেউ জানতে পারবে যে স্টপ বিটটি 0 ও 1 নমুনার সময়গুলির মধ্যে আগে শুরু হয়েছিল। যদি কোনও প্রথম নমুনা লেবেল করে যেখানে শুরুর বিটটি সময় 0 হিসাবে দেখা হত, বিট 0 সময় 1.5 এবং 2.5 এর মধ্যে কোথাও শুরু হবে; বিট 1 কোথাও শুরু হবে সময়ের 4.0 এবং 5.0 এর মধ্যে, বিট 2 কোথাও সময় 6.5 এবং 7.5 এর মধ্যে শুরু হবে, এবং বিট 3 কোথাও 9 9 থেকে 10.0 সময়ের মধ্যে শুরু হবে। 3 সময় নেওয়া একটি নমুনা এভাবে বিট 0 ক্যাপচারের গ্যারান্টিযুক্ত হবে [যা সময় 1.5 এবং 2.5 এর মধ্যে শুরু হয় এবং সময়টি 4.0 এবং 5.0 এর মধ্যে শেষ হয়]। তেমনি, time সময়ে নেওয়া একটি নমুনা বিট ১ টি এবং ৮, ১১, ১৩, ১ 16, ১৮, এবং ২০-তে গৃহীত নমুনাগুলি বিট ২- capture গ্রহণ করবে।

একটি দ্রুত নমুনা হার ব্যবহার করা উত্সের প্রাপককে অপূর্ণতাগুলির প্রতি আরও সহনশীল করে তুলবে, তবে এমনকি মাত্র 2.5x বিট রেটের একটি নমুনা হারের সাথে মার্জিনগুলি ভয়ঙ্কর নয় [প্রায় 1/5 সময়ের মধ্যে]]

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