Revision as of 12:26, 2 December 2015
Общее описание
Два специальных внешних вывода контроллера CANNY 7, расположенные на 4х контактном разъеме: CAN-H и CAN-L, предназначены для подключения к цифровой информационной CAN-bus.
Регистры драйвера
Ниже приведено описание допустимых значений регистров управления работой драйвера CAN.
Регистры конфигурации драйвера CAN позволяют установить параметры работы контроллера в качестве узла шины CAN:
Адрес
|
Ожидаемые значения
|
Регистр установки конфигурации CAN
|
|
1...8
|
=
|
активизация драйвера и установка скорости приема/передачи CAN-сообщений (задается специальной константой из справочника констант);
|
0
|
=
|
драйвер отключен.
|
|
Регистр установки фильтра приема CAN IDL №0
|
...
|
Регистр установки фильтра приема CAN IDL №15
|
|
0...65535
|
=
|
установить значение фильтра для младшей части идентификатора CAN-сообщения (биты 0...10 идентификатора стандартного формата или биты 0...15 идентификатора расширенного формата);
|
|
Регистр установки фильтра приема CAN IDH №0
|
...
|
Регистр установки фильтра приема CAN IDH №15
|
|
0...32767
|
=
|
установить значение фильтра для старшей части идентификатора CAN-сообщения (биты 16...28 идентификатора расширенного формата);
|
|
Регистр установки режима пассивного приема сообщений CAN
|
|
1
|
=
|
включен режим пассивного приема (listen only) сообщений CAN;
|
0
|
=
|
включен режим нормального приема-передачи (normal) сообщений CAN;
|
|
Регистр режима фильтрации приема данных CAN
|
|
1
|
=
|
режим фильтрации принимаемых сообщений CAN включен;
|
0
|
=
|
режим фильтрации принимаемых сообщений CAN отключен.
|
|
Примечание:
|
В режиме пассивного приема сообщений CAN (listen only) в отличие от нормального режима CAN (normal) драйвер выполняет прием данных из CAN-шины, но при этом не отправляет подтверждение их приема и не переводит сеть в состояние ошибки при обнаружении таковой. Таким образом контроллер остается незаметным для остальных устройств на шине, никак себя не проявляя. Для нормальной работы сети, в ней должны находится минимум два устройства работающие в режиме normal.
|
Примечание:
|
При включенном режиме фильтрации CAN драйвер будет принимать только те сообщения, идентификаторы которых совпадают с указанными в регистрах установки фильтра приема сообщений CAN значениями, игнорируя все остальные.
|
Конфигурация драйвера CAN, определяется константой, задающей скорость приема/передачи данных.
Параметр
|
Перечень допустимых значений
|
Скорость приема/передачи данных, Кбит/с
|
10; 33; 50; 83; 100; 125; 250; 500; 1000
|
Именованные константы, определяющие конфигурацию CAN-драйвера, содержатся в разделе «Конфигурация CAN» справочника констант CannyLab, доступ к которому осуществляется через контекстное меню входа функционального блока, имеющего тип «Константа».
Регистры диагностики драйвера CAN позволяют пользователю определить состояние драйвера в тот или иной момент выполнения диаграммы.
Адрес
|
Возвращаемые значения
|
Регистр отсутствия активности драйвера CAN
|
|
1
|
=
|
активность драйвера CAN отсутствует, шина бездействует, прием данных не осуществляется;
|
0
|
=
|
регистрируется активность CAN.
|
|
Регистр переполнения буфера приема CAN
|
|
1
|
=
|
ошибка, буфер CAN переполнен;
|
0
|
=
|
переполнение буфера приема отсутствует.
|
|
Регистр ошибки приема CAN
|
|
1
|
=
|
уровень ошибок приема CAN превысил допустимый порог;
|
0
|
=
|
уровень ошибок приема CAN ниже допустимого порога.
|
|
Регистр готовности буфера передачи данных CAN
|
|
1
|
=
|
буфер передачи данных драйвера CAN свободен и готов к загрузке новых сообщений;
|
0
|
=
|
буфер передачи данных драйвера CAN не готов.
|
|
Регистры приема драйвера CAN позволяют получить доступ к значениям, полученным по шине.
Адрес
|
Возвращаемые значения
|
Регистр наличия принятых данных CAN
|
|
1
|
=
|
в буфере приема драйвера CAN находится полученное сообщение, данное значение появляется в регистре на один цикл выполнения диаграммы сообщая об актуальности данных, находящихся в буфере приема;
|
0
|
=
|
в буфере приема драйвера CAN нет актуальных данных.
|
|
Регистр принятого сообщения CAN IDL
|
|
0...65535
|
=
|
значение младшей части идентификатора полученного CAN-сообщения.
|
|
Регистр принятого сообщения CAN IDH
|
|
0...32767
|
=
|
значение старшей части идентификатора полученного CAN-сообщения.
|
|
Регистр принятого сообщения CAN ERL
|
|
0...ER + 8
|
=
|
значение, равное количеству байт данных в принятом сообщении, признаки EXT и RTR (см. примечание).
|
|
Регистр принятого сообщения CAN D1:D0
|
...
|
Регистр принятого сообщения CAN D7:D6
|
|
0...65535
|
=
|
значения соответствующих байт данных принятого сообщения CAN, по два байта на регистр.
|
|
Примечание:
|
Регистр принятого сообщения CAN ERL, помимо числа байт в принятом сообщении 0...8 в младших битах, содержит в своих старших битах информацию о специальных признаках сообщения: бит 15 - признак EXT и бит 14 признак RTR. Где EXT = 1 при приеме сообщения в расширенном формате, EXT = 0 при стандартном формате сообщения; RTR = 1 при приеме удаленного запроса данных, EXT = 0 при приеме обычного сообщения.
|
Регистры передачи сообщений CAN используются для размещения в буфере передачи драйвера данных, подлежащих отправке.
Адрес
|
Ожидаемые значения
|
Регистр начала передачи CAN
|
|
1
|
=
|
загрузить данные из регистров передачи в буфер передачи драйвера CAN;
|
0
|
=
|
не загружать данные в буфер передачи драйвера CAN.
|
|
Регистр сообщения передачи CAN IDL
|
|
0...65535
|
=
|
значение младшей части идентификатора передаваемого CAN-сообщения.
|
|
Регистр сообщения передачи CAN IDH
|
|
0...32767
|
=
|
значение старшей части идентификатора передаваемого CAN-сообщения.
|
|
Регистр сообщения передачи CAN ERL
|
|
0...ER + 8
|
=
|
значение, равное количеству байт данных в передаваемом сообщении, признаки EXT и RTR (см. примечание).
|
|
Регистр сообщения передачи CAN D1:D0
|
...
|
Регистр сообщения передачи CAN D7:D6
|
|
0...65535
|
=
|
значения соответствующих байт данных передаваемого сообщения CAN, по два байта на регистр.
|
|
Примечание:
|
Регистр сообщения передачи CAN ERL, помимо числа байт в передаваемом сообщении 0...8 в младших битах, содержит в своих старших битах информацию о специальных признаках сообщения: бит 15 - признак EXT и бит 14 признак RTR. Где EXT = 1 при передаче сообщения в расширенном формате, EXT = 0 при стандартном формате сообщения; RTR = 1 при передаче удаленного запроса данных, EXT = 0 при передаче обычного сообщения.
|
Пример функциональной диаграммы отправки данных в шину CAN. Выполняя диаграмму контроллер, с периодичностью 1 раз в 100мс, передает в шину на скорости 125 кБод данные о состоянии трех своих входов, используя сообщения стандартного формата с идентификатором 0x123, содержащие один байт данных.
Пример функциональной диаграммы приема данных из шины CAN. Выполняя диаграмму контроллер, получая по шине сообщения стандартного формата с идентификатором 0x0123, содержащие один байт данных, устанавливает на трех своих выходах состояние в соответствии с полученным значением.
Смотри также
CANNY 7
LIN