基于单片机的串口扩展方法、串口扩展设备和清洁机器人与流程



1.本发明属于电子技术领域,具体地讲,涉及一种基于单片机串口扩展方法、串口扩展设备和清洁机器人。


背景技术:



2.随着社会的进步,人工智能技术的快速发展,大数据的快速整合与应用,家用扫地机器人的应用越来越普及。家用扫地机器人集成的功能越来越多,使用的传感器、通信模组也越来越多。由于扫地机器人使用的很多功能部件、传感器、通信模组都是采用串口进行通信,造成扫地机器人的主处理器对外的串口数量不够使用。同时主处理器对外的接口中,却往往会剩余有i2c接口未使用,故可以把此i2c接口利用起来,通过协议转换成串口,即可解决串口资源不足的问题。并且由于i2c接口本身的特点,其一根总线上可以挂载多个设备,这对于扩展更多的设备是非常有利的。目前市面上有i2c转串口的专用芯片销售,但这些专用芯片的价格较高,会显著增加家用扫地机器人的制造成本。


技术实现要素:



3.本发明解决的技术问题是:如何在实现i2c接口与串口通信协议转换的前提下,降低设备成本。
4.本技术公开了一种基于单片机的串口扩展方法,所述单片机具有i2c接口、串口收发器和存储模块,所述串口扩展方法包括:
5.在所述i2c接口接收到主处理器发送的数据时,实时地将接收到的数据存储至所述存储模块中,将所述存储模块中的数据从所述串口收发器发送至外部串口设备;
6.在所述串口收发器接收到外部串口设备发送的数据时,将接收到的数据存储至所述存储模块中,生成中断信号并将所述中断信号发送至主处理器,所述中断信号用于提醒所述主处理器通过所述i2c接口读取所述存储模块中的数据。
7.优选地,所述实时地将接收到的数据存储至所述存储模块中,将所述存储模块中的数据从所述串口收发器发送至外部串口设备的方法包括:
8.在所述存储模块中设置地址连续的存储空间,所述存储空间具有起始地址和终止地址;
9.将接收到的数据按照从所述起始地址至所述终止地址的顺序写入到所述存储空间的各个存储单元;
10.按照所述起始地址至所述终止地址的顺序从各个存储单元中读取数据并通过所述串口收发器发送至外部串口设备。
11.优选地,当接收到的数据的容量大于所述存储空间的容量时,所述串口扩展方法还包括:
12.当在所述终止地址对应的存储单元写入数据之后,继续按照从所述起始地址至所述终止地址的顺序在各个存储单元中写入数据。
13.优选地,所述串口扩展方法还包括:
14.当在所述终止地址对应的存储单元的数据被读取和被发送之后,继续按照从所述起始地址至所述终止地址的顺序从各个存储单元中读取数据并通过所述串口收发器发送至外部串口设备。
15.优选地,在所述起始地址对应的存储单元中写入数据的同时,生成中断信号并将所述中断信号发送至主处理器。
16.优选地,所述串口扩展方法还包括:将生成的中断信号保持直至从存储模块中读取的数据量等于向存储模块中写入的数据量。
17.优选地,所述单片机的型号为stc8g1k08。
18.优选地,所述存储空间的容量为128字节。
19.本技术还公开了一种基于单片机的串口扩展设备,所述串口扩展设备包括计算机可读存储介质、处理器和存储在所述计算机可读存储介质中的基于单片机的串口扩展程序,所述基于单片机的串口扩展程序被处理器执行时实现任一种上述的基于单片机的串口扩展方法。
20.本技术还公开了一种清洁机器人,所述清洁机器人包括上述的基于单片机的串口扩展设备。
21.本发明公开的一种基于单片机的串口扩展方法、串口扩展设备和清洁机器人,具有如下技术效果:
22.利用软件程序方法,使得单片机自带的i2c接口和串口收发器进行通信,同时通过存储模块的缓冲作用实现通信速率匹配,这样在串口不足时,可以有效地利用主处理器的i2c接口来连接更多的串口设备,实现串口扩展,同时单片机价格便宜,降低了设备成本。
附图说明
23.图1为本发明的实施例一的基于单片机的串口扩展方法的原理示意图;
24.图2为本发明的实施例一的单片机中数据传输过程示意图;
25.图3为本发明的实施例二的基于单片机的串口扩展设备示意图。
具体实施方式
26.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
27.在详细描述本技术的各个实施例之前,首先简单描述本技术的技术构思:现有技术中为了实现i2c接口与串口的通信协议转换,通常采用专用芯片,价格较高,增加了设备成本。为此,本技术提供了一种基于单片机的串口扩展方法,利用单片机自带的i2c接口、串口收发器和存储模块,通过设定相应的控制程序来实现数据在i2c接口和串口收发器之间的传输,实现i2c接口和串口的通信协议转换,以使得主处理器可与更多的外部串口设备进行通信,达到串口扩展目的,同时由于单片机的成本较低,从而可以降低设备的整体成本。
28.如图1和图2所示,本实施例一的单片机100具有i2c接口10、串口收发器20和存储模块30,其中i2c接口10和串口收发器20的数量均设置为多个,具体数量以及存储模块30的
存储容量取决于相应型号的单片机,从成本上来看,串口数量和存储容量越大,单片机价格越高。示例性地,在资源满足功能需求的前提下,本实施例一优先采用so-8封装、mcs-51内核的国产型号为stc8g1k08的单片机,此型号的单片机成本大约为市场上主流的i2c接口与串口转接专用芯片的十分之一,极大地降低了成本。
29.具体来说,本实施例一的基于单片机的串口扩展方法包括发送方法和接收方法。发送方法为:在i2c接口10接收到主处理器200发送的数据时,实时地将接收到的数据存储至存储模块30中,将存储模块30中的数据从串口收发器20发送至外部串口设备300。接收方法为:在串口收发器20接收到外部串口设备300发送的数据时,将接收到的数据存储至存储模块30中,生成中断信号并将中断信号发送至主处理器200,中断信号用于使主处理器200实时地通过i2c接口10读取存储模块30中的数据。在发送和接收过程中,i2c接口10作为从机,主处理器200作为i2c主机,i2c接口10可从主处理器200中接收数据,但是不能直接向主处理器200发送数据,因此需要发送中断信号提醒主处理器200从i2c接口10中读取数据。外部串口设备300可以为通信模组、传感器等。
30.进一步地,在存储模块30内设置两个存储空间,分别用于在发送和接收数据过程中进行数据缓冲,由于i2c接口10通信速率和串口收发器20的通信速率不相同,通过存储空间的缓冲作用来匹配双方的通信速率。为了便于描述,将两个存储空间分别命名为第一存储空间和第二存储空间。其中两个存储空间的地址均连续,即具有从起始地址指向终止地址的连续多个存储单元,每个存储单元为一个字节,示例性地,本实施例一的存储空间的容量大小优选为128字节。在i2c接口10接收到主处理器200发送的数据时,将接收到的数据按照从起始地址至终止地址的顺序写入到第一存储空间的各个存储单元,接着按照起始地址至终止地址的顺序从各个存储单元中读取数据并通过串口收发器20发送至外部串口设备300,即按照先进先出的顺序来发送数据。示例性地,可设置写指针和读指针来表示读写过程。写指针指向当前要写入的地址,写入完成后写指针地址自动增加。初始状态下,写指针指向起始地址,当写指针指向终止地址时,完成写入后自动指向起始地址。类似地,读指针指向当前要读出的地址,读出完成后读指针地址自动增加。初始状态下,读指针指向起始地址,当读指针指向终止地址时,完成读出后自动指向起始地址。其中,读指针可以追上写指针,追上后读指针等于写指针,代表存储空间中的数据全部被读出,没有数据了。写指针不可以追上读指针,追上代表数据覆盖。写指针往后,到读指针之间的存储单元数量,就是已经存放的数据数量。
31.进一步地,当接收到的数据的容量大于存储空间的容量时,即当写指针指向终止地址时,继续收到需要存储的数据,当在终止地址对应的存储单元写入数据之后,继续按照从起始地址至终止地址的顺序在各个存储单元中写入数据,即写指针重新指向起始地址。类似地,当在终止地址对应的存储单元的数据被读取和被发送之后,继续按照从起始地址至终止地址的顺序从各个存储单元中读取数据并通过串口收发器发送至外部串口设备,即当读指针指向终止地址时,需要继续发送存储的数据时,将读指针重新指向起始地址。
32.进一步地,在起始地址对应的存储单元中写入数据的同时,生成中断信号并将中断信号发送至主处理器。一方面由于单片机100中的i2c接口10为从机,无法直接向主处理器200发送数据,需要通过中断信号提示主处理器200开始读取数据;另一方面,由于主处理器200存在一定延时,需要第一时间通知主处理器200,尽量减少数据在存储模块中的“停
留”时间,避免先存入的数据未及时读出而被后写入的数据覆盖,导致数据丢失。示例性地,可通过将单片机的一个引脚电平由低电平变为高电平,高电平作为中断信号。
33.进一步地,将生成的中断信号保持直至从存储模块中读取的数据量等于向存储模块中写入的数据量。当读指针还未追上写指针,说明还有数据未被读出,需要提醒主处理器200继续读取数据,当读指针等于写指针,代表存储空间中的数据全部被读出,没有数据可读取了,此时撤销中断信号。
34.本实施例一公开的基于单片机的串口扩展方法,利用软件程序方法,使得单片机自带的i2c接口和串口收发器进行通信,同时通过存储模块的缓冲作用实现速率匹配,这样在串口不足时,可以有效地利用主处理器的i2c接口来连接更多的串口设备,同时单片机价格便宜,降低了设备成本。
35.本实施例二还公开了一种基于单片机的串口扩展设备,在硬件层面,如图3所示,该计算机设备包括处理器12、内部总线13、网络接口14、计算机可读存储介质11。处理器12从计算机可读存储介质11中读取对应的计算机程序然后运行,在逻辑层面上形成请求处理装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。计算机可读存储介质11上存储有基于单片机的串口扩展程序,所述基于单片机的串口扩展程序被处理器执行时实现实施例一中的基于单片机的串口扩展方法。
36.计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
37.进一步地,本实施例三还公开了一种清洁机器人,该清洁机器人具有实施例二中的基于单片机的串口扩展设备。
38.上面对本发明的具体实施方式进行了详细描述,虽然已表示和描述了一些实施例,但本领域技术人员应该理解,在不脱离由权利要求及其等同物限定其范围的本发明的原理和精神的情况下,可以对这些实施例进行修改和完善,这些修改和完善也应在本发明的保护范围内。

技术特征:


1.一种基于单片机的串口扩展方法,其特征在于,所述单片机具有i2c接口、串口收发器和存储模块,所述串口扩展方法包括:在所述i2c接口接收到主处理器发送的数据时,实时地将接收到的数据存储至所述存储模块中,将所述存储模块中的数据从所述串口收发器发送至外部串口设备;在所述串口收发器接收到外部串口设备发送的数据时,将接收到的数据存储至所述存储模块中,生成中断信号并将所述中断信号发送至主处理器,所述中断信号用于提醒所述主处理器通过所述i2c接口读取所述存储模块中的数据。2.根据权利要求1所述的基于单片机的串口扩展方法,其特征在于,所述实时地将接收到的数据存储至所述存储模块中,将所述存储模块中的数据从所述串口收发器发送至外部串口设备的方法包括:在所述存储模块中设置地址连续的存储空间,所述存储空间具有起始地址和终止地址;将接收到的数据按照从所述起始地址至所述终止地址的顺序写入到所述存储空间的各个存储单元;按照所述起始地址至所述终止地址的顺序从各个存储单元中读取数据并通过所述串口收发器发送至外部串口设备。3.根据权利要求2所述的基于单片机的串口扩展方法,其特征在于,当接收到的数据的容量大于所述存储空间的容量时,所述串口扩展方法还包括:当在所述终止地址对应的存储单元写入数据之后,继续按照从所述起始地址至所述终止地址的顺序在各个存储单元中写入数据。4.根据权利要求3所述的基于单片机的串口扩展方法,其特征在于,所述串口扩展方法还包括:当在所述终止地址对应的存储单元的数据被读取和被发送之后,继续按照从所述起始地址至所述终止地址的顺序从各个存储单元中读取数据并通过所述串口收发器发送至外部串口设备。5.根据权利要求1所述的基于单片机的串口扩展方法,其特征在于,所述存储模块中设置有地址连续的存储空间,所述存储空间具有起始地址和终止地址,在所述起始地址对应的存储单元中写入数据的同时,生成中断信号并将所述中断信号发送至主处理器。6.根据权利要求5所述的基于单片机的串口扩展方法,其特征在于,所述串口扩展方法还包括:将生成的中断信号保持直至从存储模块中读取的数据量等于向存储模块中写入的数据量。7.根据权利要求1所述的基于单片机的串口扩展方法,其特征在于,所述单片机的型号为stc8g1k08。8.根据权利要求2所述的基于单片机的串口扩展方法,其特征在于,所述存储空间的容量为128字节。9.一种基于单片机的串口扩展设备,其特征在于,所述串口扩展设备包括计算机可读存储介质、处理器和存储在所述计算机可读存储介质中的基于单片机的串口扩展程序,所述基于单片机的串口扩展程序被处理器执行时实现权利要求1至8任一项所述的基于单片机的串口扩展方法。
10.一种清洁机器人,其特征在于,所述清洁机器人包括如权利要求9所述的基于单片机的串口扩展设备。

技术总结


本发明公开了一种基于单片机的串口扩展方法、串口扩展设备和清洁机器人。该方法包括:在I2C接口接收到主处理器发送的数据时,实时地将接收到的数据存储至存储模块中,将存储模块中的数据从串口收发器发送至外部串口设备;在串口收发器接收到外部串口设备发送的数据时,将接收到的数据存储至存储模块中,生成中断信号并将中断信号发送至主处理器,中断信号用于提醒主处理器通过I2C接口读取存储模块中的数据,使得单片机自带的I2C接口和串口收发器进行通信,同时通过存储模块的缓冲作用实现通信速率匹配,这样在串口不足时,可以有效地利用主处理器的I2C接口来连接更多的串口设备,实现串口扩展,同时单片机价格便宜,降低了设备成本。设备成本。设备成本。


技术研发人员:

邓细华 郑卓斌 王立磊

受保护的技术使用者:

广州科语机器人有限公司

技术研发日:

2022.07.18

技术公布日:

2022/11/22

本文发布于:2024-09-20 12:30:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/1792.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:串口   所述   单片机   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议