{"id":475936,"date":"2026-04-14T15:34:51","date_gmt":"2026-04-14T15:34:51","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=475936"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=475936","title":{"rendered":"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f CANBUS \u0432 STM32 Motor Control \u043f\u0440\u043e\u0435\u043a\u0442"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f Do It Yourself \u0438\u043b\u0438 DIY \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a &#171;\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0435\u0431\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u043e\u0437\u0438\u0434\u0430\u043d\u0438\u044f.&#187; \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u044f\u0445 \u043d\u0430 \u0441\u0442\u043e\u043b\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u0435\u043b\u044f \u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 AI-\u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u042d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u044b \u0441\u0442\u0440\u043e\u044f\u0442 \u0443\u043c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0435 SCADA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0430\u0436\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0434\u0432\u043e\u0439\u043d\u0438\u043a\u0438, \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<br \/> \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u043b\u043e\u043c\u043e\u0449\u043d\u044b\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c \u043f\u043e CAN-\u0448\u0438\u043d\u0435. \u0410 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c PLC-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 IoT. \u0410 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 AI-\u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0435 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0438\u043b\u0438\u0439.<br \/> \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u0437\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 CAN-\u0448\u0438\u043d\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0417\u0430\u0442\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c PMSM \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <a href=\"https:\/\/www.st.com\/en\/evaluation-tools\/p-nucleo-ihm03.html\" rel=\"noopener noreferrer nofollow\">STM32-IHM03<\/a> \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<\/p>\n<h2>\u0426\u0435\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n<h3>\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f<\/h3>\n<ol>\n<li>\n<p>\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 P-IHM.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 <\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CAN-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043d\u0438\u0436\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e CAN-\u0448\u0438\u043d\u0435<\/p>\n<\/li>\n<\/ol>\n<h3>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f<\/h3>\n<ol>\n<li>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e HMI-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f IHM03 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 MCU \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0430 \u0437\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e AI-\u0430\u0433\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ol>\n<h2>CAN-\u0448\u0438\u043d\u0430 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441<\/h2>\n<p>\u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u043a\u0443 \u043f\u043e CANBUS-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432.  \u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0438\u0448\u0435\u043c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0427\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u0435\u043b\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c.<\/p>\n<p>\u041f\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043c CANBUS \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/community.st.com\/t5\/stm32-mcus\/using-can-bxcan-in-normal-mode-with-stm32-microcontrollers-part\/ta-p\/800502#toc-hId--1741656229\" rel=\"noopener noreferrer nofollow\">Using CAN (bxCAN) in Normal mode with STM32 microcontrollers<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/microtechnics.ru\/protokol-can\/\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b CAN. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u0430\u0434\u0440\u0430, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043e\u0448\u0438\u0431\u043e\u043a<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.csselectronics.com\/pages\/can-bus-simple-intro-tutorial\" rel=\"noopener noreferrer nofollow\">CAN Bus Explained &#8212; A Simple Intro<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stm32world.com\/wiki\/STM32_CAN\" rel=\"noopener noreferrer nofollow\">CAN bus<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/stm32world.com\/wiki\/STM32_CAN\" rel=\"noopener noreferrer nofollow\">STM32 CAN<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CAN_bus#Data_transmission\" rel=\"noopener noreferrer nofollow\">CANBUS<\/a> \u0431\u044b\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d Bosh \u0432 1986 \u0438 \u0441\u0442\u0430\u043b \u0434\u0435-\u0444\u0430\u043a\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438.  \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0442\u044f\u043d\u0443\u0442\u044c \u0441\u043e\u0442\u043d\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 \u043e\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043a \u0431\u043b\u043e\u043a\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u043e\u0431\u0449\u0430\u044f \u0448\u0438\u043d\u0430 (\u043f\u0430\u0440\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432). \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u0435\u0442\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043d\u043e \u0438\u0434\u0435\u044f \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0435\u0439.<\/p>\n<h3>\u041f\u0440\u0438\u0447\u0438\u043d\u044b \u0432\u044b\u0431\u043e\u0440\u0430 CANBUS \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/h3>\n<ul>\n<li>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u043d\u044b\u043c\u0438 CANBUS. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 STM32-IHM03 \u0443\u0436\u0435 \u043e\u0441\u043d\u0430\u0449\u0435\u043d \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043c-\u043f\u043e\u0440\u0442\u043e\u043c (USB) \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441 PC \u043e \u0447\u0435\u043c \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0438\u0436\u0435. \u0418 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  <\/p>\n<ul>\n<li>\n<p>\u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u041d\u0430\u0434\u0435\u0436\u043d\u0430\u044f \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0430\u044f \u043a \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u043c \u043f\u043e\u043c\u0435\u0445\u0430\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u0414\u043b\u044f \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0432\u0430\u0436\u043d\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0435 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u0431\u043e\u0440 CANBUS \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u0434\u0435\u0448\u0435\u0432\u0430\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u0414\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0438\u0442\u043e\u0439 \u043f\u0430\u0440\u044b \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432. \u041c\u043d\u043e\u0433\u043e \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0445 MCU (\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432) \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 SDK \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0412 \u0438\u0445 \u0447\u0438\u0441\u043b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Blue pill STM32F106CT8, \u043f\u043b\u0430\u0442\u044b ESP32, \u0432\u044b\u0448\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c STM32-IHM03 \u0441 \u0447\u0438\u043f\u043e\u043c STM32G431RB. \u0414\u043b\u044f MCU \u0431\u0435\u0437 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043a\u0430\u043a Arduino UNO, Raspberry pi \u0438 \u0442.\u043f. \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 CAN-\u043c\u043e\u0434\u0443\u043b\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 MCP2515. \u0414\u043b\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 MCU \u0441 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043f\u043e CANBUS \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u043e\u043b\u044c\u043a\u043e CAN-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440 \u0438 \u0432\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h3>OSI \u0443\u0440\u043e\u0432\u043d\u0438 CAN-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430<\/h3>\n<p><strong>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c<\/strong> \u0448\u0438\u043d\u044b CAN \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f\u044b \u043a\u0430\u0431\u0435\u043b\u0435\u0439, \u0443\u0440\u043e\u0432\u043d\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0443\u0437\u043b\u0430\u043c, \u0438\u043c\u043f\u0435\u0434\u0430\u043d\u0441 \u043a\u0430\u0431\u0435\u043b\u044f \u0438 \u0442. \u0434. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: \u0423\u0437\u043b\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0434\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u043e\u0439 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e 1 \u041c\u0431\u0438\u0442\/\u0441 (\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f CAN) \u0438\u043b\u0438 8 \u041c\u0431\u0438\u0442\/\u0441 (CAN FD).<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u0438\u043d\u0430 \u043a\u0430\u0431\u0435\u043b\u044f: \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043a\u0430\u0431\u0435\u043b\u044f CAN \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442 500 \u043c\u0435\u0442\u0440\u043e\u0432 (125 \u043a\u0431\u0438\u0442\/\u0441) \u0434\u043e 40 \u043c\u0435\u0442\u0440\u043e\u0432 (1 \u041c\u0431\u0438\u0442\/\u0441).<\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435: \u0428\u0438\u043d\u0430 CAN \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430 120 \u041e\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u0448\u0438\u043d\u044b.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c<\/strong>  \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432 CAN, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432: \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0438\u043f\u0430 (\u043a\u0430\u0434\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b, \u043a\u0430\u0434\u0440\u044b \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u0430\u0434\u0440\u044b \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438) \u0438 11-\u0431\u0438\u0442\u043d\u044b\u0435\/29-\u0431\u0438\u0442\u043d\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b<\/p>\n<\/li>\n<li>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a: \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f\/\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a CAN, \u0432\u043a\u043b\u044e\u0447\u0430\u044f CRC, \u0441\u043b\u043e\u0442\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f, \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>\u0410\u0440\u0431\u0438\u0442\u0440\u0430\u0436: \u043d\u0435\u0440\u0430\u0437\u0440\u0443\u0448\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u0448\u0438\u043d\u0435 CAN \u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/292\/b80\/6de\/292b806de7f7e1654f14f146324f580e.png\" width=\"636\" height=\"442\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/292\/b80\/6de\/292b806de7f7e1654f14f146324f580e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/292\/b80\/6de\/292b806de7f7e1654f14f146324f580e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0442\u0438\u043f\u044b \u0441\u0435\u0442\u0435\u0439<\/h3>\n<p>\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u0434\u0430\u0447<\/p>\n<ol>\n<li>\n<p><strong>High-Speed CAN (ISO 11898-2):<\/strong> \u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442 40 \u043a\u0431\u0438\u0442\/\u0441 \u0434\u043e 1 \u041c\u0431\u0438\u0442\/\u0441. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c (\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c, \u0442\u043e\u0440\u043c\u043e\u0437\u0430).<\/p>\n<\/li>\n<li>\n<p><strong>Low-Speed \/ Fault Tolerant CAN (ISO 11898-3):<\/strong> \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043e 125 \u043a\u0431\u0438\u0442\/\u0441. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u0444\u043e\u0440\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 (\u0434\u0432\u0435\u0440\u0438, \u0437\u0435\u0440\u043a\u0430\u043b\u0430).<\/p>\n<\/li>\n<li>\n<p><strong>LIN-bus:<\/strong> \u0414\u0435\u0448\u0451\u0432\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a CAN \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 (\u0441\u0442\u0435\u043a\u043b\u043e\u043f\u043e\u0434\u044a\u0435\u043c\u043d\u0438\u043a\u0438, \u043a\u043e\u043d\u0434\u0438\u0446\u0438\u043e\u043d\u0435\u0440).<\/p>\n<\/li>\n<li>\n<p><strong>CAN FD (Flexible Data-rate):<\/strong> \u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0434\u043e 8 \u041c\u0431\u0438\u0442\/\u0441 \u0438 \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e 64 \u0431\u0430\u0439\u0442 (\u0432\u043c\u0435\u0441\u0442\u043e 8 \u0431\u0430\u0439\u0442 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c CAN).<\/p>\n<\/li>\n<\/ol>\n<h3>High-Speed CAN (ISO 11898-2)<\/h3>\n<p>\u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 (\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c, \u0410\u041a\u041f\u041f, ABS).<\/p>\n<h4>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f<\/h4>\n<ul>\n<li>\n<p><strong>\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0448\u0438\u043d\u0430.<\/strong> \u0414\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0430\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u041e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f (stubs) \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0441\u0442\u0440\u0430\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e \u0434\u043b\u0438\u043d\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0435\u0440\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u044b.<\/strong> \u041d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043a\u043e\u043d\u0446\u0430\u0445 \u043b\u0438\u043d\u0438\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u043f\u043e <strong>120 \u041e\u043c<\/strong>. \u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u0442 \u043a\u043e\u043d\u0446\u043e\u0432 \u043a\u0430\u0431\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0440\u0435\u0434\u0430.<\/strong> \u0412\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430 \u0441 \u0432\u043e\u043b\u043d\u043e\u0432\u044b\u043c \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435\u043c 120 \u041e\u043c.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/98a\/af1\/7ae\/98aaf17ae19167c39c82eae1ccf87334.png\" width=\"4160\" height=\"1300\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/98a\/af1\/7ae\/98aaf17ae19167c39c82eae1ccf87334.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/98a\/af1\/7ae\/98aaf17ae19167c39c82eae1ccf87334.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0424\u043e\u0440\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0443\u0440\u043e\u0432\u043d\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f<\/h4>\n<p>\u0412 High-Speed CAN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 <strong>CAN High (CAN_H)<\/strong> \u0438 <strong>CAN Low (CAN_L)<\/strong>.<\/p>\n<ul>\n<li>\n<p><strong>\u0420\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f 1):<\/strong> \u041e\u0431\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0438\u043c\u0435\u044e\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u043a\u043e\u043b\u043e <strong>2.5 \u0412<\/strong>. \u0414\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 (V_{diff} = CAN\\_H &#8212; CAN\\_L) \u0440\u0430\u0432\u043d\u043e <strong>0 \u0412<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 0):<\/strong> CAN_H \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0434\u043e <strong>3.5 \u0412<\/strong>, \u0430 CAN_L \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u043e <strong>1.5 \u0412<\/strong>. \u0414\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <strong>2.0 \u0412<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<h3>Low-Speed \/ Fault Tolerant CAN (ISO 11898-3)<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u0430, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0447\u0435\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.<\/p>\n<h4>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f<\/h4>\n<ul>\n<li>\n<p><strong>\u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c.<\/strong> \u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e, \u043d\u043e \u0438 \u0437\u0432\u0435\u0437\u0434\u0443 \u0438\u043b\u0438 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/strong> \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 High-Speed, \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u044e \u0447\u0430\u0441\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u0432 (\u043e\u0431\u044b\u0447\u043d\u043e \u043e\u043a\u043e\u043b\u043e 2.2 \u043a\u041e\u043c \u0438\u043b\u0438 4.7 \u043a\u041e\u043c \u043d\u0430 \u0437\u0435\u043c\u043b\u044e\/\u043f\u0438\u0442\u0430\u043d\u0438\u0435). \u041e\u0431\u0449\u0435\u0435 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u043a\u043e\u043b\u043e 100 \u041e\u043c, \u043d\u043e \u043e\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u043f\u043e \u0432\u0441\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f5d\/c49\/1d2\/f5dc491d2acddb7699dc3bc4054b2bb2.png\" width=\"3989\" height=\"2911\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f5d\/c49\/1d2\/f5dc491d2acddb7699dc3bc4054b2bb2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f5d\/c49\/1d2\/f5dc491d2acddb7699dc3bc4054b2bb2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0424\u043e\u0440\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0443\u0440\u043e\u0432\u043d\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f<\/h4>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0437\u0434\u0435\u0441\u044c \u0438\u043c\u0435\u044e\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0440\u0430\u0437\u043c\u0430\u0445 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u0445 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u043c\u0438 \u043a \u043f\u043e\u043c\u0435\u0445\u0430\u043c.<\/p>\n<ul>\n<li>\n<p><strong>\u0420\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u00ab1\u00bb):<\/strong> CAN_H \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442 \u043a <strong>0 \u0412<\/strong>, \u0430 CAN_L \u2014 \u043a <strong>5 \u0412<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00ab0\u00bb):<\/strong> CAN_H \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0434\u043e <strong>3.6 \u0412<\/strong>, \u0430 CAN_L \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u043e <strong>1.4 \u0412<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c ISO 11898-3 \u2014 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u043e\u0434\u0443. \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 (CAN_H \u0438\u043b\u0438 CAN_L) \u043e\u0431\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0430\u0441\u0441\u0443 \u0438\u043b\u0438 \u043d\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u0435, \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0446\u0435\u043b\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0435\u043c\u043b\u0438. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.nxp.com\/docs\/en\/data-sheet\/TJA1055.pdf\" rel=\"noopener noreferrer nofollow\">TJA1055<\/a>. \u0412 High-Speed CAN \u0442\u0430\u043a\u043e\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e: \u0442\u0430\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u0430, \u0438 \u0431\u0435\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u0442\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0438\u0437 \u0448\u0443\u043c\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<h3>\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\"><strong>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>High-Speed (11898-2)<\/strong><\/p>\n<\/th>\n<th>\n<p align=\"left\"><strong>Low-Speed (11898-3)<\/strong><\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1 \u041c\u0431\u0438\u0442\/\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">125 \u043a\u0431\u0438\u0442\/\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 CAN_H (Dom)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">3.5 \u0412<\/p>\n<\/td>\n<td>\n<p align=\"left\">3.6 \u0412<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 CAN_L (Dom)<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">1.5 \u0412<\/p>\n<\/td>\n<td>\n<p align=\"left\">1.4 \u0412<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u0422\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">2 x 120 \u041e\u043c (\u043d\u0430 \u043a\u043e\u043d\u0446\u0430\u0445)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 (\u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0441\u0432\u044f\u0437\u044c \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u0438\u043b\u0438 \u041a\u0417 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><strong>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\">Powertrain, ADAS, \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0443\u0437\u043e\u0432\u043d\u0430\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430, \u0421\u0430\u043b\u043e\u043d<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e9\/078\/d2e\/5e9078d2e3b1f192c80c4ac5220699ef.png\" width=\"1389\" height=\"578\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5e9\/078\/d2e\/5e9078d2e3b1f192c80c4ac5220699ef.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e9\/078\/d2e\/5e9078d2e3b1f192c80c4ac5220699ef.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 Standard Data Frame (CAN 2.0A)<\/h3>\n<ol>\n<li>\n<p><strong>SOF (Start of Frame):<\/strong> 1 \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u0442. \u041e\u043d \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u0443\u0437\u043b\u0430\u043c \u043e \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0436\u0435\u0441\u0442\u043a\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>Arbitration Field (\u041f\u043e\u043b\u0435 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u0430):<\/strong> <\/p>\n<ul>\n<li>\n<p><strong>Identifier (ID):<\/strong> 11 \u0431\u0438\u0442. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>RTR (Remote Transmission Request):<\/strong> 1 \u0431\u0438\u0442. \u0412 Data Frame \u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 <strong>\u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 (0)<\/strong>. \u0415\u0441\u043b\u0438 \u043e\u043d \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 (1), \u0437\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0434\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (Remote Frame).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Control Field (\u041f\u043e\u043b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f):<\/strong> <\/p>\n<ul>\n<li>\n<p><strong>IDE (Identifier Extension):<\/strong> \u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 (0) \u0434\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>r0:<\/strong> \u0420\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439 \u0431\u0438\u0442 (\u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435).<\/p>\n<\/li>\n<li>\n<p><strong>DLC (Data Length Code):<\/strong> 4 \u0431\u0438\u0442\u0430. \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043e\u0442 0 \u0434\u043e 8).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Data Field (\u041f\u043e\u043b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445):<\/strong> \u041e\u0442 0 \u0434\u043e 64 \u0431\u0438\u0442 (0\u20138 \u0431\u0430\u0439\u0442). \u0421\u0430\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>CRC Field:<\/strong> <\/p>\n<ul>\n<li>\n<p><strong>CRC Sequence:<\/strong> 15-\u0431\u0438\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>CRC Delimiter:<\/strong> 1 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442 (\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>ACK Field (\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435):<\/strong> <\/p>\n<ul>\n<li>\n<p><strong>ACK Slot:<\/strong> \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442, \u0430 \u0432\u0441\u0435 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435 \u043a\u0430\u0434\u0440 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a, \u00ab\u043f\u0435\u0440\u0435\u0431\u0438\u0432\u0430\u044e\u0442\u00bb \u0435\u0433\u043e \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>ACK Delimiter:<\/strong> 1 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>EOF (End of Frame):<\/strong> 7 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0431\u0438\u0442. \u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u043e\u043d\u0435\u0446 \u043a\u0430\u0434\u0440\u0430.<\/p>\n<\/li>\n<\/ol>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ef\/e69\/375\/9efe6937563de93b745cb3b9bca5f708.png\" width=\"965\" height=\"240\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9ef\/e69\/375\/9efe6937563de93b745cb3b9bca5f708.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ef\/e69\/375\/9efe6937563de93b745cb3b9bca5f708.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442\u0441\u044b\u043b\u043a\u0438 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 PulseView. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f Raspberry pico (rp2040). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 <a href=\"https:\/\/github.com\/pico-coder\/sigrok-pico\" rel=\"noopener noreferrer nofollow\">sigrok-pico<\/a> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u0421\u0438\u0433\u043d\u0430\u043b \u0438\u0437\u043c\u0435\u0440\u044f\u043b\u0441\u044f \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 RxD \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 MCP2551.<\/p>\n<p><code>CAN ID = 0x123<\/code><br \/> <code>DATA = 0x11 0x22<\/code><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/688\/1e4\/bf0\/6881e4bf0861b7936939be21a7f0116b.png\" width=\"1806\" height=\"296\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/688\/1e4\/bf0\/6881e4bf0861b7936939be21a7f0116b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/688\/1e4\/bf0\/6881e4bf0861b7936939be21a7f0116b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0430\u0445 CANH \u0438 CANL \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 MCP2551 \u043f\u0440\u0438 \u0437\u0430\u0446\u0438\u043a\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/adf\/e80\/066\/adfe80066aa5a17d2dcb6d5b75abbda0.png\" width=\"1420\" height=\"607\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/adf\/e80\/066\/adfe80066aa5a17d2dcb6d5b75abbda0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/adf\/e80\/066\/adfe80066aa5a17d2dcb6d5b75abbda0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>Extended Data Frame (CAN 2.0B)<\/h4>\n<p>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 2048 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 (11 \u0431\u0438\u0442) \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 J1939 \u0434\u043b\u044f \u0433\u0440\u0443\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u0438).<\/p>\n<p><strong>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440:<\/strong> \u0418\u043c\u0435\u0435\u0442 29 \u0431\u0438\u0442. \u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 (11 \u0431\u0438\u0442) \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (18 \u0431\u0438\u0442).<\/p>\n<\/li>\n<li>\n<p><strong>SRR (Substitute Remote Request):<\/strong> \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u0442 RTR \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c \u043a\u0430\u0434\u0440\u0435, \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>IDE:<\/strong> \u0412 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u044d\u0442\u043e\u0442 \u0431\u0438\u0442 <strong>\u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 (1)<\/strong>, \u0447\u0442\u043e \u0434\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0443 \u043f\u043e\u043d\u044f\u0442\u044c: \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e\u0439\u0434\u0443\u0442 \u0435\u0449\u0435 18 \u0431\u0438\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0411\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0430\u0444\u0444\u0438\u043d\u0433 (Bit Stuffing)<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0438 \u043d\u0435 \u0442\u0435\u0440\u044f\u043b\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0440\u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044f\u0445 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u0438\u0442, \u0432 \u043f\u043e\u043b\u044f \u043e\u0442 SOF \u0434\u043e CRC \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u0444\u0444\u0438\u043d\u0433: \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432\u0438\u0434\u0438\u0442 <strong>5 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u0438\u0442 \u043f\u043e\u0434\u0440\u044f\u0434<\/strong>, \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <strong>6-\u0439 \u0431\u0438\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0439 \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438<\/strong>. \u041f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u0442. <em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u041f\u043e\u043b\u044f ACK \u0438 EOF \u0438\u043c\u0435\u044e\u0442 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0444\u043e\u0440\u043c\u0443, \u0438 \u0441\u0442\u0430\u0444\u0444\u0438\u043d\u0433 \u0432 \u043d\u0438\u0445 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.<\/em><\/p>\n<h4>\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 CAN FD<\/h4>\n<p>\u0412 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 <strong>CAN FD<\/strong> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043a\u0430\u0434\u0440\u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p><strong>DLC:<\/strong> \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0434\u043e <strong>64 \u0431\u0430\u0439\u0442<\/strong> \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<li>\n<p><strong>BRS (Bit Rate Switch):<\/strong> \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 5 \u041c\u0431\u0438\u0442\/\u0441) \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f\u0441\u044c \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u0430\u0434\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>CRC:<\/strong> \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0443\u043c\u043c\u044b (17 \u0438\u043b\u0438 21 \u0431\u0438\u0442) \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e CAN FD \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/www.csselectronics.com\/pages\/can-fd-flexible-data-rate-intro\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> \u0438\u043b\u0438 \u0432 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CAN_FD\" rel=\"noopener noreferrer nofollow\">Wiki<\/a>. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0441\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439 <a href=\"https:\/\/www.csselectronics.com\/pages\/can-bus-simple-intro-tutorial\" rel=\"noopener noreferrer nofollow\">CAN Bus Explained &#8212; A Simple Intro<\/a><\/p>\n<h3>\u0410\u0440\u0431\u0438\u0442\u0440\u0430\u0436 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a<\/h3>\n<p>\u0410\u0440\u0431\u0438\u0442\u0440\u0430\u0436 \u0432 CAN-bus \u2014 \u044d\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0443\u0437\u043b\u0430\u043c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0448\u0438\u043d\u0435 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0435. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 <strong>CSMA\/CD + AMP<\/strong> (Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority). \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u0430 \u043b\u0435\u0436\u0430\u0442 \u0434\u0432\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b\u0430:<\/p>\n<ol>\n<li>\n<p>\u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u0442 (0) \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442 (1).<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0448\u0438\u043d\u0443, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412\u0441\u0435 \u0443\u0437\u043b\u044b \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 <strong>SOF<\/strong> (Start of Frame) \u2014 \u043e\u0434\u0438\u043d \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u0442 (0). \u041d\u0430 \u0448\u0438\u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u00ab0\u00bb. \u0412\u0441\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b.<br \/> \u0423\u0437\u043b\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 <strong>\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (ID)<\/strong>, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0438\u0442\u0430.<\/p>\n<ul>\n<li>\n<p><strong>\u0428\u0430\u0433 1.<\/strong> \u0412\u0441\u0435 \u0442\u0440\u0438 \u0443\u0437\u043b\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0438\u0442 \u0441\u0432\u043e\u0435\u0433\u043e ID. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0441\u0435\u0445 \u044d\u0442\u043e \u00ab0\u00bb, \u043d\u0430 \u0448\u0438\u043d\u0435 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u00ab0\u00bb. \u0412\u0441\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443.<\/p>\n<\/li>\n<li>\n<p><strong>\u0428\u0430\u0433 2.<\/strong> \u0415\u0441\u043b\u0438 \u0423\u0437\u0435\u043b \u0410 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u00ab1\u00bb (\u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439), \u0430 \u0423\u0437\u043b\u044b \u0411 \u0438 \u0412 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u00ab0\u00bb (\u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439), \u0442\u043e \u043d\u0430 \u0448\u0438\u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u00ab0\u00bb.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0438\u0433\u0440\u044b\u0448 \u0423\u0437\u043b\u0430 \u0410.<\/strong> \u0423\u0437\u0435\u043b \u0410 \u0432\u0438\u0434\u0438\u0442, \u0447\u0442\u043e \u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u00ab1\u00bb, \u043d\u043e \u043d\u0430 \u0448\u0438\u043d\u0435 \u00ab0\u00bb. \u041e\u043d \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043a\u0442\u043e-\u0442\u043e \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u0438\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c, <strong>\u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443<\/strong> \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u0438\u0435\u043c\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/medium.com\/@johnehk86\/39-how-is-can-arbitration-achieved-1509fed8054d\" rel=\"noopener noreferrer nofollow\">\u044d\u0442\u043e\u0439<\/a> \u0441\u0442\u0430\u0442\u044c\u0435 \u0438\u043b\u0438 \u0432 <a href=\"https:\/\/en.wikipedia.org\/wiki\/CAN_bus#Data_transmission:~:text=a%20CAN%20transceiver.-,Data%20transmission%20%26%20arbitration,-%5Bedit%5D\" rel=\"noopener noreferrer nofollow\">\u0432\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438<\/a><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0e9\/021\/5fa\/0e90215fad22c4b26f076c83e8c7ac35.png\" width=\"1062\" height=\"596\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0e9\/021\/5fa\/0e90215fad22c4b26f076c83e8c7ac35.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0e9\/021\/5fa\/0e90215fad22c4b26f076c83e8c7ac35.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0443\u0437\u0435\u043b A \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c. \u0423\u0437\u0435\u043b B \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0431\u0438\u0442\u0430 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 0. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 \u0443\u0437\u0435\u043b C.<\/p>\n<h4>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a<\/h4>\n<p>CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u044f\u0442\u044c \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430. \u0422\u0440\u0438 \u0438\u0437 \u043d\u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0430 \u0434\u0432\u0435 \u2014 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0438\u0442\u043e\u0432. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432  <a href=\"https:\/\/www.csselectronics.com\/pages\/can-bus-errors-intro-tutorial\" rel=\"noopener noreferrer nofollow\">CAN Bus Errors Explained<\/a>.<\/p>\n<h3>\u041d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:<\/h3>\n<ol>\n<li>\n<p><strong>CRC Check (\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b).<\/strong> \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 15-\u0431\u0438\u0442\u043d\u0443\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u043a\u0430\u0434\u0440\u0430. \u041f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0435\u0451. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u2014 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Frame Check (\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0430).<\/strong> \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0434\u0440\u0430. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ACK-\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c, EOF) \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0431\u0438\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0442\u0430\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u0442 \u2014 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>ACK Check (\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f).<\/strong> \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u00ab\u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439\u00bb \u0431\u0438\u0442 \u0432 ACK-\u0441\u043b\u043e\u0442\u0435 \u043e\u0442 \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u0415\u0441\u043b\u0438 \u0448\u0438\u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0439 (\u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b \u043f\u0440\u0438\u0435\u043c), \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430.<\/p>\n<\/li>\n<\/ol>\n<h3>\u041d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0431\u0438\u0442\u043e\u0432:<\/h3>\n<ol start=\"4\">\n<li>\n<p><strong>Bit Monitoring (\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0431\u0438\u0442\u0430).<\/strong> \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0441\u043b\u0443\u0448\u0430\u0435\u0442 \u0448\u0438\u043d\u0443. \u0415\u0441\u043b\u0438 \u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442, \u0430 \u0443\u0432\u0438\u0434\u0435\u043b \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 (\u043a\u0440\u043e\u043c\u0435 \u0444\u0430\u0437\u044b \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u0430 \u0438\u043b\u0438 ACK), \u043e\u043d \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0438\u043b\u0438 \u0441\u0431\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>Bit Stuffing (\u0411\u0438\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0430\u0444\u0444\u0438\u043d\u0433).<\/strong> \u041f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c CAN, \u043f\u043e\u0441\u043b\u0435 5 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u0438\u043d \u0431\u0438\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0439 \u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a \u0432\u0438\u0434\u0438\u0442 6 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0431\u0438\u0442\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434 \u2014 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0442\u0430\u0444\u0444\u0438\u043d\u0433\u0430.<\/p>\n<\/li>\n<\/ol>\n<p>\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u044e\u0431\u043e\u0439 \u0443\u0437\u0435\u043b (\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u0438\u043b\u0438 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a) \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443, \u043e\u043d \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u0432 \u0441\u0435\u0442\u044c <strong>Error Flag<\/strong> (\u0444\u043b\u0430\u0433 \u043e\u0448\u0438\u0431\u043a\u0438).<\/p>\n<ul>\n<li>\n<p><strong>Active Error Flag:<\/strong> \u042d\u0442\u043e 6 \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0445 \u0431\u0438\u0442\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434. \u041e\u043d\u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0430\u0440\u0443\u0448\u0430\u044e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u00ab\u0431\u0438\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0430\u0444\u0444\u0438\u043d\u0433\u0430\u00bb, \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0442\u043e\u0436\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043a\u0430\u0434\u0440.<\/p>\n<\/li>\n<li>\n<p><strong>Passive Error Flag:<\/strong> \u042d\u0442\u043e 6 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0431\u0438\u0442\u043e\u0432. \u0415\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0437\u043b\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0442 \u043c\u043d\u043e\u0433\u043e \u043e\u0448\u0438\u0431\u043e\u043a (Error Passive \u0441\u0442\u0430\u0442\u0443\u0441).<\/p>\n<\/li>\n<\/ul>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0434\u0438\u043d \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043d\u0435 \u0437\u0430\u0441\u043f\u0430\u043c\u0438\u043b \u0432\u0441\u044e \u0441\u0435\u0442\u044c \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u043e\u0448\u0438\u0431\u043e\u043a, \u0432 CAN \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043b\u043e\u0433\u0438\u043a\u0430 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0435\u0439. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><strong>TEC (Transmit Error Counter)<\/strong> \u2014 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>REC (Receive Error Counter)<\/strong> \u2014 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438\u0435\u043c\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e: <strong>TEC &#8212; 1<\/strong>, <strong>REC &#8212; 1<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0443\u0437\u0435\u043b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u0438 \u043f\u0440\u0438\u0435\u043c\u0435: <strong>REC + 1<\/strong>.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435: <strong>TEC + 8<\/strong> (\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u043d\u0430\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0436\u0435)<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0443\u0437\u0435\u043b \u00ab\u0432\u0437\u0431\u0435\u0441\u0438\u043b\u0441\u044f\u00bb \u0438 \u0448\u043b\u0435\u0442 \u0444\u043b\u0430\u0433\u0438 \u043e\u0448\u0438\u0431\u043e\u043a: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0442\u0443\u0442.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0443\u0437\u043b\u0430<\/h4>\n<p>\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 TEC \u0438 REC \u0443\u0437\u0435\u043b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f:<\/p>\n<ol>\n<li>\n<p><strong>Error Active (TEC &lt; 128 \u0438 REC &lt; 128):<\/strong> <\/p>\n<ul>\n<li>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c <strong>Active Error Flags<\/strong> (\u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0435), \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u0441\u044e \u0448\u0438\u043d\u0443 \u043f\u0440\u0438 \u0441\u0431\u043e\u0435.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Error Passive (TEC &gt; 127 \u0438\u043b\u0438 REC &gt; 127):<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0423\u0437\u0435\u043b \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043d \u0432\u0441\u0451 \u0435\u0449\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0448\u043b\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e <strong>Passive Error Flags<\/strong> (\u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0435), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043c\u0435\u0448\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0438\u043c.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043a\u0430\u0434\u0440\u0430 \u0442\u0430\u043a\u043e\u0439 \u0443\u0437\u0435\u043b \u043e\u0431\u044f\u0437\u0430\u043d \u0432\u044b\u0436\u0434\u0430\u0442\u044c \u043f\u0430\u0443\u0437\u0443 (Suspend Transmission Time) \u043f\u0435\u0440\u0435\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Bus Off (TEC &gt; 255):<\/strong> <\/p>\n<ul>\n<li>\n<p>\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. \u0423\u0437\u0435\u043b \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0448\u0438\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>\u041e\u043d \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0432 \u0441\u0435\u0442\u044c \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u0441\u0431\u0440\u043e\u0441\u0430 \u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f (128 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e 11 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0431\u0438\u0442\u043e\u0432).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3>Bit Timing<\/h3>\n<p><strong>Bit Timing<\/strong> (\u0411\u0438\u0442\u043e\u0432\u0430\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f) \u2014 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u0430\u0441\u043f\u0435\u043a\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f CAN-bus. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 CAN \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438 \u0442\u0430\u043a\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (\u043a\u0430\u043a \u0432 SPI \u0438\u043b\u0438 I2C), \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u0442\u0430 \u0441 \u0448\u0438\u043d\u044b.<br \/> \u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0443\u0437\u043b\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u043b\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430, \u043e\u0434\u0438\u043d \u043d\u043e\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u0442 \u0432 CAN \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 \u0447\u0435\u0442\u044b\u0440\u0435 \u043d\u0435\u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/community.st.com\/t5\/stm32-mcus\/can-bxcan-bit-time-configuration-on-stm32-mcus\/ta-p\/689864\" rel=\"noopener noreferrer nofollow\">CAN (bxCAN) bit time configuration on STM32 MCUs<\/a><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/664\/960\/a42\/664960a42f30d5f1109b1494bdaf17ad.png\" width=\"999\" height=\"584\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/664\/960\/a42\/664960a42f30d5f1109b1494bdaf17ad.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/664\/960\/a42\/664960a42f30d5f1109b1494bdaf17ad.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h4>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0431\u0438\u0442\u0430 (Segments)<\/h4>\n<p>\u041d\u043e\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0438\u0442\u0430 (Nominal Bit Time) \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043a\u0432\u0430\u043d\u0442\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (<strong>Time Quanta, t_q<\/strong>). \u041e\u0431\u0449\u0430\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0438\u0442\u0430 \u2014 \u044d\u0442\u043e \u0441\u0443\u043c\u043c\u0430 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<ol>\n<li>\n<p><strong>Sync_Seg (Synchronization Segment):<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0432\u0435\u043d 1 \\times t_q.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u0437\u043b\u043e\u0432. \u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0444\u0440\u043e\u043d\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (\u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0438\u0437 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0432 \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435) \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Prop_Seg (Propagation Segment):<\/strong> <\/p>\n<ul>\n<li>\n<p>\u041a\u043e\u043c\u043f\u0435\u043d\u0441\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430\u043c \u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 \u043f\u0440\u0438\u0435\u043c\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430\u0445 (\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430\u0445).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Phase_Seg1 \u0438 Phase_Seg2 (Phase Buffer Segments):<\/strong> <\/p>\n<ul>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0435\u043d\u0441\u0430\u0446\u0438\u0438 \u0444\u0430\u0437\u043e\u0432\u044b\u0445 \u0441\u0434\u0432\u0438\u0433\u043e\u0432, \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439 \u0432 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445 \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u044b\u0445 \u0440\u0435\u0437\u043e\u043d\u0430\u0442\u043e\u0440\u043e\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f <strong>Sample Point<\/strong> (\u0442\u043e\u0447\u043a\u0430 \u0441\u044d\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u2014 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0448\u0438\u043d\u044b.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>Sample Point (\u0422\u043e\u0447\u043a\u0430 \u0441\u044d\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f)<\/h4>\n<p>\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u041e\u043d\u0430 \u0432\u044b\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u043e\u0442 \u043e\u0431\u0449\u0435\u0439 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0442\u0430.<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 Sample Point \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u043d\u043e, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0438\u0442 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u0438\u0433\u043d\u0430\u043b \u0443\u0441\u043f\u0435\u0435\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u043e\u0437\u0434\u043d\u043e, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u043c\u0430\u0445\u043d\u0443\u0442\u044c\u0441\u044f \u0438\u0437-\u0437\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0440\u0435\u0439\u0444\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u0440\u0430\u0441\u043b\u0438 (CiA): \u041e\u0431\u044b\u0447\u043d\u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c Sample Point \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 <strong>87.5%<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043b\u044b \u043d\u0435 \u0440\u0430\u0437\u0431\u0435\u0433\u0430\u043b\u0438\u0441\u044c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432, CAN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<h3>Hard Synchronization (\u0416\u0435\u0441\u0442\u043a\u0430\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f)<\/h3>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0438\u0437 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0432 \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0430\u0434\u0440\u0430 (<strong>SOF<\/strong>). \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0442\u0430\u0439\u043c\u0435\u0440 \u0443\u0437\u043b\u0430 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u043e\u043b\u044c, \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442\u0441\u0447\u0435\u0442 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 <code>Sync_Seg<\/code>.<\/p>\n<h3>Resynchronization (\u0420\u0435\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f)<\/h3>\n<p>\u041f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043a\u0430\u0434\u0440\u0430 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 (\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f bit stuffing, \u043f\u0435\u0440\u0435\u043f\u0430\u0434\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e). \u0415\u0441\u043b\u0438 \u0444\u0440\u043e\u043d\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u0440\u0438\u0448\u0435\u043b \u043d\u0435 \u0432 <code>Sync_Seg<\/code>, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0444\u0430\u0437\u043e\u0432\u044b\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0444\u0440\u043e\u043d\u0442 \u043f\u0440\u0438\u0448\u0435\u043b <strong>\u043f\u043e\u0437\u0436\u0435<\/strong>, <code>Phase_Seg1<\/code> \u0443\u0434\u043b\u0438\u043d\u044f\u0435\u0442\u0441\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u0444\u0440\u043e\u043d\u0442 \u043f\u0440\u0438\u0448\u0435\u043b <strong>\u0440\u0430\u043d\u044c\u0448\u0435<\/strong>, <code>Phase_Seg2<\/code> \u0443\u043a\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <strong>SJW (Synchronization Jump Width)<\/strong> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0432\u0430\u043d\u0442\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 (t_q), \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0444\u0430\u0437\u043e\u0432\u044b\u0445 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0437\u0430 \u043e\u0434\u0438\u043d \u0446\u0438\u043a\u043b \u0440\u0435\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041f\u0440\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0435\u0442\u044c CAN (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u0438 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043d\u0430 Arduino\/STM32) \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 500 \u043a\u0431\u0438\u0442\/\u0441). \u0415\u0441\u043b\u0438 \u0443 \u0443\u0437\u043b\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 (\u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438), \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 Sample Points. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u0434\u0438\u043d \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0431\u0438\u0442 \u00ab0\u00bb, \u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0432 \u0442\u043e\u0442 \u0436\u0435 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0443\u0436\u0435 \u00ab1\u00bb \u0438\u0437-\u0437\u0430 \u0434\u0440\u0435\u0439\u0444\u0430. \u042d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u043e\u0448\u0438\u0431\u043a\u0430\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0430 (Form Error) \u0438\u043b\u0438 \u0431\u0438\u0442\u043e\u0432\u044b\u043c \u043e\u0448\u0438\u0431\u043a\u0430\u043c, \u0438 \u0448\u0438\u043d\u0430 \u043b\u044f\u0436\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441 <strong>Error Passive<\/strong> \u0438\u043b\u0438 <strong>Bus Off<\/strong>.<\/p>\n<h3>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 CAN FD \u0438 IoT<\/h3>\n<p>\u0421 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c \u0431\u0435\u0441\u043f\u0438\u043b\u043e\u0442\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e CAN \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 CAN FD:<\/strong> \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 8 \u0440\u0430\u0437 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044e (ADAS).<\/p>\n<\/li>\n<li>\n<p><strong>V2X \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c:<\/strong> \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0448\u0438\u043d \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e\u0432\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438 \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u0440\u043c\u043e\u0437\u0430\u043c\u0438 \u0438\u043b\u0438 \u0440\u0443\u043b\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<h2>STM32 motor-control \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u0432 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0431\u0435\u0441\u043a\u043e\u043b\u043b\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c (PMSM), \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u043e, \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0441\u0442\u043e\u043b\u043a\u043d\u0435\u0442\u0435\u0441\u044c \u0441 STM32 MCSDK. \u041d\u0430 Aliexpress \u0431\u044b\u043b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <a href=\"https:\/\/www.st.com\/en\/evaluation-tools\/p-nucleo-ihm03.html\" rel=\"noopener noreferrer nofollow\">P-NUCLEO-IHM03<\/a>.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ed\/186\/992\/4ed186992079671a7b1f8ed81b591245.png\" width=\"625\" height=\"559\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4ed\/186\/992\/4ed186992079671a7b1f8ed81b591245.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ed\/186\/992\/4ed186992079671a7b1f8ed81b591245.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0432\u044f\u0437\u043a\u0443 \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u043b\u0430\u0442:<\/p>\n<ol>\n<li>\n<p><strong>NUCLEO-G431RB<\/strong>: \u00ab\u041c\u043e\u0437\u0433\u0438\u00bb \u043d\u0430 \u0431\u0430\u0437\u0435 STM32G4 (Cortex-M4, 170 \u041c\u0413\u0446), \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>X-NUCLEO-IHM16M1<\/strong>: \u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u0447\u0438\u043f\u0430 <strong>STSPIN830<\/strong>, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0439 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043e 1.5 \u0410 RMS \u043f\u0440\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0434\u043e 45 \u0412.<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u0438\u0434\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c Gimbal <strong>GBM2804H-100T<\/strong> \u0438 \u0431\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043d\u0430 12\u0412 2\u0410.<\/p>\n<h4>Getting started with STM32 Motor Control<\/h4>\n<p>\u041d\u0430 Youtube \u043a\u0430\u043d\u0430\u043b\u0435 STMicroelectronics \u0435\u0441\u0442\u044c \u0440\u043e\u043b\u0438\u043a 5 \u043c\u0438\u043d <a href=\"https:\/\/www.youtube.com\/watch?v=iTnj0DT3lBM&amp;list=PLnMKNibPkDnGTAifVExzpTJjmF2b-SAw5&amp;index=2\" rel=\"noopener noreferrer nofollow\">Getting started with STM32 Motor control SDK6.0<\/a>. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f NUCLEO-G431RB. \u0422\u0435\u0437\u0438\u0441\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0448\u0430\u0433\u0438 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430.<\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c:<\/p>\n<ul>\n<li>\n<p><strong>\u0421\u0431\u043e\u0440\u043a\u0430:<\/strong> \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0441\u0438\u043b\u043e\u0432\u0443\u044e \u043f\u043b\u0430\u0442\u0443 <strong>X-NUCLEO-IHM16M1<\/strong> \u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u043b\u0430\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <strong>NUCLEO-G431RB<\/strong> \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u044a\u0435\u043c\u044b ST morpho (CN7 \u0438 CN10). \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043a\u043d\u043e\u043f\u043a\u0438 B1 (\u0441\u0438\u043d\u044f\u044f) \u0438 B2 (\u0447\u0435\u0440\u043d\u0430\u044f) \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 Nucleo \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f:<\/strong> \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0440\u0438 \u0444\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u043c\u043e\u0442\u043e\u0440\u0430 (U, V, W) \u043a \u043a\u043b\u0435\u043c\u043c\u043d\u0438\u043a\u0443 CN1 \u043d\u0430 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438 (Jumpers):<\/strong> \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 FOC (\u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f) \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 IHM16M1 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0438 <strong>J5 \u0438 J6<\/strong> \u0432 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 ON. \u041d\u0430 \u043f\u043b\u0430\u0442\u0435 Nucleo \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0430 JP5 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0432 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043e\u0442 USB.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0438\u0442\u0430\u043d\u0438\u0435:<\/strong> \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0431\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u043a\u0430 (12 \u0412, 2 \u0410) \u043a \u0440\u0430\u0437\u044a\u0435\u043c\u0443 J4.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 ST Motor Control Workbench<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e7c\/cee\/bed\/e7cceebed0840b16c351d76491abc766.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e7c\/cee\/bed\/e7cceebed0840b16c351d76491abc766.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e7c\/cee\/bed\/e7cceebed0840b16c351d76491abc766.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0440\u0438\u0441\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445:<\/p>\n<ul>\n<li>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a:<\/strong> \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 <strong>ST Motor Control Workbench<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442:<\/strong> \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>&#171;New Project&#187;<\/strong> \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u044d\u043a\u0440\u0430\u043d\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u044b\u0431\u043e\u0440 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f (General Info):<\/strong> \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00abHardware\u00bb \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 <strong>&#171;Pack&#187;<\/strong>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440, \u0433\u0434\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438 \u043c\u043e\u0442\u043e\u0440\u0430 \u0443\u0436\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u0412\u044b\u0431\u043e\u0440 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430:<\/strong> \u0412 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 <strong>P-NUCLEO-IHM03<\/strong>. \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u0431\u043e\u0440\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 <strong>&#171;OK&#187;<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0440\u0435\u0434\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440:<\/strong> \u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u00abProject View\u00bb, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u0441\u0445\u0435\u043c\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 (\u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0428\u0418\u041c, \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0430 \u0438 \u0442.\u0434.).<\/p>\n<\/li>\n<\/ul>\n<h3>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d7d\/d11\/845\/d7dd118450fb8a47a552d8797523ac22.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d7d\/d11\/845\/d7dd118450fb8a47a552d8797523ac22.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d7d\/d11\/845\/d7dd118450fb8a47a552d8797523ac22.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p><strong>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f:<\/strong> \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 <strong>&#171;Generate the project&#187;<\/strong> (\u0438\u043a\u043e\u043d\u043a\u0430 \u043f\u043e\u0434\u0430\u0440\u043a\u0430) \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438:<\/strong> \u0412 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043e\u043a\u043d\u0435 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (<strong>Target Toolchain<\/strong>) \u2014 <strong>STM32CubeIDE<\/strong>. \u0422\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0432\u0435\u0440\u0441\u0438\u044e STM32CubeMX \u0438 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 <strong>&#171;Generate&#187;<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>STM32CubeIDE:<\/strong> \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 STM32CubeIDE. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (Build) \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0432 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 ST-LINK.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u0434\u0430:<\/p>\n<ol>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0447\u0435\u0440\u043d\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443 <strong>Reset (B2)<\/strong> \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 Nucleo \u0434\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0441\u0438\u043d\u044e\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u043a\u043d\u043e\u043f\u043a\u0443 <strong>User (B1)<\/strong> \u2014 \u044d\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u0440\u0430\u0449\u0430\u0439\u0442\u0435 <strong>\u0441\u0438\u043d\u0438\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u043e\u043c\u0435\u0442\u0440<\/strong> \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 X-NUCLEO-IHM16M1.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u044b D8, D9 \u0438 D10 \u043d\u0430 \u0441\u0438\u043b\u043e\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0433\u043e\u0440\u0435\u0442\u044c\u0441\u044f, \u0438\u043d\u0434\u0438\u0446\u0438\u0440\u0443\u044f \u0440\u0430\u0431\u043e\u0442\u0443 \u0444\u0430\u0437.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u0441\u0438\u043d\u0435\u0439 \u043a\u043d\u043e\u043f\u043a\u0438 B1 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c<\/p>\n<\/li>\n<\/ol>\n<h4>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u043f\u0440\u0438\u0432\u043e\u0434\u0430<\/h4>\n<p>\u041f\u0440\u0438\u0432\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0446\u0435\u043b\u043e\u043c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u043c\u0435\u043d\u0435\u0435 1 \u041d\u043c. \u041d\u043e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439. \u0412 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0438\u043b\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Motor Pilot.<br \/> \u041e\u0434\u043d\u0430 \u0438\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f &#8212; \u044d\u0442\u043e \u0440\u044b\u0432\u043e\u043a \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 PID-\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u0434\u0430\u043b\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430. \u041a\u0430\u043a \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Target speed, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0432\u0435\u043d 524 RPM. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/195\/3aa\/162\/1953aa162fa6af591be1f135786a6c0d.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/195\/3aa\/162\/1953aa162fa6af591be1f135786a6c0d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/195\/3aa\/162\/1953aa162fa6af591be1f135786a6c0d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u044d\u0442\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>OBS_MINIMUM_SPEED_RPM<\/code> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>drive_parameters.h<\/code> \u0438\u043b\u0438 \u0432 CUBEMX \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>MotorControl.M1_OBS_MINIMUM_SPEED_RPM<\/code> <code>P-IHM03-Potentiometer.ioc<\/code>, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u0437 524 \u043d\u0430 10.<\/p>\n<pre><code class=\"cpp\">#define OBS_MINIMUM_SPEED_RPM 10<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>Motor Control SDK \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/h4>\n<p>Motor ControlWorkbench \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 HTML-\u0444\u043e\u0440\u043c\u0430\u0442\u0435. \u041f\u043e\u0440\u043e\u0439 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bf4\/57b\/96c\/bf457b96cd1ac5bfb64f989b0f8611d6.png\" width=\"1907\" height=\"726\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/bf4\/57b\/96c\/bf457b96cd1ac5bfb64f989b0f8611d6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bf4\/57b\/96c\/bf457b96cd1ac5bfb64f989b0f8611d6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u043e\u0434\u0438\u043d PDF-\u0444\u0430\u0439\u043b. \u0410 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0430\u043d\u0443\u0430\u043b \u0432 <a href=\"https:\/\/notebooklm.google.com\/\" rel=\"noopener noreferrer nofollow\">Notebook LM<\/a>.<\/p>\n<h2>\u0421\u0442\u0435\u043d\u0434 \u0434\u043b\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f GBM2804H-100T<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0442\u043e \u0441\u0442\u0435\u043d\u0434 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b \u0441 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u043e\u043c. \u0418\u043d\u0430\u0447\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c \u043d\u0443\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0440\u0443\u043a\u0430\u0445 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u044f\u0442\u044c. \u041f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u044e, \u0447\u0442\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 IHM-\u0431\u043b\u043e\u043a\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e. \u0423 \u043c\u0435\u043d\u044f \u0432 \u043a\u043e\u0440\u043e\u0431\u043a\u0435 \u043f\u044b\u043b\u0438\u043b\u0441\u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u0432\u043e\u0434 \u043e\u0442 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043c\u0430\u0433\u043d\u0438\u0442\u043e\u0444\u043e\u043d\u0430. \u042f \u0441\u043a\u0440\u0435\u043f\u0438\u043b \u043a\u0430\u0440\u043a\u0430\u0441 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043b\u044e\u043c\u0438\u043d\u0438\u0435\u0432\u043e\u0433\u043e \u0443\u0433\u043e\u043b\u043a\u0430 \u0438 \u043a\u0440\u0443\u0433\u0430 \u0438\u0437 \u0444\u0430\u043d\u0435\u0440\u044b \u0434\u0438\u0430\u043c\u0435\u0442\u0440\u043e\u043c 10 \u0441\u043c. \u0414\u043b\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043b \u043f\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u0432\u044b\u0439 \u0448\u043a\u0438\u0432 \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0437\u0438\u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u0441\u0441\u0438\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b \u0441\u043e \u0448\u043a\u0438\u0432\u043e\u043c \u043a\u0430\u0441\u0441\u0435\u0442\u043d\u0438\u043a\u0430.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/339\/604\/e7b\/339604e7b005d63a07fe881b555e48c1.png\" width=\"565\" height=\"593\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/339\/604\/e7b\/339604e7b005d63a07fe881b555e48c1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/339\/604\/e7b\/339604e7b005d63a07fe881b555e48c1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u043e\u043b\u0449\u0438\u043d\u0430 \u043e\u0442\u0432\u0435\u0440\u0441\u0442\u0438\u0439 \u0441 \u0440\u0435\u0437\u044c\u0431\u043e\u0439 \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0442\u0430\u0442\u043e\u0440\u0430 \u043c\u0435\u043d\u044c\u0448\u0435 \u0434\u043b\u0438\u043d\u044b \u043a\u0440\u0435\u043f\u0435\u0436\u043d\u044b\u0445 \u0431\u043e\u043b\u0442\u043e\u0432, \u0447\u0442\u043e \u0438\u0434\u0443\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0432\u0440\u0435\u0434\u0438\u0442\u044c \u043e\u0431\u043c\u043e\u0442\u043a\u0443 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u0435\u0441\u043b\u0438 \u043f\u043b\u043e\u0442\u043d\u043e \u0437\u0430\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u0442 \u0431\u0435\u0437 \u043a\u0430\u043a\u0439-\u043b\u0438\u0431\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u044b.<\/p>\n<h2>\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/h2>\n<p>\u041f\u0440\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e CAN-\u0448\u0438\u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 <strong>DBC<\/strong> (Data Base CAN) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u0442\u0430\u043f\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u042d\u0442\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0431\u0430\u0439\u0442\u044b \u0432 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0448\u0438\u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b: \u0430\u043c\u043f\u0435\u0440\u044b, \u0432\u043e\u043b\u044c\u0442\u044b \u0438 \u043e\u0431\u043e\u0440\u043e\u0442\u044b \u0432 \u043c\u0438\u043d\u0443\u0442\u0443.<\/p>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 CAN \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0444\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0446\u0438\u0440\u043a\u0443\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0432 \u0441\u0435\u0442\u0438. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0432 \u043a\u043e\u0434\u0435, \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0435 \u0435\u0434\u0438\u043d\u044b\u0439 \u0444\u0430\u0439\u043b-\u0441\u043b\u043e\u0432\u0430\u0440\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p><strong>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043a\u0430\u0434\u0440\u0430:<\/strong> \u041a\u0430\u043a\u0438\u0435 \u0431\u0438\u0442\u044b \u0437\u0430 \u043a\u0430\u043a\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435:<\/strong> \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u043f\u0435\u0440\u0435\u0441\u0447\u0435\u0442\u0430 (Factor\/Offset) \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0440\u043e\u0431\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c 0.0001 \u0434\u043b\u044f \u0442\u043e\u043a\u0430 <code>I_Q<\/code> \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435).<\/p>\n<\/li>\n<li>\n<p><strong>\u041b\u043e\u0433\u0438\u043a\u0443 \u0443\u0437\u043b\u043e\u0432:<\/strong> \u041a\u0442\u043e \u0432 \u0441\u0435\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u00ab\u0438\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u043c\u00bb \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>PMSM_NODE<\/code>), \u0430 \u043a\u0442\u043e \u2014 \u00ab\u043f\u043e\u0434\u043f\u0438\u0441\u0447\u0438\u043a\u043e\u043c\u00bb.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0443:<\/strong> \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>22<\/code> = <code>OTF_BRAKE<\/code>), \u0447\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443: \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 DBC-\u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438 \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u0438 \u0432 \u0441\u043e\u0444\u0442\u0435 \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043d\u0430 \u041f\u041a.<\/p>\n<h3>\u0424\u043e\u0440\u043c\u0430\u0442 DBC<\/h3>\n<p>\u0424\u043e\u0440\u043c\u0430\u0442 <strong>DBC<\/strong> (Data Base CAN) \u2014 \u044d\u0442\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 CAN-\u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0443\u0436\u0438\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u043e\u043c \u043c\u0435\u0436\u0434\u0443 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u0448\u0438\u043d\u044b \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 (\u0442\u043e\u043a, \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e <a href=\"https:\/\/www.csselectronics.com\/pages\/can-dbc-file-database-intro\" rel=\"noopener noreferrer nofollow\">CAN DBC File Explained<\/a>.<\/p>\n<h4>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:<\/h4>\n<ul>\n<li>\n<p><strong>Nodes (<\/strong><code><strong>BU_<\/strong><\/code><strong>)<\/strong>: \u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0437\u043b\u043e\u0432 (\u0431\u043b\u043e\u043a\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f), \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432 \u043e\u0431\u043c\u0435\u043d\u0435 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 &#8212; \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0443\u0437\u0435\u043b <code>PMSM_NODE<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Messages (<\/strong><code><strong>BO_<\/strong><\/code><strong>)<\/strong>: \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u0430\u0434\u0440\u043e\u0432 (\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439). \u041a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u0435\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ID (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>0\u0445100<\/code> \u0438\u043b\u0438 <code>0\u0445200<\/code>), \u0438\u043c\u044f, \u0434\u043b\u0438\u043d\u0443 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 (DLC) \u0438 \u0438\u043c\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p><strong>Signals (<\/strong><code><strong>SG_<\/strong><\/code><strong>)<\/strong>: \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f: <\/p>\n<ul>\n<li>\n<p><strong>Bit Layout<\/strong>: \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0438\u0442 \u0438 \u0434\u043b\u0438\u043d\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>32|32<\/code> \u0434\u043b\u044f <code>Power<\/code>).<\/p>\n<\/li>\n<li>\n<p><strong>Byte Order<\/strong>: <code>@1<\/code> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 Intel (Little Endian), \u0430 <code>+<\/code> \u0438\u043b\u0438 <code>-<\/code> \u043d\u0430 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0437\u043d\u0430\u043a\u0430 (Unsigned\/Signed).<\/p>\n<\/li>\n<li>\n<p><strong>Scaling<\/strong>: \u041a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 (Factor) \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 (Offset) \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0430\u043a\u0442\u043e\u0440 <code>0.0001<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u043a\u0430 <code>I_Q<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Limits<\/strong>: \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445. <\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Value Tables (<\/strong><code><strong>VAL_<\/strong><\/code><strong>)<\/strong>: \u0422\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442 \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043a\u043e\u0434\u044b \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u0438\u0434\u0435\u0442\u044c <code>RUN<\/code> \u0438\u043b\u0438 <code>FAULT<\/code> \u0432\u043c\u0435\u0441\u0442\u043e \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b <code>6<\/code> \u0438\u043b\u0438 <code>10<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Comments (<\/strong><code><strong>CM_<\/strong><\/code><strong>)<\/strong>: \u041e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>\"I_Q current\"<\/code>).<\/p>\n<\/li>\n<li>\n<p><strong>Attributes (<\/strong><code><strong>BA_<\/strong><\/code><strong>)<\/strong>: \u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0435\u0439 \u0441\u0435\u0442\u0438, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0448\u0438\u043d\u044b (<code>BusType<\/code>) \u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/197\/5ee\/483\/1975ee483ad6a2ebd3d3d2067fe8bb1f.png\" width=\"839\" height=\"200\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/197\/5ee\/483\/1975ee483ad6a2ebd3d3d2067fe8bb1f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/197\/5ee\/483\/1975ee483ad6a2ebd3d3d2067fe8bb1f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<p>\u042d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u044e\u0431\u043e\u043c\u0443 \u0441\u043e\u0444\u0442\u0443 (\u043e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0434\u0430) \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c 8 \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f <code>Speed_feedback_MSG<\/code> \u043a\u0430\u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u043e\u0431\u043e\u0440\u043e\u0442\u044b <code>RPM<\/code>.<\/p>\n<h3>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 DBC<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u2014 \u043e\u0442 \u0442\u044f\u0436\u0435\u043b\u044b\u0445 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0434\u043e \u043b\u0435\u0433\u043a\u0438\u0445 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u0443\u0442\u0438\u043b\u0438\u0442.<\/p>\n<h4>1. Vector CANdb++<\/h4>\n<p><a href=\"https:\/\/www.vector.com\/int\/en\/download\/candb-31-sp5\/\" rel=\"noopener noreferrer nofollow\">CANdb++<\/a> &#8212; \u044d\u0442\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0438 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440. \u041d\u0430 Youtube \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u043f\u043e <a href=\"https:\/\/www.youtube.com\/watch?v=Xnno4wTsi8Q\" rel=\"noopener noreferrer nofollow\">CANdb++<\/a> \u0438\u043b\u0438 \u043f\u043e \u043f\u0430\u043a\u0435\u0442\u0443 Vector CANoe, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0431\u0430\u0437\u044b.<\/p>\n<ul>\n<li>\n<p><strong>\u041f\u043b\u044e\u0441\u044b:<\/strong> \u0421\u0442\u0440\u043e\u0433\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0441\u0435\u0442\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c:<\/strong> \u042f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b Vector, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442, \u0435\u0441\u043b\u0438 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b CANalyzer \u0438\u043b\u0438 CANoe.<\/p>\n<\/li>\n<\/ul>\n<h4>2. Kvaser Database Editor<\/h4>\n<p>\u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u043e\u0442 \u0448\u0432\u0435\u0434\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 <a href=\"https:\/\/kvaser.com\/single-download\/?download_id=1011680435\" rel=\"noopener noreferrer nofollow\">Kvaser<\/a>.<\/p>\n<ul>\n<li>\n<p><strong>\u0414\u043b\u044f \u043a\u043e\u0433\u043e:<\/strong> \u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b Kvaser.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c:<\/strong> \u041e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0438 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441\u043e \u00ab\u0441\u0442\u0440\u043e\u0433\u0438\u043c\u00bb CANdb++. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044f \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 DBC.<\/p>\n<\/li>\n<\/ul>\n<h4>3. Open-source \u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b<\/h4>\n<ul>\n<li>\n<p><strong>SavvyCAN:<\/strong> \u041c\u043e\u0449\u043d\u044b\u0439 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0412 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 DBC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441 \u0448\u0438\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>Cantools (Python):<\/strong> \u041d\u0435 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435 \u0438\u043b\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c DBC \u0432 \u0434\u0440\u0443\u0433\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 JSON \u0438\u043b\u0438 C-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b).<\/p>\n<\/li>\n<li>\n<p><strong>DBC-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u044b VS Code:<\/strong> \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 DBC \u0441 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u0447\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u043f\u0440\u0430\u0432\u043a\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u0438\u043b\u0438 ID.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/h3>\n<p>\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 DBC \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432 Excel-\u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0413\u0434\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u0438\u043c\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, <\/p>\n<\/li>\n<li>\n<p>\u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, <\/p>\n<\/li>\n<li>\n<p>\u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0438 \u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, <\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/969\/571\/4cb\/9695714cb6240f32bf2b5f4ab5a38b27.png\" width=\"1405\" height=\"401\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/969\/571\/4cb\/9695714cb6240f32bf2b5f4ab5a38b27.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/969\/571\/4cb\/9695714cb6240f32bf2b5f4ab5a38b27.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438 \u044f\u0441\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0438\u0448\u0435\u043c CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0432 \u0432\u0438\u0434\u0435 \u0441\u043f\u0438\u0441\u043a\u0430. \u0414\u043b\u044f \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f. \u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f Motor Pilot, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0435\u043b\u0438\u0447\u0438\u043d. \u0417\u0430\u0431\u0435\u0433\u0430\u044f \u043d\u0430\u043f\u0435\u0440\u0435\u0434 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 IHM \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 1\u043a\u0413\u0446. \u041d\u043e \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043e\u0431\u043c\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u044b\u043b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 0.5 \u0413\u0446, \u0442.\u0435. \u0432\u0441\u0435 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0435 \u043f\u043e\u043b-\u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0423\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2c2\/3ff\/603\/2c23ff6036b243c0f47353a3f3eef41f.png\" width=\"1116\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2c2\/3ff\/603\/2c23ff6036b243c0f47353a3f3eef41f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2c2\/3ff\/603\/2c23ff6036b243c0f47353a3f3eef41f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>DBC-\u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432 CANdb++. \u041a\u043e\u0440\u043e\u0442\u043a\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438\u0437 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430. \u0412 Vector CANdb++ \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438: <strong>Network \u2192 Node \u2192 Message \u2192 Signal<\/strong>. \u041c\u043e\u0436\u043d\u043e \u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a \u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h3>1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 (Signals)<\/h3>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 (\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f).<\/p>\n<ul>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b Signals \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Speed_RPM<\/code>).<\/p>\n<\/li>\n<li>\n<p>Data Type: \u0432\u044b\u0431\u0440\u0430\u0442\u044c <code>Signed<\/code> \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441 \u043c\u0438\u043d\u0443\u0441\u043e\u043c (\u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u043b\u044f \u043e\u0431\u043e\u0440\u043e\u0442\u043e\u0432 [-1750|1750] ) \u0438\u043b\u0438 <code>Unsigned<\/code> \u0434\u043b\u044f \u0442\u043e\u043a\u043e\u0432 \u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>Factor\/Offset: \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u043b\u044f \u0442\u043e\u043a\u0430 <code>I_Q<\/code> \u0441\u0442\u043e\u0438\u0442 \u0444\u0430\u043a\u0442\u043e\u0440 0.0001, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u043e \u0434\u0435\u0441\u044f\u0442\u044b\u0445 \u0434\u043e\u043b\u0435\u0439 \u043c\u0438\u043b\u043b\u0438\u0430\u043c\u043f\u0435\u0440\u0430 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0446\u0435\u043b\u043e\u043c \u0447\u0438\u0441\u043b\u0435.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a4\/400\/311\/1a440031107e72f7ec6dbad8ee1eb6f0.png\" alt=\"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430\" title=\"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430\" width=\"458\" height=\"443\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1a4\/400\/311\/1a440031107e72f7ec6dbad8ee1eb6f0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a4\/400\/311\/1a440031107e72f7ec6dbad8ee1eb6f0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fb7\/892\/2ed\/fb78922edece01757b4a9508221ce21d.png\" alt=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430\" title=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430\" width=\"458\" height=\"359\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/fb7\/892\/2ed\/fb78922edece01757b4a9508221ce21d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/fb7\/892\/2ed\/fb78922edece01757b4a9508221ce21d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/figcaption><\/div>\n<\/figure>\n<h3>2. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 (Messages)<\/h3>\n<p>\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 (\u0444\u0440\u0435\u0439\u043c), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u044b.<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <strong>Messages<\/strong> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>Speed_feedback_MSG<\/code>).<\/p>\n<\/li>\n<li>\n<p><strong>ID:<\/strong> \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0432 Hex \u0438\u043b\u0438 Decimal.<\/p>\n<\/li>\n<li>\n<p><strong>DLC:<\/strong> \u0423\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u043b\u0438\u043d\u0443 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 (\u043e\u0442 1 \u0434\u043e 8).<\/p>\n<\/li>\n<li>\n<p><strong>Layout:<\/strong> \u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0445 \u043f\u043e \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u0441\u0435\u0442\u043a\u0435. \u0421\u043b\u0435\u0434\u0438\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u043b\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/855\/869\/77d\/85586977d6b8b072dce38516aba918cb.png\" alt=\"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\" title=\"\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\" width=\"423\" height=\"300\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/855\/869\/77d\/85586977d6b8b072dce38516aba918cb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/855\/869\/77d\/85586977d6b8b072dce38516aba918cb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d86\/0ae\/185\/d860ae185b4c7363c82542424534f9db.png\" alt=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\" title=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\" width=\"507\" height=\"298\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d86\/0ae\/185\/d860ae185b4c7363c82542424534f9db.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d86\/0ae\/185\/d860ae185b4c7363c82542424534f9db.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40b\/5b8\/a9c\/40b5b8a9caae18b48c603d5a3eee0bf2.png\" alt=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0432\u043a\u043b\u0430\u0434\u043a\u0430 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438\" title=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0432\u043a\u043b\u0430\u0434\u043a\u0430 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438\" width=\"562\" height=\"195\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/40b\/5b8\/a9c\/40b5b8a9caae18b48c603d5a3eee0bf2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/40b\/5b8\/a9c\/40b5b8a9caae18b48c603d5a3eee0bf2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0432\u043a\u043b\u0430\u0434\u043a\u0430 \u0441 \u0441\u0438\u0433\u043d\u0430\u043b\u0430\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30c\/df2\/dfc\/30cdf2dfc972cac9967f84d29bc244fc.png\" alt=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0431\u0430\u0439\u0442\u043d\u043e\" title=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0431\u0430\u0439\u0442\u043d\u043e\" width=\"1305\" height=\"754\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/30c\/df2\/dfc\/30cdf2dfc972cac9967f84d29bc244fc.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/30c\/df2\/dfc\/30cdf2dfc972cac9967f84d29bc244fc.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u043e\u0431\u0430\u0439\u0442\u043d\u043e<\/figcaption><\/div>\n<\/figure>\n<h3>3. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432 (Network Nodes)<\/h3>\n<p>\u0423\u0437\u043b\u044b \u2014 \u044d\u0442\u043e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0441\u0435\u0442\u0438 (\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b).<\/p>\n<ul>\n<li>\n<p>\u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Nodes \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0437\u0435\u043b <code>PMSM_NODE<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043a \u0443\u0437\u043b\u0443: \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 (Transmitted), \u0430 \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 (Received). \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u041f\u041e.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/50c\/983\/647\/50c9836473e0d26b87cca0d09ad5bfc0.png\" alt=\"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430\" title=\"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430\" width=\"454\" height=\"233\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/50c\/983\/647\/50c9836473e0d26b87cca0d09ad5bfc0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/50c\/983\/647\/50c9836473e0d26b87cca0d09ad5bfc0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0437\u043b\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043a \u043d\u043e\u0434\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0435 \u0432\u043f\u043e\u043b\u043d\u0435 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e. \u0412\u043a\u043b\u0430\u0434\u043a\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0438\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u043d\u0430 \u0441\u043e\u043e\u0442\u0432. \u0432\u043a\u043b\u0430\u0434\u043a\u0430\u0445. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b4\/a5d\/c4d\/4b4a5dc4dcba0400922c55804417862f.png\" alt=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\" title=\"\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\" width=\"752\" height=\"499\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4b4\/a5d\/c4d\/4b4a5dc4dcba0400922c55804417862f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b4\/a5d\/c4d\/4b4a5dc4dcba0400922c55804417862f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0437\u043b\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/figcaption><\/div>\n<\/figure>\n<p>\u041a \u0441\u043b\u043e\u0432\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0434\u044b \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u043e\u0441\u0438\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u0438 \u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0435 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442. <\/p>\n<h3>4. \u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 (Value Tables)<\/h3>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0443\u0434\u043e\u0431\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435. \u0414\u0430\u043d\u043d\u044b\u0435 \u0447\u0438\u0441\u0435\u043b \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430.<br \/> \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0433\u0430\u0434\u0430\u0442\u044c, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 <code>Motor_State = 6<\/code>, \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0432 Value Tables (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>MotorStates<\/code>).<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u044b \u0447\u0438\u0441\u043b\u043e-\u0442\u0435\u043a\u0441\u0442: <code>0<\/code> \u2014 <code>IDLE<\/code>, <code>6<\/code> \u2014 <code>RUN<\/code>, <code>10<\/code> \u2014 <code>FAULT<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u044d\u0442\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0443 \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Value Descriptions.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/516\/a09\/e44\/516a09e445370a284743ed80f46677b9.png\" alt=\"\u041c\u0435\u043d\u044e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 (Value Tables)\" title=\"\u041c\u0435\u043d\u044e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 (Value Tables)\" width=\"579\" height=\"283\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/516\/a09\/e44\/516a09e445370a284743ed80f46677b9.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/516\/a09\/e44\/516a09e445370a284743ed80f46677b9.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041c\u0435\u043d\u044e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430\u043c\u0438 (Value Tables)<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7d6\/b07\/3cf\/7d6b073cffc7461f49324f6c9946d26d.png\" alt=\"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 Value Table\" title=\"\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 Value Table\" width=\"558\" height=\"330\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7d6\/b07\/3cf\/7d6b073cffc7461f49324f6c9946d26d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7d6\/b07\/3cf\/7d6b073cffc7461f49324f6c9946d26d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 Value Table<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0434\u0432\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b: <\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f <\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5d2\/51f\/2f8\/5d251f2f8a21142a41c7b020950d8d7e.png\" alt=\"Value Table - \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f\" title=\"Value Table - \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f\" width=\"752\" height=\"499\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5d2\/51f\/2f8\/5d251f2f8a21142a41c7b020950d8d7e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5d2\/51f\/2f8\/5d251f2f8a21142a41c7b020950d8d7e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Value Table &#8212; \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f<\/figcaption><\/div>\n<\/figure>\n<ul>\n<li>\n<p>\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c77\/7da\/65c\/c777da65c4335b1ab75dc9602bdbafa4.png\" alt=\"Value Table - \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\" title=\"Value Table - \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\" width=\"752\" height=\"499\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c77\/7da\/65c\/c777da65c4335b1ab75dc9602bdbafa4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c77\/7da\/65c\/c777da65c4335b1ab75dc9602bdbafa4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Value Table &#8212; \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/figcaption><\/div>\n<\/figure>\n<h4>\u041f\u0435\u0440\u0435\u0447\u0435\u043d\u044c CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435<\/h4>\n<h3>Curr_Amp_feedback_MSG &#8212; \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u043e\u0432 d \u0438 q \u043e\u0441\u0435\u0439<\/h3>\n<ul>\n<li>\n<p>CAN-ID 0x210<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 &#8212; 8 \u0431\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b <\/p>\n<ul>\n<li>\n<p>I_D &#8212; \u0442\u043e\u043a d-\u043e\u0441\u0438<\/p>\n<\/li>\n<li>\n<p>I_Q &#8212; \u0442\u043e\u043a q-\u043e\u0441\u0438<\/p>\n<\/li>\n<li>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0442\u043e\u043a\u043e\u0432: <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 &#8212; 4 \u0431\u0430\u0439\u0442\u0430 (32 \u0431\u0438\u0442\u0430) \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 0.0001 \u0432\u044b\u0431\u0440\u0430\u043d \u0434\u043b\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441 Motor Pilot<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0435\u0434\u0435\u043b\u044b 0 &#8230; 5 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438)<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 Layout &#8212; \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>PID_feedback_MSG &#8212; \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 PID-\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430<\/h3>\n<ul>\n<li>\n<p>CAN-ID 0x230<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 &#8212; 8 \u0431\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b: <\/p>\n<ul>\n<li>\n<p>PID_SPEED_KI<\/p>\n<\/li>\n<li>\n<p>PID_SPEED_KP<\/p>\n<\/li>\n<li>\n<p>PID_TORQUE_KI<\/p>\n<\/li>\n<li>\n<p>PID_TORQUE_KP<\/p>\n<\/li>\n<li>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432: <\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430 (16 \u0431\u0438\u0442) \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 Layout &#8212; \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Speed_control_MSG &#8212; \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434: \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430, \u0441\u0431\u0440\u043e\u0441\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f<\/h3>\n<ul>\n<li>\n<p>CAN-ID 0x100<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 &#8212; 6 \u0431\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b: <\/p>\n<ul>\n<li>\n<p>Control_CMD <\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440  1 \u0431\u0430\u0439\u0442 (8 \u0431\u0438\u0442) \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0439<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Speed_RPM <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 &#8212; 4 \u0431\u0430\u0439\u0442\u0430 (32 \u0431\u0438\u0442\u0430) \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: \u043c\u0438\u043d\u0443\u0441 1750 &#8230; 1750 <\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Speed_feedback_MSG &#8212; \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f<\/h3>\n<ul>\n<li>\n<p>CAN-ID 0x200<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 &#8212; 6 \u0431\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b: <\/p>\n<ul>\n<li>\n<p>Motor_State <\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440  1 \u0431\u0430\u0439\u0442 (8 \u0431\u0438\u0442) \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0439<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Speed_RPM <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 &#8212; 4 \u0431\u0430\u0439\u0442\u0430 (32 \u0431\u0438\u0442\u0430) \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: \u043c\u0438\u043d\u0443\u0441 1750 &#8230; 1750 <\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Torque_Power_feedback_MSG &#8212; \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u043c\u0435\u043d\u0442\u0430<\/h3>\n<p>\u041f\u043e \u043f\u0440\u0430\u0432\u0434\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0442\u043e\u043a\u0430 I_Q, \u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0448\u0438\u043b \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c.<\/p>\n<ul>\n<li>\n<p>CAN-ID 0x240<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 &#8212; 8 \u0431\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b: <\/p>\n<ul>\n<li>\n<p>Torque <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 &#8212; 4 \u0431\u0430\u0439\u0442\u0430 (32 \u0431\u0438\u0442\u0430) \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: \u043c\u0438\u043d\u0443\u0441 2 &#8230; 2<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Power <\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u043c\u0435\u0440 &#8212; 4 \u0431\u0430\u0439\u0442\u0430 (32 \u0431\u0438\u0442\u0430) \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: 0 &#8230; 24<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Voltage_Temper_feedback_MSG &#8212; \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u0438 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b<\/h3>\n<ul>\n<li>\n<p>CAN-ID 0x220<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 &#8212; 8 \u0431\u0430\u0439\u0442\u043e\u0432<\/p>\n<\/li>\n<li>\n<p>\u0421\u0438\u0433\u043d\u0430\u043b\u044b: <\/p>\n<ul>\n<li>\n<p>Bus_Voltage <\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430 (16 \u0431\u0438\u0442) \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: 0 &#8230; 45<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Temperature <\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u043c\u0435\u0440 \u0434\u0432\u0430 \u0431\u0430\u0439\u0442\u0430 (16 \u0431\u0438\u0442) \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u0430\u0439\u0442\u043e\u0432 &#8212; Intel<\/p>\n<\/li>\n<li>\n<p>\u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d: 0 &#8230; 200<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u0430\u043a PMSM-demo.dbc<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5f\/c00\/f64\/c5fc00f6428b453d06a762544816f2ae.png\" alt=\"PMSM-demo.dbc\" title=\"PMSM-demo.dbc\" width=\"1371\" height=\"746\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c5f\/c00\/f64\/c5fc00f6428b453d06a762544816f2ae.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5f\/c00\/f64\/c5fc00f6428b453d06a762544816f2ae.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>PMSM-demo.dbc<\/figcaption><\/div>\n<\/figure>\n<h2>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 cantools<\/h2>\n<p><a href=\"https:\/\/cantools.readthedocs.io\/en\/latest\/index.html\" rel=\"noopener noreferrer nofollow\">cantools<\/a> &#8212; \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0443\u0442\u0438\u043b\u0438\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f Python 3, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043c\u0435\u0435\u0442 \u043f\u0430\u0440\u0441\u0438\u0442\u044c, \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a CAN-\u0448\u0438\u043d\u044b. \u041d\u043e \u0435\u0451 \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u043c Python:<\/p>\n<pre><code class=\"bash\">python3 -m pip install cantools<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h4>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f C-\u043a\u043e\u0434\u0430 \u0438\u0437 DBC<\/h4>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 <code>generate_c_source<\/code> \u0431\u0435\u0440\u0435\u0442 \u0432\u0430\u0448 \u0444\u0430\u0439\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>PMSM-demo.dbc<\/code> ) \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0430\u0440\u0443 \u0444\u0430\u0439\u043b\u043e\u0432 (<code>.h<\/code> \u0438 <code>.c<\/code>), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442:<\/p>\n<ul>\n<li>\n<p>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 (pack) \u0438 \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 (unpack).<\/p>\n<\/li>\n<li>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 (\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 Factor \u0438 Offset).<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/strong><\/p>\n<pre><code class=\"bash\">cantools generate_c_source --use-float --database-name can_driver PMSM-demo.dbc<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><strong>\u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432:<\/strong><\/p>\n<ul>\n<li>\n<p><code>--use-float<\/code>: \u041f\u0440\u0438\u043d\u0443\u0436\u0434\u0430\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0438\u043f <code>float<\/code> \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0432 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c (float), \u0430 \u043d\u0435 \u0434\u0432\u043e\u0439\u043d\u0443\u044e (double).<\/p>\n<\/li>\n<li>\n<p><code>--database-name can_driver<\/code>: \u0417\u0430\u0434\u0430\u0435\u0442 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0434\u043b\u044f \u0438\u043c\u0435\u043d \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>can_driver_pmsm_node_unpack<\/code>). \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0438\u043c\u0435\u043d \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><code>PMSM-demo.dbc<\/code>: \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0432\u0430\u0448\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u044b <code>can_driver.h<\/code> \u0438 <code>can_driver.c<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f STM32 \u0438\u043b\u0438 ESP32) \u0432\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0442\u043e\u043a\u0430:<\/p>\n<pre><code class=\"cpp\">struct can_driver_speed_feedback_msg_t speed_msg;can_driver_speed_feedback_msg_unpack(&amp;speed_msg, can_rx_data, 6);printf(\"Current speed: %f RPM\\n\", speed_msg.speed_rpm);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CAN-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 P-IHM03<\/h2>\n<h3>\u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 STM32G431RBT \u043e\u0441\u043d\u0430\u0449\u0435\u043d CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b FDCAN \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c CANBUS. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/controllerstech.com\/fdcan-normal-mode-stm32\/\" rel=\"noopener noreferrer nofollow\">Getting Started with FDCAN Normal Mode on STM32<\/a> \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c FDCAN \u0432 STM32. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u043e \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0444\u0440\u0435\u0439\u043c\u0430 Classic Mode \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0447\u0438\u043f\u043e\u043c MCP2515.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a CAN-\u0448\u0438\u043d\u0435 \u043f\u043b\u0430\u0442\u044b NUCLEO-G431RB \u0432\u044b\u0431\u0440\u0430\u043d \u043c\u043e\u0434\u0443\u043b\u044c CAN-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 <a href=\"https:\/\/www.ti.com\/lit\/ds\/symlink\/sn65hvd230.pdf\" rel=\"noopener noreferrer nofollow\">SN65HVD230<\/a><\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/481\/81a\/16c\/48181a16cca409984f6960da184fad1f.png\" alt=\"SN65HVD230 - \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\" title=\"SN65HVD230 - \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\" width=\"361\" height=\"316\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/481\/81a\/16c\/48181a16cca409984f6960da184fad1f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/481\/81a\/16c\/48181a16cca409984f6960da184fad1f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><a href=\"https:\/\/www.ti.com\/lit\/ds\/symlink\/sn65hvd230.pdf\" rel=\"noopener noreferrer nofollow\">SN65HVD230<\/a> &#8212; \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 CAN-\u0448\u0438\u043d\u044b \u043a USB \u043d\u0430 PC \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u044b CAN-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0440\u044b, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0441 TSMaster:<\/p>\n<p><strong>CANable V1.0 Nano<\/strong> <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/391\/799\/1f1\/3917991f11af534a3f2425033608ec34.png\" width=\"564\" height=\"235\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/391\/799\/1f1\/3917991f11af534a3f2425033608ec34.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/391\/799\/1f1\/3917991f11af534a3f2425033608ec34.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p>\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440: Nano (v 1.0)  <\/p>\n<\/li>\n<li>\n<p>\u0427\u0438\u043f: STM32F072 + TJA1050 <\/p>\n<\/li>\n<li>\n<p>LED \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.  <\/p>\n<\/li>\n<li>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 BOOT (DFU \u0440\u0435\u0436\u0438\u043c).  <\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u044f.  <\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u044a\u0435\u043c: Type-C USB  <\/p>\n<\/li>\n<li>\n<p>\u041f\u0438\u0442\u0430\u043d\u0438\u0435: 5\u0412 (USB)  <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435: CAN-H, CAN-L.  <\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u044a\u0435\u043c\u044b (4 \u0448\u0442): CANH, CANL, 5v (output), GND.  <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CAN 2.0A, CAN 2.0B.  <\/p>\n<\/li>\n<li>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: \u0434\u043e 1M.  <\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430: Pcan (Canable)  <\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0435 \u041f\u041e: Cangaroo, PCAN-View.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 <a href=\"https:\/\/github.com\/moonglow\/pcan_cantact\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/moonglow\/pcan_cantact<\/a><\/p>\n<\/li>\n<\/ul>\n<p><strong>CAN CANable v1.0 Pro<\/strong><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0dd\/3eb\/ca9\/0dd3ebca9f6df4c509588e5c9120e55b.png\" width=\"850\" height=\"850\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0dd\/3eb\/ca9\/0dd3ebca9f6df4c509588e5c9120e55b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0dd\/3eb\/ca9\/0dd3ebca9f6df4c509588e5c9120e55b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p>\u0424\u043e\u0440\u043c-\u0444\u0430\u043a\u0442\u043e\u0440: CANable Pro (v 1.0)  <\/p>\n<\/li>\n<li>\n<p>\u0427\u0438\u043f: STM32F072 + ADM3053 (ADM3053BRWZ)  <\/p>\n<\/li>\n<li>\n<p>LED \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.  <\/p>\n<\/li>\n<li>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 BOOT (DFU \u0440\u0435\u0436\u0438\u043c).  <\/p>\n<\/li>\n<li>\n<p>\u0422\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0430 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u044f.  <\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u044a\u0435\u043c: Type-C USB  <\/p>\n<\/li>\n<li>\n<p>\u041f\u0438\u0442\u0430\u043d\u0438\u0435: 5\u0412 (USB)  <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435: CAN-H, CAN-L.  <\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u044a\u0435\u043c\u044b: CANH, CANL, 5v (output), GND.  <\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 CAN 2.0A, CAN 2.0B.  <\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u043a\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: \u0434\u043e 1M.  <\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430: <a href=\"https:\/\/github.com\/Macrobase-tech\/MKS-CANable\" rel=\"noopener noreferrer nofollow\">Canable<\/a>  <\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0435 \u041f\u041e: Cangaroo<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e CUBEMX FDCAN GPIO Settings:<\/p>\n<ul>\n<li>\n<p>PA12 &#8212; FDCAN1_TX<\/p>\n<\/li>\n<li>\n<p>PB8 &#8212; FDCAN1_RX<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/112\/7ca\/b44\/1127cab44b5777899a4b300439df7f63.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/112\/7ca\/b44\/1127cab44b5777899a4b300439df7f63.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/112\/7ca\/b44\/1127cab44b5777899a4b300439df7f63.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0441\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0432\u044b\u0432\u043e\u0434\u044b RX, TX, +3.3V, GND \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ab\/7d3\/c29\/9ab7d3c299767a79ea3fbf5136e0b626.png\" width=\"1044\" height=\"878\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9ab\/7d3\/c29\/9ab7d3c299767a79ea3fbf5136e0b626.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ab\/7d3\/c29\/9ab7d3c299767a79ea3fbf5136e0b626.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 \u043a \u043f\u043b\u0430\u0442\u0435 NUCLEO-G431RB \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043d\u0430 \u043c\u0430\u043a\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0435<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/68e\/1a3\/276\/68e1a32766af22c86d50f71d1e46e716.png\" width=\"696\" height=\"428\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/68e\/1a3\/276\/68e1a32766af22c86d50f71d1e46e716.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/68e\/1a3\/276\/68e1a32766af22c86d50f71d1e46e716.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 CUBEMX-\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f STM32G431RBT \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 P-HMI, \u043d\u043e \u0443\u0436\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 FDCAN. \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0447\u0435\u043a\u0431\u043e\u043a\u0441 <code>Activated<\/code>. \u0410 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c <code>Basic Parameters<\/code>. <\/p>\n<ul>\n<li>\n<p><code>Frame Format<\/code> \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>Classic mode<\/code><\/p>\n<\/li>\n<li>\n<p><code>Mode<\/code> \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>Normal mode<\/code> <code>Auto retransmission<\/code>, <code>Transmit pause<\/code>, <code>Protocol Exception<\/code> \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. <code>Tx Fifo Queue Mode<\/code> \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c <code>FIFO mode<\/code>. \u041f\u0440\u0438\u043c\u0435\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 500 kbit\/sec &#8212; \u043a\u0430\u043a \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439. \u0412 Basic Parameters \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f, \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0431\u0443\u0444\u0435\u0440\u0430 (\u0441\u043c Bit Timing). \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u043c <a href=\"https:\/\/kvaser.com\/support\/calculators\/can-fd-bit-timing-calculator\" rel=\"noopener noreferrer nofollow\">Bit Timing Calculator for CAN FD<\/a>. <\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0448\u0438\u043d\u044b <code>Clock Frequency<\/code> \u043d\u0430 FDCAN. \u0418\u0434\u0435\u043c \u0432 CUBEMX Clock Configuration. \u041f\u043e\u0441\u043b\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0432\u043d\u043e 170 MHz. \u0412\u043e\u043f\u0440\u043e\u0441 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f STM32 &#8212; \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0442\u0435\u043c\u0430. \u041e\u0441\u0442\u0430\u0432\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f FDCAN \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/177\/5c7\/9d9\/1775c79d9c023b013b81844d390040e7.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/177\/5c7\/9d9\/1775c79d9c023b013b81844d390040e7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/177\/5c7\/9d9\/1775c79d9c023b013b81844d390040e7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e\u0442\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043a\u0432\u0430\u0440\u0446\u0435\u0432\u043e\u0433\u043e \u0440\u0435\u0437\u043e\u043d\u0430\u0442\u043e\u0440\u0430 &#8212; <code>Clock Tolerance<\/code>. \u041d\u0430 \u043f\u043b\u0430\u0442\u0435 NUCLEO-G431RB \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d \u0440\u0435\u0437\u043e\u043d\u0430\u0442\u043e\u0440 <a href=\"https:\/\/www.ndk.com\/images\/products\/catalog\/c_NX2016SA_e.pdf\" rel=\"noopener noreferrer nofollow\">NX2016SA<\/a>. \u0412 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043e Frequency Tolerance (25 \u00b13 \u00b0C) = \u00b110 \u00d7 10^{-6} \u0438\u043b\u0438 1 ppm.<br \/> \u0414\u0430\u043b\u0435\u0435 \u0438\u0437 <a href=\"https:\/\/www.ti.com\/lit\/ds\/symlink\/sn65hvd230.pdf\" rel=\"noopener noreferrer nofollow\">\u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0430<\/a> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f <code>Propagation Delay<\/code> \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430. \u0412 \u043c\u043e\u0434\u0443\u043b\u0435 SN65HVD230 \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0432\u043e\u0434\u043e\u043c RS \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 \u0438 GND \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 10\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Propagation delay RS with 10 k\u2126 to ground, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 125ns.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c65\/977\/1dd\/c659771ddfdee445600240d1edeaa3f7.png\" width=\"728\" height=\"153\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c65\/977\/1dd\/c659771ddfdee445600240d1edeaa3f7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c65\/977\/1dd\/c659771ddfdee445600240d1edeaa3f7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u044b\u0431\u043e\u0440 \u0442\u043e\u0447\u043a\u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 Sample point &#8212; \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441 \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c\u044e \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u0432 \u043a\u0430\u0431\u0435\u043b\u0435 \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c\u044e \u043a \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<ul>\n<li>\n<p><strong>\u0414\u043b\u044f Nominal Bit (\u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436):<\/strong> \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u043c \u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>87.5%<\/strong>. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 CANopen \u0438 DeviceNet. \u0414\u043b\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 1 \u041c\u0431\u0438\u0442\/\u0441 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u0440\u044c\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 75% \u0434\u043e 90%.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u043b\u044f Data Bit (\u0444\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445):<\/strong> \u0418\u0437-\u0437\u0430 \u043e\u0447\u0435\u043d\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0445 \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u0432 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u043e\u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f (\u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430) \u0432 \u0444\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442 <strong>\u0440\u0430\u043d\u044c\u0448\u0435<\/strong>, \u0447\u0435\u043c \u0432 \u043d\u043e\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439. \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0435\u0439 (2-5 \u041c\u0431\u0438\u0442\/\u0441) \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 <strong>60\u201380%<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/299\/4c5\/5a4\/2994c55a4e8816e5f97269ddc003def2.png\" width=\"878\" height=\"337\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/299\/4c5\/5a4\/2994c55a4e8816e5f97269ddc003def2.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/299\/4c5\/5a4\/2994c55a4e8816e5f97269ddc003def2.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u043b\u044f \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 CAN-\u0448\u0438\u043d\u044b \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043a \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0440\u043e\u043b\u044c, \u0447\u0435\u043c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0438. \u041c\u0435\u0442\u043e\u0434\u043e\u043c \u043f\u043e\u0434\u0431\u043e\u0440\u0430 \u0432 Kvaser-\u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044b Sample point 85% \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f Nominal baud rate \u0438 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u044b\u0445 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f CUBEMX. \u041d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f, \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0441\u0435\u0442\u0438. \u0412\u044b\u0441\u0442\u0430\u0432\u0438\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:<\/p>\n<ul>\n<li>\n<p><code>Nominal Prescaler<\/code> = 17<\/p>\n<\/li>\n<li>\n<p><code>Nominal Time Seg 1<\/code> = 16<\/p>\n<\/li>\n<li>\n<p><code>Nominal time Seg 2<\/code> = 3 \u041f\u043e\u043b\u0443\u0447\u0438\u043c <code>Nominal Baud Rate<\/code> = 500000 bit\/s, \u0447\u0442\u043e \u043d\u0430\u043c \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u041f\u0440\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f\u0445 \u043f\u0440\u0435\u0434\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 499999 bit\/s, \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u0438 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0438\u043c.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2f0\/b1c\/49a\/2f0b1c49a4c93827d853a73e1b908c80.png\" width=\"1323\" height=\"410\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/2f0\/b1c\/49a\/2f0b1c49a4c93827d853a73e1b908c80.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2f0\/b1c\/49a\/2f0b1c49a4c93827d853a73e1b908c80.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/74d\/30d\/c6f\/74d30dc6fd2d6568879fd99e760231db.png\" width=\"1080\" height=\"373\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/74d\/30d\/c6f\/74d30dc6fd2d6568879fd99e760231db.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/74d\/30d\/c6f\/74d30dc6fd2d6568879fd99e760231db.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p><code>Std Filters Nbr<\/code> \u2014 \u044d\u0442\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 (ID) \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 1 \u0444\u0438\u043b\u044c\u0442\u0440 \u0434\u043b\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 ID 0x100.<br \/> \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>Ext Filters Nbr<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430 0, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b.<br \/> \u0414\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>RX FIFO 0<\/code>. \u0412\u0441\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043e 64 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 FIFO, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u043e 64 \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 FDCAN \u0432 CUBEMX \u043c\u043e\u0436\u043d\u043e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/719358\/\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 FDCAN \u0432 CubeMx<\/a>. \u041d\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 FDCAN \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0440\u0438\u0439 \u0447\u0438\u043f\u043e\u0432.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/29e\/cfd\/8c3\/29ecfd8c32f90efeddff852dcbf6648d.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/29e\/cfd\/8c3\/29ecfd8c32f90efeddff852dcbf6648d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/29e\/cfd\/8c3\/29ecfd8c32f90efeddff852dcbf6648d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432 callback-\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0444\u043b\u0430\u0433 <code>Enabled<\/code> \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 <code>NVIC settings<\/code><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8f2\/158\/646\/8f215864672c7f7ec3b7955f5eb160bb.png\" width=\"698\" height=\"173\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8f2\/158\/646\/8f215864672c7f7ec3b7955f5eb160bb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8f2\/158\/646\/8f215864672c7f7ec3b7955f5eb160bb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0438\u043d\u043e\u0432 RX, TX \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e \u0447\u0435\u043c \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435, \u0442.\u043a. \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0436\u0435 \u0437\u0430\u043d\u044f\u0442\u044b.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0aa\/8ab\/e7e\/0aa8abe7e0694f270882b81ba83dbf93.png\" width=\"687\" height=\"178\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0aa\/8ab\/e7e\/0aa8abe7e0694f270882b81ba83dbf93.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0aa\/8ab\/e7e\/0aa8abe7e0694f270882b81ba83dbf93.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f FDCAN \u0441 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430 TIM1. \u0422.\u0435. \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0431\u044b\u0442\u0438\u044f \u043d\u043e\u0432\u043e\u0433\u043e CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u0433\u043b\u0430 \u0437\u0430\u0432\u0438\u0441\u043d\u0443\u0442\u044c \u0438\u043b\u0438 \u0443\u043f\u0430\u0441\u0442\u044c \u0432 \u043e\u0448\u0438\u0431\u043a\u0443. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0438\u043b\u0430\u0441\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439 FDCAN1 \u043d\u0438\u0436\u0435, \u0447\u0435\u043c \u0443 \u0442\u0430\u0439\u043c\u0435\u0440\u0430. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0432\u043d\u044b\u043c 5.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/543\/dd1\/251\/543dd12511bda0e218a2434d1b469881.png\" width=\"1920\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/543\/dd1\/251\/543dd12511bda0e218a2434d1b469881.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/543\/dd1\/251\/543dd12511bda0e218a2434d1b469881.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 ihm03 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 (FOC)\u00a0\u0434\u043b\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f BLDC\/PMSM. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0442\u0435\u043e\u0440\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 STM32 Motor Control SDK \u0438\u043b\u0438 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/habr.com\/ru\/articles\/882696\/\" rel=\"noopener noreferrer nofollow\">\u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f AC \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f \u2014 Field oriented control<\/a>.<\/p>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u043e\u043c\u0435\u0442\u0440\u043e\u043c, \u0442\u0430\u043a \u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e &#8212; \u0447\u0435\u0440\u0435\u0437\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 ihm03, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u0447\u0435\u0440\u0435\u0437 MCSDK, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c) \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <strong>ST Motor Pilot<\/strong> \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b <strong>MCP (Motor Control Protocol)<\/strong> \u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c <strong>ASPEP<\/strong> (Advanced Serial Protocol for Embedded Performer). <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/449\/753\/c60\/449753c603093efcb5ab09d0f1cbb908.png\" width=\"529\" height=\"437\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/449\/753\/c60\/449753c603093efcb5ab09d0f1cbb908.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/449\/753\/c60\/449753c603093efcb5ab09d0f1cbb908.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 Motor Pilot \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u0442\u0440\u043e\u043a\u0438. \u041e\u043d\u0430 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u044f\u043c:<\/p>\n<ul>\n<li>\n<p><strong>\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 (MCP):<\/strong> \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 <code>mcp.c<\/code>. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430  MC_REG_SPEED_MEAS.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 (Datalogging):<\/strong> ST Motor Pilot \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0434\u0430\u0442\u0430\u043b\u043e\u0433\u0433\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u042d\u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>MCPA_dataLog()<\/code> <code>mc_tasks.c<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c (ASPEP):<\/strong> \u0424\u0430\u0439\u043b\u044b <code>aspep.c<\/code> \u0438 <code>usart_aspep_driver.c<\/code> \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0437\u0430 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 <strong>USART2<\/strong> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u0434\u0430\u0447:<\/strong> \u0412\u0441\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0432\u044f\u0437\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (User Interface Task), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>MC_RunMotorControlTasks()<\/code>. \u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0430 (SysTick) \u0438\u043b\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 <code>main.c<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0445\u0443\u043a\u0438 (callback-\u0444\u0443\u043d\u043a\u0446\u0438\u0438). \u0412\u043c\u0435\u0441\u0442\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 MCP \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>mc_app_hooks.c<\/code>, \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>MC_APP_PostMediumFrequencyHook_M1()<\/code>. <\/p>\n<h4>\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439<\/h4>\n<p>C\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043b\u043e\u0433\u0438\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 MCSDK \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430 <code>MC_RunMotorControlTasks()<\/code>, \u0438 \u0445\u0443\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u0432 \u044d\u0442\u043e\u0439 \u043e\u0447\u0435\u0440\u0435\u0434\u0438. \u0412 SDK \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 <code>MC_DURATION<\/code>. \u042d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u044e\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c\u0441\u044f \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 PWM. \u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432 \u0446\u0438\u043a\u043b\u0435 <code>while<\/code> &#8212; \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c \u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043c\u043e\u0442\u043e\u0440\u0430 \u043f\u043e \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0435. \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u044f\u0442\u044c CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. <\/p>\n<pre><code class=\"cpp\">void CAN_Send_Feedback(FDCAN_HandleTypeDef *hfdcan){  static uint32_t s_Counter = 0U;  if (++s_Counter &lt; CAN_TELEMETRY_DECIMATION_COUNT) { return; }  s_Counter = 0U;  CAN_Send_CurrAmpFeedback(hfdcan);  CAN_Send_VoltageTempFeedback(hfdcan);  CAN_Send_PidFeedback(hfdcan);  CAN_Send_TorquePowerFeedback(hfdcan);  CAN_Send_SpeedFeedback(hfdcan);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432 CUBEMX CANFD \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>TX Fifo Queue Mode<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 <code>Queue mode<\/code> (\u0432 MX_FDCAN1_Init <code>hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_QUEUE_OPERATION;<\/code>), \u0442\u043e \u0432 \u0431\u0443\u0444\u0435\u0440 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0435 \u0442\u0440\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f. <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4bb\/8b3\/31d\/4bb8b331df3bc2e07c2210f9a4e1e40a.png\" width=\"1045\" height=\"625\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4bb\/8b3\/31d\/4bb8b331df3bc2e07c2210f9a4e1e40a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4bb\/8b3\/31d\/4bb8b331df3bc2e07c2210f9a4e1e40a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. <\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 &#8212; \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437 \u0432 500 \u043c\u0441 \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f &#171;\u043f\u0440\u043e\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c&#187; \u0441\u0440\u0430\u0437\u0443 5 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0431\u0443\u0444\u0435\u0440 \u0438\u0437 3 \u044f\u0447\u0435\u0435\u043a, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044e \u043a\u0430\u0436\u0434\u044b\u0435 100 \u043c\u0441. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437 5 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0443\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 2 \u0413\u0446, \u043d\u043e \u043e\u043d\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0432\u0441\u0442\u0440\u0435\u0442\u044f\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>CUBEMX CANFD \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>TX Fifo Queue Mode<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 <code>FIFO mode<\/code> (\u0432 MX_FDCAN1_Init <code>hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;<\/code>). \u0410 \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c <code>HAL_FDCAN_GetTxFifoFreeLevel(hfdcan) == 0U<\/code> \u0438 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (FreeRTOS \u0438\u043b\u0438 CMSIS-OS), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0445 \u0447\u0438\u043f\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043a\u0442\u043e-\u043b\u0438\u0431\u043e \u0437\u043d\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<br \/> \u042f \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 &#8212; FIFO mode \u0441\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u043c \u0434\u043e 2000. \u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c. \u0415\u0441\u043b\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u0442\u043e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u0418 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043a CAN-\u0448\u0438\u043d\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.<\/p>\n<pre><code class=\"cpp\">#define CAN_TELEMETRY_DELAY_COUNT 2000Ustatic HAL_StatusTypeDef CAN_Transmit(FDCAN_HandleTypeDef *hfdcan,                                      uint32_t id, uint32_t dlc,                                      const uint8_t *data){  static uint32_t s_SkippedMsgCount = 0U;  uint32_t tickstart = HAL_GetTick();  while (HAL_FDCAN_GetTxFifoFreeLevel(hfdcan) == 0U)  {s_SkippedMsgCount++;    if (s_SkippedMsgCount &gt; CAN_TELEMETRY_DELAY_COUNT || (HAL_GetTick() - tickstart) &gt; 2U)    {    s_SkippedMsgCount = 0;      return HAL_TIMEOUT; \/* FIFO still full \u2013 abort this frame *\/    }  }  FDCAN_TxHeaderTypeDef h;  h.Identifier          = id;  h.IdType              = FDCAN_STANDARD_ID;  h.TxFrameType         = FDCAN_DATA_FRAME;  h.DataLength          = dlc;  h.ErrorStateIndicator = FDCAN_ESI_ACTIVE;  h.BitRateSwitch       = FDCAN_BRS_OFF;  h.FDFormat            = FDCAN_CLASSIC_CAN;  h.TxEventFifoControl  = FDCAN_NO_TX_EVENTS;  h.MessageMarker       = 0U;  return HAL_FDCAN_AddMessageToTxFifoQ(hfdcan, &amp;h, data);}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041c\u043e\u0434\u0443\u043b\u044c CAN Bus \u2014 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 FDCAN \u0432 CUBEMX \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=N1oKAajwiU0\" rel=\"noopener noreferrer nofollow\">Youtube<\/a>) \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0438 FDCAN \u0432 <code>main.c<\/code><\/p>\n<pre><code class=\"cpp\">static void MX_FDCAN1_Init(void){  hfdcan1.Instance = FDCAN1;  hfdcan1.Init.ClockDivider = FDCAN_CLOCK_DIV1;  hfdcan1.Init.FrameFormat = FDCAN_FRAME_CLASSIC;  hfdcan1.Init.Mode = FDCAN_MODE_NORMAL;  hfdcan1.Init.AutoRetransmission = ENABLE;  hfdcan1.Init.TransmitPause = DISABLE;  hfdcan1.Init.ProtocolException = DISABLE;  hfdcan1.Init.NominalPrescaler = 17;  hfdcan1.Init.NominalSyncJumpWidth = 3;  hfdcan1.Init.NominalTimeSeg1 = 16;  hfdcan1.Init.NominalTimeSeg2 = 3;  hfdcan1.Init.DataPrescaler = 17;  hfdcan1.Init.DataSyncJumpWidth = 6;  hfdcan1.Init.DataTimeSeg1 = 16;  hfdcan1.Init.DataTimeSeg2 = 3;  hfdcan1.Init.StdFiltersNbr = 1;  hfdcan1.Init.ExtFiltersNbr = 0;  hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION;  if (HAL_FDCAN_Init(&amp;hfdcan1) != HAL_OK)  {    Error_Handler();  }  \/* USER CODE BEGIN FDCAN1_Init 2 *\/  CAN_Filter_Config(&amp;hfdcan1);  \/* USER CODE END FDCAN1_Init 2 *\/}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0433\u0434\u0435 <code> CAN_Filter_Config<\/code> &#8212; \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u043f\u0440\u0438\u0435\u043c\u0430 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043f\u0440\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"https:\/\/controllerstech.com\/fdcan-normal-mode-stm32\/\" rel=\"noopener noreferrer nofollow\">Getting Started with FDCAN<\/a> \u0438\u043b\u0438 \u043d\u0430 <a href=\"https:\/\/www.youtube.com\/watch?v=bmtOyr7UYNo\" rel=\"noopener noreferrer nofollow\">Youtube<\/a>.<\/p>\n<pre><code class=\"cpp\">#define CAN_DRIVER_SPEED_CONTROL_MSG_FRAME_ID (0x100u)void CAN_Filter_Config(FDCAN_HandleTypeDef *hfdcan){  FDCAN_FilterTypeDef filterConfig;  filterConfig.IdType       = FDCAN_STANDARD_ID;  filterConfig.FilterIndex  = 0U;  filterConfig.FilterType   = FDCAN_FILTER_MASK; \/* ID &amp; Mask match             *\/  filterConfig.FilterConfig = FDCAN_FILTER_TO_RXFIFO0; \/* Store match in FIFO 0  *\/  filterConfig.FilterID1    = CAN_DRIVER_SPEED_CONTROL_MSG_FRAME_ID;   filterConfig.FilterID2    = 0x7FFU;            \/* Mask: all 11 bits must match *\/  if (HAL_FDCAN_ConfigFilter(hfdcan, &amp;filterConfig) != HAL_OK)  {    Error_Handler();  }  \/*   * Reject all frames that do not match any configured filter.   * Non-matching standard frames \u2192 reject FIFO (not forwarded to Rx FIFOs).   *\/  if (HAL_FDCAN_ConfigGlobalFilter(hfdcan,                                   FDCAN_REJECT,                                            FDCAN_REJECT,                                            FDCAN_FILTER_REMOTE,                                     FDCAN_FILTER_REMOTE)        != HAL_OK)  {    Error_Handler();  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u0443\u0442\u0438 <code>..\\STM32CubeIDE\\Application\\User\\<\/code><\/p>\n<pre><code class=\"bash\">Application\/User\/\u251c\u2500\u2500 can_driver.h      \u2190 C\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 cantools \u043a\u043e\u0434\u0435\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439  (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a)\u251c\u2500\u2500 can_driver.c      \u2190 C\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 cantools \u043a\u043e\u0434\u0435\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439  (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f)\u2514\u2500\u2500 can_interface.c   \u2190 C\u0432\u044f\u0437\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f)    [can_interface.h] \u2190 C\u0432\u044f\u0437\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>can_driver.h<\/code>\u00a0\/\u00a0<code>can_driver.c<\/code>\u00a0\u2014 \u0421\u043b\u043e\u0439 \u043a\u043e\u0434\u0435\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 cantools \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 .dbc.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">#<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0444\u0440\u0435\u0439\u043c\u043e\u0432 \u043a\u0430\u043a \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b <code>#define<\/code> (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, CAN_DRIVER_SPEED_CONTROL_MSG_FRAME_ID 0x100u)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b DLC (Data Length Code) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b C, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f 1-\u043a-1 \u043d\u0430 \u043d\u0430\u0431\u043e\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>pack() \/ <\/em>unpack() \u0434\u043b\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\/\u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0432\/\u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0431\u0430\u0439\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>encode() \/ <\/em>decode() \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440\u044b <em>is<\/em>in_range() \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">7<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 (\u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0434\u044b \u043a\u043e\u043c\u0430\u043d\u0434)<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b<\/p>\n<pre><code class=\"cpp\">\/* \u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0435 *\/struct can_driver_speed_control_msg_t   { uint8_t control_cmd; int32_t speed_rpm; };\/* \u0418\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 *\/struct can_driver_speed_feedback_msg_t      { uint8_t motor_state; int32_t speed_rpm; };struct can_driver_curr_amp_feedback_msg_t   { int32_t i_d; int32_t i_q; };struct can_driver_voltage_temper_feedback_msg_t { uint16_t bus_voltage; uint16_t temperature; };struct can_driver_pid_feedback_msg_t        { uint16_t pid_speed_kp; uint16_t pid_speed_ki;                                              uint16_t pid_torque_kp; uint16_t pid_torque_ki; };struct can_driver_torque_power_feedback_msg_t   { int32_t torque; uint32_t power; };<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>can_interface.h<\/code>\u00a0\/\u00a0<code>can_interface.c<\/code>\u00a0\u2014 \u0421\u043b\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c. \u0421\u0432\u044f\u0437\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u043a\u043e\u0434\u0435\u043a\u0430 \u0441 API \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c MCSDK \u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c STM32 HAL FDCAN.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">#<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0438\u043b\u044c\u0442\u0440\u0430<\/strong>\u00a0\u2014\u00a0<code>CAN_Filter_Config()<\/code>\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 FDCAN \u043d\u0430 \u043f\u0440\u0438\u0451\u043c\u00a0<em>\u0442\u043e\u043b\u044c\u043a\u043e<\/em>\u00a0\u0444\u0440\u0435\u0439\u043c\u043e\u0432 \u0441 ID\u00a0<code>0x100<\/code>, \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u044f \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 ID \u043d\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 (\u0431\u0435\u0437 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0430 CPU)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>RX-\u043a\u043e\u043b\u043b\u0431\u044d\u043a<\/strong>\u00a0\u2014\u00a0<code>HAL_FDCAN_RxFifo0Callback()<\/code>\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0430\u0431\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b HAL; \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439\u00a0<code>Speed_control_MSG<\/code>\u00a0\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 API MCSDK<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>TX-\u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0438<\/strong>\u00a0\u2014 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439\u00a0<code>static<\/code>-\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0440\u0435\u0439\u043c; \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0436\u0438\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f, \u043f\u0430\u043a\u0443\u0435\u0442 \u0438\u0445 \u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0449\u0438\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u00a0<code>CAN_Transmit()<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438<\/strong>\u00a0\u2014\u00a0<code>CAN_Send_Feedback()<\/code>\u00a0\u043f\u043e\u043d\u0438\u0436\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0442\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 1 \u043a\u0413\u0446 \u0434\u043e 2 \u0413\u0446 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u0417\u0430\u0449\u0438\u0442\u0430 FIFO<\/strong>\u00a0\u2014\u00a0<code>CAN_Transmit()<\/code>\u00a0\u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0445 \u0441\u043b\u043e\u0442\u043e\u0432 TX FIFO \u0441 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u043c 2 \u043c\u0441 \u043f\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u0448\u0438\u043d\u0430 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043a\u043e\u043d\u0442\u0443\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 API<\/p>\n<pre><code class=\"cpp\">\/* \u0412\u044b\u0437\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u043e\u0441\u043b\u0435 MX_FDCAN1_Init() \u0438 \u0434\u043e HAL_FDCAN_Start() *\/void CAN_Filter_Config(FDCAN_HandleTypeDef *hfdcan);\/* \u0412\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0438\u043a\u0435 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b (1 \u043a\u0413\u0446) \u2014 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u043d\u0438\u0436\u0430\u0435\u0442\u0441\u044f \u0434\u043e 2 \u0413\u0446 *\/void CAN_Send_Feedback(FDCAN_HandleTypeDef *hfdcan);\/* \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0430\u0431\u043e\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u0430 HAL \u2014 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 FDCAN IRQ *\/void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>CAN_Filter_Config<\/code> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430 FDCAN \u0434\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0441 ID 0x100.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f <code>CAN_Send_Feedback<\/code> \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432\u0441\u0435\u0445 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 <code>mc_app_hooks.c<\/code>, \u0444\u0443\u043d\u043a\u0446\u0438\u044f <code>MC_APP_PostMediumFrequencyHook_M1()<\/code> \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 1 \u043a\u0413\u0446. <\/p>\n<pre><code class=\"cpp\">\/* USER CODE BEGIN 0 *\/#include \"can_interface.h\"extern FDCAN_HandleTypeDef hfdcan1;\/* USER CODE END 0 *\/.....__weak void MC_APP_PostMediumFrequencyHook_M1(void){  uint16_t rawValue = RCM_GetRegularConv(&amp;PotRegConv_M1);  (void)SPDPOT_Run(&amp;SpeedPotentiometer_M1, rawValue);\/* USER SECTION BEGIN PostMediumFrequencyHookM1 *\/ CAN_Send_Feedback(&amp;hfdcan1);\/* USER SECTION END PostMediumFrequencyHookM1 *\/}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 1 \u043a\u0413\u0446 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u0435\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <code>CAN_Send_Feedback<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0441\u0447\u0435\u0442\u0447\u0438\u043a, \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f <code>CAN_TELEMETRY_DECIMATION_COUNT<\/code> = 500, \u0442.\u0435. \u043f\u043e\u043b-\u0441\u0435\u043a\u0443\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0441\u044b\u043b\u043a\u0430 \u0432\u0441\u0435\u0445 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. <\/p>\n<p>API MCSDK, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438\u00a0<code>can_interface.c<\/code> \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0424\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_StartMotor1()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430 FOC<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_StopMotor1()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_AcknowledgeFaultMotor1()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0431\u0440\u043e\u0441 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_ProgramSpeedRampMotor1_F()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0434\u0430\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0433\u043e\u043d\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_GetSTMStateMotor1()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_GetAverageMecSpeedMotor1_F()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c (\u043e\u0431\/\u043c\u0438\u043d)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_GetIqdMotor1()<\/code>\u00a0\/\u00a0<code>MC_GetIqdMotor1_F()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u043a\u0438 D\/Q<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>MC_GetAveragePowerMotor1_F()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u043d\u044e\u044e \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c (\u0412\u0442)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>VBS_GetAvBusVoltage_V()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0448\u0438\u043d\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u043a\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>NTC_GetAvTemp_C()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0440\u0430\u0434\u0438\u0430\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>PID_GetKP()<\/code>\u00a0\/\u00a0<code>PID_GetKI()<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u041f\u0418\u0414-\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0412 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f <code>HAL_FDCAN_RxFifo0Callback<\/code> \u043c\u044b \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e API:<\/p>\n<ul>\n<li>\n<p><strong>\u0417\u0430\u043f\u0443\u0441\u043a\/\u041e\u0441\u0442\u0430\u043d\u043e\u0432:<\/strong> <code>MC_StartMotor1()<\/code> \u0438 <code>MC_StopMotor1()<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438:<\/strong> <code>MC_ProgramSpeedRampMotor1(target_speed, duration)<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0431\u0440\u043e\u0441 \u043e\u0448\u0438\u0431\u043e\u043a:<\/strong> <code>MC_AcknowledgeFaultMotor1()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u041e\u0431\u0449\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u0442\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<pre><code>  CAN Bus  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500  \u041c\u0430\u0441\u0442\u0435\u0440           STM32G431 (\u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f FDCAN1)  \u2500\u2500\u2500\u2500\u2500\u2500           \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500                   \u250c\u2500 \u0410\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 (\u0442\u043e\u043b\u044c\u043a\u043e 0x100) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500-\u2510  0x100 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25ba\u2502  HAL_FDCAN_RxFifo0Callback()                  \u2502  Speed_control    \u2502    \u2514\u2500 can_driver_speed_control_msg_unpack()   \u2502                   \u2502    \u2514\u2500 MC_StartMotor1() \/ MC_StopMotor1() \/    \u2502                   \u2502       MC_ProgramSpeedRampMotor1_F() \/         \u2502                   \u2502       MC_AcknowledgeFaultMotor1()             \u2502                   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518                   \u250c\u2500 MC_APP_PostMediumFrequencyHook_M1 (1 \u043a\u0413\u0446) \u2500\u2500\u2500\u2510                   \u2502  CAN_Send_Feedback()  \u2190  \u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \/500        \u2502                   \u2502    \u251c\u2500 CAN_Send_SpeedFeedback()      \u2192 0x200   \u2502\u2500\u2500\u25ba 0x200                   \u2502    \u251c\u2500 CAN_Send_CurrAmpFeedback()    \u2192 0x210   \u2502\u2500\u2500\u25ba 0x210                   \u2502    \u251c\u2500 CAN_Send_VoltageTempFeedback()\u2192 0x220   \u2502\u2500\u2500\u25ba 0x220                   \u2502    \u251c\u2500 CAN_Send_PidFeedback()        \u2192 0x230   \u2502\u2500\u2500\u25ba 0x230                   \u2502    \u2514\u2500 CAN_Send_TorquePowerFeedback()\u2192 0x240   \u2502\u2500\u2500\u25ba 0x240                   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432  <a href=\"https:\/\/github.com\/vladipirogov\/P-IHM03\" rel=\"noopener noreferrer nofollow\">P-IHM03<\/a> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.<\/p>\n<h2>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 CAN-\u0448\u0438\u043d\u044b<\/h2>\n<p><strong>TSMaster<\/strong> \u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 TOSUN, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c CAN, CAN FD, LIN, FlexRay \u0438 Ethernet. \u0421\u043a\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0438\u0437 <a href=\"https:\/\/github.com\/TOSUN-Shanghai\/TSMaster\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/a>. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u043e\u0444\u0442\u043e\u043c. \u0423\u0440\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u0430\u043d\u0430\u043b\u0435 <a href=\"https:\/\/www.youtube.com\/@SoftwareMotion\" rel=\"noopener noreferrer nofollow\">Software Motion<\/a><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5a\/ade\/8a7\/c5aade8a7fd69cde1577dbc202ec7dee.png\" alt=\"TSMaster \u043f\u0440\u043e\u0435\u043a\u0442\" title=\"TSMaster \u043f\u0440\u043e\u0435\u043a\u0442\" width=\"1912\" height=\"1032\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c5a\/ade\/8a7\/c5aade8a7fd69cde1577dbc202ec7dee.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c5a\/ade\/8a7\/c5aade8a7fd69cde1577dbc202ec7dee.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption><strong>TSMaster<\/strong> \u043f\u0440\u043e\u0435\u043a\u0442<\/figcaption><\/div>\n<\/figure>\n<h4>\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h4>\n<p>TSMaster \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 <strong>&#171;Hardware-Free, Software-Free&#187;<\/strong>. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p><strong>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u0430\u044f \u0431\u0430\u0437\u0430:<\/strong> \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u0435\u043d \u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c:<\/strong> \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0431\u0435\u0437 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 TOSUN.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:<\/strong> \u041f\u043b\u0430\u0442\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 UDS, \u043a\u0430\u043b\u0438\u0431\u0440\u043e\u0432\u043a\u0438 \u043f\u043e XCP \u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u044d\u0440\u043e\u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432).<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0440\u043e\u0432 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 Hardvare. \u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0431\u0430\u0433\u0438 \u0438 \u0432\u044b\u043b\u0435\u0442\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438\u043b\u0438 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0440\u0430\u043d\u0435\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0438\u043f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>Vendor Selection<\/code><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/760\/f9c\/328\/760f9c328cd93c24fb1b705a7be7f107.png\" alt=\"Vendor selection\" title=\"Vendor selection\" width=\"1145\" height=\"905\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/760\/f9c\/328\/760f9c328cd93c24fb1b705a7be7f107.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/760\/f9c\/328\/760f9c328cd93c24fb1b705a7be7f107.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Vendor selection<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u043d\u0430\u043b \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435 <code>Channel Selection<\/code>. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 CAN1.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5cd\/095\/28e\/5cd09528eaf9ed65871fc798e72dc5b1.png\" alt=\"Channel selection\" title=\"Channel selection\" width=\"1051\" height=\"460\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5cd\/095\/28e\/5cd09528eaf9ed65871fc798e72dc5b1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5cd\/095\/28e\/5cd09528eaf9ed65871fc798e72dc5b1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Channel selection<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 CAN-\u0448\u0438\u043d\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u043c \u043e\u043a\u043d\u0435 Hardware Configuration, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043a\u043e\u043d\u043a\u0438 Network Hardware.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d70\/a8a\/dca\/d70a8adca0acc83f4e8983afec1a13bd.png\" alt=\"Network hardware\" title=\"Network hardware\" width=\"790\" height=\"594\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d70\/a8a\/dca\/d70a8adca0acc83f4e8983afec1a13bd.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d70\/a8a\/dca\/d70a8adca0acc83f4e8983afec1a13bd.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Network hardware<\/figcaption><\/div>\n<\/figure>\n<h4>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (.dbc)<\/h4>\n<p>\u041d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 Analysis \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u0438\u043a\u043e\u043d\u043a\u0443 Database \u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 Show CAN database.<br \/> \u0412 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435 CAN Database \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u0438\u043a\u043e\u043d\u043a\u0443 Load CAN database file \u0438 \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 .dbc \u0444\u0430\u0439\u043b.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8a3\/c88\/ec2\/8a3c88ec2becd4576a83d364d54168cb.png\" alt=\"Load DBC\" title=\"Load DBC\" width=\"873\" height=\"547\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8a3\/c88\/ec2\/8a3c88ec2becd4576a83d364d54168cb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8a3\/c88\/ec2\/8a3c88ec2becd4576a83d364d54168cb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Load DBC<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u043e\u043a\u043d\u0430 CAN FD Transmit \u0438 CAN FD Trace \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0434\u043b\u044f CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439. \u0412 \u043e\u043a\u043d\u0435 CAN FD Transmit \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0442\u0435\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0439\u0442\u043e\u0432.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f66\/f1d\/75d\/f66f1d75d791725eb5cc4064929dc0b6.png\" alt=\"CAN trace\" title=\"CAN trace\" width=\"1011\" height=\"335\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f66\/f1d\/75d\/f66f1d75d791725eb5cc4064929dc0b6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f66\/f1d\/75d\/f66f1d75d791725eb5cc4064929dc0b6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>CAN trace<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ee\/7e1\/816\/9ee7e18160957f78f690906eb1982b31.png\" alt=\"CAN transmit\" title=\"CAN transmit\" width=\"836\" height=\"335\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/9ee\/7e1\/816\/9ee7e18160957f78f690906eb1982b31.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9ee\/7e1\/816\/9ee7e18160957f78f690906eb1982b31.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>CAN transmit<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/69de5c46ddfeeb036a89d389\" data-style=\"\" id=\"69de5c46ddfeeb036a89d389\" width=\"\" data-habr-games=\"\"><\/div>\n<p> ## \u0427\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c <\/p>\n<p>\u0412 \u0445\u043e\u0434\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0431\u044b\u043b\u0438 \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b:<\/p>\n<ul>\n<li>\n<p><strong>CAN-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f<\/strong> \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 DBC \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0442\u043e\u043a\u0438 d\/q-\u043e\u0441\u0435\u0439, \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0448\u0438\u043d\u044b, \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443, \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u044c, \u043c\u043e\u043c\u0435\u043d\u0442 \u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u041f\u0418\u0414-\u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u0434\u0430<\/strong> \u2014 \u0443\u0442\u0438\u043b\u0438\u0442\u0430 <code>cantools<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438\/\u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0438 \u0431\u0430\u0439\u0442\u043e\u0432 \u0438 \u0441\u043d\u0438\u0437\u0438\u043b\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f FDCAN \u0432 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 IHM03<\/strong> \u2014 \u043c\u043e\u0434\u0443\u043b\u044c <code>can_interface.c<\/code> \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0445\u0443\u043a <code>MC_APP_PostMediumFrequencyHook_M1()<\/code> \u0431\u0435\u0437 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 MCSDK, \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 SDK.<\/p>\n<\/li>\n<li>\n<p><strong>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u0435\u043c \u043f\u043e CAN<\/strong> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u0438\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430, \u0441\u0431\u0440\u043e\u0441\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 FDCAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043d\u0434 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439<\/strong> \u2014 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 CAN-\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0440\u044b (CANable) \u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435 \u041f\u041e (TSMaster) \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 DBC-\u0444\u0430\u0439\u043b.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p><strong>\u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f<\/strong> \u2014 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 FreeRTOS \u0438\u043b\u0438 CMSIS-OS \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u0430 \u0431\u044b \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430\u043c \u0431\u0435\u0437 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430-\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 CAN-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/strong>.  \u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 CAN-\u0448\u0438\u043d\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0431\u044b\u043b \u043e\u0441\u043d\u0430\u0449\u0435\u043d CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c \u0438 CAN-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u043e\u043c. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0430\u043a\u0436\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0441\u0435\u0442\u0438 \u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 point-to-point CAN-\u0448\u0438\u043d\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong>HMI \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430<\/strong> \u2014 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 IoT \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0430.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1023492\/\">https:\/\/habr.com\/ru\/articles\/1023492\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0438\u044f Do It Yourself \u0438\u043b\u0438 DIY \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a &#171;\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0435\u0431\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f \u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u043e\u0437\u0438\u0434\u0430\u043d\u0438\u044f.&#187; \u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u044f\u0445 \u043d\u0430 \u0441\u0442\u043e\u043b\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u0435\u043b\u044f \u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0438 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 AI-\u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u042d\u043d\u0442\u0443\u0437\u0438\u0430\u0441\u0442\u044b \u0441\u0442\u0440\u043e\u044f\u0442 \u0443\u043c\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0435 SCADA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0430\u0436\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0434\u0432\u043e\u0439\u043d\u0438\u043a\u0438, \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u043b\u043e\u043c\u043e\u0449\u043d\u044b\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c \u043f\u043e CAN-\u0448\u0438\u043d\u0435. \u0410 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c PLC-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 IoT. \u0410 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0435\u0440\u0435\u043b\u043e\u0436\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0430 AI-\u0430\u0433\u0435\u043d\u0442\u0430 \u043d\u0435 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0438\u043b\u0438\u0439. \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u0437\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0412\u043d\u0430\u0447\u0430\u043b\u0435 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 CAN-\u0448\u0438\u043d\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0417\u0430\u0442\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0432\u043e\u0434\u043e\u043c PMSM \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 STM32-IHM03 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.\u0426\u0435\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f\u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438 \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 P-IHM.\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CAN-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043d\u0438\u0436\u0435.\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e CAN-\u0448\u0438\u043d\u0435\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e HMI-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f IHM03 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 MCU \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\u041f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u0432\u043e\u0434\u0430 \u0437\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e AI-\u0430\u0433\u0435\u043d\u0442\u0430.CAN-\u0448\u0438\u043d\u0430 \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441\u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u0432\u043e\u0434\u043d\u0443\u044e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u043a\u0443 \u043f\u043e CANBUS-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432.  \u0414\u0430\u043b\u0435\u0435 \u043e\u043f\u0438\u0448\u0435\u043c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0427\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u0441\u043c\u0435\u043b\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u043d\u0430\u043a\u043e\u043c \u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c.\u041f\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043c CANBUS \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438:Using CAN (bxCAN) in Normal mode with STM32 microcontrollers\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b CAN. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0444\u043e\u0440\u043c\u0430\u0442 \u043a\u0430\u0434\u0440\u0430, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043e\u0448\u0438\u0431\u043e\u043aCAN Bus Explained &#8212; A Simple IntroCAN busSTM32 CAN\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442 CANBUS \u0431\u044b\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d Bosh \u0432 1986 \u0438 \u0441\u0442\u0430\u043b \u0434\u0435-\u0444\u0430\u043a\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u0431\u043b\u043e\u043a\u0430\u043c\u0438.  \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0442\u044f\u043d\u0443\u0442\u044c \u0441\u043e\u0442\u043d\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 \u043e\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u043a \u0431\u043b\u043e\u043a\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u043e\u0431\u0449\u0430\u044f \u0448\u0438\u043d\u0430 (\u043f\u0430\u0440\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432). \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u0435\u0442\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0430 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043d\u043e \u0438\u0434\u0435\u044f \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0435\u0439.\u041f\u0440\u0438\u0447\u0438\u043d\u044b \u0432\u044b\u0431\u043e\u0440\u0430 CANBUS \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u043d\u044b\u043c\u0438 CANBUS. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 STM32-IHM03 \u0443\u0436\u0435 \u043e\u0441\u043d\u0430\u0449\u0435\u043d \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043c-\u043f\u043e\u0440\u0442\u043e\u043c (USB) \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441 PC \u043e \u0447\u0435\u043c \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043d\u0438\u0436\u0435. \u0418 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:  \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0445\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u041d\u0430\u0434\u0435\u0436\u043d\u0430\u044f \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0430\u044f \u043a \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u043c \u043f\u043e\u043c\u0435\u0445\u0430\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u0414\u043b\u044f \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0432\u0430\u0436\u043d\u043e, \u043d\u043e \u0435\u0441\u043b\u0438 \u0440\u0435\u0447\u044c \u0438\u0434\u0435\u0442 \u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u0435 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f, \u0432\u044b\u0431\u043e\u0440 CANBUS \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d.\u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0438 \u0434\u0435\u0448\u0435\u0432\u0430\u044f \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u0414\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438 \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0438\u0442\u043e\u0439 \u043f\u0430\u0440\u044b \u0438\u0437 \u0434\u0432\u0443\u0445 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432. \u041c\u043d\u043e\u0433\u043e \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0445 MCU (\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432) \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 SDK \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e. \u0412 \u0438\u0445 \u0447\u0438\u0441\u043b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Blue pill STM32F106CT8, \u043f\u043b\u0430\u0442\u044b ESP32, \u0432\u044b\u0448\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c STM32-IHM03 \u0441 \u0447\u0438\u043f\u043e\u043c STM32G431RB. \u0414\u043b\u044f MCU \u0431\u0435\u0437 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043a\u0430\u043a Arduino UNO, Raspberry pi \u0438 \u0442.\u043f. \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 CAN-\u043c\u043e\u0434\u0443\u043b\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 MCP2515. \u0414\u043b\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 MCU \u0441 CAN-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u043f\u043e CANBUS \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u043e\u043b\u044c\u043a\u043e CAN-\u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440 \u0438 \u0432\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430.OSI \u0443\u0440\u043e\u0432\u043d\u0438 CAN-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0448\u0438\u043d\u044b CAN \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0442\u0438\u043f\u044b \u043a\u0430\u0431\u0435\u043b\u0435\u0439, \u0443\u0440\u043e\u0432\u043d\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0443\u0437\u043b\u0430\u043c, \u0438\u043c\u043f\u0435\u0434\u0430\u043d\u0441 \u043a\u0430\u0431\u0435\u043b\u044f \u0438 \u0442. \u0434. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445: \u0423\u0437\u043b\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0434\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0448\u0438\u043d\u043e\u0439 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e 1 \u041c\u0431\u0438\u0442\/\u0441 (\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f CAN) \u0438\u043b\u0438 8 \u041c\u0431\u0438\u0442\/\u0441 (CAN FD).\u0414\u043b\u0438\u043d\u0430 \u043a\u0430\u0431\u0435\u043b\u044f: \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043b\u0438\u043d\u0430 \u043a\u0430\u0431\u0435\u043b\u044f CAN \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442 500 \u043c\u0435\u0442\u0440\u043e\u0432 (125 \u043a\u0431\u0438\u0442\/\u0441) \u0434\u043e 40 \u043c\u0435\u0442\u0440\u043e\u0432 (1 \u041c\u0431\u0438\u0442\/\u0441).\u0422\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435: \u0428\u0438\u043d\u0430 CAN \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u0430 120 \u041e\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u0446\u0435 \u0448\u0438\u043d\u044b.\u041a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c  \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432 CAN, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043e\u043a, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442:\u0424\u043e\u0440\u043c\u0430\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432: \u0447\u0435\u0442\u044b\u0440\u0435 \u0442\u0438\u043f\u0430 (\u043a\u0430\u0434\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u0430\u0434\u0440\u044b, \u043a\u0430\u0434\u0440\u044b \u043e\u0448\u0438\u0431\u043e\u043a, \u043a\u0430\u0434\u0440\u044b \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438) \u0438 11-\u0431\u0438\u0442\u043d\u044b\u0435\/29-\u0431\u0438\u0442\u043d\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0448\u0438\u0431\u043e\u043a: \u043c\u0435\u0442\u043e\u0434\u044b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f\/\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a CAN, \u0432\u043a\u043b\u044e\u0447\u0430\u044f CRC, \u0441\u043b\u043e\u0442\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f, \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435\u0410\u0440\u0431\u0438\u0442\u0440\u0430\u0436: \u043d\u0435\u0440\u0430\u0437\u0440\u0443\u0448\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u0448\u0438\u043d\u0435 CAN \u0438 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0438 \u0442\u0438\u043f\u044b \u0441\u0435\u0442\u0435\u0439\u0412 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u0430\u0434\u0430\u0447High-Speed CAN (ISO 11898-2): \u0421\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442 40 \u043a\u0431\u0438\u0442\/\u0441 \u0434\u043e 1 \u041c\u0431\u0438\u0442\/\u0441. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c (\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c, \u0442\u043e\u0440\u043c\u043e\u0437\u0430).Low-Speed \/ Fault Tolerant CAN (ISO 11898-3): \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043e 125 \u043a\u0431\u0438\u0442\/\u0441. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043c\u0444\u043e\u0440\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 (\u0434\u0432\u0435\u0440\u0438, \u0437\u0435\u0440\u043a\u0430\u043b\u0430).LIN-bus: \u0414\u0435\u0448\u0451\u0432\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a CAN \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 (\u0441\u0442\u0435\u043a\u043b\u043e\u043f\u043e\u0434\u044a\u0435\u043c\u043d\u0438\u043a\u0438, \u043a\u043e\u043d\u0434\u0438\u0446\u0438\u043e\u043d\u0435\u0440).CAN FD (Flexible Data-rate): \u041d\u043e\u0432\u043e\u0435 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0434\u043e 8 \u041c\u0431\u0438\u0442\/\u0441 \u0438 \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043e 64 \u0431\u0430\u0439\u0442 (\u0432\u043c\u0435\u0441\u0442\u043e 8 \u0431\u0430\u0439\u0442 \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c CAN).High-Speed CAN (ISO 11898-2)\u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 (\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c, \u0410\u041a\u041f\u041f, ABS).\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0448\u0438\u043d\u0430. \u0414\u0432\u0443\u0445\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0430\u044f \u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u041e\u0442\u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f (stubs) \u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0441\u0442\u0440\u0430\u043b\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043e \u0434\u043b\u0438\u043d\u0435.\u0422\u0435\u0440\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u044b. \u041d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043a\u043e\u043d\u0446\u0430\u0445 \u043b\u0438\u043d\u0438\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u044b \u043f\u043e 120 \u041e\u043c. \u041e\u043d\u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043e\u0442\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u0442 \u043a\u043e\u043d\u0446\u043e\u0432 \u043a\u0430\u0431\u0435\u043b\u044f.\u0421\u0440\u0435\u0434\u0430. \u0412\u0438\u0442\u0430\u044f \u043f\u0430\u0440\u0430 \u0441 \u0432\u043e\u043b\u043d\u043e\u0432\u044b\u043c \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435\u043c 120 \u041e\u043c.\u0424\u043e\u0440\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0443\u0440\u043e\u0432\u043d\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f\u0412 High-Speed CAN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 CAN High (CAN_H) \u0438 CAN Low (CAN_L).\u0420\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f 1): \u041e\u0431\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0438\u043c\u0435\u044e\u0442 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u043a\u043e\u043b\u043e 2.5 \u0412. \u0414\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 (V_{diff} = CAN\\_H &#8212; CAN\\_L) \u0440\u0430\u0432\u043d\u043e 0 \u0412.\u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 0): CAN_H \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0434\u043e 3.5 \u0412, \u0430 CAN_L \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u043e 1.5 \u0412. \u0414\u0438\u0444\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 2.0 \u0412.Low-Speed \/ Fault Tolerant CAN (ISO 11898-3)\u042d\u0442\u043e\u0442 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u0430, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0447\u0435\u043c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c.\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f\u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c. \u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e, \u043d\u043e \u0438 \u0437\u0432\u0435\u0437\u0434\u0443 \u0438\u043b\u0438 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b.\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 High-Speed, \u0437\u0434\u0435\u0441\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u044e \u0447\u0430\u0441\u0442\u044c \u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u0432 (\u043e\u0431\u044b\u0447\u043d\u043e \u043e\u043a\u043e\u043b\u043e 2.2 \u043a\u041e\u043c \u0438\u043b\u0438 4.7 \u043a\u041e\u043c \u043d\u0430 \u0437\u0435\u043c\u043b\u044e\/\u043f\u0438\u0442\u0430\u043d\u0438\u0435). \u041e\u0431\u0449\u0435\u0435 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u043a\u043e\u043b\u043e 100 \u041e\u043c, \u043d\u043e \u043e\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u043f\u043e \u0432\u0441\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c.\u0424\u043e\u0440\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0443\u0440\u043e\u0432\u043d\u0438 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f\u0421\u0438\u0433\u043d\u0430\u043b\u044b \u0437\u0434\u0435\u0441\u044c \u0438\u043c\u0435\u044e\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0440\u0430\u0437\u043c\u0430\u0445 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0438\u0445 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u043c\u0438 \u043a \u043f\u043e\u043c\u0435\u0445\u0430\u043c.\u0420\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u00ab1\u00bb): CAN_H \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u0442 \u043a 0 \u0412, \u0430 CAN_L \u2014 \u043a 5 \u0412.\u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u00ab0\u00bb): CAN_H \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0434\u043e 3.6 \u0412, \u0430 CAN_L \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u043e 1.4 \u0412.\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c ISO 11898-3 \u2014 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0440\u0435\u0436\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0432\u043e\u0434\u0443. \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432 (CAN_H \u0438\u043b\u0438 CAN_L) \u043e\u0431\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0437\u0430\u043c\u044b\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0430\u0441\u0441\u0443 \u0438\u043b\u0438 \u043d\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u0435, \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u0446\u0435\u043b\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0435\u043c\u043b\u0438. \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u0441\u044f \u0432 \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0435 \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 TJA1055. \u0412 High-Speed CAN \u0442\u0430\u043a\u043e\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e: \u0442\u0430\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u0430, \u0438 \u0431\u0435\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u0442\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0438\u0437 \u0448\u0443\u043c\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.\u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430High-Speed (11898-2)Low-Speed (11898-3)\u041c\u0430\u043a\u0441. \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c1 \u041c\u0431\u0438\u0442\/\u0441125 \u043a\u0431\u0438\u0442\/\u0441\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 CAN_H (Dom)3.5 \u04123.6 \u0412\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 CAN_L (Dom)1.5 \u04121.4 \u0412\u0422\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u04352 x 120 \u041e\u043c (\u043d\u0430 \u043a\u043e\u043d\u0446\u0430\u0445)\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 (\u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435)\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c\u041f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u0441\u0432\u044f\u0437\u044c \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438 \u043e\u0431\u0440\u044b\u0432\u0435 \u0438\u043b\u0438 \u041a\u0417 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0432\u043e\u0434\u043e\u0432\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435Powertrain, ADAS, \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430\u041a\u0443\u0437\u043e\u0432\u043d\u0430\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0430, \u0421\u0430\u043b\u043e\u043d\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 Standard Data Frame (CAN 2.0A)SOF (Start of Frame): 1 \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 \u0431\u0438\u0442. \u041e\u043d \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u0443\u0437\u043b\u0430\u043c \u043e \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0436\u0435\u0441\u0442\u043a\u043e\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432.Arbitration Field (\u041f\u043e\u043b\u0435 \u0430\u0440\u0431\u0438\u0442\u0440\u0430\u0436\u0430): Identifier (ID): 11 \u0431\u0438\u0442. \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435.RTR (Remote Transmission Request): 1 \u0431\u0438\u0442. \u0412 Data Frame \u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 (0). \u0415\u0441\u043b\u0438 \u043e\u043d \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 (1), \u0437\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u0434\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (Remote Frame).Control Field (\u041f\u043e\u043b\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f): IDE (Identifier Extension): \u0414\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u0439 (0) \u0434\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u0434\u0440\u0430.r0: \u0420\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439 \u0431\u0438\u0442 (\u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435).DLC (Data Length Code): 4 \u0431\u0438\u0442\u0430. \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043e\u0442 0 \u0434\u043e 8).Data Field (\u041f\u043e\u043b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445): \u041e\u0442 0 \u0434\u043e 64 \u0431\u0438\u0442 (0\u20138 \u0431\u0430\u0439\u0442). \u0421\u0430\u043c\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430.CRC Field: CRC Sequence: 15-\u0431\u0438\u0442\u043d\u0430\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430.CRC Delimiter: 1 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442 (\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c).ACK Field (\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435): ACK Slot: \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442, \u0430 \u0432\u0441\u0435 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0438, \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435 \u043a\u0430\u0434\u0440 \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a, \u00ab\u043f\u0435\u0440\u0435\u0431\u0438\u0432\u0430\u044e\u0442\u00bb \u0435\u0433\u043e \u0434\u043e\u043c\u0438\u043d\u0430\u043d\u0442\u043d\u044b\u043c.ACK Delimiter: 1 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 \u0431\u0438\u0442.EOF (End of Frame): 7 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0431\u0438\u0442. \u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u043e\u043d\u0435\u0446 \u043a\u0430\u0434\u0440\u0430.\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442\u0441\u044b\u043b\u043a\u0438 CAN-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 PulseView. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f Raspberry pico (rp2040). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 sigrok-pico \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u0421\u0438\u0433\u043d\u0430\u043b \u0438\u0437\u043c\u0435\u0440\u044f\u043b\u0441\u044f \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0435 RxD \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 MCP2551.CAN ID = 0x123 DATA = 0x11 0x22\u041e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u0432\u044b\u0432\u043e\u0434\u0430\u0445 CANH \u0438 CANL \u0442\u0440\u0430\u043d\u0441\u0438\u0432\u0435\u0440\u0430 MCP2551 \u043f\u0440\u0438 \u0437\u0430\u0446\u0438\u043a\u043b\u0435\u043d\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044fExtended Data Frame (CAN 2.0B)\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043c, \u0433\u0434\u0435 2048 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 (11 \u0431\u0438\u0442) \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 J1939 \u0434\u043b\u044f \u0433\u0440\u0443\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u043a\u0438).\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f:\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440: \u0418\u043c\u0435\u0435\u0442 29 \u0431\u0438\u0442. \u0421\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 (11 \u0431\u0438\u0442) \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (18 \u0431\u0438\u0442).SRR (Substitute Remote Request): \u0417\u0430\u043c\u0435\u043d\u044f\u0435\u0442 RTR \u0432 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c \u043a\u0430\u0434\u0440\u0435, \u0432\u0441\u0435\u0433\u0434\u0430 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439.IDE: \u0412 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u044d\u0442\u043e\u0442 \u0431\u0438\u0442 \u0440\u0435\u0446\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0439 (1), \u0447\u0442\u043e&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-475936","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/475936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=475936"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/475936\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=475936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=475936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=475936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}