一种单片机之间的通信方法

文档序号:1904474 发布日期:2021-11-30 浏览:15次 >En<

阅读说明:本技术 一种单片机之间的通信方法 (Communication method between single-chip microcomputers ) 是由 冉亚林 廖石波 谢春华 陈立群 邓晓君 于 2021-08-24 设计创作,主要内容包括:本发明提供了一种单片机之间的通信方法,包括步骤:接收第一单片机根据第一通信线传输的若干第一电平以及第二通信线传输的若干第二电平;第一电平和第二电平均为高电平或低电平,高电平采用二进制数值1表示,低电平采用二进制数值0表示;将若干第一电平与若干第二电平对应进行组合,形成若干四进制数值;根据第一电平或所述第二电平传输的先后顺序,对组成的若干个将四进制数进行组合,形成数据信息,完成通信。以有效提高数据的传输,且解决现有单片机之间均需要采用UART串口通信和IIC总线才可通信的局限性,增加单片机之间通信的方式,便于用户使用。(The invention provides a communication method between single-chip microcomputers, which comprises the following steps: receiving a plurality of first levels transmitted by the first singlechip according to the first communication line and a plurality of second levels transmitted by the second communication line; the first level and the second level are both high level or low level, the high level is represented by a binary value 1, and the low level is represented by a binary value 0; correspondingly combining the plurality of first levels and the plurality of second levels to form a plurality of quadruple values; and combining the four-input numbers of the formed plurality of the first level or the second level according to the transmission sequence of the first level or the second level to form data information and finish communication. With the transmission of effective improvement data, and solve all need adopt the limitation that UART serial port communication and IIC bus just can communicate between the current singlechip, increase the mode of communication between the singlechip, the user of being convenient for uses.)

一种单片机之间的通信方法

技术领域

本发明涉及通信的技术领域,尤其是涉及一种单片机之间的通信方法。

背景技术

众所周知,现有单片机与单片机之间的一般采用双线通信,如通用异步收发传输器(简称UART)和集成电路总线(简称IIC)。其中,UART串口通信是直接将发送和接收两根线分开,一条为发送线,一条接收线,相当于两条高速,相互不影响的在各自路上行进,但采用UART串口通信,两单片机之间必须双方提前约定好波特率才能实现正常的通信,即两个单片机之间的通信需要约定好时钟脉冲,以用作数据分割。而IIC总线通信,是将一条线当做数据时钟线,另一条作为数据线,数据线用于接收和发送数据。

上述两种通信均是通过二进制实现,其中,码元为0和1,0和1的区分通过时钟脉冲的进行区分。进而,在传递一个字节时,UART串口通信和IIC总线通信均需要8次位移。因发送一个比特0或1,需要两个时间脉冲,即UART串口通信和IIC总线通信的8次位移,需要对应的16次的电压脉冲。此通信方式,效率低,且需要两通信之间的单片机均需要有UART串口或IIC总线才可实现两者之间的通信,进而让单片机之间的通信具有局限性。

因此,现有技术有待改进和发展。

发明内容

本发明的目的在于提供一种单片机之间的通信方法,用于解决现有单片机之间通信均需要有UART串口或IIC总线才可通信的局限性的问题,以及用于解决现有单片机之间通信效率低下的问题。

本发明的技术方案如下:

一方面,本发明提供了一种单片机之间的通信方法,包括:

接收第一单片机根据第一通信线传输的若干第一电平以及第二通信线传输的若干第二电平;所述第一电平和所述第二电平均为高电平或低电平,所述高电平采用二进制数值1表示,所述低电平采用二进制数值0表示;

将若干所述第一电平与若干所述第二电平对应进行组合,形成若干四进制数值;

根据第一电平或所述第二电平传输的先后顺序,对组成的若干个将四进制数进行组合,形成数据信息,完成通信。

进一步的,在所述接收第一单片机从第一通信线传输的若干第一电平以及第二通信线传输的若干第二电平中,

若第一通信线传输的第一电平与前一次传输的第一电平一致以及第二通信线传输第二电平与前一次传输的第二电平一致,则检测第一通信线上的电压是否为第一预设电压或检测第二通信线上的电压是否为第二预设电压;

若第一通信线上的电压为第一预设电压或第二通信线上的电压否为第二预设电压,则实现前后两次第一电平和第二电平的区分。

进一步的,在所述接收第一单片机从第一通信线传输的若干第一电平以及第二通信线传输的若干第二电平之前,还包括步骤:

第一单片机将待传递的四进制形式的通信数据拆分为第一电平和第二电平。

进一步的,在所述第一单片机将待传递的四进制形式的通信数据拆分为第一电平和第二电平之前,还包括:

采集第一通信线的第一电压以及第二通信线上的第二电压;

判断第一电压是否为第三预设电压,判断第二电压是否为第四预设电压;

若第一电压为非第三预设电压或第二电压为非第四预设电压,则不与第一单片机U1通信,或者给第一单片机发送数据。

进一步的,在完成通信后,采集第一通信线的电压以及第二通信线上的电压。

进一步的,所述四进制数值包括0、1、2和3;若第一通信线和第二通信线发送的第一电平与所述第二电平均为0,则组合形成四进制数值中的0;若第一通信线和第二通信线发送的第一电平与所述第二电平分别为0和1,则组合形成四进制数值中的1;若第一通信线和第二通信线发送的第一电平与所述第二电平分别为1和0,则组合形成四进制数值中的2;所述第一电平与所述第二电平分别为1和1,则组合形成四进制数值中的3。

另一方面,本发明还提供了一种通讯装置,用于执行上述所述的单片机之间的通讯方法。

在一方面,本发明还提供了一种单片机之间通讯的系统,包括第一通信线、第二通信线、执行上述所述通信方法的第一单片机和第二单片机;

所述第一单片机的一IO管脚与第二单片机的一IO管脚通过第一通信线连接,所述第一单片机的另一IO管脚与第二单片机的另一IO管脚通过第二通信线连接;所述第一单片机还分别连接第一通信线、第二通信线用于分别检测第一通信线、第二通信线的电压,所述第二单片机还分别连接第一通信线、第二通信线用于分别检测第一通信线、第二通信线的电压。

进一步的,所述通讯系统还包括第一电阻、第二电阻、第三电阻、第四电阻和电源端,所述电源端依次经第一电阻、第二电阻后接地,所述电源端还依次经第三电阻、第四电阻后接地,所述第一通信线分别与第一电阻的输出端和第二电阻的输入端连接,所述第二通信线分别与第三电阻的输出端和第四电阻的输入端连接。

进一步的,所述第一单片机通过两个AD管脚分别与第一通信线、第二通信线电连接,所述第二单片机通过两个AD管脚分别与第一通信线、第二通信线电连接。

本发明的有益效果在于:相较于现有技术,本发明通过将四进制数值拆分为两个二进制数值,并利用两个通信线分别传输,即传递一个字节,仅需要4个电压脉冲,有效提高数据的传输,且传输效率可提高2至4倍。且可解决现有单片机之间均需要采用UART串口通信和IIC总线才可通信的局限性,降低单片机之间通信的条件,便于用户使用。

附图说明

图1为本发明单片机之间通讯的系统的示意图。

图2为本发明单片机之间的通讯方法的流程图。

具体实施方式

下面结合附图和实施方式对本发明作进一步说明。

请参照附图1,本发明实施例中的一种单片机之间通讯的系统。

该单片机之间通讯的系统,包括第一通信线1、第二通信线2、第一单片机U1和第二单片机U2。其中,第一单片机U1的一IO管脚IO11与第二单片机U2的一IO管脚IO21通过第一通信线1连接,第一单片机U1的另一IO管脚IO12与第二单片机U2的另一IO管脚IO22通过第二通信线2连接。第一单片机U1还分别连接第一通信线1、第二通信线2用于分别检测第一通信线1、第二通信线2的电压,第二单片机U2还分别连接第一通信线1、第二通信线2用于分别检测第一通信线1、第二通信线2的电压。

因单片机上的数据IO口仅能识别逻辑高电平1和逻辑低电平0,进而利用IO口可实现单片机之间的数据传输,即实现两单片机之间的通讯。

基于上述单片机之间通讯的系统,可得到本发明实施例的单片机之间的通信方法。

请参照附图2,现以第一单片机U1给第二单片机U2发送数据,其中,以第二单片机U2作为执行的操作对象,描述单片机之间的通讯方法,具体包括如下步骤:

S10,接收第一单片机U1根据第一通信线1传输的若干第一电平以及第二通信线2传输的若干第二电平。

即第一单片机U1通过第一通信线1给第二单片机U2发送传输的若干第一电平,以及通过第二通信线2给第二单片机U2发送传输的若干第二电平。其中,第一电平和所述第二电平均为高电平或低电平,即第二单片机U2通过第一通信线1和第二通信线2可得到从第一单片机U1上发送的两个脉冲信号,进而可获得从第一单片机U1上连续发送的高电平1或低电平0,且该两组脉冲信号周期相同,且周期数一致,但电平的高低可能不一致。

S20,将若干第一电平与若干第二电平对应进行组合,形成若干四进制数值。

第二单片机U2从第一通信线1和第二通信线2分别获取的高电平1或低电平0进行组合,其中组合的第一电平与第二电平所在的周期一致而对应组合。其中,若第一通信线1和第二通信线2发送的第一电平与第二电平均为0,则对应组合形成四进制数值中的0;若第一通信线1和第二通信线2发送的第一电平与所述第二电平分别为0和1,则对应组合形成四进制数值中的1;若第一通信线1和第二通信线2发送的第一电平与所述第二电平分别为1和0,则对应组合形成四进制数值中的2;若第一通信线1和第二通信线2发送的第一电平与所述第二电平均为1,则组合形成四进制数值中的3,即对应现有四进制数值0、1、2和3。

S30,根据第一电平或第二电平传输的先后顺序,对组成的若干个将四进制数进行组合,形成数据信息,完成通信。

为了方便理解上述技术方案,现举例说明。例如,第一单片机U1通过第一通信线1与第二通信线2给第二单片机U2传递一个十进制238,则四进制为3232,则第一单片机U1预先将四进制3拆分为第一电平和第二电平,即是二进制的两个1;将四进制2拆分为第一电平和第二电平,即是二进制的0和1,将拆分的二进制数值经第一通信线1和第二通信线2传递,如图下表所示:

第一通信线传递的逻辑电平 1 1 1 1
第二通信线传递的逻辑电平 1 0 1 0
四进制数值 3 2 3 2

并根据四进制3232的顺序发送给第二单片机U2。第二单片机U2再依次执行步骤S10、S20、S30,以将第一通信线1与第二通信线2发送的第一电平、第二电平进行组合形成四进制3232,以实现数据的传输,完成通讯。

即在第二单片机U2执行步骤S10之前,该通讯方法还包括步骤:第一单片机U1将待传递给第二单片机U2的四进制形式的通信数据,进行拆分为第一电平和第二电平,并分别通过第一通信线1和第二通信线2传输,以实现单片机之间采用四进制形式的通信。

在一实施例中,为了防止第一单片机U1给第二单片机U2先后依次传输两次一样四进制数一致时,即利用第一通信线1先后发送的两个第一电平以及第二通信线2先后发送的两个第二电平一致,即先后发送的电平一致,而不能被第二单片机U2区分,以此,为了告知第二单片机U2发送了两个先后一样的四进制数值,便于第二单片机U2区分,本发明在步骤S20中,当若第一通信线1传输的第一电平与前一次传输的第一电平一致以及第二通信线2传输第二电平与前一次传输的第二电平一致时,第二单片机U2则检测到第一通信线1上的电压为第一预设电压,检测到第二通信线2上的电压为第二预设电压。若第一通信线上的电压为第一预设电压或第二通信线上的电压为第二预设电压,则实现前后两次第一电平和第二电平的分割,即实现前后两次第一电平和第二电平的区分。

因第一单片机U1传递的高电平的电压为VCC、低电平的电压为0V,为了产生一个分割信号,可通过改变第一通信线1或第二通信线2传递的电压,利用第二单片机U2实时检测第一通信线1和第二通信线2上的电压,即当第二单片机U2检测到第一通信线1上的电压为第一预设电压,检测到第二通信线2上的电压为第二预设电压,即可判定第一单片机U1先后发送了两个一致的四进制数值。例如,当第一单片机U1需要发送一个十进制255,即四进制为3333,进而需要在每相邻的两个四进制数值之间均进行一次分割,如下表所示:

以此,本发明提供的一种单片机之间的通讯方法,通过将四进制数值拆分为两个二进制数值,并利用两个通信线传输,即传递一个字节,在不需要数据分割的状态下,如3232,仅需要四个脉冲,无需时间脉冲辅助。在每传输一次脉冲,均需要一次数据分割的状态下,如3333,也仅需要4个脉冲,但期间需要利用电源端+VCC配合以实现数据分割,即可相当于需要8个电压脉冲。但相对于现有单片机之间的通信采用UART串口通信和IIC总线通信均需要16次的电压脉冲,即可有效提高数据的传输,且传输效率提高2至4倍。且利用本发明的提供的一种单片机之间的通讯方法,可解决现有单片机之间均需要采用UART串口通信和IIC总线才可通信的局限性,以增加单片机之间通信的方式,便于用户使用。

为了在第一通信线1或第二通信线2上产生不同于VCC和0V的电压,本发明单片机之间通讯的系统还包括:第一电阻R1、第二电阻R2、第三电阻R3、第四电阻R4和电源端+VCC。电源端+VCC依次经第一电阻R1、第二电阻R2后接地,电源端+VCC还依次经第三电阻R3、第四电阻R4后接地,第一通信线1分别与第一电阻R1的输出端和第二电阻R2的输入端连接,第二通信线2分别与第三电阻R3的输出端和第四电阻R4的输入端连接。

在需要产生分割信号时,电源端+VCC通电,即给第一通信线1或第二通信线2通电,利用第二电阻R2和第四电阻R4的分压,可让输入第一通信线1或第二通信线2自定义所需电压,并结合第二单片机U2实时检测第一通信线1或第二通信线2上的电压,即可实现告知第二单片机U2先后传输的四进制数值一致。

在此需要说明的是,可设定第一预设电压的电压不同于VCC和0V,第二预设电压保持第一单片机U1输出的电压一致(高电平VCC或低电平0V)。或者第二预设电压的电压不同于VCC和0V,第一预设电压保持第一单片机U1输出的电压一致(高电平VCC或低电平0V)等,在此不作限定。

且为了本发明单片机之间的通信系统的简要,第一单片机U1直接通过两个AD管脚分别与第一通信线1、第二通信线2电连接,第二单片机U2直接通过两个AD管脚分别与第一通信线1、第二通信线2电连接,以实现对第一通信线1、第二通信线2上的电压进行检测。

且在单片机之间的通信方法的一实施例中,为了通信方向确认,即确认是否第一单片机U1给第二单片机U2传输数据,还是第二单片机U2给第一单片机U1传输数据。在执行步骤S10之前,还包括步骤:

S01、采集第一通信线1的第一电压以及第二通信线2上的第二电压;

S02、判断第一电压是否为第三预设电压,判断第二电压是否为第四预设电压;

S03、若第一电压为非第三预设电压或第二电压为非第四预设电压,则不与第一单片机U1通信,并继续检测电压;或者给第一单片机发送数据。

当第一单片机U1与第二单片机U2之间不通信时,即第一单片机U1与第二单片机U2上的IO管脚均没有输出的逻辑电平,经人为开关或软件程序控制等,可利用电源端+VCC给第一通信线1和第二通信线2一个不同于逻辑电平的第一预设电压或第二预设电压,即第三预设电压和第四预设电压均不同于逻辑电平。

以此,第一单片机U1与第二单片机U2根据实时检测的第一通信线1和第二通信线2上的电压判断此时两者之间不通信。如当第一通信线1和第二通信线2上的电压,第一预设电压和第二预设电压分别为0V和不同于逻辑电平的电压,即第一单片机U1则给第二单片机U2发送数据;当第一预设电压或第二预设电压分别为不同于逻辑电平的电压和0V时,第二单片机U2则给第一单片机发送数据等,在此,第一预设电压和第二预设电压均可根据需要二定义,在此不作限定。

另外,在一实施例中,本发明实施例中单片机之间的通讯方法,还包括步骤:

完成通讯后,检测第一通信线1的电压为第三预设电压以及检测到第二通信线2上的电压为第四预设电压,则通过第一通信线1、第二通信线2给第一单片机U1传输数据。

即第一单片机U1给第二单片机U2传输完数据后,完成通讯后,第一单片机U1与第二单片机U2之间没有通讯,则根据上述方式,经人为开关或软件程序控制等,电源端+VCC可给第一通信线1和第二通信线2提供一个电压,即第三预设电压和第四预设电压,即第三预设电压和第四预设电压分别为0V和不同于逻辑电平的电压,即第一单片机U1则给第二单片机U2发送数据;当第三预设电压或第六预设电压分别为不同于逻辑电平的电压和0V时,第二单片机U2则给第一单片机U2发送数据等,在此不作限定。

另一方面,本发明实施例中还提供了一种通讯装置,用于执行上述单片机之间的通讯方法,该通讯装置即是第二单片机U2。另外,需要说明的是,该通讯装置还可以是第一单片机U1,上述的“第一”与“第二”仅是用于区分,以便说明清楚本实施例的技术方案。

以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于多CPU系统中互联通道的调试优化方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!