টিটিএল সিরিয়াল কীভাবে কাজ করে?


15

আমি অনেক ভাগ্য ছাড়াই টিটিএল সিরিয়াল "স্ট্যান্ডার্ড" এর একটি ভাল বর্ণনা খোঁজার চেষ্টা করছি। আমি বুঝতে পারি যে সিরিয়াল ট্রান্সমিট (টিএক্স) এবং (আরসিএক্স) লাইনগুলি অলস উঁচু (ভিসিসিতে) গ্রহণ করে এবং যখন কিছুটা সংক্রমণ করা হয় তখন এগুলি স্থলে নেমে যায়। এর মতো, এগুলি আদর্শ থেকে বিপরীত হয়, যেখানে "1" উচ্চ এবং "0" কম থাকে।

আমি যা বুঝতে পারি না তা হ'ল লাইনটি ধরে রাখার জন্য দায়ী কে এবং কীভাবে শূন্য সঞ্চারিত হয়। প্রেরক কি লাইনটি উচ্চ এবং নিম্নে চালিত করে? বা প্রেরক লাইনটি কম টানতে (মুক্ত সংগ্রাহক) লাইনটি কি উচ্চ ধরে রেখেছে?


জবির উত্তর পড়ুন; আপাতদৃষ্টিতে আমি যা জানতাম তার সবই উল্টো ছিল। :-)
ব্লোর

রিয়েল আরএস 232 অন্যভাবে 0 = 12 ভি, 1 = -12 ভি, অন্যদিকে, কারণ এটি বিভ্রান্তিকর
টবি জাফি

2
পরিভাষার পয়েন্ট: "টিটিএল সিরিয়াল" একটি গুরুতর ওভার-বিস্তৃত শব্দ, "(পয়েন্ট-টু-পয়েন্ট) অ্যাসিঙ্ক্রোনাস সিরিয়াল (টিটিএল স্তরে)" মনে হচ্ছে আপনি যা যা জিজ্ঞাসা করছেন তা। (যদিও এটি এখনও সম্ভবত অভাব রয়েছে, তবে কমপক্ষে আরও ভাল)
নিক টি

3
@ নিক যে ধরণের ওপি এর অর্থ MAX232 এ যা কিছু খাওয়ানো হয়, আমি সেটিকে "টিটিএল স্তরে
আরএস 232

2
@ জবি - যদি তিনি কেবলমাত্র টিএক্স এবং আরএক্স ব্যবহার করেন এবং আপনি এর স্তরগুলিও সরিয়ে ফেলেন, তবে এটি সম্পর্কে আরএস 232 আর কিছুই নেই! এটি ইউআরটি কল করুন।
স্টিভেনভ

উত্তর:


17

টিটিএল সিরিয়াল সহ, দুটি দিকনির্দেশক ডেটা লাইন রয়েছে। প্রতিটি উচ্চ এবং নিম্ন উভয়ই প্রেরকের দ্বারা পরিচালিত হয়। একটি 0 বিট ভিসিসি দ্বারা 0 ভি 1 বিট দ্বারা উপস্থাপন করা হয়।

রিসিভারের পিনটি একটি ইনপুটতে সেট করা উচিত।

সুতরাং, একটি মাইক্রোকন্ট্রোলারকে বাইট প্রেরণের জন্য (8-এন -1 কোনও প্রবাহ নিয়ন্ত্রণ নয়) এটি এমন কিছু করতে পারে:

#define BAUDRATE 9600
#define DELAY (SYS_CLK/BAUDRATE)

#define UART_BITBANG_OFF     UART_BITBANG_PORT |= _BV(UART_BITBANG_PIN)
#define UART_BITBANG_ON      UART_BITBANG_PORT &= ~ _BV(UART_BITBANG_PIN)

#define UART_BITBANG_BIT(bit) {if (bit) UART_BITBANG_ON; else UART_BITBANG_OFF; _delay_us(DELAY);}

void uart_bitbang_init(void)
{
    UART_BITBANG_DDR &= ~ _BV(UART_BITBANG_PIN);        // TX output
}

void uart_bitbang_putc(uint8_t c)
{
    UART_BITBANG_BIT(1)
    UART_BITBANG_BIT((c & 0x1) == 0);
    UART_BITBANG_BIT((c & 0x2) == 0);
    UART_BITBANG_BIT((c & 0x4) == 0);
    UART_BITBANG_BIT((c & 0x8) == 0);
    UART_BITBANG_BIT((c & 0x10) == 0);
    UART_BITBANG_BIT((c & 0x20) == 0);
    UART_BITBANG_BIT((c & 0x40) == 0);
    UART_BITBANG_BIT((c & 0x80) == 0);
    UART_BITBANG_BIT(0);
}

(এই কোডটি কিছুটা পিছনের দিকে পড়ে কারণ এটি মূলত ইনভার্টেড টিটিএল সিরিয়ালের জন্য বোঝানো হয়েছিল)

অবশ্যই, বেশিরভাগ এমসিইউগুলিতে হার্ডওয়্যার ইউআআআটি থাকে যা আপনার জন্য এই সমস্ত করে।

আপনি সুযোগে যা দেখতে চান তা এখানে:

https://www.pololu.com/docs/0J25/4.a

এখানে সিরিয়ালটি ব্যাখ্যা করে লেডিডা থেকে একটি দুর্দান্ত ভিডিও দেওয়া হয়েছে: http://www.adafruit.com/blog/2010/09/15/usb-serial-and-you-video-an-adafruit- after-school-sp خصوصی /


ধন্যবাদ, জবি সুতরাং লাইনটি নিষ্ক্রিয় হয়ে থাকলেও, 0 বিট এখনও 0 ভি। রিসিভারের কি সাধারণত আরএক্স লাইনে অভ্যন্তরীণ টান থাকে, যাতে এটি ভাসমান না?
ব্লোর

@ ব্লেয়ার লাইনটি ভেসে উঠবে না, প্রেরক এটি চালাচ্ছেন (ধরে
নিচ্ছেন

আরডুইনোর নিউসফটসিয়েরিয়াল আরএক্স পিন এভিআর এর অভ্যন্তরীণ টান আপ সক্ষম করে। আমি ধরে নিলাম এটি সংযুক্ত প্রেরক না থাকলে এটি প্রয়োজনীয় is তথ্য এবং অ্যাডাফ্রুট লিঙ্কের জন্য ধন্যবাদ।
ব্লোর

1
কিছুটা পেডেন্টিক হওয়া, তবে "টিটিএল" কি কেবল মাত্রা বোঝায় না? আপনি একটি পয়েন্ট-টু-পয়েন্ট সিরিয়াল লিঙ্কটি বর্ণনা করেছেন, তবে এটি কি কেবল ওপেন সংগ্রাহক ড্রাইভার এবং একটি পুলআপ (যেমন লিনের মতো তবে টিটিএল স্তরের সাথে) একটি মাল্টি-মাস্টার টপোলজি হতে পারে? "টিটিএল সিরিয়াল" মনে হচ্ছে অবিশ্বাস্যভাবে বিস্তৃত একটি শব্দ যা কিছু প্রসঙ্গ ছাড়াই প্রায় অকেজো।
নিক টি

1
এটি কেবলমাত্র ভোল্টেজ রূপান্তরকারীগুলির সাথে স্ট্যান্ডার্ড সিরিয়াল পোর্ট ইন্টারফেস।
তারাবল ব্লু

8

আপনি এত কথায় বলবেন না, তবে "নিষ্ক্রিয় উচ্চ" আপনাকে একটি ইউআরটি বলতে বোঝায়। ইউআরটি সর্বব্যাপী তবে তারিখ প্রাপ্ত ম্যাক্স ২২২২ এর মতো লাইন-ট্রান্সসিভারের সাথে যুক্ত একটি পয়েন্ট-টু-পয়েন্ট রয়েছে (আজকাল এর চেয়ে আরও ভাল সমাধান রয়েছে)। মাইক্রোকন্ট্রোলার এবং ট্রান্সসিভারের মধ্যে লাইনটিও ছোট হবে; ব্রিজ করার জন্য যদি দূরত্ব থাকে তবে এটি ট্রান্সসিভারগুলির মধ্যে হবে।
কন্ট্রোলারের আউটপুট একটি পুশ-টান।

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

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

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


"সর্বব্যাপী তবে তারিখ প্রাপ্ত MAX232 (আজকাল এর চেয়ে আরও ভাল সমাধান রয়েছে)" আপনি কিছু উদাহরণ দিতে পারেন?
এম.আলিন

3
@ এম.আলিন - ম্যাক্সিম বলেছেন : "একক সরবরাহের ডিভাইসগুলি বছরের পর বছর ধরে ব্যাপক উন্নতি করেছে, তা সত্ত্বেও অনেকগুলি বোর্ড ডিজাইনার এখনও ম্যাক্স 232 ব্যবহার করেন use" ট্রান্সসিভারগুলির তালিকা
স্টিভেনভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.