{"id":445,"date":"2010-06-27T21:07:00","date_gmt":"2010-06-27T21:07:00","guid":{"rendered":"http:\/\/3.68.38.87\/?p=445"},"modified":"2023-06-01T03:07:33","modified_gmt":"2023-06-01T03:07:33","slug":"network-management-part-1-gmlan","status":"publish","type":"post","link":"https:\/\/canbushack.com\/web\/network-management-part-1-gmlan\/","title":{"rendered":"NETWORK MANAGEMENT \u2013 PART 1: GMLAN"},"content":{"rendered":"\n<p>Most vehicles employ some sort of network management.&nbsp; This is typically for the Low Speed or Body Network.&nbsp; The High Speed or Powertrain network will come alive when the key is in the start position.&nbsp; But if you need to send an unlock command using your key fob and this is done via a CAN Bus, then there will need to be a network management system to wakeup nodes and allow them to go back to sleep.<\/p>\n\n\n\n<p>The problem is that there are sooooo many ways of accomplishing this task.&nbsp; There is GMLAN, OSEK, and many others.&nbsp; In general they may have nothing to do with each other, you will just have to learn them all!&nbsp; So here is a start:<\/p>\n\n\n\n<p><strong>GMLAN Network Management:<\/strong><\/p>\n\n\n\n<p>GM uses network management on their Single Wire or Low Speed network in order to wake up nodes that are in a low-current or sleep mode.&nbsp; There are essentially two events that must take place to communicate with a sleeping node.<br>First you must wake it up by sending a High Voltage Wake-Up.&nbsp; On single wire CAN the physical layer is typically an active high, 0-5V line.&nbsp; This means that if you were to watch normal traffic on an oscilloscope, you would see 0 Volts for low values and 5 Volts for high values; but when a node is sending a high voltage wake-up now the high values will be at 12 volts (rather Vbatt which may be as low as 9 Volts or as High as 16 Volts).&nbsp; Although it doesn\u2019t matter what format this message is, it is typically the message with Arbitration ID&nbsp;<strong>0x100<\/strong>&nbsp;and has NO data.&nbsp; This lets the sleeping nodes know that they need to wake-up.&nbsp; An awake node may or may not be listening to command information just yet.&nbsp; Most nodes require another \u201cWake-Up\u201d to send data to them.<br>Second you must send the Virtual Network Management Frame (VNMF).&nbsp; This message is designed to wake-up particular virtual networks or groups of nodes that are associated through common systems such as lighting control or entry systems (i.e. doors).&nbsp; So if I wanted to talk to door module to unlock the doors I would wake up the virtual network for doors.&nbsp; The problem is of course, I have no way of knowing the networks without a proprietary list which I don\u2019t have.&nbsp; So instead of worrying about which virtual network to wake-up I will show you how to wake them ALL up.&nbsp; To wake up ALL virtual network it\u2019s as simple as sending the following message:&nbsp;<strong>0x621 01 FF FF FF FF 00 00 00.<\/strong><\/p>\n\n\n\n<p>So why does this work? ALL VNMFs have a range of 11 bit IDs (even on 29-bit networks). 0x620-0x63F are reserved IDs for VNMFs.&nbsp; So you can use ANY ID within that range and it will be interpreted as a VNMF by all nodes.&nbsp; The ID is the source node.&nbsp; In this case $621 is from the Body Control Module.&nbsp; The First byte of a VNMF is either&nbsp;0x00&nbsp;or&nbsp;0x01. 0x01 means Initiate the following Virtual Network(s) (VN) and 0x00 means Continue the following VNs.&nbsp; The next three or four data bytes contain a bit encoded list of each VN where 1 means wake-up and 0 means nothing.&nbsp; So if you send 0xFF this is essentially saying wake-up to the eight VNs that are encoded in that byte.<br>This method is like using a blow horn to wake-up the nodes.&nbsp; Each node will hear it and wake-up. If you want to be more subtle and only wake-up the VN your are interested in, then you can go bit-by-bit and find your VN it should take too much time either as there may only be around 20 VNs at most on any particular vehicle.<\/p>\n\n\n\n<p>A VN will stay awake for up to 3 seconds after the first message was called.&nbsp; So if you want to keep the network awake you must constantly send the Continue frame<strong>&nbsp;$621 00 FF FF FF FF 00 00 00<\/strong>.<\/p>\n\n\n\n<p>To summaryize here is the VNMF format:<\/p>\n\n\n\n<p>Format:&nbsp;<strong>ArbID,&nbsp;B1,&nbsp;B2, B3, B4, B5, B6, B7, B8<\/strong><br>As Seen:&nbsp;<strong>$620-$63F,&nbsp;01&nbsp;<\/strong>or&nbsp;<strong>00,&nbsp;XX, XX, XX, XX, 00, 00, 00<\/strong>&nbsp;(Where XX = Some bit-encoded value where each bit represents a single VN).<\/p>\n\n\n\n<p>oh and&nbsp;<strong>ALL VNMFs MUST BE 8 BYTES IN LEGTH!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most vehicles employ some sort of network management.&nbsp; This is typically for the Low Speed or Body Network.&nbsp; The High Speed or Powertrain network will come alive when the key is in the start position.&nbsp; But if you need to send an unlock command using your key fob and this is done via a CAN [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":388,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[7],"tags":[],"class_list":["post-445","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/posts\/445","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/comments?post=445"}],"version-history":[{"count":0,"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/posts\/445\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/media\/388"}],"wp:attachment":[{"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/media?parent=445"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/categories?post=445"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/canbushack.com\/web\/wp-json\/wp\/v2\/tags?post=445"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}