一种MCU芯片和MCU通信系统的制作方法

文档序号:33552791发布日期:2023-03-22 10:56阅读:70来源:国知局
一种mcu芯片和mcu通信系统【
技术领域
:】1.本技术涉及数据传输
技术领域
:,尤其涉及一种mcu芯片和mcu通信系统。
背景技术
::2.在上位机与微控制单元(microcontrollerunit,mcu)的通信场景中,经常涉及到大量的数据传输。目前的技术方案中,主要是基于通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)来实现上位机与mcu之间的数据传输。但是,uart传输方式通信速率较低,并且,由于mcu自身数据存储单元的容量十分有限,导致难以实现较高数据吞吐量。技术实现要素:3.本技术实施例提供了一种mcu芯片mcu通信系统,可提升mcu芯片与上位机之间的数据传输效率,提高数据吞吐量。4.第一方面,本技术实施例提供一种mcu芯片,包括:usb接口、主控单元、dma控制器以及存储器控制器;所述主控单元连接所述dma控制器,所述dma控制器还连接所述usb接口以及所述存储器控制器;所述主控单元,用于将所述usb接口的传输协议配置为usb大容量存储设备类msc传输协议;所述usb接口,用于通过usb线缆连接上位机,并接收所述上位机发送的第一数据包;所述dma控制器,用于将所述usb接口接收到的所述第一数据包发送给所述存储器控制器;所述存储器控制器,用于通过通信单元连接外部存储器,并通过所述通信单元,将所述第一数据包发送给所述外部存储器进行存储。5.其中一种可能的实现方式中,所述主控单元还用于,对所述usb接口进行初始化,以及,控制所述存储器控制器对所述外部存储器进行初始化。6.其中一种可能的实现方式中,所述usb接口包括usb端点缓存区;所述usb接口还用于,将接收到的所述第一数据包缓存至所述usb端点缓存区。7.其中一种可能的实现方式中,所述主控单元还用于:对所述usb端点缓存区的缓存空间余量进行检测;检测到所述缓存空间余量小于设定阈值后,控制所述dma控制器将所述usb端点缓存区中已缓存的第一数据包迁移至所述存储器控制器。8.其中一种可能的实现方式中,所述存储器控制器具体用于:将所述已缓存的第一数据包发送给所述通信单元,由所述通信单元将所述已缓存的第一数据包发送给所述外部存储器进行存储。9.其中一种可能的实现方式中,所述主控单元还用于,控制所述mcu芯片向所述上位机发送第二数据包。10.其中一种可能的实现方式中,所述主控单元具体用于,控制所述存储器控制器通过所述通信单元从所述外部存储器中获取第二数据包。11.其中一种可能的实现方式中,所述存储器控制器还用于,将获取到的所述第二数据包发送至所述dma控制器,由所述dma控制器将所述第二数据包发送至所述usb端点缓存区。12.其中一种可能的实现方式中,所述主控单元还用于,检测到所述缓存空间余量小于设定阈值后,控制所述usb接口通过所述usb线缆将所述usb端点缓存区中已缓存的第二数据包发送至所述上位机。13.第二方面,本技术实施例提供一种mcu通信系统,所述mcu通信系统包括:包括上位机、外部存储器以及如第一方面所述的mcu芯片;所述mcu芯片连接所述上位机,所述mcu芯片还连接所述外部存储器。14.本技术的上述技术方案存在以下有益效果:15.本技术上述技术方案可提升mcu芯片与上位机之间的数据传输效率,提高数据吞吐量。【附图说明】16.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。17.图1为本技术实施例提供的一种mcu芯片的结构示意图;18.图2为本技术实施例提供的另一种mcu芯片的结构示意图;19.图3为本技术实施例提供的另一种mcu芯片的结构示意图;20.图4为本技术实施例提供的一种mcu通信系统的结构示意图。【具体实施方式】21.为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。22.应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。23.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”、“第一”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。24.本技术实施例可提供一种微控制单元(microcontrollerunit,mcu)芯片。图1为本技术实施例提供的一种mcu芯片的结构示意图。如图1所示,本技术实施例提供的mcu芯片10可包括:通用串行总线(universalserialbus,usb)接口101、主控单元102、dma(directmemoryaccess,dma)控制器103以及存储器控制器104。25.其中,主控单元102连接dma控制器103。dma是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过cpu,也不需要cpu干预。dma控制器103可用于对整个数据传输操作进行控制。dma控制器103还分别连接usb接口101以及存储器控制器104。存储器控制器104可以是嵌入式多媒体(embeddedmultimediacard,emmc)存储器控制器,其中,emmc是mmc协会订立的内嵌式存储器标准规格。存储器控制器104还可连接一外部存储器105。外部存储器105例如可以是随机访问存储器(randomaccessmemory,ram)、同步动态随机存取内存(synchronousdynamicrandom-accessmemory,sdram)、静态随机存取存储器(staticrandom-accessmemory,sram)、flash等任意一种存储器。26.本技术实施例中,上述mcu芯片10可通过usb线缆连接上位机。具体可以是mcu芯片10的usb接口101通过usb线缆连接上位机。连接成功后,mcu芯片10可与上位机进行数据传输。数据传输可以是由mcu芯片10接收上位机发送的数据包,还可以是mcu芯片10向上位机发送数据包。27.下面将结合图1所示的mcu芯片10的内部结构,对mcu芯片10接收上位机发送的数据包的过程中,mcu芯片10内部各功能单元的功能实现逻辑进行说明。为便于区分和表述,本技术实施例中,将上位机发送至mcu芯片10的数据包称为第一数据包。第一数据包的数量可以为一个或多个,本技术对此不做限制。28.首先,mcu芯片10与上位机建立usb连接之后,主控单元102可用于,分别对上述usb接口101以及存储器控制器104所连接的外部存储器105进行初始化。29.具体的,一方面,主控单元102可对usb接口101中usb缓存区的数据进行初始化。另一方面,主控单元102还可用于控制存储器控制器104对外部存储器105进行初始化。一种具体的实现方式中,主控单元102可用于向存储器控制器104发送第一指示信息。存储器控制器104可用于响应于第一指示信息,对外部存储器105进行初始化。对外部存储器105进行初始化例如可以是,对外部存储器105进行数据筛选、数据清除等。从而便于外部存储器105有足够的存储空间,以存储上位机即将下发的第一数据包。第一指示信息可以是一电平信号。30.进而,主控单元102还可对usb接口101所支持的传输协议进行配置。本技术实施例中,主控单元102可将usb接口101的传输协议配置为usb大容量存储设备类(theusbmassstoragedeviceclass,msc)传输协议。基于msc传输协议,上位机中无需配置usb驱动,即可实现usb方式的数据传输。31.然后,usb接口101可用于基于msc传输协议,接收上位机发送的第一数据包。32.具体的,主控单元102可用于监控上位机的状态,以判断上位机是否要下发第一数据包。确定上位机要下发第一数据包后,主控单元102可用于控制usb接口101接收第一数据包。一种可能的实现方式中,主控单元102可用于接收上位机发送的第一电平信号。在接收到第一电平信号之后,主控单元102可确定上位机即将下发第一数据包。本技术实施例中,mcu芯片基于usb传输方式接收上位机发送的第一数据包,相比于通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)的传输方式,抗干扰能力大大增强,从而提升了数据传输速率以及数据传输可靠性。并且,基于msc传输协议,可免于上位机端配置usb驱动,更加便捷。33.进而,dma控制器103可用于将usb接口101接收到的第一数据包发送给存储器控制器104。34.一种可能的实现方式中,dma控制器103可响应于usb接口101接收到第一数据包,将第一数据包发送给存储器控制器104。另一种可能的实现方式中,主控单元102可响应于usb接口101接收到第一数据包,向dma控制器103发送第一触发信号。dma控制器103可响应于该第一触发信号,将usb接口101接收到的第一数据包发送给存储器控制器104。其中,上述第一触发信号可以是任意一种形式的信号,如电平信号等。35.最后,存储器控制器104可用于将第一数据包发送给外部存储器105进行存储。36.具体的,如图2所示,存储器控制器104和外部存储器105之间可连接有通信单元106。存储器控制器104可用于将第一数据包发送给通信单元106,进而,由通信单元106将第一数据包发送给外部存储器105。通过外部存储器105存储数据,扩大了mcu芯片的存储空间,有利于在mcu芯片与上位机的通信场景中,提升数据吞吐量。37.相应的,对于mcu芯片向上位机发送数据包的过程,mcu芯片内部各功能单元的功能实现逻辑可以是:38.首先,mcu芯片与上位机建立usb连接之后,主控单元102可用于,分别对usb接口101以及存储器控制器104所连接的外部存储器105进行初始化。具体的实现方式可参考前述说明,此处不做赘述。39.然后,主控单元102确定当前有待发送的第二数据包之后,由存储器控制器104获取外部存储器105中存储的第二数据包,并将第二数据包发送给dma控制器103。40.具体的,主控单元102确定当前有待发送的第二数据包之后,可向存储器控制器104发送第二触发信号。存储器控制器104响应于该第二触发信号,可从外部存储器105中获取第二数据包,并将第二数据包发送给dma控制器103。第二触发信号可以是包括电平信号在内的任意一种信号形式。41.进而,由dma控制器103将接收到的第二数据包发送至usb接口101。42.最后,由usb接口101基于msc传输协议,将第二数据包发送给上位机。43.上述技术方案中,一方面,usb作为一种标准的串行接口,使用了差分信号,相比于uart方式,抗干扰能力更为优越,同时通信速率更高;另一方面,将usb接口101配置为msc传输协议,可免于在pc端配置usb驱动,更为便捷,技术成本更低;再一方面,通过外接存储器对mcu芯片进行扩容,有利于在与上位机的通信场景中实现较高的数据吞吐量。44.图3为本技术实施例提供的另一种mcu芯片的结构示意图。如图3所示,mcu芯片10还可包括usb端点缓存区1011,usb端点缓存区1011可位于usb接口101内部。45.下面结合图3所示的mcu芯片,对mcu芯片和上位机通信场景中,mcu芯片10内部各功能单元的功能实现方式进行说明。46.在mcu芯片10接收上位机发送的第一数据包的场景中,首先,mcu芯片10与上位机建立usb连接之后,主控单元102可用于,分别对上述usb接口101以及存储器控制器104所连接的外部存储器105进行初始化。47.其次,usb接口101可用于基于msc传输协议,接收上位机发送的第一数据包。48.然后,usb接口101将接收到的第一数据包缓存至usb端点缓存区1011。49.进而,主控单元102可用于对usb端点缓存区1011的缓存空间余量进行检测。检测到缓存空间余量小于设定阈值后,主控单元102可用于控制dma控制器103将usb端点缓存区中已缓存的第一数据包迁移至存储器控制器。50.一般来说,usb端点缓存区1011的缓存空间相对较小,为防止缓存空间不足造成第一数据包接收失败,本技术实施例中,在usb接口101向usb端点缓存区1011发送第一数据包进行缓存的过程中,主控单元102可用于对usb端点缓存区1011的缓存空间余量进行检测。当检测到缓存空间余量小于设定阈值后,主控单元102可用于向dma控制器103发送第二指示信息。第二指示信息可以是一电平信号,第二指示信息可用于指示dma控制器103将usb端点缓存区1011中已缓存的第一数据包迁移。可以理解的是,此时usb端点缓存区1011中已缓存的第一数据包可能为上位机下发的全部第一数据包,也可能为全部第一数据包中的部分第一数据包。51.其中,上述设定阈值的取值可根据实际需要灵活设定。在另外的实现方式中,主控单元102还可在检测到缓存空间余量为0后,向dma控制器103发送第二指示信息。52.最后,存储控制器104可用于将接收到的已缓存的第一数据包发送给外部存储器105进行存储。53.具体的,存储控制器104可用于将已缓存的第一数据包发送给通信单元106,由通信单元106将已缓存的第一数据包发送给外部存储器105进行存储。54.相应的,在mcu芯片10向上位机发送第二数据包的通信场景中,mcu芯片10内部各功能单元的功能实现方式可以是:55.首先,mcu芯片10与上位机建立usb连接之后,主控单元102可用于,分别对上述usb接口101以及存储器控制器104所连接的外部存储器105进行初始化。56.其次,主控单元102可用于控制存储器控制器104从外部存储器105中获取待发送的第二数据包。57.本技术实施例中,mcu芯片端的数据可存储于外部存储器105中。当主控单元102确定需要向上位机发送数据后,主控单元102可指示存储器控制器104从外部存储器105中获取待发送的第二数据包。一种具体的实现方式中,主控单元102可向存储器控制器104发送第三指示信息。第三指示信息可以是一电平信号。58.进而,存储器控制器104可响应于第三指示信息,从外部存储器105中获取第二数据包,并将获取到的第二数据包发送至dma控制器103。59.具体的,存储器控制器104响应于第三指示信息,可通过通信单元106,从外部存储器105中获取第二数据包。存储器控制器104接收到第二数据包之后,可将第二数据包发送至dma控制器103。存储器控制器104向dma控制器103发送第二数据包的方式具体可以是主动发送,也可以是基于dma控制器103发送的触发信号被动发送,本技术实施例对此不做限制。60.然后,dma控制器103可用于将接收到的第二数据包发送至usb端点缓存区1011进行缓存。61.进一步的,主控单元102可用于对usb端点缓存区1011的缓存空间余量进行检测,并在检测到缓存空间余量小于设定阈值后,控制usb接口将usb端点缓存区1011中已缓存的第二数据包发送至上位机。62.本技术实施例中,dma控制器103在获取到第二数据包之后,可迅速将第二数据包迁移至usb端点缓存区1011。在此过程中,主控单元102可检测usb端点缓存区1011的缓存空间余量。当检测到缓存空间余量小于设定阈值后,可控制usb接口101将usb端点缓存区1011内已缓存的第二数据包先行发送至上位机。从而,可及时将usb端点缓存区1011的缓存空间空余,以便dma控制器103继续向usb端点缓存区1011迁移数据。在另外的实现方式中,主控单元102还可在检测到usb端点缓存区1011的缓存空间余量为0后,控制usb接口101将usb端点缓存区1011内已缓存的第二数据包发送至上位机。63.通过技术方案,可提升mcu芯片与上位机之间的数据传输效率,提高数据吞吐量。64.本技术另一实施例中,还可提供一种mcu通信系统。图4为本技术实施例提供的一种mcu通信系统的结构示意图。如图4所示,本技术实施例提供的mcu通信系统可包括:上位机20、外部存储器105以及前述实施例所描述的mcu芯片10。65.其中,mcu芯片10通过usb线缆30连接上位机20,mcu芯片10还通过通信单元106连接外部存储器105。66.本技术实施例中,上位机具体可以是个人计算机(personalcomputer,pc)、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)、手机等。本技术对此不作限制。67.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。68.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。69.在本技术所提供的几个实施例中,应该理解到,所揭露的mcu芯片、mcu通信系统,可以通过其它的方式实现。例如,以上所描述的mcu芯片实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。70.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。71.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1