Библиотека
CHAI 2.1.0
Руководство пользователя
Версия документа 0.12
ГАРАНТИЙНЫЕ
ОБЯЗАТЕЛЬСТВА
(Ограниченная гарантия на продукцию МАРАФОНА)
Гарантийное обслуживание по программному обеспечению можно получить, связавшись с офисом МАРАФОНА в оговоренный гарантийный период. Адрес офиса МАРАФОНА приведен на первой странице Руководства по эксплуатации устройства, а также приложен вместе с Регистрационной карточкой.
МАРАФОН гарантирует, что его программное обеспечение будет работать в строгом соответствии с прилагаемой к нему МАРАФОНОМ документацией в течении девяноста (90) дней с момента его приобретения у МАРАФОНА или Авторизованного Реселлера. МАРАФОН предоставляет гарантию на носитель, на котором поставляется программное обеспечение, в виде отсутствия потери им информации на тот же гарантийный срок. Данная гарантия имеет отношение только к приобретенному программному обеспечению или его замене по гарантии, и не касается любых обновлений или замен, которые получены через Internet или бесплатно.
Ответственность МАРАФОНА по обеспечению гарантии программного обеспечения состоит в замене его на новое, которое выполняет перечисленные в прилагаемой документации функции. Ответственность Заказчика состоит в выборе соответствующего приложения, программной платформы/системы и дополнительных материалов. МАРАФОН не отвечает за работоспособность программного обеспечения вместе с любыми аппаратными средствами и/или программными платформами/системами, которые поставляются третьими сторонами, если совместимость с ними не оговорена в прилагаемой к продукции МАРАФОН документации. Согласно данной гарантии, МАРАФОН старается обеспечить разумную совместимость своей продукции, но МАРАФОН не несет ответственность, если с аппаратными или программными средствами третьих фирм происходят сбои. МАРАФОН не гарантирует, что работа программного обеспечения будет непрерывна и в процессе не будут происходить ошибки, а также то, что все дефекты в программном продукте с или без учета документации на него, будут исправлены.
Вышеупомянутые гарантии и замечания являются исключительными и соответствуют всем прочим гарантиям, объявленным или подразумеваемым, которые даются в явном виде или в соответствии с законодательством, установленными законами или в другом виде, включая гарантии на сам товар и его пригодность для стандартных целей. МАРАФОН никогда не допускает и не принимает на себя прочую ответственность, связанную с продажами, поддержкой инсталляции или использования продукции МАРАФОНА
МАРАФОН никогда не несет ответственность по гарантии, если проводимое им тестирование и анализ определяет, что заявленный дефект в изделии не был обнаружен, или он был вызван неверным использованием заказчиком, или третьей стороной, невнимательной или неправильной инсталляцией или тестированием, попыткой ремонта неавторизованными лицами, или чем-либо еще, не предусмотренным в назначении изделия, типа несчастного случая, огня, пожара и других бедствий.
Ни в каком случае МАРАФОН не несет ответственность за любые убытки, включая потерю данных, потерю прибыли, стоимости покрытия или других случайных, последовательных или непрямых убытков, являющихся следствием инсталляции, сопровождения, использования, производительности, неисправности или временной неработоспособности изделий производства МАРАФОНА. Эти ограничения действуют, даже если МАРАФОН был предупрежден о возможности такого убытка.
Регистрационная карточка, прилагаемая на обратной стороне Руководства, должна быть отправлена в офис МАРАФОН по факсу, электронной почте или почтовым отправлением. Список адресов/ телефонов/ факсов офисов МАРАФОНА содержится на первой странице данного Руководства.
По техническим вопросам звоните по тел. +7 (495)-988-27-26, 939-56-59, 939-13-24 или свяжитесь с нами по email support@marathon.ru.
Лицензионное соглашение на Программное обеспечение, поставляемое с CAN интерфейсами производства МАРАФОН
Все права на программное обеспечение, аппаратное обеспечение и данное руководство принадлежат фирме Марафон и защищены законодательством Российской Федерации.
ПЕРЕД ИСПОЛЬЗОВАНИЕМ ПРИЛАГАЕМОГО ИЗДЕЛИЯ ПОКУПАТЕЛЬ ДОЛЖЕН ВНИМАТЕЛЬНО ОЗНАКОМИТЬСЯ С УСЛОВИЯМИ НАСТОЯЩЕГО СОГЛАШЕНИЯ. ИСПОЛЬЗОВАНИЕ ДАННОГО ИЗДЕЛИЯ ПОДРАЗУМЕВАЕТ ПРИНЯТИЕ ЭТИХ ПОСТАНОВЛЕНИЙ И УСЛОВИЙ. ЕСЛИ ОГОВОРЕННЫЕ УСЛОВИЯ ЯВЛЯЮТСЯ ДЛЯ ПОКУПАТЕЛЯ НЕПРИЕМЛЕМЫМИ, ОН ДОЛЖЕН НЕЗАМЕДЛИТЕЛЬНО ВЕРНУТЬ НЕИСПОЛЬЗОВАННЫЙ КОМПЛЕКТ, ПРИ ЭТОМ ЗАТРАТЫ ПОКУПАТЕЛЯ БУДУТ ВОЗМЕЩЕНЫ.
ДАННЫЙ ДОКУМЕНТ ЯВЛЯЕТСЯ ЛИЦЕНЗИОННЫМ СОГЛАШЕНИЕМ, НО НЕ СОГЛАШЕНИЕМ О ПРОДАЖЕ. МАРАФОН ЯВЛЯЕТСЯ ВЛАДЕЛЬЦЕМ ИЛИ ИМЕЕТ ЛИЦЕНЗИОННЫЕ СОГЛАШЕНИЯ С ДРУГИМИ ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ НА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, ВХОДЯЩЕЕ В КОМПЛЕКТ ПОСТАВКИ СВОИХ ИЗДЕЛИЙ И ПО. ПОКУПАТЕЛЬ НЕ ПРИОБРЕТАЕТ НИКАКИХ ПРАВ НА ИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ, СОДЕРЖАЩУЮСЯ В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ, ЗА ИСКЛЮЧЕНИЕМ ТЕХ, КОТОРЫЕ НАСТОЯЩЕЕ СОГЛАШЕНИЕ ПРЕДОСТАВЛЯЕТ ЕМУ В ОТНОШЕНИИ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. ПРАВО СОБСТВЕННОСТИ НА ПРИЛАГАЕМУЮ КОПИЮ УПОМЯНУТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, А ТАКЖЕ НА ВСЕ КОПИИ, СДЕЛАННЫЕ С НЕЕ, СОХРАНЯЕТСЯ ЗА МАРАФОНОМ ИЛИ ДРУГИМИ ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ. ПОКУПАТЕЛЬ ПРИНИМАЕТ НА СЕБЯ ВСЮ ОТВЕТСТВЕННОСТЬ В ОТНОШЕНИИ ВЫБОРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ДОСТИЖЕНИЯ СВОИХ ЦЕЛЕЙ, А ТАКЖЕ ЗА УСТАНОВКУ, ИСПОЛЬЗОВАНИЕ И РЕЗУЛЬТАТЫ ИСПОЛЬЗОВАНИЯ ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
Покупатель имеет право:
1. копировать Программное обеспечение исключительно для создания резервных копий или при установке для подразумеваемого обычного использования Программного обеспечения при условии, что в любой копии упомянутого Программного обеспечения будут воспроизведены все уведомления об авторских правах и торговых марках, содержащиеся в данном Программном обеспечении;
2. передавать право владения копиями Программного обеспечения другому юридическому или физическому лицу путем передачи данной копии настоящего Соглашения и всей прочей документации, а также по меньшей мере одной полной и не претерпевший изменений копии Программного обеспечения, при условии, что (1) все сделанные Покупателем копии Программного обеспечения будут переданы означенному лицу или уничтожены, (2) такая передача права владения прекращает лицензионное соглашение Покупателя с МАРАФОНОМ, и (3) означенное лицо примет на себя и будет соблюдать постановления данного лицензионного соглашения с момента начала пользования Программным обеспечением; и
3. использовать торговые марки, связанные с Программным обеспечением, исключительно в соответствии с существующей практикой использования торговых марок, включая ссылки на имена владельцев торговых марок.
Без письменного согласия МАРАФОНА запрещается:
1. использовать, копировать, изменять, объединять или передавать копии данного Программного обеспечения при условиях, отличных от оговоренных в данном соглашении;
2. деассемблировать или декомпилировать Программное обеспечение;
3. выдавать сублицензию, сдавать в аренду и лизинг, передавать в пользование данное Программное обеспечение или любую его копию.
Копирование этого руководства возможно только при получении письменного разрешения у фирмы Марафон.
Содержание
Этот документ описывает установку и использование библиотеки CHAI-2.1.0 в операционных системах Linux, Windows 2000, Windows XP и Windows Vista.
ПЕРЕД УСТАНОВКОЙ БИБЛИОТЕКИ ВНИМАТЕЛЬНО ОЗНАКОМЬТЕСЬ С ИНСТРУКЦИЕЙ ПО УСТАНОВКЕ И УДАЛЕНИЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ CHAI.
CHAI (CAN Hardware Abstraction Interface) представляет собой библиотеку, реализующую программный интерфейс доступа к сети CAN на канальном уровне (Data Link Layer) семиуровневой модели ISO/OSI. Программный интерфейс, предоставляемый библиотекой CHAI, не зависит от используемой аппаратуры CAN и операционной системы. Библиотека разработана как для применения во встраиваемых приложениях, так и для задач, работающих под управлением операционных систем общего назначения: Windows 2000/XP/Vista, Linux.
CHAI использует для доступа к аппаратуре CAN драйвер unican (входит в состав библиотеки), предназначенный для работы с CAN интерфейсами CAN-bus-PCI, CAN-bus-USB, CAN-bus-ISA, CAN-bus-ISAm, CAN-bus-MicroPC, CAN-bus-PC104 производства фирмы Марафон
Ниже приведены инструкции для установки библиотеки в ОС Windows XP. В операционных системах Windows 2000/Vista установка производится по аналогии. Для установки библиотеки вы должны обладать правами администратора.
Удалите предыдущую версию драйверов CAN-bus интерфейсов - CHAI. Если у вас не установлены эти драйвера, то перейдите к следующему пункту инструкции. Для версий 2.x.x просто запустите мастер удаления (Start->Programs->CHAI-2.x.x->Uninstall CHAI). Для версий CHAI-1.x.x запустите Device Manager (Start->Settings->Control Panel-> System->Hardware->Device Manager); откройте группу устройств CAN; последовательно выбирая каждое устройство в группе, щелкайте на правую кнопку мыши, и во всплывающем меню выбирайте пункт Uninstall. После того как все устройства CAN деинсталлированы, запустите мастер удаления CHAI-1.x.x (Start->Programs->CHAI-1.x.x->Uninstall).
Запустите
исполняемый файл chai-2.1.0-2k-XP-Vista.exe. По умолчанию
инсталлятор устанавливает CHAI с поддержкой устройств PCI и USB
(платы CAN-bus-PCI, CAN-bus-USB). Если вы используете устройства с
интерфейсом ISA (платы CAN-bus-ISA, CAN-bus-ISAm, CAN-bus-MicroPC,
CAN-bus-PC104), отметьте пункт в меню «ISA device support».
Далее следуйте инструкциям инсталляционной программы.
После
завершения работы инсталляционной программы вам будет предложено
перегрузить компьютер. Перегрузите компьютер.
Если
вы установили в компьютер плату CAN-bus-PCI, то при входе в систему
будет показано сообщение «Found New Hardware/ System DMA
Controller», а затем запустится «Found New Hardware
Wizard».
Выберите
пункт «No, not this time» (см. рис.) и нажмите кнопку
“Next”.
На
следующем экране отметьте пункт “Install
from a list of specific location” (см. рис.),
нажмите «Next».
На
следующем экране оставьте отмеченными пункты: «Search for the
best driver in these locations» и «Include this location
in the search» (см. рис.). Затем нажмите кнопку «Browse»
и выберите папку CHAI_INSTALL_DIR\inf, где CHAI_INSTALL_DIR это
папка куда вы установили библиотеку CHAI (по умолчанию C:\Program
Files\CHAI-2.1.0). Нажмите кнопку «Next».
Device
Manager выполнит установку необходимых файлов и на следующем экране
высветится «Completing Found New Hardware Wizard» (см.
рис.). Нажмите кнопку «Finish». Если вы используете
Windows Vista вам необходимо отключить UAC (см. пункт 6 ниже)
При подключении интерфейса CAN-bus-USB (CAN-bus-USB2ch) будет показано сообщение «Found New Hardware/ CAN-bus-USB», а затем запустится «Found New Hardware Wizard». Вам необходимо дейстовать в точности как в случае с интерфейсом CAN-bus-PCI (см. предыдущий пункт 4).
Если вы
используете платы CAN-bus-ISA или CAN-bus-MicroPC, то вам необходимо
задать ресурсы аппаратуры (базовый адрес и линию прерывания) вручную
через Device Manager.
Запустите Device Manager
(Start->Settings->Control Panel->
System->Hardware->Device Manager). Откройте группу
устройств CAN и щелкните два раза на пункте CAN-bus-ISA (KMDF).
В
открывшихся свойствах устройства выберите Resources->Set
Configuration Manually. Если вы используете плату CAN-bus-ISAm,
CAN-bus-MicroPC или CAN-bus-PC104 которые имеют два CAN-контроллера,
выберите Setting based on: «Basic Configuration 0000» и
заполните вручную ресурсы:
первый пункт сверху Memory Range
соответствует базовому адресу карты (в соответствие с выставленными
перемычками на плате); второй пункт Memory Range должен быть равен
базовому адресу (значение первого пункта) + 0x200; третий пункт IRQ
– линия прерывания первого CAN-контроллера (в соответствие с
выставленными перемычками на плате); четвертый пункт IRQ –
линия прерывания второго CAN-контроллера (в соответствие с
выставленными перемычками на плате);
Если
вы используете плату CAN-bus-ISA которая имеет один CAN-контроллер,
выберите Setting based on: «Basic Configuration 0001» и
заполните вручную ресурсы:
первый пункт сверху Memory Range
соответствует базовому адресу карты (в соответствие с выставленными
перемычками на плате); второй пункт IRQ – линия прерывания
CAN-контроллера (в соответствие с выставленными перемычками на
плате).
После ручного задания ресурсов нажмите кнопку «Ok»,
вам будет предложено перегрузить компьютер – перегрузите
компьютер. Если вы используете Windows Vista вам необходимо
отключить UAC (см. следующий пункт 6)
Отключение
User Access Control (UAC) для ОС Windows Vista.
Если
вы используете CHAI для плат c интерфейсом ISA или PCI в
операционной системе Windows Vista вам обязательно нужно отключить
User Access Control (UAC) иначе перечисление каналов для ваших плат
не будет работать (каналы не будут обнаруживаться библиотекой CHAI).
Для отключения UAC запустите «Пуск->Панель Управления->
Учетные записи пользователей->Включение или отключение контроля
учетных записей (UAC)».
Уберите
«галочку» как на рисунке и нажмите кнопку «OK»,
вам будет предложено перегрузить компьютер, перегрузите компьютер.
Для установки библиотеки вы должны обладать правами root. Начиная с версии 2.0.0 библиотека CHAI поддерживает только ветку версий ядра 2.6.x. Для определения версии ядра которое используется в вашей системе, наберите команду
uname -r
Эта команда выводит номер версии работающего ядра.
Установка библиотеки и драйвера для ядер 2.6.x:
Распакуйте
архив с дистрибутивом chai-2.1.0-linux.tar.gz в инсталляционную
директорию, например в /opt:
tar -C /opt -xzvf
chai-2.1.0-linux.tar.gz
в результате выполнения этой команды
архив будет распакован в директорию /opt/chai-2.1.0.
Перейдите
в директорию куда был распакован архив chai-2.1.0-linux.tar.gz,
например
cd /opt/chai-2.1.0
выполните
команду make:
make
в результате будут скомпилированы драйвер
unican (unican.ko), программы canmon, chaitest и скрипт запуска
chai.
выполните
команду make install:
make install
в результате будут
созданы специальные файлы устройств /dev/canX, созданы символические
ссылки из директории /bin на скомпилированные программы canmon,
chaitest и chai, создана символическая ссылка из директории /lib на
разделяемую библиотеку libchai.so, и в случае использования вашим
дистрибутивом системы запуска SySV, будет сконфигурирована
автоматическая загрузка драйвера unican при загрузке операционной
системы.
Если понадобится, в дальнейшем вы можете пересобрать библиотеку командой make rebuild.
Запустите
мастер удаления CHAI
Start->Programs->
CHAI-2.1.0->Uninstall CHAI.
Перейдите
в директорию, куда была установлена библиотека, например
cd
/opt/chai-2.1.0
выполните
команду make uninstall
make uninstall
удалите
директорию, куда была установлена библиотека, например
rm -rf
/opt/chai-2.1.0
Ниже мы под символом CHAI_INSTALL_DIR будем подразумевать директорию, в которой установлена chai. Например, если chai установлена в с:\Program Files\CHAI-2.1.0, то вместо CHAI_INSTALL_DIR надо подставлять с:\Program Files\CHAI-2.1.0.
В состав программного пакета библиотеки входят:
библиотека CHAI версии 2.1.0
CHAI_INSTALL_DIR\lib\chai.lib - lib-файл системы разработки MS Visulal C++ 2005 для линковки программ, использующих CHAI.
CHAI_INSTALL_DIR\lib\chai.dll - сама разделяемая библиотека (копия этого файла копируется при установке в системную папку WINDOWS\system32 (или в WINNT\system32 для Windows 2000 ).
Заголовочный файл библиотеки - CHAI_INSTALL_DIR\include\chai.h, Этот файл должны включать все программы использующие библиотеку.
текстовый CAN монитор - CHAI_INSTALL_DIR\bin\canmon.exe
программа тестирования библиотеки CHAI (chaitest) - CHAI_INSTALL_DIR\bin\chaitest.exe
Документация на библиотеку - CHAI_INSTALL_DIR\doc
Примеры программирования - CHAI_INSTALL_DIR\ex
Исходные коды программ chaitest.exe и canmon.exe c файлами проектов MS Visual C++ 2005 Express Edition - CHAI_INSTALL_DIR\src
INF-файлы для интерфейсов CAN-bus-PCI и CAN-bus-USB - CHAI_INSTALL_DIR\inf
Библиотека поддерживает до 8 CAN-контроллеров в одном компьютере. Каждый CAN контроллер рассматривается как отдельное устройство и ему в соответствие ставится отдельный независимый канал ввода-вывода CAN. Исключение составляет только двухканальный интерфейс CAN-bus-USB2ch, два канала которого могут быть одновременно использованы только в рамках одного процесса (ограничение драйвера USB FTDI). Каналы нумеруются последовательно начиная с 0. Определение базового адреса и линии прерывания интерфейса производится автоматически во время инициализации библиотеки и не может быть задано пользователем (за исключением плат с интерфейсом ISA в ОС Windows).
При
написании программ использующих CHAI, вы
должны включать в текст программы заголовочный файл
CHAI_INSTALL_DIR\include\chai.h, и при
сборке линковать вашу программу с lib-файлом
CHAI_INSTALL_DIR\lib\chai.lib.
Библиотека
разрабатывалась в среде MS Visual C++ 2005 Express Edition, поэтому
формат lib-файла chai.lib соответствует формату этой версии среды
разработки.
Подробную информацию по использованию API CHAI
вы можете прочитать в "CHAI Руководство программиста".
Смотрите также примеры в директории CHAI_INSTALL_DIR/ex и исходные
коды програм chaitest.exe и canmon.exe в директории
CHAI_INSTALL_DIR\src.
Драйвер поддерживает виртуальную файловую систему /proc, через которую можно узнать состояние каждого контроллера и общую информацию о драйвере. Драйвер создает директорию /proc/can, в которой находятся следующие файлы:
unican - содержит общую информацию о драйвере (версия, базовые адреса и линии прерываний обнаруженных интерфейсов, а также номера каналов (minor numbers) интерфейсов,
0, 1, 2 ... - соответствуют контроллерам привязанным к соответствующим minor номерам (/dev/can0, /dev/can1, /dev/can2 ...). Эти файлы содержат подробную информацию о состоянии контроллера (значения регистров, baud rate, acceptance filter).
Ниже мы для описания команд для работы с библиотекой под символом CHAI_BASE будем подразумевать директорию в которой установлена chai. Например, если chai установлена в /opt/chai-2.1.0, то вместо CHAI_BASE следует подставлять /opt/chai-2.1.0.
Для загрузки драйвера используйте команду chai. Эта программа принимает в качестве параметра следующие команды: start - загрузить драйвер, stop - выгрузить драйвер, restart - перегрузить драйвер, status - вывести текущее состояние драйвера. Пример:
загрузка
драйвера:
chai start
вывод
статуса:
chai status
выгрузка
драйвера
chai stop
При написании
программ использующих CHAI, вы должны включать в текст программы
заголовочный файл CHAI_BASE/include/chai.h, и при сборке линковать
вашу программу с динамической библиотекой CHAI_BASE/lib/libchai.so.
Например, для компиляции вашей программы вы можете использовать
команду (предполагается, что библиотека CHAI установлена в
/opt/chai-2.1.0):
gcc -I/opt/chai-2.1.0/include
-L/opt/chai-2.1.0/lib -o your_app your_app.c -lchai
Более подробную информацию по использованию API CHAI вы можете прочитать в "CHAI Руководство программиста". Смотрите также примеры в директории CHAI_BASE/ex, и исходные коды програм chaitest.c и canmon.c в директории CHAI_BASE/src .
Для работы с CAN сетью вы можете воспользоваться программой CAN-монитор (CHAI_INSTALL_DIR\canmon.exe в Windows или CHAI_INSTALL_DIR /bin/canmon в Linux). Чтобы запустить программу запустите
Start->Programs->CHAI-2.1.0->canmon |
в Windows или наберите в командной строке canmon в Linux:
#canmon |
CAN монитор - программа позволяющая отправлять и принимать пакеты CAN сети. Программа работает в текстовом режиме и управляется встроенными командами, вводимыми пользователем в ответ на приглашение монитора. При запуске программа canmon выводит на экран список обнаруженных библиотекой CHAI CAN-интерфейсов и номера назначенных им каналов ввода-вывода CAN. Затем программа запрашивает номер канала, с которым будет вестись работа.
После успешной инициализации выбранного канала монитор выводит приглашение, на которое можно вводить следующие команды:
Available commands: help - display help message on command send - send frame of standart (sff) or extended (eff) format sendrtr - send RTR frame of standart (sff) or extended (eff) format start - start CAN-chip (leave reset mode) stop - stop CAN-chip (enter reset mode) setfilter - set hardware acceptance filter of CAN-chip status - print CAN-chip status setlom - enter CAN-chip to listen-only-mode clearlom - leave CAN-chip from listen-only-mode hwreset - hardware reset CAN-chip getrccnt - show number of frames in rcv queue openlog - open logfile and switch logging on closelog - close logfile and switch logging off setwtout - set write timeout for channel (in milliseconds) showcount - show rcv and snd frames counter resetcount - reset rcv and snd frames counter quit - quit canmonitor |
Команда help без аргументов выводит вышеприведенный список, если команде help передать в качестве параметра команду из этого списка, то она выведет краткую справку о команде. Например,
canmon> help help help: display help message on command usage: help [command name] canmon> help send send: send frame of standart (sff) or extended (eff) format usage: send id:[databyte1,databyte2 ... databyte8] sff|eff [repeat num] |
Все принимаемые из CAN сети пакеты выводятся в асинхронном режиме на экран. Кадры выводятся в формате с полями фиксированного размера, который полностью идентичен формату вывода программы CANwise:
EV NUM/ERR F/F ID LEN D0 D1 D2 D3 D4 D5 D6 D7 Timestamp |
Здесь:
EV [событие] - RX указывает на полученный (а не отправленный) кадр;
NUM/ERR [номер кадра] – счетчик полученных кадров (можно сбросить нажатием кнопки Clear в левом верхнем углу рабочего окна модуля); счетчик ведет счет до 9 999 999 кадров, затем обнуляется;
F/F [формат кадра] – SFF кадр стандартного формата (идентификатор имеет длину 11 бит), EFF кадр расширенного формата (идентификатор имеет длину 29 бит);
ID [идентификатор] – значение идентификатора кадра;
LEN [длина] - длина поля данных в байтах (от 0 до 8 байт);
D0 … D7 [байты данных] – значения байтов поля данных кадра от первого до восьмого в зависимости от длины поля данных, если поле пусто, то соответствующий байт данных отсутствует в кадре; если вместо байтов данных выводится сигнатура RTR, то кадр помечен как RTR (не имеет поля данных);
Timestamp [значение отметки времени в микросекундах] – метки времени проставляются драйвером в момент извлечения кадра из регистров CAN-контроллера (позволяет оценить интервал времени между моментами приема кадров);
Например:
RX 1 SFF 0x3e 2 0xfa 0x53 156150429 |
означает, что получен кадр с порядковым номером 1, стандартного формата (SFF – длина идентификатора 11бит) с идентификатором 0x3e, длина данных 2, первый байт данных равен 0xfa, второй – 0x53, отметка времени – 156150429 микросекунд.
Каждые 10 выведенных кадров на экране печатается строка с подписями названий полей фиксированного размера в виде:
EV NUM/ERR F/F ID LEN D0 D1 D2 D3 D4 D5 D6 D7 Timestamp |
Обнаруженные в процессе работы ошибки выводятся на экран асинхронно наряду с посланными и принятыми кадрами:
“ER WTOUT write timeout occured" – кадр не был отослан в течении стандартного временного интервала, ошибка может возникнуть если нет соединения с сетью (например, обрыв кабеля, нет других контроллеров в сети, несоответствие выставленных скоростей передачи у контроллеров в сети)
"ER EWL error warning limit" – Error Warning Level, один из аппаратных счетчиков ошибок CAN-контроллера превысил уровень предупреждения (по умолчанию 96); кроме указаных в предыдущем пункте (WTOUT) причиной возникновения этой ошибки могут быть помехи в сети (согласно спецификации Bosch CAN 2.0);
"ER BOFF bus off" – контроллер отключен от сети из-за ошибок (один из счетчиков ошибок достиг предельного значения 255);
"ER HOVR hardware overrun" – произошло переполнение аппаратной приемной очереди CAN-контроллера (безвозратно потерян один или несколько полученных кадров), причина – большой поток кадров в сети, ЦПУ не успевает вынимать кадры из аппаратной очереди контроллера;
"ER SOVR software overrun" – произошло переполнение программной приемной очереди драйвера (безвозратно потерян один или несколько полученных кадров), причина – большой поток кадров в сети, пользовательское приложение (в данном случае программа CANwise) не успевает вынимать кадры из программной очереди драйвера;
Отправить
подряд три пакета расширенного формата с идентификатором ID=0x7 и
четырьмя байтами данных 0x1 0x2 0x3 0x4 можно командой:
send
0x7:0x1,0x2,0x3,0x4 eff repeat 3
Отправить
пять RTR-пакетов стандартного формата длины 4 байт с идентификатором
0xd можно командой:
sendrx 0xd:4 sff repeat 5
Включить
запись всех отправляемых и принимаемых CAN-пакетов в файл
c:\chai-2.1.0\canmon.log можно командой:
openlog
c:\chai-2.1.0\canmon.log
Закрыть
лог-файл и выключить запись принимаемых отправляемых пакетов можно
командой:
closelog
Перевести
контроллер в режим Listen-Only-Mode, в этом режиме контроллер не
участвует в работе шины (не шлет кадры подтверждения и ошибок) но
только принимает проходящие по сети кадры, этот режим используется
для не возмущающего тестирования CAN-сетей. Команда setlom может
вызываться только, если контроллер находится в режиме
конфигурирования (команды stop/start).
stop
setlom
start
Выключить
режим Listen-Only-Mode, Команда clearlom может вызываться только,
если контроллер находится в режиме конфигурирования (команды
stop/start).
stop
clearlom
start
Установить
аппаратный фильтр контроллера на прием только кадров с
идентификатором 0x1. Команда setfilter может вызываться только, если
контроллер находится в режиме конфигурирования (команды stop/start).
stop
setfilter 0x1 0xffff
start
Аппаратный фильтр
состоит из двух значений: acode - значение фильтра, и amask -
значение маски. Значение фильтра задает идентификатор принимаемых
кадров (в нашем случае 0x1). Маска задает значащие позиции в
значении фильтра, Если бит номер N в маске выставлен в 1, то бит
номер N в значении фильтра должен быть равен биту N в идентификаторе
принимаемого кадра для успешного прохождения этого кадра через
фильтр. Если бит номер N в маске выставлен в 0, то биты номер N в
значении фильтра и идентификаторе принимаемого кадра не
сравниваются. В нашем случае маска равна 0xffff - все биты
идентификатора участвуют в сравнении, что означает, что кадр будет
принят, только если все его биты совпадают с соответствующими битами
значения фильтра, т.е. кадр будет принят, только если его
идентификатор равен 0x1. Текущая версия программы canmon
поддерживает аппаратный фильтр только для 11-битных кадров, действие
фильтра (если он установлен) на 29-битные кадры - непредсказуемо.
Если вам необходимо работать с аппаратным фильтром 29-битных кадров
используйте программу CANwise.
Установить
аппаратный фильтр контроллера на прием только кадров с
идентификаторами от 0x0 до 0x7 включительно.
stop
setfilter
0x0 0xfff8
start
здесь маска 0xfff8 указывает, что первые
три бита идентификатора не участвуют в сравнении, а остальные должны
совпадать с 0. Таким образом, через фильтр будут проходить кадры с
идентификаторами от 0x0 до 2 в степени 3 минус 1 (т.е. 0x7).
Установить
аппаратный фильтр контроллера на прием всех кадров.
stop
setfilter
0x0 0x0
start