Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

RS232 - контроль чётности, что делать? 


Varfolomey   (2002-01-20 20:29) [0]

Проблема примерно такая:
1. Как изменять в передоваемом байте 9 бит т.е. по желанию забивать туда 1 или 0;
2. Как определить в пришедшем байте 9 бит 1 или 0;

( Да я использую DCB настройки
для передачи WriteFile
для получения ReadFile ).



Varfolomey   (2002-01-21 20:52) [1]

Как передовать 9 я уже разобрался, теперь осталось получение!
ПОМОГИТЕ кто может!!!



SoftOne   (2002-01-22 02:54) [2]

Раз уж ты используешь "по желанию забивать туда 1 или 0", то поставь в DCB для чтения Mark или Space и проверяй на ошибку.
Для W9x есть ещё и другие способы, но, имхо, не стоит их использовать. если это не ДСП.



Varfolomey   (2002-01-22 21:47) [3]

Как проверять наличие ошибки? Укажите на функцию (процедуру) дальше я разберусь!



Sergey_n   (2002-01-23 01:29) [4]

Странно, а всю жизнь думал, что байте 8 бит.........



Фэ   (2002-01-23 01:35) [5]

Век живи - век учись.
9-й бит - это контроль четности(нечетности).
Байтом назвать можно с натяжкой.



SoftOne   (2002-01-23 02:32) [6]

2 Varfolomey (22.01.02 21:47)
Используй функцию: WaitCommEvent
"The WaitCommEvent function waits for an event to occur for a specified communications device."



gepard   (2002-01-23 10:31) [7]

Насколько я понял, то для установления(сброса) 9 бита необходимо закрывать и открывать порт? А это ведь занимает какое-то время, да и код некрасивый получается...



XM-AD   (2002-01-23 11:25) [8]

To Varfolomey > А зачем вообще было мудрить с девятым битом??? Все равно один бит ты не передашь!!! В любом случае передается два байта!!! Ты не можешь передать стоп-бит в середине посылки, он все равно прочитается как информация на принимающей стороне! Т.е. у тебя теряется минимум 6 бит!!! И что же тогда ты выигрываешь?
То Фэ > Где это ты слышал что бы в байте было девять бить!?БРЕД!!! Под контроль четности всю жизнь отводили восьмой и, если надо было, еще седьмой биты!!! Читайте документацию, справочники!!!



Фэ   (2002-01-23 15:35) [9]

Этот бред несет Варфоломей - он уже научился передавать 9-й бит.

Читать документацию похоже надо XM-AD.
Мне ее и читать не надо по этому вопросу - даже разряды UART до сих пор помню.

По протоколу RS-232 передаются от 5 до 8 информационных бит младшим вперед.
Информационные биты обрамляются аппаратно (контроллером) служебными битами
СТАРТ-ИНФ-ЧЕТН-СТОП
Стартовый - 1 бит
Четности(нечетности) - один бит, опционально.
Стоповых могут быть 1; 1,5 и 2.
Стоповый 1,5 применялся при 5 инф. битах для совместимости
со старыми телетайпами (слышали про такое ?)

Таким образом, если считать бит четности информационным - он является 9-м.




SoftOne   (2002-01-24 02:46) [10]

2 XM-AD © (23.01.02 11:25)
Ну ты дал! Кто-же ПАЛОЧКАМИ ест Чаппи?



Anatoly Podgoretsky   (2002-01-24 08:10) [11]

Sergey_n © (23.01.02 01:29)
Ты всю жизь думал неправильно, известное заблуждение, что в байте только 8 бит.



AlexY   (2002-01-24 12:22) [12]

И Подгорецкий как всегда прав! только приписки про трей почему то нет!))



EsKor   (2002-01-25 03:51) [13]

Господа программисты! Хотя эта дисскусия превращается уже в некую болтовню, позволю себе некоторые замечания по этому вопросу. Пишущие о 9-ом (10-ом, 11-ом и т.д.) бите не заводите рака за камень. Бит и байт - это носители информации и байт всегда был и будет состоять из 8 битов. Если меньше - то говорят о неполном байте, в частности 4 бит - полубайт, больше - это уже СЛОВО (обычно 2 байта). Можете возразить и сказать, что вот мы же можем установитьв РАЗМЕР БАЙТА 5, 6 или 7 бит! Да, это так, но это просто неудачное название из-за того, что никто не смог придумать другое короткое и понятное. Что касается стартовых и стоповых битов, то правильнее было бы говорить о стартовых и стоповых стробах, но закрепилось название "бит". По крайней мере носителями информации как таковой они не являются. Присутствуют они только как неизбежная необходимость, чтобы аппаратура на разных концах кабеля могла нормально обмениваться информацией.



Фэ   (2002-01-25 10:56) [14]

Можно привести расшифровку определения "информация" так
по Фишеру (инф. о результате эксперимента)
по Шеннону (передаваемая инф-я)
по Бриллюэну (структурная инф-я)

По данному вопросу обсуждался второй случай и именно поэтому,
стартовые и стоповые сигналы являются информационными, хотя и служебными.
Поскольку мы говорим о двоичном кодировании, то вполне уместным является использование единицы изм. бит для обозначения логических уровней.
Если говорить о формате передаваемых данных, то уместно употребить термин слово, оговаривая вариации его размера.

На физическом уровне, естественно, надо говорить о ширинах импульсов относительно базового периода.
Именно здесь и возникло неудачное определение 1.5 строба как бита.



Varfolomey   (2002-01-25 20:46) [15]

Большое спасибо ВСЕМ за ясный и краткий ответ, хотя полезную информацию напмсал только SoftOne все раскинув пальцы веером полезли доказывать крутость всем и каждому не удосужевшись внимательно почитать вопрос.
Под "9-м битом" и подразумевался БИТ ЧЁТНОСТИ!!!

PS:Для ОСОБО одарённых (XM-AD, Фе,...) при передаче байт:
В начале передаётся СТАРТОВЫЙ БИТ,
Затем информационные биты от 4 до 8,
Затем бит чётности (если включена),
Затем стоп бит.

Всем Спасибо за "Помощь"!



EsKor   (2002-01-28 04:02) [16]

Фэ ты прав, не спорю. Хотя старт- и стоп- биты рассматриваются как информационные с точки зрения затрат на прием/передачу, загрузки канала передачи (трафика), времени необходимого на передачу.
Varfolomey для меня твоя последняя информация от 25.01.02 20:46 откровение в части: "В начале передаётся СТАРТОВЫЙ БИТ, Затем информационные биты от 4 до 8, Затем бит чётности (если включена)...". Конкретно - это наличие восьми информационных бит и плюс к ним бита четности. Если можно поясни сеё утверждение.





Фэ   (2002-01-28 12:40) [17]

Дело не в одаренности или отсутствии таковой.
Не все программисты хорошо понимают процессы происходящие при взаимодействии их программ с "железом" компьютера или внешними устройствами. Как правило,это связано с отсутствием элементарной грамотности в электронике цифровой или аналоговой.
Затеявший эту дискуссию похоже подпадает под эту категорию.



af   (2002-01-28 17:22) [18]

не знаю для чего понадобилось Varfolomey , мне тоже самое нужно было год назад, но я так и не смог осуществить . А мне нужно было для того что бы отличать коды операции от инф. кодов, т.е. управлять некой железякой , просто тот контроллер, который работал в составе железки понимал 9 бит. и в завис. от того что там забито различал бы команды от данных. К сожалению на ходу windows почему то отказался менять бит и пришлось все реализовать немножко по другому , посложнее получилось ... :(



SjftOne   (2002-01-30 02:36) [19]

> af
Твоя ситуация далеко не оригинальна. В "неких железяках", действительно часто применяются процессоры семейства 51, а у последних, действительно реализованы различные режимы приема даныых и према адреса.

>К сожалению на ходу windows почему то отказался менять бит и >пришлось все реализовать немножко по другому , посложнее >получилось ... :(

А вот это - действительно непонятно. Как Он (Windows) посмел отказаться?



af   (2002-01-30 13:13) [20]

да не только 51 , мной любимый PIC контроллеры позволяют работать с 9 битом..
насчет как посмел- я передаю предположим с виндоса 9 бит равным 1 , т.е. пусть этот байт яв-ся командой, следующий инф. байт, должен передаваться 9 битом =0 , я устанавливаю и передаю, а в результате бит меняется только через пару передач :(



Varfolomey   (2002-02-03 22:51) [21]

>SoftOne проблемма ещё не решина, дело в том что прога на WaitCommEvent просто зависает, может я её неправильно использую?

Если не сложно напиши маленький пример её использования!!!



SoftOne   (2002-02-04 04:02) [22]

> Varfolomey
Укажи, что тебе, конкретно, нужно.




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.77 MB
Время: 0.04 c
6-94528           Lenidus               2002-02-17 14:10  2002.04.29  
Чем заменить компонент TWebBrowser?


3-94329           Makuha                2002-04-09 16:28  2002.04.29  
Не могу правильно задать вопрос (смотри текст письма)


4-94626           Nuhim                 2002-02-22 10:43  2002.04.29  
Как перехватить уход мыши в правый край экрана


4-94617           Igor2312              2002-02-21 02:30  2002.04.29  
hooks


1-94447           Kordel                2002-04-16 01:52  2002.04.29  
Все еще про цвет в таблицах.