ZHCABQ6D January   2018  – June 2022 TM4C1290NCPDT , TM4C1290NCZAD , TM4C1292NCPDT , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1297NCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C129CNCPDT , TM4C129CNCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD , TMP1826 , TMP1827

 

  1.   摘要
  2.   商标
  3. 1单线简介
    1. 1.1 总线要求
    2. 1.2 供电
  4. 2功能说明
    1. 2.1 单线信号传输
    2. 2.2 单线器件的地址格式
    3. 2.3 单总线中的典型通信流程
  5. 3TivaWare C 系列中可用于单线模块的函数
  6. 4枚举
    1. 4.1 旧搜索算法
      1. 4.1.1 3 位搜索算法的步骤
    2. 4.2 快速搜索算法
  7. 5总结
  8. 6参考文献
  9. 7修订历史记录

旧搜索算法

搜索算法使用二进制搜索树。在每个节点,算法可选择由“0”或“1”代表的路径。表 4-1 中介绍了在第 1 步中得到的两个位和第 2 步所选路径之间的关系。

表 4-1 搜索算法
实际位读取值补码位读取值结论要选择的路径
00多个器件有一个对应的 0 位和一个对应的 1 位这属于冲突情况,需要决定选择哪条路径
10只有一个器件在对应位的位置为 1选择路径 1
01只有一个器件在对应位的位置为 0选择路径 0
11总线中无器件结束搜索

只有出现冲突时才需要做出决定。在其他三种情况下,要选择的路径已进行定义。图 4-1 展示了 4 位搜索的算法流程。软件中的以下变量是搜索的关键。

  • i32LastConflictZeroBitNumber 变量存储上一冲突节点的迭代次数,查找当前 ROM 编号时所选路径为“0”。
  • li32ConflictBitNumber 变量存储上一个 ROM 编号的 last_conflict_zero 值。
  • ui32BitNumber 变量提供 ROM 编号中所考虑位的位置。
图 4-1 使用二进制搜索树的枚举