<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Coding Change World

      代碼改變世界
      Can DBC 文件翻譯,不是很標(biāo)準(zhǔn),湊合看還可以

      1 引言

      DBC文件描述單個(gè)CAN網(wǎng)絡(luò)的通信。這個(gè)信息足以監(jiān)測(cè)和分析網(wǎng)絡(luò)并模擬不是物理可用的節(jié)點(diǎn)(剩余的總線模擬)。

       

      DBC文件也可以用來開發(fā)電子控制單元的通信軟件,該控制單元應(yīng)該是CAN網(wǎng)絡(luò)的一部分。 DBC文件不處理ECU的功能行為。

       

      2一般定義

      本文檔中使用以下常規(guī)元素:

       

      unsigned_integer:一個(gè)無符號(hào)整數(shù)

       

      signed_integer:一個(gè)有符號(hào)的整數(shù)

       

      double:雙精度浮點(diǎn)數(shù)

       

      char_string:除雙連字符('“')以外的任何可打印字符組成的任意字符串。

       

      C_identifier:一個(gè)有效的C_identifier。 C_identifiers必須以字母字符或下劃線開始,并可能進(jìn)一步包含

       

      字母數(shù)字字符和下劃線。 C_identifier =(alpha_char |'_'){alpha_num_char | '_'}

       

      DBC文件中使用的C標(biāo)識(shí)符最多可以有128個(gè)字符。為了與舊工具兼容,長(zhǎng)度不應(yīng)超過32個(gè)字符。

       

      DBC文件中使用的其他字符串可能是任意長(zhǎng)度。

       

      在DBC文件中使用的關(guān)鍵字o標(biāo)識(shí)一個(gè)對(duì)象的類型在下表中給出:

       

       

      關(guān)鍵字     對(duì)象類型

       

      BU_           網(wǎng)絡(luò)節(jié)點(diǎn)

       

      BO_           消息

       

      SG_           信號(hào)

       

      EV_           環(huán)境變量

       

       

       

       

      語法使用擴(kuò)展的BNF符號(hào)(Backus-Naur-Format)進(jìn)行描述。

       

       

      符號(hào)含義

       

      =使用右側(cè)的語法(語法規(guī)則)定義=的左側(cè)的名稱。

       

       

      ;分號(hào)終止一個(gè)定義。

       

      |豎條表示替代方案。

       

      [...]括號(hào)內(nèi)的定義是可選的(零次或一次出現(xiàn))。

       

      {...}大括號(hào)內(nèi)的定義重復(fù)(零次或多次出現(xiàn))

       

      (...)括號(hào)定義分組元素。

       

      '...'連字符中的文本必須按照定義出現(xiàn)。

       

      (* ... *)評(píng)論。

       

       

       

      3 DBC文件的結(jié)構(gòu)

      DBC文件格式具有以下總體結(jié)構(gòu):

       

      DBC_file =

          version

          new_symbols

          bit_timing(*過時(shí)但需要*)

          nodes

          value_tables

          messages

          message_transmitters

          environment_variables

          environment_variables_data

          signal_types

          comments

          attribute_definitions

          sigtype_attr_list

          attribute_defaults

          attribute_values

          value_descriptions

          category_definitions(*過時(shí)*)

          categories(*過時(shí)*)

          filter(*過時(shí)*)

          signal_type_refs

          signal_groups

          signal_extended_value_type_list;

       

      描述CAN網(wǎng)絡(luò)基本通信的DBC文件包括以下部分:

       

               ?       Bit_timing

                         這部分是必需的,但通常是空的。

               ?       nodes

                         這部分是必需的,并定義了網(wǎng)絡(luò)節(jié)點(diǎn)。

       

               ?       messages

                         本節(jié)定義了消息和信號(hào)。

       

      以下部分不在正常的DBC文件中使用。它們只是為了完整而定義在這里:

       

               ?       signal_types

               ?       sigtype_attr_list

               ?       category_definitions

               ?       category

               ?       filter

               ?       signal_type_refs

               ?       signal_extended_value_type_list

       

      描述CAN通信的DBC文件,不定義系統(tǒng)或剩余總線仿真的任何附加數(shù)據(jù),不包括環(huán)境變量。

       

      4版本和新符號(hào)規(guī)范

      DBC文件包含一個(gè)包含版本和新符號(hào)條目的頭文件。版本或者是空的,或者是CANdb編輯器使用的字符串。

       

      version = ['VERSION''''{CANdb_version_string}'“'];

       

      new_symbols = ['NS_'':'['CM_'] ['BA_DEF_'] ['BA_'] ['VAL_']

               ['CAT_DEF_'] ['CAT_'] ['FILTER'] ['BA_DEF_DEF_'] ['EV_DATA_']

               ['ENVVAR_DATA_'] ['SGTYPE_'] ['SGTYPE_VAL_'] ['BA_DEF_SGTYPE_']

               ['BA_SGTYPE_'] ['SIG_TYPE_REF_'] ['VAL_TABLE_'] ['SIG_GROUP_']

               ['SIG_VALTYPE_'] ['SIGTYPE_VALTYPE_'] ['BO_TX_BU_']

               ['BA_DEF_REL_'] ['BA_REL_'] ['BA_DEF_DEF_REL_'] ['BU_SG_REL_']

               ['BU_EV_REL_'] ['BU_BO_REL_']];

       

      5位定時(shí)定義

      位定時(shí)部分定義了波特率和網(wǎng)絡(luò)的BTR寄存器的設(shè)置這部分已經(jīng)過時(shí),不再使用。盡管如此,他的關(guān)鍵字'BS_'必須出現(xiàn)在DBC文件中。

       

      bit_timing ='BS_:'[baudrate':'BTR1','BTR2];

       

      baudrate = unsigned_integer; BTR1 = unsigned_integer;

       

      BTR2 = unsigned_integer;

       

      6節(jié)點(diǎn)定義

      節(jié)點(diǎn)部分定義所有參與節(jié)點(diǎn)的名稱,本節(jié)中定義的名稱在本節(jié)中必須是唯一的。

       

      nodes ='BU_:'{node_name};

       

      node_name = C_identifier;

       

      7值表定義

      值表部分定義了全局值表。值表中的值描述定義了信號(hào)原始值的值編碼。在常用的DBC文件中,不使用全局值表,而是分別為每個(gè)信號(hào)定義值描述。

       

      value_tables  =  {value_table} ;

       

      value_table  = 'VAL_TABLE_'  value_table_name  {value_description} ';'  ;

       

      value_table_name  =  C_identifier;

       

      7.1值描述(值編碼)

       

      值描述為單個(gè)值定義文本描述。該值可以是在總線上傳輸?shù)男盘?hào)原始值,也可以是剩余總線(虛擬節(jié)點(diǎn))模擬中環(huán)境變量的值。

       

      value_description = double char_string;

       

      8消息定義

      消息部分定義了集群中所有幀的名稱以及它們的屬性和在這些幀上傳輸?shù)男盘?hào)。

       

      messages = {message};

       

      message = BO_  message_id  message_name':'message_size  trans-mitter  {signal} ;

       

      message_id = unsigned_integer;

       

      該消息的CAN-ID。 CAN-ID在DBC文件中必須是唯一的。如果CAN-ID的最高有效位被設(shè)置,則該ID是擴(kuò)展的CAN ID。擴(kuò)展的CAN ID可以通過用掩碼0xCFFFFFFF屏蔽掉最高有效位來確定。

       

          message_name = C_identifier ;

       

      在這個(gè)部分定義的名字在這組消息中必須是唯一的。

       

               message_size = unsigned_integer;

       

      message_size以字節(jié)為單位指定消息的大小。

       

               transmitter = node_name | 'Vector__XXX';

       

      發(fā)送者名稱指定發(fā)送消息的節(jié)點(diǎn)的名稱。發(fā)件人名稱必須在節(jié)點(diǎn)部分的節(jié)點(diǎn)名稱集中定義。如果消息沒有發(fā)送者,則必須在這里給出字符串Vector__XXX。

       

      8.1信號(hào)定義

       

      消息的信號(hào)部分列出消息中放置的所有信號(hào),消息數(shù)據(jù)字段中的位置及其屬性。

       

      signal = 'SG_' signal_name multiplexer_indicator ':' start_bit '|' signal_size '@' byte_order value_type '(' factor ',' offset ')' '[' minimum '|' maximum ']' unit receiver {',' receiver} ;

       

      signal_name = C_identifier ;

       

      這里定義的名稱對(duì)于單個(gè)消息的信號(hào)必須是唯一的。

       

      multiplexer_indicator = ' ' | 'M' | m multiplexer_switch_value ;

       

      多路復(fù)用器指示器定義信號(hào)是正常信號(hào)、多路復(fù)用信號(hào)的多路開關(guān),還是多路復(fù)用信號(hào)。 “M”(大寫)字符將信號(hào)定義為多路復(fù)用器開關(guān)。多路復(fù)用器交換機(jī)中只能有一個(gè)信號(hào)內(nèi)的信號(hào)。一個(gè)“m”(小寫)字符,后跟一個(gè)無符號(hào)整數(shù),將信號(hào)定義為復(fù)用器開關(guān)復(fù)用的信號(hào)。如果多路復(fù)用器信號(hào)的開關(guān)值等于其multiplexer_switch_value,則多路復(fù)用信號(hào)被傳送到消息中。

       

      start_bit = unsigned_integer ;

       

      start_bit值指定幀的數(shù)據(jù)字段內(nèi)信號(hào)的位置。對(duì)于字節(jié)順序?yàn)橛⑻貭枺╨ittle endian)的信號(hào)給出了最低有效位的位置。對(duì)于具有字節(jié)順序Motorola(big endian)的信號(hào),給出最高有效位的位置。這些位以鋸齒形方式計(jì)數(shù)。起始位必須在0到(8 * message_size - 1)的范圍內(nèi)。

       

               signal_size = unsigned_integer;

       

               signal_size以位為單位指定信號(hào)的大小

       

               byte_order ='0'| '1'; (* 0 =小端,1 =大端*)

       

      如果信號(hào)的字節(jié)順序是Intel(小端),則byte_format是0;如果字節(jié)順序是Motorola(大端),則byte_format是1。(這里可能有錯(cuò)誤,從其他渠道獲取的消息是1=intel ,0=Motorola)

       

               value_type ='+'| ' - '; (* + =無符號(hào), - =有符號(hào)*)

       

      value_type將信號(hào)定義為unsigned( - )或signed( - )類型。

       

               factor = double;

       

               offset = double;

       

      系數(shù)和偏移定義了線性轉(zhuǎn)換規(guī)則,將信號(hào)原始值轉(zhuǎn)換為信號(hào)的物理值,反之亦然:

       

               physical_value = raw_value * factor + offset

       

               raw_value =(physical_value - offset)/ factor

       

      從轉(zhuǎn)換規(guī)則公式中可以看出,該因子不能為0。

       

          minimum = double ;

          maximum = double ;

       

      最小值和最大值定義信號(hào)有效物理值的范圍。

       

               unit = char_string;

       

               receiver = node_name | 'Vector__XXX';

       

      接收者名稱指定信號(hào)的接收者。接收者名稱必須在節(jié)點(diǎn)部分的一組節(jié)點(diǎn)名稱中定義。如果信號(hào)沒有

      接收器,字符串'Vector__XXX'必須在這里給出。

       

       

      值為“float”和“double”的信號(hào)在sig-nal_valtype_list部分有附加條目。

       

          signal_extended_value_type_list = 'SIG_VALTYPE_' message_id signal_

             name signal_extended_value_type ';' ;

          signal_extended_value_type = '0' | '1' | '2' | '3' ; (* 0=signed or

             unsigned integer, 1=32-bit IEEE-float, 2=64-bit IEEE-double *)

      8.2消息發(fā)送器的定義

       

      消息發(fā)送器部分使得能夠定義單個(gè)節(jié)點(diǎn)的多個(gè)發(fā)送器節(jié)點(diǎn)。這用于描述更高層協(xié)議的通信數(shù)據(jù)。這不用于定義CAN二層通信。

       

          message_transmitters = {message_transmitter} ;

       

          Message_transmitter = 'BO_TX_BU_' message_id ':' {transmitter} ';' ;

       

      8.3信號(hào)值描述(值編碼)

       

      信號(hào)值描述定義了特定信號(hào)原始值的編碼。

       

          value_descriptions = { value_descriptions_for_signal |

             value_descriptions_for_env_var } ;

       

          value_descriptions_for_signal = 'VAL_' message_id signal_name

             { value_description } ';' ;

      9環(huán)境變量定義

      在環(huán)境變量部分中定義了用于系統(tǒng)仿真和剩余總線仿真工具的環(huán)境變量。

       

          environment_variables = {environment_variable}

       

          environment_variable = 'EV_' env_var_name ':' env_var_type '[' minimum

             '|' maximum ']' unit initial_value ev_id access_type access_

             node {',' access_node } ';' ;

       

          env_var_name = C_identifier ;

       

          env_var_type = '0' | '1' | '2' ; (* 0=integer, 1=float, 2=string *)

       

          minimum = double ;

       

          maximum = double ;

       

          initial_value = double ;

       

          ev_id = unsigned_integer ; (* obsolete *)

          access_type = 'DUMMY_NODE_VECTOR0' | 'DUMMY_NODE_VECTOR1' |

             'DUMMY_NODE_VECTOR2' | 'DUMMY_NODE_VECTOR3' ; (*

             0=unrestricted, 1=read, 2=write, 3=readWrite *)

       

          access_node = node_name | 'VECTOR_XXX' ;

       

      環(huán)境變量數(shù)據(jù)部分中的條目將此處列出的環(huán)境定義為數(shù)據(jù)類型“數(shù)據(jù)”。這種類型的環(huán)境變量可以存儲(chǔ)給定長(zhǎng)度的任意二進(jìn)制數(shù)據(jù)。長(zhǎng)度以字節(jié)為單位給出。

       

          environment_variables_data = environment_variable_data ;

       

          environment_variable_data = 'ENVVAR_DATA_' env_var_name ':'

             data_size ';' ;

       

          data_size = unsigned_integer ;

       

      9.1環(huán)境變量值描述

       

      環(huán)境變量的值描述提供了變量特定值的文本表示。

       

          value_descriptions_for_env_var = 'VAL_' env_var_aname

             { value_description } ';' ;

       

      10信號(hào)類型和信號(hào)組定義

       

      信號(hào)類型用于定義幾個(gè)信號(hào)的公共屬性。它們通常不用于DBC文件。

       

          signal_types = {signal_type} ;

       

          signal_type = 'SGTYPE_' signal_type_name ':' signal_size '@'

             byte_order value_type '(' factor ',' offset ')' '[' minimum '|'

             maximum ']' unit default_value ',' value_table ';' ;

       

          signal_type_name = C_identifier ;

       

          default_value = double ;

       

          value_table = value_table_name ;

       

       

          signal_type_refs = {signal_type_ref} ;

       

          signal_type_ref = 'SGTYPE_' message_id signal_name ':' signal_

             type_name ';' ;

      信號(hào)組被用來定義消息內(nèi)的一組信號(hào),例如,以確定一個(gè)組的信號(hào)必須共同更新。

       

          signal_groups = 'SIG_GROUP_' message_id signal_group_name repetitions

             ':' { signal_name } ';' ;

       

          signal_group_name = C_identifier ;

       

          repetitions = unsigned_integer ;

       

      11注釋定義

       

      注釋部分包含對(duì)象注釋。對(duì)于每個(gè)有注釋的對(duì)象,本節(jié)定義了一個(gè)帶有對(duì)象類型標(biāo)識(shí)的條目。

       

          comments = {comment} ;

       

          comment = 'CM_' (char_string |

             'BU_' node_name char_string |

             'BO_' message_id char_string |

             'SG_' message_id signal_name char_string |

             'EV_' env_var_name char_string)

             ';' ;

       

      12用戶定義的屬性定義

      用戶定義的屬性是擴(kuò)展DBC文件的對(duì)象屬性的一種手段。這些附加屬性必須使用具有屬性默認(rèn)值的屬性定義進(jìn)行定義。對(duì)于每個(gè)具有為該屬性定義的值的對(duì)象,都必須定義一個(gè)屬性值條目。如果沒有為對(duì)象定義屬性值條目,則該對(duì)象的屬性值是該屬性的默認(rèn)值。

       

      12.1屬性定義

       

          attribute_definitions = { attribute_definition } ;

       

          attribute_definition = 'BA_DEF_' object_type attribute_name attribute_

             value_type ';' ;

       

          object_type = '' | 'BU_' | 'BO_' | 'SG_' | 'EV_' ;

       

          attribute_name = '"' C_identifier '"' ;

       

          attribute_value_type = 'INT' signed_integer signed_integer |

             'HEX' signed_integer signed_integer |

             'FLOAT' double double |

             'STRING' |

             'ENUM' [char_string {',' char_string}]

       

       

          attribute_defaults = { attribute_default } ;

       

          attribute_default = 'BA_DEF_DEF_' attribute_name attribute_value

             ';' ;

       

          attribute_value = unsigned_integer | signed_integer | double |

              char_string ;

       

      12.2屬性值

       

          attribute_values = { attribute_value_for_object } ;

       

          attribute_value_for_object = 'BA_' attribute_name (attribute_value |

             'BU_' node_name attribute_value |

             'BO_' message_id attribute_value |

             'SG_' message_id signal_name attribute_value |

             'EV_' env_var_name attribute_value)

      13         Examples

       

      VERSION ""

       

      NS_ :

        NS_DESC_

        CM_

        BA_DEF_

        BA_

        VAL_

        CAT_DEF_

        CAT_

        FILTER

        BA_DEF_DEF_

        EV_DATA_         

        ENVVAR_DATA_        

        SGTYPE_          

        SGTYPE_VAL_         

        BA_DEF_SGTYPE_          

        BA_SGTYPE_       

        SIG_TYPE_REF_       

        VAL_TABLE_       

        SIG_GROUP_       

        SIG_VALTYPE_        

        SIGTYPE_VALTYPE_        

        BO_TX_BU_        

        BA_DEF_REL_         

        BA_REL_          

        BA_DEF_DEF_REL_         

        BU_SG_REL_       

        BU_EV_REL_       

        BU_BO_REL_       

      BS_:        

       

      BU_: Engine Gateway       

       

      BO_ 100 EngineData: 8 Engine        

        SG_ PetrolLevel : 24|8@1+ (1,0) [0|255] "l"   Gateway   

        SG_ EngPower : 48|16@1+ (0.01,0) [0|150]  "kW"   Gateway   

        SG_ EngForce : 32|16@1+ (1,0) [0|0] "N"   Gateway   

        SG_ IdleRunning : 23|1@1+ (1,0) [0|0] ""  Gateway   

        SG_ EngTemp : 16|7@1+ (2,-50) [-50|150] "degC"  Gateway 

        SG_ EngSpeed : 0|16@1+ (1,0) [0|8000] "rpm"   Gateway   

       

       

      CM_ "CAN communication matrix for power train electronics *******************************************************

       

      implemented: turn lights, warning lights, windows";

       

      VAL_ 100 IdleRunning 0 "Running" 1 "Idle" ;

       

       

       

       

       

       

       

       

       

       

             

       

      posted on 2018-07-20 09:23  alphaxz  閱讀(8420)  評(píng)論(1)    收藏  舉報(bào)

      主站蜘蛛池模板: 国产精品色悠悠在线观看| 综合图区亚洲欧美另类图片| 狠狠色婷婷久久综合频道日韩| 在线播放亚洲成人av| 尤物国精品午夜福利视频| 中文字幕人妻色偷偷久久| 久热这里只有精品6| 国产成AV人片久青草影院| 韩国无码AV片午夜福利| 亚洲午夜伦费影视在线观看| 99热国产这里只有精品9| 韩国午夜福利片在线观看| 无码国模国产在线观看免费| 国产69成人精品视频免费| 亚洲av免费成人在线| 罗田县| 天堂а√在线最新版中文在线| 精品一区二区三区不卡| 永久黄网站色视频免费直播| 欧美高清狂热视频60一70| 扬中市| 国产玖玖玖玖精品电影| 无码国内精品人妻少妇| 成人永久性免费在线视频| 在线中文字幕国产一区| 国产精品区一区第一页| 自拍亚洲综合在线精品| AV无码免费不卡在线观看| 亚洲精品日韩中文字幕| 亚洲成在人线在线播放无码| 丽江市| 免费看国产精品3a黄的视频| 人妻丝袜无码专区视频网站| 夜夜躁日日躁狠狠久久av| 日本福利一区二区精品| 盱眙县| 中文字幕av中文字无码亚 | 亚洲欧美日韩精品久久亚洲区| 亚欧洲乱码视频在线专区| 婷婷色综合视频在线观看| 桦川县|