Расчет синхронизации шины CAN - PullRequest
0 голосов
/ 30 января 2019

Я немного путаюсь с расчетом синхронизации битов шины CAN, поэтому из таблицы данных для тактовой частоты 250 кбит / с и тактовой частоты 8 МГц я рассчитал следующие значения:

SJW=3, BRP=0, SEG1PH = 6, PRSEG=5, PHSEG2=4.

Однако, когда я использую программу калькулятора синхронизации битов шины CAN,дает такие результаты:

SJW =1; BRP =2; PHSEG1 = 1; PHSEG2 = 2; PROPSEG = 4;

Это совершенно разные результаты, и кажется, что оба дают мне около 50 кбит / с вместо 250 кбит / с.Есть ли простой способ рассчитать эти ограничения?Или более понятное пошаговое руководство по расчетам, чем то, что есть в Интернете или в таблице данных, которые являются довольно сложными и требуют, чтобы вы сами определили некоторые параметры, такие как SJW!Спасибо.

1 Ответ

0 голосов
/ 31 января 2019

Я не использовал контроллеры PIC CAN, но в целом это выглядит примерно так:

Фаза seg 2 по отношению к общему количеству tq дает местоположение точки выборки.Независимо от того, какое приложение CAN вы используете, я бы посоветовал использовать стандартные рекомендации CANopen, для которой выборочная точка составляет 87,5%, с приемлемыми местоположениями в диапазоне от 85% до 90% (это более снисходительно при самых высоких скоростях передачи).

То есть 1 - тк PHSEG2 / тк всего должно быть около 87,5%.В вашем случае 1 - 4/15 = 0.73.Вам нужно исправить это, увеличив размер других сегментов или уменьшив размер фазы seg 2. Это всегда немного проб и ошибок.

Что касается скорости передачи данных, вы, вероятно, получите некоторую формулу в соответствии со строкамииз:

clock / (tq total * baudrate) = prescaler

Ваш конкретный CAN-контроллер даст точную формулу для этого конкретного оборудования.Имейте в виду, что источник синхронизации, это необработанный генератор, это системные часы, это что-то еще?(PIC печально известны тем, что используют различные системные делители тактовых импульсов, и в этом случае вам может потребоваться регулировка PLL.)

SJW не влияет на скорость передачи данных.Это разрешенная ширина повторной синхронизации, используемая для несоответствий скорости передачи данных, в основном, при более высоких скоростях передачи данных.На скорости 250 кбит / с SJW = 1 должно работать нормально.

...