This documentation is out of date.

The new version of the documentation is here: https://cannylogic.com/docs

Difference between revisions of "CANNY 7, CAN Driver"

From CANNY Wiki
Jump to: navigation, search
[unchecked revision][unchecked revision]
(Driver's registers)
(Driver's registers)
Line 106: Line 106:
 
{|
 
{|
 
|valign="top" style="padding-left:0.5em;"|''Note:''
 
|valign="top" style="padding-left:0.5em;"|''Note:''
|valign="top" style="padding-left:0.5em;"|''При включенном режиме фильтрации CAN драйвер будет  принимать только те сообщения, идентификаторы которых совпадают с указанными в регистрах установки фильтра приема сообщений CAN значениями, игнорируя все остальные.''
+
|valign="top" style="padding-left:0.5em;"|''When filter mode enabled the CAN driver will accept only those messages whose identifiers match values in CAN message receive filter installation registers, ignoring all others.''
 
|}
 
|}
  
Line 131: Line 131:
 
{|border="0" align="left"
 
{|border="0" align="left"
 
|- valign="top"
 
|- valign="top"
|style="padding-left:0.5em;"|Регистр отсутствия активности драйвера CAN
+
|style="padding-left:0.5em;"|CAN driver absence activity register
 
|}
 
|}
 
|valign="top"|
 
|valign="top"|
Line 182: Line 182:
 
{|border="0" align="left"
 
{|border="0" align="left"
 
|- valign="top"
 
|- valign="top"
|style="padding-left:0.5em;"|Регистр готовности буфера передачи данных CAN
+
|style="padding-left:0.5em;"|CAN data buffer readiness register
 
|}
 
|}
 
|
 
|
Line 189: Line 189:
 
|width="70px" style="padding-left:0.5em;"|1
 
|width="70px" style="padding-left:0.5em;"|1
 
|style="padding-left:0.5em;"|=
 
|style="padding-left:0.5em;"|=
|style="padding-left:0.5em;"|буфер передачи данных драйвера CAN свободен и готов к загрузке новых сообщений;
+
|style="padding-left:0.5em;"|CAN driver data buffer is empty and ready to receive new messages;
 
|- valign="top"
 
|- valign="top"
 
|width="70px" style="padding-left:0.5em;"|0
 
|width="70px" style="padding-left:0.5em;"|0
 
|style="padding-left:0.5em;"|=
 
|style="padding-left:0.5em;"|=
|style="padding-left:0.5em;"|буфер передачи данных драйвера CAN не готов.
+
|style="padding-left:0.5em;"|CAN driver data buffer is not ready.
 
|}
 
|}
 
|}
 
|}
  
Регистры приема драйвера CAN позволяют получить доступ к значениям, полученным по шине.
+
CAN driver receiving registers allows access to the values obtained on the bus.
 
{|border="1" style="border-collapse:collapse;" align="left" width="100%"
 
{|border="1" style="border-collapse:collapse;" align="left" width="100%"
 
|- align="center" valign="top"
 
|- align="center" valign="top"
!width="250px"|Адрес
+
!width="250px"|Address
!Возвращаемые значения
+
!Return values
 
|- valign="top"
 
|- valign="top"
 
|
 
|

Revision as of 13:47, 1 June 2016

General Description

Two dedicated external outputs of CANNY 7 controller, located on the 4-pin connector: CAN-H and CAN-L, provided for connection to digital information CAN-bus.

Driver's registers

Below is a description of valid values for registers controlling CAN-bus driver operation.

CAN driver configuration registers allows to set the parameters of the controller as a CAN bus node:

Address Expected values
CAN Mode Setup Register
1...8 = driver activation and CAN-messages transmit/receive speed setting (defined by a special constant of constants directory);
0 = style="padding-left:0.5em;"driver disabled.
CAN Acceptance Filter Identifier Register IDL 0
...
CAN Acceptance Filter Identifier Register IDL 15
0...65535 = set filter value for lower part of CAN-message identifier(bits 0...10 identifier standard format or bits 0...15 expanded identifier format);
CAN Acceptance Filter Identifier Register IDH 0
...
CAN Acceptance Filter Identifier Register IDH 15
0...32767 = set filter value for higher part of CAN-message identifier (bits 16...28 expanded identifier format);
CAN Listen Only Mode Enable Register
1 = CAN messages passive reception mode enabled (listen only);
0 = CAN messages reception and transmission mode enabled (normal);
CAN Acceptance Filter Enable Register
1 = CAN received messages filtering mode enabled;
0 = CAN received messages filtering mode disabled.
Note: In passive receiving CAN messages mode (listen only), unlike normal CAN mode, the driver operates to receive data from CAN-bus, but does not send a confirmation of reception and does not puts network in an error state when it detects such. Thus, the controller remains invisible to the other devices on the bus, does not prove itself. For normal network operation, there must be present at least two devices operating in the normal mode.
Note: When filter mode enabled the CAN driver will accept only those messages whose identifiers match values in CAN message receive filter installation registers, ignoring all others.

CAN driver configuration is defined by a constant predetermined data transmission/reception speed.

Parameter A list of acceptable values
Data transmission/reception speed, Kbit/s 10; 33; 50; 83; 100; 125; 250; 500; 1000

Named constants that represent CAN configuration parameters combination, available to the user in the "CAN Modes" CannyLab constants directory, which can be accessed via function block entry context menu having "constant" type.

CAN driver diagnostics registers allows the user to determine the status of the driver in one or another moment of a diagram execution.

Address Returning Values
CAN driver absence activity register
1 = CAN driver activity is absent, the bus is idle, the data reception is not performed;
0 = CAN activity registered.
CAN Overflow Register
1 = error, CAN buffer is full;
0 = no overflow of the receive buffer.
CAN Receive Error Register
1 = CAN reception error rate exceeds a threshold;
0 = CAN reception error rate below an acceptable threshold.
CAN data buffer readiness register
1 = CAN driver data buffer is empty and ready to receive new messages;
0 = CAN driver data buffer is not ready.

CAN driver receiving registers allows access to the values obtained on the bus.

Address Return values
Регистр наличия принятых данных 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, содержащие один байт данных.

6 9 2 1.png

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

6 9 2 2.png

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

6 9 2 3.png

See also

CANNY 7

CANNY 7, LIN Driver