CAN-200  1.3.0
Библиотека для работы с платами CAN-200PCI, CAN-200-104PCI и CAN-200PCIe

Библиотека функций предназначена для предоставления доступа к ресурсам плат серии CAN-200PCI, CAN-200-104PCI и CAN-200PCIe.

Условия работы

Установленное оборудование:

Программное обеспечение:

Поддерживаемые операционные системы:

Поддерживаемые платы:

Платы серии CAN-200 содержат два (CAN-200PCI и CAN-200PCIe) или четыре (CAN-200-104PCI) полностью независимых CAN-канала. Каждый CAN-канал построен на CAN-контроллере PCA82C200 фирмы Philips. Этот CAN-контроллер поддерживает на аппаратном уровне обмен данными по протоколу CAN 2.0 part A. В 2002 году CAN-контроллер PCA82C200 снят с производства и в качестве его замены на платы серии CAN-200 устанавливается CAN-контроллер SJA1000, поддерживающий (в режиме PeliCAN) обмен данными по протоколу CAN 2.0 part B active. Этот CAN-контроллер имеет два режима функционирования: BasicCAN и PeliCAN.

Заметки
Данный драйвер не обеспечивает бинарную совместимость с более ранними драйверами плат CAN-200 (драйвер CAN200.sys версии 06/29/2005,0.0.1.04). Для обеспечения совместимости с ранее разработанным программным обеспечением данная библиотека имеет набор функцию повторяющий соответствующий набор функций старого драйвера. Для использования этих функций необходимо раскомментировать строку
//#define __USE__OLD_CAN200_FUNCTIONS__
в файле can200-api.h.
Основы использования библиотеки
  1. Проверить наличие и количество установленных в компьютере плат CAN-200PCI и CAN-200PCIe
    int result;
    int count;
    result = CAN200_GetNumberDevice(&count);
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }
    if (0 == count)
    {
    // Нет установленных плат
    }
  2. Открыть требуемую плату для работы
    HANDLE hCan;
    hCan = CAN200_Open(0);
    if (INVALID_HANDLE_VALUE == hCan)
    {
    // Обработка ошибки
    }
  3. Установить требуемую скорость и режим обмена по шине CAN
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }
  4. Разрешить необходимые прерывания
    // Разрешаем прерывания по приему кадра
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }
  5. Установить фильтр для приема кадров
    // Разрешаем прием всех кадров
    pFilter_t filter;
    filter.Filter[0] = filter.Filter[1] = filter.Filter[2] = filter.Filter[3] = 0xff;
    filter.Mask[0] = filter.Mask[1] = filter.Mask[2] = filter.Mask[3] = 0xff;
    filter.Mode = 0;
    result = CAN200_P_SetInputFilter(hCan, CAN_CHANNEL_1, filter);
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }
  6. Разрешить работу выходных формирователей
    // Разрешаем работы выходных формирователей
    result = CAN200_SetDriverMode(hCan, CAN_CHANNEL_1, 0x1B);
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }
  7. С использованием функций организовать прием и выдачу CAN кадров.
  8. После окончания работы закрыть плату
    result = CAN200_Close(hCan);
    if (CAN200_OK != result)
    {
    // Обработка ошибки
    }

CAN-200 documentation. Copyright (c) 2012 - 2017 Elcus Corporation. All rights reserved.