一种单总线通信方法和系统的利记博彩app
【技术领域】
[0001] 本申请涉及通信领域,具体涉及一种单总线通信方法和系统。
【背景技术】
[0002] 总线技术是一种芯片或者设备间通信的重要技术,相对于点对点通信技术,总线 通信可以有效地降低连线的复杂度,提高连线的利用率。现有的总线按照数据传输的方 式可以被划分为串行总线和并行总线,目前常见的串行总线有SPI、I2C、USB、IEEE1394、 RS232、CAN等,而并行总线相对来说种类要少,常见的如IEEE1284、ISA、PCI等。但无论是 串行总线还是并行总线,总线通信都需要多条通信线路的支持,这会对I/O口资源非常宝 贵的电路设计带来困难,因此单总线通信技术应运而生。现有的单总线技术以Maxim全资 子公司Dallas的1-Wire比较成熟且最为常用。它采用单根信号线,既传输时钟,又传输数 据而且数据传输是双向的,具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和 维护等诸多优点。
[0003] 现有的单总线适用于单个主机系统,能够控制一个或多个从机设备。当只有一个 从机位于总线上时,系统可按照单节点系统操作;而当多个从机位于总线上时,则系统按照 多节点系统操作。
【发明内容】
[0004] 本申请提供一种单总线通信方法和系统,具有通信效率高、通信准确的优点。
[0005] 根据本申请的第一方面,本申请提供了一种单总线通信方法,包括:
[0006] 搜索步骤,其包括下面子步骤:
[0007] 主机向从机发送复位信号;
[0008] 主机向从机发送搜索命令;
[0009] 主机读取从机返回的从机的身份标识码的当前位及其补码;
[0010] 主机根据从机返回的身份标识码的当前位及其补码生成指定位,并将指定位发送 给从机;
[0011] 从机在判断到其身份标识码的当前位的下一位与指定位匹配时,继续参与搜索过 程,否则,进入等待状态;
[0012] 主机向从机发送读取从机身份标识码的下一位及其补码的命令,直至从机中只剩 下唯一一个未进入等待状态,主机读取并记录该未进入等待状态的从机的身份标识码的所 有位值;
[0013] 重复上述步骤,直至主机记录下所有从机的身份标识码;
[0014] 数据传送步骤:主机向从机发送通信命令,从机根据所述通信命令进入准备状态, 主机与从机进行通信。
[0015] 在一实施例中,所述搜索步骤中,主机采用二叉搜索树算法搜索到所有从机。
[0016] 在一实施例中,主机根据从机返回的身份标识码的当前位及其补码生成指定位, 具体为:当当前位及其补码同为" 1"时,主机判断为总线上没有从机响应;当当前位及其补 码同为"0"时,主机判断为从机的身份标识码的当前位包括"0"和"1";当当前位及其补码 分别为"〇"和" 1"时,主机判断为从机的身份标识码的当前位均为;当当前位及其补码 分别为" 1"和"〇"时,主机判断为从机的身份标识码的当前位均为" 1";主机根据上述判断 结果确定二叉搜索树算法中的位指针,并根据所述位指针生成指定位。
[0017] 在一实施例中,所述身份标识码包括8个字节的数据,且第1个字节的数据用于表 示从机的设备类型。
[0018] 在一实施例中,主机读取从机返回的从机的身份标识码的当前位及其补码中,所 述当前位及其补码为主机从总线上读取的数据值,所述数据值为所有从机发送的数据值的 逻辑与的结果。
[0019] 在一实施例中,在搜索步骤和数据传送步骤之间还包括匹配步骤:主机向从机发 送需要匹配的从机的身份标识码,从机将该身份标识码与本机的身份标识码进行匹配,如 果不匹配,则进入睡眠状态,如果匹配,则进入等待状态。
[0020] 根据本申请的第二方面,本申请提供了一种单总线通信系统,包括一个主机和多 个从机,所述主机与从机通过单总线相连;
[0021] 所述主机搜索总线上的从机时,主机依次向从机发送复位信号和搜索命令,并读 取从机返回的从机的身份标识码的当前位及其补码,再根据从机返回的身份标识码的当前 位及其补码生成指定位,并将指定位发送给从机;
[0022] 所述从机用于在判断到其身份标识码的当前位的下一位与指定位匹配时,继续参 与搜索过程,否则,进入等待状态;
[0023] 所述主机还用于向从机发送读取从机身份标识码的下一位及其补码的命令,直至 从机中只剩下唯一一个未进入等待状态,主机读取并记录该未进入等待状态的从机的身份 标识码的所有位值,直至主机记录下所有从机的身份标识码
[0024] 所述主机还用于在搜索完所有从机后,向从机发送通信命令,在从机根据所述通 信命令进入准备状态后,与从机进行通信。
[0025] 在一实施例中,所述主机用于采用二叉搜索树算法搜索总线上的从机。
[0026] 在一实施例中,主机用于根据从机返回的身份标识码的当前位及其补码生成指定 位时:当当前位及其补码同为" 1"时,主机判断为总线上没有从机响应;当当前位及其补码 同为"0"时,主机判断为从机的身份标识码的当前位包括"0"和"1";当当前位及其补码分 别为"0"和" 1"时,主机判断为从机的身份标识码的当前位均为"0";当当前位及其补码分 别为" 1"和"0"时,主机判断为从机的身份标识码的当前位均为" 1";主机用于根据上述判 断结果确定二叉搜索树算法中的位指针,并根据所述位指针生成指定位。
[0027] 在一实施例中,所述主机还用于在搜索完所有从机后、向从机发送通信命令前,向 从机发送需要匹配的从机的身份标识码;从机还用于将该身份标识码与本机的身份标识码 进行匹配,如果不匹配,则进入睡眠状态,如果匹配,则进入等待状态。
[0028] 本申请提供的一种单总线通信方法和系统,在搜索步骤中,主机依次向从机发送 复位信号搜索命令;读取从机返回的从机的身份标识码的当前位及其补码;主机根据从机 返回的身份标识码的当前位及其补码生成指定位,并将指定位发送给从机;从机在判断到 其身份标识码的当前位的下一位与指定位匹配时,继续参与搜索过程,否则,进入等待状 态;主机向从机发送读取从机身份标识码的下一位及其补码的命令,直至从机中只剩下唯 一一个未进入等待状态,主机读取并记录该未进入等待状态的从机的身份标识码的所有位 值;重复上述步骤,直至主机记录下所有从机的身份标识码。该单总线通信方法和系统具有 通信效率高、通信准确的优点。
【附图说明】
[0029] 图1为本申请一种实施例中ROM命令的操作流程示意图;
[0030]图2为本申请一种实施例中单总线通信方法中主机搜索步骤的软件流程图;
[0031]图3为本申请一种实施例中单总线通信方法中主机搜索步骤的软件流程图;
[0032]图4为本申请一种实施例中单总线通信方法中主机搜索步骤的软件流程图。
[0033] 下面对图2-4中的部分名称进行解释:
[0034] cmp_id_bit--id_bit位的补码,该位是搜索过程中所有应答从机器件的id_ bit_number位的补码的逻辑与结果。
[0035] id_bit一一在位搜索中第一次读取的值,该位是搜索过程中所有应答从机器件的 id_bit_number位的补码的逻辑与结果。
[0036] id_bit_number--记录当前搜索是1到64位ROM码中哪一位的量。
[0037] LastDeviceFlag--指明前一次搜索到的已是最后一个从机器件的标志位。
[0038] LastDiscrepancy--位指针,指明下次搜索从哪个值差异位开始。
[0039]LastFamilyDiscrepancy--位指针,用来指明LastDiscrepancy是否是在ROM码 中前8位家族码内和其位置。
[0040]last_zero--上次被写入0的值差异位的位置。
[0041]R0M_N0--记录当前正在查找的ROM注册码的8字节缓冲器。
[0042]search_direction--位变量,其值用来指明搜索方向。具有此数据位规定值的 所有从机器件继续响应搜索操作,其他从机器件转入等待状态直到下一次复位信号。
【具体实施方式】
[0043] 单总线通信只有一根数据线,设备主机或从机通过一个漏极开路或三态端口连接 至该数据线,因此允许设备在不发送数据时释放数据总线,以便总线被其它设备所使用。单 总线要求外接一个上拉电阻,这样,单总线在闲置状态时为高电平。
[0044] 本实施例提供的单总线通信系统中,通信双方之间的电平差并不固定,甚至远远 超过单片机的可承受范围。针对这种情况,直接用导线连接将会烧毁器件。因此,在器件之 间增加隔直电容,只容许相对电平通过。
[0045] 典型的单总线命令序列包括下面三个步骤:
[0046] 第一步:初始化
[0047] 第二步:R0M命令(跟随需要交换的数据)
[0048] 第三步:功能命令(跟随需要交换的数据)
[0049] 每次访问单总线器件,必须严格遵守这个命令序列。如果出现序列混乱,则单总线 器