一种多cpu普通3线io实现通信的方法

文档序号:6400668阅读:186来源:国知局
专利名称:一种多cpu普通3线io实现通信的方法
技术领域
本发明涉及多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之间的通信。木通信方法还可以通过一定的协议实现扩展交互接口,方便扩展、节省成本。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种多CPU普通3线IO实现通信的方法,其特征在于,包含以下步骤: 51、第一CPU占用握手信号线MCLK JfMCLK置0,向第二 CPU发起通信申请; 52、第二CPU占用握手信号线SCLK,检测到MCLK = 0,接受第一 CPU的通信申请,将SCLK置O ;53、第一CPU检测到SCLK = O,发送数据bitO到串行通讯数据信号线SDA,将MCLK置I ;54、第二CPU检测到MCLK = 1,从所述数据信号线SDA接收数据bitO,将SCLK置I ;55、第一CPU检测到SCLK = 1,发送数据bitl到所述数据信号线SDA,将MCLK置O ;56、第二CPU检测到MCLK = O,从所述数据信号线SDA接收数据bitl,将SCLK置O。
2.如权利要求1所述的一种多CPU普通3线IO实现通信的方法,其特征在于,重复步骤S3-S6m遍,传输完2m位数据,第一 CPU检测到SCLK = O,结束一轮通信,将MCLK置I。
3.如权利要求2所述的一种多CPU普通3线IO实现通信的方法,其特征在于,第二CPU将检测到MCLK = 1,将SCLK置I,准备下一轮通信。
全文摘要
本发明提供一种多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工作速度任意;通过一定的协议即可以实现扩展交互接口,方便扩展、节省成本。
文档编号G06F15/17GK103198051SQ201310090479
公开日2013年7月10日 申请日期2013年3月20日 优先权日2013年3月20日
发明者任晶珠 申请人:北京普罗斯托国际电气有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1