一种数据通信协议结构及方法与流程

文档序号:12120817阅读:253来源:国知局
一种数据通信协议结构及方法与流程

本发明涉及通讯技术领域,具体涉及一种数据通信协议结构及方法。



背景技术:

现今广泛使用的串行通信总线协议(如I2C、SPI),均受限于一主一从或一主多从的传输关系,总线上只能有一台主机,不能够实现多系统设备间自由灵活的相互通信。



技术实现要素:

本发明的目的是针对现有技术中的不足,提供一种基于串行总线的可实现多主多从、多个设备间自由灵活地相互通信的数据传输协议结构及方法。

为实现上述目的,本发明公开了如下技术方案:

一种数据通信协议结构,通信总线包括三根信号线,分别为:用于标示总线状态的BUSY线、用于系统数据传输的DATA线和用于提供通信数据时序的CLK线,所有连接到总线设备上的串行数据线都连接到通信总线的DATA线上,所有设备的时钟线都接在通信总线的CLK线上,各个设备的通信状态线都接在通信总线的BUSY线上,BUSY线、DATA线和CLK线与电源连接之间需要有上拉电阻。

进一步的,每个总线带上的设备由系统分配一个唯一的地址。

本发明还公开了一种数据通信协议方法,利用如上所述的数据通信协议结构进行数据传输,规定传输数据时,数据结构如下,第一个字节为发出源设备地址,第二字节为目标设备地址,第三个字节内容表示接下来有效数据的长度,之后是对应长度的有效数据,最后附有一位数据校验位;

总线的运行由BUSY线的状态控制,总线空闲时,BUSY线由上拉电阻置为高电平,数据源设备发送数据前会先检测BUSY线状态,数据在总线开始传输的时候,数据源设备将BUSY线由高电平拉低将总线置为占用状态,接着在CLK线上产生通信时序信号,并通过DATA线发出对应时序的数据信息,每一个时钟周期对应一个bit数据的传输,在接收设备端,其他总线上的设备被BUSY线的低电平触发中断开始进行数据监听,在每个CLK低电平时段对数据进行读取,在读取第二字节的数据地址后,与自身地址进行比对,比对相符时,开始接收有效数据,若比对不符时,则退出中断,释放BUSY线,再次回到等待状态,接收设备完成所有数据的接收后,将BUSY线重新拉高,释放总线。

进一步的,所述每个总线带上的设备为相同工作频率的设备或不同工作频率的设备,总线在通信时对通信频率进行设置,各系统设备间的通信都按照设定的频率进行,当为不同工作频率的设备时,即有不同系统时钟的设备连接到总线上时,在设备的CLK线端,通过分频或倍频的调配,将设备统一配置为总线的通信频率,从而实现了即使各个设备的工作频率不同,当其连接到总线上时,其通信间的时序频率都能达到一致,屏蔽了不同系统时钟设备的差异性。

本发明公开的一种数据通信协议结构及方法,具有以下有益效果:

本数据通讯协议的发明,通过一根BUSY线标示总线状态,加之DATA线与CLK线对于数据及数据时序的合理定义分配,只需总线上每个设备配置以一个唯一的地址,便可实现多设备之间无主从限制的相互自由通信。

多个设备间没有主从关系限值,系统只需配置给各个设备唯一的通信地址,则可以实现多个设备之间的自由交互通信。

不同系统时钟设备连接到总线上时,能简单有效地实现设备通信地自适应性。

附图说明

图1是本发明的硬件系统连接图;

图2是数据结构定义图;

图3是数据传输时序图。

具体实施方式

下面结合实施例对本发明作进一步描述。

请参见图1。一种数据通信协议结构,通信总线包括三根信号线,分别为:用于标示总线状态的BUSY线、用于系统数据传输的DATA线和用于提供通信数据时序的CLK线,所有连接到总线设备上的串行数据线都连接到通信总线的DATA线上,所有设备的时钟线都接在通信总线的CLK线上,各个设备的通信状态线(通常选用设备的中断接口)都接在通信总线的BUSY线上,BUSY线、DATA线和CLK线与电源连接之间需要有上拉电阻。

作为一种具体实施例,为了识别设备,将数据有效传输到目的地,每个总线带上的设备由系统分配一个唯一的地址。

一种数据通信协议方法,利用如上所述的数据通信协议结构进行数据传输,规定传输数据时,数据结构如下,第一个字节为发出源设备地址,第二字节为目标设备地址,第三个字节内容表示接下来有效数据的长度,之后是对应长度的有效数据,最后附有一位数据校验位(见图2),为数据提供安全可靠保证;

见图3,总线的运行由BUSY线的状态控制,总线空闲时,BUSY线由上拉电阻置为高电平,数据源设备试图发送数据前会先检测BUSY线状态,数据在总线开始传输的时候,数据源设备将BUSY线由高电平拉低将总线置为占用状态,接着在CLK线上产生通信时序信号,并通过DATA线发出对应时序的数据信息,每一个时钟周期对应一个bit数据的传输,在接收设备端,其他总线上的设备被BUSY线的低电平触发中断开始进行数据监听,在每个CLK低电平时段对数据进行读取,在读取第二字节的数据地址后,与自身地址进行比对,比对相符时,开始接收有效数据,若比对不符时,则退出中断,释放BUSY线,再次回到等待状态,接收设备完成所有数据的接收后,将BUSY线重新拉高,释放总线,总线再次回到空闲可用状态,可供任意设备发起通信。

本发明中,所述每个总线带上的设备为相同工作频率的设备或不同工作频率的设备,本发明可实现不同工作频率的设备在总线上通信时通信时序的自适应。总线在通信时对通信频率进行设置,各系统设备间的通信都按照设定的频率进行,当为不同工作频率的设备时,即有不同系统时钟的设备连接到总线上时,在设备的CLK线端,通过分频或倍频的调配,将设备统一配置为总线的通信频率,从而实现了即使各个设备的工作频率不同,当其连接到总线上时,其通信间的时序频率都能达到一致,屏蔽了不同系统时钟设备的差异性,简易有效地实现了设备在总线通信地自适应性。

本发明可以解决现今广泛使用的串行通信总线协议均受限于一主一从或一主多从的传输关系的问题,打破总线上只能有一台主机的限制,所有设备可以实现组网,即任意点对点的通信(类似mesh网络),实现多主多从、多系统设备间自由灵活的相互通信。

以上所述仅是本发明的优选实施方式,而非对其限制;应当指出,尽管参照上述各实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,其依然可以对上述各实施例所记载的技术方案进行修改,或对其中部分或者全部技术特征进行等同替换;而这些修改和替换,并不使相应的技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1