|
CANopen, CANFestival |
|
|
|
Nov 1 2017, 11:16
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Привет всем, засели за такую штуку как CAN. Пока ничего не понятно, к сожалению, но, может, кто-то знает, как в CubeMX настроить работу CAN с готовым стеком и протоколом, это вообще возможно ? Посоветуйте, что почитать по этому поводу? Хочу использовать stm32f105R8Tx+CAN(CANopen+CANfestival) О_О"
Есть еще какое-то ПО для этого случая... canopen object dictionary editor вроде.. Что это все и где взять и куда вообще начать копать?
Сообщение отредактировал Ekka - Nov 1 2017, 12:50
|
|
|
|
|
Nov 1 2017, 12:50
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Ekka @ Nov 1 2017, 14:16)  Привет всем, засели за такую штуку как CAN. Пока ничего не понятно, к сожалению, но, может, кто-то знает, CAN - закрытая секретная информация, по ней в интернете все удалено со всех серверов, все книги и даташиты по CAN под жесточайшим запретом. Даже обсуждение CAN в открытом доступе попадает по статью ... Осторожнее с запрещенной литературой !!! CAN - это не шутки! зы. Если серьезно: как только у вас будут появляться конкретные вопросы, ответы на которые не дают интернеты и книги, то можно смело писать сюда, тогда помогут.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Nov 2 2017, 06:47
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(Forger @ Nov 1 2017, 15:50)  CAN - закрытая секретная информация, по ней в интернете все удалено со всех серверов, все книги и даташиты по CAN под жесточайшим запретом. Даже обсуждение CAN в открытом доступе попадает по статью ... CAN - это не шутки! Не смешно. Информация на https://www.can-cia.org открытого доступа к ней нет. Чтобы получить доступ надо стать CiA Member и уплачивать ежегодные взносы. На торрентах материалов из CiA нет. Для работы нужен софт (анализаторы протоколов). С этим беда-печаль: ixaat за невменяемое количество денег а у остальных анализаторы протоколов либо отсутствуют как класс либо рудиментарные. ТС: подумайте как следует еще раз так ли уж нужен вам CAN ? Не можете ли вы обойтись чем нибудь открытым и стандартным эзернетом например ?
|
|
|
|
|
Nov 2 2017, 07:05
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 30-10-05
Пользователь №: 10 288

|
Цитата(_3m @ Nov 2 2017, 09:47)  Информация на https://www.can-cia.org открытого доступа к ней нет. Чтобы получить доступ надо стать CiA Member и уплачивать ежегодные взносы. Цитата отсюда: Technical documents in public status can be downloaded free of charge by CiA-members and non-members after registration
|
|
|
|
|
Nov 2 2017, 07:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(_3m @ Nov 2 2017, 09:47)  Для работы нужен софт (анализаторы протоколов). С этим беда-печаль: ixaat за невменяемое количество денег а у остальных анализаторы протоколов либо отсутствуют как класс либо рудиментарные. Странно, как же тогда мне удалось все это скачать бесплатно и даже часть на русском? ... Может, у меня какой-то другой интернет, выходящий в параллельную вселенную? Бюджетное железо (USB-CAN) брал тут: http://can.marathon.ru, софт в довесок у них бесплатный (под их железки). В свое время мне этого вполне хватило самостоятельно написать даже свой CANopen slave, не говоря уже о прикручивании готовых стеков.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Nov 2 2017, 07:17
|
Частый гость
 
Группа: Участник
Сообщений: 109
Регистрация: 12-10-16
Пользователь №: 93 727

|
Н-да... сейчас понапишут... Если по работе с CAN на чипах серии STM32F10x, в частности 103, то описание работы с этим "добром" очень хорошо сделал https://www.smartmode.info. Правда с использованием SPL. Если интересно использовать микрочиповские чипы, то это есть у меня https://github.com/leocat3/open-plc/tree/ma...source/can_gate, тоже SPL Не знаю, какова необходимость в "стандарте" CANOpen, но почитамши буквари, пришел к выводу, что мне этого не надо. Через чур усложнили. Все можно сделать намного проще, напр.: http://open-plc.blogspot.ru/2017/05/explor...f100-board.htmlОт CANOpen взял только стандарт на скорости да количество точек выборки / процент попадания. Литературы и по CANopen и по CANfestival в открытом доступе - немеряно. Начните с того же Beremiz. Для анализа физического уровня вроде тоже - трудностей не заметил. Взять тот же китайский клон Saleae.
|
|
|
|
|
Nov 2 2017, 08:58
|
Знающий
   
Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960

|
Цитата(leocat @ Nov 2 2017, 10:17)  Не знаю, какова необходимость в "стандарте" CANOpen, но почитамши буквари, пришел к выводу, что мне этого не надо. Через чур усложнили. ... Литературы и по CANopen и по CANfestival в открытом доступе - немеряно. Начните с того же Beremiz. Немеряно букварей. Когда начнете выяснять почему не работает ваша реализация lss fast scan или еще что-то из глубин стандарта обнаружите что букварей недостаточно. CANopen протокол обширный и весьма непростой. Я и пишу - оно ТС надо ? Цитата Для анализа физического уровня вроде тоже - трудностей не заметил. Взять тот же китайский клон Saleae. Нет проблем с физическим уровнем. Есть проблемы с анализом стандартных протоколов. Цитата(Forger @ Nov 2 2017, 10:07)  Странно, как же тогда мне удалось все это скачать бесплатно и даже часть на русском? ... Может, у меня какой-то другой интернет, выходящий в параллельную вселенную? Наверно у меня интернет неправильный. Скачайте-ка из "параллельной вселенной" бесплатно и на русском: CiA 302 все части CiA 309 все части (особенно интересует 309-2) CiA 310 CiA 312 CiA 315 CiA 445 CiA 603
|
|
|
|
|
Nov 2 2017, 09:13
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(_3m @ Nov 2 2017, 11:58)  Нет проблем с физическим уровнем. Есть проблемы с анализом стандартных протоколов. Чуть выше я давал ссылку на железку от отеч. производителя. У них есть бесплатный анализатор протоколов CANopen, я такой использовал в свое время. Называется CANwise или типа того. Конечно, он не дотягивает до "крутых", но мне его вполне хватило спроектировать свой CANopen slave. А уж для прикручивания готового стека его за глаза. Цитата Наверно у меня интернет неправильный. Полагаю, что дело тут не в интернете вовсе ... На местном FTP есть много литературы по CAN, как получить туда доступ, есть соотв. тема. Цитата Скачайте-ка из "параллельной вселенной" бесплатно и на русском: Существование базовых описаний на русском лишь немного упрощают вхождение в тему, но работать все равно придется с оригинально документацией - на английском. Поэтому дело тут не "отсутствии документации", а в том, кому она нужна в таком избыточном объеме. С другой стороны, когда делаете коммерческое изделие с CANopen, его все равно нужно сертифицировать, проходя соотв. тесты. А это требует полной документации, чтобы не платить за процедуру сертификации по много раз. Поэтому придется регистрироваться в CAN CiA и платить членские взносы, чтобы получить нужную документацию (кстати, это не так уж и дорого). Ну а для "колхозников", которые городят CANopen железяки на коленках для себя или таких же "колхозных" организаций вполне хватает и того, что можно скачать в открытом доступе. зы. вспомните известную пословицу: "И рыпку съесть и на %$# сесть" ...
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Nov 2 2017, 11:37
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
После чтения всего того, что тут понаписали и понапугали... Ну ладно( Пытаюсь просто сейчас с помощью HAL и Куба настроить КАН в режиме LoopBack, чтобы КАН слушал сам себя. (Поправьте, если ерунда: это же значит, что на КАН получит на прием то, что сам же и отправил, так?) Но после моей корявой настройки в прерывание упорно не заходит. Просто не заходит в прерывания, ни по приему, ни по передаче. Не бейте, пожалуйста, за --говнокод--, только учусь. Настройка кана Кубовская. Фильтры взяты с интернета и вообще убраны. В цикле отправляю посылку. Настройка кана: Код static void MX_CAN1_Init(void) {
hcan1.Instance = CAN1; hcan1.Init.Prescaler = 12; hcan1.Init.Mode = CAN_MODE_LOOPBACK; hcan1.Init.SJW = CAN_SJW_1TQ; hcan1.Init.BS1 = CAN_BS1_4TQ; hcan1.Init.BS2 = CAN_BS2_3TQ; hcan1.Init.TTCM = DISABLE; hcan1.Init.ABOM = DISABLE; hcan1.Init.AWUM = DISABLE; hcan1.Init.NART = ENABLE; hcan1.Init.RFLM = DISABLE; hcan1.Init.TXFP = DISABLE; if (HAL_CAN_Init(&hcan1) != HAL_OK) { Error_Handler(); } } Функция отправки: Код void CAN_Transmit(void) { hcan1.pTxMsg->StdId = 0x130; hcan1.pTxMsg->DLC = 8; hcan1.pTxMsg->Data[0] = 1; hcan1.pTxMsg->Data[1] = 2; hcan1.pTxMsg->Data[2] = 3; hcan1.pTxMsg->Data[3] = 4; hcan1.pTxMsg->Data[4] = 5; hcan1.pTxMsg->Data[5] = 6; hcan1.pTxMsg->Data[6] = 7; hcan1.pTxMsg->Data[7] = 8; HAL_CAN_Transmit(&hcan1, 10); } функция по приему: (надо ли вообще) Код void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* canHandle) { CAN_ID = canHandle->pRxMsg->StdId; CAN_DLC = canHandle->pRxMsg->DLC; DATA[0] = canHandle->pRxMsg->Data[0]; DATA[1] = canHandle->pRxMsg->Data[1]; DATA[2] = canHandle->pRxMsg->Data[2]; DATA[3] = canHandle->pRxMsg->Data[3]; DATA[4] = canHandle->pRxMsg->Data[4]; DATA[5] = canHandle->pRxMsg->Data[5]; DATA[6] = canHandle->pRxMsg->Data[6]; DATA[7] = canHandle->pRxMsg->Data[7]; HAL_CAN_Receive_IT(&hcan1, CAN_FIFO0); } мэйн: Код int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_CAN1_Init(); hcan1.pTxMsg = &canTxMessage; hcan1.pRxMsg = &canRxMessage; /*CAN_FilterConfTypeDef canFilterConfig; canFilterConfig.FilterNumber = 0; canFilterConfig.FilterMode = CAN_FILTERMODE_IDLIST; canFilterConfig.FilterScale = CAN_FILTERSCALE_16BIT; canFilterConfig.FilterIdHigh = 0x53A<<5; canFilterConfig.FilterIdLow = 0x53D<<5; canFilterConfig.FilterMaskIdHigh = 0x54D<<5; canFilterConfig.FilterMaskIdLow = 0x54F<<5; canFilterConfig.FilterFIFOAssignment = 0; canFilterConfig.FilterActivation = ENABLE; canFilterConfig.BankNumber = 1; HAL_CAN_ConfigFilter(&hcan1, &canFilterConfig); canFilterConfig.FilterNumber = 1; canFilterConfig.FilterIdHigh = 0xA<<5; canFilterConfig.FilterIdLow = 0x33<<5; canFilterConfig.FilterMaskIdHigh = 0x44<<5; canFilterConfig.FilterMaskIdLow = 0x55<<5; HAL_CAN_ConfigFilter(&hcan1, &canFilterConfig);*/ HAL_CAN_Receive_IT(&hcan1, CAN_FIFO0); while (1) { CAN_Transmit(); HAL_Delay(200); } } Почему может в прерывания не заходить? (void CAN1_TX_IRQHandler(void) и void CAN1_RX0_IRQHandler(void))
|
|
|
|
|
Nov 2 2017, 12:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226

|
Ох мамулька дорогая ! А почему надо сразу что то строчить и генерить, а не посмотреть любой из 100500 открытых проектов (с исходниками Карл !) ? Цитата Привет всем, засели за такую штуку как CAN. То есть коллектив ?
|
|
|
|
|
Nov 2 2017, 14:08
|

Частый гость
 
Группа: Участник
Сообщений: 164
Регистрация: 12-04-16
Из: Белгород
Пользователь №: 91 250

|
Цитата(Forger @ Nov 2 2017, 12:49)  нет... скорее ТАК  /I am Alone/ разрешены прерывания сейчас по приему и передаче. Все нормально, входит в прерывание по приему и передаче, НО!!! ЕдИнОжДы... хотя отправляю в цикле же... висит в состоянии готовности.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|