一种复用串口的方法与流程

文档序号:13004529阅读:1032来源:国知局
一种复用串口的方法与流程

本发明涉及电子通信领域,尤其涉及复用串口的方法。



背景技术:

电子设备都配有mcu。

因为串口通信技术成熟稳定,应用广泛,占用mcu的io资源少等优势,目前主流mcu之间通信都推荐使用串口通信。

然而,当主控mcu与外部多个串口模块连接时,传统上考虑避免串口之间通信干扰,要求每一个外部串口都独占串口资源,这样就要求主控mcu有足够多串口资源连接外部串口。事实上,mcu的串口资源是非常有限的,大部分中低端mcu只有1个或者2个串口资源可供外部串口使用。为了支持更多的外部串口通信,将不得不增加mcu来实现,从而增加成本。

事实上,mcu与外部串口的通信时间不到1%,也就是说99%的时间是不工作的,其独占的串口资源处于闲置中。



技术实现要素:

鉴于此,本发明实施例提供一种复用串口的方法。

以不同波特率串口通信的复用串口的方法,包括:

主mcu与至少一个外部mcu的串口连接呈星型网络;

主mcu的发送端口tx与外部mcu的接收端口rx连接,且主mcu的接收端口rx与外部mcu的接收端口tx连接;

主mcu与外部mcu的串口通信数据包包头数据相同,包尾数据也相同;

主mcu与每个外部mcu以不同的波特率进行串口通信。

以不同数据包包头数据串口通信的复用串口的方法,包括:

主mcu与至少一个外部mcu的串口连接呈星型网络;

主mcu的发送端口tx与外部mcu的接收端口rx连接,且主mcu的接收端口rx与外部mcu的接收端口tx连接;

主mcu与外部mcu以相同的波特率进行串口通信;

主mcu与每个外部mcu串口通信时包头数据不同,所述外部mcu通过包头数据确定数据包目的接收方,如果所述外部mcu正是目的接收方则处理数据包,如果所述外部mcu不是目的接收方则丢弃数据包。

以程序控制串口线路的复用串口的方法,包括:

主mcu与至少一个外部mcu的串口连接呈星型网络;

主mcu的发送端口tx与外部mcu的接收端口rx连接,且主mcu的接收端口rx与外部mcu的接收端口tx连接;

所述串口连接线路通过程序开关决定线路闭合或张开;

串口控制模块控制所述程序开关闭合或张开;

如果串口控制模块向一个外部mcu对应的程序开关输出闭合信号,则主mcu与所述外部mcu的串口线路连通,并开始正常串口通信;如果串口控制模块向所述外部mcu对应的程序开关输出张开信号,则主mcu与所述外部mcu的串口线路断开,并中断串口通信。

以程序控制外部mcu电源供应的复用串口的方法,包括:

主mcu与至少一个外部mcu的串口连接呈星型网络;

主mcu的发送端口tx与外部mcu的接收端口rx连接,且主mcu的接收端口rx与外部mcu的接收端口tx连接;

所述外部mcu通过程序开关决定电源供应与否;

串口控制模块控制所述程序开关闭合或张开;

如果串口控制模块向一个外部mcu对应的程序开关输出闭合信号,则所述外部mcu得到电源供应而启动工作,并开始正常串口通信;如果串口控制模块向所述外部mcu对应的程序开关输出张开信号,则所述外部mcu被终止电源供应而结束工作,并中断串口通信。

进一步地,所述复用串口的方法可以两个、或者三个、或者四个组成组合应用。

进一步地,所述串口通信线路串联阻值合适的电阻。

进一步地,所述串口通信线路连接阻值合适的上拉电阻。

本实施例通过复用串口,大幅提升串口资源利用率,减少串口资源浪费而降低成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本方法复用串口星型网络电路图。

图2为本发明的实施例一的流程图。

图3为本发明的实施例二的流程图。

图4为本发明的实施例三的流程图。

图5为本发明的实施例四的流程图。

图6为本发明的实施例三的电路图。

图7为本发明的实施例四的电路图。

图8为本发明的实施例串口线路串联电阻的电路图。

图9为本发明的实施例串口线路接上拉电阻的电路图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1,本发明的复用串口方法,是基于主mcu与多个外部mcu组成星型的通信网络结构,即外部mcu只会与主mcu通信,而外部mcu之间不能通信。

如图1所示,主mcu的接收端口rx与所有外部mcu的发送端口tx连接,主mcu的发送端口tx与所有外部mcu的接收端口rx连接。

实施例一:

在主mcu上设置每个外部mcu的串口通信波特率不同,但通信数据包包头和包尾相同。例如,外部mcu分别是mcu-1,mcu-2,mcu-3,……,mcu-n,主mcu与mcu-1之间的串口通信波特率为9600比特/秒,主mcu与mcu-2之间的串口通信波特率为19200比特/秒,主mcu与mcu-1之间的串口通信波特率为28800比特/秒,……

主mcu与外部mcu通信协议明确数据包由包头开始和包尾结束,比如说包头和包尾都是0xef02,则接收数据包时侦测到第一个0xef02表示数据包开始,到下一个0xef02到来时数据包结束。

由于主mcu与任何一个外部mcu串口通信波特率都不同,则只有目的mcu可以解码得到包头和包尾0xef02,即只有目的mcu可以正常接收并解码主mcu串口通信的数据包。

由于所有外部mcu的发送端口tx互相连接,并与主mcu接收端口rx连接,当外部mcu发送数据包,只有主mcu能接收到数据包。

实施例二:

在主mcu上设置每个外部mcu使用相同串口通信波特率,但通信数据包包头和包尾不同。例如,外部mcu分别是mcu-1,mcu-2,mcu-3,……,mcu-n,主mcu与外部mcu之间串口通信使用相同波特率9600比特/秒,同时协商主mcu与mcu-1之间通信数据包的包头和包尾为0xef01,主mcu与mcu-2之间通信数据包的包头和包尾为0xef02,主mcu与mcu-3之间通信数据包的包头和包尾为0xef03,……

由于主mcu与所有外部mcu串口通信波特率相同,则当主mcu发送的串口数据,所有外部mcu都能在其rx端口接收并解码。当主mcu发送0xef01包头的数据包时,只有mcu-1处理所述数据包,其他外部mcu都判定数据包包头不属于自己的而丢弃所述数据包。所以,此时只有mcu-1与主mcu进行正常的串口通信。

由于所有外部mcu的发送端口tx互相连接,并与主mcu接收端口rx连接,当外部mcu发送数据包,只有主mcu能接收到数据包。

实施例三:

如图6,主mcu与外部mcu之间的串口通信线路由程序开关控制闭合,其中程序开关受控于串口控制模块。例如,串口控制模块s1端口输出信号高电平时,mcu-1对应的程序开关闭合,则mcu-1与主mcu的串口通信线路连接;而s1端口输出信号低电平时,mcu-1对应的程序开关张开,则mcu-1与主mcu的串口通信线路断开。于是,当s1、s2、s3、s4的电平信号分别是高、低、低、低的时候,只有mcu-1与主mcu的串口通信线路通路,并正常进行串口通信。

通信步骤如下:

步骤401,串口控制模块使能所述外部mcu通信通路对应的开关,使所述通信通路连接;

步骤402,串口控制模块关闭所述外部mcu通信通路对应的开关,使所述通信通路断开。

实施例四:

如图7,外部mcu工作电源由程序开关控制闭合,其中程序开关受控于串口控制模块。例如,串口控制模块s1端口输出信号高电平时,mcu-1对应的程序开关闭合,则mcu-1得到电源供应并启动工作,所述mcu-1与主mcu的串口通信恢复正常;s1端口输出信号低电平时,mcu-1对应的程序开关张开,则mcu-1电源被切断而不再工作,所述mcu-1与主mcu的串口通信故障。于是,当s1、s2、s3、s4的电平信号分别是高、低、低、低的时候,只有mcu-1工作正常,并与主mcu正常进行串口通信。

通信步骤如下:

步骤501,串口控制模块使能所述外部mcu模块电源,使所述所述外部mcu正常工作;

步骤502,串口控制模块关闭所述外部mcu模块电源,使所述外部mcu模块不工作。

显然,本发明方法的实施例之间是可以灵活组合应用的,比如实施例一与实施例二组合起来应用,实施例三和实施例四组合起来应用,等等,本技术领域的技术人员可轻易想到各种组成带来的优势并加以应用,但这都是本发明保护范围之内。

在实际应用中,组成串口星型网络的各mcu不属于同一个厂家的时候,其串口技术可能有所不同,鉴于此,本实施例建议:(一)在每一个串口通信线路串联一个阻值合适的电阻,例如1k欧姆,以防止连接的mcu不工作的把串口rx和tx端口接地;(二)在串口通信线路接阻值合适的上拉电阻,例如100k欧姆,以以防止连接的mcu不工作的把串口rx和tx端口接地。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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