Программирование AVR LAWICEL CAN232 версии 3 Sat, October 24 2020  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

LAWICEL CAN232 версии 3 Печать
Добавил(а) microsin   

LAWICEL CAN232 это недорогое и простое в использовании устройство, которое может использоваться вместе с любой операционной системой без специальных драйверов, потому что CAN232 работает как шлюз RS232 - CAN. Просто подключите CAN232 к любому PC, работающему под DOS, Windows95/98/ME, NT4/2000/XP/Vista/Windows 7, Mac или Linux, и "общайтесь" с ним в текстовом формате стандартного кода ASCII. LAWICEL CAN232 может также с успехом использоваться со встраиваемыми системами на основе микроконтроллера, или с малогабаритными одноплатными промышленными компьютерами, которым нужно получить простое соединение с CAN без внесения изменений в существующее железо.

CAN232 обрабатывает как 11-битный формат ID (standard), так и 29-битный (extended), содержит всроенные очереди FIFO, расширенную информацию о статистике и ошибках, и просто запускается несколькими командами. Размеры CAN232 невелики (68mm x 31mm x 16mm) благодаря современным технологиям производства печатных плат и монтажу миниатютрных компонентов SMD на обоих сторонах платы. Основные компоненты CAN232 - микроконтроллер Atmel AVR ATMEGA162 и CAN-контроллер Philips SJA1000 [2], благодаря чему достигается очень гибкая обработка небольших пакетов фреймов CAN на высокой скорости шины.

CAN232 может быть настроен с учетом Ваших потребностей преобразования трафика CAN в RS232 (например, чтобы адаптировать готовые изделия с интерфейсом RS232 к шине CAN, которые слишком дороги для замены оборудования, или когда нужно увеличить длину линка RS232, и т. п.). Этот документ (перевод руководства [1]) третью версию CAN232, которую можно обновить с помощью загрузчика (версия V1324 CAN232, или более новая). Оригинальные версии 1 и 2 руководства CAN232 можно найти на сайте www.can232.com. Некоторые команды в этом руководстве не работают в старой оригинальной версии, и также производительность, описанная здесь (скорости, буферы и т. д.), относится к новой версии 3.

[Инсталляция]

Со стороны RS232 адаптера (разъем DB9 мама) должен быть подключен кабель напрямую к COM-порту PC, или в него должен быть подключен кабель, идущий напрямую к системе хоста, работающего через RS232 (хостом кроме PC может быть любая встраиваемая система с микроконтроллером). Со стороны CAN адаптера (разъем DB9 папа) со стандартной общепринятой цоколевкой CAN in Automation (CiA) профиля DS102.

CAN232 pinout DB9 CAN

Адаптер CAN232 должен быть запитан со стороны CAN напряжением от 6 до 16V DC (постоянный ток). Адаптер защищен от ESD, и ошибочная полярность питания не повредит CAN232, в этом случае источник питания будет замкнут накоротко (так работает защита CAN232). Адаптер CAN232 требует тока 40 .. 100 mA, в зависимости от того, как загружена шина CAN (например, сколько на ней присутствует узлов, с какой скоростью передаются пакеты, и т. д.). Ниже на рисунке показана схема подключения CAN232.

CAN232 connecting

[Тестирование CAN232]

Тест заключается в подключении CAN232 к COM-порту PC, подаче питания и выдаче нескольких настроечных инструкций (пример команд см. ниже). Когда CAN232 получает питание, 4 светодиода LED (красный, желтый и два зеленых) будут часто мигать в зависимости от настроенной скорости RS232. Если скорость RS232 установлена на 57600 baud (установлено по умолчанию при поставке), то все 4 светодиода моргнуть 3 раза (чем выше скорость RS232, тем меньше миганий, для дополнительной информации см. команду U).

После этого запустите утилиту Windows Terminal (или любую другую программу для организации терминала), и выполните настройку подключения к COM-порту 57600 бод, 8 бит данных, no parity, 1 стоп-бит (если CAN232 настроен на 57600 baud), и установите локальное эхо, чтобы можно видеть, что вводите, и также поставьте галочку, чтобы добавлялся перевод строки, когда приходит символ конца строки. И наконец, убедитесь, что выключено аппаратное и программное управление потоком (handshaking), и не добавляется LF (ASCII 10) при уходящем символе CR (ASCII 13). Убедитесь, что подключились к COM-порту CAN232, нажмите клавишу ENTER, чтобы перейти на новую строку, затем введите V и ENTER. В ответ будет выведено Vhhss, где hh это версия аппаратуры, и ss это версия ПО (например, V1335). 

Примечание: адаптер CANable [3], который также работает по протоколу CAN232, выдаст на команду V следующий ответ:

1205aa6 https://github.com/normaldotcom/cantact-fw

После этого можно считать, что связь с адаптером CAN232 установлена, и можно настроить скорость CAN и открыть порт CAN, отправлять и принимать кадры. Обратите внимание, что зеленый LED возле коннектора CAN показывает, что фрейм CAN успешно отправлен или принят адаптером CAN232, и зеленый LED возле коннектора RS232 мигает, когда принимаются данные RS232 (в новой версии 3). 

Обратите внимание, что для отправки и приема фреймов CAN в сети должно быть как минимум 2 узла, и CAN232 работает как один из этих узлов, если не настроен в режим "только прослушка" (listen only mode). Также кабель шины CAN должен быть терминирован на обоих концах резисторами 120 Ом, подключенными между сигналами CANL и CANH. Сигналы CANL и CANH должны быть разведены витой парой. CAN232 настроен для приема всех фреймов, потому что для тестирования не требуется никаких фильтров. CAN232 также можно проверить примерами программ, доступных на сайте www.can232.com.

Пример проверки CAN232 (здесь [CR] означает нажатие клавиши Enter или символ возврата каретки):

V[CR]       (в ответ будет выдана версия, например V1324[CR])
S4[CR]      (настраивается скорость CAN 125 кбит)
O[CR]       (открывает канал CAN, должен загореться желтый LED)
t1001AA[CR] (посылает фрейм с ID=0x100 hex, DLC=1 и данными 0xAA, один байт)

[Ограничения CAN232]

Имеются ограничения, сколько фреймов CAN может передать и принять CAN232 в единицу времени. Текущая версия (V13nn) была протестирована на отправке 500 стандартных (ID 11 бит) фреймов с 8 байтами данных на скорости 125 килобит CAN и скорости 115200 baud RS232. Очевидно, что узким горлом является сторона RS232 и микроконтроллер, они не могут передать большее количество фреймов за секунду. Поэтому CAN232 предназначен для использования преимущественно в сетях с низким трафиком, или работающим на низких скоростях CAN (много ниже 125 килобит). Конечно, можно настроить скорость 1 мегабит, но на таких скоростях нельзя полностью загрузить шину, или должен быть установлен фильтр, который пропускает только некоторые фреймы.

Буферы. В CAN232 есть программные очереди CAN FIFO и для передачи, и для приема. FIFO передачи могут обработать 8 фреймов (standard или extended), а FIFO приема может обработать 32 фрейма (standard или extended). Также в CAN232 есть только один небольшой буфер RS232, поэтому может быть обработана одновременно только одна или две команды. Это значит, что перед отправкой следующей команды в CAN232 необходимо подождать ответа от CAN232 (OK[CR] или Error[BELL]).

[Драйвер, разработка взаимодействия с CAN232]

CAN232 не поставляется с каким-либо драйвером, облегчающим доступ к функциям CAN232. Многие коммерческие средства разработки (такие как Visual Basic, Delphi и т. д.) предоставляют библиотеки для доступа к асинхронному COM-порту (RS232 ASYNC LIB), и можно довольно просто написать программу, которая будет взаимодействовать с адаптером CAN232 по текстовому протоколу. Лучше всего сделать поток, который будет обрабатывать весь обмен с CAN232, и выводить все сообщения в очереди FIFO, или mail-боксы, в зависимости от Вашего приложения.

Настоятельно рекомендуется использовать новую функцию "AUTO POLL/SEND" новой версии CAN232 вместо старых команд P и A. См. описание команды X для дополнительной информации, как включить эту новую функцию, и как запретить старые функции (это поведение запоминается в EEPROM, и вступит в действие при следующем включении питания, так что нет необходимости его настраивать каждый раз заново). Новая функция также меняет ответ на команды t и T: вместо простого ответа [CR], когда отправляется фрейм, CAN232 отвечает z[CR] или Z[CR], в зависимости от команды. Такое поведение сделано для того, чтобы упростить парсинг ответов от CAN232 (например, для распознавания, что команда передачи прошла успешно, и CAN232 отправил фрейм).

Рекомендуемый алгоритм взаимодействия:

1. Всегда начинайте каждую сессию (когда запускается Ваша программа) с отправки 2 .. 3 [CR], чтобы очистить любую предыдущую команду или, или символ, находящийся в очереди CAN232 (часто при включении питания в очередь попадают ошибочные символы, или в очереди могут остаться символы от предыдущей сессии).

2. Проверьте версию ПО адаптера командой V (это даст возможность убедиться в наличии коммуникации с адаптером на корректной скорости RS232).

3. Настройте скорость CAN командой s или S.

4. Откройте порт CAN командой O, после этого CAN232 готов для отправки и приема фреймов CAN.

5. Отправляйте фреймы командой t или T, ожидайте подтверждения отправки, чтобы удостовериться, что пакет попал в очередь передачи CAN FIFO, или определить, что очередь переполнена.

6. Приходящие снаружи фреймы шины CAN будут переданы через RS232, или будут помещены в очередь FIFO, если буфер RS232 заполнен. 7. Периодически отправляйте команду F чтобы проверить, были ли какие-нибудь ошибки (например, с интервалом 100 .. 500 мс).

7. При возникновении большого количества ошибок после отправки команд в адаптер CAN232, пошлите 2 .. 3 [CR] для очистки буфера, и затем пошлите команды снова. Если такие ситуации происходят постоянно, то оповестите пользователя или приложение об ошибке обмена (возможно, что поврежден трансивер RS232 или пропало питание адаптера).

На сайте www.can232.com предоставлены программы примеров и бесплатная библиотека RS232 LIB для Delphi. Можете использовать эти программы без ограничений, или модифицировать их под свои нужды.

[Информация о версии]

Номер версии CAN232 состоит из 2 версий, одна для аппаратуры (hardware, отражает изменения в схеме адаптера), и другая для ПО (firmware, отражает изменения в функциях). Эти 2 версии комбинируются в строку из 5 символов, начинающуюся с символа V, затем идут 2 символа hardware, и в конце 2 символа firmware). Например, если CAN232 выдал строку версии V1324, то это значит, что версия hardware 1.3, и версия firmware 2.4. При обновлении аппаратуры увеличивается версия hardware, и при исправлении багов или добавлении новых функций увеличивается версия firmware.

Чтобы убедиться, поддерживает ли Ваш адаптер CAN232 команды из этого руководства, проверьте номер версии адаптера отправкой команды V CAN232. Как это работает, и в какой версии доступна команда, см. описание команд - каждая команда в этом руководстве снабжена списком номеров версий, в которых эта команда работает (из-за того, что разработчики постоянно расширяют функционал, добавляются новые команды, и они становятся доступны в более новых версиях firmware).

[ASCII-команды CAN232]

Замечание: все команды CAN232 должны заканчиваться символом [CR] (код ASCII 13), и все команды чувствительны к регистру символов (CASE sensitive). В случае ошибки команды (ERROR) адаптер CAN232 передаст в ответ символ звонка [BELL] (код ASCII 7). В случае нормального завершения команды (OK) будет передан символ [CR], перед которым может присутствовать какая-нибудь информация, зависящая от команды.

Настройка стандартных скоростей CAN, где n указывается в диапазоне 0 .. 8. Эта команда активна только тогда, когда канал CAN закрыт (см. команды O, L, C).

S0 настраивает 10 килобит/сек
S1 настраивает 20 килобит/сек
S2 настраивает 50 килобит/сек
S3 настраивает 100 килобит/сек
S4 настраивает 125 килобит/сек
S5 настраивает 250 килобит/сек
S6 настраивает 500 килобит/сек
S7 настраивает 800 килобит/сек
S8 настраивает 1 мегабит/сек

Пример настройки CAN на скорость 125 Kbit:

S4[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Настраивает BTR0/BTR1 CAN-контроллера SJA1000, где xx и yy шестнадцатеричные (HEX) значения. Эта команда активна только когда канал CAN закрыт (см. команды O, L, C).

xx HEX-значение BTR0
yy HEX-значение BTR1

Пример установки BTR0=0x03 и BTR1=0x1C, что соответствует скорости 125 Kbit:

s031C[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Откроет канал CAN в нормальном режиме (для передачи и приема). Эта команда активна только когда канал CAN закрыт (см. команду C), и она запускается после того, как была настроена скорость CAN командой S или s.

Пример:

O[CR]

После этой команды канал CAN открывается, и загорается желтый LED. В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Откроет канал CAN только для прослушки (listen only mode, работает только прием), передача недоступна, т. е. после открытия L не работают команды t, T, r и R. Команда L активна только когда канал CAN закрыт (см. команду C), и она запускается после того, как была настроена скорость CAN командой S или s.

Пример:

L[CR]

Канал CAN открывается, желтый LED мигает.

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Закроет канал CAN. Эта команда активно только если канал CAN открыт (см. команды O, L).

Пример:

C[CR]

Закрывает канал, желтый LED гаснет.

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Передает стандартный (standard, ID 11 бит) фрейм CAN. Эта команда активна только если CAN232 открыт в нормальном режиме (см. команду O).

iii идентификатор ID в HEX-формате (000 .. 7FF)
l длина данных DLC (0 .. 8)
dd значения байт в HEX-формате (00 .. FF). Количество пар dd должно соответствовать длине данных, иначе произойдет ошибка.

Пример 1, отправка стандартного (11 бит ID) фрейма CAN, ID=0x100, передаются 2 байта 0x11 и 0x33:

t10021133[CR]

Пример 2, отправка стандартного (11 бит ID) фрейма CAN, ID=0x20, без полезной нагрузки (0 байт):

t0200[CR]

Если функция Auto Poll запрещена (по умолчанию), CAN232 ответит символом [CR] для OK или [BELL] для ERROR. Если функция Auto Poll разрешена (см. команду X) CAN232 ответит z[CR] для OK или [BELL] для ERROR.

Передача расширенного (extended, с идентификатором ID 29 бит) фрейма CAN. Эта команда активна только если CAN232 открыт в нормальном режиме (см. команду O).

iiiiiiii идентификатор ID в HEX-формате (00000000-1FFFFFFF)
l длина данных DLC (0 .. 8)
dd значения байт в HEX-формате (00 .. FF). Количество пар dd должно соответствовать длине данных, иначе произойдет ошибка.

Пример 1, отправка extended фрейма, ID=0x100, 2 байта 0x11 и 0x33:

T0000010021133[CR]

Если функция Auto Poll запрещена, то ответ CAN232 возвратит [CR] для OK или [BELL] для ERROR. Если функция Auto Poll разрешена (см. команду X), то CAN232 ответит Z[CR] для OK или [BELL] для ERROR.

Передает стандатный (ID 11 бит) фрейм RTR. Эта команда активна только если CAN232 открыт в нормальном режиме (см. команду O).

iii идентификатор ID в HEX-формате (000 .. 7FF)
l длина данных DLC (0 .. 8)

Пример отправки стандартного фрейма RTR, ID=0x100, DLC=2 (2 байта):

r1002[CR]

Если функция Auto Poll запрещена, то ответ CAN232 возвратит [CR] для OK или [BELL] для ERROR. Если функция Auto Poll разрешена (см. команду X), то CAN232 ответит z[CR] для OK или [BELL] для ERROR.

Передает расширенный (ID 29 бит) фрейм RTR. Эта команда активна только если CAN232 открыт в нормальном режиме (см. команду O).

Пример отправки расширенного фрейма RTR, ID=0x100, DLC=2 (2 байта):

R000001002[CR]

Если функция Auto Poll запрещена, то ответ CAN232 возвратит [CR] для OK или [BELL] для ERROR. Если функция Auto Poll разрешена (см. команду X), то CAN232 ответит z[CR] для OK или [BELL] для ERROR.

Опрашивает входящий FIFO на наличие в нем фреймов CAN (одиночный опрос). Эта команда активна только если CAN232 открыт.

Замечание: эта команда запрещена в новой функции AUTO POLL/SEND начиная с версии V1220. В новых версиях, если эта команда была использована, то CAN232 возвратит [BELL].

Пример:

P[CR]

Опросит один фрейм CAN из очереди FIFO. Вернет фрейм CAN с таким же форматированием, как при передаче, с завершающим [CR] для OK. При отсутствии ожидающих фреймов вернет только [CR]. Если канал CAN не открыт, то вернет [BELL]. Если разрешена функция TIME STAMP, то вернет метку времени в миллисекундах после последнего байта данных (перед [CR]). Для дополнительной информации см. команду Z.

Опрашивает входящий FIFO на наличие в нем фреймов CAN (все ожидающие фреймы). Эта команда активна только если CAN232 открыт.

Замечание: эта команда запрещена в новой функции AUTO POLL/SEND начиная с версии V1220. В новых версиях, если эта команда была использована, то CAN232 возвратит [BELL].

Пример:

A[CR]

Возвратит все фреймы с таким же форматированием, как они были отправлены, отделенные друг от друга [CR]. Когда все фреймы были опрошены, вывод завершится A и [CR] для OK. Если в FIFO нет ожидающих фреймов, то вернет только A и CR. Если канал CAN не открыт, то вернет [BELL]. Если разрешена функция TIME STAMP, то вернет метку времени в миллисекундах после последнего байта данных (перед [CR]). Для дополнительной информации см. команду Z.

Прочитает флаги статуса. Эта команда активна только если CAN232 открыт.

Пример:

F[CR]

Будет возвращено 2 символа в формате BCD hex с завершающим [CR] для OK. Если канал CAN не открыт, то будет возвращен [BELL]. Эта команда также погасит красный светодиод ошибки (RED Error LED). Пример возврата: F01[CR], что означает переполнение очереди FIFO передачи.

Назначение бит флагов:

Бит 0: переполнена очередь приема CAN (receive FIFO queue full).
Бит 1: переполнена очередь передачи CAN (transmit FIFO queue full).
Бит 2: Error warning (EI), см. даташит SJA1000.
Бит 3: Data Overrun (DOI), см. даташит SJA1000.
Бит 4: не используется.
Бит 5: Error Passive (EPI), см. даташит SJA1000.
Бит 6: Arbitration Lost (ALI), см. даташит SJA1000*.
Бит 7: Bus Error (BEI), см. даташит SJA1000**.

Примечания:

* Потеря арбитража шины не приводит к мерцанию красного светодиода.
** Bus Error приведет к постоянному свечению красного светодиода.

Включает/выключает функцию Auto Poll/Send для принимаемых фреймов. Эта команда активна только если канал CAN закрыт. Настроенное состояние сохраняется в EEPROM (запоминается), и будет восстановлено при следующем включении питания CAN232. По умолчанию (в момент поставки) эта функция выключена, чтобы сохранить совместимость с уже написанными программами для старых версий CAN232.

Если функция Auto Poll/Send, то это запретит команды P и A, и поменяется ответ на команды t и T (см. описание этих команд). Настоятельно рекомендуется включить эту функцию и обновить систему, заменив старый механизм опроса. Это позволит сэкономить на полосе пропускания и повысить количество фреймов CAN в единицу времени, которое может отправить CAN232. Когда эта функция включена, фреймы CAN будут отправляться через RS232, как только был открыт канал CAN.

Пример 1, ВЫКЛючение (OFF) функции Auto Poll/Send (возврат к состоянию по умолчанию):

X0[CR]

Пример 2, ВКЛючение (ON) функции Auto Poll/Send:

X1[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Настройка режима фильтрации. По умолчанию CAN232 работает в dual filter mode (0), и это состояние обеспечивает обратную совместимость с предыдущими версиями CAN232. Сейчас есть возможность перевести CAN232 в режим single filter mode, эта установка запомнится в EEPROM и будет восстановлена при следующем запуске (включении питания CAN232).

Эту команду можно отправить только если CAN232 инициализирован, но еще не открыт.

Пример 1, установка dual filter mode (возврат к состоянию по умолчанию):

W0[CR]

Пример 2, установка single filter mode:

W1[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Установит регистр Acceptance Code (регистр ACn контроллера SJA1000). Эта команда активна только если CAN232 инициализирован, но еще не открыт.

xxxxxxxx HEX-значение Acceptance Code, LSB идет первым, AC0, AC1, AC2 и AC3 (см. даташит Philips SJA1000 [2]).

Пример установки Acceptance Code в 0x00000000. Это состояние по умолчанию, оно позволяет принимать все фреймы (отсутствие фильтрации):

M00000000[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Установит регистр Acceptance Mask (регистр AMn контроллера SJA1000). Эта команда активна только если CAN232 инициализирован, но еще не открыт.

xxxxxxxx HEX-значение Acceptance Mask, LSB идет первым, AM0, AM1, AM2 и AM3 (см. даташит Philips SJA1000 [2]).

Пример установки в Acceptance Mask значения маски 0xFFFFFFFF. Это состояние по умолчанию, оно позволяет принимать все фреймы (отсутствие фильтрации):

mFFFFFFFF[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Настройка регистров Acceptance Code и Acceptance Mask. Оба этих регистра работают совместно, и могут фильтровать 2 группы сообщений (см. [2]). Таким способом по 11-битному ID можно фильтровать группы размером до одного идентификатора, однако по 29-битному ID можно фильтровать только группу идентификаторов. Ниже показан пример настройки фильтра, который обеспечивает прием фреймов только с идентификаторов от 0x300 до 0x3FF включительно.

Команда Пояснения
M00006000[CR]
m00001FF0[CR]
AC0=0x00, AC1=0x00, AC2=0x60 и AC3=0x00
AM0=0x00, AM1=0x00, AM2=0x1F и AM3=0xF0

Первая команда настраивает фильтр 2 на совпадение по 2 битам, и если они не установлены (этот случай соответствует 0x3nn). Вторая команда указывает, что nn разрядов могут быть любыми (don't care), так что они могут быть от 00 до FF. Однако пояснения в примере не так-то просто читать, потому что они не очень удобно расположены в памяти. Фильтр 1 выключен (он использует AM0, AM1 и половинку AM3). Последний байт маски также должен быть 0xE0 вместо 0xF0, тогда мы фильтруем бит RTR и фреймы RTR приниматься не будут.

Настраивает UART на новую спорость из стандартного ряда скоростей, здесь n может быть 0 .. 6. Эта команда активна только если канал CAN не открыт. Настроенное значение сохраняется в EEPROM, и восстанавливается при следующем включении питания CAN232.

U0 • настройка 230400 baud (не гарантируется, что будет работать)
U1 •• настройка 115200 baud
U2 ••• настройка 57600 baud (установлено по умолчанию при поставке)
U3 •••• настройка 38400 baud
U4 ••••• настройка 19200 baud
U5 •••••• настройка 9600 baud
U6 ••••••• настройка 2400 baud

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

Пример настройки скорость 115200 бод:

U1[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Выведет номер версии CAN232, hardware и firmware (см. описание выше). Эта команда активна всегда, по ней удобно тестировать связь с CAN232.

Пример:

V[CR]

Возвратит V и 2 символа (2 байта) в кодировке BCD, в которых закодирована версия hardware, и 2 байта в кодировке BCD, где закодирована версия firmware, с завершающим [CR] для OK. Например: V1013[CR]

Выведет серийный номер CAN232. Эта команда активна всегда.

Пример:

N[CR]

Возвратит N и 4 байта серийного номера с завершающим [CR] для OK. Например: NA123[CR]

Обратите внимание, что серийный номер может содержать как цифровые, так и буквенные значения ASCII. Серийный номер также напечатан на CAN232 для быстрого получения информации. Серийный номер может, например, использоваться в программе для идентификации CAN232, чтобы программа знала, что она настроена правильно (для параметров, сохраненных в EEPROM).

Включает/выключает метку времени (Time Stamp) только для принимаемых фреймов. Эта команда активна только если канал CAN закрыт. Настройка будет сохранена в EEPROM, восстанавливается при следующем включении питания CAN232. Эта команда должна использоваться только тогда, когда действительно необходимо изменить поведение вывода принимаемых пакетов. По умолчанию функция метки времени выключена, чтобы сохранить совместимость со старыми программами, написанными для CAN232.

Когда функция включена, добавляются 4 байта при выводе ответа на команды A и P, или когда разрешена функция Auto Poll/Send. Когда используется Time Stamp, каждому принятому сообщению добавляется метка времени в миллисекундах, обозначающая момент приема CAN-сообщения адаптером CAN232. Эта возможность может использоваться в приложениях, привязанных к реальному времени, чтобы знать интервалы между приходом сообщений. Имейте в виду, что использование этой функции уменьшает допустимую общую полосу пропускания канала CAN - RS232, потому что к выводу каждого сообщения добавляются дополнительные 4 байта.

Если функция Time Stamp выключена, приходящие фреймы выводятся примерно так (стандартный фрейм, ID=0x100 и 2 байта полезной нагрузки):

t10021133[CR]

Если функция Time Stamp включена, приходящие фреймы выводятся примерно так (стандартный фрейм, ID=0x100 и 2 байта полезной нагрузки):

t100211334D67[CR]

Здесь последние 4 байта равны 0x4D67, метка времени (Time Stamp) для этого сообщения в миллисекундах (формат HEX). Таймер в CAN232 стартует от нуля 0x0000 и растет до значения 0xEA5F, и потом снова переходит в 0x0000. Это соответствует отсчету 60000 мс (т. е. 1 минута, что более чем достаточно для большинства систем).

Пример 1, выключение функции Time Stamp (возврат к состоянию по умолчанию):

Z0[CR]

Пример 2, включение функции Time Stamp:

Z1[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

Функция Auto Startup, автостарт при включении питания. Команда работает только когда канал CAN открыт. Используйте эту функцию, когда настроена скорость CAN и фильтры, и необходимо автоматически применять эти функции при включении питания CAN232 (автонастройка и автозапуск). Хорошо подходит для организации логгинга, или когда недоступен мастер RS232, чтобы выполнить первоначальную настройку CAN232.

Примечание: можно использовать только Auto Send (см. команду X), так что фреймы CAN отправляются через RS232 автоматически, когда они приняты на стороне CAN. Опрос не допускается.

Пример 1, выключит функцию Auto Startup (по умолчанию). При следующем включении питания CAN232 работает как обычно, ожидая поступления команд для настройки:

Q0[CR]

Пример 2, включит функцию Auto Startup в нормальном режиме. Фильтры и настройки сохраняются, и будут использоваться при следующем включении питания:

Q1[CR]

Пример 3, включит функцию Auto Startup в режиме прослушки (listen only). Команды t, T, r и R становятся недоступными! Фильтры и настройки сохраняются, и будут использоваться при следующем включении питания:

Q2[CR]

В ответ на команду CAN232 вернет [CR] для OK или [BELL] для ERROR.

[Ссылки]

1. LAWICEL CAN232 Version 3 Manual site:can232.com.
2. SJA1000 site:nxp.com.
3CANable AZSMZ-USB2CAN.

 

Добавить комментарий


Защитный код
Обновить

Top of Page