数据传输方法、装置和系统

文档序号:115480 发布日期:2021-10-19 浏览:35次 >En<

阅读说明:本技术 数据传输方法、装置和系统 (Data transmission method, device and system ) 是由 余伟鹏 桑耀 梁卓添 施强 于 2021-04-30 设计创作,主要内容包括:本申请涉及一种数据传输方法、装置和系统。其中,数据传输方法包括:获取当前处于存储状态下的待发送数据;采用预设翻译规则,对待发送数据进行翻译,得到翻译数据;预设翻译规则包括将待发送数据翻译为适配SPI DMA单元的数据;在SPI DMA单元基于翻译数据获取到控制数据的情况下,通过SPIDMA单元将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。本申请拓展了单线通讯的应用场景,使得带有SPI的DMA可以发大包数据,节省硬件成本,避免通信数据错误。(The application relates to a data transmission method, a device and a system. The data transmission method comprises the following steps: acquiring data to be sent currently in a storage state; translating the data to be transmitted by adopting a preset translation rule to obtain translation data; the preset translation rule comprises the steps of translating data to be sent into data adaptive to an SPI DMA unit; under the condition that the SPI DMA unit acquires control data based on the translation data, the control data is transmitted to peripheral equipment through the SPIDMA unit; the control data is used to instruct the peripheral device to enter a corresponding operating state. The application expands the application scene of single-wire communication, so that the DMA with the SPI can send large packet data, the hardware cost is saved, and the communication data error is avoided.)

数据传输方法、装置和系统

技术领域

本申请涉及通信技术领域,特别是涉及一种数据传输方法、装置和系统。

背景技术

目前,电子产品应用特别广泛,涉及电子产品的芯片使用,尤其芯片的MCU(Microcontroller Unit,微控制单元)应用也紧随电子产品广泛使用。电子产品内部芯片MCU与其外围设备的数据交互,大多采用单线通讯方式来实现,例如:用MCU单线推内置MCU的RGB灯;单线通讯仅需一个的IO(Input/Output,输入/输出)口,能够节省MCU的IO资源,应用灵活。

在实际应用中,当进行小数据量(一般两三个Byte下)通讯时,单线通讯不会占用太多MCU资源,也不易出错;然而在实现过程中,发明人发现传统技术中至少存在如下问题:当需要大数据量通讯的情况下,传统单线通讯会占用较多的MCU资源并影响其他工作任务,同时也容易导致单线通讯发生数据错误。即单线通讯在实际应用中存在局限性,目前的单线通讯,存在易出错等问题。

发明内容

基于此,有必要针对上述技术问题,提供一种能够节省资源、且避免通信数据错误的数据传输方法、装置和系统。

为了实现上述目的,一方面,本申请实施例提供了一种数据传输方法,方法应用于包含SPI DMA单元的控制器;该方法包括:

获取当前处于存储状态下的待发送数据;

采用预设翻译规则,对待发送数据进行翻译,得到翻译数据;预设翻译规则包括将待发送数据翻译为适配SPI DMA单元的数据;

在SPI DMA单元基于翻译数据获取到控制数据的情况下,通过SPI DMA单元将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。

在其中一个实施例中,待发送数据包括MCU生成并输出的外围工作数据经存储得到;翻译数据包括对应外围设备的工作状态数据;

采用预设翻译规则,对待发送数据进行翻译,得到翻译数据的步骤,包括:

将外围工作数据转换为二进制数据,对二进制数据进行处理得到工作状态数据;

确认SPI DMA单元基于翻译数据获取到控制数据的步骤,包括:

在工作状态数据满足数据条件的情况下,通过SPI DMA单元将工作状态数据处理为控制数据。

在其中一个实施例中,工作状态数据包括对应LED灯高电平的状态数据和对应LED灯低电平的状态数据;其中,工作状态数据的数据状态为根据LED灯的波特率确定。

在其中一个实施例中,外围工作数据包括RGB数据;控制数据包括灰度数据;数据条件包括数量阈值;

通过SPI DMA单元将工作状态数据处理为控制数据的步骤,包括:

在RGB数据的数量达到数量阈值的情况下,基于各RGB数据得到灰度数据;灰度数据用于指示各LED灯中的控制单元采用单线程模式响应及传输灰度数据。

一种数据传输装置,装置应用于包含SPI DMA单元的控制器;该装置包括:

翻译模块,用于获取当前处于存储状态下的待发送数据;采用预设翻译规则,对待发送数据进行翻译,得到翻译数据;预设翻译规则包括将待发送数据翻译为适配SPI DMA单元的数据;

数据发送模块,用于在SPI DMA单元基于翻译数据获取到控制数据的情况下,通过SPI DMA单元将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。

一种控制器,包括依次连接的DATA单元、翻译单元和SPI DMA单元;SPIDMA单元用于通过IO接口连接外围设备;

DATA单元用于存储待发送数据;

翻译单元用于从DATA单元中获取当前处于存储状态下的待发送数据,并采用预设翻译规则,对待发送数据进行翻译,输出翻译数据;预设翻译规则包括将待发送数据翻译为适配SPI DMA单元的数据;

SPI DMA单元用于接收翻译数据,并在基于翻译数据获取到控制数据的情况下,通过IO接口将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。

一种芯片,包括如上述的控制器。

在其中一个实施例中,控制器为MCU。

一种数据传输系统,包括外围设备,以及如上述的芯片;芯片通过控制器的IO接口连接外围设备。

在其中一个实施例中,外围设备包括若干个LED灯;LED灯包括控制单元和LED灯芯;控制单元的一端连接电源,另一端连接LED灯芯的一端;LED灯芯的另一端用于接地;

各控制单元依次连接;首个控制单元连接IO接口;

其中,接收到灰度数据的控制单元,在确认本单元当前处于非工作状态、和/或本单元当前不存在控制数据的情况下,则响应灰度数据进入工作状态;

接收到灰度数据的控制单元,在确认本单元当前处于工作状态、和/或本单元当前存在控制数据的情况下,则将灰度数据传输给下一个控制单元。

上述技术方案中的一个技术方案具有如下优点和有益效果:

本申请获取当前处于存储状态下的待发送数据(即待发送数据处于存储状态),并将待发送数据,翻译成能够被SPI DMA单元识别的数据(即适配SPIDMA单元的数据),能够有效地避免程序处理过程中加入中断程序,造成数据错误的情况,进而由SPI DMA单元将翻译后的数据转换为控制数据后,通过IO口发送到外围设备处,以指示外围设备进入相应的工作状态。本申请能够节省芯片的运行资源,用更少资源实现更多数据量的通讯;同时,本申请拓展单线通讯的应用场景,使得带有SPI的DMA可以发大包数据,节省硬件成本,避免通信数据错误。

附图说明

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

图1为一个实施例中数据传输方法的应用环境图;

图2为一个实施例中数据传输方法的流程示意图;

图3为另一个实施例中数据传输方法的流程示意图;

图4为一个实施例中数据传输装置的结构框图;

图5为一个实施例中控制器的结构示意图;

图6为一个实施例中翻译单元的翻译流程示意图;

图7为一个实施例中数据传输系统的结构示意图;

图8为一个实施例中外围设备的结构框图;

图9为一个实施例中数据传输系统的工作流程示意图。

具体实施方式

为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本申请的公开内容更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。

空间关系术语例如“在...下”、“在...下面”、“下面的”、“在...之下”、“在...之上”、“上面的”等,在这里可以用于描述图中所示的一个元件或特征与其它元件或特征的关系。应当明白,除了图中所示的取向以外,空间关系术语还包括使用和操作中的器件的不同取向。例如,如果附图中的器件翻转,描述为“在其它元件下面”或“在其之下”或“在其下”元件或特征将取向为在其它元件或特征“上”。因此,示例性术语“在...下面”和“在...下”可包括上和下两个取向。此外,器件也可以包括另外地取向(譬如,旋转90度或其它取向),并且在此使用的空间描述语相应地被解释。

需要说明的是,当一个元件被认为是“连接”另一个元件时,它可以是直接连接到另一个元件,或者通过居中元件连接另一个元件。此外,以下实施例中的“连接”,如果被连接的对象之间具有电信号或数据的传递,则应理解为“电连接”、“通信连接”等。

在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中使用的术语“和/或”包括相关所列项目的任何及所有组合。

传统的单线通讯方案,当MCU和外设进行单线数据通讯时,需要在MCU设置主循环函数或中断线程,以使IO接口的数字逻辑电平的特征来模拟通讯的二进制数据码流,从而实现彼此之间的数据通讯;然而传统方案存在至少如下问题:1)占用MCU资源,在跟外设单线通讯过程中,此程序必须单独运行,若存在中断程序,容易导致数据出错;2)通讯数据量小,应用场景有限。

针对上述问题,本申请提出利用MCU内部的硬件装置SPI(Serial PeripheralInterface,串行外设接口)DMA(Direct Memory Access,直接内存存取)单元的数据脚来实现单线数据通讯。在DMA数据通讯时由硬件SPI模块负责通讯数据,进而完全不占用MCU的CPU(Central Processing Unit,中央处理器)运行指令,仅需把写入DMA单元的数据翻译为外围设备需求的数据获取逻辑即可,同时,采用DATA单元对数据进行预存,可以避免数据错误。本申请能够节省MCU的运行资源,用更少资源实现更多数据量的通讯;且本申请拓展了单线通讯的应用场景,带有SPI的DMA可以发大包数据,节省硬件成本。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据传输方法,可以应用于如图1所示的应用环境中。其中,芯片与外围设备进行通信;该芯片可以包括控制器,而该控制器可以为MCU。其中,MCU可以具备硬件SPI通讯的DMA方式;外围设备可以用单独的LED(Light-Emitting Diode,发光二极管)或是多个LED灯组予以实现。

在一个实施例中,如图2所示,提供了一种数据传输方法,以该方法应用于图1中的控制器(该控制器包含SPI DMA单元)为例进行说明,包括:

步骤202,获取当前处于存储状态下的待发送数据;采用预设翻译规则,对待发送数据进行翻译,得到翻译数据;预设翻译规则包括将待发送数据翻译为适配SPI DMA单元的数据;

具体而言,本申请提出对待发送数据进行预存储,进而可以获取到当前处于存储状态下的待发送数据,而该待发送数据可以指MCU生成的数据。在其中一个实施例中,在步骤202之前,还可以包括步骤:存储待发送数据。即本申请可以接收MCU生成的数据,并进行存储。

进一步的,可以采用相应的数据存储介质对待发送数据进行预存储,例如,DATA单元,本申请中的DATA单元可用于存储待发送数据,DATA单元可以内置于MCU中;在一些实施例中,DATA单元可以采用数据存储单元予以实现。

在一些具体的实例中,待发送数据可以包括MCU生成并输出的外围工作数据经存储得到;即待发送数据可以包括由MCU当前生成并输出的外围工作数据。其中,MCU可以根据预设的需求,将外围设备工作需要的所有工作数据(即外围工作数据),一次性生成,进而MCU可以将生成的工作数据存储在DATA单元中。本申请提出对生成的工作数据,进行存储(存储在DATA单元中),MCU在工作数据生成发送的工作基本完成,此时MCU能够脱离当前工作状态,进入其他工作。

本申请提出对待发送数据进行预存储,例如,采用DATA单元作为数据存储单元,用来存储待发送数据(即将批量发送的数据),进而能够有效地避免程序处理过程中加入中断程序,造成数据错误的情况。

基于上述处于存储状态的待发送数据,本申请提出对待发送数据进行翻译处理。该翻译处理可以采用控制器中相应的翻译单元予以实现。在一些实施例中,翻译单元可以依次获取DATA单元发送的数据,并根据预设的规则,进一步进行翻译。在一些实施例中,预设的规则可以指预设翻译规则,该预设翻译规则可以包括将待发送数据翻译为适配SPIDMA单元的数据。其中,适配SPIDMA单元的数据可以指能够被SPI DMA单元识别的数据,也可以指外围设备需求的数据。

本申请获取处于存储状态待发送数据,并将待发送数据翻译成能够被SPIDMA单元识别的数据,而翻译后的数据经处理后,可以通过IO接口发送到外围设备的相应控制元件中。具体的,本申请中的SPI DMA单元,可以利用SPI的数据口传输数据。其中,SPI的硬件模块可以通过数据脚自动外发数据,期间可不占用任何的CPU资源,进而本申请可以用单线通讯外发大数据包,节省MCU资源,避免通信数据错误。

在其中一个实施例中,待发送数据可以包括MCU生成并输出的外围工作数据经存储得到;翻译数据可以包括对应外围设备的工作状态数据;

采用预设翻译规则,对待发送数据进行翻译,得到翻译数据的步骤,可以包括:

将外围工作数据转换为二进制数据,对二进制数据进行处理得到工作状态数据。

具体而言,本申请可以把写入SPI DMA单元的数据翻译为外围设备需求的数据。SPI DMA单元识别的数据可以包括二进制数据,本申请可以将MCU输出的外围工作数据转换为二进制数据,进而将二进制数据处理为工作状态数据。从而SPI DMA单元可以在接收到的工作状态数据满足相应条件的情况下,将工作状态数据处理为控制数据。

步骤204,在SPI DMA单元基于翻译数据获取到控制数据的情况下,通过SPI DMA单元将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。

具体而言,本申请提出基于SPI单线通讯的数据传输方法;在SPI DMA单元基于翻译数据获取到控制数据的情况下,通过SPI DMA单元将控制数据传输给外围设备。

SPI DMA单元可以用于通过IO接口连接外围设备;SPI DMA单元在接收到可识别的翻译数据的情况下,确认基于翻译数据能否得到控制数据,在得到控制数据时,可通过该IO接口将控制数据传输给外围设备。

在其中一个实施例中,待发送数据可以包括MCU生成并输出的外围工作数据经存储得到;翻译数据可以包括对应外围设备的工作状态数据;

确认SPI DMA单元基于翻译数据获取到控制数据的步骤,可以包括:

在工作状态数据满足数据条件的情况下,通过SPI DMA单元将工作状态数据处理为控制数据。

具体地,该数据条件可以指工作状态数据满足形成控制数据的条件。以外围工作数据包括RGB数据,外围设备为LED灯为例:在翻译过程中,R/G/B等二进制数据可以被依次翻译为能够被SPI DMA单元识别的二进制数据;本申请依次翻译来自R灯、G灯和B灯的输出数据,使之形成对应的绿灯灰度数据、蓝灯灰度数据。三者(R/G/B)的灰度数据汇集在SPIDMA单元,最后通过MCU的IO接口,发送到外围组成。

在其中一个实施例中,工作状态数据可以包括对应LED灯高电平的状态数据和对应LED灯低电平的状态数据;其中,工作状态数据的数据状态为根据LED灯的波特率确定。

具体而言,在外围设备为LED灯的情况下,经翻译处理得到的工作状态数据可以包括对应LED灯高电平的状态数据,以及对应LED灯低电平的状态数据。

例如,R灯的输出数据为0X03的情况下,其经过转换的二进制数据为00000011,经过翻译处理后,其可形成8个8bit的红灯灰度数据(即工作状态数据),分别可以是:11000000、11000000、11000000、11000000、11000000、11000000、11111100、11111100。

其中,11000000是对应LED灯低电平0的状态数据,11111100是对应LED灯高电平1的状态数据。关于LED灯的高电平1和低电平0;而本申请中设置工作状态数据的数据状态(11000000、11111100),具体可以根据LED灯的波特率进行计算。

在其中一个实施例中,外围工作数据可以包括RGB数据;控制数据可以包括灰度数据;数据条件可以包括数量阈值;

通过SPI DMA单元将工作状态数据处理为控制数据的步骤,包括:

在RGB数据的数量达到数量阈值的情况下,基于各RGB数据得到灰度数据;灰度数据用于指示各LED灯中的控制单元采用单线程模式响应及传输灰度数据。

具体而言,SPI DMA单元可用于在接收到的RGB数据的数量达到数量阈值的情况下,基于各RGB数据得到灰度数据。以外围设备为LED灯为例,外围工作数据可以包括RGB数据;进而控制数据可以包括灰度数据,而数据条件可以包括数量阈值;在一些实施例中,该数量阈值可以为3个;基于本申请,当翻译了3个RGB数据后,在SPI DMA单元可以形成1个灰度数据,即SPI DMA单元可以将翻译的3个RGB数据形成1个灰度数据。

此外,基于本申请输出的控制数据可以为灰度数据,该灰度数据可以用于指示各LED灯中的控制单元采用单线程模式响应及传输灰度数据。其中,单线程模式可以指控制单元依次获取并判断当前的数据及工作状态,当处在工作状态并获取到新的灰度数据后,根据单线性继续往下发送。

为了进一步阐释本申请的方案,以外围设备包括若干LED灯、控制器为MCU为例,结合具体实例予以说明,如图3所示,本申请数据传输方法可以包括以下步骤:

首先,MCU生成RGB数据;

具体地,MCU可以根据预设的需求,将外围组成中LED灯需要发光工作的所有RGB数据,一次性生成。

其次,MCU将生成的RGB数据进行存储;

具体地,MCU生成的RGB数据,可以存储在DATA单元中;此后MCU在RGB数据生成发送的工作基本完成,进而MCU可以脱离当前工作状态,进入其他工作。

再次,依次获取当前处于存储状态的RGB数据,根据预设的规则,进一步进行翻译;

具体地,可以依次获取DATA单元发送的RGB数据;DATA单元的RGB数据可以是16进制的数据,其先经过二进制转化后,可以根据该二进制数据的0和1,进而由MCU中的翻译单元执行翻译,将其分别对应的转换为可以由SPIDMA单元识别的灰度数据。当翻译单元翻译了3个RGB数据后,可以在SPIDMA单元形成1个灰度数据。

最后,在SPI DMA单元获得翻译后的灰度数据后,可以将灰度数据发送给外围设备的控制单元,以进行相应工作状态的展示。

其中,外围设备的控制单元可以依次获取并判断当前的数据及工作状态,当处在工作状态并获取到新的灰度数据后,根据单线性继续往下发送。

需要说明的是,本申请数据传输方法的具体限定可以参见下文中对于控制器的相关功能的限定。例如,有关翻译的具体原理,外围设备的单线性传输等。

以上数据传输方法,预存储待发送数据(存储即将批量发送的数据),进而能够有效地避免程序处理过程中加入中断程序,造成数据错误的情况。基于此,本申请提出可以将待发送数据,翻译成能够被SPI DMA单元识别的数据(即适配SPI DMA单元的数据),进而在由SPI DMA单元将翻译后的数据转换为控制数据后,可以通过IO接口将控制数据发送到外围设备处。本申请用更少的资源实现更多数据量的通讯,同时拓展了单线通讯的应用场景,使得带有SPI的DMA可以发大包数据,节省硬件成本,避免通信数据错误。

在一个实施例中,如图4所示,提供了一种数据传输装置,以该装置应用于图1中的控制器(该控制器包含SPI DMA单元)为例进行说明,包括:

翻译模块410,用于获取当前处于存储状态下的待发送数据;采用预设翻译规则,对待发送数据进行翻译,得到翻译数据;预设翻译规则包括将待发送数据翻译为适配SPIDMA单元的数据;

数据发送模块420,用于在SPI DMA单元基于翻译数据获取到控制数据的情况下,通过SPI DMA单元将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。

关于数据传输装置的具体限定可以参见上文中对于数据传输方法的限定,在此不再赘述。上述数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在一个实施例中,如图5所示,提供了一种控制器,以该控制器应用于图1为例进行说明,包括依次连接的DATA单元510、翻译单元520和SPI DMA单元530;SPI DMA单元530用于通过IO接口连接外围设备;

DATA单元510用于存储待发送数据;

翻译单元520用于从DATA单元510中获取当前处于存储状态下的待发送数据,并采用预设翻译规则,对待发送数据进行翻译,输出翻译数据;预设翻译规则包括将待发送数据翻译为适配SPI DMA单元的数据;

SPI DMA单元530用于接收翻译数据,并在基于翻译数据获取到控制数据的情况下,通过IO接口将控制数据传输给外围设备;控制数据用于指示外围设备进入相应的工作状态。

具体而言,本申请提出基于SPI单线通讯的控制器,该控制器可以包括DATA单元510、翻译单元520以及SPI DMA单元530,其中,以SPI DMA单元530可以通过MCU的IO接口连接外围设备。

本申请中的DATA单元510可用于存储待发送数据,该待发送数据可以指MCU生成的数据,DATA单元510可以内置于MCU中;在一些实施例中,DATA单元510可以采用数据存储单元予以实现。

在其中一个实施例中,待发送数据可以包括由MCU当前生成并输出的外围工作数据。其中,MCU可以根据预设的需求,将外围设备工作需要的所有工作数据(即外围工作数据),一次性生成;进而MCU可以将生成的工作数据存储在DATA单元中。本申请提出生成的工作数据,存储在DATA单元中,MCU在工作数据生成发送的工作基本完成,此时MCU能够脱离当前工作状态,进入其他工作。

以上,本申请中DATA单元可以作为数据存储单元,用来存储待发送数据(即将批量发送的数据),进而能够有效地避免程序处理过程中加入中断程序,造成数据错误的情况。

基于上述DATA单元510,本申请提出采用翻译单元520处理待发送数据;在一些实施例中,翻译单元520可以依次获取DATA单元510发送的数据,并根据预设的规则,进一步进行翻译。在一些实施例中,预设的规则可以指预设翻译规则,该预设翻译规则可以包括将待发送数据翻译为适配SPI DMA单元530的数据。其中,适配SPI DMA单元的数据可以指能够被SPI DMA单元识别的数据,也可以指外围设备需求的数据。

本申请通过设置翻译单元,将从DATA单元中获取的待发送数据,翻译成能够被SPIDMA单元识别的数据,翻译后的数据可以通过IO口发送到外围设备的相应控制元件中。具体的,本申请中的SPI DMA单元,可以利用SPI的数据口传输数据。其中,SPI的硬件模块可以通过数据脚自动外发数据,期间可不占用任何的CPU资源,进而本申请可以用单线通讯外发大数据包,节省MCU资源,避免通信数据错误。

在其中一个实施例中,翻译数据可以包括对应外围设备的工作状态数据;

翻译单元可以用于将外围工作数据转换为二进制数据,并将二进制数据处理为工作状态数据;

SPI DMA单元可以用于在接收到的工作状态数据满足数据条件的情况下,将工作状态数据处理为控制数据。

具体地,本申请可以把写入SPI DMA单元的数据翻译为外围设备需求的数据。SPIDMA单元识别地数据可以包括二进制数据,本申请中的翻译单元可以将MCU输出的外围工作数据转换为二进制数据,进而将二进制数据处理为工作状态数据。从而SPI DMA单元可以在接收到的工作状态数据满足数据条件的情况下,将工作状态数据处理为控制数据。

该数据条件可以指工作状态数据满足形成控制数据的条件。以外围工作数据包括RGB数据,外围设备为LED灯为例:在翻译单元中,R/G/B等二进制数据可以被依次翻译为能够被SPI DMA单元识别的二进制数据;翻译单元依次翻译来自R灯、G灯和B灯的输出数据,使之形成对应的绿灯灰度数据、蓝灯灰度数据。三者(R/G/B)的灰度数据汇集在SPI DMA单元,最后通过MCU的IO接口,发送到外围组成。

在其中一个实施例中,工作状态数据可以包括对应LED灯高电平的状态数据和对应LED灯低电平的状态数据;其中,工作状态数据的数据状态为根据LED灯的波特率确定。

具体而言,在外围设备为LED灯的情况下,经翻译单元处理得到的工作状态数据可以包括对应LED灯高电平的状态数据,以及对应LED灯低电平的状态数据。

例如,R灯的输出数据为0X03的情况下,其经过转换的二进制数据为00000011,经过翻译单元处理后,其可形成8个8bit的红灯灰度数据(即工作状态数据),分别可以是:11000000、11000000、11000000、11000000、11000000、11000000、11111100、11111100。

其中,11000000是对应LED灯低电平0的状态数据,11111100是对应LED灯高电平1的状态数据。关于LED灯的高电平1和低电平0;而本申请中设置工作状态数据的数据状态(11000000、11111100),具体可以根据LED灯的波特率进行计算。

在其中一个实施例中,外围工作数据可以包括RGB数据;控制数据可以包括灰度数据;数据条件可以包括数量阈值;

SPI DMA单元用于在接收到的RGB数据的数量达到数量阈值的情况下,基于各RGB数据得到灰度数据;灰度数据用于指示各LED灯中的控制单元采用单线程模式响应及传输灰度数据。

具体而言,以外围设备为LED灯为例,外围工作数据可以包括RGB数据;进而控制数据可以包括灰度数据,而数据条件可以包括数量阈值;在一些实施例中,该数量阈值可以为3个;基于本申请,当翻译单元翻译了3个RGB数据后,在SPI DMA单元可以形成1个灰度数据,即SPI DMA单元可以将翻译的3个RGB数据形成1个灰度数据。

此外,基于本申请输出的控制数据可以为灰度数据,该灰度数据可以用于指示各LED灯中的控制单元采用单线程模式响应及传输灰度数据。其中,单线程模式可以指控制单元依次获取并判断当前的数据及工作状态,当处在工作状态并获取到新的灰度数据后,根据单线性继续往下发送。

为了进一步阐释本申请的方案,下面结合具体的实例进行说明:

以外围设备包括若干LED灯、控制器为MCU为例,LED灯的R/G/B(红/绿/蓝)三原色的输出灰度等级从0~255(256级),每个原色的数据为8bit,即,每个LED灯需要3*8bit的数据。其中,可以根据每个LED灯的波特率,设定LED等亮灭的状态。例如,LED灯亮的状态,其对应为高电平1的状态,其8bit数据状态为0xFC(11111100B),LED灯灭的状态,其对应为低电平0的状态,其8bit数据状态为0xc0(11000000B)。

R(红)灯在DATA单元输出0X03,其二进制状态为00000011B;

G(绿)灯在DATA单元输出0X10,其二进制状态为00010000B;

B(蓝)灯在DATA单元输出0X01,其二进制状态为00000001B;

在翻译单元中,R/G/B等的二进制数据被依次翻译能够被SPI DMA单元识别的二进制数据;如图6所示的,R灯的输出数据为0X03,其经过转换的二进制数据为00000011,经过翻译单元处理后,其形成8个8bit的红灯灰度数据,分别是:11000000、11000000、11000000、11000000、11000000、11000000、11111100、11111100。

其中,11000000是对应LED灯低电平0的状态数据,11111100是对应LED灯高电平1的状态数据。关于LED灯的高电平1和低电平0,设置其数据状态(11000000、11111100)的方式,具体可根据LED灯的波特率进行计算。

同理,翻译单元依次翻译来自G灯和B灯的输出数据,使之形成对应的绿灯灰度数据、蓝灯灰度数据。三者(R/G/B)的灰度数据汇集在SPI DMA单元,最后通过MCU的IO口,发送到外围组成。如图6所示,SPI DMA单元将获取的LED灯的3*8bit数据(RGB灰度数据),通过IO口发送到外围组成。

本申请的翻译单元可以依次获取DATA单元发送的RGB数据,并根据预设的规则,进一步进行翻译;DATA单元的RGB数据是16进制的数据,其先经过二进制转化后,根据该二进制数据的0和1,分别对应的转换能够被SPI DMA单元识别的灰度数据。当翻译单元翻译了3个RGB数据后,可以在SPI DMA单元形成1个灰度数据。

以上,本申请中DATA单元可以作为数据存储单元,用来存储待发送数据(即将批量发送的数据),进而能够有效地避免程序处理过程中加入中断程序,造成数据错误的情况。基于此,本申请中的翻译单元,可以将待发送数据,翻译成能够被SPI DMA单元识别的数据(即适配SPI DMA单元的数据),进而由SPI DMA单元将翻译后的数据转换为控制数据后,通过IO口发送到外围设备处。本申请节省了芯片的运行资源,用更少资源实现更多数据量的通讯;同时,本申请拓展单线通讯的应用场景,使得带有SPI的DMA可以发大包数据,节省硬件成本,避免通信数据错误。

在一个实施例中,提供了一种芯片,包括如上述的控制器。

在其中一个实施例中,控制器为MCU。

具体地,关于芯片中控制器、以及控制器中数据传输过程的具体限定,可以参见上文中对于数据传输方法及控制器的限定,在此不再赘述。

在一个实施例中,如图7所示,提供了一种数据传输系统,包括外围设备,以及如上述的芯片;芯片通过控制器(例如,MCU)的IO接口连接外围设备。

在其中一个实施例中,外围设备可以包括若干个LED灯;LED灯包括控制单元和LED灯芯;控制单元的一端连接电源,另一端连接LED灯芯的一端;LED灯芯的另一端用于接地;

各控制单元依次连接;首个控制单元连接IO接口;

其中,接收到灰度数据的控制单元,在确认本单元当前处于非工作状态、和/或本单元当前不存在控制数据的情况下,则响应灰度数据进入工作状态;

接收到灰度数据的控制单元,在确认本单元当前处于工作状态、和/或本单元当前存在控制数据的情况下,则将灰度数据传输给下一个控制单元。

具体而言,图8展示了外围设备在硬件结构方面的内部架构;其中,若干个LED灯中,LED灯包括控制单元和LED灯芯;在一些实施例中,如图8所示,LED灯芯可以为三色LED灯芯。

LED灯中的控制单元可以指芯片构成的控制装置;本申请中的控制单元可以通过单线性进行连接。具体的,通过MCU的IO接口的控制线,与各个灯组的控制单元的控制端连接。而控制单元的首尾端可分别与电源VDD和LED灯(地)连接。其中,首个控制单元连接IO接口,即图8中的第一LED灯(即首个LED灯)的控制单元A0(即首个控制单元)连接IO接口。

结合本申请中的控制器,在接收到灰度数据的情况下,各LED灯中的控制单元可以采用单线程模式响应及传输灰度数据。以图8中的各LED灯为例,SPIDMA单元将获取的第一LED灯的3*8bit数据(RGB灰度数据),通过IO口发送到外围组成。如图8所示,外围设备第一LED灯的控制单元A0,获取了第一LED灯的灰度数据,进入发光工作状态。此时,因为控制单元A0已经获取了第一LED灯的灰度数据,其他控制单元A1~An,将不再获取到该第一LED灯的灰度数据。

据此,SPI DMA单元每获取3*8bit的灰度数据,即可定义为灰度数据;根据设定的需求,SPI DMA单元可以获取第一灰度数据,第二灰度数据...第N-1灰度数据。SPI DMA单元将获取到的灰度数据,实时依次通过IO口发送到外围组成的控制单元A0~An。

具体地,当SPI DMA单元获取了第一灰度数据后,实时立刻发送到控制单元A0,控制单元A0获取第一灰度数据后,使第一LED灯发光工作;

当SPI DMA单元获取了第二灰度数据后,实时立刻发送到控制单元A0,此时,控制单元A0的第一LED灯已经有第一数据进行的发光工作状态,控制单元A0则将第二灰度数据发送到控制单元A1,控制单元A1获取第二灰度数据后,使第二LED灯发光工作;

依次类推,第三灰度数据通过控制单元A2,使第三LED灯发光工作;第四灰度数据通过控制单元A3,使第四LED灯发光工作。

即本申请数据传输系统中的各LED灯,其控制单元可以采用单线程模式响应及传输灰度数据。例如,第一控制单元(控制单元A0)判断是否已存在灰度数据,若已存在灰度数据,第一控制单元(控制单元A0)则将灰度数据发送给第二控制单元(控制单元A1),第二控制单元(控制单元A1)判断是否已存在灰度数据,若已存在灰度数据,第二控制单元(控制单元A1)则将灰度数据发送给第三控制单元(控制单元A2)。本申请中的控制单元,可以依次获取并判断当前的数据及工作状态,当处在工作状态并获取到新的灰度数据后,根据单线性继续往下发送。

为了进一步阐释本申请数据传输系统的工作流程,以外围设备包括若干LED灯、控制器为MCU为例,结合具体实例予以说明,如图9所示,本申请数据传输系统的工作流程可以包括以下步骤:

步骤1:MCU生成RGB数据;

具体地,MCU可以根据预设的需求,将外围组成中LED灯需要发光工作的所有RGB数据,一次性生成。

步骤2:MCU将生成的RGB数据存储在DATA单元中;

具体地,MCU生成的RGB数据,可以存储在DATA单元中;此后MCU在RGB数据生成发送的工作基本完成,进而MCU可以脱离当前工作状态,进入其他工作。

步骤3:翻译单元依次获取DATA单元发送的RGB数据,根据预设的规则,进一步进行翻译;

具体地,DATA单元的RGB数据可以是16进制的数据,其先经过二进制转化后,可以根据该二进制数据的0和1,由翻译单元将其分别对应的转换为可以由SPI DMA单元识别的灰度数据。当翻译单元翻译了3个RGB数据后,可以在SPI DMA单元形成1个灰度数据。

步骤4:SPI DMA单元获得翻译后的灰度数据;

步骤5:将灰度数据发送给外围设备的第一控制单元;

步骤6:第一控制单元判断是否已存在灰度数据,若已存在灰度数据,第一控制单元则将灰度数据发送给第二控制单元,第二控制单元判断是否已存在灰度数据,若已存在灰度数据,第二控制单元则将灰度数据发送给第三控制单元。以此类推,直至某一控制单元响应灰度数据。

需要说明的是,当控制单元没有处在工作状态的情况下,若接收到灰度数据,则可以进入发光工作状态。

本申请把写入DMA单元的数据翻译为外围设备需求的数据,其中,预先存储MCU即将批量发送的RGB数据,其能够避免通过MCU设置好的一节一节数据再发送的问题,有效地避免程序处理过程中加入中断程序,造成数据错误的情况。本申请可以节省MCU的运行资源,用更少资源实现更多数据量的通讯;拓展单线通讯的应用场景,带有SPI的DMA可以发大包数据,节省硬件成本。

以上,本申请数据传输系统,能够节省MCU的运行资源,用更少资源实现更多数据量的通讯;同时,拓展单线通讯的应用场景,使得带有SPI的DMA可以发大包数据,节省硬件成本。

应该理解的是,虽然图2、图3和图9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3和图9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据传输方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种无人机机载数据转发方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!