Easyelectronics.ru

Электроника для всех
Текущее время: 19 фев 2020, 13:31

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Выбор алгоритма преобразования MODBUS ASCII в HEX
СообщениеДобавлено: 09 фев 2018, 18:25 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 1287
Привет!

У меня опыт написания софта с поддержкой Modbus ASCII не большой, все в основном упиралось в передачу от контроллера на HMI панель без обратной связи и не требовало как таковых вычислений на лету, сейчас все гораздо интересней и хотелось услышать мнение специалистов кто работатал с подобными задачами.

Итак есть работающее устройство, принцип приема и передачи последовательности:

Циклически заполняем буфер и смотрим что приходит, если приняли старт байт "0x3A":
1) Сбросили буфер приема, записали стартовый байт в 0 ячейку.
2) принимаем данные
3) Если приняли конец сообщения (последовательность из 2х байт "0x0D 0x0A" - закончили прием данных, подняли флаг процедуре обработчика строки.
4) Запускаем функцию преобразования данных того, что между старт и стоп последовательностью, пишем эти данные в буфер.
5) находим контрольную сумму (последний байт в сообщении) сравниваем ее с LRC данных которые в буфере, если все путем обрабатываем данные.
6) Если LRC не совпали, отправляем запрос на повтор с кодом ошибки

Вопросы:

Способ обработки и перевода данных из ASCII в HEX - когда это лучше делать:
1) все запихнул в буфер потом запустить функцию преобразования всего полученного слова ? (сейчас так делаю)
2) на лету когда получаем данные (типа получили 0х30 0х33 сразу записали 0х03 в буфер) ?

Преимущество первого метода - он проще, но требует в 2 раза больше памяти и возможно 2 буфера.
У второго надо меньше памяти, но больше вычислений.

Какой метод на ваш взгляд предпочтителен и почему ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Gnusmas


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB