Mcu、主机与多个mcu传输数据的方法

文档序号:105099 发布日期:2021-10-15 浏览:28次 >En<

阅读说明:本技术 Mcu、主机与多个mcu传输数据的方法 (MCU, host and method for transmitting data by multiple MCUs ) 是由 梅汪生 张俊 于 2021-09-06 设计创作,主要内容包括:本申请涉及电子技术领域,公开了一种主机与多个MCU传输数据的方法、MCU,主机与多个MCU连接为菊花链结构,主机和多个MCU各自包括单向的时钟接口和双向的数据接口,数据接口传输的数据包包括:顺序布置的起始码、前导码、有效载荷码和终止码,前导码定义数据包的类型。该方法包括:当主机向MCU写入数据时,主机发送固定周期的时钟信号和数据包到多个MCU,多个MCU根据数据包中的前导码确定写入数据的类型,将数据包中的有效载荷区的数据写入到目标MCU;当主机从MCU读取数据时,主机发送固定周期的时钟信号和数据包到多个MCU,当主机检测到目标MCU的数据接口使能时,根据前导码定义的数据类型从目标MCU读出数据。(The application relates to the technical field of electronics, and discloses a method, MCU of host computer and a plurality of MCU transmission data, and the host computer is connected with a plurality of MCU and is the chrysanthemum chain structure, and host computer and a plurality of MCU include unidirectional clock interface and two-way data interface respectively, and the data package of data interface transmission includes: a start code, a preamble, a payload code and a stop code arranged in sequence, the preamble defining the type of the data packet. The method comprises the following steps: when the host writes data into the MCUs, the host sends clock signals and data packets with fixed periods to the MCUs, the MCUs determine the type of the written data according to lead codes in the data packets, and the data in the effective load area in the data packets are written into a target MCU; when the host computer reads data from the MCUs, the host computer sends clock signals and data packets with fixed periods to the plurality of MCUs, and when the host computer detects that the data interface of the target MCU is enabled, the data are read out from the target MCU according to the data type defined by the lead code.)

MCU、主机与多个MCU传输数据的方法

技术领域

本发明一般涉及电子技术领域,特别涉及一种MCU、主机与多个MCU传输数据的方法。

背景技术

对于像8051这样的低成本MCU(Microcontroller Unit)没有开放或通用的标准/协议,像芯科Silabs这样的主要厂商正在使用自己的内部协议。JTAG(Joint Test ActionGroup,联合测试工作组)是一种广泛使用的协议和IEEE标准,但是该协议至少需要4个管脚来进行测试和调试,这对于低成本MCU而言是不可接受的。此外,JTAG还需要一个典型的状态机来完成测试过程,这需要额外的逻辑(成本),这在低成本MCU中也是不可接受的。本发明介绍了一种低成本MCU克服上述限制的创新方法。

发明内容

本说明书实施方式的目的在于提供一种主机与多个MCU传输数据的方法,采用单向DCK和双向DDA实现MCU的编程、测试和调试,实现低成本MCU。

本申请一实施例中公开了一种主机与多个MCU传输数据的方法,所述主机与所述多个MCU连接为菊花链结构,所述主机和所述多个MCU各自包括单向的时钟接口和双向的数据接口,所述数据接口传输的数据包包括:顺序布置的起始码、前导码、有效载荷码和终止码,其中,所述前导码定义数据包的类型;所述方法包括:

当所述主机向所述MCU写入数据时,所述主机发送固定周期的时钟信号和数据包到所述多个MCU,所述多个MCU根据所述数据包中的前导码确定写入数据的类型,将所述数据包中的有效载荷区的数据写入到目标MCU;

当所述主机从所述MCU读取数据时,所述主机发送固定周期的时钟信号和数据包到所述多个MCU,当所述主机检测到目标MCU的数据接口使能时,根据所述前导码定义的数据类型从所述目标MCU读出数据。

在一个优选例中,所述数据包还包括:位于所述前导码和所述有效载荷区之间的CRC校验码或奇偶校验码。

在一个优选例中,所述数据包还包括:位于所述有效载荷区和所述终止码之间的CRC校验码或奇偶校验码。

在一个优选例中,当所述主机向所述MCU写入数据时,所述数据包还包括:位于所述有效载荷区和所述终止码之间的准备码。

在一个优选例中,当所述主机从所述MCU读取数据时,所述数据包还包括:位于所述前导码和所述有效载荷区之间的准备码。

在一个优选例中,所述前导码具有4比特,用于定义数据读取或写入的位置和模式。

在一个优选例中,所述数据包还包括目标MCU的编号。

本申请一实施例中公开了一种MCU,所述MCU包括单向的时钟接口和双向的数据接口,所述数据接口传输的数据包包括:顺序布置的起始码、前导码、有效载荷码和终止码,其中,所述前导码定义数据包的类型;

当向所述MCU写入数据时,所述MCU接收固定周期的时钟信号和数据包,根据所述数据包中的前导码确定写入数据的类型,将所述数据包中的有效载荷区的数据写入到所述MCU;

当从所述MCU读取数据时,所述MCU接收固定周期的时钟信号和数据包,当所述数据接口使能时,根据所述前导码定义的数据类型从所述MCU读出数据。

本申请实施方式与现有技术相比,至少具有以下区别和效果:

本申请提出了一种采用单向DCK和双向DDA实现MCU的编程、测试和调试,实现低成本MCU。

本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。

附图说明

图1是本申请一个实施例中MCU的2条引线的接口示意图。

图2是本申请一个实施例中数据格式的示意图。

图3是本申请一个实施例中进行写操作的时序图。

图4是本申请一个实施例中进行写操作时MCU未响应的时序图。

图5是本申请一个实施例中进行读操作的时序图。

图6是本申请一个实施例中进行读操作时MCU未响应的时序图。

图7是本申请一个实施例中主机和多个MCU连接为菊花链的示意图。

图8是本申请一个实施例中菊花链结构进行读操作和写操作的时序图。

图9是本申请一个实施例中读操作/写操作的“地址阶段”的数据包。

图10是本申请一个实施例中写操作的“数据阶段”的数据包。

图11是本申请一个实施例中读操作的“数据阶段”的数据包。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。

本申请一个实施例中公开了一种MCU,图1示出了一个实施例中MCU的结构示意图。MCU包括单向的时钟接口DCK和双向的数据接口DDA,通过时钟接口DCK和数据接口DDA与主机(Host)连接,实现主机和MCU之间的通信。本申请中,术语“接口”也可以称为“引脚”或“管脚”。双向的数据接口DDA传输的数据具有固定的数据格式,传输的数据包包括:顺序布置的起始码(Start)、前导码(Preamble)、有效载荷码(Payload)和终止码(Stop),其中,前导码用于定义数据包的类型,例如,定义数据读取或写入的位置和模式,可以简化数据解析。

在一个实施例中,如图2所示,数据接口DDA传输的数据包可以包括1比特起始码Start[0]、3比特前导码Preamble [3:0]、8比特有效载荷码Payload [7:0]和1比特终止码Stop[0]。应当理解,上述各个码的位数仅作为示例,不构成对本申请的限制,例如,前导码还可以是6位或其他位数,类似,有效载荷码也可以12位或其他位数。具体的,前导码Preamble [3:0]可以定义数据读取或写入的位置和模式,例如,分别定义以下类型:

1111–特殊命令(例如不同模式条目)

1011–高字节(如有)写入目标地址

1010–低字节写入目标地址

1110–低字节自动增加模式写入目标地址

0000–读取到CPU包括的SFR寄存器

0001–写入到CPU包括的SFR寄存器

0010–读取到iRAM

0011–写入到iRAM

0100–读取到xRAM/xSFR

0101–写入到xRAM/xSFR

1000–读取到编程闪存

应当注意,上述仅示出了数据包中使用的某些类型前导码,并非包括所有使用的前导码类型。

此外,在对MCU进行写操作(Write)时,写命令中前导码和有效载荷码之间还包括奇偶校验码Parity[0],有效载荷码和终止码之间还包括CPC校验码CPC[0]和准备码RDY[0]。在对MCU进行读操作(Read)时,读命令中前导码和有效载荷码之间还包括奇偶校验码Parity[0]和准备码RDY[0],有效载荷码和终止码之间还包括CPC校验码CPC[0]。应当注意,奇偶校验码和/或CPC校验码都是可选的。在其他实施例中,还可以仅采用奇偶校验码或CPC校验码中的一种。

主机首先从最高有效位(MSB)开始发送数据包,仅当准备码RDY位置是高电平(或1)时,主机才可以向前移动到下一个位置。

在一个实施例中,当向MCU写入数据时,MCU接收固定周期的时钟信号和数据包,根据数据包中的前导码确定写入数据的类型,将数据包中的有效载荷区的数据写入到MCU。

MCU的时钟接口DCK通常被主机的调试器、编程器和测试器控制,当不存在事务(Transaction)时,DCK应当保持为低。当DCK为低时,调试器、编程器和测试器切换(Toggle)DDA,MCU中的调试和测试模块(Debug and Test Module,DTM)在DCK的上升沿采样DDA。

进行写操作的DCK/DDA接口的时序定义如图3所示,DCK表示主机发送的固定周期的时钟信号,即:MCU的时钟接口采样的时钟信号,Data表示数据接口DDA上主机和MCU之间输出的数据信号。当开始采样到DDA下降沿(即起始码为0)时,开始DTM事务。接着,对前导码进行数据解析,获取数据传输的类型。优选的,对前导码进行校验。接着,传输数据的有效载荷码,并且,优选的,对有效载荷码进行校验。主机停止驱动数据引脚,并持续监控数据引脚直到MCU的DDA引脚被拉为高电平,一旦主机检测到MCU的DDA引脚为高,则停止数据帧传输,本次数据传输结束。

进行写操作时MCU未响应的DCK/DDA管脚的时序定义如图4所示。此时,主机在预定时间内没有收到来自MCU的有效RDY信号,主机直接接管数据引脚,驱动数据引脚为高电平而停止数据帧传输,结束本次数据传输。

在一个实施例中,当从MCU读取数据时,MCU接收固定周期的时钟信号和数据包,当数据接口使能时,根据前导码定义的数据类型从MCU读出数据。

进行读操作的DCK/DDA管脚的时序定义如图5所示。DCK表示主机发送的固定周期的时钟信号,即:MCU的时钟接口采样的时钟信号,Data表示数据接口DDA上主机和MCU之间输出的数据信号。当开始采样到DDA下降沿(即起始码为0)时,开始DTM事务。接着,对前导码进行数据解析,获取数据传输的类型。优选的,对前导码进行校验。接着,主机停止驱动数据引脚,并持续监控数据引脚直到MCU的DDA引脚被拉为高电平,一旦主机检测到MCU的DDA引脚为高,则主机开始从MCU读取数据,即获取传输数据的有效载荷码。并且,优选的,对有效载荷码进行校验。当主机收到校验位后,主机直接接管数据引脚,驱动数据引脚为高停止数据帧的传输。

进行读操作时MCU未响应的DCK/DDA管脚的时序定义如图6所示。如果MCU预定时间内没有返回有效的准备信号(即准备码一直为低),主机直接接管数据引脚,驱动数据引脚为高停止数据帧的传输。

图7是本申请一个实施例中主机与多个MCU连接为菊花链结构的结构示意图,主机和多个MCU各自包括单向的时钟接口DCK和双向的数据接口DDA,数据接口传输的数据包包括:顺序布置的起始码、前导码、有效载荷码和终止码,其中,前导码定义数据包的类型。在一个实施例中,数据包还包括目标MCU的编号(ID),例如,目标MCU的编号可以与前导码一起发送,从而可以对目标MCU定义数据读取或写入的位置和模式。

本申请一实施例中公开了一种主机与多个MCU传输数据的方法,图8是本申请一个实施例中菊花链结构进行读操作和写操作的时序图。当主机向MCU写入数据时,主机发送固定周期的时钟信号和数据包到多个MCU,多个MCU根据数据包中的前导码确定写入数据的类型,将数据包中的有效载荷区的数据写入到目标MCU。当主机从MCU读取数据时,主机发送固定周期的时钟信号和数据包到多个MCU,当主机检测到目标MCU的数据接口使能时,根据前导码定义的数据类型从目标MCU读出数据。

图9是读操作/写操作的“地址阶段”的数据包,前导码“1011”指定高字节写入目标地址(例如,xSFR/xRAM),在读取/写入任何MCU寄存器/内存之前需要指定地址,例如,地址[15:8]指定写入MCU的地址。本申请的另一实施例中,前导码“1010”指定低字节写入目标地址,在读取/写入任何MCU寄存器/内存之前需要指定地址,例如,地址[7:0]指定写入MCU的地址。前导码“1110”指定低字节地址自动增加模式写入目标地址,地址自动增加模式可以在上次事务后地址自动增加1,因此每个下一次访问都无需再次指定地址,可以用于使能对多达256个字节访问。

图10是写操作的“数据阶段”的数据包,可以根据前导码,可以将数据写入MCU的不同位置,例如,寄存器,iRAM或xRAM/xSFR。写入MCU的数据包中不需要分隔符位,在主机驱动到终止位之前,主机需要确保RDY位已经变为1。

图11是读操作的“数据阶段”的数据包,可以根据前导码,可以从MCU的不同位置读取数据,例如,寄存器,iRAM或xRAM/xSFR。从MCU读取将引导DDA管脚驱动器的切换,因此将有一个分隔符位(TB),并且需要主机跳过它,仅当主机已经采样RDY位为1时,才可以重新接收有效载荷位。

需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。

可以在本文中使用术语“耦合到”及其派生词。“耦合”可以表示两个或更多个元件直接物理或电接触。然而,“耦合”还可以意味着两个或更多个元件间接地彼此接触,但是仍然彼此协作或相互作用,并且可以意味着一个或多个其他元件在被称为彼此耦合的元素之间耦合或连接。

本说明书包括本文所描述的各种实施例的组合。对实施例的单独提及(例如“一个实施例”或“一些实施例”或“优选实施例”)不一定是指相同的实施例;然而,除非指示为是互斥的或者本领域技术人员很清楚是互斥的,否则这些实施例并不互斥。应当注意的是,除非上下文另外明确指示或者要求,否则在本说明书中以非排他性的意义使用“或者”一词。

在本说明书提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多核异相处理的系统级芯片和集成电路

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!