Прошедшие дни были заняты различной суетой, включая поездку в Донецк на семинар по аквариумистике (семинар, однако, удался!). За это время я еще почитал-посмотрел на другие реализации, и обдумал конструкцию акваконтроллера и его протокол общения. Всё более склоняюсь к модульной архитектуре, описанной ранее, вплоть до того, чтобы блок АЦП вынести в отдельный модуль (видел вполне здравые рекомендации иметь аналоговый кабель как можно короче).
Предполагаемый протокол будет основан на MODBUS ASCII, с использованием 4х полей ADU:
Однако, в отличие от классического MODBUS, данные у нас будут более сложные чем одно и двухбайтовые целые.
Для упрощения процесса отладки и ручного формирования пакетов я планирую добавить такие фишки, как:
В своих рабочих изделиях я предпочитаю использовать бинарные протоколы, в частности SLIP. Его огромное достоинство в четком разделении пакетов по специальным символам. Однако бинарные протоколы немного сложнее отлаживать и требуются специальные утилиты-терминалки. Для ASCII протокола отладка должна стать полегче, плюс тут также четко разделяется начало и конец каждого пакета. Для ручного формирования пакетов вышеописанные дополнительные фишки должны еще более упростить работу, хотя конечно специализированная терминалка будет только плюсом.
Скорости обмена предполагаются 57600 или 115200 бит/сек (с компьютером), и 19200 бит/сек с дополнительными блоками (берем стандартную скорость шины LIN).
Для формирования LIN-сигнала используем простой открытый коллектор, на приемном конце компаратор типа LM311 с гистерезисом.
Касательно программы для контроллера. Из различных описаний контроллеров я вынес для себя такую мысль: каждый аквариумист делает для себя контроллер с той или иной вариацией исполнения. Поэтому программная среда для формирования прошивки контроллера должна быть гибкой и также модульной. Т.е. на этапе формирования прошивки нужно иметь возможность выбрать тип используемого процессора, вариант модуля и из имеющихся вариантов сформировать внутреннюю начинку программы из готовых кубиков. Подобную идею формирования программы для AVR я вынашиваю уже определенное время, так что аква-контроллер должен стать удобным полигоном для отработки этой идеи.
Предполагаемый протокол будет основан на MODBUS ASCII, с использованием 4х полей ADU:
адрес ведомого устройства | номер функции | данные | блок обнаружения ошибок |
---|
Однако, в отличие от классического MODBUS, данные у нас будут более сложные чем одно и двухбайтовые целые.
Для упрощения процесса отладки и ручного формирования пакетов я планирую добавить такие фишки, как:
- отладочная замена контрольной суммы на служебные символы = =
- передачу сложных параметров в виде обычных строк с использованием двойных кавычек.
- передачу пакетов с опциональными пробелами между парами ascii-hex значений.
В своих рабочих изделиях я предпочитаю использовать бинарные протоколы, в частности SLIP. Его огромное достоинство в четком разделении пакетов по специальным символам. Однако бинарные протоколы немного сложнее отлаживать и требуются специальные утилиты-терминалки. Для ASCII протокола отладка должна стать полегче, плюс тут также четко разделяется начало и конец каждого пакета. Для ручного формирования пакетов вышеописанные дополнительные фишки должны еще более упростить работу, хотя конечно специализированная терминалка будет только плюсом.
Скорости обмена предполагаются 57600 или 115200 бит/сек (с компьютером), и 19200 бит/сек с дополнительными блоками (берем стандартную скорость шины LIN).
Для формирования LIN-сигнала используем простой открытый коллектор, на приемном конце компаратор типа LM311 с гистерезисом.
Касательно программы для контроллера. Из различных описаний контроллеров я вынес для себя такую мысль: каждый аквариумист делает для себя контроллер с той или иной вариацией исполнения. Поэтому программная среда для формирования прошивки контроллера должна быть гибкой и также модульной. Т.е. на этапе формирования прошивки нужно иметь возможность выбрать тип используемого процессора, вариант модуля и из имеющихся вариантов сформировать внутреннюю начинку программы из готовых кубиков. Подобную идею формирования программы для AVR я вынашиваю уже определенное время, так что аква-контроллер должен стать удобным полигоном для отработки этой идеи.
Комментариев нет:
Отправить комментарий