Я начинаю писать код для устройства, которое будет транслировать данные в полнодуплексном режиме, поэтому я буду использовать аппаратное квитирование и установку условия перерыва, когда что-то пойдет не так. Но когда дело доходит до обнаружения ошибок, менее понятно, что лучше всего сделать.RS232: Чтобы паритет или нет?
RS232 имеет встроенную проверку паритета, которую я мог бы использовать. Насколько я понимаю, если я использую 8 бит данных, один бит четности и один стоповый бит, тогда пакет на проводе будет 10 бит. Это означает, что для каждых 1024 байтов, которые я отправляю, я также отправляю 128 байтов информации проверки, чередующихся с ней.
Поскольку паритет составляет 50/50 штук для каждого байта, не слишком маловероятно, что короткий всплеск шума, продолжающийся менее одного байта, приведет к повреждению, которое по-прежнему соответствует бит четности. Таким образом, это не кажется надежным тестом.
Если я использую контрольную сумму в конце каждого 1024 байта, который по-прежнему составляет всего 80 мс при 115200 бод, мои служебные данные проверки снижаются с 12% до менее 1%, даже если я использую 64-битную контрольную сумму. И тяжелее пропустить коррупцию.
Является ли паритет просто технологией, которая была полезной в дни подсоединения к боссу более 100 бод и давно устарела, и я должен идти с контрольной суммой блока, или я что-то упускаю?
Также следует рассмотреть вопрос о том, является ли короткий шум, который может появиться в среде, где это используется? Если это так, RS-232 определенно не подходит, его следует рассматривать как внутреннюю шину офисной среды. Лучше альтернативой является RS-485 (совместимый с кодом) или еще лучше, CAN (несовместимый). – Lundin
@ Lundin [RS-485] (http://en.wikipedia.org/wiki/Rs4850) не будет соответствовать необходимости «ввода и вывода данных в полнодуплексном режиме» и это не полный дуплексный протокол связи. [RS-422] (http://en.wikipedia.org/wiki/Rs422) обеспечит лучшую помехоустойчивость в отношении электрического шума, но все же сохранит полную дуплексную способность. – chux
@ Lundin - * «RS-232 ... следует рассматривать как ... шину» * - не «автобус», а связь.Шина подразумевает контроль, адресацию и даже мощность, а также данные. – sawdust