1

Тема: На пути к инженерной дружбе FBD и CFD

Когда выяснилось, что для использования  интерфейса по ГОСТ 18977-79 скорости диаграммы КАННИ не хватает, то наметилось решение, в котором Канни формирует слова для передачи, а некий более шустрый контролер передаёт эти слова в линию связи и соответственно наоборот.  Всё остальное можно завязывать через КАНбас и всякие УАРТЫ с I2C.

Вопрос о том нужен ли интерфейс по ГОСТ 18977-79 (он же ARINC 429) во всяких поделках, я полагаю, что нужен, во всяком случае полезен. В том числе с профессиональной точки зрения.  Если КАНбас или ЛИН известны всем злоумышленникам, то за сорок лет эксплуатации в авиации у интерфейсов по ГОСТ 18977-79 отказов не было..  Вот иметь в доме некоторые элементы которые ничем не прошибёшь полезно.  Да и в автомобилях тоже не вредно... Где стоит аппаратура по ГОСТ 18977, там врагу остаётся применять только динамит...  Ну ещё годятся стаи чаек.

Подход инженерный. Сам придумываю, сам пишу.  Для Канни пишу на CFD, а для шустрых контроллеров на FBD под FLprog ом. Сам всё соединяю на клеммах. Винтовых или пружинных.  Никаких штырьковых соединений.. Даже на стенде. И никаких паек. И никаких профессиональных программистов. 
Ничего кроме FLPROGа за нулевые деньги я не нашёл. За прочие надо платить немалые деньги или иметь ограниченные возможности.  И количество всяких шустрых контроллеров, на которых можно писать на FBD под FLPROGом вселяет надежды на успех.

Первая задача состояла в том, чтобы подружить FBD для УНО Р3 и CFD КАННИ 5 НАНО  ( их у меня пока две штуки). Простая связь через УАРТ.  Связь получается, но приходится разбираться в технике кодировок УНО Р3.  Хорошо себя ведёт integer, который по сути соответствует двухбайтовоой структуре данных КАННИ.  Посылаю произвольное число в УАРТ на КАННИ и уже КАННИ посылает полученное число на терминал..  Программы простейшие. Надо отметить, что среда FLprog на  УНО Р3 посылает в УАРТ ASCII коды вполне самостоятельно и не говорит, что использует перекодировку.  У них так заведено..  Этот факт надо учитывать.  Как всегда самая универсальная кодировка это HEX. Но к ней надо привыкнуть. Но то что на вход КАННИ уже идут ASCII коды передаваемого числа избавляет от довольно муторной перекодировки данных в КАННИ.  Получается простая пересылка из приёмных регистров в выходные регистры через D триггеры.

Если программная дружба FBD и CFD вполне просматривается, то при стыковке разных изделий по УАРТ надо иметь в виду, что сначала следует загрузить диаграммы, скетчи, а потом уже производить соединение проводов УАРТ (TX/RX).  Загрузчики программ для контроллеров ругаются, если контроллеры во время загрузки соединены между собой по УАРТ. На КАННИ лампочка горит, даже если выключить питание. 

Предполагаю продолжить укрепление дружбы FBD и CFD. Одна из задач использовать для сбора данных об атмосферном давлении возможности FBD на FLPROGе.  Датчики давления используют шину I2C и всякие сложные вычисления с плавающей арифметикой.  На КАННИ такую арифметику не поднять.  Вот и будет, скажем, УНО Р3 работать как спецпроцессор для сбора и обработки информации и подавать её в климатический центр, который делается на КАННИ 5 НАНО. Аналогично выглядит решение задач по работе с модулем реального времени.

2

Re: На пути к инженерной дружбе FBD и CFD

Инженерная дружба требует некоторых усилий. Выяснилось, что CFD при приёме по UART принципиально работает с данными явно указанной длины.. Иначе всё наползает друг на друга.   В FBD от FLProga тип данных  string. На то он и string, что может быть произвольной длины. CFD этого не любит.
Так что при обмене данными по UARTу следует предварительно подсчитывать длины сообщений и сделать их одинаковыми.

Реализована задача передачи данных от барометра BM, который подключен к УНО Р3 на КАННИ по УАРТу. Барометр передаёт значение давления, температуры и высоты над уровнем моря. В данном варианте УНО выполняет роль барометрического спецконтроллера для КАННИ. 

Коль скоро от барометра идут три параметра, то надо продумать как эти числа упаковать в 16 слов КАННИ на один присест (программный цикл) либо организовать последовательную передачу за несколько программных циклов.  Надо заметить, что от счётчика в FLProgе проще застрелиться..  Тем не менее передача параметров производится за три цикла..  Предельные значения скорости я не исследовал. 

Барометр предполагается иметь на главном контроллере системы.  Тут хватит локального УАРТа. В то же время не очень шустрый и памятливый УНО предполагается использовать как контроллер для согласования КАННИ с интерфейсом по ГОСТ 18977 на скорости 12, 5 килобод.  Для скорости в 100 килобод я уже присмотрел контроллер.  Намечено место, где должен находиться локальный контроллер с особо важной миссией.  Вот туда и предполагается протянуть эту шину.. Для краткости и историчности буду называть эту шину ВАА.  Это один из немногих интерфейсов, разработан у нас в стране.  Служит мировой авиации. Ну и мне послужит.

Я уже писал, что загрузчикам весьма не нравятся подключенные к UARTу чужие контроллеры. Причём загрузчик у УНО более капризный. Приходится отключать провода, соединяющие УАРТы между собой.  Для нормальной работы загрузчика КАННИ достаточно отключить питание УНО.