Чим UART відрізняється від USB?
USB і UART є спільними комунікаціями interfaces, використовуваних в embedded systems до send and receive data між пристроями. UART вважається одним з перших комунікаційних interfaces застосованих до комп'ютерів. Новий USB-протокол, якраз, має відмінний багато UART систем, але як це продовжує бути незмінним в зробленій промисловості. У цьому матеріалі, ми будемо давати вказівки до USB і UART комунікацій і об'єктів на їхній відношенні.
UART to USB in Computers
Коли комп'ютери були першими впроваджені, accessory devices так як mice і printers були поєднані з'єднані за допомогою cables до серійного порту комп'ютера і з'єднані з новим стандартом серійного data communication називається RS-232. UART devices були створені для того, щоб бути надійними з цією комунікацією.
USB, якраз, має майже повне розповсюдження цих outdated cables і connectors that operate using UART communication. USB, серійний протокол, який також входить до RS-232 стандарту, був введений як більше розширений і стандартизований спосіб для пристроїв до комунікації через handshaking, device detection, auto speed negotiation, etc. UART still used today, але is primaryly seen in GPS and Bluetooth modules, Arduino, and other microcontrollers.
We’ll забезпечує деякі повідомлення на USB і UART комунікації interfaces для того, щоб отримати велику думку про те, що вони є аналогічні і різні.
Background of UART Communication
UART, або Universal Asynchronous Receiver/Transmitter, є hardware communication protocol, що використовується як synchronous серійний комунікації з configurable speed. Asynchronous means it doesn’t use a clock signal to synchronize output bits from the transmitting UART to the sampling bits on the receiving UART. UART є також сприймається як “universal” тому, що параметри, включаючи transfer Speed and data Speed, configurable by the developer.
UART communication consists of two UART devices that communicate directly with each other.The UART на sender device, або transmitting UART, отримувати parallel data від CPU (мікропроцесор або microcontroller) і перевірити його на послідовний data. Ця послідовна data є переведена до UART на receiver device, або receiving UART. Придбання UART перетворює отримані серійні дані взавжди в parallel data and sends it to в CPU.
У UART комунікації, тільки дві wires є необхідною для комунікації, включаючи Transmitter (Tx) і Receiver (Rx) сигнали. Data flows від Tx pin of transmitting UART to Rx pin of the receiving UART. Серійні комунікаційні протоколи так само, як RS-232, RS-422, або RS-485 є переведені за допомогою UART.
UART data is sent over the bus in the form of a packet. У пакеті містяться start bit, data frame, parity bit, and stop bits. Парити bit використовується як Error error check mechanism to help ensure data integrity. Встановіть, як використовувати годинник, отримувати і перевести UART необхідно для того, щоб самий стромий ритм, який дозволяє систему для знань, коли і коли bits буде знятий.
Background of USB Communication
USB, або Universal Serial Bus, є host-scheduled, token-based serial bus protocol, що був розроблений для заміни multitude of cables і connectors потрібний для підключення периферійних пристроїв до комп'ютера комп'ютера і вбудований implement a more standardized connection. USB-адреси багато потреб потребують цього доповіді, включаючи можливість до self-identify на bus і під час hot-plugged для plug-and-play capabilities.
Для USB комунікації, є USB host, або master device, що є ініціативою всіх комунікацій, що відбуваються над bus. Це є типово комп'ютером або іншим контролером. Періодичний прилад, або slave device, є з'єднаний з host і програмується для забезпечення host з інформацією, що вимагається до успішної роботи.
Якщо USB-пристрій є налаштованим в host-пристрої, прилад під нульовим числом. Під час цього періоду, host recognizes the device and assigns it a unique 7-bit address. Учні будуть шукати пристрої для своїх записників, які містять конкретні відомості про цей пристрій.
Залежно від цього розповсюдження інформації, дані є переведені і отримані через bus через різні USB-дані пакетні поля і пакетні типи, і різні типи даних transfers. More on the specifics for this can be found here.
Існують різні USB connector types, які включають конкретні pins, які дозволяють cable і connector для виконання певних функцій. USB під'єднувачі включають різні data pins (-, +) для data transfer, VBUS for bus voltage, ground, and shield pins.
USB також має різні cable specifications, що має бути введено впродовж років, будь-який supporting його own data rate:
USB-to-UART Bridge
USB має бути preferred serial communication protocol між digital products як комп'ютерів і периферійних пристроїв, як це може перетворювати дані через довгі cables і offers highher transmission rates. UART, however, still is used today для certain applications і is often seen in older devices.
В межах до мосту торговий між між oldder and newer devices, розробники можуть потрібні для кріплення легітимної трансмісії paths viable між USB і UART systems. У USB-UART-конвертері є вбудований кінець, використовуваний для того, щоб отримати або отримати серійні дані від USB-порту до послідовних даних, які можуть бути отримані або бути в UART-Interface. Це є невеликий пристрій, що під'єднуються до вашого USB-порту і має велике місце, Rx і Tx outputs. Це функція як послідовний port до вашого комп'ютера і комп'ютера sends data до цього port, де module converts it to UART сигналів.
How Total Phase Supports USB/UART Debugging
Total Phase offers різні USB protocol analyzers для monitor і debug USB traffic в реальному часі. Наші зразки Beagle USB Protocol Analyzers includes:
Beagle USB 12 Protocol Analyzer:
The Beagle USB 12 Protocol Analyzer може не-intrusively monitor Full/Low Speed USB (12 Mbps/1.5 Mbps)
Beagle USB 480 Protocol Analyzer:
The Beagle USB 480 Protocol Analyzer може не-інтрисивно monitor High-speed USB 2.0 (up to 480 Mbps) і offers class-level decoding. Це також може бути використане для нас Beagle USB 480 Protocol Analyzer для monitor RS-232 bus і capture UART data. Please see this blog for more information.
Beagle USB 480 Power Protocol Analyzer – Standard and Ultimate Editions:
The Beagle USB 480 Power Protocol Analyzer – Standard and Ultimate Editions може не-інтрисивний monitor High-speed USB 2.0 (up to 480 Mbps) and offer class-level decoding. Цей інструмент забезпечує реальний час графування VBUS поточних і послідовних значень і дозволів для interactive і bi-directional correlation of current/voltage values with USB data. The Ultimate edition also allows for USB 2.0 advanced triggers.
Beagle USB 5000 v2 SuperSpeed Protocol Analyzer – Standard and Ultimate Editions:
The Beagle USB 5000 v2 SuperSpeed Protocol Analyzer - Standard або Ultimate Editions може неінтуїсивний monitor USB 3.0 або USB 2.0 (up to 5 Gbps) і offers class-level decoding. Standard and Ultimate Editions може виконувати USB 2.0 і USB 3.0 простий і розширений матч/трагування. Для USB 3.0 розширені тригери, стандартна версія дозволяє для одного штату з одним матчем для stream to be defined, while the Ultimate edition allows for up to eight states to be defined with three matches per stream per state.
Для більш докладної інформації про те, як наші USB-протоколи analyzers можуть призначити ваші власні USB системи, contact us на [email protected].
Also, to learn more o differences between UART and other protocols is I2C and SPI, please see following blogs:
067-Data кабель від мобільного, як перетворювач USB to UART.
Більшість пристроїв блогу GetChip.net працює з UART. І це закономірно – UART дуже простий і невибагливий протокол. З ним легко працювати як з боку мікроконтролера, і з боку PC. Але є один мінус у використанні UART. Переважна більшість мікроконтролерів мають UART у себе «на борту», а от із PC ситуація трохи гірша. Інтерфейс UART є рідним для COM порту (у варіанті RS232), але в силу зростаючих вимог до периферії комп'ютера COM порт починає себе зживати. Це відбувається через малу швидкість, неможливості розширення тощо. У ноутбуках він давно зник, як клас портів. Йде черга стаціонарних комп'ютерів.
Але не все так погано. Є вихід із становища! Багато виробників розробили та випускають мікросхеми-перетворювачі (мости) USB – UART. Принцип їхньої роботи такий. На PC ставиться спеціальний драйвер, який створює віртуальний COM порт у системі. Для програм PC цей порт нічим не відрізняється від звичайного COM порту – заміни вони не помічають. Будь-які повідомлення в цей віртуальний порт перетворюються на посилки USB протоколу. Підключена до USB порту мікросхема-перетворювач приймає ці посилки та формує сигнали UART. З популярних і доступних мікросхем можна назвати FT232 та PL-2303 (а ще є OTI006858 та CP2102).
Тепер переходимо ближче до теми питання.
Отже, ми зрозуміли, що нам потрібний USB-перетворювач – UART.Одержати його можна кількома способами:
1 Купити потрібну мікросхему та спаяти пристрій самому. Якщо Ви збираєте якийсь пристрій, буде зручно, якщо перетворювач буде інтегрований у пристрій. Якщо погуглити, то знайдеться багато схем таких перетворювачів – витравити плату та зібрати перетворювач не буде проблемою.
2 Придбати вже готовий перетворювач. Теж хороший варіант. Таких пристроїв у продажу вистачає з надлишком. У різному форм-факторі, в різній ціні – вибирайте будь-який смак!
3 Є ще варіант альтернативний. Згоден – він не завжди може бути прийнятним, але все-таки… Можна «запозичити» перетворювач з іншого пристрою.
У цій статті я пропоную використовувати як перетворювач USB — UART шнурок для мобільного телефону (Data Cable). Чому саме шнурок для мобільного? Зараз поясню.
Якийсь час тому для зв'язку мобільного телефону з комп'ютером дуже широко використовувався протокол UART. Причини поширення зрозумілі - виробникам потрібен був дешевий і поширений канал зв'язку з PC. Їм міг стати або порт COM, або USB. На той час працювати з USB було дорого та не вигідно – переміг COM. Мобільні телефони видавали «поза» UART сигнал, а шнурки Data Cable перетворювали його на COM або USB порту. У наш час електроніка зробила крок далеко вперед і USB в мікропроцесорах мобільних телефонів стали обов'язковими. Шнурки для сучасних телефонів замінюються звичайними подовжувачами USB.
І ось ми підбираємось до найцікавішої частини. Телефони з'являються нові, старі шнурки-перетворювачі стають нікому не потрібними, а значить, продавці прагнуть за будь-які гроші їх позбутися.Ціни на ці старі залежалі шнурки стають просто кумедними. Ось і мені потрапили на очі ці коробочки зі шнурками за такі гроші, що я не втримався і купив дві. Зараз розповім, що потрібно робити, щоб зробити з такого шнурка повноцінний перетворювач USB UART.
Для початку потрібно купити цей самий шнурок.
Не всі шнурки підходять. Попередньо потрібно погугли на предмет назв шнурків, які мають перетворювач. Візуально потрібно шукати шнур із коробочкою посередині.
Ось пакувальна коробка та її вміст.
У комплект входить сам шнур та диск з драйверами. Диск одразу можна викинути – там така збірка сміття, що знайти щось потрібне проблематично. Беремо сам шнурок.
Далі потрібно розкрити коробочку, відпаяти від плати частина шнура яка йде до мобільного, відпаяти роз'єм підключення до мобільного.
Тепер уважніше розглянемо плату перетворювача.
В результаті розгляду виявляємо мікросхему Prolific PL-2303HX.
У 90% випадків у подібних шнурках ми побачимо саме цю мікросхему. Причина її дешевизна. Більше того, ця мікросхема буде стояти і в більшості USB-перетворювачів – UART, які Ви купите в магазині. Дуже рідко зустрінете FT232, оскільки вона дорожча і в дешевих китайських шнурках її немає (хіба що шнур якийсь фірмовий трапиться). Якщо Вам попався FT232RL - рахуйте пощастило, на такому шнурку можна і програматор забабахать (FT232RL може працювати в бітбанг режимі).
Зверніть увагу! Можна на платі знайти клон Prolific. Такий, наприклад, стояв у другому, із куплених мною шнурків.
Плата та ж, обважування та ж, але кристал явно не Prolific (судячи на вигляд більш дешевий клон).Насторожує відсутність кварцу, але платня працює (підозрюю, що працює від внутрішнього RC генератора – це не дуже гуд). У будь-якому випадку такі мікросхеми мають повний аналог (принаймні по ногах) Prolific.
Тепер йдемо на сайт Prolific і завантажуємо даташит на мікросхему
У даташіті знаходимо розпинування і дивимося, на яких ніжках потрібні нам сигнали UART:
- Передавач TXD – 1 ;
- Приймач RXD – 5 .
Знаходимо відповідні ніжки на мікросхемі.
Далі за допомогою звичайного тестера знаходимо найближчі контактні майданчики, до яких можна підпаяти дроти. До ніжок не підпаяєшся – вони дрібні. Ще нам потрібна земля — тут все просто, великі полігони нею і будуть. Підпаюємо до відповідних майданчиків дроту.
На інший кінець шнура чіпляємо зручний роз'єм.
Шнур готовий.
Знову йдемо на сайт Prolific і зкачуємо драйвер.
Запускаємо файл (Шнурок вставляти не потрібно) – відбудеться установка. Все готове. Тепер вставляємо в USB шнурок - відбудеться автоматичне встановлення драйвера для порту. У комп'ютері з'явиться віртуальний порт COM.
Перетворювач готовий до роботи.
Перевагами такого переробленого дата кабелю, в порівнянні з готовим перетворювачем або самостійним збиранням, є:
— ціна всього шнурка може бути навіть меншою, ніж вартість мікросхеми встановленої в ньому, а якщо такий шнур завалявся вдома, то ціна падає до нуля (або до пляшки пива якщо шнур знайти у друзів :));
- ми отримуємо пристрій в акуратній коробочці зі шнуром та USB роз'ємом.
Ось, власне, і все. Користуйтесь!
UART і з чим його їдять
Після Vogue істерії постало безліч питань, як підключити плату до комп'ютера. І багато людей навіть не розуміють, що таке UART.І я вирішив розповісти тут, який це потужний інструмент.
Роутер перетворюється на комп'ютер, якщо до нього за UART підключити клавіатуру та дисплей
Від телеграфу до COM-порту
Протокол UART (Universal asynchronous receiver/transmitter) або, російською мовою, УАПП (універсальний асинхронний приймач) — найстаріший і найпоширеніший на сьогоднішній день фізичний протокол передачі даних. Найбільш відомий з сімейства UART протокол RS-232 (у народі - COM-порт, той самий який стоїть у тебе в комп'ютері). Це, мабуть, найдавніший комп'ютерний інтерфейс. Він дожив до наших днів і не втратив своєї актуальності.
Потрібно сказати, що спочатку інтерфейс УАПП з'явився в США як засіб для передачі телеграфних повідомлень, і робочих біт там було п'ять (як в абетці Морзе). Для передачі використовувалися механічні пристрої. Потім з'явилися комп'ютери та коди ASCII, які зажадали сім біт. На початку 60-х на зміну прийшла всім відома 8-бітна таблиця ASCII, і тоді формат передачі став займати повноцінний байт плюс керуючі три біти.
1971 року, коли вже почався бум мікросхем, Гордон Белл для комп'ютерів PDP фірми Western Digital зробив мікросхему UART WD1402A. Приблизно на початку 80-х фірмою National Semiconductor було створено чіп 8520. У 90-ті було придумано буфер до інтерфейсу, що дозволило передавати дані більш високих швидкостях. Цей інтерфейс, не зазнавши ніяких змін, дійшов і до наших днів
Фізика інтерфейсу
Щоб зрозуміти, що ріднить і відрізняє різні UART-інтерфейси, розберемо принцип роботи найпопулярнішого та найулюбленішого нами протоколу RS-232. Прискіпливо розписувати всі тонкощі його роботи я не буду.Про це написано жоден десяток мегабайт статей, і якщо ти вмієш користуватися Гуглом, то без проблем знайдеш всю необхідну інформацію.
Основні робочі лінії у нас - RXD і TXD, або просто RX і TX.
Ці лінії СОМ-порту задіяні при передачі без апаратного керування потоком даних. При апаратному потоці задіяні ще додаткові інтерфейсні лінії (DTS, RTS тощо). стандартної 5-вольтової TTL логіки. У цьому протоколі логічний нуль лежить від +3 до +12 вольт, а одиниця від -3 до -12, відповідно. Проміжок від -3 до +3 вольт вважається зоною невизначеності. Комп'ютерний блок живлення існує відразу дві напруги: -12 і +12 вольт. Вони були введені спеціально для роботи СОМ-порту.
Прийом сигналу RS-232 (взято з книги М.Гук «Апаратні інтерфейси ПК»)
Така велика амплітуда робочих напруг, цілих 24 вольта, потрібна в першу чергу для перешкод стійкості ліній зв'язку. Електричні параметри RS-232 – це головна характеристика, яка відрізняє його від інших протоколів сімейства UART.
Наступні характеристики - формат посилки та швидкість передачі даних - повністю застосовні до всіх видів UART і забезпечують їхню сумісність через нескладні схеми сполучення.
Стандартна посилка займає 10 біт. Але це правило поширюється лише на стандартні настройки СОМ-порта. В принципі його можна переналаштувати так, щоб він навіть інтерфейс One-Wire розумів. У режимі простою, коли по лінії нічого не передається, вона перебуває у стані логічної одиниці, або -12 вольт. Початок передачі позначають передачею стартового біта, який завжди дорівнює нулю. Потім іде передача восьми біт даних. Завершує посилку біт парності та стоповий біт. Біт парності здійснює перевірку переданих даних. Стоповий біт говорить нам, що пересилання даних завершено. Слід зазначити, що STOP-біт може займати 1, 1.5 і 2 біти. Не варто думати, що це дробові біти, це число говорить лише про його тривалість. Стоповий біт, як і стартовий, дорівнює нулю.
Сигнал UART на екрані осцилографа. Видно старт біт, дані та стоповий біт. Дякую DIHALTза картинку
Швидкість роботи
Навіть якщо тобі раніше ніколи не доводилося працювати із СОМ-портом, принаймні в модемі ти маєш знати номінальні швидкості роботи: 9600, 28800, 33600, 56000 тощо. Скільки біт за секунду тікає з нашого порту? Ось дивись, припустимо, швидкість у нас 9600 біт за секунду. Це означає, що передача одного біта займатиме 1/9600 секунд, а пересилання байта - 11/9600. І така швидкість для байта вірна лише у випадку, якщо стоп-біт займатиме один біт. Якщо він займає два стоп-біти, то передача буде 12/9600.Це з тим, що з бітами даних передаються ще спеціальні біти: старт, стоп і біт парності. Лінійку швидкостей СОМ-порту стандартизовано. Як правило, всі пристрої працюють на трьох стандартних швидкостях: 9600, 19200, 115200. Але можливі інші варіанти, навіть використання нестандартних швидкостей або швидкості, що змінюється в часі, - з цим я стикався при розборі польотів чергового пристрою.
Такий різний протокол
Видів UART існує безліч. Я не перераховуватиму їх найменування, бо, якщо ти володієш англійською, то зумієш і сам нагуглити. Але найголовніші не відзначити не можна! Нагадаю, що головна відмінність інтерфейсів полягає в середовищі та способі передачі даних. Дані можуть передаватися навіть оптоволокном.
Другий за розповсюдженням інтерфейс після RS-232 – це RS-485. Він є промисловим стандартом, і передача в ньому здійснюється по кручений парі, що дає йому непогану стійкість до перешкод і підвищену швидкість передачі до 4 мегабіт в секунду. Довжина дроту тут може досягати 1 км. Як правило, він використовується на заводах для керування різними верстатами.
Треба сказати, що IRDA, або інфрачервоний зв'язок, вбудований у більшість телефонів і КПК, теж є UARTом. Тільки дані передаються не проводами, а з допомогою інфрачервоного випромінювання.
У SMART-картах (SIM, супутникове телебачення, банківські картки) – тих самих пристроях, які мріє поховати кожен фрикер, що поважає себе, – теж використовується наш улюблений UART. Щоправда, там напівдуплексна передача даних, і логіка роботи може бути 1,8/3,3 та 5 вольт.Виглядає так, ніби RX запаяний з TX на одному кінці та на іншому – в результаті один передає, інший в цей момент слухає, і навпаки. Це регламентовано стандартом смарт-карток. Так ми точно знаємо, скільки байт надішлемо, і скільки нам відповість картка. Тема варта окремої статті. Загалом, запам'ятай, що UART є практично скрізь.
Пристрої, які мають на своєму борту UART, за годинниковою стрілкою: мишка, ридер-емулятор SMART-карт, КПК Palm m105, плата для налагодження для мікроконтролера ATtiny2313 (або AT89C2051), модем.
Сполучення інтерфейсів
Я вже очі намозолив різними інтерфейсами, але як з ними працювати? Ну, зі звичайним RS-232 зрозуміло, а, припустимо, з 5-вольтовим юартом як бути? Все просто: існують різні готові мікросхеми-перетворювачі. Як правило, у маркуванні вони містять цифри «232». Побачив у схемі мікроху з цими цифрами – будь впевнений: швидше за все це перетворювач. Через такі мікросхеми з невеликим обв'язуванням та сполучаються всі інтерфейси UART. Я не розповідатиму про промислові інтерфейси, а скажу про ті перетворювачі, які цікавлять нас в першу чергу.
Найвідоміший перетворювач інтерфейсу – це мікросхема, розроблена фірмою MAXIM, яка й одержала від неї частину своєї назви (max232). Для її роботи потрібно чотири конденсатори від 0,1 мікрофаради до 4 мікрофарад та живлення 5 вольт. Дивно, що ця мікросхема з 5 вольт генерує негативну напругу, щоб поєднувати 5-вольтовий UART з RS-232.
Існують мікросхеми сполучення USB з UART, наприклад мікросхема ft232rl. У Ubuntu для цієї мікросхеми вже вбудовано драйвер. Для Windows їх доведеться качати з офіційного сайту.Після встановлення драйверів у системі з'явиться віртуальний СОМ-порт, і з ним можна керувати різними пристроями. Раджу не приймати ці мікросхеми як єдино можливі. Знайдеться величезна кількість дешевших і цікавіших аналогів, тому насидай на Google і зрозумієш, що світ UARTа - це круто.
В цілому, мікросхеми коштують досить дорого і часом можна обійтися складнішими, зате дешевшими схемами на парі транзисторів.
Що це нам дає?
Як ти зрозумів, інтерфейс UART є у багатьох пристроях, у яких стоїть будь-який процесор чи контролер. Я навіть більше скажу: якщо там стоїть контролер, то юарт є стопудовим (тільки він не завжди може використовуватися). Як правило, за цим інтерфейсом йде налагодження та перевірка працездатності девайсу. Найчастіше виробник замовчує наявність цього інтерфейсу у виробі, але знайти його нескладно: достатньо скачати мануал на процесор і, де знаходиться юарт, ти знатимеш. Після того, як ти отримаєш фізичний доступ до залізяки на наш інтерфейс, можна його налаштувати на свій розсуд або навіть змусити працювати, тому що треба тобі, а не як задумав виробник. Загалом, - вичавити максимум можливостей зі скромного девайсу. Знання цього протоколу дає можливість підслухати, що відбувається у лініях обміну між різними процесорами, оскільки часто виробники організують цілі юарт-сети у своєму пристрої. Загалом, багато застосувань, головне – інтуїтивно розуміти, як це робити.
Апдейтим роутер
Напередодні я навів собі WiFi-роутер WL-520GU і, прочитавши статтю Step'a «Level-up для точки доступу» (][ #106), успішно встановив туди Linux.Але у мене виникли проблеми із монтуванням swap-розділу жорсткого диска. Так виникла потреба подивитися лог завантаження точки доступу – підмонтувався розділ чи ні – причому, як кажуть, на льоту, щоб одразу вносити необхідні зміни. Шостим почуттям я підозрював, що в моєму роутері просто повинен бути UART. Я взяв у руки хрестову викрутку і почав її розбирати. Справа тривіальна, але з заковиркою - потаємні гвинтики знаходяться під гумовими ніжками (якщо вирішиш повторити, пам'ятай, що при розборі ти втрачаєш гарантію). На мій погляд з'явилася досить нудна плата, де все «chip-in-one»: один центральний процесор, в який включено все, зовнішня оператива, флеша, перетворювач живлення і ряд роз'ємів з кнопками. Але на платі був не розпаяний контактний майданчик, точніше сказати, отвори під голки. Їх було чотири штуки. Ось він UART, очевидно! По платі навіть без мультиметра видно, що крайні голки - +3,3 вольта і другий - земля. Середні контакти, відповідно, RX та TX. Який з них легко встановлюється методом наукового тику (спалити інтерфейс дуже проблематично).
Відразу хочу наголосити, що інтерфейс UART у кожному роутері виглядає по-різному. У більшості випадків це не розпаяні отвори на платі. Щоправда, в одному роутері від ASUS я навіть зустрів повністю підписаний роз'єм.
Збираємо перетворювач
Щоб підключити роутер до комп'ютера, потрібно сполучити інтерфейси RS-232 з UART роутера. В принципі, можна підключити до USB, використовуючи вказану вище мікросхему FT232RL, - що я зробив при першій перевірці роутера. Але ця мікросхема – у досить складному для паяння корпусі, тому ми поговоримо про простіші рішення.А саме – мікросхемою MAX232. Якщо ти збираєшся харчуватись від роутера, то там, швидше за все, буде 3,3 вольта, тому краще використовувати MAX3232, яка зазвичай стоїть у КПК (схему розпаювання неважко знайти в інеті). Але в моєму роутері було харчування +5 вольт на вході, а вказаних мікросхем у мене безліч, і я не став морочитися. Для складання нам знадобляться конденсатори 0,1 мкФ (4 штуки) і сама мікросхема. Запаюємо все за традиційною схемою, і починаємо експерименти.
Вихідники для збирання
На вихід я одразу повісив 9-піновий роз'єм типу «тато», щоб можна було легко підключити нуль-модемний кабель. Якщо ти пам'ятаєш, за часів DOSа такими кабелями робили сітку з двох комп'ютерів і різалися в «Дюкнюкем». Провід для наших цілей зібрати нескладно. Правда, вийде не повний нуль-модем і через нього особливо не пограєш, але керувати точкою доступу буде саме те! Тобі знадобляться два 9-пінові роз'єми типу «мама», корпуси до них і провід, наприклад, від старої мишки або клави (головне, щоб у ньому було три дроти). Спочатку з'єднуємо землі - це п'ятий контакт роз'ємів; просто беремо будь-який провід і з обох боків припаюємо до 5-го контакту. А ось з RX і TX треба вчинити хитріше. З одного кінця дроту запаюємо на 3-й контакт, з другого – на 2-й. Аналогічно з третім проводом, тільки з одного кінця запаюємо на 2-й контакт, з іншого – на 3-й. Суть у тому, що TX має передавати до RX. Ховаємо запаяні роз'єми в корпус і готовий нуль-модемний кабель!
Розпаяні голки на платі роутера.
Для зручності монтажу в материнку роутера я впаяв штирковий роз'єм, а в монтажку з MAX232 - зворотний роз'єм і вставив хустку, як у слот. RX та TX роутера підбираються експериментально.
Тепер треба запитати мікросхему перетворювача. Загальний провід у нас є вже прямо в роз'ємі на мамці роутера. А ось +5 вольт знаходиться прямо біля входу живлення роутера, у місці, де підключається адаптер. Точку знаходження 5 вольт визначаємо вольтметром, вимірюючи різні вузли щодо землі роутера.
Підключаємо живлення. Включаємо та починаємо наші злісні експерименти.
Пропалюємо отвір для виведення проводів
Розпаяний СОМ-порт
Все у зборі. Зверніть увагу, що червоний кабель живлення йде до роз'єму адаптера роутера. Вузлик усередині зроблений, щоб ривком на відірвати припаяні дроти.
Налаштування терміналу
Нам потрібно настроїти термінальну програму. У Вінді все досить просто: запускаємо Hyper Terminal, відключаємо програмну та апаратну перевірку даних, виставляємо швидкість 115200 та один стоповий біт. А ось у Лінусі справа трохи хитріша. У мене Ubuntu, і розповідатиму про неї. Спочатку розберися, як у твоїй збірці називається СОМ-порт. У моєму випадку СОМ1 був ttyS0 (якщо використовувати наприклад мікросхему FT232, то він іменуватиметься ttyUSB0). Для роботи з ним я використав софтинку minicom.
Запускайте її з параметрами: minicom -l -8 -c on -s. Далі вибирай «Параметри послідовного порту»:
Послідовний порт /dev/ttyS0
* Швидкість/парність/біти 115200 8N1
* Апаратне керування потоком - ні
* Програмне управління потоком - ні
Зберігаємо налаштування. Софтіна спробує проініціалізувати модем – не звертай уваги. Натисніть , щоб викликати меню. Там можна змінювати налаштування, наприклад: увімкнути/вимкнути відлуння - Е.
Налаштування
Я не рекомендую підключати мікросхему перетворювача до роутера, щоб перевірити її функціонал.Дозволяється лише брати з нього харчування. Перевірка проходить дуже просто – необхідно перемкнути RX із TX. Спочатку перемикаєш у СОМ-порті 2-й та 3-й контакт – перевіряєш налаштування терміналки. Пишеш щось на клаві: якщо символи повертаються, то все ОК. Також перевіряєш кабель, ті самі контакти. Потім підключаєш мікросхему і вже в неї на виході ставиш перемичку. Я загострюю на цьому увагу, тому що, наприклад, у мене виникли проблеми, і нічого не працювало, доки я все не перевірив і не знайшов помилки.
Після всіх налаштувань можеш сміливо чіпляти до роутера та шукати RX-TX на роутері, періодично висмикуючи з нього живлення. Якщо все зроблено правильно, то при подачі живлення ти побачиш лог завантаження роутера. Приймай вітання, тепер маєш повний апаратний рут, так, ніби ти сидиш за монітором з клавою роутера.
Лог завантаження роутера у програмі minicom
Автономне плавання
Погодься, робити через термінальну програму те саме, що зручніше зробити через SSH – не айс. Мені хотілося перетворити роутер на автономний Linux-комп'ютер, зі своєю хитрою архітектурою. Для цього потрібно, щоб дані з клавіатури передавалися UART, і по ньому ж виводилися на монітор. Паяти і розробляти пристрій було ліниво. Тоді-то й прийшла ідея заюзати для цих цілей КПК, що палиться без справи. По суті, наладонник буде виконувати роль контролера клавіатури і дисплея, та й служити поєднанням інтерфейсів.
Спочатку я спробував найдавніший Palm m100. Але, мабуть, він має дуже маленьку буферну пам'ять, і від кількості даних, які йдуть з роутера, йому ставало погано. Я взяв інший — промисловий КПК, із нормальним СОМ-портом та терміналкою.Підключив, вставив док і, в результаті, отримав невеликий лінукс-комп'ютер. В принципі, замість дорогого промислового КПК підійде більшість наладонників, які працюють під операційною системою WinCE, головне – знайти відповідний термінальний софт.
Лінукс комп'ютер :)
Підсумки
Отже, я показав невеликий приклад використання UART. Якщо ти вкуриш у цей протокол, то повір, станеш просто володарем різних залізниць. Є він практично скрізь, і через нього можна поєднувати, здавалося б, зовсім різні речі. Приміром, до того ж роутеру при невеликих налаштуваннях підключається мобільний телефон за юартом – і роздає з нього інтернет. Загалом, застосування купи. Не бійся експериментувати, самоутворюватись та реалізувати свої ідеї.
Цей пост є відредагованою для хабра версією моєї статті в Хакері №05/09 «Головний інструмент фрікера».
Література:
1. Михайло Гук "Апаратні інтерфейси ПК" - просто студентська біблія з персоналки.
2. en.wikipedia.org/wiki/RS-232
3. easyelectronics.ru/tag/rs232
