9-bit данные по СОМ-порту
От: TYuD  
Дата: 01.11.05 13:41
Оценка:
Имеется сеть между микроконтроллерами (ADuC70х) на базе UART. Для передачи адреса абонента выставляется 9-й бит (бит четности), а при передаче данных — снимается.

В эту сеть нужно через СОМ-порт подсоединить РС с Windows для мониторинга и отладки. Но насколько я понял из описания в структуре DCB (настройки СОМ-порта) предусмотрены только 8-битные данные, а бит четности проверяется на аппаратном уровне. Можно ли задавать 9-й бит программно? Как?
Re: 9-bit данные по СОМ-порту
От: vnp  
Дата: 01.11.05 18:47
Оценка:
Здравствуйте, TYuD, Вы писали:

TYD>Имеется сеть между микроконтроллерами (ADuC70х) на базе UART. Для передачи адреса абонента выставляется 9-й бит (бит четности), а при передаче данных — снимается.


TYD>В эту сеть нужно через СОМ-порт подсоединить РС с Windows для мониторинга и отладки. Но насколько я понял из описания в структуре DCB (настройки СОМ-порта) предусмотрены только 8-битные данные, а бит четности проверяется на аппаратном уровне. Можно ли задавать 9-й бит программно? Как?


Для передачи можно поиграть с even/odd parity: имея 9-битный адрес, выбираете четность так, чтобы, вычисленная по 8 битам, она равнялась бы нужному девятому. На приеме... надо знать подробности протокола сети.
Re: 9-bit данные по СОМ-порту
От: emusic Франция https://software.muzychenko.net/ru
Дата: 02.11.05 03:29
Оценка:
Здравствуйте, TYuD, Вы писали:

TYD>Можно ли задавать 9-й бит программно?


Задавать-то можно, указывая, какой вид четности требуется (mark/space), но принять
этот бит отдельно не получится — только признак того, что четность нарушена. Использовать этот признак в качестве информации о значении 9-го разряда можно только в случае, когда отсутствуют ошибки передачи.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: 9-bit данные по СОМ-порту
От: TYuD  
Дата: 02.11.05 08:10
Оценка:
Здравствуйте, emusic, Вы писали:

E>Задавать-то можно, указывая, какой вид четности требуется (mark/space), но принять

E>этот бит отдельно не получится — только признак того, что четность нарушена. Использовать этот признак в качестве информации о значении 9-го разряда можно только в случае, когда отсутствуют ошибки передачи.

Если по биту проверки четности обнаружена аппаратная ошибка, то сам байт остается ли доступен для чтения? И можно ли программно узнать была ли для данного конкретного байта ошибка четности?

Может имеются готовые аппаратные решения этой проблемы? Например, я слышал о переходниках USB->COM. Какие из устройств могут обеспечить передачу/прием по СОМ-порту 9-битных данных?
Re: 9-bit данные по СОМ-порту
От: AW  
Дата: 02.11.05 09:14
Оценка:
Задавать-то 9-й бит программно можно, меняя режим четности. Но это сильно замедлит передачу, поскольку придётся передавать по одному байту, без буферизации. принимать, наверное тоже возможно и тоже без буферизации, поскольку в буфер попадают только 8-битные данные, а ошибку (parity) можно узнать только о последнем принятом.
Могу порекомендовать не применять 9-й бит, а использовать байт-стафиинг.
Или же разработать устройство, которое будет с одной стороны использовать 9-битный протокол, а с другой — удобный для Вас и адаптированный для ПК 8-битный, например со стаффингом.
Re[3]: 9-bit данные по СОМ-порту
От: emusic Франция https://software.muzychenko.net/ru
Дата: 02.11.05 09:26
Оценка:
Здравствуйте, TYuD, Вы писали:

TYD>Если по биту проверки четности обнаружена аппаратная ошибка, то сам байт остается ли доступен для чтения?


В приемном регистре UART он доступен, но вот насколько честно его возвращает драйвер — надо смотреть.

TYD> И можно ли программно узнать была ли для данного конкретного байта ошибка четности?


Только принимая байты поштучно.

TYD>Может имеются готовые аппаратные решения этой проблемы? Например, я слышал о переходниках USB->COM.


Так там тоже максимум 8-битовые посылки.

TYD> Какие из устройств могут обеспечить передачу/прием по СОМ-порту 9-битных данных?


Только специальные, заточенные под 9 бит, либо программируемые. Писишный тоже программируется, но только от 5 до 8 бит на посылку.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: 9-bit данные по СОМ-порту
От: TYuD  
Дата: 02.11.05 10:58
Оценка:
Здравствуйте, emusic, Вы писали:

E>Только специальные, заточенные под 9 бит, либо программируемые. Писишный тоже программируется, но только от 5 до 8 бит на посылку.


"Специальные" — это те, которые нужно разрабатывать, или их можно купить уже готовые?
Re[2]: 9-bit данные по СОМ-порту
От: TYuD  
Дата: 02.11.05 11:15
Оценка:
Здравствуйте, AW, Вы писали:

AW> Могу порекомендовать не применять 9-й бит, а использовать байт-стафиинг.


Стаффинг — это что? Упаковка 8-битного массива в 7-битный?.
Re[3]: 9-bit данные по СОМ-порту
От: AW  
Дата: 02.11.05 13:33
Оценка:
Здравствуйте, TYuD, Вы писали:

TYD>Стаффинг — это что? Упаковка 8-битного массива в 7-битный?.

Нет, лучше чем перепаковка. О стаффинге:
http://lit.lib.ru/img/s/shewkopljas_b_w/text_0020-1/2004_10_34-36.pdf
Re[5]: 9-bit данные по СОМ-порту
От: emusic Франция https://software.muzychenko.net/ru
Дата: 02.11.05 13:48
Оценка:
Здравствуйте, TYuD, Вы писали:

TYD>"Специальные" — это те, которые нужно разрабатывать, или их можно купить уже готовые?


Наверняка можно купить готовые — просто нужно найти, ну и стоить они будут не дешево
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.