Что за программа лин

Бережливо производство, или Лин, еще несколько десятков лет назад казалось японской экзотикой. Но сегодня эта философия уже достаточно распространена, и, по мнению ряда экспертов, может стать доминирующей парадигмой для производственников во всех странах. Правда, таких впечатляющих результатов от внедрения Лин, которыми могут похвастаться японцы, не получил никто. Мало того, более половины всех тех, кто внедрял и внедряет Бережливое производство, могут сказать об отсутствии тех результатов, на которые рассчитывали.

Но почему?

Наверное, в каждом случае ответ на этот вопрос будет индивидуальным. Однако есть целый ряд общих для всех причин, которые приводят к неудачному внедрению Лин. Одна из них – довольно поверхностное рассмотрение насущных для производственного предприятия вопросов, особенно если это малый и средний бизнес, при классическом подходе к внедрению Бережливого производства.

Это вопросы, ответы на которые хочет получить любое предприятие, прежде чем инвестировать в новое оборудование или новую производственную систему. Вот основные из них:

1. LEAN. Введение в Lean-мышление. Бережливое производство.

• Зачем покупать оборудование/внедрять новую производственную систему?
• Во сколько это обойдется?
• Каковы выгоды?
• Какие риски на пути к получению этих выгод?
• Каковы препятствия к внедрению новой системы?
• Есть ли альтернативы?
• Что произойдет, если мы не направим инвестиции?
• Какие трудовые ресурсы нужны для этого?
• Сколько будет потрачено времени?

Естественно, без ответов на данные вопросы невозможно составить четкий план развития компании. Соответственно, сложно рассчитать возможные риски, а также спрогнозировать эффект от изменений.

Пробел с ответами на эти вопросы может являться основной причиной всех неудач при внедрении Лин.. Ведь знание примеров выгод, полученных «наихудшими/наилучшими» компаниями, не является достаточным для большинства производителей, чтобы должным образом внедрить Лин. Очевидно, что каждому руководителю необходимо знать, что сможет Бережливое производство дать именно его компании, а не чьей-то еще. И знать это он хочет заранее.

Не обладая этим знанием, производитель в своих попытках по внедрению Лин будет неуверенным, озадаченным и склонным к тому, чтобы опустить руки при первых признаках трудностей. Внедрение Лин проходит под девизом «Давайте попробуем» вместо «Мы сделаем это, и вот, почему».

Другой причиной провала Лин эксперты называют то, как применяются Лин-методики на практике, как проходят подготовительные процессы и как организуются трудовые ресурсы, которые задействуются в процессе внедрения Лин.

Как этого избежать?

Прежде чем начинать внедрять Бережливое производство, предприятия должно отвечать как минимум двум следующим требованиям:

• Процессы контролируются и прогнозируются;
• Основные аспекты – контроль качества, управление материальными потоками, необходимые пуско-наладочные работы – внедрены и используются.

Что такое Лин Шесть Сигм — объяснение для руководителей

Эти условия являются необходимейшими для внедрения Лин. Однако для удачного внедрения этой системы их недостаточно. Понять, что еще нужно для того, что Лии-система заработала, поможет изучение основных неудач, с которыми сталкиваются компании при внедрении Бережливого производства.

Двенадцать наиболее общих видов неудач при внедрении Лин подразделяются на три группы:

• Лидерство в сфере топ-менеджмента
• Человеческий фактор
• Способы применения Лин

Безусловно, данные категории являются взаимозависимыми, однако каждой из них присущи уникальные черты, на описании которых мы и остановимся.

Лидерство в сфере топ-менеджмента

Практически все эксперты соглашаются с тем, что основные причины неудач при внедрении Лин исходят от топ-менеджеров и собственников компании. Именно эти люди несут основную ответственность за все, что происходит (или не происходит) на предприятии.

Тем не менее, порицанием топ-менеджмента ничего не добиться. Ниже перечислены фактические виды неудач такого типа, а также причины их возникновения. Эти виды неудач зачастую связаны между собой, но каждый из них характеризуется по-своему.

Некачественная разработка плана по внедрению Лин

Основные аспекты планирования, перечисленные выше, раскрыты неудовлетворительно, или же вовсе не затронуты. Если для внедрения Лин не разработан качественный план, топ-менеджменту будет очень трудно привить себе и своим сотрудником решимость, необходимую для внедрения этой системы. И в конечном итоге, вся инициатива, проявленная топ-менеджментом, может сойти на нет.

Прежде всего, должно быть определено влияние вводимых изменений на конкурентоспособность и стоимость бизнеса компании. Иными словами, методика Лин должна быть переведена на язык бизнеса: время, деньги, риск. Необходимо построение моделей того, каким видится предприятие в будущем. Фундаментальную значимость несет процесс постановки цели: как, отталкиваясь от текущего положения компании, будет достигнут желаемый результат в будущем, и как Лин будет этому способствовать. При этом важно руководствоваться показателем рентабельности инвестиций (ROI).

Плохое понимание принципов и составляющих концепции Лин Шесть Сигма

Очень важно, чтобы руководство компании четко понимало, что представляет собой Лин, что эта система может дать бизнесу. Важно, чтобы ожидания от внедрения Лин не переоценивались и не недооценивались. Топ-менеджмент компании должен обладать достаточной базой знаний, чтобы уверенно двигаться в правильном направлении.

Более того, достаточно сложно выстроить правильную структуру применения Лин без понимания того, как внедряемые элементы будут взаимодействовать между собой, укрепляя систему и способствуя достижению цели компании. Выбор того, какие элементы Лин и в каком порядки применять, играет ключевую роль для будущего компании.

Недостаточная вовлеченность топ-менеджмента

Процесс внедрения Лин принято рассматривать как «проект». Однако лин-производство – это не проект, а произведение фундаментальных изменений в системе ценностей. Топ-менеджмент должен быть в авангарде этого процесса.

Взаимодействие: слишком слабое, слишком сложное, слишком запутанное

Различным группам лиц необходимо по-разному описывать те преимущества, риски, проводимые изменения и возможности, которое несет с собой процесс внедрения Лин. Топ-менеджмент должен взять на себя инициативу и объяснить «что» и «почему». Большинство страхов, возмущения, недопонимания и порицания, которые связаны с инициативами по внедрению Лин, могут быть предотвращены на корню, если в компании налажены процессы коммуникации и взаимодействия.

Читайте также:
Лсд что это за программа

Плохо развитая организационная структура и недостаток лидерских качеств руководства

Без сплоченной команды процесс внедрения Лин может потерпеть неудачу, не начавшись. Необходимо, чтобы от менеджеров, наделенных как ответственностью, так и соответствующими полномочиями, персонал мог ежедневно получать поддержку. Это – ключевая управленческая задача.

Отсутствие необходимых показателей деятельности Isolate Challenges

Лин подразумевает, что необходимо иметь систему показателей, которая акцентируется на процессе создания стоимости и соответствующими затратами. Традиционные методики учета затрат, такие как распределение затрат на единицы оборудования и трудовых ресурсов, не будут соответствовать принципам Лин.

Экономический анализ в рамках Лин непосредственно связан с финансовыми показателями, однако акцентируется на деятельности всей системы по созданию стоимости. Особое внимание уделяется затратам на качество, уровням запасов, показателям прохода и денежного потока, общей эффективности оборудования, своевременной отгрузке продукции, а также степени удовлетворенности клиентов.

Лин несет в себе существенные выгоды, которые подчас становятся спасительными для компаний. Однако преобразование этих преимуществ в показатели времени и денежных средств значительно сложнее, чем при расчете срока окупаемости капитальных инвестиций.

Однако это не означает, что Лин не обладает не несет никаких выгод. Это лишь говорит о том, что при неправильном применении системы финансовых показателей в рамках Лин есть риск как неправильного понимания всей внедряемой системы, так и неудачного ее применения.

Человеческий фактор

Влияние человеческого фактора подробно описано во всевозможной литературе из области Лин. Большинство из этой литературы касается общих вопросов управления изменениями, а также эффективного применения инструментов Лин и важности лидерства топ-менеджмента. И хотя Лин (как и всё, что имеет отношение к бизнесу) основывается на умах, взаимодействии и энергии людей, человеческий фактор зачастую является причиной неудач при ее внедрении. Принято выделять два вида таких неудач.

Отсутствие общего согласия в среде менеджмента среднего звена

Речь идет не просто о недостатке согласия – это настоящая преграда для внедрения Лин. Каждая компания зиждется на профессионалах-руководителях среднего звена. На них возлагается существенная коллективная ответственность, но им не предоставляются соответствующие по уровню полномочия.

Традиционная догма Лин в еще более значительной степени утверждает высокую важность этого ресурса, обладающего высоким профессиональным потенциалом. Однако она не дает менеджерам ответа на вопрос: Зачем мне это нужно?
Традиционными ответами являются: «Это твоя работа» или «Мы уволим тебя и найдем кого-нибудь другого». На самом же деле, ответом на вопрос является то, что компания станет лучше, и работа будет приносить больше удовлетворения.

Для производителей, представляющих малый и средний бизнес, важно реально смотреть на положение дел при решении этой проблемы. Внедрение Лин закончится неудачей, если не будет собрана команда профессионально подготовленных менеджеров среднего звена.

Сопротивление системы существенно ослабевает, когда руководители среднего звена в значительной степени вовлечены в процесс внедрения и применения Лин. Опасения устраняются благодаря взаимодействию, общению, обучению, вовлеченности и взаимопомощи.

Если перемены необходимы, топ-менеджмент должен осуществить их, но лишь после того, как предпримет все возможные усилия, чтобы сохранить проверенные трудовые ресурсы.

Низкий потенциал трудовых ресурсов

Под этим потенциалом в основном понимаются технические навыки, квалификация, а также лидерский потенциал. Ключевые элементы Лин существенно полагаются на методику непрерывного улучшения, правильное применение которой требует, чтобы персонал был как компетентен в технических областях (включая математику), так и обладал навыками коллективной работы.

Даже самые скромные попытки внедрения Лин не могут быть претворены в жизнь без квалифицированного персонала. Проведенная на должном уровне оценка потенциала трудовых ресурсов может указать на имеющиеся проблемы и помочь выбрать подходящее решение этой проблемы, благодаря которому уровень квалификации персонала увеличится.

Не каждый может быть лидером

Лин требует, чтобы в системе действовало лидерство, распределяемое иерархично – сверху вниз. Лин выдвигает особые требования к лидеру: он должен быть жестким, непреклонным, неунывающим, вдохновляющим персонал. Лидер должен быть требовательным и в то же время прощать ошибки, быть гибким и сохранять предельную концентрацию.

Кроме того, он должен быть умным и обладать уважением коллег. В каждой успешной компании есть как минимум один человек, отвечающий этим требованиям. Персонал компании должен с энтузиазмом поддерживать своего лидера.

Способы применения Лин

Внедрение Лин может обернуться неудачей из-за ряда ошибок. Наиболее типичные из них следующие:

Плохо разработанная стратегия применения Лин

Прежде всего, руководство компании должна установить, какие ключевые элементы Лин будут применены, и в каком порядке. Также необходимо решить, с какого подразделения компании начать внедрение Лин и как расширить ее влияние на всю деятельность. Это важно – компании могут потерпеть неудачу, если будут форсировать внедрение Лин. Но чрезмерная осторожность в ее внедрении также может также стать причиной итоговой неудачи.

Грамотно разработанная стратегия должна основываться на четком распределении ответственностей и эффективном использовании ресурсов. Необходимо разработать систему показателей деятельности и сроков реализации внедрения Лин. Наконец, в стратегии должны быть учтены возможные проблемы и пути их решения.

Недостаточное обучение персонала

Например, стажировка персонала в использовании непрерывного потока в производстве и применении методики канбан важно не столько для работников производственных или обрабатывающих цехов, сколько для сборочного цеха. Стажировка же в сферах поддержания эксплуатационной эффективности оборудования, в осуществлении процессов непрерывного улучшения или в применении гибридного подхода при использовании методики вытягивающего производства играет значительно более важную роль, по крайней мере на начальных этапах.

Читайте также:
Пинг программа что это

Отсутствие должного понимания процесса непрерывного улучшения, а именно инструментов Штурм-прорыва

Данные инструменты являются краткосрочными, характеризуются целенаправленным действием и могут способствовать быстрому получению положительных результатов. Они также могут требовать большого количества ресурсов. Инструменты Штурм-прорыва представляют собой важный элемент инструментария процесса непрерывного улучшения.

Однако невозможно добиться успешного и устойчивого роста, применяя инструменты штурм-прорыва без соответствующей методологической базы. В этом случае успех будет скорее удачей, нежели закономерностью. Это всё равно, что пытаться выступать в высшей лиге без опыта твердой базе знаний в области процессов непрерывного улучшения.

Чрезмерно высокая зависимость от мнения экспертов или отечественного лидера в области применения Лин

Безусловно, получение экспертного мнения очень важно для компании. Чтобы внедряемая система Лин начала работать с самого начала, необходимо, чтобы достаточное количество сотрудников обладали необходимым объемом знаний. Наиболее предпочтительный способ получения экспертного мнения – это сочетание формального (аудиторного) обучения с обучением без отрыва от производства. Совершенно неправильно, с практической точки зрения, полагаться на мнение эксперта, когда в его роли выступает компания со значительно большей численностью сотрудников и не обладающая полномочиями по внедрению Лин в вашей компании.

Оценивая всё вышесказанное, можно отметить интересную особенность. В большинстве случаев неудачного внедрения Лин, предпосылки для итогового краха создаются еще до начала использования этой системы!

Внедрение Лин не является простым процессом. Однако результаты, при корректном внедрении данной системы, показывают, что Лин оправдывает все ожидания. Инструменты Лин эффективно работают. Все виды ошибок, допускаемых при внедрении Лин, можно избежать или преодолеть.

Наиболее важными составляющими при внедрении Лин-системы в организацию являются подготовительный этап (особенно постановка цели и разработка технической модели и бизнес-плана), лидерство, стимулирующее выполнение этого процесса, соответствующая подготовка персонала и учет человеческого фактора, а также четкая программа по управлению внедрением системы.

У каждой компании, внедряющей Лин, будет своя история собственные преграды, которые придется преодолевать. Те, что перечислены в данной статье, являются наиболее общими для всех, и их влияние может стать фатальным. Если удастся их избежать, внедрение Лин будет происходить гораздо более ровно и быстро.

Источник: www.equipnet.ru

STM32 и протокол LIN. Настройка и обмен данными. STM32CubeMx.

Приветствую всех на нашем сайте! Выходит в свет вторая часть из обещанных трех, посвященных работе с протоколом LIN. Сегодня вооружимся микроконтроллером STM32 и реализуем связь по LIN в разных режимах работы с использованием аппаратных средств. Напоминаю, что в третьей статье будем писать свой драйвер LIN с нуля на голом UART’е.

Подготовительный этап будет протекать как обычно — открываем STM32CubeMx и настраиваем нужную периферию. Для этого проекта мы будем использовать два модуля USART, настроенных на работу в режиме LIN, соединенных между собой. Вообще, строго говоря, подключение необходимо выполнять через микросхемы LIN-трансиверов:

Шина LIN.

Но у меня сейчас, к сожалению, нет под рукой TJA1021, либо аналога, так что соединяем модули USART просто напрямую. На процесс написания программы это никак не повлияет и на работоспособности не отразится.

Схема для теста LIN.

USART1 и USART2 настраиваем абсолютно одинаково, не забываем включить прерывания:

Настройка LIN в STM32CubeMx.

USART прерывания в STM32CubeMx.

Кроме того, как обычно, конфигурируем тактирование микроконтроллера:

Настройки тактирования STM32.

На этом взаимодействие с CubeMx закончено, генерируем проект и открываем его для дальнейшей деятельности.

Итак, в чем же заключается аппаратная поддержка LIN в STM32. На самом деле, функционал фактически минимальный. Для Master’а есть возможность аппаратно сгенерировать поле Break, используя функцию:

HAL_LIN_SendBreak(UART_HandleTypeDef *huart)

Для Slave есть возможность отловить все тот же брейк в прерывании. В общем-то вот и все.

Давайте чуть подробнее разберем механизм обнаружения поля Break подчиненным устройством. Стоит отметить, что в HAL по какой-то причине решили не делать никаких функций для этого, поэтому будем работать «руками». В общем, то нам нужно будет всего лишь включить прерывание по обнаружению брейка:

__HAL_UART_ENABLE_IT(

В данном случае у меня использован USART2.

И далее в прерывании, после стандартной обработки прерывания HAL’ом, отлавливаем событие обнаружения брейка:

uint32_t isrflags = huart2.Instance->SR; if ((isrflags CLEAR_BIT(huart2.Instance->SR, USART_SR_LBD); // . >

Все, на этом аппаратные возможности заканчиваются, все остальное мы сейчас сделаем самостоятельно. На USART1 у нас будет Master, соответственно, на USART2 — Slave. И начнем с более сложного, а именно с кода подчиненного устройства. Но прежде всего прочего нужно обсудить, каков будет план.

Итак, реализуем два режима работы:

  • Master отправляет заголовок (header) пакета с определенным PID, после чего Slave переходит в режим приема данных.
  • Master отправляет заголовок с идентификатором, который сигнализирует Slave’у о том, что надо ответить ведущему порцией данных. Соответственно, Master после отправки заголовка должен встать на прием.

Пусть значения PID для примера будут такими:

  • 0x3A — соответствует первому случаю, то есть Master отправляет заголовок и данные.
  • 0x3B — это уже второй случай из перечисленных.

Важное дополнение — как вы помните, байт PID помимо 6-ти битов идентификатора включает в себя еще два бита четности. Для примера же будем просто использовать вышеупомянутые значения, без учета четности.

Добавляем в наш проект эти значения и пару переменных (ссылку на полный проект я обязательно добавлю в конце статьи):

#define LIN_TX_ID 0x3A #define LIN_RX_ID 0x3B
uint8_t linTxId = LIN_TX_ID; uint8_t linRxId = LIN_RX_ID;

Кроме того, объявляем массивы для хранения данных ведущего и подчиненного:

#define LIN_DATA_BYTES_NUM 9
uint8_t linMasterData[LIN_DATA_BYTES_NUM]; uint8_t linSlaveData[LIN_DATA_BYTES_NUM];

В проекте все находится в разных файлах, здесь же для наглядности я буду комбинировать код чуть иначе. Принимать и отправлять мы будем по 8 байт, то есть максимально возможное количество байт в одном фрейме. Но обратите внимание, что в массивах по 9 байт — еще 1 байт мы выделили под прием и отправку контрольной суммы.

Читайте также:
Redcheck professional что это за программа

И раз уж об этом зашла речь, то вот функция для расчета контрольной суммы (будем использовать классический алгоритм):

uint8_t LIN_CalcCheckSum(uint8_t *data, uint8_t len) < uint16_t sum = 0; for (uint8_t i = 0; i < len; i++) < sum += data[i]; >while(sum > 0xFF) < sum -= 0xFF; >sum = 0xFF — sum; return (uint8_t)sum; >

И для систематизации работы программы добавим возможные режимы, в которых может находиться Slave:

typedef enum < LIN_RECEIVING_BREAK = 0x01, LIN_RECEIVING_SYNC = 0x02, LIN_RECEIVING_ID = 0x03, LIN_RECEIVING_DATA = 0x04, LIN_SENDING_DATA = 0x05, >LIN_State;

Суть тут ясна из названий, так что даже не будем останавливаться на этом отдельно. Итак, изначально Slave у нас готов к приему данных и находится в состоянии ожидания Break’а:

LIN_State slaveState = LIN_RECEIVING_BREAK;

Код приема брейка, как мы уже обсудили, поместим в обработчик прерывания:

Первым делом проверяем, что Slave находится в ожидании поля Break, затем проверяем, не вызвано ли прерывание как раз-таки приемом этого поля, и, если да, то переводим Slave в режим ожидания поля Sync. Тут есть небольшой нюанс в виде чтения регистра данных USART’а, это нужно для корректного приема последующих байт:

uint16_t temp = huart2.Instance->DR;

Вся остальная логика у нас будет в callback-функциях по окончанию приема и передачи. Начинаем с приема и двигаемся по всем возможным состояниям Slave устройства:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) < if (huart == uint8_t checkSum = 0; switch(slaveState) < case LIN_RECEIVING_SYNC: if (rxByte == LIN_SYNC_BYTE) < slaveState = LIN_RECEIVING_ID; HAL_UART_Receive_IT(rxByte, 1); >else < slaveState = LIN_RECEIVING_BREAK; >break; default: break; > > >

Проверяем принятый байт, если значение верное — 0x55 — встаем на прием PID, иначе возвращаемся в исходную точку. Добавляем ветку для приема идентификатора:

case LIN_RECEIVING_ID: if (rxByte == LIN_RX_ID) < slaveState = LIN_SENDING_DATA; for (uint8_t i = 0; i < LIN_DATA_BYTES_NUM — 1; i++) < linSlaveData[i] = 0x30 + i; >linSlaveData[LIN_DATA_BYTES_NUM — 1] = LIN_CalcCheckSum(linSlaveData, LIN_DATA_BYTES_NUM — 1); HAL_UART_Transmit_IT( > else < if (rxByte == LIN_TX_ID) < slaveState = LIN_RECEIVING_DATA; HAL_UART_Receive_IT( >else < slaveState = LIN_RECEIVING_BREAK; >> break;

Здесь все чуть сложнее, но, в принципе, тоже довольно прозрачно. Проверяем PID и по его значению определяем, что нам следует делать в дальнейшем. И тут два варианта:

  • Ожидать приема байт данных от Master’а
  • Или отправить свою порцию данных

Для случая передачи данных Slave’ом заполняем массив тестовыми значениями и дополняем его 9-м байтом — контрольной суммой. А если PID не соответствует тем 2-м значениям, которые мы определили для этого примера, то возвращаем устройство в начальное положение, а именно в состояние ожидания брейка.

И, наконец, последняя часть callback-а по приему:

case LIN_RECEIVING_DATA: checkSum = LIN_CalcCheckSum(linSlaveData, LIN_DATA_BYTES_NUM — 1); if (linSlaveData[LIN_DATA_BYTES_NUM — 1] == checkSum) < linSlaveRxCnt++; >slaveState = LIN_RECEIVING_BREAK; break;

Как мы обсудили ранее, принимаем 9 байт, то есть 8 байт данных и байт контрольной суммы. И когда все данные приняты — рассчитываем контрольную сумму по первым 8-ми байтам и сравниваем ее значение с 9-ым байтом массива данных. В случае успеха инкрементируем переменную linSlaveRxCnt . Этот счетчик будет для нас сигналом успешно принятых данных.

Но в зависимости от принятого идентификатора Slave мог также перейти в режим передачи данных, поэтому этот случай нам также нужно обработать. И делаем мы это в коде callback-функции по окончанию передачи данных:

void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) < if (huart == switch(slaveState) < case LIN_SENDING_DATA: linSlaveTxCnt++; slaveState = LIN_RECEIVING_BREAK; break; default: break; >> >

Все, на этом логика работы подчиненного полностью готова Не мешкая переходим к реализации работы ведущего, и тут все будет на порядок проще.

При работе Master’а в режиме отправки данных Slave’у:

for (uint8_t i = 0; i < LIN_DATA_BYTES_NUM — 1; i++) < linMasterData[i] = 0x40 + i; >HAL_LIN_SendBreak( HAL_UART_Transmit(linSync, 1, 10); HAL_UART_Transmit(linTxId, 1, 10); linMasterData[LIN_DATA_BYTES_NUM — 1] = LIN_CalcCheckSum(linMasterData, LIN_DATA_BYTES_NUM — 1); HAL_UART_Transmit( linMasterTxCnt++; HAL_Delay(1000);

Заполняем данные тестовыми значениями и последовательно отправляем:

Все четко по формату пакета протокола LIN. Для примера я сделал отправку раз в секунду. В режиме, когда Master отправляет в шину заголовок и ожидает данные от подчиненного все практически идентично:

for (uint8_t i = 0; i < LIN_DATA_BYTES_NUM; i++) < linMasterData[i] = 0x00; >HAL_LIN_SendBreak( HAL_UART_Transmit(linSync, 1, 10); HAL_UART_Transmit(linRxId, 1, 10); HAL_UART_Receive( uint8_t checkSum = LIN_CalcCheckSum(linMasterData, LIN_DATA_BYTES_NUM — 1); if (linMasterData[LIN_DATA_BYTES_NUM — 1] == checkSum) < linMasterRxCnt++; >HAL_Delay(1000);

Последний аргумент функций HAL_UART_Transmit() и HAL_UART_Receive() — это величина таймаута в миллисекундах. Если функция не закончит свое выполнение за это время, то произойдет возврат из функции с кодом ошибки HAL_TIMEOUT .

Разница только в том, что после отправки PID устройство встает на прием данных, а не начинает передачу, плюс по окончанию приема проверяем контрольную сумму. Для индикации работоспособности здесь также будем пользоваться обычными счетчиками пакетов linMasterRxCnt и linMasterTxCnt .

Переключение между режимами работы в проекте осуществляется переменной linMasterTask . Master отправляет:

uint8_t linMasterTask = LIN_MASTER_TX;
uint8_t linMasterTask = LIN_MASTER_RX;

Собираем, прошиваем, запускаем, проверяем.

Для случая, когда ведущий отправляет данные подчиненному смотрим на счетчики linMasterTxCnt и linSlaveRxCnt . А также на значения в массивах linMasterData и linSlaveData . Под отладчиком можно наблюдать как счетчики параллельно инкрементируются, то есть отправляемые пакеты успешно принимаются:

Программа для передачи по интерфейсу LIN.

Аналогично и в режиме, когда Master получает данные от Slave:

Программа для приема по интерфейсу LIN.

Здесь уже вступают в игру счетчики linMasterRxCnt и linSlaveTxCnt . Ну и кроме того, значения в массивах принимаемых и отправляемых данных в точности совпадают.

И на этой позитивной ноте заканчиваем сегодняшнюю статью, спасибо за внимание При возникновении любых вопросов, смело пишите в комментарии, во всем разберемся.

Источник: microtechnics.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru