Ви не говорите так багато слів, але "високий час простою" говорить про те, що ви маєте на увазі UART. UART - це точка-точка, підключена до передавачів ліній, як повсюдний, але датований MAX232 (сьогодні є набагато кращі рішення). Лінія між мікроконтролером і приймачем також буде короткою; якщо є відстань, яку потрібно подолати, це буде між приймачами.
Вихід контролера - це push-pull.
P-MOSFET забезпечить високий рівень, N-MOSFET низький рівень. Один з них повинен бути активним, або рівень лінії плавав би і був невизначений (або визначався навантаженням у приймачі). Обидва здатні джерело / потопити деякий струм і підтягнуть лінію до рейок, тому форма сигналу буде майже ідеальною.
Що було б інакше, якби це був насправді TTL, як у вашому питанні (мікроконтролером є HCMOS). Виходи TTL дуже асиметричні: вони можуть подавати лише невеликий струм, як правило, 0,4 мА. Струм занурення нормальний, 8 мА. Струм з низьким джерелом може бути проблемою, якщо лінія має високу ємність та високу швидкість. Низький струм приводу означає, що ємність буде заряджатися лише відносно повільно, а піднімаються кромки будуть повільними, що на високій швидкості може спричинити серйозні спотворення сигналу. TTL ніколи для цього не використовується.
Ваше запитання також може стосуватися багатопроменевої лінії , де можуть говорити кілька пристроїв. У такому випадку ви не можете використовувати вихідний поштовий висновок: якщо один пристрій буде запускати лінію високо, а інший занижує її, ми мали б коротке замикання. Багатолітні лінії майже завжди використовують підтягуючі резистори, щоб утримувати високий рівень холостого ходу. Тоді потрібен лише низький рівень руху лінії, і замість виштовхувального виходу у нас буде відкритий стік, лише N-MOSFET. Лінія тепер також ведеться несиметрично: підтягуючий резистор може подавати лише невеликий струм, тоді як висувний FET може швидко рухати лінію на землю. Тому високошвидкісні багатопроменеві лінії ставлять обмеження на піднімаючі резистори. Приклад - I2C.