Страница 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 , не надо цитировать, тем более полностью, сообщение на которое сразу за ним отвечаешь..
Форум не резиновый и читать такие темы не удобно.. Привыкай сразу и к правильному..
МитяРа..
Да я так и передавал и не работало, но уже разобрался. Проблема с питанием была как это не смешно, оказывается для питания блоков используется два отдельных питания (я то думал что оно передается раз они соединены между собой)

Всем спасибо, вам особенно Леонид Иванович.