{"id":880,"date":"2020-01-08T16:22:24","date_gmt":"2020-01-08T15:22:24","guid":{"rendered":"http:\/\/www.embedded-communication.com\/?p=880"},"modified":"2023-08-02T07:59:22","modified_gmt":"2023-08-02T05:59:22","slug":"j1939-safety","status":"publish","type":"post","link":"https:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/","title":{"rendered":"J1939 Safety"},"content":{"rendered":"<p>J1939 Safety is an extension of J1939 which is described in the specification SAE J1939-76. The safety communication can be done in parallel to a normal J1939 transmission in the same network.<\/p>\n<p><!--more--><\/p>\n<h2>Principle<\/h2>\n<p>To increase the safety of the communication the following principles are used:<\/p>\n<ul>\n<li>cyclic transmission with timing monitoring<\/li>\n<li>Data consistency check with CRC<\/li>\n<li>Sequence counter to check order of message<\/li>\n<\/ul>\n<h2>Limitations<\/h2>\n<p>Data transfer according to J1939 Safety is only possible for parameter groups (PG) that don&#8217;t exceed a length of 8 bytes. Additionally, it is only possible for cyclic PGNs.<\/p>\n<h2>Safety Data Group<\/h2>\n<h3>Safety Header Message<\/h3>\n<p>The Safety Header Message (SHM) is a parameter group (PG), which is send before the original parameter group &#8211;  Safety Data Message (SDM).<br \/>\nThe SHM consists of: <\/p>\n<ul>\n<li>a 5-Bit for each SDM separately<\/li>\n<li>a 32-Bit CRC over the SDM<\/li>\n<li>the inverted CAN-ID (without priority bits) of the SDM<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png\" alt=\"emotas CANinterpreter mit J1939 Interpretation und SHM\" width=\"840\" height=\"495\" class=\"alignright size-large wp-image-884\" srcset=\"https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png 1024w, https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-300x177.png 300w, https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-768x453.png 768w, https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019.png 1064w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><br \/>\nThe receiver of the Safety messages need to check, if the CRC was calculated correctly and if the sequenzce counter was increased correctly.<\/p>\n<h3>Safety Data Message (SDM)<\/h3>\n<p>The Safety Data Message is the normal unmodified PGN with the payload.<\/p>\n<p>The SDM is sent after the SHM and consumers without safety requirement may receive them as a normal PGN.<\/p>\n<h2>Timing<\/h2>\n<h3>Safety Cycle Time (SCT)<\/h3>\n<p>Die Safety Cycle Time h\u00e4ngt von der Zykluszeit der PG ab, welche sicher \u00fcbertragen werden soll. Dies bedeutet auch, dass nur solche Parametergruppen mittels J1939 Safety \u00fcbertragen werden d\u00fcrfen, welche entweder mit fixer Zykluszeit zu \u00fcbertragen sind oder eine definierte Minimalzeit (&#8220;not faster than <i>xy<\/i> ms&#8221;) haben. In this case this minimal time is the cyclic time.<br \/>\nBei \u00dcberschreitung der Zykluszeit plus einer in J1939-76 definierten Toleranz ist dies als sicherheitskritisches Ereignis der Applikation zu melden.<\/p>\n<h3>Safety Relevant Validation Time (SRVT)<\/h3>\n<p>Die SRVT ist der Abstand zwischen der Safety Header Message und der dazugeh\u00f6rigen PG als Safety Data Message. Die Zeiten f\u00fcr die SRVT h\u00e4ngen ebenfalls von der Zykluszeit der Safety Data Message ab und sind in J1939-76 definiert.<\/p>\n<p><a href=\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/j1939_safety.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/j1939_safety.png\" alt=\"J1939 Safety Timings mit SCT und SRVT\" width=\"704\" height=\"459\" class=\"alignright size-full wp-image-897\" srcset=\"https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/j1939_safety.png 704w, https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/j1939_safety-300x196.png 300w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/a><\/p>\n<h2>Stacks and tools<\/h2>\n<p>The <a href=\"https:\/\/www.emotas.de\/en\/produkte\/sae-j1939-stack\"> emotas J1939 stack <\/a> supports the transmission and reception of safety header messages. To analyze it the  <a href=\"https:\/\/www.emotas.de\/en\/produkte\/can-interpreter\">CANinterpreter<\/a> with J1939 extension may be used.<\/p>","protected":false},"excerpt":{"rendered":"<p>Sorry, this entry is only available in Deutsch.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[10,9,50,8],"class_list":["post-880","post","type-post","status-publish","format-standard","hentry","category-j1939","tag-can","tag-j1939","tag-j1939-76","tag-safety"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>J1939 Safety - embedded communication<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"J1939 Safety - embedded communication\" \/>\n<meta property=\"og:description\" content=\"Sorry, this entry is only available in Deutsch.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\" \/>\n<meta property=\"og:site_name\" content=\"embedded communication\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-08T15:22:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-02T05:59:22+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png\" \/>\n<meta name=\"author\" content=\"Torsten Gedenk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EmbeddedComm\" \/>\n<meta name=\"twitter:site\" content=\"@EmbeddedComm\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Torsten Gedenk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\"},\"author\":{\"name\":\"Torsten Gedenk\",\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e\"},\"headline\":\"J1939 Safety\",\"datePublished\":\"2020-01-08T15:22:24+00:00\",\"dateModified\":\"2023-08-02T05:59:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\"},\"wordCount\":819,\"publisher\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png\",\"keywords\":[\"CAN\",\"J1939\",\"J1939-76\",\"Safety\"],\"articleSection\":[\"J1939\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\",\"url\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\",\"name\":\"J1939 Safety - embedded communication\",\"isPartOf\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png\",\"datePublished\":\"2020-01-08T15:22:24+00:00\",\"dateModified\":\"2023-08-02T05:59:22+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage\",\"url\":\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png\",\"contentUrl\":\"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"http:\/\/www.embedded-communication.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"J1939 Safety\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.embedded-communication.com\/#website\",\"url\":\"http:\/\/www.embedded-communication.com\/\",\"name\":\"embedded communication\",\"description\":\"A blog about embedded communcation protocols.\",\"publisher\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.embedded-communication.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/www.embedded-communication.com\/#organization\",\"name\":\"embedded communication\",\"url\":\"http:\/\/www.embedded-communication.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png\",\"contentUrl\":\"https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png\",\"width\":240,\"height\":240,\"caption\":\"embedded communication\"},\"image\":{\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/EmbeddedComm\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e\",\"name\":\"Torsten Gedenk\",\"url\":\"https:\/\/www.embedded-communication.com\/en\/author\/ged\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"J1939 Safety - embedded communication","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/","og_locale":"en_US","og_type":"article","og_title":"J1939 Safety - embedded communication","og_description":"Sorry, this entry is only available in Deutsch.","og_url":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/","og_site_name":"embedded communication","article_published_time":"2020-01-08T15:22:24+00:00","article_modified_time":"2023-08-02T05:59:22+00:00","og_image":[{"url":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png","type":"","width":"","height":""}],"author":"Torsten Gedenk","twitter_card":"summary_large_image","twitter_creator":"@EmbeddedComm","twitter_site":"@EmbeddedComm","twitter_misc":{"Written by":"Torsten Gedenk","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#article","isPartOf":{"@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/"},"author":{"name":"Torsten Gedenk","@id":"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e"},"headline":"J1939 Safety","datePublished":"2020-01-08T15:22:24+00:00","dateModified":"2023-08-02T05:59:22+00:00","mainEntityOfPage":{"@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/"},"wordCount":819,"publisher":{"@id":"http:\/\/www.embedded-communication.com\/#organization"},"image":{"@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage"},"thumbnailUrl":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png","keywords":["CAN","J1939","J1939-76","Safety"],"articleSection":["J1939"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/","url":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/","name":"J1939 Safety - embedded communication","isPartOf":{"@id":"http:\/\/www.embedded-communication.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage"},"image":{"@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage"},"thumbnailUrl":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png","datePublished":"2020-01-08T15:22:24+00:00","dateModified":"2023-08-02T05:59:22+00:00","breadcrumb":{"@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#primaryimage","url":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png","contentUrl":"http:\/\/www.embedded-communication.com\/wp-content\/uploads\/2020\/01\/emotas_caninterpreter_j1939_2019-1024x604.png"},{"@type":"BreadcrumbList","@id":"http:\/\/www.embedded-communication.com\/en\/j1939\/j1939-safety\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"http:\/\/www.embedded-communication.com\/"},{"@type":"ListItem","position":2,"name":"J1939 Safety"}]},{"@type":"WebSite","@id":"http:\/\/www.embedded-communication.com\/#website","url":"http:\/\/www.embedded-communication.com\/","name":"embedded communication","description":"A blog about embedded communcation protocols.","publisher":{"@id":"http:\/\/www.embedded-communication.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.embedded-communication.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/www.embedded-communication.com\/#organization","name":"embedded communication","url":"http:\/\/www.embedded-communication.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png","contentUrl":"https:\/\/www.embedded-communication.com\/wp-content\/uploads\/2016\/08\/embedded-communication.png","width":240,"height":240,"caption":"embedded communication"},"image":{"@id":"http:\/\/www.embedded-communication.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EmbeddedComm"]},{"@type":"Person","@id":"http:\/\/www.embedded-communication.com\/#\/schema\/person\/8f0fcf033edee00b06d4dd4cf196680e","name":"Torsten Gedenk","url":"https:\/\/www.embedded-communication.com\/en\/author\/ged\/"}]}},"_links":{"self":[{"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts\/880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/comments?post=880"}],"version-history":[{"count":24,"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts\/880\/revisions"}],"predecessor-version":[{"id":1162,"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/posts\/880\/revisions\/1162"}],"wp:attachment":[{"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/media?parent=880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/categories?post=880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.embedded-communication.com\/en\/wp-json\/wp\/v2\/tags?post=880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}