|
|
  |
STM32F105 CAN/USB протокол обмена, протокол обмена компьютеров Sirius, Orion |
|
|
|
Aug 3 2015, 18:19
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Golikov A. @ Aug 1 2015, 15:05)  Кан посылка по 8 байт и адрес с подтверждением доставки. Так и шлите в комп и так принимайте обратно, и добавте статус пересылки, чтобы обеспечить контроль доставки, ну и контрольную сумму конечно а можете пример дать , как статус добавить? А нельзя просто принять полученный поток от кан и отправить в uart или usb ? И наоборот .
|
|
|
|
|
Aug 3 2015, 18:28
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
в кане нет потока, там кадровая организация, а если говорить про кан опен, то там вообще адресуются не узлы, а данные... адрес имеет параметр, а не объект.
я бы так сделал:
от компьютера, по URAT или USB принимаем данные в виде адрес (битность зависит от версии кан), полезная нагрузка (8 байт), контрольная сумма. Проверяем контрольную сумму (для UART это может быть важно, USB вроде имеет встроенную) Пихаете полученные данные 8 полезных байт в кан, по тому адресу что в адресе Проверяете флаг удачной передачи, если послалась шлем в компьютер ОК, если нет Ошибка
от устройства, без фильтрации пакетов, получаем данные, дербаним из них адрес и 8 байт полезной нагрузки, добавляем контрольную сумму, пихаем в компьютер... Тут к честно не получится, потому что кану надо акнуть данные еще до того как их компьютер получить, иначе вся сеть подвиснет. Но можно попробовать предусмотреть аварийный код, настраиваемый с компьютера адрес и данные, которое ваше устройство начнет рассылать по кан сети, если компьютер отвалится...
вот собственно все и покрыто комп - кан и обратно.
|
|
|
|
|
Aug 6 2015, 11:36
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Golikov A. @ Aug 4 2015, 08:25)  в каком месте запутались? Я не совсем то запутался. Просто вижу что длина поля не строго 8 битная. Мне кадр запаковать в байтовый массив и отправить в uart или usb com так ? Плюс контрольная сумма. Если бы где почитать это самое преобразование кан посылки в uart . Мне так сделать? Вот: ======================================= Начало кадра 1 Сигнализирует начало передачи кадра Идентификатор 11 Уникальный идентификатор Запрос на передачу (RTR) 1 Должен быть доминантным Бит расширения идентификатора (IDE) 1 Должен быть доминантным (определяет длину идентификатора) Зарезервированный бит (r0) 1 Резерв ======================================= эти 15 бит запаковать в два байта , и отправить в UART. Cледующие 4 бита ==================== Длина данных (DLC) 4 Длина поля данных в байтах (0-8) ==================== запаковать в третий байт . Потом 0-8 байт данных потом CRC 2 байта и т.д. Верно?
|
|
|
|
|
Aug 6 2015, 11:43
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
в целом все верно, можно и так.
я бы только данные сделал бы всегда 8 байт (чтобы пакеты стали фиксированной длинны, поле длинны в отдельном байте - хорошая идея, оставить) так легче их распаковывать, если по скорости пройдете.
признаки начала передачи, запрос на передачу, и так далее я бы выкинул, они уарту ненужны на адрес бы отвел всегда 3 байта, (он может быть 11 или 19 бит)
получил бы посылку фиксированной длины 3 + 1 + 8 + 2 = 14 байт, сумму CRC надо заново считать из кан посылки ее взять не выйдет, вы поля кроите, потому заменил бы ее обычной суммой циклической и все...
|
|
|
|
|
Aug 6 2015, 11:48
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Golikov A. @ Aug 6 2015, 14:43)  можно и так. Весь прикол в том , что это устройство предполагается сделать как некий аналог другого устройства , который по рассказам заказчика снят с производства. У меня есть скрины мануала такого устройства , всего остального включая протокол - нету... Вот краткое описание девайса: http://cs625521.vk.me/v625521435/44245/4ATk8_51yME.jpghttp://cs625521.vk.me/v625521435/4424f/hbKwBTGY6lo.jpg
|
|
|
|
|
Aug 7 2015, 05:32
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(Artos5 @ Aug 6 2015, 14:48)  Весь прикол в том , что это устройство предполагается сделать как некий аналог другого устройства , который по рассказам заказчика снят с производства. У меня есть скрины мануала такого устройства , всего остального включая протокол - нету... Проверьте действительно ли там CAN интерфейс. Вдруг это UART с физикой CAN.
|
|
|
|
|
Aug 7 2015, 06:13
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(_3m @ Aug 7 2015, 08:32)  Проверьте действительно ли там CAN интерфейс. Да если там логика uart-a то это будет легко победить ) Но скорее всего там все таки полный CAN . Вот скрины:
Сообщение отредактировал Artos5 - Aug 7 2015, 06:14
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|