সিরিয়াল কমিউনিকেশন বড রেট সেটিং এবং বাউড রেট আলগোরিদিম

Aug 07, 2018 একটি বার্তা রেখে যান

সিরিয়াল যোগাযোগ বড হার সেটিং এবং বড রেট অ্যালগরিদম


যখন একক চিপ মাইক্রোপ্রসেসারের সিরিয়াল যোগাযোগটি ব্যবহার করা হয়, তখন ব্রডের হার নির্ধারণ করা উচিত এবং বড রেট 9600, 19200 তে নির্ধারণ করা উচিত? এই একটি ঐতিহ্য? কিসে? সংশ্লিষ্ট স্ফটিক oscillator এছাড়াও সাধারণত 11.0592 এমএইচজেড হয়।

এটি প্রথম স্ফটিক oscillator সেট এবং তারপর baud হার সেট বা baud রেট সেট প্রথম এবং তারপর স্ফটিক oscillator সেট। কেন এই সেট করা উচিত?


আরো দুটি নির্ভরযোগ্য বিবৃতি আছে:


1: বিদ্যুতের শারীরিক বৈশিষ্ট্য অনুযায়ী, ট্রান্সমিশন মিডিয়া, ইত্যাদি সিরিয়াল ডিভাইস ব্যবহারের প্রয়োজনীয়তা সঙ্গে মিলিত

বিদ্যুৎ, ট্রান্সমিশন মিডিয়া প্রভৃতির শারীরিক বৈশিষ্ট্য অনুযায়ী কার্যকর যোগাযোগ নিশ্চিত করার জন্য, সিরিয়াল ডিভাইস ব্যবহারের প্রয়োজনীয়তাগুলির সাথে মিলিত হওয়ার জন্য এটি নির্ধারিত হয় যে RS232 এর সর্বোচ্চ সংক্রমণ হার 11২২00 এবং তারপর দুটি ধাপের মাধ্যমে প্রাপ্ত করা যাবে 57600, ২8800, 19২00 পেতে ; এই হার মানিয়ে, সংশ্লিষ্ট স্ফটিক ফ্রিকোয়েন্সি ডিজাইন।


2: এই টেলিকমিউনিকেশন লাইন বৈশিষ্ট্য দ্বারা নির্ধারিত হয়।

টেলিফোন লাইনের ব্যান্ডপ্রেসটি 300 - 3 কিলোজ। সেই সময়, হায়েজ প্রথমে মডেমের সাথে জড়িত, তাই ২400 এইচজির সংকেত ব্যবহার করা হয়, সংশ্লিষ্ট ব্রড রেট ২400. যেহেতু মৌলিক ফ্রিকোয়েন্সি নির্ধারিত হয়, তাই উন্নত পাসটি ২400 এর পরে ভিত্তি করে হারের পদ্ধতিকে গুণিত করে। 9600.19২00 গঠন


কোনও ভাবেই, একটি বড রেট এবং তারপর একটি স্ফটিক ফ্রিকোয়েন্সি।


একক চিপ মাইক্রোপ্রসেসারের সিরিয়াল যোগাযোগের বড হার গণনা


মোড 0 এবং মোড ২ এ, সিরিয়াল পোর্ট বড রেট ঠিক আছে, এবং মোড 0 হল Fosc / 12। মোড 2 হল Fosc / 32 বা Fosc / 64, যা PCON রেজিস্টার এর SMOD বিট দ্বারা নির্ধারিত হয়।


মোড 1 এবং মোড 3 এ, বড রেট একটি ভেরিয়েবল মান। টাইড 1 দ্বারা বড রেট তৈরি করা যায় (টাইমিং 2 দ্বারা 8052 তৈরি করা যায়) বড হার কি? টাইমার 1 দ্বারা বর্ধিত হার ওভারফ্লো হার নির্ধারণ করা:

Baud হার = (2SMOD / 32) * (টাইমার 1 ওভারফ্লো রেট)

দ্রষ্টব্য: 2SMOD এখানে SMOD সূচক, SMOD হয় baud হার ডাবল ব্রড রেট বিট, এই বিট PCON রেজিস্টার হয়।


বড রেট জেনারেটর হিসাবে টাইমার 1 ব্যবহার করে, 8-বিট অটো রিলোড মোডে কাজ করার জন্য টাইমার 1 কনফিগার করা প্রয়োজন, এবং টাইমার 1 এন্ট্রিট অক্ষম করতে, টাইমার 1 এর ওভারফ্লো কিভাবে গণনা করা যায়? ওভারফ্লো হার ওভারফ্লো এর ফ্রিকোয়েন্সি। ক্রিস্টাল ফ্রিকোয়েন্সির অনুমান 12MHz এবং TH1 মান 0xFE, মাত্র দুই ঘড়ির কাঁটা ওভারফ্লো করতে হবে এবং ওভারফ্লোের সময়টি ২us, তারপর ওভারফ্লোের ফ্রিকোয়েন্সি 500KHz হয়। টাইমার বিভাগ অনুযায়ী, টাইমিং সময় নিম্নলিখিত সূত্র আছে:

টাইমিং টাইম = (সর্বোচ্চ গণনা সংখ্যা - পাল্টা প্রাথমিক মান) * মেশিন চক্র = (সর্বাধিক গণনা মান - পাল্টা প্রাথমিক মান) * (12 / স্ফটিক ফ্রিকোয়েন্সি (Hz)) (গুলি) = (256-TH1) * (12 / OSC_FREQ Hz হয়)) (গুলি)।


তারপর ওভারফ্লো এর ফ্রিকোয়েন্সি স্বাভাবিকভাবেই হয়:

OSC_FREQ (Hz হয়) / ((256-TH1) * 12)।


তাই চূড়ান্ত ধাক্কা থেকে বড রেট হল:

(2SMOD / 32) * (OSC_FREQ (Hz হয়) / ((256-TH1) * 12))।


বড হার হিসাব সূত্র পাওয়া যায়, এবং স্বাভাবিকভাবেই, TH1 এর প্রাথমিক মান বড হার অনুযায়ী প্রাপ্ত করা যাবে:

BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Hz হয়) / ((256-TH1) * 12))


32 * 12 * (256-TH1) = (2SMOD * OSC_FREQ (Hz হয়)) / BAUD_RATE


256-TH1 = (2SMOD * OSC_FREQ (Hz হয়)) / (BAUD_RATE * 32 * 12)


TH1 = 256- (2SMOD * OSC_FREQ (Hz হয়)) / (BAUD_RATE * 32 * 12)


ক্রিস্টাল ফ্রিকোয়েন্সি 11,0592 এমএইচজির অনুমান করা হয়, বড রেট 9600, SMOD = 0, TH1 এর প্রাথমিক মানটি কি হওয়া উচিত? উপরে সূত্র অনুযায়ী, এটি গণনা করা যেতে পারে TH1 = 256-11059200 / (9600 * 32 * 1২) = 0xFD।



অনুসন্ধান পাঠান

whatsapp

ফোন

ই-মেইল

অনুসন্ধান