一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据发送方法和接收方法、主设备、从设备及电子设备与流程

2022-02-22 07:11:42 来源:中国专利 TAG:


1.本技术涉及集成电路技术领域,具体涉及一种数据发送方法和接收方法、主设备、从设备及电子设备。


背景技术:

2.随着触觉反馈在消费电子领域的广泛应用,立体震感逐渐引起人们的重视。所谓立体震感,即多颗马达安放在消费电子设备的不同位置,通过协同震动,来获得更为沉浸的触觉体验。所谓协同震动,是指多个触觉驱动芯片同步输出不同的震动波形。
3.目前对于马达的驱动通常采用i2c总线进行数据的传输,在一个i2c总线上可以挂多个(2个及以上)触觉驱动芯片。如果不使用广播功能,则每次i2c总线开始与结束之间,主机(cpu)单次只能与一个从机(触觉驱动芯片)通信,无法做到同时播放波形;如果使用广播功能,则可以同时播放波形,但是各从机播放的波形内容是一样的,无法做到每个从机播放不同的波形。
4.为了实现立体震感,使多个从机同时播放不同的震动波形,现有技术中,通常是才用多个i2c总线去控制多个触觉驱动芯片。以双马达立体震感为例,总线框架请参考图1,cpu通过两个i2c总线,分别给两个触觉驱动芯片发送波形数据,以实现同步控制两个触觉驱动芯片播放不同波形的。
5.但是这种方法,一方面需要使用多个i2c总线,占用cpu的接口资源;另一方面,需要cpu同时控制多个i2c接口,同时向触觉驱动芯片发送波形数据,cpu控制起来较为复杂。
6.如何通过单根i2c总线,实现多驱动芯片的协同控制,实现立体震感,是目前亟待解决的问题。


技术实现要素:

7.鉴于此,本技术提供一种数据发送方法和接收方法、主设备、从设备及电子设备,以解决现有的通过单一总线无法实现多个芯片的协同控制的问题。
8.本技术提供一种数据接收方法,包括:从总线接收主设备发送的信号;识别所述信号内的各个虚拟通道;接收目标虚拟通道内的数据,作为有效数据。
9.可选的,所述信号内的虚拟通道按照设定的发送顺序排序,以虚拟通道的到达顺序确定目标虚拟通道。
10.可选的,所述总线为i2c总线。
11.可选的,每个虚拟通道包括至少一个具有若干数据位的数据帧;所述数据帧内包括若干有效数据位和/或空白数据位。
12.可选的,每接收一个数据帧,进行一次计数,根据计数值以及设定的虚拟通道发送顺序,识别虚拟通道。
13.可选的,每个虚拟通道还包括标识数据位,用于传输通道标识;根据通道标识数据位识别所述虚拟通道。
14.可选的,所述标识数据位位于虚拟通道的首个数据帧内,且占据所述首个数据帧的头部的至少一个数据位。
15.本技术还提供一种数据发送方法,包括:将待发送数据分配至若干不同的虚拟通道;通过同一数据总线依次发送各个虚拟通道内数据。
16.可选的,不同的虚拟通道分别对应不同的从设备,根据数据待发送至的从设备,将数据分配至相应的虚拟通道内。
17.可选的,根据设定的顺序发送各个虚拟通道内数据,所述发送顺序与从设备的接收顺序对应。
18.可选的,每个虚拟通道包括至少一个具有若干数据位的数据帧;所述数据帧内包括若干有效数据位和/或空白数据位。
19.可选的,每个虚拟通道还包括标识数据位,在所述标识数据位配置通道标识数据,所述通道标识数据用于区分不同的虚拟通道对应。
20.本技术还提供一种从设备,包括:处理器和存储器,所述存储器内存储有计算机程序;所述计算机程序被所述处理器执行时,能够实现如上述任一项所述的数据接收方法。
21.本技术还提供一种主设备,包括:处理器和存储器,所述存储器内存储有计算机程序;所述计算机程序被所述处理器执行时,能够实现如上述任一项所述的数据发送方法。
22.本技术还提供一种电子设备,包括:上述的主设备;至少两个如从设备;所述至少两个从设备通过同一总线连接至所述主设备。
23.可选的,所述总线为i2c总线。
24.可选的,还包括至少两个受控设备,与所述从设备一一对应连接;所述从设备还用于在接收到所述主设备发送的特定虚拟通道内的有效数据后,根据所述有效数据,向对应的受控设备发送驱动信号。
25.可选的,所述受控设备为马达,所述从设备为马达驱动芯片。
26.本技术的电子设备中,主设备和多个从设备之间,通过总线进行数据传输,在总线的数据传输协议基础上,进一步采用虚拟通道方式,使得主设备能够分别向从设备、从设备传输不同的有效数据,实现对从设备、从设备的协同控制。在多个从设备存在的情况下,每个从设备仅接收各自的目标虚拟通道内的数据,从而可以分别获取不同的有效数据。且由于各个虚拟通道包括若干数据帧,数据量较小,传输接收速率较块,各个从设备接收到各自目标虚拟通道内数据的间隔时间较短,可以时间同步接收数据,从而实现主设备对多个从设备的同步控制。
附图说明
27.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1a是本技术一实施例的电子设备的结构示意图;
29.图1b是本技术一实施例的电子设备的结构示意图;
30.图2是本技术一实施例的数据发送方法的流程示意图;
31.图3是本技术一实施例采用i2c总线传输数据的示意图;
32.图4是本技术一实施例采用i2c总线传输数据的示意图;
33.图5是本技术一实施例的数据接收方法的流程示意图;
34.图6是本技术一实施例的电子设备的结构示意图;
35.图7为本技术一实施例的电子设备的结构示意图。
具体实施方式
36.如背景技术中所述,如果要实现立体震感,需要这些触觉驱动芯片能够同步播放震动波形,去驱动马达,且各个触觉驱动芯片播放的内容是不同的,从而获得立体震感。而采用单根总线实现立体震感,需要向各个触觉驱动芯片发送不同的数据内容,且各个触觉驱动芯片接收到数据之间的延时不能过长。
37.基于上述分析,方面人提出一种新的数据发送方法和接收方法、主设备、从设备及电子设备,以解决上述问题。
38.下面结合附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而非全部实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。在不冲突的情况下,下述各个实施例及其技术特征可以相互组合。
39.请参考图1a,为本发明一实施例的电子设备的结构示意图。
40.所述电子设备包括主设备以及至少两个从设备。该实施例中,所述数据传输系统包括一个主设备110以及两个从设备,分别为第一从设备11和第二从设备11,通过同一总线10连接至所述主设备110。
41.所述主设备110具有总线10的控制权,可以通过总线10外发送控制指令、数据等信号。所述主设备110通常为cpu、mcu等处理器芯片。
42.所述总线10连接至所述主设备110,该实施例中,所述总线10为i2c总线,具有双向的同步串行总线,能够支持多设备的短距离通信,具有极低的电流消耗。i2c总线的物理层由两根线组成,分别为串行时钟线scl和串行数据线sda。请参考图1b,该实施例中,主设备110和从设备111、112的对应端口分别与scl和sda连接。i2c仅有两根线组成,能够节省设备的接口。
43.在其他实施例种,所述总线10还可以为其他支持一个主设备与多个从设备通信的总线类型。
44.所述主设备110和从设备111、112之间,通过总线10进行数据传输,在总线10的数据传输协议基础上,进一步采用虚拟通道方式,使得主设备110能够分别向从设备111、从设备112传输不同的有效数据,实现对从设备111、从设备112的协同控制。
45.请参考图2,本发明的实施例提供一种用于主设备的数据发送方法。
46.所述数据发送方法包括如下步骤:
47.步骤s201:将待发送数据分配至若干不同的虚拟通道。
48.所述待发送数据可以是主设备接收到其他设备或者在运行过程中产生的各种数据,需要发送给从设备,作为对从设备的控制指令,或者提供给从设备进行进一步的数据处理等。在连接有多个从设备的情况下,所述待发送数据内包含有多个目标从设备的待接收
数据。
49.由于需要对不同的目标从设备发送不同的数据,因此,首先对数据进行分配,将待发送的数据分配至不同的虚拟通道。
50.在该实施例中,具有从设备111和从设备112,相应的,将待发送数据分配至两个虚拟通道,分别为虚拟通道1和虚拟通道2,虚拟通道1对应于从设备111,虚拟通道2对应于从设备112。由于虚拟通道的数据容量有限,可以将待发送至从设备111的数据分配至多个虚拟通道1,将待发送至从设备112的数据分配至多个虚拟通道2。
51.每个虚拟通道包括至少一个具有若干数据位的数据帧;所述数据帧内包括若干有效数据位和/或空白数据位。以i2c总线为例,每个数据帧包含8个比特(bit)的数据位,用于传输数据data;还包括一个反馈数据位,分配给从设备的反馈信号ack。
52.若采用其他总线协议,每个数据帧内的数据位数量可能不同,例如每个数据帧可以有16比特或24比特的数据位。
53.每个虚拟通道可以包括1个或多个数据帧,每个数据帧内的数据位均可以为有效数据位;或者部分为有效数据为,部分为空白数据位。在一个实施例中,有9bit的数据分配至虚拟通道1,每个虚拟通道包括2个具有8bit数据位的数据帧,则可以将9bit中的其中8bit配置第一个数据帧内的8个数据位,而将上下1个bit的数据分配至第二数据帧内的1个数据位,所述第二数据帧中剩余7个数据位则为空白数据位,不传输有效数据,可以全部为0,或全部为1。在其他实施例中,也可以将9比特数据中的5比特数据分配置第一个数据帧,将剩余4个比特数据分配至第二个数据帧。
54.步骤202:通过同一数据总线依次发送各个虚拟通道内数据。
55.主设备按照总线协议依次发送各个虚拟通道内数据。每一次仅能发送一个虚拟通道的数据,且按照虚拟通道内数据帧顺序,逐帧发送。
56.在一个实施例中,主设备110根据设定的顺序发送各个虚拟通道内数据,所述发送顺序与从设备的接收顺序对应。在一个实施例中,具有两个虚拟通道,分别为虚拟通道1和虚拟通道2,按照虚拟通道1-虚拟通道2-虚拟通道1-虚拟通道2
……
的顺序依次发送数据。从设备按照对应的接收顺序接收各自对应的虚拟通道的数据。
57.请参考图3,为本发明一实施例中,采用i2c总线传输数据的示意图。
58.主设备将数据分配至虚拟通道1和虚拟通道2。
59.i2c总线以广播形式发送数据。其中s代表i2c总线开始,slave_addr代表i2c主机发送的从机地址,w是读写标志信号,此处代表i2c主设备110向i2c从设备111、112发送数据,ack是i2c总线接收到的从设备的应答信号,reg_addr是寄存器地址,data是i2c主设备110向i2c从设备发送的数据,p代表数据发送停止。当主设备110通过i2c总线发送完广播地址和寄存器地址后,开始发送数据。数据在i2c总线上,按虚拟通道1、虚拟通道2依次间隔顺序传输。每个虚拟通道包含一个数据帧。
60.发送虚拟通道1时,由从设备111接收虚拟通道1内数据,发送虚拟通道2时,由从设备112接收虚拟通道2内数据。该实施例中,通过排列顺序进行虚拟通道的区分,实现方式较为简单。由于各个虚拟通道内的数据量较小,使得从设备111接收到虚拟通道1内数据和从设备112接收到相邻的虚拟通道2内的数据之间的时间差较小,基本可以忽略,从而可以实现主设备110和从设备111、从设备112之间的同步数据传输。
61.虚拟通道数量不受限制,每个虚拟通道的数据是8bit的整数倍,各个从设备按虚拟通道的发送顺序依次接收各自的有效数据。请参考图4,为另一实施例中通过虚拟通道传输数据的示意图,每个虚拟通道包括2个数据帧,每个虚拟通道单次可以传输16bit数据。
62.在另一实施例中,每个虚拟通道还可以包括标识数据位,在所述标识数据位配置通道标识数据,所述通道标识数据用于区分不同的虚拟通道。所述标识数据位可以为每个虚拟通道的第一个数据帧的头部的1个或多个数据位,利用特定的标识数据实现对不同虚拟通道的标记。从设备在接收到虚拟通道数据时,通过头部的标识数据可以对虚拟通道进行识别,从而针对性的获取特定虚拟通道内的数据。
63.本发明的实施例,还提供一种主设备,所述主设备包括:处理器和存储器,所述存储器内存储有计算机程序;所述计算机程序被所述处理器执行时,能够实现如上述实施例中任一项所述的数据发送方法。
64.相应的,本发明的实施例还提供一种从设备的数据接收方法。
65.请参考图5,所述数据接收方法包括如下步骤:
66.步骤s501:从总线接收主设备发送的信号。
67.所述信号内的数据以多个虚拟通道形式依次发送,待发送至不同从设备的数据被分配至不同的虚拟通道内。
68.在一些实施例中,所述总线为i2c总线。在其他实施例中,所述总线还可以为其他类型的支持一个主设备与多个从设备之间的通信的总线。所述接收到的信号遵守总线的标准通信协议。
69.以i2c总线传输的信号为例,以数据帧为最小传输单元,每个数据帧包含8个比特(bit)的数据位,用于传输数据data;还包括一个反馈数据位,分配给从设备的反馈信号ack。
70.每个虚拟通道可以包括1个或多个数据帧,每个数据帧内的数据位均可以为有效数据位;或者部分为有效数据为,部分为空白数据位。
71.在一个实施例中,主设备根据设定的顺序发送各个虚拟通道内数据,所述发送顺序与从设备的接收顺序对应。通过排列顺序进行虚拟通道的区分,实现方式较为简单。
72.在其他实施例中,每个虚拟通道还可以包括标识数据位,在所述标识数据位配置通道标识数据,所述通道标识数据用于区分不同的虚拟通道。所述标识数据位可以为每个虚拟通道的第一个数据帧的头部的1个或多个数据位,利用特定的标识数据实现对不同虚拟通道的标记。
73.步骤s502:识别所述信号内的虚拟通道。
74.在一个实施例中,从设备接收数据过程中,每接收一个数据帧,进行一次计数,根据计数值以及设定的虚拟通道发送顺序,识别虚拟通道。各个虚拟通道按照设定的发送顺序排序,则以虚拟通道的到达顺序确定目标虚拟通道。
75.例如,每个虚拟通道包括2个数据帧,信号中虚拟通道的发送顺序位虚拟通道1-虚拟通道2-虚拟通道1-虚拟通道2
……
。每次接收一个数据帧,即一个传输单元,进行一次计数,当计数值为2时,表示虚拟通道1传输完毕,下一时刻接收到的为虚拟通道2的数据。
76.在其他实施例中,若每个虚拟通道包括标识数据位,则可以根据读取表示数据位的数据,识别所述虚拟通道。所述标识数据位通常可以设置于虚拟通道的首个数据帧内,且
占据所述首个数据帧的头部的至少一个数据位。
77.步骤s503:接收目标虚拟通道内的数据,作为有效数据。
78.从设备接收自己的目标虚拟通道内的数据,作为有效数据。后续可以根据所述有效数据进行进一步的操作,例如将有效数据进行处理后输出。
79.对于非目标虚拟通道内的数据,可以不对数据进行保存以及处理,作为无效数据直接忽略即可。
80.本发明的实施例还提供一种从设备,包括:处理器和存储器,所述存储器内存储有计算机程序;所述计算机程序被所述处理器执行时,能够实现上述实施例中任一项所述的数据接收方法。
81.上述从设备及其数据接收方法,能够通过总线接收特定目标虚拟通道内的有效数据。在多个从设备存在的情况下,每个从设备仅接收各自的目标虚拟通道内的数据,从而可以分别获取不同的有效数据。且由于各个虚拟通道包括若干数据帧,数据量较小,传输接收速率较块,各个从设备接收到各自目标虚拟通道内数据的间隔时间较短,可以时间同步接收数据,从而实现主设备对多个从设备的同步控制。
82.本发明还提供一种电子设备,所述电子设备还包括至少两个受控设备,受控设备与从设备一一对应连接。
83.请参考图6,为本发明一实施例的电子设备的结构示意图。
84.在图1所示电子设备的基础上,该实施中,还包括受控设备601和受控设备602,所述受控设备601连接至从设备111,所述受控设备602连接至从设备112。
85.所述从设备111还用于在接收到所述主设备110发送的虚拟通道1的有效数据后,根据所述有效数据,向对应的受控设备601发送驱动信号。所述从设备112还用于在接收到所述主设备110发送的虚拟通道2内的有效数据后,根据所述有效数据,向对应的受控设备602发送驱动信号。
86.基于图6,以下具体阐述电子设备内的主设备与从设备之间的数据通信过程。
87.主设备110将原始数据分配至虚拟通道,首先通过总线发送虚拟通道1数据,被对应的从设备111接收。从设备111接收到虚拟通道1的数据后,对数据进行处理,并发送控制信号至受控设备601。在一个实施例中,所述数据为波形数据,从设备111将波形数据进行一定处理后,发送至受控设备601,即马达,驱动马达进行振动。
88.与此同时,从设备112根据虚拟通道1的数据帧数,进行计数,当计数达到虚拟通道1内的帧数时,准备接收下一时刻到达的虚拟通道2数据;而从设备111则在虚拟通道1的帧数传输完毕后,不再接收下一时刻的数据。
89.主设备110在虚拟通道1的数据传输完毕后,开始传输虚拟通道2,从设备112接收虚拟通道2的数据,并对数据进行处理,并发送至受控设备602。
90.在虚拟通道2进行传输时,从设备111根据虚拟通道2的数据帧数,进行计数,当计数值达到虚拟通道2内的帧数时,准备接收下一时刻到达的虚拟通道1的数据。
91.根据上述流程,主设备110根据设定的发送顺序发送各个虚拟通道数据,各从设备按照顺序接收对应的虚拟通道内数据。由于各个虚拟通道内数据传输时间较短,从设备111和从设备112接收到各自数据的时间间隔较短,受控设备601和受控设备602先后接收到对应的从设备发送的控制信号,几乎保持同步受控。
92.可以通过同步时钟接口,来统一多个从设备的内部时钟频率,从而达到步调一致的目的,从而可以实现单次总线传输开始到结束之间,可以给多个从设备对应的有效数据。
93.在一些实施例中,所述电子设备可以为消费电子产品,例如手机、ipad、手持游戏机等。
94.请参考图7,为一电子设备的示意图。主设备cpu通过i2c总线连接至从设备:马达驱动芯片701和马达驱动芯片702,分别向马达驱动芯片701发送虚拟通道1数据,向马达驱动芯片702发送虚拟通道2数据。马达驱动芯片701根据虚拟通道1数据驱动马达711震动,马达驱动芯片702根据虚拟通道2数据驱动马达712震动,从而实现立体震感。
95.从设备,例如马达驱动芯片701、702均具有一个同步时钟输入口,作为芯片内部pll(锁相环)模块的参考时钟,pll模块可以使芯片内部时钟与外部时钟锁定,从而不同芯片间的工作时钟都是一样的。即便是同一批马达驱动芯片,因工艺制造问题,每个芯片的内部工作时钟也会有差异。工作时钟的差异,会导致各芯片输出的波形数据不同步。因此需要有一个同步时钟信号,来使多马达协同播放场景中的马达驱动芯片内部时钟保持一致。
96.以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献