सीरियल संचार बॉड दर सेटिंग और बॉड दर एल्गोरिदम
जब एकल चिप माइक्रो कंप्यूटर का सीरियल संचार उपयोग किया जाता है, तो बॉड दर निर्धारित की जानी चाहिए, और बॉड दर 9600, 1 9 00 को निर्धारित की जानी चाहिए ...? क्या यह एक परंपरा है? किस्से? संबंधित क्रिस्टल ऑसीलेटर आमतौर पर 11.0592 एमएचजेड भी होता है।
क्या यह क्रिस्टल ऑसीलेटर सेट करने वाला पहला है और फिर बॉड रेट सेट करें या पहले बॉड रेट सेट करें और फिर क्रिस्टल ऑसीलेटर सेट करें। इसे क्यों सेट किया जाना चाहिए?
दो और विश्वसनीय कथन हैं:
1: बिजली, भौतिक मीडिया, आदि की भौतिक विशेषताओं के अनुसार सीरियल डिवाइस के उपयोग की आवश्यकताओं के साथ संयुक्त
प्रभावी संचार सुनिश्चित करने के लिए, विद्युत, भौतिक मीडिया, आदि की भौतिक विशेषताओं के अनुसार सीरियल डिवाइस के उपयोग की आवश्यकताओं के साथ संयुक्त, यह निर्धारित किया जाता है कि आरएस 232 की अधिकतम संचरण दर केवल 115200 हो सकती है, और फिर दो चरणों से प्राप्त की जाती है 57600, 28800, 1 9 200 प्राप्त करने के लिए ; इन दरों को अनुकूलित करने के लिए, संबंधित क्रिस्टल आवृत्ति डिजाइन करें।
2: यह दूरसंचार लाइन की विशेषताओं द्वारा निर्धारित किया जाता है।
टेलीफोन लाइन का बैंडपास 300--3 किलोहर्ट्ज़ है। उस समय, पहले मॉडेम में लगाए गए घास, इसलिए 2400HZ सिग्नल का उपयोग किया जाता था, इसी बॉड दर 2400 होती है। चूंकि मूल आवृत्ति निर्धारित होती है, इसलिए सुधारित पास दर को 2400 के आधार पर गुणा किया जाता है, इसलिए 9600.19200 का गठन। । । ।
किसी भी तरह से, एक बॉड दर और फिर एक क्रिस्टल आवृत्ति है।
एकल चिप माइक्रो कंप्यूटर के सीरियल संचार की बॉड दर की गणना।
मोड 0 और मोड 2 में, सीरियल पोर्ट बॉड दर तय की गई है, और मोड 0 FOSC / 12 है। मोड 2 फॉस्क / 32 या एफओएससी / 64 है, जो पीसीओएन रजिस्टर के एसएमओडी बिट द्वारा निर्धारित किया जाता है।
मोड 1 और मोड 3 में, बॉड रेट एक चर वैल्यू है। बॉड दर टाइमर 1 द्वारा उत्पन्न की जा सकती है (8052 समय 2 द्वारा उत्पन्न किया जा सकता है)। बॉड दर क्या है? टाइमर 1 ओवरफ्लो दर द्वारा बाउड रेट निर्धारित किया जाना चाहिए:
बाउड दर = (2SMOD / 32) * (टाइमर 1 ओवरफ़्लो दर)
नोट: एसएमओडी 2 एसएमओडी इंडेक्स है, एसएमओडी बॉड रेट डबल बॉड रेट बिट है, यह बिट पीसीओएन रजिस्टर में है।
बॉड रेट जनरेटर के रूप में टाइमर 1 का उपयोग करते समय, आमतौर पर टाइमर 1 को 8-बिट ऑटो-रीलोड मोड में संचालित करने के लिए कॉन्फ़िगर करना आवश्यक है, और टाइमर 1 इंटरप्ट को अक्षम करने के लिए, फिर टाइमर 1 का ओवरफ़्लो कैसे गणना की जाती है? अतिप्रवाह दर अतिप्रवाह की आवृत्ति है। क्रिस्टल आवृत्ति मानना 12 मेगाहट्र्ज है और TH1 मान 0xFE है, केवल दो घड़ी के दालों को अतिप्रवाह करने की आवश्यकता होगी, और अतिप्रवाह अवधि 2us है, तो अतिप्रवाह की आवृत्ति 500 किलोहर्ट्ज़ है। टाइमर अनुभाग के अनुसार, समय के समय में निम्नलिखित सूत्र है:
समय समय = (अधिकतम गणना मूल्य - काउंटर प्रारंभिक मूल्य) * मशीन चक्र = (अधिकतम गणना मूल्य - काउंटर प्रारंभिक मान) * (12 / क्रिस्टल आवृत्ति (एचजे)) (एस) = (256-TH1) * (12 / ओएससी_एफआरक्यू ( हर्ट्ज)) (रों)।
फिर अतिप्रवाह की आवृत्ति स्वाभाविक रूप से है:
OSC_FREQ (हर्ट्ज) / ((256 TH1) * 12)।
तो अंतिम पुश-टू-बॉड दर है:
(2SMOD / 32) * (OSC_FREQ (हर्ट्ज) / ((256 TH1) * 12))।
बॉड दर का गणना सूत्र उपलब्ध है, और स्वाभाविक रूप से, TH1 का प्रारंभिक मूल्य बॉड दर के अनुसार प्राप्त किया जा सकता है:
BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (हर्ट्ज) / ((256 TH1) * 12))
32 * 12 * (256 TH1) = (2SMOD * OSC_FREQ (हर्ट्ज)) / BAUD_RATE
256 TH1 = (2SMOD * OSC_FREQ (हर्ट्ज)) / (BAUD_RATE * 32 * 12)
TH1 = 256- (2SMOD * OSC_FREQ (हर्ट्ज)) / (BAUD_RATE * 32 * 12)
क्रिस्टल आवृत्ति मानना 11.0592 मेगाहट्र्ज है, बॉड दर 9600 है, एसएमओडी = 0, TH1 का प्रारंभिक मूल्य क्या होना चाहिए? उपर्युक्त सूत्र के अनुसार, इसकी गणना TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD की गणना की जा सकती है ।





