本发明涉及通信技术领域,尤其涉及单线读写通讯系统及方法。
背景技术:
在包含主从结构的系统中,通常需要有一种通讯接口连接主设备和一个或多个从设备,主设备利用这个接口来读写从设备的寄存器,实现配置从设备、读取从设备状态等目的。在现有的通讯接口中,常见的有i2c协议、spi协议、i2s协议、smi协议等。在一些小型设备中,系统厂商希望芯片之间的连线尽量少,节省成本和布线空间。但是传统技术存在以下技术问题:在现有的通讯接口中,大部分需要2根或以上的信号线,以i2c接口协议为例,主从设备之间的连接如图1所示。其中sda和scl在数据传输过程中分别传递data和clock,波形如图2所示。
另外,在现有的接口设备中,通常都要求从设备需要有自己的时钟来完成一些运算和控制,即需要晶振、rc振荡器或者锁相环等。对于一些从设备,可能只有少数几个状态值供主设备读取,或者仅短时间内需要时钟完成一些简单运算或者控制,所以希望从设备芯片尽量降低,最好不需要时钟产生电路,这样可以降低芯片成本和配套电子元器件成本。
技术实现要素:
为了解决上述的技术问题,本发明一个目的是提供一种单线读写通讯系统,包括单线通讯的主设备和从设备,所述主设备和从设备均包括输出控制电路、编码电路和输入检测电路;所述主设备包括时钟电路。
采用以上技术方案,所述输入检测电路如下:
当输入信号大于2.5v时,比较器1输出为1,否则为0;
当输入信号大于1.0v时,比较器2输出为1,否则为0;
比较器1和比较器2的输出信号经过数据选择器选择后,再经过dff触发器输出,从设备的输入检测电路能够将输入时钟和输入数据恢复出来。
采用以上技术方案,所述从设备包括相连的延时电路delay1和延时电路delay2,延时电路delay1的输入端连接输入时钟,延时电路delay2的输出端连接从设备的输出控制电路。
采用以上技术方案,所述主设备的编码电路和从设备的编码电路均包括开关1和开关2。
采用以上技术方案,所述主设备与从设备之间设有上拉电阻。
本发明的另一目的是提供一种单线读写通讯方法,包括:
主设备与从设备单线通讯;
从主设备到从设备通讯时,从设备没有本地时钟,从从设备的输入检测电路中恢复出主设备发出的输入时钟;
从设备利用恢复出的输入时钟产生控制信号,从主设备的输入检测电路中恢复出从设备发出的输入数据,实现从从设备到主设备的通讯。
采用以上技术方案,从从设备的输入检测电路中恢复出主设备发出的输入时钟的方法如下:从设备的输入检测电路的接收端在接收到主设备发出的输入信号后,根据输入信号,比较器输出1或0,比较器的输出信号经过mux选择和两个dff后能够将输入时钟和输入数据恢复出来。
采用以上技术方案,从设备根据恢复出来的输入时钟和输入数据,对数据包的格式进行解析,判断出设备id是否匹配、读写命令及读写地址,若是写命令,则可以将输入数据写入到相应的寄存器中,若是读命令,则可以利用恢复的输入时钟从寄存器表中准备好相应的读出数据。
采用以上技术方案,从设备利用恢复的输入时钟经过延时电路delay1和延时电路delay2的两次延时后得到两个有相位差的时钟,从设备的输出控制电路和编码电路利用这两个时钟,产生控制从设备的开关1和开关2的控制信号,实现从从设备到主设备方向的通讯。
采用以上技术方案,在从设备发送数据时,主设备的开关1和开关2处于关闭状态;在主设备发送数据时,从设备的开关1和开关2处于关闭状态;在主设备和从设备都不需要发送数据时,主设备和从设备的开关1和开关2都处于关闭状态,通讯信号被上拉电阻上拉到1.8v。
本发明的有益效果:本发明只利用一根信号线,完成主设备和从设备之间的读写通信,并且可以由主设备为从设备提供通讯过程需要的时钟信号,降低从设备的设计复杂度和系统成本。
附图说明
图1是现有技术单线读写通讯中的两根连接线的主从设备之间的连接示意图。
图2是现有技术单线读写通讯中的sda和scl在数据传输过程中分别传递data和clock波形图。
图3是本发明实施例1单线读写通讯系统中的一根连接线的主从设备之间的连接示意图。
图4是本发明实施例1单线读写通讯系统的完整示意图。
图5是本发明实施例1单线读写通讯系统中主设备的电路示意图。
图6是本发明实施例1单线读写通讯系统中从设备的电路示意图。
图7是本发明实施例2单线读写通讯方法中主设备与从设备的通信示意图。
图8是本发明实施例2单线读写通讯方法中从主设备到从设备方向通信的过程示意图。
图9是本发明实施例2单线读写通讯方法中的读写命令包含内容的示意图。
图10是本发明实施例2单线读写通讯方法中的从主设备到从设备方向输出时钟和输出数据的波形示意图。
图11是本发明实施例2单线读写通讯方法中的从主设备到从设备方向的输出波形示意图。
图12是本发明实施例2单线读写通讯方法中的从主设备到从设备方向的主设备的编码电路对开关1和开关2的控制示意图。
图13是本发明实施例2单线读写通讯方法中的从主设备到从设备方向的从设备的输入检测电路的电路示意图。
图14是本发明实施例2单线读写通讯方法中的从主设备到从设备方向的从设备的输入检测电路输出的波形示意图。
图15是本发明实施例2单线读写通讯方法中的从从设备到主设备方向的输出波形示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例1
参照图3所示,本发明实施例1提供一种单线读写通讯系统,包括主设备和从设备,主设备与从设备之间通过一根连接线连接,从设备不需要自己的时钟产生电路,从设备数字电路需要的时钟可以这个单连接线中获取。
具体的,参照图4所示,主设备和从设备均包括输出控制电路、编码电路和输入检测电路,主设备包括时钟电路,在主设备发送数据时,主设备的编码电路将输出时钟和输出数据一同进行编码并发送给从设备。当然在仅需要输出时钟不需要输出数据时,默认输出数据为0。
从设备包括相连的延时电路delay1和延时电路delay2,延时电路delay1的输入端连接输入时钟,延时电路delay2的输出端连接从设备的输出控制电路。在实际通信时,从设备没有内部时钟,需要从从设备的输入检测电路中恢复主设备发出的输入时钟和输入数据,从设备利用这个恢复的输入时钟经过延时电路delay1和延时电路delay2的两次延时后得到两个有相位差的时钟,从设备的输出控制电路和编码电路利用这两个时钟,用于控制从设备的输出控制电路和编码电路,从设备不需要输出时钟,所以参与编码的只有数据。
在主设备发送数据时,从设备的开关1和开关2是关闭的;同理,在从设备发送数据时,主设备的开关1和开关2也是关闭的;所以不会产生冲突。当主从设备都不需要传输数据和时钟时,两边的开关1和开关2都关闭,所以pcb上的信号是被上拉到1.8v,由于没有波形跳变,所以接口和i2c一样会很省电。
实施例2
参照图1和图2所示,本发明实施例2提供一种单线读写通讯方法,包括:
主设备与从设备单线通讯;
从主设备到从设备通讯时,从设备没有本地时钟,从从设备的输入检测电路中恢复出主设备发出的输入时钟和输入数据;
从设备利用恢复出的输入时钟产生控制信号,从主设备的输入检测电路中恢复出从设备发出的输入数据,实现从从设备到主设备的通讯。
为了阐述方便,下文以单个主设备和单个从设备的角度阐述该接口协议及实例,利用slavedeviceid等方式,很容易可以从单个从设备扩展到多个从设备的系统。
该接口协议和传统的其它协议类似,主设备有“读从设备”、“写从设备”两种功能。一般的,读写命令会包含如下格式的内容,其中”读数据”这个栏位的方向是“从设备”到“主设备”,其余栏位是从“主设备”到“从设备”。除此之外,有些接口还有“start”、“stop”、“ack”、“nack”之类的栏位,但无论多少种,从数据方向来说,都是这两种。
下文先对这两个方向的单bit数据传递做解释,根据这些单bit信号可以组成任意栏位组成的数据包格式。该发明对数据包格式没有限定,所以这里不做具体要求。
(一)从主设备到从设备方向
如果要主设备同时输出时钟和输出“1”“0”数据,输出波形如图2所示。为了实现这个输出波形,主设备可以采用图3的方式。
将图4中输出“1”和输出“0”分成6个区间,图3中编码电路对开关1和开关2的控制如表1所示。
从设备的输入检测电路如图4所示,当输入信号大于2.5v时,比较器1输出为1,否则为0;当输入信号大于1.0v时,比较器2输出为1,否则为0;比较器1和比较器2的输出信号经过数据选择器选择后,再经过dff触发器输出,输出结果如图5所示,从图5可以看出从设备的输入检测电路可以把输入时钟clock和输入数据data都恢复出来。
在实际通信中,从设备根据恢复出来的输入时钟clock和输入数据data,可以对数据包的格式进行解析,判断出设备id是否匹配、读写命令及读写地址等,若是写命令,则可以将输入数据data写入到相应的寄存器中,若是读命令,则可以利用恢复的输入时钟clock从寄存器表中准备好相应的读出数据。
若上述操作执行过程需要额外的时钟,可以制定相应的数据包格式,主设备可以增加若干个时钟周期,只提供时钟,不提供数据。当然本发明没有规定特定的通信包格式,只要在一根信号线上利用双向进行数据交互的格式都能适用。
(二)从从设备到主设备方向
请参照图6所示,在从设备中,没有本地时钟,只有从从设备的输入检测电路中恢复出主设备发出的输入时钟。从设备利用这个恢复的输入时钟经过延时电路delay1和延时电路delay2的两次延时后得到两个有相位差的时钟,从设备的输出控制电路和编码电路利用这两个时钟,产生控制从设备的开关1和开关2的控制信号,从而产生从从设备到主设备方向的数据,实现从从设备到主设备方向的通讯。
请参照图7所示,从图中的波形中可以看出,从从设备往主设备方向的数据需要两个区间,第一个区间是“readclockphase”,主要是用于给从设备提供时钟;第二个区间是“readdataphase”,主要是用于从设备产生输出数据给主设备。
如果要送出“1”,从设备的输出控制电路和编码电路在“输入时钟delay1”的下降沿将输出波形拉到3.3v,在“输入时钟delay2”的下降沿将输出波形拉回为1.8v。
如果要送出“0”,从设备的输出控制电路和编码电路在“输入时钟delay1”的下降沿将输出波形拉到0v,在“输入时钟delay2”的下降沿将输出波形拉回为1.8v。
从图7中的波形可以看出,无论输出1或者输出0,波形都是从1.8v开始,最后回到1.8v,而1.8v是由外部上拉电阻决定的,不是由主设备驱动,所以不存在主设备和从设备输出电平冲突的情况。
在主设备端,可以放一个和从设备一样的输入检测电路,利用同样的原理,从波形中恢复出从设备发出的数据1和数据0。
本发明除了从设备的延时电路delay1和延时电路delay2外,没有特别的时序关系要求,而延时电路delay1和延时电路delay2也只要满足dff的时钟、复位引脚的要求即可,所以频率适用的范围很广。具体的,在从设备的输入检测电路中,dff利用的是比较器输出信号作为异步reset和时钟来用,所以两个信号满足dff的要求就可以实现功能,所以输入时钟的两个延时电路和时钟频率无关,只要大于某个固定值即可。例如每个延时电路delay20ns,所以延时电路的电路实现比较简单。
综上所述,从主设备往从设备方向的数据只要一个时钟周期;从从设备到主设备方向的数据需要两个时钟周期,第一个是主设备送时钟给从设备,第二个是从设备送数据给主设备。但在实际定义数据包格式时,在数据中间可以插入任意多个时钟周期,用于主设备给从设备提供时钟,只要主设备和从设备之间按数据格式约定执行即可。
本发明中涉及的几个电平(输出电平、上拉电平、比较器电平)都是举例,只要能满足逻辑关系,可以更换电平。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
1.一种单线读写通讯系统,其特征在于:包括单线通讯的主设备和从设备,所述主设备和从设备均包括输出控制电路、编码电路和输入检测电路;所述主设备包括时钟电路。
2.如权利要求1所述的单线读写通讯系统,其特征在于:所述输入检测电路如下:
当输入信号大于2.5v时,比较器1输出为1,否则为0;
当输入信号大于1.0v时,比较器2输出为1,否则为0;
比较器1和比较器2的输出信号经过数据选择器选择后,再经过dff触发器输出,从设备的输入检测电路能够将输入时钟和输入数据恢复出来。
3.如权利要求2所述的单线读写通讯系统,其特征在于:所述从设备包括相连的延时电路delay1和延时电路delay2,延时电路delay1的输入端连接输入时钟,延时电路delay2的输出端连接从设备的输出控制电路。
4.如权利要求1所述的单线读写通讯系统,其特征在于:所述主设备的编码电路和从设备的编码电路均包括开关1和开关2。
5.如权利要求1所述的单线读写通讯系统,其特征在于:所述主设备与从设备之间设有上拉电阻。
6.一种单线读写通讯方法,其特征在于,包括:
主设备与从设备单线通讯;
从主设备到从设备通讯时,从设备没有本地时钟,从从设备的输入检测电路中恢复出主设备发出的输入时钟;
从设备利用恢复出的输入时钟产生控制信号,从主设备的输入检测电路中恢复出从设备发出的输入数据,实现从从设备到主设备的通讯。
7.如权利要求6所述的单线读写通讯方法,其特征在于:从从设备的输入检测电路中恢复出主设备发出的输入时钟的方法如下:从设备的输入检测电路的接收端在接收到主设备发出的输入信号后,根据输入信号,比较器输出1或0,比较器的输出信号经过mux选择和两个dff后能够将输入时钟和输入数据恢复出来。
8.如权利要求7所述的单线读写通讯方法,其特征在于:从设备根据恢复出来的输入时钟和输入数据,对数据包的格式进行解析,判断出设备id是否匹配、读写命令及读写地址,若是写命令,则可以将输入数据写入到相应的寄存器中,若是读命令,则可以利用恢复的输入时钟从寄存器表中准备好相应的读出数据。
9.如权利要求6所述的单线读写通讯方法,其特征在于:从设备利用恢复的输入时钟经过延时电路delay1和延时电路delay2的两次延时后得到两个有相位差的时钟,从设备的输出控制电路和编码电路利用这两个时钟,产生控制从设备的开关1和开关2的控制信号,实现从从设备到主设备方向的通讯。
10.如权利要求9所述的单线读写通讯方法,其特征在于:在从设备发送数据时,主设备的开关1和开关2处于关闭状态;在主设备发送数据时,从设备的开关1和开关2处于关闭状态;在主设备和从设备都不需要发送数据时,主设备和从设备的开关1和开关2都处于关闭状态,通讯信号被上拉电阻上拉到1.8v。
技术总结