This application discloses a communication system and method based on serial bus. A specific implementation of the system includes a transmitter, a receiver and a serial bus. The serial bus includes three signal lines, BUSY line, DATA line and CLK line. The transmitter closes the bus interruption mechanism. When the state of the serial bus is idle, it occupies the serial bus and sends byte-by-byte data according to the preset time interval. After all byte-by-byte data has been sent, the system can complete the interruption mechanism. Release the serial bus and open the bus interruption mechanism. After the receiver is triggered to interrupt the bus and confirm that the bus is occupied, it receives 8 bits of a byte data bit by bit. After that, it releases the serial bus and opens the bus interruption mechanism to handle other tasks. The implementation realizes serial data transmission without distinguishing master-slave device, half-duplex and synchronization. In addition, the receiver can perform other tasks during the interval of receiving two bytes of data to improve the overall performance of the system.
【技术实现步骤摘要】
基于串行总线的通信系统和方法
本申请涉及电子
,尤其涉及基于串行总线的通信系统和方法。
技术介绍
现在常用的总线主要有SPI(SerialPeripheralInterface,同步外设接口)总线和IIC(Inter-IntegratedCircuit,集成电路)总线,其中,基于SPI总线的通信受限于主从工作模式,且增加一个从设备需要增加一条CS信号线,扩展受限。基于IIC总线的通信同样受限于主从工作模式,从设备只有在接收到主设备发送的读命令后,才主动往主设备发送数据。缺少一种不区分主从、半双工、同步的串行总线。
技术实现思路
本申请的目的在于提出一种基于串行总线的通信系统和方法,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种基于串行总线的通信系统,所述系统包括发送端、接收端、串行总线,其中,所述串行总线包括BUSY线、DATA线、CLK线三根信号线,所述三根信号线都是低电平的优先级高,所述发送端和所述接收端的BUSY管脚、DATA管脚、CLK管脚分别连接到所述串行总线的BUSY线、DATA线、CLK线上,其特征在于:所述发送端,关闭总线中断机 ...
【技术保护点】
1.一种基于串行总线的通信系统,所述系统包括发送端、接收端、串行总线,其中,所述串行总线包括BUSY线、DATA线、CLK线三根信号线,所述三根信号线都是低电平的优先级高,所述发送端和所述接收端的BUSY管脚、DATA管脚、CLK管脚分别连接到所述串行总线的BUSY线、DATA线、CLK线上,其特征在于:所述发送端,关闭总线中断机制,根据读取的BUSY线、CLK线上的电平,裁定串行总线的状态是否为空闲,当所述串行总线的状态为空闲时,按照预设的时间间隔逐字节发送字节数据,所有字节数据发送完成后,释放串行总线,并开启总线中断机制,其中,发送每个字节数据的流程为:控制BUSY管脚 ...
【技术特征摘要】
1.一种基于串行总线的通信系统,所述系统包括发送端、接收端、串行总线,其中,所述串行总线包括BUSY线、DATA线、CLK线三根信号线,所述三根信号线都是低电平的优先级高,所述发送端和所述接收端的BUSY管脚、DATA管脚、CLK管脚分别连接到所述串行总线的BUSY线、DATA线、CLK线上,其特征在于:所述发送端,关闭总线中断机制,根据读取的BUSY线、CLK线上的电平,裁定串行总线的状态是否为空闲,当所述串行总线的状态为空闲时,按照预设的时间间隔逐字节发送字节数据,所有字节数据发送完成后,释放串行总线,并开启总线中断机制,其中,发送每个字节数据的流程为:控制BUSY管脚输出低电平,即将BUSY由高电平置为低电平,当确定DATA为高电平,即所有接收端都已将DATA置为高电平做出应答后,在CLK的下降沿,通过DATA逐位发送字节数据中的位数据,在发送下一个位数据时,确保已经接收到接收端返回的CLK为高电平的应答信号,在发送每个字节数据后判断还有未发送的字节数据时,控制DATA管脚输出高电平、CLK管脚输出低电平、BUSY管脚输出高电平;所述接收端,用于重复执行如下步骤:实时监测BUSY线上的电平,当检测到BUSY线上的电平由高电平变成低电平,则触发总线中断,暂停处理其它任务,确认BUSY为低电平后,将DATA置为高电平作为应答,在CLK为低电平时,逐个读取DATA上的位数据,在读取每个位数据后,将CLK置为高电平作为应答,在读取完一个字节数据后,释放所述串行总线,并开启总线中断机制,转而处理其它任务。2.根据权利要求1所述的基于串行总线的通信系统,其特征在于,所述发送端根据读取的BUSY线、CLK线上的电平,裁定串行总线的状态是否为空闲,包括:在预设时间内不断读取BUSY线、CLK线上的电平,直到BUSY线和CLK线上的电平都为高电平,即判定串行总线的状态为空闲,如果超过所述预设时间,则裁定所述串行总线的状态为占用;当上一步串行总线的状态判定为空闲后,控制BUSY管脚输出低电平,随机延时一段时间,控制BUSY管脚输出高电平,再次在所述预设时间内不断读取BUSY线、CLK线上的电平,直到BUSY线和CLK线上的电平都为高电平,才最终裁定串行总线的状态为空闲,否则裁定所述串行总线的状态为占用。3.根据权利要求1所述的基于串行总线的通信系统,其特征在于,所述发送端按照预设的时间间隔逐字节发送字节数据,包括:发送端重复执行下列步骤,直到所有字节数据都发送完成:发送一个字节数据,判断是否所有字节数据都发送完成,如果没有则延时所述时间间隔。4.根据权利要求1-3之一所述的基于串行总线的通信系统,其特征在于,发送端和接收端分别发送和接收一个位数据的具体流程为:发送端,控制DATA管脚输出用高低电平表示10的位数据,同时控制CLK管脚输出25微秒的低电平,即将CLK线上电平由高电平置为低电平;接收端,在预设时间内,不断检测CLK线上的电平是否为低电平,如果为低电平,则控制CLK管脚输出25微秒的低电平,同时读取DATA线上的位数据,25微秒后,控制CLK管脚输出高电平作为应答;发送端,控制CLK管脚输出高电平,在预设时间内不断读取CLK线上的电平并判断是否为高电平,即判断是否所有接收端都已应答,如果为高电平,则进一步判断8个位数据是否都发送完成;接收端,在预设时间内不断读取CLK线上的电平...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。