发明内容
本发明实施例的目的在于提供一种总线数据传输方法,旨在解决现有技术中总线系统布线成本高且从机需要外接电源供电的问题。
本发明实施例是这样实现的,一种总线数据传输方法,所述方法包括下述步骤:
将主机时钟信号和主机数据信号同步叠加成总线传输信号;
将所述总线传输信号以数据包形式通过一根总线发送给从机。
本发明实施例的另一目的在于提供一种总线数据传输系统,所述系统包括主机和至少一个从机,所述主机和从机通过一根总线连接;
所述主机包括:
主机时钟信号发生电路,用于产生主机时钟信号;
主机数据信号发生电路,用于根据所述主机时钟信号电平的高低以及主机发送的数据,产生相应的主机数据信号;
信号叠加电路,用于将主机时钟信号与主机数据信号叠加成总线传输信号;
检测电路,用于检测总线上的总线数据传输信号电平高低。
本发明实施例通过一根总线来同时实现主机与从机之间的数据传输以及主机对从机的充电,在数据传输量不大、数据传输速率不高的情况下,很好地节约了布线成本。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,时钟信号和数据信号占用一根总线来进行传输,并通过产生三种不同电平阶段的总线数据传输信号来实现主机与从机之间的数据传输,同时主机对从机进行充电,保证总线数据传输系统的通信正常工作。
图1示出了本发明第一实施例提供的总线数据传输方法的实现流程,详述如下:
在步骤S101中,检测主机发出的时钟信号是否为高电平,是则令主机数据信号也为高电平,否则执行步骤S102。
在本发明实施例中,当主机时钟信号为高电平时,通过强充电电路给总线一个大的电流,为从机进行充电。
在步骤S102中,当检测到主机发出的时钟信号由高电平跳变到低电平时,产生低电平暂态主机数据信号。
在步骤S103中,在主机数据信号产生低电平暂态后,根据主机需要发送的数据相应地拉高或者拉低主机数据信号电平。
在本发明实施例中,当主机当前需要发送数据1时,则拉高主机数据信号电平;当主机当前需要发送数据0时,则拉低主机数据信号电平。
在步骤S104中,根据主机发出的时钟信号和数据信号,同步叠加成总线传输信号,生成数据包并通过总线发送给从机。
在本发明实施例中,主机时钟信号为脉冲宽度调制信号(Pulse WidthModulation,PWM),在产生主机时钟信号时,先产生高位再产生低位。由于主机数据信号总是在主机时钟信号电平为低的时候相应的拉高或者拉低其电平,因此,步骤S104中的总线传输信号会产生三个不同的电平阶段,分别为+Vcc、1/2Vcc和GND。通过以上三个不同的电平阶段,来实现主机对从机的数据传输过程以及强充电过程。
在本发明实施例中,当主机时钟信号为低电平时,进行主机对从机的数据传输过程。在本发明实施例中,由于在主机时钟信号为低电平时,根据所要发送的数据相应地拉高或者拉低主机数据信号的电平,当主机当前需要发送数据1时,则拉高主机数据信号电平;当主机当前需要发送数据0时,则拉低主机数据信号电平,因此相应地,当主机发送数据1时,主机时钟信号与主机数据信号叠加出的总线传输信号电平阶段为1/2Vcc;当主机发送数据0时,主机时钟信号与主机数据信号叠加出的总线传输信号电平阶段为GND。
由此,在主机时钟信号为低电平时,进行相应的主机对从机的数据传输,实现由主机向从机发送数据包,该数据包中包含前导位、从机地址、命令、校验位以及主机需要向从机发送的数据,具体的通信协议数据格式以及时钟信号、数据信号的宽度均不是固定的,在此不作限定。
作为本发明的一个实施例,从机不对自身进行供电,而是当主机时钟信号为高电平,即总线输出电平阶段为+Vcc期间,通过主机给总线一个大电流来完成主机对从机的强充电过程,实现对从机的充电,以保证总线系统不会因为电压下降而导致整个系统无法正常工作。
作为本发明的又一个实施例,每当总线数据传输系统中完成至少一个数据包传输的过程,便预留一定的时间来专门完成主机对从机的强充电过程,在此期间,主机有意保持主机时钟信号及主机数据信号的高电平阶段,进行主机对从机的强充电过程。该强充电过程通过主机给总线一个大电流来实现对从机的充电,以保证从机可以有充分的时间对自身完成充电。以上充电时间以及充电时间间隔中发送数据包的个数均不是固定的,在此不作限定。
作为本发明的一个实施例,当从机需要向主机发送数据时,需要在接收完主机的地址和命令,并收到由主机发送的同步信号后,再进行相应数据的发送。
图2示出了本发明第二实施例提供的总线数据传输方法的实现流程,详述如下:
在步骤S201中,接收主机的发送数据命令,该发送数据命令由主机向从机发送的数据包中的地址和命令来给出,通过总线传输信号传输至从机,当符合数据包中地址的从机接收到主机的发送数据命令时,开始准备对主机进行数据发送。
在步骤S202中,接收主机发送的同步信号。
在本发明实施例中,主机发送的同步信号通过主机数据信号的低电平暂态产生,收到该同步信号后,从机开始对主机进行数据发送。从机向主机发送的数据包中包括校验位以及从机需要向主机发送的数据,需要说明的是,在本发明实施例中,主机和从机均采用相同的数据校验方式。
在步骤S203中,向主机发送相应数据。
当从机向主机进行数据发送时,从机每收到主机发出的一个同步信号即发送一位数据,此时主机数据信号在产生了一个低电平的暂态之后即释放总线,完成从机向主机发送数据的过程。在本发明实施例中,当从机向主机发送数据1时,相应的总线传输信号电平阶段为1/2Vcc;当从机向主机发送数据0时,相应的总线传输信号电平阶段为GND。
图3示出了本发明实施例提供的总线数据传输系统的主机结构,为了便于说明,仅示出了与本实施例相关的部分。
在本发明实施例中,总线数据传输系统由主机1和至少一个从机2组成,且主机和从机的时钟信号及同步信号均由主机1产生,其中,主机1包括:
主机时钟信号发生电路11,产生主机时钟信号,在本发明实施例中,主机时钟信号同时作为主机强充电控制信号,为从机进行充电。
主机数据信号发生电路12,根据主机时钟信号发生电路11产生的主机时钟信号电平的高低以及主机当前发送的数据,产生相应的主机数据信号。
信号叠加电路13,将主机时钟信号发生电路11产生的主机时钟信号与主机数据信号发生电路12产生的主机数据信号叠加,生成总线传输信号。
强充电电路14,通过给总线一个大的电流,为从机2进行充电。
主机检测电路15,检测总线上的总线数据输出信号电平高低。
从机2包括:
从机数据信号发生电路21,在收到主机发出的同步信号后,根据所要发送的数据产生相应的数据信号,通过总线发送给主机。
从机检测电路22,检测总线上的总线数据传输信号电平高低。
作为本发明的一个实现示例,图4A至图4C分别示出了本发明实施例提供的总线数据传输方法的主机部分硬件电路、从机部分硬件电路以及总线数据传输系统工作的时序,在本实现示例中,采用的主机时钟信号的周期为1200us,作为同步信号的低电平暂态宽度为100us。
参照图4C,由上至下分别为主机时钟信号、主机数据信号、从机数据信号以及总线数据传输信号。主机首先通过发送数据包,命令地址为01100011的从机向主机发送数据。具有该地址的从机在接收到主机的命令之后,通过总线向主机发送数据包,该数据包中包括校验位0以及需要向主机发送的数据01001101。在图4C叠加的总线传输信号中,由于控制电路中电容的存在,因此总线数据传输系统的同步信号,即主机数据信号产生的低电平暂态在此表现为一个上升沿陡坡。
在本发明实现示例中,主机对从机的强充电过程除了存在于时钟信号为高电平期间,还存在于系统完成一个完整的数据包传输之后,通过给总线一个大电流,对从机进行5.4ms至7.5ms的充电过程。
在本发明实施例中,仅通过一根总线来进行总线系统中时钟信号与数据信号的传输,实现主机与从机之间的数据传输,并通过一根总线同时完成主机对从机的充电,而不需要从机为自身供电,在数据传输量不大、数据传输速率不高的情况下,起到了通信线路简单、防雷效果好的作用,很好地节约了布线成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。