Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 7, 6 и 5 бит данных в rs485
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
_3m
Вопрос:
Кто нибудь встречал использование 7, 6 или 5-битных данных в серийном оборудовании с интерфейсом rs485 (422, 232) ?

Вопрос возник потому что uart Stm32 поддерживает только 8 и 9 бит.
Сейчас как правило используется 8 бит данных, однако беспокоит что например Ascii ориентированные протоколы запросто могут использовать 7 битный формат а в древних устройствах может быть вообще все что угодно.
Если форматы данных менее 8 бит используются придется брать другой процессор с более гибким уарт.

SSerge
Цитата(_3m @ Jun 24 2015, 19:32) *
Вопрос:
Кто нибудь встречал использование 7, 6 или 5-битных данных в серийном оборудовании с интерфейсом rs485 (422, 232) ?

Никто не мешает передавать 8-битные данные с одним стоповым у которых старший бит выставлен в "1", получится аналог 7N2.
Хотя уже 7N1, передаваемые без пауз такой уарт принять не сможет.
Мне, впрочем, не приходилось встречать использование RS485 менее чем с 8 битами. Обычно или жёстко заданный формат 8 бит или возможность настройки.
Myron
Цитата(SSerge @ Jun 24 2015, 08:06) *
Никто не мешает передавать 8-битные данные с одним стоповым у которых старший бит выставлен в "1", получится аналог 7N2. Хотя уже 7N1, передаваемые без пауз такой уарт принять не сможет. Мне, впрочем, не приходилось встречать использование RS485 менее чем с 8 битами. Обычно или жёстко заданный формат 8 бит или возможность настройки.
RS232 вышел на рынок (принято считать, что был принят де-факто и де-юрэ) в 1964-м. До этого разрабатывался ( не один день) да и применялся в том или ином виде до этого. Поскольку на западе стандарт не закон, а рекомендации, то и использовали его по разному. В старой аппаратуре возможны 5, 6 и 7 бит и даже 1 стоп-, 1,5 стоп- и 2 стоп- бита. (Связано это было также и с желанием привязать электромеханику к электронике). Иногда последний информационный бит (7-й) при 5-битах информации и 2-х стопах использовался как дополнение до четности (нечетности). Стабильными за все годы и фирмы были только полярности старта и стопа (стопов). Погуглите, все это есть. RS422 и 485 появились позднее и более устойчивы были с самого начала. Но и там своего *** хватало.
prig
Цитата(_3m @ Jun 24 2015, 15:32) *
Вопрос:
Кто нибудь встречал использование 7, 6 или 5-битных данных в серийном оборудовании с интерфейсом rs485 (422, 232) ?
...
Если форматы данных менее 8 бит используются придется брать другой процессор с более гибким уарт.


Приходилось сталкиваться с чем-то подобным в 80-х. Вот ни разу не припомню, что бы хоть раз уткнулись в 7 бит.
Самое древнее, на что можно ориентироваться, это устройства, с портом на 8251. Наверное, что-то такое ещё встретить можно.
Но даже если такие устройства имеют режим 7 бит, они наверняка поддерживают 2 стопа или переключаются в режим 8 бит (обычно задавалось переключателями).

Тут ещё стоит учесть обильное использование с 80-х микроконтроллеров типа 8051 и прочего подобного, которые работать с 7+1 просто не умеют.
Массовость применения 8-битных каналов разработчиками оборудования в 80-х безусловно учитывалась.
Думаю, что даже при большом желании, сейчас чрезвычайно трудно найти рабочую железяку, которая не поддерживает 8 бит (или 7+2).
alexunder
Цитата(prig @ Jun 24 2015, 17:45) *
Думаю, что даже при большом желании, сейчас чрезвычайно трудно найти рабочую железяку, которая не поддерживает 8 бит (или 7+2).

bb-offtopic.gif
может автор изобрел машину времени и отправляется в прошлое? sm.gif
jcxz
Странный вопрос... А автор не знает с каким оборудованием ему предстоит работать??? Разработка "коня в вакууме", работающего со всем возможным существующим в мире оборудованием? biggrin.gif

И из отписавшихся кто работал когда-нить со сторонним оборудованием по RS-485? rolleyes.gif
Например - разного рода счётчиками э-энергии/воды/газа/...?
Например нам, когда мы разрабатывали контроллер сбора данных с различных устройств учёта, ставили задачу по поддержке всех стандартных режимов UART.
Даже хуже - говорили что есть какие-то счётчики, которые в процессе обмена с ними переключают скорость и формат обмена (вроде насколько помню - заголовок сообщения
передают на одной скорости/формате, тело с данными - на другой). Точно не скажу что это за устройства. Но в ТЗ требование было.
Чтобы понять насколько актуально всё менее 8N1, достаточно набрать в поиске 7N1 или 7E1 или... Увидите сколько ссылок и многие - совсем свежие даты.
Например вот:
http://www.tekon.ru/products/oth_equipment/electocounters
_3m
Цитата(jcxz @ Jun 25 2015, 05:34) *
Странный вопрос... А автор не знает с каким оборудованием ему предстоит работать??? Разработка "коня в вакууме", работающего со всем возможным существующим в мире оборудованием? biggrin.gif

И из отписавшихся кто работал когда-нить со сторонним оборудованием по RS-485? rolleyes.gif
Например - разного рода счётчиками э-энергии/воды/газа/...?

Автор действительно не знает с каким оборудованием предстоит работать.
Поставлена задача работать с любыми устройствами имеющими интерфейс Rs485.
В первую очередь это счетчики электроэнергии/воды/газа/солярки/бензина/ зарубежных производителей.

Формат 7E1 stm32 еще может переварить если четность софтверно считать.
Затык с форматом 7N1 - его Stm32 не переварит никак.
Ruslan1
Цитата(jcxz @ Jun 25 2015, 05:34) *
Даже хуже - говорили что есть какие-то счётчики, которые в процессе обмена с ними переключают скорость и формат обмена (вроде насколько помню - заголовок сообщения
передают на одной скорости/формате, тело с данными - на другой). Точно не скажу что это за устройства. Но в ТЗ требование было.

Ну, например у Шлюмберже есть один газовый корректор (за давностью лет тип не помню). Там во время хэндшейка скорость меняется, причем запрос идет на старой скорости, а ответ уже на новой.
Да много извратов бывает, всего не предусмотришь, если в ТЗ нет четкого определения.
Лично я не сталкивался с малым количеством бит, но в старой телемеханике много чего бывает, особенно если разработано давно.

По-моему, если нужна универсальность, то придется
1. или делать прием-передачу ручками побитово (легко решается, если можно выделить аппаратное прерывание и таймер на каждый из каналов), - на современных молотилках вообще не вопрос. Кстати, этот путь также хорош когда аппаратный UART не позволяет получить нужную скорость или количество каналов большое (например, у меня было такое в древнем ПИКе, когда нужно было 50 бод при тактовой 20 мегагерц-делителя не хватало, или однажды понадобилось 8 каналов 9600 в параллель чтобы работали независимо)

2. или предусмотреть установку внешнего приемника, позволяющего больше возможностей для конфигурирования чем интегрированный UART, у Максима много всяких UART-SPI микросхем. Путь хорош "не вырост"- сейчас на плате пустое место и перемычки, а в случае нужды перемычки убираются и запаивается микросхема (или, еще лучше, если на плате есть посадочное место для своего модуля "адаптер связи", тогда конструкция очень универсальная получается- при нужде разрабатывается маленький модулек и пишется его софтовая поддержка)
vadimp61
Например вот
http://www.exar.com/common/content/documen...languageid=1033
все настраивается через регистры 5,6,7,8 бит данных, 1, 1,5 или 2 стопа ну и четности, короче все.
prig
Цитата(jcxz @ Jun 25 2015, 05:34) *
...
. Но в ТЗ требование было.
Чтобы понять насколько актуально всё менее 8N1, достаточно набрать в поиске 7N1 или 7E1 или... Увидите сколько ссылок и многие - совсем свежие даты.
Например вот:
...

ТЗ - это святое. Даже если там совсем чудные вещи присутствуют.
- Реально же, есть вопрос о неперенастраиваемом 7N1 и менее (7E1 - это тоже 8 битов и один стоп).
Таких устройств сейчас практически не найти. Ваш пример тому подтверждение. Все устройства поддерживают 8N1.

- И есть вопрос о применимости 7N1 в конкретных задачах, если устройства поддерживают оное.
В этой части стоит смотреть конкретную практику по конкретным областям.
Кто как, а я ни разу не сталкивался с требованием обязательного использования 7N1.
_3m
Цитата(prig @ Jun 25 2015, 14:06) *
ТЗ - это святое. Даже если там совсем чудные вещи присутствуют.
- Реально же, есть вопрос о неперенастраиваемом 7N1 и менее (7E1 - это тоже 8 битов и один стоп).
Таких устройств сейчас практически не найти. Ваш пример тому подтверждение. Все устройства поддерживают 8N1.

Гугление показало что устройств с 7N1 дофига. Как правило эти устройства также поддерживают и 7E1, 7O1, многие (но не 100%) поддерживают 8*1.
7N1 проблема в большей части организационная.
У клиента имеется оборудование, X лет назад все было сконфигурировано на 7N1 и работало с древней 386-й.
Теперь 386-я сдохла (или не интегрируется в облако) и поставили мою железку, но ВСЕ устройства переконфигурировать никто не станет, клиенту подавай easy install.
jcxz
Цитата(prig @ Jun 25 2015, 17:06) *
- Реально же, есть вопрос о неперенастраиваемом 7N1 и менее (7E1 - это тоже 8 битов и один стоп).
Таких устройств сейчас практически не найти. Ваш пример тому подтверждение. Все устройства поддерживают 8N1.

Там (по моей ссылке) для половины устройств идёт отсыл к документации. Учитывая что у двух в таблице уже указано 7E1, высока вероятность,
что среди тех, для кого явно не указано есть и 7N1, а может и другие.
Да и поиск в инете выдаёт множество воплей с проблемой подключения к устройствам менее 8 бит.

Цитата(Ruslan1 @ Jun 25 2015, 12:28) *
2. или предусмотреть установку внешнего приемника, позволяющего больше возможностей для конфигурирования чем интегрированный UART, у Максима много всяких UART-SPI микросхем. Путь хорош "не вырост"-

На вырост, раз уж просматривается такая проблема, и всё равно - МК только выбирается, выбрать МК с железными 5,6,7 битами. Меньше гемора в будущем...
Тем более что и вообще UART у STM плешивенький...
Мы недавно, для устройства, которому потребуется много UART-ов, выбрали Tiva. 8 полноценных UART. И с битами и с FIFO всё в порядке.
Хотя наверное не все можно задействовать одновременно из-за конфликтов по пинам.
prig
Цитата(_3m @ Jun 25 2015, 15:23) *
Гугление показало что устройств с 7N1 дофига. Как правило эти устройства также поддерживают и 7E1
...
У клиента имеется оборудование, X лет назад все было сконфигурировано на 7N1 и работало с древней 386-й.
Теперь 386-я сдохла (или не интегрируется в облако) и поставили мою железку, но ВСЕ устройства переконфигурировать никто не станет, клиенту подавай easy install.


- Я говорил о "чистых" 7N1. И ваш ответ это только подтверждает. И по-другому быть не может. Начиная с 80-х, в любой микросхеме, поддерживающей 7N1, будет 7N2 или 8N1.
7E1 - это уже не проблема. Контроль чётности может быть аппаратным и программным. Физически, 7E1 вписывается в 8N1.

- Похоже, что Вам сильно повезло. Привет из конца 80-х - начала 90-х?
Тогда закупали всё, что ни попади, включая устаревшее западное барахло начала 80-х, а потом лепили как ни попади.
А м.б. и не повезло. Если там сетка на RS485/422, то есть сильные подозрения, что это не 7N1, а 7E1 или 7N2(с этим тоже проблем нет).
Используемый в этом оборудовании протокол не подскажете? И сразу всё встанет на свои места.

Цитата(jcxz @ Jun 25 2015, 15:34) *
...Учитывая что у двух в таблице уже указано 7E1, высока вероятность
...
Да и поиск в инете выдаёт множество воплей с проблемой подключения к устройствам менее 8 бит.


На вырост, раз уж просматривается такая проблема, и всё равно - МК только выбирается, выбрать МК с железными 5,6,7 битами. Меньше гемора в будущем...
...

Вероятнасть встретить "чистый" 7N1 близка к нулевой. Множество воплей касается преимущественно 7E1. Это действительно актуально. И даже понятно, почему именно (кто не понял, догадываемся).
При этом, я не поленился проверить пару устройств из таблички. Нормальный джентельменский набор режимов уарта присутствует.

Ну да ладно. Кто считает актуальным 7N1 и менее, пусть делает. 5 бит особенно пригодятся для занесения в табличку ТТХ.
А вот на что действительно стоит обратить внимание - это 8E1.
Да и аппаратный 7E1/8E1 не помешает. Скорее всего, и 7N1 пойдёт бонусом к такому комплекту.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.