{"id":64341,"date":"2025-03-07T18:30:42","date_gmt":"2025-03-07T10:30:42","guid":{"rendered":"https:\/\/hongtronics.com\/?p=64341"},"modified":"2025-05-13T14:16:45","modified_gmt":"2025-05-13T06:16:45","slug":"dual-modular-redundancy-can-com","status":"publish","type":"post","link":"https:\/\/hongtronics.com\/en\/dual-modular-redundancy-can-com\/","title":{"rendered":"Technology | Why single-module CAN architecture is obsolete? Learn about the advantages of dual-module redundancy in one article."},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"64341\" class=\"elementor elementor-64341\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aa7ecd7 e-flex e-con-boxed e-con e-parent\" data-id=\"aa7ecd7\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1f3cc4c elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"1f3cc4c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"zh-Hant\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>DMR\u529f\u80fd\u8207CAN\u5197\u9918\u7db2\u8def\u61c9\u7528\u89e3\u6790<\/title>\r\n  <style>\r\n    body {\r\n      margin: 0;\r\n      padding: 0;\r\n      font-family: 'Arial', sans-serif;\r\n      background-color: #f9f9f9;\r\n      color: #333;\r\n    }\r\n    .product-content {\r\n      max-width: 800px;\r\n      margin: 0 auto;\r\n      padding: 20px;\r\n      background-color: #fff;\r\n      font-size: 16px;\r\n      line-height: 1.8;\r\n      color: #333;\r\n    }\r\n    \/* \u6a19\u984c\u8207\u5c0f\u6a19\u984c *\/\r\n    .custom-title {\r\n      background-color: #e0f7fa;\r\n      padding: 10px;\r\n      border-left: 5px solid #007bff;\r\n      margin-bottom: 20px;\r\n      font-size: 1.5em;\r\n      font-weight: bold;\r\n      text-align: left;\r\n    }\r\n    .product-section {\r\n      margin-bottom: 2em;\r\n    }\r\n    .product-section h2 {\r\n      background-color: #e0f7fa;\r\n      padding: 10px;\r\n      border-left: 5px solid #007bff;\r\n      margin-bottom: 20px;\r\n      font-size: 1.5em;\r\n      font-weight: bold;\r\n      text-align: left;\r\n      border-bottom: 2px solid #e0e0e0;\r\n    }\r\n    .product-section p {\r\n      font-size: 1.1em;\r\n      line-height: 2.2;\r\n      margin-bottom: 1em;\r\n    }\r\n    \/* \u5b50\u6a19\u984c\u6a23\u5f0f (\u7528\u65bc 01\u300102\u300103 \u5c0f\u9ede) *\/\r\n    .sub-title {\r\n      font-size: 1.2em;\r\n      margin-bottom: 10px;\r\n      padding: 5px;\r\n      background-color: #f0f8ff;\r\n      border-left: 3px solid #007bff;\r\n    }\r\n    \/* \u5716\u7247\u6a23\u5f0f *\/\r\n    .product-section img {\r\n      max-width: 80%;\r\n      height: auto;\r\n      display: block;\r\n      margin: 20px auto;\r\n      border-radius: 8px;\r\n      box-shadow: 0 0 10px rgba(0,0,0,0.1);\r\n    }\r\n    .img-source {\r\n      text-align: center;\r\n      font-size: 0.9em;\r\n      color: #777;\r\n      margin-top: -10px;\r\n      margin-bottom: 20px;\r\n    }\r\n    \/* \u91cd\u9ede\u5b57\u53e5\u6a23\u5f0f\uff1a\u6574\u53e5\u6a19\u793a *\/\r\n    strong {\r\n      font-weight: bold;\r\n      color: #273171;\r\n    }\r\n    ul {\r\n      margin-left: 20px;\r\n      margin-bottom: 1em;\r\n    }\r\n    ul li {\r\n      margin-bottom: 0.5em;\r\n    }\r\n    \/* \u7522\u54c1\u63a8\u85a6\u90e8\u5206 (\u4e0d\u589e\u52a0\u91cd\u9ede\u5b57\u53e5) *\/\r\n    .product-recommendation {\r\n      margin-top: 40px;\r\n    }\r\n    .product-recommendation h2 {\r\n      background-color: #e0f7fa;\r\n      padding: 10px;\r\n      border-left: 5px solid #007bff;\r\n      margin-bottom: 20px;\r\n      font-size: 1.5em;\r\n      font-weight: bold;\r\n      text-align: left;\r\n      border-bottom: 2px solid #e0e0e0;\r\n    }\r\n    .product-list {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      justify-content: space-between;\r\n    }\r\n    .product-item {\r\n      width: 48%;\r\n      background-color: #fafafa;\r\n      padding: 15px;\r\n      box-sizing: border-box;\r\n      margin-bottom: 20px;\r\n      text-align: center;\r\n      border: 1px solid #e0e0e0;\r\n      border-radius: 8px;\r\n      display: flex;\r\n      flex-direction: column;\r\n    }\r\n    .product-item img {\r\n      max-width: 100%;\r\n      height: auto;\r\n      margin-bottom: 15px;\r\n    }\r\n    .product-item h3 {\r\n      font-size: 1.2em;\r\n      margin-bottom: 10px;\r\n    }\r\n    .product-item ul {\r\n      text-align: left;\r\n      list-style-type: disc;\r\n      padding-left: 20px;\r\n      margin-bottom: 15px;\r\n      flex-grow: 1;\r\n    }\r\n    .product-item a.button {\r\n      display: inline-block;\r\n      padding: 10px 20px;\r\n      background-color: #007bff;\r\n      color: #fff;\r\n      text-decoration: none;\r\n      border-radius: 5px;\r\n      margin-top: auto;\r\n    }\r\n    .product-item a.button:hover {\r\n      background-color: #0056b3;\r\n    }\r\n    @media (max-width: 768px) {\r\n      .product-item {\r\n        width: 100%;\r\n      }\r\n    }\r\n    .product-footer {\r\n      margin-top: 60px;\r\n      padding: 20px;\r\n      background-color: #ecf0f1;\r\n      border-top: 2px solid #bdc3c7;\r\n      text-align: left;\r\n    }\r\n    .additional-info {\r\n      text-align: left;\r\n    }\r\n    .interest-message {\r\n      font-size: 1.2em;\r\n      margin-bottom: 20px;\r\n      color: #273171;\r\n    }\r\n    .related-articles h3 {\r\n      font-size: 1.2em;\r\n      margin-bottom: 10px;\r\n      font-weight: normal;\r\n      color: inherit;\r\n    }\r\n    .related-articles ul {\r\n      list-style-type: none;\r\n      padding: 0;\r\n    }\r\n    .related-articles ul li {\r\n      margin-bottom: 10px;\r\n    }\r\n    .related-articles ul li a {\r\n      text-decoration: none;\r\n      color: #3498db;\r\n    }\r\n    .related-articles ul li a:hover {\r\n      text-decoration: underline;\r\n    }\r\n    \/* \u5f15\u7528\u6a23\u5f0f *\/\r\n    blockquote {\r\n      margin: 1em 20px;\r\n      padding: 10px 20px;\r\n      background-color: #f9f9f9;\r\n      border-left: 5px solid #ccc;\r\n      font-style: italic;\r\n      color: #555;\r\n    }\r\n    \/* \u8868\u683c\u6a23\u5f0f\uff08\u53bb\u9664\u5bb9\u5668\u9810\u8a2d margin\uff0c\u6539\u7531\u8868\u683c\u672c\u8eab\u63a7\u5236\uff09 *\/\r\n    .dmr-table-container, .can-table-container {\r\n      width: 100%;\r\n      overflow-x: auto;\r\n      margin: 0 auto;\r\n    }\r\n    table.dmr-spec-table, table.can-spec-table {\r\n      width: 100%;\r\n      margin: 20px auto; \/* \u8207\u5716\u7247\u8a2d\u5b9a\u4e00\u81f4 *\/\r\n      border-collapse: collapse;\r\n      font-family: 'Arial', sans-serif;\r\n      color: #333;\r\n      background-color: #f9f9f9;\r\n      text-align: center;\r\n    }\r\n    table.dmr-spec-table th, table.dmr-spec-table td,\r\n    table.can-spec-table th, table.can-spec-table td {\r\n      border: 1px solid #ddd;\r\n      padding: 10px;\r\n      font-size: 14px;\r\n      white-space: nowrap;\r\n      vertical-align: middle;\r\n    }\r\n    table.dmr-spec-table th, table.can-spec-table th {\r\n      background-color: #273171;\r\n      color: white;\r\n    }\r\n    table.dmr-spec-table tr:nth-child(even),\r\n    table.can-spec-table tr:nth-child(even) {\r\n      background-color: #ffffff;\r\n    }\r\n    table.dmr-spec-table tr:hover,\r\n    table.can-spec-table tr:hover {\r\n      background-color: #f1f1f1;\r\n    }\r\n    \/* \u7a0b\u5f0f\u78bc\u5340\u584a *\/\r\n    pre {\r\n      background-color: #f4f4f4;\r\n      padding: 10px;\r\n      overflow-x: auto;\r\n      font-size: 1.1em;\r\n      line-height: 1.8;\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"product-content\">\r\n    <!-- \u524d\u8a00 -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">preamble<\/h2>\r\n      <p>\r\n        In 2004, the CiA (CAN in Automation) 307 file \"Framework for maritime electronics\"[1] first proposed a standard for the use of two CAN bus cables in mission critical applications. However, this standard was only applicable to classic CANopen and has now been withdrawn. Based on the original theory of the CiA 307 file, a new standard was born, called DMR (Dual-modular Redundancy).\r\n        <strong>The DMR is not only suitable for CAN and CAN FD networks, but also for CAN devices and CAN networks that require safety-critical, mission-critical and high-availability communications.<\/strong>\r\n        <strong>The DMR is designed to be independent of any specific application layer (e.g. CANopen, CANopen FD, J1939, etc.).<\/strong>\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- \u6982\u8ff0 -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">summarize<\/h2>\r\n      <p>\r\n        As described in the paper [2], a designed High Availability (HA) integrated system should have sufficient redundancy and isolation to prevent a single failure from leading to the loss of essential functions or multiple major functions. In addition, any network integrating control or monitoring systems should be designed to be single point of failure tolerant to ensure that a single failure does not affect the overall operation.<strong>This requires that the network and its necessary components and cables be fully redundant.<\/strong>\r\n      <\/p>\r\n      <p>\r\n        <strong>Therefore, CAN networks for HA applications (e.g. avionics, maritime, etc.) must have at least two independent CAN interfaces, each driving physically separate CAN lines.<\/strong>\r\n      <\/p>\r\n      <p>\r\n        A single fault in a redundant CAN network is defined as follows:\r\n      <\/p>\r\n      <ul>\r\n        <li>Single interrupt for CAN buses<\/li>\r\n        <li>Single failure of CAN transceiver<\/li>\r\n        <li>Single failure of the CAN controller (including the bus shutdown state)<\/li>\r\n      <\/ul>\r\n      <p>\r\n        (Internal application failures, such as heartbeat events in CANopen applications, are not considered CAN network failures.)\r\n      <\/p>\r\n      <p>\r\n        <strong>Based on the above requirements, CAN devices supporting redundant communication should have two CAN nodes (see below).<\/strong>Each CAN node contains a Data Link Layer (DLL), a Physical Coding Sublayer (PCS), and a Physical Media Attachment Sublayer (PMA). Note that the two CAN nodes share certain configurations (e.g., bit rate).\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57161\uff1a\u5177\u6709DMR\u529f\u80fd\u7684CAN\u4ecb\u9762.webp\" \r\n           alt=\"\u57161\uff1a\u5177\u6709DMR\u529f\u80fd\u7684CAN\u4ecb\u9762\" \r\n           title=\"Figure 1: CAN interface with DMR function\">\r\n      <p class=\"img-source\">Figure 1: CAN interface with DMR function<\/p>\r\n      <p>\r\n        <strong>The purpose of the DMR function is to replicate data packets between the application and the transmitter CAN node and to de-duplicate data packets received by two CAN nodes on the same CAN interface.<\/strong>This means that the communications on both CAN buses must be identical.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- CAN\u7dda\u8def\u547d\u540d -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">CAN Line Naming<\/h2>\r\n      <p>\r\n        The CAN interface connects two cables, one to the first CAN node of all devices, called the default CAN line (DCL), and one to the second CAN node, called the redundant CAN line (RCL). These names are derived from the original CiA 307 standard and the correct connection must be ensured during system installation.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57162\uff1a\u5197\u4f59CAN\u7db2\u8def\u4e2d\u7684\u5831\u6587.webp\" \r\n           alt=\"\u57162\uff1a\u5197\u4f59CAN\u7db2\u8def\u4e2d\u7684\u5831\u6587\" \r\n           title=\"Figure 2: Messages in a redundant CAN network\">\r\n      <p class=\"img-source\">Figure 2: Messages in a redundant CAN network<\/p>\r\n      <p>\r\n        <strong>On reception, the DMR function forwards CAN packets to the application program on only one selected line, which is called the active CAN line (ACL).<\/strong>By default, during system initialization, the default CAN line (DCL) is the ACL and the other is the passive CAN line (PCL).\r\n      <\/p>\r\n      <p>\r\n        Figure 2 shows an example of a redundant CAN network consisting of CAN devices 1 through 3 used to generate traffic. Due to execution time problems within the DMR or frame retransmission problems on the network, it is not guaranteed that all CAN messages are sent in the same order on both CAN lines, and it is the task of the DMR function to deal with this inconsistency in order.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- DMR\u529f\u80fd\u539f\u7406 -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">DMR Functional Principle<\/h2>\r\n      <p>\r\n        As mentioned earlier, the purpose of the DMR function (see Fig. 3) is to replicate the packets to be sent between the two CAN nodes of the CAN interface at the transmitter side and to de-duplicate the packets received by the two CAN nodes of the CAN interface at the receiver side.The Hardware Abstraction Layer (HAL) of the CAN node uses the mailbox model for the hardware abstraction, where a mailbox usually has a unique direction either to receive or to send. A mailbox usually has a unique direction, either receive or transmit.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57163\uff1aDMR\u529f\u80fd.webp\" \r\n           alt=\"\u57163\uff1aDMR\u529f\u80fd\" \r\n           title=\"Figure 3: DMR Functions\">\r\n      <p class=\"img-source\">Figure 3: DMR Functions<\/p>\r\n      <p>\r\n        <strong>The DMR function provides a counter and a timer for each mailbox and increases or decreases the counter upon successful send\/receive on DCL or RCL, respectively.<\/strong>After the mailbox timer reaches the timeout value, the counter should return to 0 to ensure that the number of transmissions on the DCL and RCL remain balanced.\r\n      <\/p>\r\n      <p>\r\n        At the same time, the DMR process checks the actual DLL status of each CAN node, e.g., bus off, etc. It also generates DMR events for deviation limits or timeout value expiration. Limits such as counter deviation and mailbox timeout are configurable.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- DMR\u6545\u969c\u6aa2\u6e2c -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">DMR Fault Detection<\/h2>\r\n      <p>\r\n        <strong>DMR fault detection is performed periodically during DMR operation to ensure that both CAN nodes send or receive the same number of messages by calculating the difference between the mailbox counter and the deviation limit.<\/strong>The counter may be unbalanced (non-zero) at a given point in time due to CAN error frames or execution time issues.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57164\uff1a\u6545\u969c\u6aa2\u6e2c.webp\" \r\n           alt=\"\u57164\uff1a\u6545\u969c\u6aa2\u6e2c\" \r\n           title=\"Figure 4: Fault Detection\">\r\n      <p class=\"img-source\">Figure 4: Fault Detection<\/p>\r\n      <p>\r\n        If the mailbox counter is not quite within the deviation limits but still unbalanced, the DCL and RCL mailbox timeout values are checked for expiration and a determination is made as to which line is at fault.\r\n      <\/p>\r\n      <p>\r\n        \u4f8b\u5982\uff0c\u57165\u5c55\u793a\u4e86CAN\u7dda\u8defDCL\u5728\u8a2d\u5099DEV3\u8655\u767c\u751f\u55ae\u6b21\u4e2d\u65b7\u7684\u60c5\u6cc1\u3002  \r\n        \u8a2d\u5099DEV3\u5728\u90f5\u7bb1\u8d85\u6642\u5f8c\uff0c\u767c\u73fe\u5831\u6587\u672a\u80fd\u900f\u904eACL\uff08DCL\uff09\u767c\u9001\u6210\u529f\uff0c\u4fbf\u5207\u63db\u5230RCL\uff1b\u5176\u4ed6\u8a2d\u5099\u5247\u6839\u64da\u63a5\u6536\u8a08\u6578\u5668\u7684\u5dee\u503c\u4f86\u5224\u65b7\u6545\u969c\u3002\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57165\uff1a\u6545\u969c\u60c5\u6cc1\u793a\u4f8b.webp\" \r\n           alt=\"\u57165\uff1a\u6545\u969c\u60c5\u6cc1\u793a\u4f8b\" \r\n           title=\"Figure 5: Example of Failure Condition\">\r\n      <p class=\"img-source\">Figure 5: Example of Failure Condition<\/p>\r\n      <p>\r\n        At the same time, the DMR function synchronizes the FIFO buffer of the Layer 2 driver and deletes any pending messages on the fault line.The DMR itself does not send alarm events, and it is up to the application to notify the fault externally.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- DMR\u72c0\u614b\u6a5f -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">DMR state machine<\/h2>\r\n      <p>\r\n        The DMR function has a built-in state machine that is controlled through the DMR processing algorithm as shown in Figure 6.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57166\uff1aDMR\u72c0\u614b\u6a5f.webp\" \r\n           alt=\"\u57166\uff1aDMR\u72c0\u614b\u6a5f\" \r\n           title=\"Figure 6: DMR Status Machine\">\r\n      <p class=\"img-source\">Figure 6: DMR Status Machine<\/p>\r\n      <p>\r\n        <strong>In the redundancy enabled state, both DCL and RCL work normally; in the redundancy passive state, although both lines can transmit, a fault is detected on reception; in the redundancy disabled state, only a single line is available.<\/strong>\r\n      <\/p>\r\n      <p>\r\n        When the network is disconnected, both CAN interfaces are inoperative.The DMR status machine helps in error diagnosis and distinguishes between receive and transmit fault conditions. The following table shows the status of each device in the example in Figure 5:\r\n      <\/p>\r\n      <div class=\"dmr-table-container\">\r\n        <table class=\"dmr-spec-table\">\r\n          <thead>\r\n            <tr>\r\n              <th>Equipment<\/th>\r\n              <th>DMR Status<\/th>\r\n            <\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr>\r\n              <td>DEV1<\/td>\r\n              <td>Redundant Passive<\/td>\r\n            <\/tr>\r\n            <tr>\r\n              <td>DEV2<\/td>\r\n              <td>Redundant Passive<\/td>\r\n            <\/tr>\r\n            <tr>\r\n              <td>DEV3<\/td>\r\n              <td>Redundancy Disable<\/td>\r\n            <\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n      <p class=\"img-source\">Table 1: DMR states in the Figure 5 example<\/p>\r\n      <p>\r\n        Each device can forward this information to a network control application via a higher-level protocol to help locate faults.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- DMR\u9023\u63a5\u670d\u52d9 -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">DMR Connection Service<\/h2>\r\n      <p>\r\n        <strong>The purpose of the DMR connection service is to check for miswiring (DCL to RCL) and to support fault recovery.<\/strong>For this purpose, each CAN line uses a unique CAN identifier (see Figure 7), and these two CAN identifiers are only used for the DMR function.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57167\uff1aDMR\u9023\u63a5\u670d\u52d9.webp\" \r\n           alt=\"\u57167\uff1aDMR\u9023\u63a5\u670d\u52d9\" \r\n           title=\"Figure 7: DMR Connection Service\">\r\n      <p class=\"img-source\">Figure 7: DMR Connection Service<\/p>\r\n      <p>\r\n        The CAN-ID of the DMR connection service is configured by the local application program and should not interfere with the application protocol. Different CAN-IDs can be used to check if both DCL and RCL are connected, but since it is difficult to accurately detect the source of the fault due to the absence of a source address in the telegram (DLC=0), only the number of \"good\" and \"bad\" telegrams is provided for the application layer to determine.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- \u6545\u969c\u6062\u5fa9 -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">Fault Recovery<\/h2>\r\n      <p>\r\n        <strong>An important feature of DMR is automatic fault recovery, as shown in Figure 8.<\/strong>During the Fault Recovery operation, the system inserts a 2-second delay to try to recover from the disconnection, then switches the CAN line to running status and transmits the DMR connection service.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57168\uff1aDMR\u6545\u969c\u6062\u5fa9.webp\" \r\n           alt=\"\u57168\uff1aDMR\u6545\u969c\u6062\u5fa9\" \r\n           title=\"Figure 8: DMR Fault Recovery\">\r\n      <p class=\"img-source\">Figure 8: DMR Fault Recovery<\/p>\r\n      <p>\r\n        Since the CAN-ID of the DMR connection service is sent from the network layer, it prevents interference with the upper layer protocols; when the transmission is successful, the DMR status is updated and redundancy can be rejoined if the original faulty line has been restored.\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- DMR\u6e2c\u8a66 -->\r\n    <div class=\"product-section\">\r\n      <h2 class=\"custom-title\">DMR Testing<\/h2>\r\n      <p>\r\n        <strong>To validate the DMR functionality, we developed a DMR test plan and used the test setup shown in Figure 9.<\/strong>During the test, a fault condition is applied at markers F1 through F10.\r\n      <\/p>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u57169\uff1aDMR\u6e2c\u8a66\u8a2d\u7f6e\u793a\u610f\u5716.webp\" \r\n           alt=\"\u57169\uff1aDMR\u6e2c\u8a66\u8a2d\u7f6e\u793a\u610f\u5716\" \r\n           title=\"Figure 9: Schematic diagram of DMR test setup\">\r\n      <p class=\"img-source\">Figure 9: Schematic diagram of DMR test setup<\/p>\r\n      <div class=\"can-table-container\">\r\n        <table class=\"can-spec-table\">\r\n          <thead>\r\n            <tr>\r\n              <th>Marker<\/th>\r\n              <th>Operating conditions<\/th>\r\n              <th>Fault conditions<\/th>\r\n            <\/tr>\r\n          <\/thead>\r\n          <tbody>\r\n            <tr>\r\n              <td>F1 ... F8<\/td>\r\n              <td>CAN bus connection<\/td>\r\n              <td>CAN bus disconnected<\/td>\r\n            <\/tr>\r\n            <tr>\r\n              <td>F9 ... F10<\/td>\r\n              <td>Terminal Resistance Available<\/td>\r\n              <td>Shorted CAN line<\/td>\r\n            <\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n      <\/div>\r\n      <p class=\"img-source\">Table 2: Failure conditions for test setups<\/p>\r\n      <p>\r\n        During the test period, the CAN network serial transmission rate was 125 kBit\/s and the average bus load was 85%. The following is an example of \"RCL startup failure\":\r\n      <\/p>\r\n      <pre>\r\nPOWER ON DUT\r\n@SubTest 01\r\nVerifyNmtState($dut)\r\nIF NMT STATE $dut != OPERATIONAL THEN ERROR\r\n\u793a\u4f8b1\uff1aRCL\u555f\u52d5\u5931\u6557\r\n      <\/pre>\r\n      <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/\u88683\uff1aRCL\u555f\u52d5\u6545\u969c\u7684\u9a57\u6536\u6a19\u6e96.webp\" \r\n           alt=\"\u88683\uff1aRCL\u555f\u52d5\u6545\u969c\u7684\u9a57\u6536\u6a19\u6e96\" \r\n           title=\"Table 3: Acceptance Criteria for RCL Activation Faults\">\r\n      <p class=\"img-source\">Table 3: Acceptance Criteria for RCL Activation Faults<\/p>\r\n      <p>\r\n        <strong>Based on the new CiA 701 standard, the DMR functionality has been tested and validated on various platforms and will be adapted for CANopen CC and CANopen FD in the future, with DMR parameters accessed via standardized data elements in the object dictionary.<\/strong>\r\n      <\/p>\r\n    <\/div>\r\n    \r\n    <!-- \u7522\u54c1\u63a8\u85a6 (\u4e0d\u589e\u52a0\u91cd\u9ede\u5b57\u53e5) -->\r\n    <div class=\"product-recommendation\">\r\n      <h2 class=\"custom-title\">Product Recommendation<\/h2>\r\n      <div class=\"product-list\">\r\n        <!-- \u7522\u54c1\u4e00\uff1aKvaser Memorator Pro 2xHS v2 -->\r\n        <div class=\"product-item\">\r\n          <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2024\/11\/aaxei-wgk5i.webp\" \r\n               alt=\"Kvaser Memorator Pro 2xHS v2\" \r\n               title=\"Kvaser Memorator Pro 2xHS v2\">\r\n          <h3>Kvaser Memorator Pro 2xHS v2<\/h3>\r\n          <ul>\r\n            <li>Efficient Recording: Supports massive CAN data recording and automatic segmentation.<\/li>\r\n            <li>Intelligent Trigger: Trigger function for precise capture of critical events.<\/li>\r\n            <li>Easy to Operate: Automated journal splitting can be achieved through simple configuration.<\/li>\r\n          <\/ul>\r\n          <a class=\"button\" href=\"https:\/\/hongtronics.com\/en\/product\/kvaser-memorator-pro-2xhs-v2\/\">Go to product page<\/a>\r\n        <\/div>\r\n        <!-- \u7522\u54c1\u4e8c\uff1aKvaser Memorator Pro 5xHS -->\r\n        <div class=\"product-item\">\r\n          <img decoding=\"async\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2021\/10\/Kvaser-Memorator-Pro-5xHS-700x700-1.jpg\" \r\n               alt=\"Kvaser Memorator Pro 5xHS\" \r\n               title=\"Kvaser Memorator Pro 5xHS\">\r\n          <h3>Kvaser Memorator Pro 5xHS<\/h3>\r\n          <ul>\r\n            <li>Extra Large Capacity: For larger CAN network logging.<\/li>\r\n            <li>Multi-trigger: Supports multiple trigger settings to meet complex application requirements.<\/li>\r\n            <li>Flexible Configuration: Users can customize the segmentation conditions and time intervals according to their needs.<\/li>\r\n          <\/ul>\r\n          <a class=\"button\" href=\"https:\/\/hongtronics.com\/en\/product\/kvaser-memorator-pro-5xhs\/\">Go to product page<\/a>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    \r\n    <!-- \u5ef6\u4f38\u95b1\u8b80 (\u4e0d\u589e\u52a0\u91cd\u9ede\u5b57\u53e5) -->\r\n    <footer class=\"product-footer\">\r\n      <div class=\"additional-info\">\r\n        <p class=\"interest-message\">\r\n          If you are interested, you are welcome to follow us to get more information about the article, and if you have any questions, please feel free to contact us!\r\n        <\/p>\r\n        <div class=\"related-articles\">\r\n          <h3>Extended Reading:<\/h3>\r\n          <ul>\r\n            <li><a href=\"https:\/\/hongtronics.com\/en\/kvaser-wireless-canbus-comparison-com\/\">\u27a2 MacroHong Sharing | Wireless CAN Device Selection Guide: BlackBird v2 vs. Air Bridge Light HS In-Depth Comparison<\/a><\/li>\r\n            <li><a href=\"https:\/\/hongtronics.com\/en\/kvaser-memorator-pro-trigger-com\/\">\u27a2 MacroHong Sharing | Easily implement automatic CAN data segmentation with Memorator Pro Trigger function!<\/a><\/li>\r\n          <\/ul>\r\n        <\/div>\r\n      <\/div>\r\n    <\/footer>\r\n    \r\n  <\/div>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9bdd0fa e-flex e-con-boxed e-con e-parent\" data-id=\"9bdd0fa\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4282e99 elementor-widget elementor-widget-image\" data-id=\"4282e99\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"197\" src=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2024\/06\/\u516c\u53f8\u8cc7\u8a0a\u6b04_\u8cc7\u8a0a\u5361-\u592702-1.png\" class=\"attachment-large size-large wp-image-40098\" alt=\"\" srcset=\"https:\/\/hongtronics.com\/wp-content\/uploads\/2024\/06\/\u516c\u53f8\u8cc7\u8a0a\u6b04_\u8cc7\u8a0a\u5361-\u592702-1.png 1024w, https:\/\/hongtronics.com\/wp-content\/uploads\/2024\/06\/\u516c\u53f8\u8cc7\u8a0a\u6b04_\u8cc7\u8a0a\u5361-\u592702-1-300x58.png 300w, https:\/\/hongtronics.com\/wp-content\/uploads\/2024\/06\/\u516c\u53f8\u8cc7\u8a0a\u6b04_\u8cc7\u8a0a\u5361-\u592702-1-768x148.png 768w, https:\/\/hongtronics.com\/wp-content\/uploads\/2024\/06\/\u516c\u53f8\u8cc7\u8a0a\u6b04_\u8cc7\u8a0a\u5361-\u592702-1-600x115.png 600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>DMR\u529f\u80fd\u8207CAN\u5197\u9918\u7db2\u8def\u61c9\u7528\u89e3\u6790 \u524d\u8a00 2004\u5e74\uff0cCiA\uff08CAN in Automation\uff09 307\u6a94\u300c [&hellip;]<\/p>","protected":false},"author":42,"featured_media":64351,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","iawp_total_views":56,"ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[2293],"tags":[2143,1570,3911],"table_tags":[],"class_list":["post-64341","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-can-lin","tag-canbus","tag-1570","tag-3911","entry","has-media","owp-thumbs-layout-horizontal","owp-btn-normal","owp-tabs-layout-horizontal","has-no-thumbnails","has-product-nav"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/hongtronics.com\/wp-content\/uploads\/2025\/03\/ajvvr-wdr9v-1.webp","_links":{"self":[{"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/posts\/64341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/comments?post=64341"}],"version-history":[{"count":11,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/posts\/64341\/revisions"}],"predecessor-version":[{"id":67268,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/posts\/64341\/revisions\/67268"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/media\/64351"}],"wp:attachment":[{"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/media?parent=64341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/categories?post=64341"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/tags?post=64341"},{"taxonomy":"table_tags","embeddable":true,"href":"https:\/\/hongtronics.com\/en\/wp-json\/wp\/v2\/table_tags?post=64341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}