На пути к Ultimate Data Exchange Framework. Часть 1 — Введение

Рано или поздно, начинающий программист микроконтроллеров сталкивается с задачей организовать управление девайсом через управляющую программу на ПК. Самым простым и надежным решением является использование интерфейса RS232: в любом микроконтроллере есть хотя бы один UART, добавьте к нему какой-нибудь MAX232 с щепоткой кондеров и вуаля, обмен готов! Либо, если нет в компе аппаратного RS232 интерфейса, на помощь приходит USB. Ставим какой-нибудь мост USB<->UART (например от FTDI FT232RL) и получаем все то же самое, только по USB. И девайс современней выглядит, и в системе отображается как старый добрый COM-порт, и готовые библиотеки в Visual Studio есть. Осталось только набросать какой-нибудь простенький протокол обмена, и вперед! Однако, с протоколом может быть не все так просто, как кажется на первый взгляд. В этой части мы составим небольшое ТЗ на устройство, рассмотрим его функционал, и рассмотрим один из вариантов протокола обмена данными, который я использую в своей практике.

Читать далее

Бинарный протокол обмена данными по RS232 BinExchange

Несмотря на свою древность, RS232 и его вариации до сих пор широко используются в различных системах автоматизации и в бытовых приборах. И это все потому, что COM-порт очень прост в освоении. И еще существует большое количество переходников USB-UART, которые позволяют добавить интерфейс USB в свой девайс без мучительного изучения стандарта USB и покупки VID. Однако, встает вопрос о том, каким образом передавать байты информации по последовательному порту. В этой статье мы рассмотрим мое решение данного вопроса, которое называется BinExchange protocol.

Читать далее

C#: управляем девайсом с компа

Некоторые задачи требуют подключения электронного устройства к персональному компьютеру. Самый простой и распространенный способ это сделать — использовать переходник USB-COM, или микросхему-мост USB-UART. Однако, на стороне ПК нам понадобится какая-то программа, с помощью которой мы будем управлять нашим девайсом.

Читать далее