9.3 Синхронизация
Используются два типа синхронизации – жесткая синхронизация и пересинхронизация. Жесткая синхронизация происходит один раз при старте кадра. Повторная синхронизация происходит внутри кадра.
- Жесткая синхронизация берется при переходе из recessive в dominant состояние стартового бита. Время бита перезапускается по этому фронту.
- пересинхронизация берется когда фронта бита не происходит в течение сегмента синхронизации. Один из фазовых сегментов слишком длинный или короткий чем величина фазовой ошибки в сигнале. Максимальное значение которое может быть использовано определено в параметре CiCFG1<SJW>.
Длинна фазового сегмента 1 и фазового сегмента 2 может быть изменена в зависимости от разности генераторов передающего и принимающего узла. Повторная синхронизация компенсирует фазовые сдвиги различных генераторов используемые передающими и принимающими узлами.
Удлинение бита – если передающий узел имеет более медленный генератор чем принимающий узел, следующий срез и указатель выборки могут быть задержаны удлинением фазового бита 1.
Сокращение бита – если передающий узел имеет более быстрый генератор чем принимающий узел, следующий срез и указатель выборки могут быть ускорены сокращением фазового бита 1.
Ширина прыжка синхронизации (SJW) – биты SJW<1:0> в регистре конфигурации скорости передачи (CiCFG1<7:6>) определяет ширину прыжка синхронизации ограничивающую величину удлинения или сокращения интервалов фазового сегмента 1 или фазового сегмента 2. Этот сегмент не должен быть длиннее, чем время фазового сегмента 2. Ширина может быть 1-4 TQ.
9.4 Подсчет времени передачи бита
Шаги которые необходимо сделать перед программной конфигурацией времени передачи бита для ECAN модуля описаны ниже, с примерами.
9.4.1 Шаг 1: Выбор частоты ECAN модуля
Для выбора частоты модуля (Fcan) используйте биты CiCTRL1<CANCKS>.
Если CANCKS=0 Fcan=Fosc
Если CANCKS=1 Fcan=Fcy
Примечание: Fcan не должно быть больше 40 МГц
9.4.2 Шаг 2: Подсчет частоты временного кванта (Ftq)
Выберите скорость CAN шины (Fbaud).
Выберите количество временных квантов во времени передачи бита, основываясь на ваших системных запросах.
Ftq=N*Fbaud
Примечание1: общее число временных квантов в номинальном времени передачи бита может быть запрограммировано между 8 TQ и 25 TQ. Поэтому Ftq лежит от 8 до 25 Fbaud.
Примечание2: убедитесь что Ftq имеет целое число Fbaud . Если нет, то генератор входной частоты или скорость должны быть изменены.
9.4.3 Шаг 3: Расчёт предделителя скорости обемена (CiCFG2<BRP>)
Предварительный делитель берется из равенства
CiCFG1(BRP)=(Fcan/(2*Ftq))-1
9.4.4 Шаг 4: Выбор индивидуального сегмента.
Индивидуальные сегменты выбираются используя регистр CiCFG2.
Время бита= Синхронизирующий сегмент+сегмент распространения +фазовф сегмент 1 + фазовый сегмент 2.
Примечание 1: (Сегмент распространения +фазовый сегмент 1) должны быть болше чем или равны фазовому сегменту 2.
Примечание 2: Фазовый сегмент 2 должен быть больше чем ширина прижка синхронизации.
Пример 8: Пример вычисления времени передачи бита
• Шаг 1: Выбираем тактовую частоту модуля ECAN.
- Если FOSC = 80 MHz, CiCTRL1<CANCKS> должен быть установлен в ‘1’.
Таким образом, FCAN = Fosc/2 = 40 MHz.
• Шаг 2: Подсчёт частоты временного кванта.
- Если FBAUD = 1 Mbps, и количество временных квантов N = 20, тогда FTQ = 20 MHz.
• Шаг 3: Расчёт предделителя скорости обмена
- CiCFG1<BRP> = ( 40000000/(2 * FTQ) ) - 1 = 1 - 1 = 0.
• Шаг 4: Выбор индивидуального сегмента bittime.
- Сегмент синхронизации = 1TQ (постоянный).
- Основываясь на характеристике системы, предположим что задержка распространения =5TQ.
- Предположим, что типовая точка должен быть в 70 % Номинального BitTime.
Сегмент фазы 2 =30% номинального bittime = 6 TQ.
-Тогда сегмент фазы 1 = 20 TQ - (1 TQ + 5 TQ + 6 TQ) = 8 TQ.
Пример 9: Пример кода программы для настройки параметров скорости передачи
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.