串行外设接口复用方法及通信系统与流程

文档序号:18690132发布日期:2019-09-17 20:30阅读:230来源:国知局
串行外设接口复用方法及通信系统与流程

本发明涉及数据传输技术领域,特别是涉及一种串行外设接口复用方法及通信系统。



背景技术:

SPI(Serial Peripheral Interface,串行外设接口)是一种同步串行外设接口,可以使主机与各种外围设备通过串行方式进行通信以交换信息。该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS。SPI接口以其优越的性能,极少的信号线(最多4根线,最少2根线)被广泛应用在各种场合。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号,传统的方法中,通过软件控制每个从器件的使能信号,很容易实现SPI的复用。但是,软件控制从机的使能信号实现SPI复用的方式在一些场合无法满足需求,比如要求对从机使能信号的控制速度小于1uS的应用中,通过软件控制便无法实现。



技术实现要素:

基于此,有必要针对某些应用场合无法通过软件控制片选,实现SPI复用的问题,提供一种串行外设接口复用方法及通信系统。

一种串行外设接口复用方法,适用于具有串行外设接口的主机通过串行外设接口连接两个以上的外设,以在主机和外设之间传输数据,包括:

将主机的定时器设置为脉冲宽度调制输出模式,并设置脉冲宽度调制信号的周期;

根据连接的外设数量,确定输出的脉冲宽度调制信号的数量、每个脉冲宽度调制信号的占空比以及每两个相邻的脉冲宽度调制信号的相位差;

设置每个脉冲宽度调制信号的初始电平及初始相位,启动定时器的脉冲宽度调制输出模式;

将每个脉冲宽度调制信号分别通过片选信号线输出至对应外设的使能引脚;

根据所述每个脉冲宽度调制信号的初始电平及初始相位,在每个脉冲宽度调制信号的低电平时间内,所述主机和所述对应外设进行数据传输。

在其中一个实施例中,所述脉冲宽度调制信号的数量等于所述连接的外设数量。

在其中一个实施例中,每个脉冲宽度调制信号的占空比计算公式为

其中,η表示每个脉冲宽度调制信号的占空比,n表示连接的外设数量。

在其中一个实施例中,每两个相邻的脉冲宽度调制信号的相位差计算公式为

其中,Δφ表示每两个相邻的脉冲宽度调制信号的相位差,n表示连接的外设数量。

在其中一个实施例中,所述根据所述每个脉冲宽度调制信号的初始电平及初始相位,在每个脉冲宽度调制信号的低电平时间内,所述主机和所述对应外设进行数据传输,包括:

在所述每个脉冲宽度调制信号的低电平时间内,所述主机的片选信号线输出低电平至所述对应外设的使能引脚,选通所述对应外设;

在所述对应外设选通时间内,所述主机和所述对应外设进行数据传输。

一种通信系统,包括主机和通过串行外设接口与所述主机连接的两个以上的外设,所述主机包括定时器,

所述定时器被配置为脉冲宽度调制输出模式,所述脉冲宽度调制输出模式下输出信号的数量、每个脉冲宽度调制信号的占空比以及每两个相邻的脉冲宽度调制信号的相位差根据连接的外设数量确定;

所述主机被配置为将每个脉冲宽度调制信号分别通过片选信号线输出至对应外设的使能引脚并根据所述每个脉冲宽度调制信号的初始电平及初始相位,在每个脉冲宽度调制信号的低电平时间内,与所述对应外设进行数据传输。

在其中一个实施例中,所述输出的脉冲宽度调制信号的数量等于所述连接的外设数量。

在其中一个实施例中,每个脉冲宽度调制信号的占空比的计算公式为

其中,η表示每个脉冲宽度调制信号的占空比,n表示连接的外设数量。

在其中一个实施例中,每两个相邻的脉冲宽度调制信号的相位差计算公式为

其中,Δφ表示每两个相邻的脉冲宽度调制信号的相位差,n表示连接的外设数量。

上述串行外设接口复用方法及通信系统,通过MCU定时器的PWM(Pulse Width Modulation,脉冲宽度调制)输出模式,在一个PWM周期内分别输出通过所连接外设数量确定数量的预设相位差和占空比的波形,通过片选信号线输出至对应外设的使能引脚,选通对应的外设,在每个外设选通时间内,所述主机和所述对应外设进行数据传输。在设置了定时器的PWM输出模式、PWM模式下波形的相位差和占空比等参数后,剩余步骤都是硬件自动完成,无需MCU软件参与。通过硬件控制片选信号的SPI复用技术,实现了高速、多SPI的应用,为某些应用场合无法通过软件控制片选,实现SPI的复用提供了解决方法。

附图说明

图1为一个实施例中串行外设接口的复用方法流程图;

图2为另一个实施例中串行外设接口复用方法流程图;

图3为一个实施例中串行外设接口复用方法的波形原理图;

图4为另一个实施例中串行外设接口复用方法的波形原理图;

图5为再一个实施例中串行外设接口复用方法的波形原理图;

图6为一个实施例中通信系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,在一个实施例中,提供了一种串行外设接口的复用方法,该方法包括:

步骤S100:将主机的定时器设置为脉冲宽度调制输出模式,并设置脉冲宽度调制信号的周期。

其中,脉冲宽度调制(Pulse Width Modulation,PWM)是一种对模拟信号电平进行数字编码的方法。把每一个脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。

步骤S110:根据连接的外设数量,确定输出的脉冲宽度调制信号的数量、每个脉冲宽度调制信号的占空比以及每两个相邻的脉冲宽度调制信号的相位差。

其中,根据连接的外设数量,确定相应的脉冲宽度调制模式的参数,包括脉冲宽度调制信号的输出数量、每个脉冲宽度调制信号的占空比以及每两个相邻的脉冲宽度调制信号的相位差。上述参数的设定,使得脉冲宽度调制信号与连接的外设相对应,不同的参数设定,可以实现不同的复用效果。

步骤S120:设置每个脉冲宽度调制信号的初始电平及初始相位,启动定时器的脉冲宽度调制输出模式。

其中,每个脉冲宽度调制信号的初始电平及初始相位决定了与其对应的外设数据传输的先后顺序,在上述参数均设置完成后,启动定时器的脉冲宽度调制输出模式,后续步骤即可通过硬件自动完成,无需微控制单元软件的参与。

步骤S130:将每个脉冲宽度调制信号分别通过片选信号线输出至对应外设的使能引脚。

其中,SPI(Serial Peripheral Interface,串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的外设选择线CS。通过外设选择线CS,将每个脉冲宽度调制信号分别输出至对应外设的使能引脚。

步骤S140:根据所述每个脉冲宽度调制信号的初始电平及初始相位,在每个脉冲宽度调制信号的低电平时间内,所述主机和所述对应外设进行数据传输。

其中,在每个外设的使能接口都连接至主机对应的外设选择线CS后,主机的外设选择线CS输出脉冲宽度调制波形,所述波形的相应参数均已预先设置,根据脉冲宽度调制波形,在每个波形的低电平时间内,主机与所述对应外设进行数据交换,实现数据传输。

如图2所示,在一个实施例中,步骤S140包括:

步骤S142:在所述每个脉冲宽度调制信号的低电平时间内,所述主机的片选信号线输出低电平至所述对应外设的使能引脚,选通所述对应外设;

步骤S144:在所述对应外设选通时间内,所述主机和所述对应外设进行数据传输。

其中,外设的使能信号为低电平有效,在每个脉冲宽度调制信号的低电平时间内,与该脉冲调制信号对应的外设被选通,此时,主机与该外设进行数据传输,并持续到脉冲宽度信号变为高电平为止。在该脉冲宽度调制信号变为高电平后,主机选择与另一个脉冲宽度调制信号为低电平的外设进行数据传输,从而实现一个主机与多个外设之间的数据交换,亦即SPI的复用。

如图3所示,为一个实施例中波形原理图。在本实施例中,定时器的脉冲宽度调制输出模式输出的脉冲宽度调制信号的数量等于连接的外设数量,此时,每个脉冲宽度调制信号的占空比可由下述公式计算

其中,η表示每个脉冲宽度调制信号的占空比,n表示连接的外设数量;每两个脉冲宽度调制信号的相位差可由下述公式计算

其中,Δφ表示每两个相邻的脉冲宽度调制信号的相位差,n表示连接的外设数量。由上述计算公式可知:当脉冲宽度调制信号的数量等于所述连接的外设数量时,在一个PWM周期内,将主机的数据分为n等分(n即表示外设数量且大于等于2),在每个PWM信号的低电平时间内,主机与PWM信号对应的外设进行数据交换,从而实现将n份数据传输至n个外设,实现SPI的复用。

如图4所示,为一个实施例中波形原理图。在本实施例中,定时器的脉冲宽度调制输出模式输出的脉冲宽度调制信号的数量等于连接的外设数量,但占空比小于此时,假设每个脉冲宽度调制信号的占空比可由下述公式计算

其中,η表示每个脉冲宽度调制信号的占空比,n表示连接的外设数量;每两个脉冲宽度调制信号的相位差可由下述公式计算

其中,Δφ表示每两个相邻的脉冲宽度调制信号的相位差,n表示连接的外设数量。由上述计算公式可知:当脉冲宽度调制信号的数量等于所述连接的外设数量时,保持每两个脉冲宽度调制信号的相位差不变,而占空比变为此时,数据的传输变为非连续的,即每两个相邻的外设之间出现个占空比时间的数据传输中断,若此中断时间内的数据为无效数据,则可通过数据传输中断实现数据的筛选,将有效数据进行传输,而无效数据通过传输中断,不进行传输,从而实现数据传输质量的最大化,保证外设接收到的数据均为有效数据。

如图5所示,为一个实施例中波形原理图。在本实施例中,定时器的脉冲宽度调制输出模式输出的脉冲宽度调制信号的数量大于连接的外设数量,此时,假设连接外设数量为n,输出的脉冲宽度调制信号的数量为2n,则每个脉冲宽度调制信号的占空比可由下述公式计算

其中,η表示每个脉冲宽度调制信号的占空比,n表示连接的外设数量;每两个脉冲宽度调制信号的相位差可由下述公式计算

其中,Δφ表示每两个相邻的脉冲宽度调制信号的相位差,n表示连接的外设数量。由上述计算公式可知:由于每个脉冲宽度调制信号的占空比变为每两个脉冲宽度调制信号的相位差变为此时,一个PWM周期的前半部分进行数据传输,后半部分数据传输中断,通过该数据传输方式,可在两个周期数据传输中间形成二分之一个PWM周期的传输中断,从而实现了两个周期中间数据传输的延时,同样的,也可实现数据的筛选。

如图6所示,在一个实施例中,提供了一种通信系统,该通信系统包括:主机10和通过串行外设接口与主机10连接的外设20、30和40(所述外设的数量为两个以上,本实施例中以三个外设为例),主机10包括定时器100,

定时器100被配置为脉冲宽度调制输出模式,所述脉冲宽度调制输出模式下输出信号的数量、每个脉冲宽度调制信号的占空比以及每两个相邻的脉冲宽度调制信号的相位差根据连接的外设数量确定;

主机10被配置为将每个脉冲宽度调制信号分别通过片选信号线输出至对应外设的使能引脚并根据所述每个脉冲宽度调制信号的初始电平及初始相位,在每个脉冲宽度调制信号的低电平时间内,与所述对应外设进行数据传输。

在一个实施例中,定时器的脉冲宽度调制输出模式输出的脉冲宽度调制信号的数量等于连接的外设数量,此时,通过公式和计算得到每个脉冲宽度调制信号的占空比η为66.67%;每两个脉冲宽度调制信号的相位差Δφ为120°。因此,在一个PWM周期内,将主机的数据分为3等分,假设对应于IO1的PWM输出信号的初始电平为低电平,初始相位为0,数据传输波形原理图如图3所示。在PWM周期的前三分之一周期,PWM信号选通外设20,主机10与外设20进行数据传输;在PWM周期的中间三分之一周期,PWM信号选通外设30,主机10与外设30进行数据传输;在PWM周期的后三分之一周期,PWM信号选通外设40,主机10与外设40进行数据传输。在一个PWM周期后,该周期内主机10传输的数据便分别分配至三个外设20、30和40中,从而通过SPI接口实现了数据传输的复用。相应的,可调节占空比达到数据筛选,传输延时等功能,具体方法已在串行外设接口复用方法的实施例中进行了阐述,此处不再赘述。

上述串行外设接口复用方法及通信系统,通过MCU定时器的PWM输出模式,在一个PWM周期内分别输出与连接外设数量相对应的预设相位差和占空比的波形,通过片选信号线输出至对应外设的使能引脚,选通对应的外设,在每个外设选通时间内,所述主机和所述对应外设进行数据传输。在设置了定时器的PWM输出模式、PWM模式下波形的相位差和占空比等参数后,剩余步骤都是硬件自动完成,无需MCU软件参与。通过硬件控制片选信号的SPI复用技术,实现了高速、多SPI的应用,为某些应用场合无法通过软件控制片选,实现SPI的复用提供了解决方法。进一步地,通过设置不同的占空比,可以实现数据筛选,数据传输延时等功能,使得数据的传输更加准确。

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

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1