Свързване на микроконтролера към компютър

Един от въпросите, които са от голям интерес за начинаещи (и дори опитни) дизайнери на микропроцесорни системи, е въпросът за взаимодействието между микроконтролер и компютър. И това не е изненадващо. Понякога е много необходимо да се създаде определено устройство, което да работи не само автономно, но и под контрола на вашия компютър. Понякога е желателно бързо да се чете информация от устройство на микроконтролер или задачата е да се разработи микроконтролерна приставка за свързване на компютър с всяка външна система, управлявана от него. Естествено две устройства, базирани на микропроцесорни технологии (компютър и микроконтролер) винаги могат да бъдат накарани да обменят информация помежду си. Нека да видим как може да стане това.

Връзка чрез LPT порт

Връзка през COM порт

Това е по-нов, макар и вече умиращ начин. Точно както LPT серийните COM портове вече се използват все по-малко и със сигурност скоро ще изчезнат. Работата с COM порт е много по-трудна, отколкото с LPT. Стандартният COM порт има много по-малко пинове. И пряк контрол е възможен само за някои от тях. Няма смисъл да се използват. Тогава е по-добре да използвате LPT порта, който е по-богат в този смисъл. Прехвърлянето на информация в COM порта става само през два реда. Това са линията RxD (приемане на данни) и линията TxD (предаване на данни). За предаване на данни се използва специален протокол, който се нарича RS232. Повечето съвременни микроконтролери имат вграден RS232 съвместим интерфейс. Това прави връзката по-лесна. Има обаче една трудност. Пълният RS232 протокол осигурява собствен стандарт за нивата на изходния и входния сигнал. Изходен сигналTxD на COM порта приема две стойности: логическа единица - плюс 12V, логическа нула - минус 12V. Този диапазон е приет, за да се намали ефектът от смущенията. Същият сигнал трябва да бъде приложен към входа RxD. Серийният канал на микроконтролера поддържа други нива на сигнала. Там сигналът използва стандартни логически нива. Логическа нула - 0V. Логическата единица е приблизително + 5V. Следователно, за комуникация между COM порта и микроконтролера е необходимо да се координират нивата на сигнала. За това обикновено се използва специална микросхема от MAXIM. Този чип се нарича MAX232A. Това е много лесен за използване чип. Изисква само едно захранващо напрежение: +5V. Вътре микросхемата съдържа два преобразувателя, които се използват за получаване на необходимите за работа напрежения +12V и -12V.

Свързване чрез USB порт

Несъмнено това е най-обещаващият начин за свързване. В същото време той е и най-трудният по отношение на софтуерната реализация. USB портът е специално проектиран като универсален сериен порт за свързване на всякакви външни периферни устройства. Чрез този порт към компютъра могат да бъдат свързани външни твърди дискове и флаш памети, джойстици, мишки, звукови системи, WEB камери, MP3 плейъри и дори външни ТВ тунери. Текущият стандарт USB версия 2.0 поддържа скорости на трансфер на данни от 1,5 Mbps до 480 Mbps. Трудността при прилагането на този метод се крие във факта, че USB протоколът е сериозен многостепенен протокол за пренос на информация. Най-ниското ниво на този протокол определя правилата относно формирането на импулси: продължителност, диапазон, метод за кодиране на данни, методи за синхронизация, методи за проверка на грешки. На ниско ниво се определя и катобитовете се събират до байтове. Следващото по-високо ниво се отнася до предаването на самите данни. В крайна сметка не се предават само байтове. Тези байтове формират командите на USB протокола. USB протоколът от високо ниво е набор от команди, които позволяват запитване на външни устройства, свързани към порта, като се иска от тези устройства информация за техния тип, име, производител и поддържани режими на работа. Ако сте работили с USB, вероятно сте забелязали, че когато свържете твърд диск към USB, компютърът веднага ще го открие и в списъка с дискове ще се появи друг диск. Когато устройството бъде изключено от порта, то веднага ще изчезне от списъка. Когато свържете аудио устройство, в списъка с аудио устройства ще се появи ново устройство. Същото се случва, когато свържете камера, скенер, джойстик и т.н. Всички тези типове устройства се разпознават автоматично от USB порта, тъй като има команди в списъка със стандартни команди за USB протокол, които им позволяват да бъдат идентифицирани. Следователно устройство, свързано към компютър чрез USB порт, трябва да може да поддържа целия този протокол. Той трябва правилно да отговаря на всички компютърни заявки. Но това не е единственият проблем. По-сериозен проблем е твърде високата скорост на USB интерфейса. Той също така налага определени ограничения и допълнителни изисквания. Има три начина за свързване на микроконтролера към компютър чрез USB. Нека ги разгледаме по ред.

Използване на микроконтролер с вграден USB хардуерен модул. Atmel произвежда няколко вида такива микроконтролери. Например AT90USB1287 или AT90USB647. Такъв микроконтролер съдържа вграден хардуерен USB интерфейс. Този интерфейс се грижи за цялата обработка на USB протокола, така че основното ядро ​​на микроконтролера не се зарежда от товазадача и може да е зает с изпълнението на основната си програма. Използването на чип с вграден USB канал е най-компетентният подход по отношение на качеството и надеждността на цялата система. Недостатъкът е високата цена на такива микроконтролери (около 25 ... 30 USD). Въпреки наличието на хардуерен USB интерфейс, програмата, вградена в микроконтролера, трябва да има подходяща процедура за управление и конфигуриране на този интерфейс. Създаването на такъв интерфейс изисква доста сериозни познания за USB протокола.

Използване на допълнителен чип - USB - RS232 конвертор. Този чип е произведен например от Future Technology Devices International Limited (FTDI) и се нарича FT232RL. Чипът съдържа хардуерен USB интерфейс и RS232 интерфейс. Основната цел на микросхемата е да преобразува данните, получени чрез USB интерфейса, във формат RS232 и обратно. Както бе споменато по-горе, повечето съвременни микроконтролери имат вграден сериен интерфейс, който е съвместим с RS232. Следователно проблемът с връзката се решава много просто. И в този случай дори не е нужно да се притеснявате за съвместимостта по отношение на нивото на сигнала. В чипа FT232RL, както и в микроконтролера RS232, интерфейсът работи с нива на сигнала от 0V ... + 5V. Използването на отделна микросхема, USB-RS232 конвертор, в момента е най-често срещаното решение на проблема, който обмисляме. Първо, това опростява разработката на софтуер, тъй като работата с RS232 е несравнимо по-лесна от работата с USB. Освен това това решение е на оптимална цена. Чипът FT232RL струва около $8.