28551

[i] Как рассчитать коэффициенты BITTMNG для CAN в МК компании "Миландр"


Как рассчитать коэффициенты BITTMNG для CAN?

Все устройства CAN должны работать на одной скорости. Стандарт сети CAN не регламентирует физический уровень, поэтому сигнал от устройств на шине может приходить в разные моменты времени, в связи с чем, в каждом CAN-контроллере имеется блок цифровой фазовой автоподстройки. Этот блок разбивает битовый интервал на сегменты, которые состоят из квантов времени TQ (битовый интервал - сумма всех сегментов, по стандарту от 8 TQ до 25 TQ). Регистр CAN_BITTMNG как раз и позволяет задать значения этим сегментам в квантах времени, помимо задания делителя и режима выборки, и позволяет не только синхронизировать все устройства на шине, но и внести необходимые данные для задания определенной скорости работы.

Общая формула для скорости работы CAN следующая:

S = HCLK/(N*(DIV+1)),
где HCLK - частота работы МК,
N - сумма всех сегментов в квантах времени, 
DIV - делитель, задающийся также в регистре CAN_BITTMNG.

Пример: Если необходимо установить скорость работы в 1 Мб/с, то нужно внести следующие значения в регистр CAN_BITTMNG, например, для частоты МК в 80 МГц:

MDR_CAN1→BITTMNG = (7 « 0) Делитель тактовой частоты (8 – 1) | (1 « 16) Длительность сегмента распространения (2 TQ)

Сумма всех сегментов равна 10 TQ и удовлетворяет требованиям стандарта, а делитель задали равным 7. Тогда S = 80 МГц/(10*(7+1)) = 1 Мб/с. 

Таким образом, необходимо подбирать значения делителя и сегментов согласно частоте МК.

Документация

Теги

Был ли ответ полезным?