一种多CPU普通3线IO实现通信的方法技术

技术编号:8907098 阅读:213 留言:0更新日期:2013-07-11 04:45
本发明专利技术提供一种多CPU普通3线IO实现通信的方法,涉及多CPU通信连接领域。本方法包括步骤:第一CPU占用握手信号线MCLK,将MCLK置0,向第二CPU发起通信申请;第二CPU占用握手信号线SCLK,检测到MCLK=0,接受第一CPU的通信申请,将SCLK置0;第一CPU检测到SCLK=0,发送数据bit0到SDA,将MCLK置1;第二CPU检测到MCLK=1,从所述SDA接收数据bit0,将SCLK置1;第一CPU检测到SCLK=1,发送数据bit1到所述SDA,将MCLK置0;第二CPU检测到MCLK=0,从所SDA接收数据bit1,将SCLK置0。本发明专利技术无需进行数据延时,且不用中断,可以对等传输,有发送和接收的检查等待机制,最大可能加快了通讯速度,保证绝对同步,双方CPU工作速度任意;通过一定的协议即可以实现扩展交互接口,方便扩展、节省成本。

【技术实现步骤摘要】

本专利技术涉及多CPU通信连接领域,具体涉及一种多CPU普通3线IO实现通信的方法
技术介绍
在制造逆变电源设备过程中,单一的CPU不能满足要求,就出会现两个以上的CPU共同来完成所有的功能,多个CPU耍实现同步工作,需要有一个好的通讯方法来解决同步问题,多CPU通过10通讯交互数据,如何做到速度快,通讯可靠所占用资源少,这是现阶段急需解决的问题。在我们常用的主芯片设备中,主要使用串口、I2C、SPI之类的硬件接口同外界交互,不管使用哪种接口,都需要专用的硬件接口,而这此硬件的接口受限于芯片的成本,在低端的8位单片机芯片,通常只有一个硬件串口,这种情况下传统的方法就无法满足多路外界交互的接口。因此,针对以上不足,本专利技术提供了一种多CPU普通3线IO实现通信的方法。
技术实现思路
(一 )解决的技术问题针对现有技术的不足,本专利技术提供一种多CPU普通3线IO实现通信的方法,使用每两CPU中的3根普通IO作为通讯接口,无需进行数据延时,且不用中断,可以对等传输,有发送和接收的检查等待机制,最大可能加快了通讯速度,保证绝对同步。( 二 )技术方案为实现以上目的,本专利技术通过以下技术方案予以实现:一种多CPU普通3线IO实现通信的方法,包含以下步骤:S1、第一 CPU占用握手信号线MCLKJf MCLK置0,向第二 CPU发起通信申请;S2、第二 CPU占用握手信号线SCLK,检测到MCLK = 0,接受第一 CPU的通信申请,将SCLK置O;S3、第一 CPU检测到SCLK = O,发送数据bitO到串行通讯数据信号线SDA,将MCLK置I;S4、第二 CPU检测到MCLK = 1,从所述数据信号线SDA接收数据bitO,将SCLK置I;S5、第一 CPU检测到SCLK = 1,发送数据bitl到所述数据信号线SDA JfMCLK置O;S6、第二 CPU检测到MCLK = 0,从所述数据信号线SDA接收数据bitl,将SCLK置O0其中重复步骤S3-S6m遍,传输完2m位数据,第一 CPU检测到SCLK = O,结束一轮通信,将MCLK置I。待第二 CPU将检测到MCLK = I,将SCLK置I,准备下一轮通信。(三)有益效果本专利技术通过提供一种多CPU普通3线10实现通信的方法,使用每两CPU中的3根普通10作为通讯接口,无需进行数据延时,且不用中断,可以对等传输,有发送和接收的检查等待机制,最大可能加快了通讯速度,保证绝对同步,双方CPU工作速度任意;通过一定的协议即可以实现扩展交互接口,方便扩展、节省成本。附图说明图1为多CPU普通3线IO实现通信的方法中发送数据的流程图;图2为多CPU普通3线IO实现通信的方法中接收数据的流程图;图3为多CPU普通3线IO实现通信的时序图。具体实施例方式下面对于本专利技术所提出的一种多CPU普通3线IO实现通信的方法,结合附图和实施例详细说明。普通的IO 口状态,通常只有两种状态(高电平即1,低电平即O),在IO 口作为输入状态时:将MCLK/SCLK置O即就其输出低电平,置I即输出高电平;在IO 口作为输入状态时:如检测到MCLK为低电平,即MCLK状态为O;如检测MCLK为高电平,即MCLK状态为1如图1、图2所示,一种应用于制造逆变电源设备过程中的双CPU普通3线IO实现通信的方法,以两CPU之间传输8位数据位实施例,具体过程如下步骤:第一 CPU首先检测握手信号线MCLK是否为高电平,不为高电平时继续等待,当检测MCLK为高电平时,占用握手信号线MCLK,将MCLK拉低,向第二 CPU发起通信申请,等待第二 CPU将握手信号线SCLK置为低电平。第二 CPU首先检测MCLK是否为低电平,不为低电平时继续等待,当检测为低电平时占用握手信号线SCLK,准备接受第一CPU的通信申请,将SCLK置为低电平;等待第一CPU将握手信号线MCLK置为高电平。第一 CPU检测到SCLK为低电平,发送数据bitO到串行通讯数据信号线SDA,将MCLK置为高电平;等待第二 CPU将握手信号线SCLK置为高电平。第二 CPU检测到MCLK为高电平,从所述数据信号线SDA接收数据bitO,将SCLK置为高电平;等待第一 CPU将握手信号线MCLK置为低电平。第一 CPU检测到SCLK为高电平,发送数据bitl到所述数据信号线SDA,将MCLK置为低电平;等待第二 CPU将握手信号线SCLK置为低电平。第二 CPU检测到MCLK为低电平,从所述数据信号线SDA接伙数据bitl,将SCLK置为低电平;等待第一 CPU将握手信号线MCLK置为高电平。第一 CPU检测到SCLK为低电平,发送数据bit2到串行通讯数据信号线SDA,将MCLK置为高电平;等待第二 CPU将握手信号线SCLK置为高电平。第二 CPU检测到MCLK为高电平,从所述数据信号线SDA接收数据bit2,将SCLK置为高电平;等待第一 CPU将握手信号线MCLK置为低电平。第一 CPU检测到SCLK为高电平,发送数据bit3到所述数据信号线SDA,将MCLK置为低电平;等待第二 CPU将握手信号线SCLK置为低电平。第二 CPU检测到MCLK为低电平,从所述数据信号线SDA接收数据bit3,将SCLK置为低电平;等待第一 CPU将握手信号线MCLK置为高电平。第一 CPU检测到SCLK为低电平,发送数据bit4到串行通讯数据信号线SDA,将MCLK置为高电平;等待第二 CPU将握手信号线SCLK置为高电平。第二 CPU检测到MCLK为高电平,从所述数据信号线SDA接收数据bit4,将SCLK置为高电平;等待第一 CPU将握手信号线MCLK置为低电平。第一 CPU检测到SCLK为高电平,发送数据bit5到所述数据信号线SDA,将MCLK置为低电平;等待第二 CPU将握手信号线SCLK置为低电平。第二 CPU检测到MCLK为低电平,从所述数据信号线SDA接收数据bit5,将SCLK置为低电平;等待第一 CPU将握手信号线MCLK置为高电平。第一 CPU检测到SCLK为低电平,发送数据bite到串行通讯数据信号线SDA,将MCLK置为高电平;等待第二 CPU将握手信号线SCLK置为高电平。第二 CPU检测到MCLK为高电平,从所述数据信号线SDA接收数据bit6,将SCLK置为高电平;等待第一 CPU将握手信号线MCLK置为低电平。第一 CPU检测到SCLK为高电平,发送数据bit7到所述数据信号线SDA,将MCLK置为低电平;等待第二 CPU将握手信号线SCLK置为低电平。第二 CPU检测到MCLK为低电平,从所述数据信号线SDA接收数据bit7,将SCLK置为低电平;等待第一 CPU将握手信号线MCLK置为高电平。传输完8位数据,第一 CPU检测到SCLK为低电平,结束一轮通信,将MCLK置为高电平。第二 CPU将检测到MCLK为高电平,将SCLK置为高电平,准备下一轮通信。以上应用于制造逆变电源设备过程中的双CPU普通3线10实现通信的方法,也可以运用于多CPU之间的通信。木通信方法还可以通过一定的协议实现扩展交互接口,方便扩展、节省成本。以上实施方式仅用于说明本专利技术,而并非对本专利技术的限制,有关
的普通技术人员,在本文档来自技高网
...

【技术保护点】
一种多CPU普通3线IO实现通信的方法,其特征在于,包含以下步骤:S1、第一CPU占用握手信号线MCLK,将MCLK置0,向第二CPU发起通信申请;S2、第二CPU占用握手信号线SCLK,检测到MCLK=0,接受第一CPU的通信申请,将SCLK置0;S3、第一CPU检测到SCLK=0,发送数据bit0到串行通讯数据信号线SDA,将MCLK置1;S4、第二CPU检测到MCLK=1,从所述数据信号线SDA接收数据bit0,将SCLK置1;S5、第一CPU检测到SCLK=1,发送数据bit1到所述数据信号线SDA,将MCLK置0;S6、第二CPU检测到MCLK=0,从所述数据信号线SDA接收数据bit1,将SCLK置0。

【技术特征摘要】

【专利技术属性】
技术研发人员:任晶珠
申请(专利权)人:北京普罗斯托国际电气有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1