Помощь в написании студенческих работ
Антистрессовый сервис

Последовательный CAN-порт процессора обработки данных

ДипломнаяПомощь в написанииУзнать стоимостьмоей работы

К патенту H04B3/00: устройство передачи сигналов между, по крайней мере одним генератором сигналов и по крайней мере одним приемником сигналов, содержащее систему линий для передачи сигналов и снабжения электрической энергией генератора и приемника сигналов, отличающееся тем, что каждый генератор сигналов и каждый приемник сигналов имеет устройство управления полевой шиной; система линий содержит… Читать ещё >

Последовательный CAN-порт процессора обработки данных (реферат, курсовая, диплом, контрольная)

РЕФЕРАТ Ключевые слова порт, микроконтроллер, механизм, блок, схема, ошибка, обнаружение, модель, синтез, топология, интеграция.

Объектом разработки выступает порт, спроектированный в соответствии со спецификацией стандарта CAN (Controller Area Network — Распределенная сеть контроллеров) последовательной передачи данных по каналу связи и техническими условиями на данный проект.

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

В качестве вспомогательной аппаратуры выступает ЭВМ, так как разработка производится в среде САПР.

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

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

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

Содержание Введение

1. Обзор литературы и патентный поиск

2. Разработка структурной схемы последовательного CAN-порта

2.1 Разработка общей структурной схемы

2.2 Разработка структурной схемы механизма обнаружения ошибок

3. Разработка поведенческой модели последовательного CAN-порта

4. Тестирование последовательного CAN-порта

5. Методика синтеза и синтез схем последовательного CAN-порта

6. Построение топологии и анализ полученных результатов

7. Организационно-экономический раздел

7.1 Предварительная оценка планируемой к выполнению проектно-конструкторской работы

7.2 Расчет трудоемкости ПКР

7.3 Расчет договорной цены научно-технической продукции

7.4 Выбор и обоснование товара-конкурента

7.5 Анализ технической прогрессивности новой конструкции

7.6 Анализ изменений функциональных возможностей

7.7 Анализ соответствия новой конструкции нормативам

7.8 Расчёт годовых издержек на электроэнергию потребителя последовательного CAN-порта в условиях эксплуатации

7.9 Расчёт полезного эффекта последовательного CAN-порта в эксплуатации

7.10 Образование цены нового последовательного CAN-порта

7.11 Образование цены потребления и установление коммерческой конкурентоспособности

7.12 Обоснование уровня качества нового товара

8. Безопасность и экологичность

8.1 Анализ опасных и вредных факторов

8.2 Факторы воздействия на инженера

8.3 Методы защиты

8.4 Расчет шума на рабочем месте

8.5 Пожаробезопасность

8.6 Экологичность Заключение Список литературы ПРИЛОЖЕНИЕ, А Verilog-описание механизма сигнализации ошибок ПРИЛОЖЕНИЕ Б Verilog-описание тестовой программы

Введение

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

Необходимость данного проекта по проектированию последовательного CAN-порта назрела в связи с надобностью внедрения его в отечественные разработки микроконтроллеров (МК) и процессоров цифровой обработки сигналов (ПЦОС). Целью проекта является получение принципиальной электрической схемы и топологии узлов данного продукта.

Основными исходными данными при разработке последовательного CAN-порта является международная спецификация на данный стандарт [4], принадлежащая Robert Bosch GmbH (Роберт Бош ГмбХ) и разработанная ей в 1987 году. В упомянутом документе содержатся описания всех уровней систем на CAN (физический, канальный, объектный), их взаимодействие, формат сообщений, алгоритмы обнаружения ошибок и т. п.

Основной задачей проекта выступает разработка алгоритмов работы схемы в соответствии со стандартом CAN, описание их на языке Verilog (Верилог), моделирование описанного на САПР Cadence SimVision® (Кэденс Симвижн), визуальная проверка временных диаграмм работы устройства после моделирования. При корректной работе модели следует произвести синтез электрических схем описанных блоков устройства с помощью библиотеки элементов, которая задана в технических условиях. После успешного синтеза схем они подлежат разводке на кристалле кремния.

1. Обзор литературы и патентный поиск Была использована вся необходимая литература по вопросу CAN.

В статье С. А. Третьякова «CAN — локальная сеть контролеров"[1] в научно-популярной форме изложены некоторые положения. Часть статьи, дополненная автором, приведена ниже.

Последовательный CAN-порт предназначен для обмена информацией в системах распределенного контроля в реальном времени в соответствии со стандартом ISO 11 898 (1993) CAN 2.0A, 2.0B. Первоначально CAN предназначался для управления трансмиссией в реальном масштабе времени, системы анти-заноса и замены всей радиальной проводки автомобиля. Впоследствии CAN, подобно урагану, ворвался во все сферы промышленного управления. Протокол CAN обладает великой скрытой мощью, которая не очевидна до тех пор, пока не проникнуть в проблемы вокруг проектирования встроенных распределенных систем управления, где различные модули, блоки, узлы и датчики должны быть объединены в единую систему.

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

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

Рассмотрим практическое применение CAN на борту автомобиля. В автомобиле присутствует множество датчиков, пересылающих информацию на бортовой компьютер. Это датчики давления и температуры масла, температуры охлаждающей жидкости, уровня тормозной жидкости, уровня жидкости омывателей лобового стекла и фар, датчик расхода воздуха, датчик расхода топлива, дождя, света и многие другие. Все эти сенсоры должны работать независимо друг от друга с возможностью отключения от системы (в случае неисправности самих себя или по желанию водителя) без ущерба для работы самой системы и остальных датчиков. При этом они должны качественно и с большой степенью надежности передавать информацию в бортовой компьютер для своевременного предупреждения неисправности. Особенно это касается «жизненно важных» индикаторов, таких как датчик износа тормозных колодок, давления тормозной жидкости, скорости вращения колес, положения руля и подушек безопасности.

Все эти условия может полностью удовлетворить протокол CAN. Он поддерживает высоконадежную передачу данных, как на физическом, так и на канальном уровнях, что обеспечивает вероятность пропуска сообщения 4,7*10^(-11). Также он подразумевает «безболезненное» отключение от шины любого из узлов сети. К тому же за счет топологии «шина» он защищен от физического обрыва провода. Более наглядно этот факт показан на рисунке 1.

Рисунок 1 — Схема физического подключения узлов CAN-системы

Где node 1… node n — узел 1 и узел n соответственно. CAN Bus Line — CAN-шина. CAN_H и CAN_L — условные обозначения дифференциальных проводов (каналов) шины.

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

Оно доходчиво дано в научно-популярной статье А. Лапина «Интерфейс CAN. Слагаемые успеха"[2]. Ниже приводится краткое содержание этой статьи.

Сетевой протокол CAN был разработан в 1987 году фирмой Bosch (Бош) для мультипроцессорных автомобильных систем реального времени. CAN оптимизирован для систем, в которых передается сравнительно небольшой объем информации со скоростью до 1 Мбит/с. Основные достоинства CAN-протокола — высокая помехоустойчивость, надежность, возможность получения сообщений всеми узлами, контроллерами данных с синхронизацией по времени, неразрушающий арбитраж доступа к шине, малая вероятность пропуска ошибки, низкая стоимость. Принятая в CAN-интерфейсе схема передачи сообщений позволяет ее расширять и модернизировать: новые устройства приема данных можно добавлять к сети без изменения существующих программных средств и нарушения работы старой системы.

В середине 80-х годов прошлого столетия начала интенсивно развиваться автомобильная электроника, появились противоблокировочные тормозные системы, системы управления двигателем, средства регулирования тягового усилия, кондиционирования и пр. Все это требовало организации обмена данными между распределёнными по машине приборами, датчиками и исполнительными механизмами. Применявшиеся до этого не объединенные в единый цифровой интерфейс аналоговые и цифровые линии связи (доставляющие сигналы «как есть» со скоростью, не превышающей 10 байт/с) не справлялись с резко возросшим потоком данных, объем которых превысил разумный предел (рисунок 2). Специфика автомобильных кабельных сетей (ограничения на толщину кабелей и на механические воздействия на них) еще больше усугубляла эту проблему. Помимо увеличения стоимости кабельного хозяйства автомобиля, все возрастающее число линий связи вызвали серьезные проблемы снижения надежности, затруднения диагностики и ремонта.

Объединяя с помощью CAN-технологии исполнительные механизмы, датчики и преобразователи, поставщики оборудования с компьютерным управлением смогли сократить сроки проектирования, снизить затраты на соединения (благодаря наличию легких кабелей и соединителей) и улучшить надежность (в результате уменьшения числа соединений).

Рисунок 2 — Ограничения пропускной способности систем передачи данных с различной организацией Последняя версия протокола CAN 2.0 В позволяет увеличить скорость связи в восемь раз, по сравнению с первой версией. Ведутся работы по стандартизации изделий, совместимых с CAN и IEEE 1394.

Основополагающие решения формирования CAN-интерфейса определила специфика автомобилестроения. Выбор последовательного метода передачи информации в этом протоколе (рисунок 2) обусловлен необходимостью минимизации кабельного хозяйства автомобиля. Автомобильный кабель должен быть стойким к истиранию, а разъём — устойчивым к вибрации и прочным, оба компонента должны быть малогабаритными и недорогими. Параллельный интерфейс, с его громоздким хозяйством, здесь практически неприменим (рисунок 2).

Высокий уровень помех автомобильных систем обусловил выбор низкоомной линии обмена данными. В шинных формирователях CAN-интерфейса один из логических уровней представлен высоким напряжением и малым током линии, а также высоким сопротивлением его выходного каскада. Он назван «recessive» (рецессивным, отступающим, удаляющимся). Другому уровню соответствует низкое напряжение и высокий ток линии, низкое сопротивление выходного каскада. Он назван «dominant» (основным, доминирующим, преобладающим) уровнем. Будем считать «recessive» — уровнем логической «1», а «dominant» — уровнем логического «0».

Упрощённая схема выходных каскадов двух узлов и линии обмена данными CAN показана на рисунке 3. Выбор «токовой петли» для объединения узлов сети, двухтактной схемы или применение фазоманипулированного кода (как в стандарте Манчестер-II) привел бы к увеличению стоимости реализации. В то же время, достоинства CAN можно эффективно реализовать, выполнив выходные каскады по схеме с открытым коллектором и используя согласующие сопротивления линии в качестве нагрузки. (На самом деле всё несколько сложнее, как видно из рисунка 3, но здесь удобно рассмотреть упрощённую модель линии.) Линия представляет собой логический элемент «монтажное И». Из таблицы истинности схемы, изображенной на рисунке 3 видно, что уровень «логической 1» формируется на линии Uвых только тогда, когда уровни «логической 1» присутствуют на всех входах. А уровень «логический 0» на выходе формируется из уровня «логического 0» на любом из входов, т. е. «логический 0» на любом входе имеет однозначный приоритет (не зря он называется «dominant»).

Рисунок 3 — Упрощённая модель работы выходных каскадов двух узлов линии обмена данными интерфейса CAN

В любой момент времени любой узел может выставить на линии уровень «логического 0″, что не приводит к образованию опасных сквозных токов и других конфликтов линии. Все узлы CAN, в том числе ведущий передачу, анализируют логический уровень на линии. На основе этого анализа передатчик делает выводы об „отношении“ к информации, поступающей от других узлов. Этот механизм широко применяется в CAN-интерфейсе для арбитража шины и обнаружения ошибок передачи. А поскольку он работает в ходе передачи сообщения, то является очень экономичным по времени: отдельная линия и отдельные приемники и передатчики в узлах не нужны. Рассмотрим арбитраж шины (рисунок 4). В CAN протоколе сообщения не являются адресными. В них предусмотрен идентификатор», содержащий адрес регистра передачи. Наиболее приоритетным считается сообщение с численно меньшим идентификатором. Все узлы синхронизируют работу своих тактовых генераторов по отношению к перепадам сигналов на линии. Перед передачей сообщения узел проверяет линию на свободность. Таким образом, несколько узлов могут одновременно начать выдачу сообщений, передав стартовый бит с уровнем «логического 0», после чего линия уже не считается свободной. Заняв линию, узлы приступают к передаче идентификатора, начиная со старшего бита. Для случая, представленного на рисунке 4, это делают одновременно два узла. Пока идентификаторы побитно совпадают, одновременная передача сообщений остаётся незамеченной для всех узлов сети, в том числе и передающих. Когда же один из узлов передаёт уровень «логической 1», а другой — уровень «логического 0» на линии, как рассматривалось выше, формируется уровень «логического 0». Узел, передавший уровень «логического 1», а зафиксировавший уровень «логического 0», прекращает передачу. Идентификатор его сообщения численно больше идентификатора, передаваемого другим узлом, который продолжает передачу более приоритетного сообщения. Таким образом, приоритетный узел был выявлен без потери времени на арбитраж простым побитным сравнением идентификаторов (т.е. приоритетов) непосредственно в ходе передачи.

Рисунок 4 — Использование свойств элемента «монтажное И» при арбитраже сообщений в CAN

Похожий механизм используется при сигнализации об ошибках приёма. При одновременной передаче бита узел, обнаружив ошибку, выставляет на линии доминирующий уровень «логического 0». Передатчик, задающий уровень «логической 1», фиксирует несоответствие передаваемого сигнала сигналу на линии и прекращает передачу. Это обеспечивает непротиворечивость данных в сети: сообщение либо принято всеми узлами, либо не принято ни одним. Тот же или другой передатчик начинает новую попытку передачи сообщения в освободившуюся линию. В зависимости от числа попыток передатчик делает вывод о своей исправности. Для гарантии возможности сигнализации об ошибках в структуре передаваемого сообщения предусмотрены биты, которые передатчик всегда устанавливает равными уровню «логической 1» (например, бит после поля контрольной суммы). Эта удачная находка значительно увеличила шансы на выживание протокола CAN в динамично развивающейся автомобильной отрасли.

По логике организации обмена данными CAN отличается от традиционных интерфейсов. Организация обмена — событийно-ориентированна. Это означает, что как только узел получает сообщение о событии, о котором необходимо информировать другие узлы системы (с учетом описанной выше процедуры арбитража), он начинает широковещательную передачу сообщения. Такая процедура выполняется без программного опроса, прерываний и без контроллера, управляющего обменом. В результате возрастает живучесть системы: даже будучи разделенной на две части, она сохраняет жизнеспособность каждой из них («принцип дождевого червя»). При этом обе подсистемы смогут функционировать независимо. Другое следствие равноправности всех узлов — экономия времени на доставку сообщения до адресата за счёт децентрализации системы. Как уже отмечалось, в CAN-протоколе понятие «адрес» отсутствует, а имеется понятие «идентификатор», который фактически является адресом регистра передачи (в узлах CAN-интерфейса нет программно-доступных по записи регистров приёма). Каждый идентификатор жёстко связан с массивом данных, который может быть передан в линию при инициации передачи соответствующим узлом. Остальные узлы «прослушивают» линию и анализируют идентификаторы передаваемых сообщений, принимая только «свои» данные и игнорируя остальные. Данные могут одновременно принимать несколько узлов. Это значительно ускоряет работу интерфейса благодаря отсутствию дублирования передачи одинаковых данных разным узлам. В событийно-ориентированную логику работы интерфейса органично включена процедура запроса данных. Если узлу потребовались данные, формируемые другим узлом, он посылает сообщение с запросом этих данных, указывая в нём идентификатор. В ответ узел-держатель данных передаёт соответствующее сообщение. Событие, вызвавшее необходимость в данных, инициирует их доставку.

Более подробное техническое описание стандарта приведено в для всех желающих.

И, наконец, согласно международной спецификации по стандарту «CAN 2.0A 2.0B"[4] ниже приведено описание механизма обнаружения ошибок, который выносится на разработку в данном дипломном проекте.

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

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

Механизмы обнаружения ошибок имеют следующие возможности:

— обнаружение всех глобальных ошибок;

— обнаружение всех локальных ошибок передатчиков;

— обнаружение до 5 случайно распределённых ошибок в сообщении;

— обнаружение последовательной группы ошибок длиной до 15;

— обнаружение любого числа нечетных ошибок в сообщении.

Общая остаточная вероятность ошибки для необнаруженных, разрушенных сообщений, меньше чем скорость появления ошибки — 4,7*10^(-11).

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

Узлы CAN отличают временные отказы от постоянных. Дефектные узлы будут отключены.

Кадр ошибки состоит из двух различных полей. Первое поле является суперпозицией флагов ошибки различных узлов, второе поле — поле разделителя ошибки.

Рисунок 5 — Схема кадра ошибки Для корректного завершения кадра ошибки, узлу в состоянии «пассивной ошибки» может быть необходим доступ к шине, поэтому шина должна быть свободной, по крайней мере, три времени передачи бита. Следовательно, шина не должна быть загружена на 100%.

Существует 2 формы флага ошибки: активный и пассивный флаг ошибки. Активный флаг ошибки состоит из 6 последовательных бит с «логическим 0». Пассивный флаг ошибки состоит из 6 последовательных бит с «логической 1», если они не перезаписаны битами с «логическим 0» других узлов.

Узел в состоянии «активной ошибки» при обнаружении ошибки передает активный флаг ошибки. Форма флага ошибки нарушает закон кодирования битового потока методом разрядного заполнения. Вследствие этого все узлы обнаруживают условие ошибки и начинают передавать флаг ошибки. В результате, последовательность бит с «логическим 0», контролируемая на шине, является суперпозицией флагов ошибок отдельных узлов. Общая длина этой последовательности — от 6 до 12 бит с «логическим 0».

Узел в состоянии «пассивной ошибки» при обнаружении ошибки передает пассивный флаг ошибки, он ждет последовательности из 6 одинаковых бит, определяющих начало флага пассивной ошибки. Когда эта последовательность будет обнаружена, флаг пассивной ошибки будет завершен.

Разделитель ошибки состоит из 8 бит с «логической 1». После передачи флага ошибки каждый узел посылает биты с «логической 1» и контролирует шину, пока не обнаружит бит с «логической 1». Впоследствии он начинает передавать 7 бит с «логической 1».

Существует пять типов не взаимоисключающих ошибок:

— разрядная ошибка — узел, который посылает что-либо на шину, также контролирует шину. Разрядная ошибка может быть обнаружена во время передачи бита, если переданное значение отличается от значения, прочитанного с шины;

— ошибка заполнения — ошибка заполнения обнаруживается во время приема последовательности из шести бит одинакового разрядного уровня в поле сообщения, которое должно быть кодировано методом разрядного заполнения;

— ошибка CRC — последовательность CRC состоит из результата вычисленного передатчиком. Приёмники вычисляют CRC таким же образом, как и передатчик. Ошибка CRC обнаруживается при несовпадении расчетного результата CRC-последовательности в приёмнике и присланной CRC-последовательности передатчика;

— ошибка формата — ошибка формата обнаруживается, когда разрядное поле фиксированного формата содержит один или несколько лишних бит;

— ошибка подтверждения — ошибка подтверждения обнаруживается передатчиком всякий раз, когда нет контроля бита с «логическим 0» в течение области подтверждения.

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

Узел может быть в одном из трех состояний:

— активной ошибки;

— пассивной ошибки;

— отключения от шины;

В состоянии «активной ошибки» узел может взаимодействовать с шиной, посылая флаг активной ошибки при обнаружении ошибки. В состоянии «пассивной ошибки» узел не должен слать флаг активной ошибки. Он принимает участие во взаимодействии с шиной, но при обнаружении ошибки должен послать флаг пассивной ошибки. После передачи сообщения об ошибке, узел в состоянии «пассивной ошибки» будет ждать инициализации дальнейшей передачи.

В состоянии отключения от шины узлу не разрешено оказывать влияние на шину.

Для типизации ошибок у каждого узла — CAN есть два счетчика: счетчик ошибок передачи, счетчик ошибок приема. Эти счетчики функционируют согласно следующим правилам:

— когда принимающий узел обнаруживает ошибку, счетчик ошибок приема увеличивается на 1, за исключением разрядной ошибки во время передачи флага активной ошибки или флага перегрузки;

— когда принимающий узел обнаруживает появление доминантного бита в качестве первого после передачи флага ошибки, счетчик ошибок приема увеличивается на 8;

— когда передающий узел посылает флаг ошибки, счетчик ошибок передачи увеличивается на 8;

— если передающий узел обнаруживает разрядную ошибку при передаче флага активной ошибки или флага перегрузки, счетчик ошибок передачи увеличивается на 8;

— если принимающий узел обнаруживает разрядную ошибку во время передачи флага активной ошибки или флага перегрузки счетчик ошибок приема увеличивается на 8;

— любой узел сети допускает до 7 последовательных доминантных бит после передачи флага активной ошибки, флага пассивной ошибки или флага перегрузки. После обнаружения последовательности 14 доминантных битов (в случае флага активной ошибки или флага перегрузки) или 8 доминантных битов вслед за флагом пассивной ошибки, а также в случае любой последовательности из 8 доминантных битов при передаче, узел увеличивает счетчик ошибок передачи на 8, в случае передачи и счетчик ошибок приема на 8, в случае приема;

— после успешной передачи сообщения, счетчик ошибок передачи уменьшается на 1, пока не станет равным нулю;

— после успешного приема сообщения, счетчик ошибок приема уменьшается на 1, если его значение было между 1 и 127. Если в счетчике ошибок приема ноль, счетчик остается без изменений. Если значение счетчика ошибок приема больше чем 127, он примет значение между 119 и 127;

— узел находится в состоянии пассивной ошибки, когда один из счетчиков (ошибок передачи/приема) больше или равен 128. Возникновение ошибки, вследствие чего узел принял состояние пассивной ошибки, является причиной того, что узел передает флаг активной ошибки;

— узел является отключенным от шины, если счетчик ошибок передачи больше или равен 256;

— узел, находившийся в состоянии пассивной ошибки, снова переходит в состояние активной ошибки, если оба счетчика (ошибок передачи/приема) меньше или равны 127;

— узлу, который находится в состоянии «отключен от шины», разрешается перейти в состояние активной ошибки (непродолжительное состояние отключения от шины), с установкой обоих счетчиков в 0, после того, как на шине будут обнаружены 128 последовательностей из 11 рецессивных битов.

Также к переработанной литературе можно отнести описания готовых устройств подобного типа [5], руководство по алгоритмам коррекции ошибок CRC [6], оригинальные спецификации и допуски фирмы-разработчика стандарта Robert Bosch GmbH (Роберт Бош ГмбХ) [4], а также личные конспекты лекций по некоторым дисциплинам, изученным в ходе обучения в ВГТУ.

На данный момент не обнаружено патентов именно на это устройство (последовательный CAN-порт) ни в отечественном архиве (Федеральный институт промышленной собственности), ни в зарубежном (United States Patent and Trademark Office — Служба патентов и торговых марок Соединенных Штатов Америки). В связи с этим ниже в таблицу 1 сведены краткие данные о патентах на те изобретения, которые широко используют стандарт CAN и принципы, заложенные в нем. После таблицы приведены краткие описания отечественных изобретений.

К патенту H04B3/50: изобретение относится к электросвязи и может быть использовано при передаче дискретной информации по двухпроводной линии. Цель изобретения — увеличение дальности передачи. Устройство содержит на передающей стороне последовательно включенные первый источник питания, первый вывод которого соединен с первым проводом двухпроводной линии, а второй вывод соединен с шиной «земля», и ключ, первый и второй выводы которого соединены с первым и вторым проводами двухпроводной линии, управляющий вход ключа является входом устройства, а на приемной стороне — последовательно соединенные нагрузки, первый и второй выводы которой соединены с первым и вторым проводами двухпроводной линии, и второй источник питания, первый вывод которого соединен со вторым проводом двухпроводной линии, а второй вывод — с шиной «земля», при этом полюс второго источника питания, которым он подключен к шине «земля», противоположен полюсу, которым подключен к данной шине первый источник питания.

К патенту H04B3/00: устройство передачи сигналов между, по крайней мере одним генератором сигналов и по крайней мере одним приемником сигналов, содержащее систему линий для передачи сигналов и снабжения электрической энергией генератора и приемника сигналов, отличающееся тем, что каждый генератор сигналов и каждый приемник сигналов имеет устройство управления полевой шиной; система линий содержит четыре электрических проводника, из которых два проводника образуют линию полевой шины .для передачи сигналов, а два других проводника — линию энергоснабжения; каждый генератор сигналов (1, 2) и каждый приемник сигналов через устройство управления полевой шиной подключен к линии полевой шины; каждый генератор сигналов и каждый приемник сигналов подключен к линии энергоснабжения, и на обоих концах системы линии между обоими проводниками линии полевой шины установлен первый резистор, между одним проводником линии полевой шины и проводником линии энергоснабжения — второй резистор и между другим проводником линии полевой шины и другим проводником линии энергоснабжения — третий резистор, а общее сопротивление резисторов соответствует волновому сопротивлению линии полевой шины.

Таблица 1 — Патенты

Номер публикации

2007/69 877

Дата публикации

10.12.1995

10.01.1999

27.10.2008

09.11.2006

29.03.2007

Основной индекс (МПК)

H04B3/50

H04B3/00

H02P6/00

US7,421,323B2

US7,348,878B2

Заявитель

Орищенко Василий Николаевич

Гестра ГмбХ

Общество с ограниченной ответственностью «Центртехкомплект»

International Truck Intellectual Property Company, LLC (Международная компания по разработке интеллектуальных частей грузовиков)

International Truck Intellectual Property Company, LLC (Международная компания по разработке интеллектуальных частей грузовиков)

Автор (ы)

Орищенко Василий Николаевич

Хайнрих Ханземанн, Херберт Лаупихлер, Ян-Херманн Мюллер, Йоахим-Кристиан Политт, Гюнтер Шмитц, Хольгер Шретер;

Сорокин Антон Владимирович, Ремезов Александр Николаевич, Кочанов Юрий Иванович, Крылов Юрий Алексеевич, Докукин Александр Львович

Robert D. Dannenberg (Роберт ди Данненберг), Steven R. Lovell (Стивен эр Новелл)

Kenneth A. Fogelstrom (Кеннет эй Фогелстром)

Название

Устройство для передачи и приема дискретной информации по двухпроводной линии

Устройство передачи сигналов по полевой шине

Способ регулирования трехфазного напряжения в устройствах питания электропривода

Automated vehicle battery protection with programmable load shedding and engine speed control (Система автоматической защиты аккумуляторной батареи с программируемым отключением и контролем за оборотами двигателя)

Tire pressure monitoring system with permanent tire identification (Система слежения за давлением в шинах с постоянным выравниванием)

К патенту H02P6/00: способ регулирования трехфазного напряжения питания электропривода, включающий использование вентильно-индукторного электродвигателя с многофазной независимой обмоткой статора, разделенной на независимые каналы, датчика положения ротора, преобразователей частоты и блока управления, отличающийся тем, что дополнительно используют: автоматическую систему управления технологическим процессом (АСУ ТП), два взаиморезервированных контроллера, соединенных между собой в единую сеть, периферийные модули ввода-вывода сигналов с датчиков и конечных выключателей, соединенных с контроллерами промышленной сетью, а также устройства автоматического включения резерва (АВР), соответствующие вводы которых соединены с выводами силовых трансформатором напряжения, а выводы соединены между собой и с независимыми вводами устройств распределения силового питания с коммутационной и защитной аппаратурой, расположенной в силовом щите, преобразователи частоты, входы которых соединены независимо друг от друга с выводами устройств распределения силового питания, устройства распределения питания и защиты в силовом щите, подключенные независимыми вводами к соответствующим выводам преобразователей частоты, каждый из которых имеет выходы для питания независимой обмотки возбуждения электродвигателя, а также информационные входы, на которые, в свою очередь, через блок транслятора сигналов, поступают сигналы от датчика положения ротора, датчиков температуры, встроенных в электродвигатель и сигналы АСУ ТП, при этом все преобразователи связаны между собой промышленной сетью CAN (Controller area network), а контроллеры преобразователей, контроллеры АСУ ТП и модули ввода-вывода запитаны от источника бесперебойного питания (ИБП).

2. Разработка структурной схемы последовательного CAN-порта

2.1 Разработка общей структурной схемы Разработка структурной схемы проводилась в соответствии с техническими условиями и международной спецификацией на стандарт CAN. Она приведена ниже на рисунке 6 и дано ее описание.

Рисунок 6 — Структурная схема порта CAN

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

2.2 Разработка структурной схемы механизма обнаружения ошибок Общая структурная схема отражает общий же механизм работы устройства, каждый элемент этой схемы состоит из множества блоков, подлежащих рассмотрению и разработке. Из-за огромного объема работ по данной теме для детального проектирования взят один из элементов схемы, состоящий в свою очередь, из 6 блоков (модулей) взаимосвязанных между собой и с внешними элементами.

Ниже, на рисунке 7, приведена разработанная структурная схема механизма сигнализации ошибок и дано описание ее принципа работы.

Рисунок 7 — Структурная схема механизма сигнализации ошибок Сообщение после входной битовой логики уже без битового заполнения поступает на 4 блока из 6:

— входной генератор CRC-последовательности;

— блок проверки CRC-последовательности;

— блок слежения за битовым заполнением;

— блок проверки формата сообщения;

Сообщение после входной битовой логики с битовым заполнением поступает также в 4 блока из 6:

— блок слежения за битовым заполнением;

— блок проверки формата сообщения;

— блок слежения за потоком битов;

— блок проверки подтверждения приема;

Во входном генераторе формируется контрольная сумма на основе задающего полинома x14+x10+x8+x7+x4+x3+1 (100 010 110 011 001) и первых 4-х полей сообщения (начало кадра, поле арбитража, поле контроля, поле данных). Далее она поступает в блок проверки контрольной суммы (КС), где, в свою очередь, сравнивается с пришедшей с шины CRC-последовательностью, сгенерированной выходным CRC-генератором при формировании данного сообщения для передачи. На основе этого блоком проверки КС выносится решение об ошибке контрольной суммы.

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

Блок проверки формата производит проверку формата сообщения также на основе бит-заполненного сообщения и бит-незаполненного в соответствии со спецификацией CAN (каждый из видов сообщения имеет строго фиксированный формат). Если формат сообщения выходит за рамки стандарта, то выносится решение об ошибке формата.

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

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

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

3. Разработка поведенческой модели последовательного CAN-порта Методика разработки данного устройства состоит в составлении алгоритмов функционирования, выбранных для синтеза блоков, и описании их на языке проектирования аппаратуры Verilog[7]. Мною, для описания, выбран механизм коррекции ошибок, который состоит из 6 блоков (принцип работы и структурную схему см. выше). Ниже приведены описания сигналов для каждого из блоков. Сам программный код поведенческой модели приведен в приложении А.

Входной генератор CRC-последовательности:

— rx_crc_frm — регистр, содержащий сгенерированную контрольную сумму для принятого сообщения;

— serial_in — регистр, содержащий синхронизированный дискретный бит;

— rx_crc_enable — сигнал включения входного CRC-генератора;

— rx_crc_intl — признак инициализации входного CRC-генератора;

— tx_success — признак успешной передачи сообщения;

— rx_success — признак успешного приема сообщения;

— clk — тактовый сигнал;

— g_rst — сигнал глобального сброса.

Блок проверки CRC-последовательности:

— crc_err — сигнал ошибки контрольной суммы;

— rcvd_crc — регистр, содержащий принятую в сообщении контрольную сумму;

— rx_crc_frm — регистр, содержащий сгенерированную контрольную сумму для принятого сообщения;

— rx_success — признак успешного приема сообщения;

— act_err_frm_tx — признак активного кадра ошибки переданного по шине;

— psv_err_frm_txпризнак пассивного кадра ошибки переданного по шине;

— rcvd_crc_flg — признак приема CRC-последовательности;

— clk — тактовый сигнал;

— g_rst — сигнал глобального сброса.

Блок слежения за битовым заполнением:

— stf_err — сигнал ошибки заполнения;

— one_count — счетчик, подсчитывающий количество логических единиц в принятом сообщении;

— zero_count — счетчик, подсчитывающий количество логических нулей в принятом сообщении;

— serial_in — регистр, содержащий синхронизированный дискретный бит;

— arbtr_fld — признак передачи поля арбитража;

— clk — тактовый сигнал;

— g_rst — сигнал глобального сброса.

Блок проверки формата сообщения:

— frm_err — сигнал ошибки формата;

— rcvd_bt_cnt — счетчик, подсчитывающий полное число принятых битов;

— rcvd_data_len — регистр, содержащий длину принятого сообщения;

— rx_success — признак успешного приема сообщения;

— act_err_frm_tx — признак активного кадра ошибки переданного по шине;

— psv_err_frm_txпризнак пассивного кадра ошибки переданного по шине;

— serial_in — регистр, содержащий синхронизированный дискретный бит;

— clk — тактовый сигнал;

— g_rst — сигнал глобального сброса.

Блок слежения за потоком битов:

— bt_err — сигнал ошибки бита;

— can_bus_out — выход на CAN-шину;

— sampled_bit — регистр, содержащий дискретный бит;

— dt_rm_frm_tx — признак передачи кадра запроса/данных;

— act_err_flg_tx — признак активного флага ошибки переданного по шине;

— psv_err_flg_txпризнак пассивного флага ошибки переданного по шине;

— ovld_flg_tx — признак передачи флага перегрузки;

— cons_zero_flg — признак приема нулей после передачи флага ошибки;

— ovld_err_ifs_tx — признак передачи кадра ошибки/перегрузки;

— tx_success — признак успешной передачи сообщения;

— arbtr_fld — признак передачи поля арбитража;

— arbtr_sts — признак проблемы приема/передачи;

— ack_slt — признак передачи подтверждения приема;

— ifs_flg_tx — признак передачи флага внутреннего кадрового пространства;

— clk — тактовый сигнал;

— g_rst — сигнал глобального сброса.

Блок проверки подтверждения приема:

— ack_err — сигнал ошибки подтверждения;

— ack_slt — признак передачи подтверждения приема;

— act_err_frm_tx — признак активного кадра ошибки переданного по шине;

— psv_err_frm_txпризнак пассивного кадра ошибки переданного по шине;

— arbtr_sts — признак проблемы приема/передачи;

— tx_success — признак успешной передачи сообщения;

— sampled_bit — регистр, содержащий дискретный бит;

— clk — тактовый сигнал;

— g_rst — сигнал глобального сброса.

4. Тестирование последовательного CAN-порта Тестирование описанных схем производится в среде САПР Cadence SimVision®. Результаты моделирования приведены на рисунках под номерами с 8 по 14. Описания всех сигналов приведены выше. Пояснения к рисункам приведены ниже.

Рисунок 8: по этому рисунку видно как данный узел вычисляет контрольную сумму на основе пришедшей по шине информации с помощью регистра сдвига (сигнал rx_crc_frm).

Рисунок 9: в этом блоке производится сравнение сигналов rcvd_crc (принятая с шины crc-последовательность, содержащаяся в кадре данных) и сгенерированного собственным crc-генератором rx_crc_frm. На основе этого выносится решение о наличии ошибки контрольной суммы (сигнал crc_err).

Рисунок 10: данный блок, в зависимости от значений сигналов счетчиков единиц и нулей (one_count, zero_count), выносит решение о наличии в сообщении несоответствующих правилу битового заполнения (каждые подряд идущие 5 бит одинаковой полярности должны быть автоматически дополнены одним вспомогательным битом противоположной полярности) данных (сигнал stf_err).

Рисунок 11: здесь, на основе значения счетчиков битов и длины сообщения (rcvd_bt_cnt, rcvd_data_len), выносится решение о некорректном сообщении на шине (сигнал frm_err).

Рисунок 12: блок сравнивает переданную (can_bus_out) и полученную (sampled_bit) сообщения побитно. И в случае несовпадения схема решает что произошла ошибка (сигнал bt_err).

Рисунок 13: самая простая схема в механизме работает следующим образом — на основе наличия/отсутствия бита подтверждения приема (ack_slt) выносится решение о наличии ошибки приема (ack_err).

Рисунок 14: на этой диаграмме можно наблюдать поведение всех сигналов механизма обнаружения ошибок и их взаимовлияние друг на друга.

Рисунок 8 — Временные диаграммы сигналов блока генератора CRC-последовательности Рисунок 9 — Временные диаграммы сигналов блока проверки CRC-последовательности Рисунок 10 — Временные диаграммы сигналов блока слежения за битовым заполнением Рисунок 11 — Временные диаграммы сигналов блока проверки формата сообщения Рисунок 12 — Временные диаграммы сигналов блока слежения за потоком битов Рисунок 13 — Временные диаграммы сигналов блока проверки подтверждения приема Рисунок 14 — Временные диаграммы сигналов механизма обнаружения ошибок Моделирование производится с помощью написанной также на Verilog программе тестирования (testbench). Листинг этой программы приведен в приложении Б.

5. Методика синтеза и синтез схем последовательного CAN-порта Синтез схем после описания и моделирования производится на САПР Cadence RTL Compiler®. В результате получаются электрические схемы блоков, состоящих из элементов библиотеки, подключенной к САПР. Схемы синтезированных на данный момент блоков приведены ниже на рисунках с 15 по 18. Описания всех сигналов приведены выше. Пояснения к рисункам приведены ниже.

Рисунок 15: эта схема с помощью элементов штрих-Пирсона поразрядно сравнивает сигналы rcvd_crc и rx_crc_frm. Затем, с помощью элементов Шеффера и еще нескольких управляющих сигналов (rcvd_crc_flg, rx_success, psv_err_frm_tx, act_err_frm_tx) воздействует на выходной D-триггер.

Рисунок 16: в приведенной схеме значения сигналов one_count и zero_count подаются на элементы 3И-НЕ для определения значения. При превышении определенного значения сигнал передается в мультиплексор, который, в свою очередь, передает на свой выход либо прямое, либо инверсное значение входного шинного сигнала. Под действием управляющего сигнала (arbtr_fld) сигнал подлежит передаче в выходной D-триггер.

Рисунок 17: здесь множество определяющих сигналов, проходя через несложную комбинационную логику влияют на включение регистра разрешения проверки наличия на шине неоконченного поля арбитража и на выходной D-триггер через составной элемент (3ИЛИ, 2ИЛИ — И-НЕ).

Рисунок 18: эта самая простая схема посредством переключения D-триггера выносит соответствующее решение.

Рисунок 15 — Схема электрическая блока проверки контрольной суммы Рисунок 16 — Схема электрическая блока слежения за битовым заполнением Рисунок 17 — Схема электрическая блока слежения за потоком битов Рисунок 18 — Схема электрическая блока проверки подтверждения приема Проектирование производилось в полном соответствии с СТО 10 600 824.011 — 2007, действующем на предприятии — месте написания диплома. Согласно этому документу выходным продуктом на этапе эскизно-технического проектирования является фотошаблон рисунка топологии кристалла кремния. Этот фотошаблон подлежит в дальнейшем отправке на кремниевую фабрику для изготовления опытной партии кристаллов. По этой причине чертежи электрических схем не приводятся.

6. Построение топологии и анализ полученных результатов Проведем оценку всех действий и результата проведенной работы.

Прежде всего, стоит упомянуть, что конечным результатом проекта является рисунок топологии на кристалле кремния. Этот рисунок получен посредством САПР Cadence Virtuoso® (Кэденс Виртуозо) и показан ниже на рисунке 19 Проанализируем полученные результаты.

В ходе проекта была «с нуля» спроектирована принципиальная электрическая схема механизма сигнализации ошибок последовательного CAN-порта. На основе алгоритмов работы и технических условий была написана на языке программирования аппаратуры Verilog поведенческая модель предполагаемой схемы. Эта модель была протестирована разработанной специально для нее программой. В ходе теста было установлено, что схема работает верно, по тем алгоритмам, что и положено по стандарту. Далее, поведенческая модель была переведена на основе библиотеки элементов, использующих 0,35 мкм технологию, в электрические схемы, и вновь протестирована уже на частоте 16 МГц. После удачного и завершающего теста была произведена разводка топологии кристалла кремния, которая будет по необходимости реализована «в железе».

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

Рисунок 19 — Укрупненный вариант участка топологии

7. Организационно-экономический раздел

7.1 Предварительная оценка планируемой к выполнению проектно-конструкторской работы Задача оценки технико-экономического и «рыночного уровня» новизны, а также эффективности возникает до начала выполнения ОКР и при подведении её итогов.

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

Для проведения предварительной оценки используем метод экспертных оценок, который базируется на выборе смысловых характеристик количественно измеряемых по определённой бальной системе. Результаты предварительной оценки приведены в таблице 2.

Таблица 2 — Критерии и их оценки ОКР

Шкала критериев

Оценка критериев, балл

1 Имеющийся опыт в данной области проектирования

1.1 Некоторый опыт

+1

2 Патентоспособность

2.1 Защита схемных решений патентами не предполагается

— 2

3 Возможность внедрения результатов ОКР в производство

3.1 Широкое внедрение возможно сразу после завершения ОКР

+2

Шкала критериев

Оценка критериев, балл

4 Привлекательность проектируемого изделия для имеющегося контингента покупателей

4.1 Сохраняет всех старых покупателей

+2

5 Сервисное обслуживание

5.1 Незначительные требования

+2

6 Требования по расширению рынка

6.1 Покупатель заинтересован

+1

7Наличие конкурирующих товаров

7.1 Множество субститутов

— 1

Сумма баллов +6, что обозначает перспективность разработки.

7.2 Расчет трудоемкости ПКР Для расчета трудоемкости ПКР воспользуемся методом типовых этапов (работ), который предполагает использование известных соотношений этапов при подробном расчете одного из них по укрупненным нормативам затрат труда. Результаты предварительной оценки приведены в таблице 3.

Таблица 3 — Расчет трудоемкости разработки рабочих чертежей

Виды работ

Количество листов формата А4

Норма времени на 1 лист, чел./ч

Трудоемкость чел./ч

Нестандартная аппаратура

8,2

16,4

Принципиальные и монтажные схемы

5,2

Прочие конструкторские работы

5,8

34,8

Итого

18,0

;

103,2

С учетом коэффициента унификации и применения заимствованных деталей, равного 0,95

;

;

98,04

С учетом коэффициента новизны конструкции, равного 1,5

;

;

154,8

С учетом коэффициента серийности изготовления конструкции, равного 1,3

;

;

134,16

С учетом коэффициента применения новой РЭА, равного 1,3

;

;

134,16

Всего

;

;

248,53

Расчет трудоемкости ОКР представлен в таблице 4.

Таблица 4 — Расчет общей трудоемкости ОКР

Наименование стадий

Удельный вес

Трудоемкость, чел.-ч

Техническое предложение

79,27

Эскизное проектирование

285,35

Техническое проектирование

507,3

Разработка рабочей документации (в т.ч. разработка рабочих чертежей)

713,39

Разработка рабочих чертежей

248,53

Всего

1833,83

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

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

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

Цена разработчика (Цр) — это нижний предел цены. Она должна, как минимум, обеспечивать возмещение затрат.

Цена заказчика (Цз) — это верхний предел цены, обеспечивающий сохранение и увеличение уровня рентабельности при использовании результатов ОКР. Окончательная договорная цена (Цд) должна отвечать условию:

(1)

Расчет стоимости покупных радиодеталей и материалов для новой разработки представлен в таблице 5.

Таблица 5 — Расчет стоимости покупных изделий

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

Количество

Цена за единицу, р.

Сумма, р

Корпус

Н16.48−2Б

Проволока алюминиевая

АК 0,9 ПМ-35А

0,183

1,19

0,22

Кристалл

Показать весь текст
Заполнить форму текущей работой