Easyelectronics.ru

Электроника для всех
Текущее время: 18 сен 2019, 06:50

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



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

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

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

У меня опыт написания софта с поддержкой 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 часов


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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