模拟专用通讯端口的方法、装置及微控制器

文档序号:406038 发布日期:2021-12-17 浏览:16次 >En<

阅读说明:本技术 模拟专用通讯端口的方法、装置及微控制器 (Method and device for simulating special communication port and microcontroller ) 是由 张磊 于 2021-08-23 设计创作,主要内容包括:本发明提供了一种模拟专用通讯端口的方法、装置及微控制器,该方法包括:设置端口的中断触发方式;若检测到端口接收到正确的中断触发电平,则检测当前字节的起始位是否正确;若正确则控制端口继续接收电平信号,至当前字节的数据位接收完毕;若检测当前字节的结束位正确,则继续接收下一字节至数据接收完毕。本发明中其他端口能够模拟专用通讯端口,降低了专用通讯端口数量不足对微处理器的使用限制,提高了微处理器的使用灵活性,可以满足模块化设计要求。(The invention provides a method, a device and a microcontroller for simulating a special communication port, wherein the method comprises the following steps: setting an interrupt triggering mode of a port; if the port is detected to receive the correct interrupt trigger level, whether the start bit of the current byte is correct is detected; if the bit is correct, the control port continues to receive the level signal until the data bit of the current byte is received; if the end bit of the current byte is detected to be correct, the next byte is continuously received until the data reception is finished. Other ports in the invention can simulate special communication ports, thereby reducing the use limit of insufficient special communication ports on the microprocessor, improving the use flexibility of the microprocessor and meeting the modular design requirement.)

模拟专用通讯端口的方法、装置及微控制器

技术领域

本发明涉及微控制器通讯技术领域,具体而言,涉及一种模拟专用通讯端口的方法、装置及微控制器。

背景技术

随着家电产品的多功能、智能化趋势,为满足不同用户的差异化需要,电子产品多采用模块化设计。当需要增加某种功能时,则插接该种功能的功能模块,因此,其上使用的MCU(Microcontroller Unit,微控制器)的通讯端口的数量需求越大,而通讯端口数量有限,导致无法满足模块化设计要求。

发明内容

本发明解决的问题是现有通讯端口数量不足,导致无法满足模块化设计要求的问题。

为解决上述问题,本发明提供一种模拟专用通讯端口的方法,所述方法包括:设置端口的中断触发方式;若检测到所述端口接收到正确的中断触发电平,则检测当前字节的起始位是否正确;若正确则控制所述端口继续接收电平信号,至所述当前字节的数据位接收完毕;若检测所述当前字节的结束位正确,则继续接收下一字节至数据接收完毕。

本发明实施例通过设置端口的中断触发方式以及在正确的中断触发后实现数据接收功能,在接收过程中执行电平检测,以保证数据接收信号正确,从而使其他端口能够模拟专用通讯端口,实现专用通讯端口的功能,降低了专用通讯端口数量不足对微处理器的使用限制,提高了微处理器的使用灵活性,可以满足模块化设计要求。

可选地,所述方法还包括:若所述端口发送数据,则依次发送各字节的起始位、数据位及结束位,至数据发送完毕。

本发明实施例可以模拟专用通讯端口的发送数据功能,提高微处理器的使用灵活性。

可选地,所述若检测到所述端口接收到正确的中断触发电平,则检测当前字节的起始位是否正确,包括:若检测到所述端口接收到正确的中断触发电平,则开启定时器及设置所述定时器的中断频率为通讯波特率的两倍;当所述定时器第一次中断时,读取所述端口接收的电平是否正确。

本发明实施例基于定时器设置可以实现起始位电平检测,判断是否接收到正确的数据。

可选地,所述若正确则控制所述端口继续接收电平信号,至所述当前字节的数据位接收完毕,包括:若所述端口接收的电平正确,则设置所述定时器的中断频率等于通讯波特率;当所述定时器中断时,依次读取所述端口接收的电平至所述当前字节的数据位接收完毕。

本发明实施例基于定时器控制接收数据位,实现端口的数据接收功能,提高微处理器的使用灵活性。

可选地,所述依次发送各字节的起始位、数据位及结束位,至数据发送完毕,包括:开启定时器及设置所述定时器的中断频率等于通讯波特率;当所述定时器中断时,依次输出当前字节的起始位、数据位及结束位,至所有字节均发送完毕。

本发明实施例基于定时器实现端口的数据发送功能,提高微处理器的使用灵活性。

可选地,所述端口为外部中断口或通用输入/输出口。

可选地,所述中断触发方式为低电平触发或高电平触发。

本发明实施例提供一种模拟专用通讯端口的装置,所述装置包括:设置模块,用于设置端口的中断触发方式;起始位检测模块,用于若检测到所述端口接收到正确的中断触发电平,则检测当前字节的起始位是否正确;数据接收模块,用于若正确则控制所述端口继续接收电平信号,至所述当前字节的数据位接收完毕;结束位检测模块,用于若检测所述当前字节的结束位正确,则继续接收下一字节至数据接收完毕。

本发明实施例提供一种微控制器,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现上述方法。

本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现上述方法。

本发明的模拟专用通讯端口的装置、微控制器及计算机可读存储介质,可以与上述模拟专用通讯端口的方法达到相同的技术效果。

附图说明

图1为本发明的一个实施例中一种模拟专用通讯端口的方法的示意性流程图;

图2为本发明的一个实施例中一种接收信号示意图;

图3为本发明的一个实施例中一种发送信号示意图;

图4为本发明的一个实施例中一种模拟专用通讯端口接收数据的示意性流程图;

图5为本发明的一个实施例中一种模拟专用通讯端口发送数据的示意性流程图;

图6为本发明的一个实施例中一种模拟专用通讯端口的装置的结构示意图。

附图标记说明:

601-设置模块;602-起始位检测模块;603-数据接收模块;604-结束位检测模块。

具体实施方式

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

本发明实施例通过一种简单可行的算法,利用定时器+外部中断口来模拟专业通讯端口,解决实际问题,满足产品的模块化设计要求。

图1是本发明的一个实施例中一种模拟专用通讯端口的方法的示意性流程图,上述方法包括:

S102,设置端口的中断触发方式。

具体地,该中断触发方式可以是低电平触发或高电平触发,该端口为外部中断口或通用输入/输出口(General-purpose input/output,GPIO)等。若为低电平触发,则当检测到端口接收到低电平时触发中断程序;若为高电平触发,则当检测到端口接收到高电平时触发中断程序。触发中断程序后,则依次检测接收到的数据的高低电平是否符合预设的通讯协议规范要求。

S104,若检测到端口接收到正确的中断触发电平,则检测当前字节的起始位是否正确。

在触发中断程序后,则首先检测当前字节的起始位是否正确。在预设的通讯协议规范要求中包括起始位及结束位的位数以及高低电平设置方式。例如,起始位为1位,低电平;结束位为1位,高电平;中间的数据位为8位。若检测到的电平为正确的起始位电平,则确定为通讯信号正确,继续执行后续流程;若检测到的电平并非正确的起始位电平,则确定为通讯信号错误,所有状态重置。

在检测高低电平是否正确的过程中,通过开启及设置定时器的中断频率,调整中断检测的时机,以在正确的时刻检测接收信号的电平。

S106,若正确则控制端口继续接收电平信号,至当前字节的数据位接收完毕。

如前述,基于预设的通讯协议规范要求已知每个字节的数据位的长度,基于定时器中断检测接收信号的电平。当前字节的数据位接收完毕后,即进行结束位检测,以确定当前字节的数据是否接收正确。

S108,若检测当前字节的结束位正确,则继续接收下一字节至数据接收完毕。

若结束位的电平错误,则确定为通讯信号错误,所有状态重置;若结束位的电平正确,则确定通讯信号正确,从而完成该字节的接收动作。以此类推,当完成一帧通讯数据接收后,将关闭定时器,再重置端口的触发方式,等待第二帧的接收,至数据接收完毕。

本实施例提供的模拟专用通讯端口的方法,通过设置端口的中断触发方式以及在正确的中断触发后实现数据接收功能,在接收过程中执行电平检测,以保证数据接收信号正确,从而使其他端口能够模拟专用通讯端口,实现专用通讯端口的功能,降低了专用通讯端口数量不足对微处理器的使用限制,提高了微处理器的使用灵活性,可以满足模块化设计要求。

进一步,上述端口也可以实现数据发送功能,若端口发送数据,则依次发送各字节的起始位、数据位及结束位,至数据发送完毕。在发送数据时,可以采用定时器中断以按照各字节的起始位、数据位及结束位的实际电平进行电平翻转即可。

作为一种可行的实施方式,可以采用定时器+外部中断口来模拟专业通讯端口。该定时器也可以采用输入捕获功能,该输入捕获功能可以对输入的信号的上升沿,下降沿或者双边沿进行捕获。该外部中断口可以采用GPIO硬件中断、事件触发。

示例性地,通讯协议规范要求的通讯波特率为4800bps,起始位1位,字节数8位,结束位1位,奇偶校验位无,设置通讯接收端口为低电平触发。

上述S204可按照以下方式执行:若检测到端口接收到正确的中断触发电平,则开启定时器及设置定时器的中断频率为通讯波特率的两倍;当定时器第一次中断时,读取端口接收的电平是否正确。

参见图2所示的接收信号示意图,一个字节A包括起始位②,字节位③、④、⑤、⑥、⑦、⑧、⑨、⑩,结束位

当①出现时,触发中断程序,此时,在中断程序中设置一个定时器中断,中断频率为9600Hz,即中断频率正好为通讯波特率的2倍。

当9600Hz定时器中断时,即检测到②起始位的位置,此时,正好处于中断周期的中心点,如果读到通讯接收端口为高电平,认为通讯信号错误,所有状态重置;如果读到通讯接收端口为低电平,认为通讯信号正确。

上述S206可按照以下方式执行:若端口接收的电平正确,则设置定时器的中断频率等于通讯波特率;当定时器中断时,依次读取端口接收的电平至当前字节的数据位接收完毕。此时,再将定时器中断频率修改为4800Hz,与通讯波特率相同。

当4800Hz定时器中断时,此时将是数据位接收状态,即:③、④、⑤、⑥、⑦、⑧、⑨、⑩位置读到的电平信号,8个数据位组成的第一个字节数据。

接收完第一个字节数据后,当4800Hz定时器再次中断时,检测到结束位的位置,如果读到通讯接收端口为低电平,认为通讯信号错误,所有状态重置;当读到通讯接收端口为高电平,认为通讯信号正确,从而完成第一个字节的接收动作。

以此类推,当完成一帧通讯数据接收后,将关闭定时器,再将通讯接收端口设置为低电平触发,等待第二帧的接收。

参见图3所示的发送信号示意图,一个字节B包括起始位②,字节位③、④、⑤、⑥、⑦、⑧、⑨、⑩,结束位

发送数据时可按照以下方式执行:开启定时器及设置定时器的中断频率等于通讯波特率;当定时器中断时,依次输出当前字节的起始位、数据位及结束位,至所有字节均发送完毕。

具体地,设置定时器中断频率为4800Hz,即中断频率等于通讯波特率。采用定时器中断进行电平翻转,在①处输出起始位低电平,在②、③、④、⑤、⑥、⑦、⑧、⑨输出数据位对应电平,在⑩处输出结束位高电平。

图4是本发明的一个实施例中一种模拟专用通讯端口接收数据的示意性流程图,包括:

S401,设置外部中断,下降沿触发。

S402,检测是否接收到下降沿。若是,则执行S403;若否,则重复执行S402。

S403,设置定时器中断频率为9600Hz。

S404,定时中断到,检测是否为高电平。若是,则执行S406;若否,则重复执行S405。

S405,起始位信号正确,设置定时器中断频率为4800Hz。

S406,起始位信号错误,状态重置。

S407,定时中断到,判断位计数值是否大于8。若是,则执行S408;若否,则重复执行S411。

S408,定时中断到,检测是否为高电平。若是,则执行S409;若否,则重复执行S410。

S409,停止位信号正确,第一个字节接收结束。

S410,停止位信号错误,状态重置。

S411,定时中断到,检测是否为高电平。若是,则执行S412;若否,则重复执行S413。

S412,位计数值加一,位记录入一个字节中。

S413,位计数值加一,位记录入一个字节中。

S414,判断接收字节数是否大于或等于帧长。若是,则执行S415;若否,则重复执行S416。

S415,结束本次接收,打包校验。

S416,接收字节计数值加一。

图5是本发明的一个实施例中一种模拟专用通讯端口发送数据的示意性流程图,包括:

S501,设置定时器中断频率为4800Hz。

S502,判断是否到定时中断。若是,则执行S503;若否,则重复执行S504。

S503,发送端口置0,发送起始位。

S504,定时中断到,判断位计数值是否大于8。若是,则执行S505;若否,则执行S506。

S505,发送端口置1,发送结束位。

S506,要求发送0,则发送端口置0;要求发送1,则发送端口置1。

S507,判断发送字节数是否大于或等于帧长。若是,则执行S508;若否,则重复执行S502。

S508,结束本次发送,发送端口置1。

本发明实施例提供的上述模拟专用通讯端口的模拟方法,无需专业通讯端口,只需要定时器、外部中断口即可模拟专用通讯端口,使用灵活性高,满足产品的模块化设计要求。

图6是本发明的一个实施例中一种模拟专用通讯端口的装置的结构示意图,所述装置包括:

设置模块601,用于设置端口的中断触发方式;

起始位检测模块602,用于若检测到所述端口接收到正确的中断触发电平,则检测当前字节的起始位是否正确;

数据接收模块603,用于若正确则控制所述端口继续接收电平信号,至所述当前字节的数据位接收完毕;

结束位检测模块604,用于若检测所述当前字节的结束位正确,则继续接收下一字节至数据接收完毕。

本实施例提供的模拟专用通讯端口的装置,通过设置端口的中断触发方式以及在正确的中断触发后实现数据接收功能,在接收过程中执行电平检测,以保证数据接收信号正确,从而使其他端口能够模拟专用通讯端口,实现专用通讯端口的功能,降低了专用通讯端口数量不足对微处理器的使用限制,提高了微处理器的使用灵活性,可以满足模块化设计要求。

可选地,作为一个实施例,还包括数据发送模块,用于:若所述端口发送数据,则依次发送各字节的起始位、数据位及结束位,至数据发送完毕。

可选地,作为一个实施例,所述起始位检测模块,具体用于:若检测到所述端口接收到正确的中断触发电平,则开启定时器及设置所述定时器的中断频率为通讯波特率的两倍;当所述定时器第一次中断时,读取所述端口接收的电平是否正确。

可选地,作为一个实施例,所述数据接收模块,具体用于:若所述端口接收的电平正确,则设置所述定时器的中断频率等于通讯波特率;当所述定时器中断时,依次读取所述端口接收的电平至所述当前字节的数据位接收完毕。

可选地,作为一个实施例,所述数据发送模块,具体用于:开启定时器及设置所述定时器的中断频率等于通讯波特率;当所述定时器中断时,依次输出当前字节的起始位、数据位及结束位,至所有字节均发送完毕。

可选地,作为一个实施例,所述端口为外部中断口或通用输入/输出口。

可选地,作为一个实施例,所述中断触发方式为低电平触发或高电平触发。

本发明实施例还提供了一种微控制器,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现上述方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现上述实施例提供的方法,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

当然,本领域技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程度来指令控制装置来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程,其中所述的存储介质可为存储器、磁盘、光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的模拟专用通讯端口的装置和微控制器而言,由于其与上述实施例公开的模拟专用通讯端口的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于管理网络接口控制器的灵活主机接口的技术

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!