RS-485
Внимание вопрос! В чем различие, с точки зрения программирования?
То есть нельзя одновременно передавать данные и принимать - только по очереди. Кажется, такой режим называется полудуплексным.
Я использовал обычные функции win32 api для работы с тим портом - всё работало.
Первый. Преобразователю интерфейса перемычками говорим скорость обмена и длительность байта. После этого к преобразователю интерфейса подключаемся со стороны компьютора обычным RS232, причем достаточно линий TXD и RXD. Все . Работаем как обычно c 232. Только в некоторых случаях, когда на том конце устройство очень шустрое и начинает отвечать практически без задержки возможны ситуации когда преобразователь не успевает переключиться после посылки команды к устройству на прием и начало ответа будет съедено. Это характерно для малых скоростей. Так что если вы пишете и устройство , поставьте фиктивную задержку перед ответом в устройстве или если устройство работает по ASCII протоколу пошлите перед ответом пару ff.
Второй вариант. Перемычками задаем преобразователю интерфейса что направление передачи он будет менять по сигналу RTS. Тогда с компьютором преобразователь интерфейса будет связываться еще и линией RTS. Кстати если преобразователь интерфейса вы планируете сделать сами - это будет самым простым. Тут вам надо будет просто внимательно разобраться в dcb и посмотреть, как там выставить управление этой линией. Приемопередатчик компьютора будет сам выставлять RTS на время передачи.
Третий вариант. Вы пишете скажем для одноплатки, в которой есть порт со встроенным RS485. Тогда вам надо будет управлять направлением управляя линией RTS этого порта (или в регистре есле пишете под DOS на С, или если винда работает, то или в dcb ставим управление RTS или ручками API шными функциями переключаем RTS).
Из под WIN все пишется так же как и под 232 на API.
Если у вас будет MODBUS RTU то точно соблюсти анализ времен винда вообще не позволяет , но работоспособного обмена добиться можно аккуратно прописав в commtimeout времена все.