Страница 1 из 1

8 бит + 9 бит и стоповый

Добавлено: Ср фев 15, 2012 18:28:17
Astrel
В общем возникла проблема есть устройство в описании протокола написано что отправляют 9 бит подряд. только вот не задача ПК отправляет байт(8 бит) не нашел негде решения, подскажите как отправить данные. Посылаю с ПК по RS485. (Да устройство сделано у нас в России.)

Re: 8 бит + 9 бит и стоповый

Добавлено: Ср фев 15, 2012 18:33:15
Мастер Ломастер
режим 9-битовой посылки - это стандартный режим работы USART. все оборудование, включая персональные компьютеры и микроконтроллеры, содержащее этот интерфейс, обязано работать с 9-битовыми пакетами. что у вас конкретно не получается?

Re: 8 бит + 9 бит и стоповый

Добавлено: Ср фев 15, 2012 18:34:35
МитяРа
Astrel писал(а):отправляют 9 бит подряд
Конкретно напишите, что написано.. Просто 9 бит могут означать, что угодно..

Re: 8 бит + 9 бит и стоповый

Добавлено: Ср фев 15, 2012 18:47:37
Astrel
Конкретно смогу только утром. Так как описания сейчас нет под рукой. А в интернете оно не валяется как не странно.
Мастер Ломастер писал(а):режим 9-битовой посылки - это стандартный режим работы USART. все оборудование, включая персональные компьютеры и микроконтроллеры, содержащее этот интерфейс, обязано работать с 9-битовыми пакетами. что у вас конкретно не получается?
Да я в курсе. Конкретно не какой реакции на отправленные данные, думаю что я неправильно отправляю. Возможно что прибор неисправен но сомнительно.

Re: 8 бит + 9 бит и стоповый

Добавлено: Чт фев 16, 2012 12:55:31
Astrel
Вот описание протокола. :))

Re: 8 бит + 9 бит и стоповый

Добавлено: Чт фев 16, 2012 12:58:16
МитяРа
Astrel писал(а):описание протокола
А в каком нить не docx - формате можно выложить, хоть в том-же doc-е..

Re: 8 бит + 9 бит и стоповый

Добавлено: Чт фев 16, 2012 14:02:42
Леонид Иванович
Девятый бит нужно передавать как бит паритета с фиксированными значениями MARKPARITY или SPACEPARITY. Но под Windows это крайне неудобно, в API можно пользоваться лишь непосредственной передачей байта TransmitCommChar, а не привычным WriteFile.

Re: 8 бит + 9 бит и стоповый

Добавлено: Чт фев 16, 2012 14:12:09
Мастер Ломастер
Леонид Иванович писал(а):Девятый бит нужно передавать как бит паритета с фиксированными значениями MARKPARITY или SPACEPARITY. Но под Windows это крайне неудобно, в API можно пользоваться лишь непосредственной передачей байта TransmitCommChar, а не привычным WriteFile.
а разве в настройках драйвера СОМ-порта нельзя настроить автоматическое вычисление и передачу этого бита?

Re: 8 бит + 9 бит и стоповый

Добавлено: Пт фев 17, 2012 00:48:04
Леонид Иванович
Так здесь нужно не автоматическое вычисление, а ручное задание.

Re: 8 бит + 9 бит и стоповый

Добавлено: Пт фев 17, 2012 06:00:29
Astrel
МитяРа писал(а):
Astrel писал(а):описание протокола
А в каком нить не docx - формате можно выложить, хоть в том-же doc-е..
Сохранил в более простом формате RTF.
Леонид Иванович писал(а):Девятый бит нужно передавать как бит паритета с фиксированными значениями MARKPARITY или SPACEPARITY. Но под Windows это крайне неудобно, в API можно пользоваться лишь непосредственной передачей байта TransmitCommChar, а не привычным WriteFile.
То есть девятый бит используется как бит паритета и передается с данными? Да TransmitCommChar передает байт, может подскажите решение?

Re: 8 бит + 9 бит и стоповый

Добавлено: Пт фев 17, 2012 10:49:39
Леонид Иванович
Так я уже подсказал. В протоколе 9-й бит используется не как бит паритета, а для других целей. Но передавать его надо, как бит паритета. Устанавливаете DCB.Parity как Вам нужно, MARKPARITY или SPACEPARITY, передаете байт с помощью TransmitCommChar. 9-й бит в посылке будет определен заданным значением Parity. Затем устанавливаете DCB.Parity по-другому, снова передаете байт. Таким образом можно передавать посылки с любым сначением 9-го бита.

Re: 8 бит + 9 бит и стоповый

Добавлено: Пт фев 17, 2012 12:22:25
Astrel
Astrel , не надо цитировать, тем более полностью, сообщение на которое сразу за ним отвечаешь..
Форум не резиновый и читать такие темы не удобно.. Привыкай сразу и к правильному..

МитяРа..



Да я так и передавал и не работало, но уже разобрался. Проблема с питанием была как это не смешно, оказывается для питания блоков используется два отдельных питания (я то думал что оно передается раз они соединены между собой) :)) Всем спасибо, вам особенно Леонид Иванович.