CN114416622B - 单总线通讯系统及方法 - Google Patents
单总线通讯系统及方法 Download PDFInfo
- Publication number
- CN114416622B CN114416622B CN202111664204.1A CN202111664204A CN114416622B CN 114416622 B CN114416622 B CN 114416622B CN 202111664204 A CN202111664204 A CN 202111664204A CN 114416622 B CN114416622 B CN 114416622B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- communication
- signal
- single bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 312
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000001514 detection method Methods 0.000 claims abstract description 74
- 230000000630 rising effect Effects 0.000 claims description 35
- 238000012360 testing method Methods 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000005070 sampling Methods 0.000 claims description 6
- 239000013078 crystal Substances 0.000 claims description 4
- 230000010355 oscillation Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 2
- 230000011664 signaling Effects 0.000 abstract 1
- 230000004044 response Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009529 body temperature measurement Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Abstract
本发明涉及通信技术领域,公开了一种单总线通讯系统和单总线通讯方法。单总线通讯系统包括:数据收发模块,用于接收单总线上主机输入的通讯信号;协议检测模块,用于判断所述通讯信号采用的通讯协议;寄存器配置模块,用于根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;复位检测模块,用于判断所述通讯信号是否为复位信号;数据检测模块,用于判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;状态机控制模块,用于对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制;数据收发模块还用于通过单总线将所述数据读写结果返回至主机。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种单总线通讯系统和单总线通讯方法。
背景技术
总线技术是一种芯片或者设备间通信的重要技术,一般需要多条线路支持,而美国DALLAS公司推出的单总线技术,采用单根数据线传输复位、命令和数据,结构简单,成本低廉,便于维护。
单总线通讯技术用一根数据线实现数据的双向传输,对总线时序要求比较高,不同的单总线协议对时序的要求和规定差异很大,单总线连接的通讯双方必须遵守同样的单总线协议才能实现通信。在实际应用过程中,单总线设备往往只能支持单一的单总线协议,难以自适应多种不同的单总线协议,这使得单总线技术使用过程中有诸多不便,也限制了单总线技术的应用范围。
发明内容
本发明的主要目的在于提供一种单总线通讯系统和单总线通讯方法,旨在解决现有单总线设备支持的通讯协议单一而难以实现不同单总线协议自适应的技术问题。
本发明第一方面提供了一种单总线通讯系统,应用于单总线设备,包括:
数据收发模块,用于接收单总线上主机输入的通讯信号,并转发至协议检测模块、复位检测模块和数据检测模块;
协议检测模块,用于统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;
寄存器配置模块,用于根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;
复位检测模块,用于统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号;
数据检测模块,用于统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;
状态机控制模块,用于对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块;
数据收发模块还用于通过单总线将所述数据读写结果返回至主机。
可选的,在本发明第一方面的第一种实现方式中,所述单总线通讯系统还包括高压控制模块,用于产生存储器阵列擦写高电压;
状态机控制模块还用于:对接收到的数据信号进行串并转换,得到字节命令,并根据所述协议时序参数解析字节命令;若所述字节命令为写命令,则获取所述写命令中包含的写地址信息和待写数据内容并生成对存储器的写控制时序;触发高压控制模块产生存储器阵列擦写高电压,基于所述写控制时序将所述待写数据内容写入所述存储器中,并生成数据写结果;若所述字节命令为读命令,则获取所述读命令中包含的读地址信息并生成对存储器的读控制时序;基于所述读控制时序对所述存储器执行数据读操作,并将数据读结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读结果返回至主机。。
可选的,在本发明第一方面的第二种实现方式中,所述单总线通讯系统还包括:
CRC校验模块,用于当数据收发模块接收到通讯信号时,生成所述通讯信号的第一校验码并与主机发送的第二校验码进行比对;若所述第一校验码与所述第二校验码相同,则确认所述通讯信号接收正确,否则确认所述通讯信号接收错误,并触发上电复位模块对单总线设备进行复位初始化;当数据收发模块发送通讯信号时,生成所述通讯信号的第三校验码并通过所述数据收发模块发送至主机,以供主机判断所述通讯信号是否接收正确。
可选的,在本发明第一方面的第三种实现方式中,所述单总线通讯系统还包括:
测试模式接口模块,用于根据预置私有通讯协议,产生相应寄存器的读写控制时序,并修改所述寄存器中存储的协议时序参数,以供测试所述私有通讯协议。
可选的,在本发明第一方面的第四种实现方式中,所述单总线通讯系统还包括:
上电复位模块,用于当复位检测模块检测到复位信号时,对单总线设备进行复位初始化处理。
可选的,在本发明第一方面的第五种实现方式中,所述单总线通讯系统还包括:
晶体震荡模块,用于在数据收发模块接收到数据信号时产生数据采样时钟;为了降低功耗,该时钟的产生受控于内部的使能控制信号。
本发明第二方面提供了一种单总线通讯方法,应用于权利要求1-6中任一项所述的单总线通讯系统,包括:
数据收发模块接收单总线上主机输入的通讯信号,并转发至协议检测模块、复位检测模块和数据检测模块;
协议检测模块统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;寄存器配置模块根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;
复位检测模块统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号,若为复位信号,则触发上电复位模块对单总线设备进行复位初始化;
数据检测模块统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;
状态机控制模块对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读写结果返回至主机。
可选的,在本发明第二方面的第一种实现方式中,所述状态机控制模块对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读写结果返回至主机,包括:
状态机控制模块对接收到的数据信号进行串并转换,得到完整的命令字节,并根据所述协议对该命令字节解析后做出正确的操作。
若所述字节命令为写命令,则获取所述写命令中包含的写地址信息和待写数据内容并生成对存储器的写控制时序;触发高压控制模块产生存储器阵列擦写高电压,基于所述写控制时序将所述待写数据内容写入所述存储器中,并生成数据写结果;
若所述字节命令为读命令,则获取所述读命令中包含的读地址信息并生成对存储器的读控制时序;基于所述读控制时序对所述存储器执行数据读操作,并将数据读结果发送至数据收发模块,数据收发模块通过单总线将读结果返回至主机。
可选的,在本发明第二方面的第二种实现方式中,所述单总线通讯方法还包括:
当数据收发模块接收到通讯信号时,CRC校验模块生成所述通讯信号的第一校验码并与主机发送的第二校验码进行比对;若所述第一校验码与所述第二校验码相同,则确认所述通讯信号接收正确,否则确认所述通讯信号接收错误,并触发上电复位模块对单总线设备进行复位初始化;
当数据收发模块发送通讯信号时,CRC校验模块生成所述通讯信号的第三校验码并通过所述数据收发模块发送至主机,以供主机判断所述通讯信号是否接收正确。
可选的,在本发明第二方面的第三种实现方式中,所述单总线通讯方法还包括:
测试模式接口模块根据预置私有通讯协议,产生相应寄存器的读写控制时序,并修改所述寄存器中存储的协议时序参数,以供测试所述私有通讯协议。
本发明实施例提供的技术方案中,数据收发模块负责接收与主机之间的通信,接收主机发送的通讯信号,也向主机发送通讯信号;协议检测模块保存有多种单总线协议的时序参数,可以根据通讯信号的时间间隔情况判断当前通讯信号所用具体协议;寄存器配置模块可以根据当前通讯协议对不同通讯信号的详细定义,来修改相应寄存器中的时序参数,使得单总线通讯系统能够支持当前通讯协议。具体而言,复位检测模块可以依据寄存器中的复位信号时序参数判断通讯信号是否为复位信号,数据检测模块可以依据寄存器中的数据信号时序判断通讯信号是否为数据信号;复位信号将触发上电复位模块对单总线设备进行复位初始化,而数据信号将被发送给状态机控制模块进一步解析为读写命令,以实现具体的功能。因此,应用于单总线设备上的单总线通讯系统可以根据主机的通讯信号实时调整时序参数的配置,以自适应多种不同的单总线协议,使得主机和单总线设备之间的通信不受单个特定的单总线协议的限制,提升了单总线设备使用过程中的便利性;还可以通过设置保存和测试新的单总线协议,加大了单总线技术和单总线设备在实际应用中的适用范围,提高了灵活性。
附图说明
图1为单总线的典型应用结构示意图;
图2为本发明实施例中单总线通讯系统的一个实施例示意图;
图3为DS18B20所用单总线协议的复位脉冲和响应脉冲示意图;
图4为DHT11所用单总线协议的复位脉冲和响应脉冲示意图;
图5为DS18B20所用单总线协议的写“0”时序和写“1”时序示意图;
图6为DS18B20所用单总线协议的读“0”时序和读“1”时序示意图;
图7为本发明实施例中单总线通讯方法的第一个实施例示意图;
图8为本发明实施例中单总线通讯方法的第二个实施例示意图。
具体实施方式
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
单总线适用于单主机系统,能够控制一个或多个从机设备,图1为单总线的典型应用结构示意图,一个主机(1-Wire Master)通过一条数据线(1-Wire LINE)控制多个从机设备(Slave#1-Slave#N)。
设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,这样使得单条数据线可以进行双向数据传输。单总线通常外接一个上拉电阻(Rpup),当总线闲置时,其状态为高电平。通常为了给单总线设备提供足够的电源,需要一个MOSFET管提供电压(Vpup)。
单总线系统为主从结构,主机呼叫从机时,从机应答,主机访问从机时必须严格遵循单总线命令序列。如果出现命令序列混乱,从机将不响应主机。主机和从机之间的通信需要以下3步:
步骤1:初始化单总线设备;
初始化过程由主机发出复位脉冲和从机响应应答脉冲组成。当从机收到复位脉冲后,发送应答脉冲,使主机知道总线上有从机设备且准备就绪。
步骤2:识别单总线设备;
当主机收到应答脉冲后,可以继续发出ROM命令序列。
主机通过64位全球唯一的ROM ID来识别总线上的从机设备。每个单总线设备都有一个ROM ID注册码,该注册码不可更改,由出厂激光刻度在单总线设备内部。
主机发出的ROM命令序列与各从机设备的ROM ID关联,可以指定操作某个从机设备。
步骤3:交换数据。
在主机发出ROM命令后,接着就可以发出某个功能命令来进行数据交换。
以上过程中所述涉及的所有的单总线命令序列,包括主机发出的复位脉冲、从机应答的响应脉冲、主机发出的ROM命令序列和功能命令序列,都由几种基本的信号类型组成,包括复位脉冲、应答脉冲、写0时序、读0时序、写1时序、读1时序,这些基本信号类型由单总线协议定义。当单总线协议不同时,基本信号类型的定义不同,相应的单总线命令序列也会不同。因此,如果主机遵循的单总线协议与从机遵循的单总线协议不同,主机和从机之间将无法实现通信。
本发明实施例中,主机可以是微控制器或者可编程逻辑器件,单总线通讯系统应用于单总线设备上,它们之间通过单总线进行数据交换。单总线通讯系统可以自适应多种不同的单总线协议,使得主机和应用了单总线通讯系统的单总线设备之间的通信不受单个特定的单总线协议的限制。
请参阅图2,本发明实施例中单总线通讯系统的一个实施例,主机200通过单总线300与应用于单总线设备的单总线通讯系统100通讯。单总线通讯系统100包括:
数据收发模块110,用于接收单总线300上主机200输入的通讯信号,并转发至协议检测模块120、复位检测模块130和数据检测模块140;
所述通讯信号即单总线命令序列,该通讯信号由主机200发出,可能为复位脉冲、ROM命令和功能命令,更具体的,复位脉冲用于主机呼叫从机设备,ROM命令用于识别从机设备,功能命令用于主机和从机之间的数据交换。
协议检测模块120,用于统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;
所述通讯信号即单总线命令序列,都由几种基本的信号类型组成,包括复位脉冲、应答脉冲、写“0”时序、读“0”时序、写“1”时序、读“1”时序,这些基本信号类型由单总线协议定义。当单总线协议不同时,基本信号类型的定义不同,相应的单总线命令序列也会不同。为便于理解,示例性的,以复位脉冲为例,DS18B20是一款高精度的单总线温度测量芯片,DHT11是一款有已校准数字信号输出的单总线温湿度传感器,图3为DS18B20所用单总线协议的复位脉冲和响应脉冲示意图,图4为DHT11所用单总线协议的复位脉冲和响应脉冲示意图。
如图3所示,DS18B20所用单总线协议对复位脉冲和响应脉冲的定义如下:主机先发送一段480-960us的低电平(复位脉冲),然后释放总线;DS18B20等待15-60us后,发送一段60-240us的低电平(即为响应脉冲),之后释放总线。
如图4所示,DHT11所用单总线协议对复位脉冲和响应脉冲的定义如下:主机先发送一段大于18ms的低电平(复位脉冲),然后释放总线,等待20-40us;DHT11接收到主机的起始信号后,发送一段80us低电平(即为响应脉冲)。
由图3和图4可知,不同的单总线协议对复位脉冲、应答脉冲等基本信号类型的定义差异很大,具体表现为通讯信号的上升沿(下降沿)和下降沿(上升沿)之间的时间间隔不同,基本信号类型可能包含一个或多个时间间隔。
本实施例中,协议检测模块120收到通讯信号后,统计所述通讯信号的上升沿和下降沿之间的时间间隔得到第一时间间隔,将第一时间间隔与已保存的多种单总线协议的时序参数对比,判断所述通讯信号所采用的通讯协议,所述通讯协议即为单总线协议。协议检测模块120确定所述通讯信号所采用的通讯协议后,发送至寄存器配置模块121。
寄存器配置模块121,用于根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数。
所述通讯协议,即单总线协议,定义了复位脉冲、应答脉冲、写0时序、读0时序、写1时序、读1时序这些基本信号类型,实际上定义的是信号中上升沿(下降沿)到下降沿(上升沿)之间的时间间隔长度,可能是一个具体的值或者一个范围(用两个具体的值表示),这些时间间隔长度或者时间间隔长度范围即所述协议时序参数,保存在相应的寄存器中。
为便于理解,示例性的,DS18B20是一款高精度的单总线温度测量芯片,图3、图5、图6分别为DS18B20的复位脉冲及响应脉冲、写0及写1时序、读0及读1时序示意图。
DS18B20所用通讯协议对复位脉冲及响应脉冲的定义不再赘述,与复位脉冲相关的时序参数为480us、960us;与响应脉冲相关的时序参数为15us,60us,60us,240us。
如图5所示,DS18B20所用协议对写“0”及写“1”时序的定义如下:写“0”时主机先拉低总线1us以上,然后保持低电平(数据“0”)持续60-120us;写“1”时主机先拉低总线1us以上,在15us内拉高总线,然后保持高电平(数据“1”)60us以上。主机写操作开始15us后,电平状态表示的是写的数据(低电平表示0,高电平表示1),DS18B20进行电平采样。写完一位数据后,需要释放总线。与写“0”时序相关的时序参数为:1us,60us,120us,15us;与写“1”时序相关的时序参数为1us,15us,60us,15us。
如图6所示,DS18B20所用通讯协议对读“0”及读“1”时序的定义如下:读数据时主机先拉低总线1us以上,然后释放总线,等待DS18B20将数据发送到总线上,主机等待15us后对总线采样,高电平则为数据“1”,低电平则为数据“0”,读取一位数据的时长至少60us。与读“0”和读“1”相关的时序参数为:1us,15us,60us。
本实施例中,寄存器配置模块121接收到协议检测模块120发送的通讯协议后,根据所述通讯协议对复位脉冲、应答脉冲、写“0”时序、读“0”时序、写“1”时序、读“1”时序这些基本信号类型的详细定义,修改存储在相应寄存器中的协议时序参数,使得单总线通讯系统100支持所述通讯协议。
复位检测模块130,用于统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号。
所述通讯信号即单总线命令序列,该通讯信号由主机200发出,由数据收发模块110接收后转发至复位检测模块130,可能为复位脉冲或者其他信号,复位检测模块130用于检测出复位脉冲,以便作出对主机的响应。
单总线协议对复位脉冲有明确的定义,具体表现在脉冲信号上升沿(下降沿)和下降沿(上升沿)之间的时间间隔的规定上。为便于理解,示例性的,图3为DS18B20所用单总线协议的复位脉冲和响应脉冲示意图,复位脉冲为:持续480-960us的低电平,即如果复位检测模块130收到的通讯信号的下降沿到上升沿之间的时间间隔超过480us,那么复位检测模块130就可以检测出该通讯信号为复位信号。
本实施例中,单总线通讯系统100当前所使用的单总线协议相关的时序参数保存在相应寄存器中,复位检测模块130可以根据所述单总线协议对复位脉冲的定义,来检测出复位脉冲(复位信号)。
数据检测模块140,用于统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块。
所述通讯信号即为单总线命令序列,该通讯信号由主机200发送,由数据收发模块110接收后转发至数据检测模块140,可能为复位脉冲、ROM命令和功能命令,复位脉冲为复位信号,ROM命令和功能命令为数据信号,涉及主机与从机的数据交换。不同信号的本质区别是上升沿(下降沿)和下降沿(上升沿)之间的时间间隔不同,单总线协议对多种信号的时间间隔有明确定义。
本实施例中,单总线通讯系统100当前所使用的单总线协议相关的时序参数保存在相应寄存器中,数据检测模块140可以根据所述单总线协议对数据信号的定义,来判断收到的通讯信号是否为数据信号,如果是则发送给状态机控制模块141。
状态机控制模块141,用于对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块;
数据信号由主机200发送,数据收发模块110接收后转发至数据检测模块140,确定为数据信号后发送给状态机控制模块141。所述数据信号为脉冲信号,可以解析为ROM命令和功能命令,具体的命令内容与具体的单总线设备有关。为便于理解,示例性的,DS18B20是一款高精度的单总线温度测量芯片,ROM命令如表1所示,功能命令如表2所示,命令代码用16进制表示。
表1
表2
本实施例中,状态机控制模块141对接收到的数据信号进行串并转换,得到字节命令(表中字节命令代码用十六进制表示),对字节命令解析并产生对电可擦写存储器模块143的读写时序,进行相应的读写操作。如果字节命令需要对电可擦除存储器进行写操作,状态机控制模块141会触发高压控制模块142产生存储器阵列擦写高电压,以完成写操作;如果字节命令为读操作,状态机控制模块141会对读取到的字节进行并串转换,得到数据信号并发送给数据收发模块110。数据收发模块110还用于通过单总线300将读取结果返回至主机200。
高压控制模块142,用于产生存储器阵列擦写高电压。对电可擦写存储器模块143中存储器阵列的写操作需要高电压。
本实施例中,电可擦写存储器模块143还包括地址译码器和读写控制逻辑电路,用以正确完成具体的读写操作。
CRC校验模块150,用于当数据收发模块接收到通讯信号时,生成所述通讯信号的第一校验码并与主机发送的第二校验码进行比对;若所述第一校验码与所述第二校验码相同,则确认所述通讯信号接收正确,否则确认所述通讯信号接收错误,并触发上电复位模块对单总线设备进行复位初始化;当数据收发模块发送通讯信号时,生成所述通讯信号的第三校验码并通过所述数据收发模块发送至主机,以供主机判断所述通讯信号是否接收正确。
本实施例中,主机200通过单总线300发送通讯信号到数据收发模块110,所述第一校验码为主机针对待发送的通讯信号生成的CRC校验码,第二校验码为CRC校验模块150针对接收到的通讯信号生成的CRC校验码,如果第一校验码和第二校验码相同,则说明通讯信号被正确传输。当数据收发模块110通过单总线300发送通信信号到主机200时,以同样的方式保证传输的正确性和完整性,第三校验码为CRC校验模块150针对待发送的通讯信号生成。如果校验失败,都会要求数据重发或者是设备复位。
测试模式接口模块160,用于根据预置私有通讯协议,产生相应寄存器的读写控制时序,并修改所述寄存器中存储的协议时序参数,以供测试所述私有通讯协议。
本实施例中,单总线协议的时序参数保存在相应寄存器中,修改相应寄存器中的值,便可以使单总线通讯系统100支持不同的协议。测试模式接口模块160可以根据私有通讯协议的时序参数产生针对相应寄存器的读写控制时序,以修改相应寄存器中的值,让单总线通讯系统100支持所述私有通讯协议,进而达到测试该私有协议的目的。
上电复位模块170,用于当复位检测模块检测到复位信号时,对单总线设备进行复位初始化处理。
本实施例中,所述复位初始化是指单总线通讯系统100在检测到复位信号时按照预设的复位顺序依次完成内部不同模块的复位,完成初始化过程。初始化过程完成之后即为就绪状态,单总线通讯系统100即可发送响应脉冲给主机200。
晶体震荡模块180,用于在数据收发模块接收到数据信号时产生数据采样时钟;为了降低功耗,该时钟的产生受控于内部的使能控制信号。
本实施例中,晶体震荡模块180产生数字电路的数据采样时钟和工作时钟。当主机200输入数据时才产生数据采样时钟,在单总线下降沿启动,在主机释放总线时,或者单总线低电平超过8个时钟周期时,或者应答超过4个时钟周期时停止。为了降低芯片的功耗,数字电路工作时钟也应该尽量低和受控,频率只要超过协议要求的2倍以上即可。考虑到单总线数据传输频率范围在2Mbps以下,相应的传输频率达到2MHz,所以数字电路工作时钟的频率设定在4MHz即可。这个数字电路工作时钟受一个使能控制以降低功耗,只有当单总线要对芯片读写时才启动该时钟,操作完成后停止。
上面对本发明实施例中单总线通讯系统进行了描述,下面对本发明实施例中单总线通讯方法进行描述,请参阅图7,本发明实施例中单总线通讯方法一个实施例包括:
701、数据收发模块接收单总线上主机输入的通讯信号,并转发至协议检测模块、复位检测模块和数据检测模块;
本实施例中,数据收发模块110接收单总线300上主机200输入的通讯信号,并转发至协议检测模块120、复位检测模块130和数据检测模块140。通讯信号为单总线命令序列,表现为脉冲信号。
702、协议检测模块统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;寄存器配置模块根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;
本实施例中,通讯信号即脉冲信号,不同的脉冲信号上升沿(下降沿)与下降沿(上升沿)之间的时间间隔不同,可能包含一个或多个间隔。通讯协议为单总线协议,遵循单总线协议的通讯信号为单总线命令序列,都由复位脉冲、应答脉冲、写0时序、读0时序、写1时序、读1时序等基本信号类型组成,不同单总线协议下基本信号类型的上升沿(下降沿)与下降沿(上升沿)之间的时间间隔不同,协议检测模块120可以统计通讯信号的时间间隔得到第一时间间隔,第一时间间隔可能包含一个或多个时间间隔,将第一时间间隔与已保存的多种单总线协议的时序参数对比,判断所述通讯信号所采用的通讯协议,单总线协议的时序参数可能为时间间隔,也可能为时间间隔范围。
本实施例中,协议检测模块120检测出通讯信号所遵循的通讯协议后,发送给寄存器配置模块121,寄存器配置模块121可以根据通讯协议的详细定义,修改相应寄存器中存储的协议时序参数,使得单总线通讯系统100支持所述通讯协议。
703、复位检测模块统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号,若为复位信号,则触发上电复位模块对单总线设备进行复位初始化;
本实施例中,复位检测模块130可以统计通讯信号的时间间隔得到第二时间间隔,第二时间间隔可能包含一个或多个时间间隔,将第二时间间隔与已保存的复位信号时序参数对比,判断所述通讯信号是否为复位信号,复位信号时序参数可能为时间间隔,也可能为时间间隔范围。
704、数据检测模块统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;
本实施例中,数据检测模块140可以统计通讯信号的时间间隔得到第三时间间隔,第三时间间隔可能包含一个或多个时间间隔,将第三时间间隔与已保存的数据信号时序参数对比,判断所述通讯信号是否为数据信号,数据信号时序参数可能为时间间隔,也可能为时间间隔范围。数据检测模块140检测出数据信号后,发送给状态机控制模块141。
705、状态机控制模块对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读写结果返回至主机;
本实施例中,状态机控制模块141收到数据信号后,将脉冲信号解析为ROM命令或者功能命令,再根据命令内容进入相应的读写操作状态,并将读写结果发送至数据收发模块110,数据收发模块110再发送给主机200。
本发明实施例提供的技术方案中,数据收发模块负责接收与主机之间的通信,接收主机发送的通讯信号,也向主机发送通讯信号;协议检测模块保存有多种单总线协议的时序参数,可以根据通讯信号的时间间隔情况判断当前通讯信号所用具体协议;寄存器配置模块可以根据当前通讯协议对不同通讯信号的详细定义,来修改相应寄存器中的时序参数,使得单总线通讯系统能够支持当前通讯协议。具体而言,复位检测模块可以依据寄存器中的复位信号时序参数判断通讯信号是否为复位信号,数据检测模块可以依据寄存器中的数据信号时序判断通讯信号是否为数据信号;复位信号将触发上电复位模块对单总线设备进行复位初始化,而数据信号将被发送给状态机控制模块进一步解析为读写命令,以实现具体的功能。因此,应用于单总线设备上的单总线通讯系统可以根据主机的通讯信号实时调整时序参数的配置,以自适应多种不同的单总线协议,使得主机和单总线设备之间的通信不受单个特定的单总线协议的限制,提升了单总线设备使用过程中的便利性;还可以通过设置保存和测试新的单总线协议,加大了单总线技术和单总线设备在实际应用中的适用范围,提高了灵活性。
请参阅图8,本发明实施例中单总线通讯方法的第二个实施例包括:
801、数据收发模块接收单总线上主机输入的通讯信号,并转发至协议检测模块、复位检测模块和数据检测模块;
802、协议检测模块统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;寄存器配置模块根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;
803、复位检测模块统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号,若为复位信号,则触发上电复位模块对单总线设备进行复位初始化;
804、数据检测模块统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;
805、状态机控制模块对接收到的数据信号进行串并转换,得到完整的命令字节,并根据所述协议对该命令字节解析后做出正确的操作;
本实施例中,所述数据信号为脉冲信号,可以抽象为数据“0”和数据“1”的组合,状态机控制模块141对收到的数据信号进行串并转换,可以得到完整的字节命令,字节命令有详细的功能定义,本质上是数据的读写操作。
为便于理解,示例性的,单总线设备DS18B20的字节命令“BEH”,其功能为“读取DS18B20内部RAM中9字节内容”,该命令为读命令;单总线设备DS18B20的字节命令“4EH”,其功能为“在DS18B20内部RAM的第3、4字节写入数据,紧跟该命令之后传送两字节的数据”,该命令为写命令。
806、若所述字节命令为写命令,则获取所述写命令中包含的写地址信息和待写数据内容并生成对存储器的写控制时序;触发高压控制模块产生存储器阵列擦写高电压,基于所述写控制时序将所述待写数据内容写入所述存储器中,并生成数据写结果;
本实施例中,若字节命令为写命令,状态机控制模块141除了根据具体的命令请求产生针对存储器的写时序之外,还需要触发高压控制模142产生写操作所需的高电压。
807、若所述字节命令为读命令,则获取所述读命令中包含的读地址信息并生成对存储器的读控制时序;基于所述读控制时序对所述存储器执行数据读操作,并将数据读结果发送至数据收发模块,数据收发模块通过单总线将读结果返回至主机。
本实施例中,若字节命令为读命令,状态机控制模块141会将读取到的字节进行并串转换,得到数据信号并发送给数据收发模块110,再由数据收发模块110发送给主机200。
本发明实施例提供的技术方案中,主机与数据收发模块之间的通讯信号为脉冲信号,可以抽象为数据“0”和数据“1”,串行逐位传输;数据检测模块可以依据寄存器中的数据信号时序参数判断通讯信号是否为数据信号,若通讯信号是数据信号,则将被发送给状态机控制模块进行串并转换,得到字节命令,进一步解析为读写命令,可能为ROM命令或者功能命令,以实现具体的功能;当有数据需要返回至主机时,状态机控制模块会将字节数据进行并串转换,得到数据信号再发送给数据收发模块,由数据收发模块发送给主机。
可选的,在上述单总线通讯方法的第一个或者第二个实施例的基础上,还可以包括:
当数据收发模块接收到通讯信号时,CRC校验模块生成所述通讯信号的第一校验码并与主机发送的第二校验码进行比对;若所述第一校验码与所述第二校验码相同,则确认所述通讯信号接收正确,否则确认所述通讯信号接收错误,并触发上电复位模块对单总线设备进行复位初始化;
当数据收发模块发送通讯信号时,CRC校验模块生成所述通讯信号的第三校验码并通过所述数据收发模块发送至主机,以供主机判断所述通讯信号是否接收正确。
本发明实施例所提供的技术方案中,在单总线通讯系统接收主机发送的通讯信号时,CRC校验模块针对接收的通讯信号生成校验码,与主机提供的校验码比对,以确定所述通信信号传输的完整性和准确性;在单总线通讯系统向主机发送通讯信号时,CRC校验模块针对待发送的通讯信号生成校验码,发送给主机,以供主机去验证发送的通信信号的完整性和准确性。如果出现校验失败,会重新发送数据或者对单总线设备复位。CRC校验模块确保了主机与单总线通讯系统之间数据传输的准确性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种单总线通讯系统,应用于单总线设备,其特征在于,所述单总线通讯系统包括:
数据收发模块,用于接收单总线上主机输入的通讯信号,并转发至协议检测模块、复位检测模块和数据检测模块;
协议检测模块,用于统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;
寄存器配置模块,用于根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;
复位检测模块,用于统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号;
数据检测模块,用于统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;
状态机控制模块,用于对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块;
数据收发模块还用于通过单总线将所述数据读写结果返回至主机;
所述单总线通讯系统还包括高压控制模块,用于产生存储器阵列擦写高电压;
状态机控制模块还用于:对接收到的数据信号进行串并转换,得到字节命令,并根据所述协议时序参数解析字节命令;若所述字节命令为写命令,则获取所述写命令中包含的写地址信息和待写数据内容并生成对存储器的写控制时序;触发高压控制模块产生存储器阵列擦写高电压,基于所述写控制时序将所述待写数据内容写入所述存储器中,并生成数据写结果;若所述字节命令为读命令,则获取所述读命令中包含的读地址信息并生成对存储器的读控制时序;基于所述读控制时序对所述存储器执行数据读操作,并将数据读结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读结果返回至主机。
2.如权利要求1所述的单总线通讯系统,其特征在于,所述单总线通讯系统还包括:
CRC校验模块,用于当数据收发模块接收到通讯信号时,生成所述通讯信号的第一校验码并与主机发送的第二校验码进行比对;若所述第一校验码与所述第二校验码相同,则确认所述通讯信号接收正确,否则确认所述通讯信号接收错误,并触发上电复位模块对单总线设备进行复位初始化;当数据收发模块发送通讯信号时,生成所述通讯信号的第三校验码并通过所述数据收发模块发送至主机,以供主机判断所述通讯信号是否接收正确。
3.如权利要求1所述的单总线通讯系统,其特征在于,所述单总线通讯系统还包括:
测试模式接口模块,用于根据预置私有通讯协议,产生相应寄存器的读写控制时序,并修改所述寄存器中存储的协议时序参数,以供测试所述私有通讯协议。
4.如权利要求1所述的单总线通讯系统,其特征在于,所述单总线通讯系统还包括:
上电复位模块,用于当复位检测模块检测到复位信号时,对单总线设备进行复位初始化处理。
5.如权利要求1-4中任选一项所述的单总线通讯系统,其特征在于,所述单总线通讯系统还包括:
晶体震荡模块,用于在数据收发模块接收到数据信号时产生数据采样时钟;为了降低功耗,该时钟的产生受控于内部的使能控制信号。
6.一种单总线通讯方法,应用于权利要求1-5中任一项所述的单总线通讯系统,其特征在于,所述单总线通讯方法包括:
数据收发模块接收单总线上主机输入的通讯信号,并转发至协议检测模块、复位检测模块和数据检测模块;
协议检测模块统计所述通讯信号的上升沿和下降沿之间的第一时间间隔,并根据所述第一时间间隔,判断所述通讯信号采用的通讯协议并发送至寄存器配置模块;寄存器配置模块根据所述通讯信号采用的通讯协议,修改相应寄存器中存储的协议时序参数;
复位检测模块统计所述通讯信号的上升沿和下降沿之间的第二时间间隔,并根据所述第二时间间隔和所述协议时序参数,判断所述通讯信号是否为复位信号,若为复位信号,则触发上电复位模块对单总线设备进行复位初始化;
数据检测模块统计所述通讯信号的上升沿和下降沿之间的第三时间间隔,并根据所述第三时间间隔和所述协议时序参数,判断所述通讯信号是否为数据信号,若为数据信号,则将所述数据信号发送至状态机控制模块;
状态机控制模块对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读写结果返回至主机;
其中,所述状态机控制模块对接收到的数据信号进行读写命令解析,根据命令解析结果进行状态机数据读写控制,并将数据读写结果发送至数据收发模块,以供数据收发模块通过单总线将所述数据读写结果返回至主机,包括:
状态机控制模块对接收到的数据信号进行串并转换,得到完整的命令字节,并根据所述协议对该命令字节解析后做出正确的操作;
若所述字节命令为写命令,则获取所述写命令中包含的写地址信息和待写数据内容并生成对存储器的写控制时序;触发高压控制模块产生存储器阵列擦写高电压,基于所述写控制时序将所述待写数据内容写入所述存储器中,并生成数据写结果;
若所述字节命令为读命令,则获取所述读命令中包含的读地址信息并生成对存储器的读控制时序;基于所述读控制时序对所述存储器执行数据读操作,并将数据读结果发送至数据收发模块,数据收发模块通过单总线将读结果返回至主机。
7.如权利要求6所述的单总线通讯方法,其特征在于,所述单总线通讯方法还包括:
当数据收发模块接收到通讯信号时,CRC校验模块生成所述通讯信号的第一校验码并与主机发送的第二校验码进行比对;若所述第一校验码与所述第二校验码相同,则确认所述通讯信号接收正确,否则确认所述通讯信号接收错误,并触发上电复位模块对单总线设备进行复位初始化;
当数据收发模块发送通讯信号时,CRC校验模块生成所述通讯信号的第三校验码并通过所述数据收发模块发送至主机,以供主机判断所述通讯信号是否接收正确。
8.如权利要求7所述的单总线通讯方法,其特征在于,所述单总线通讯方法还包括:
测试模式接口模块根据预置私有通讯协议,产生相应寄存器的读写控制时序,并修改所述寄存器中存储的协议时序参数,以供测试所述私有通讯协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111664204.1A CN114416622B (zh) | 2021-12-30 | 单总线通讯系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111664204.1A CN114416622B (zh) | 2021-12-30 | 单总线通讯系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114416622A CN114416622A (zh) | 2022-04-29 |
CN114416622B true CN114416622B (zh) | 2024-06-04 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727422A (zh) * | 2008-10-29 | 2010-06-09 | 大唐移动通信设备有限公司 | 一种控制单总线设备的方法及系统 |
CN104133791A (zh) * | 2014-07-25 | 2014-11-05 | 浪潮集团有限公司 | 一种单总线通信方法 |
CN108287800A (zh) * | 2017-12-26 | 2018-07-17 | 北京七芯中创科技有限公司 | 一种基于单总线通信协议的总线仲裁系统及方法 |
CN111339001A (zh) * | 2020-03-09 | 2020-06-26 | 厦门润积集成电路技术有限公司 | 一种低功耗单总线通讯方法及系统 |
CN113315195A (zh) * | 2021-05-25 | 2021-08-27 | 深圳市普渡科技有限公司 | 充电控制方法、充电桩、可移动设备以及可读存储介质 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727422A (zh) * | 2008-10-29 | 2010-06-09 | 大唐移动通信设备有限公司 | 一种控制单总线设备的方法及系统 |
CN104133791A (zh) * | 2014-07-25 | 2014-11-05 | 浪潮集团有限公司 | 一种单总线通信方法 |
CN108287800A (zh) * | 2017-12-26 | 2018-07-17 | 北京七芯中创科技有限公司 | 一种基于单总线通信协议的总线仲裁系统及方法 |
CN111339001A (zh) * | 2020-03-09 | 2020-06-26 | 厦门润积集成电路技术有限公司 | 一种低功耗单总线通讯方法及系统 |
CN113315195A (zh) * | 2021-05-25 | 2021-08-27 | 深圳市普渡科技有限公司 | 充电控制方法、充电桩、可移动设备以及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743301B (zh) | 一种基于Modbus协议的数据收发系统及方法 | |
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信系统和方法 | |
CN107025203B (zh) | 第一板卡、第二板卡及一种设备 | |
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互系统和方法 | |
CN105786753A (zh) | 一种i2c总线上的主从设备间的传输数据的方法及设备 | |
CN110457744B (zh) | 一种sd/sdio设备仿真模型框架及其设计方法 | |
US7099970B1 (en) | Apparatus and method to enhance a one-wire bus | |
CN108011692A (zh) | 一种用于单片机的数据通信方法 | |
CN112565036B (zh) | 数据传输方法、装置、存储介质及通信系统 | |
US4937816A (en) | Single-channel communication bus system and station for use in such a communication bus system | |
CN105446837A (zh) | 检测iic接口器件是否连接的方法、装置以及系统 | |
CN114416622B (zh) | 单总线通讯系统及方法 | |
US5978927A (en) | Method and system for measuring a maximum and minimum response time of a plurality of devices on a data bus and adapting the timing of read and write time slots | |
CN114416622A (zh) | 单总线通讯系统及方法 | |
KR20210154249A (ko) | 버스 모니터링 장치 및 방법, 저장 매체, 전자장치 | |
CN113709010B (zh) | 一种不限帧长的Modbus通信协议系统 | |
CN100511172C (zh) | 一种板间透传总线的测试装置及方法 | |
CN110221937A (zh) | 一种板间通信数据的解析方法 | |
CN115328708A (zh) | 串行外设接口时序的参数测试方法及测试装置 | |
CN210380890U (zh) | 一种Modbus设备的通讯系统及SIS系统 | |
CN114095300A (zh) | 自适应速率的数据读写方法及设备 | |
CN113505094B (zh) | Mcu、主机与多个mcu传输数据的方法 | |
RU72772U1 (ru) | Модуль-контроллер магистрального последовательного интерфейса | |
CN113630294B (zh) | 一种交换机模块化检测方法和装置 | |
CN113835940B (zh) | 一种设置串行中断模式的方法、系统、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |