伺服驱动器的串行通讯方法及伺服驱动器与流程

文档序号:17336080发布日期:2019-04-05 22:30阅读:1598来源:国知局
伺服驱动器的串行通讯方法及伺服驱动器与流程

本发明属于工业控制技术领域,具体涉及一种伺服驱动器的串行通讯方法及伺服驱动器。



背景技术:

伺服驱动器又称为伺服控制器,是用来控制伺服电机的一种控制器,其作用类似于变频器作用于普通交流马达,属于伺服系统的一部分,主要应用于高精度的定位系统。伺服驱动器一般是通过位置、速度和力矩三种方式对伺服电机进行控制,实现高精度的传动系统定位,目前是传动技术的高端产品。伺服驱动器已经成为了现代运动控制的重要组成部分,被广泛应用于工业机器人及数控加工中心等自动化设备中。

目前主流的伺服驱动器一般都有多个核心,其中控制核心通常采用数字信号处理器(dsp),可以实现比较复杂的控制算法,实现数字化、网络化和智能化处理,其他的可编程器件作为辅助功能核心,控制核心与其他辅助功能核心之间需要通过通讯来传输数据,目前常用的通信方式为并行通讯,由于其通过同一时间内多个数据位并行传输的方式来传输数据,所以可以通过增加同一时间传输数据的的位数来提高传输传输带宽,但在伺服驱动器的设计中,当需要传输的数据位数不断增多时,就导致需要占用的芯片管脚不断增多,不仅pcb布局设计的复杂度增加而且也会导致成本的提高。



技术实现要素:

本发明的目的之一在于克服以上缺点,提供一种可节约主从芯片的管脚占用,同时为pcb的布局节省空间的伺服驱动器的串行通讯方法。

为了解决上述技术问题,本发明提供了一种伺服驱动器的串行通讯方法,所述伺服驱动器包含主设备和至少一个从设备,所述串行通讯方法包括以下步骤:

步骤1、主设备与各从设备分别从各自的主发送缓冲模块或从发送缓冲模块中读取待发送数据,对应保存至各自的主移位寄存器或从移位寄存器;

步骤2、所述主设备通过sck针脚向各从设备发送时钟脉冲信号,同时将主移位寄存器中的数据通过mosi针脚发送给各从设备的从移位寄存器;

步骤3、各从设备接收到时钟脉冲信号后,将各自的从移位寄存器中的数据通过miso针脚同步发送给所述主设备的主移位寄存器;

步骤4、所述主设备和各从设备分别将各自主移位寄存器或从移位寄存器中的数据对应保存至各自的主接收缓冲模块或从接收缓冲模块;

步骤5、所述主设备和各从设备分别判断各自的主接收缓冲模块或从接收缓冲模块是否已满,若是,则设置标志位等待对应的主处理器或从处理器读取数据后继续传输数据;否则,继续传输数据;

重复上述步骤1至步骤5,实现所述主设备与各从设备之间数据的串行传输。

本发明的技术方案中,主设备与从设备之间采用串行方式进行数据传输,因此只需要mosi针脚和miso两个针脚就可同时完成数据输入和数据输出,另外,通过sck针脚,主设备可以通过控制时钟脉冲对传输过程进行控制,使用场景更加灵活。

进一步地,步骤2所述“所述主设备通过sck针脚向各从设备发送时钟脉冲信号,同时将主移位寄存器中的数据通过mosi针脚发送给各从设备的从移位寄存器”,具体为:

所述主设备设置时钟脉冲阈值;

所述主设备发送单个时钟脉冲信号的同时将主移位寄存器中的一位数据发送给各从设备的从移位寄存器;

所述主设备重复发送时钟脉冲信号和数据,直至发送的时钟脉冲值达到所述时钟脉冲阈值。

进一步地,步骤3所述“所述从设备接收到时钟脉冲信号后,将各自的从移位寄存器中的数据通过miso针脚同步发送给所述主设备的主移位寄存器”,具体为:

所述从设备每接收到一个时钟脉冲信号就将各自的从移位寄存器中的一位数据发送给所述主设备的主移位寄存器。

进一步地,所述主设备为dsp,所述从设备为fpga。

进一步地,所述主设备的主控制寄存器通过cs针脚对各从设备进行片选。

相应地,本发明还提供了一种伺服驱动器,包含主设备和至少一个从设备,

所述主设备包括主移位寄存器、主接收缓冲模块、主发送缓冲模块、主处理器、及主控制寄存器:每个从设备包括从移位寄存器、从接收缓冲模块、从发送缓冲模块、从处理器、及从控制寄存器;

所述主设备的主移位寄存器,通过mosi针脚与各从设备的从移位寄存器进行连接,用于向各从设备的从移位寄存器发送数据,同时通过miso针脚与各从设备的从移位寄存器进行连接,用于接收各从设备的从移位寄存器发送的数据;

所述主设备的主接收缓冲模块,通过数据总线方式与主设备的主移位寄存器进行连接,同时通过数据总线方式与主设备的主处理器进行连接,用于保存接收的数据;

所述主设备的主发送缓冲模块,通过数据总线方式与主设备的主移位寄存器进行连接,同时通过数据总线方式与主设备的主处理器进行连接,用于保存待发送的数据;

所述主设备的主控制寄存器,通过cs针脚与各从设备的从控制寄存器进行连接,用于向各从设备发送片选信号;同时通过sck针脚与各从设备的从控制寄存器进行连接,用于向各从设备发送时钟脉冲信号,控制各从设备进行工作;

所述主设备的主处理器,通过总线方式与主设备的主接收缓冲模块进行连接,并通过总线方式与主设备的主发送缓冲模块进行连接,用于将待发送数据写入主设备的主发送缓冲模块,并从主设备的主接收缓冲模块读取数据;

各从设备的从移位寄存器,通过mosi针脚与主设备的主移位寄存器进行连接,用于接收主设备的主移位寄存器发送的数据,同时通过miso针脚与主设备的主移位寄存器进行连接,用于向主设备的主移位寄存器发送数据;

各从设备的从接收缓冲模块,通过数据总线方式与本设备的从移位寄存器进行连接,同时通过数据总线方式与本设备的从处理器进行连接,用于保存接收的数据;

各从设备的从发送缓冲模块,通过数据总线方式与本设备的从移位寄存器进行连接,同时通过数据总线方式与本设备的从处理器进行连接,用于保存待发送的数据;

各从设备的从控制寄存器,通过cs针脚与主设备的主控制寄存器进行连接,用于接收主设备发送的片选信号;同时通过sck针脚与主设备的主控制寄存器进行连接,用于接收主设备发送时钟脉冲信号,并根据脉冲信号进行工作;

各从设备的从处理器,通过总线方式与本设备的从接收缓冲模块进行连接,并通过总线方式与本设备的从发送缓冲模块进行连接,用于将待发送数据写入本设备的从发送缓冲模块,并从本设备的从接收缓冲模块读取数据。

进一步地,所述主设备为dsp,所述从设备为fpga。

综上所述,本发明技术方案的有益效果有:

主设备与从设备之间采用串行方式进行数据传输,因此只需要mosi针脚和miso两个针脚就可同时完成数据输入和数据输出,另外,通过sck针脚,主设备可以通过控制时钟脉冲对传输过程进行控制,使用场景更加灵活。另外,只需要mosi、miso、sck、cs四个针脚就可实现数据的同步输入和输出,不仅可节约主设备与从设备之间的管脚数量,同时可为pcb的布局节省空间,降低硬件成本。

附图说明

图1是本发明的一种伺服驱动器的串行通讯方法步骤流程图;

图2是本发明的一种伺服驱动器结构图。

具体实施方式

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

如图1,是本发明的一种伺服驱动器的串行通讯方法步骤流程图,包括以下步骤:

步骤1、主设备与各从设备分别从各自的主发送缓冲模块或从发送缓冲模块中读取待发送数据,对应保存至各自的主移位寄存器或从移位寄存器;

在伺服驱动器中,通常包含多个处理核心,包括控制核心和辅助功能核心,其中控制核心也可称为主设备,辅助功能核心也可称为从设备,主设备通常采用数字信号处理器(dsp),可以实现比较复杂的控制算法,实现数字化、网络化和智能化处理,其他的可编程器件作为从设备,例如在一具体的实施中,主设备可以为dsp数字信号信号处理器,从设备为fpga可编程器件,从设备可以有一个或者多个。

在本发明的技术方案中,主设备与从设备之间通过mosi、miso、sck、cs四个针脚进行连接,其中,mosi(masteroutslavein)针脚负责连接主设备的数据输出接口与从设备的数据输入接口,miso(masterinslaveout)针脚负责连接主设备的数据输入接口与从设备的数据输出接口,cs(chipselect)针脚,用于在有多个从设备的情况下,主设备控制片选从设备使用,只有被选中的从设备才能够被主设备所访问;sck(serialclock),主要的作用是主设备往从设备传输时钟脉冲信号,控制数据交换的时机以及速率。

在进行数据的传输之前,主设备需要从主发送缓冲模块中读取待发送数据,并保存到主移位寄存器中,从设备也相应地将从发送缓冲模块中的待发送数据读取并保存到从移位寄存器中,通常将待发送数据写入发送缓冲模块这个步骤是由主设备的主处理器或从设备的从处理器来完成。这里所述的主移位寄存器和从移位寄存器,主要用于主设备与从设备之间进行数据交换,常见移位寄存器的大小为8位(bit)或16位(bit)。

步骤2、所述主设备通过sck针脚向各从设备发送时钟脉冲信号,同时将主移位寄存器中的数据通过mosi针脚发送给各从设备的从移位寄存器;

首先,主设备在发送数据给从设备之前,需要设置时钟脉冲阈值;这个阈值又被称为主设备与从设备之间的通道带宽,其作用是指定主设备与从设备之间每次数据传输的单位,例如,若主设备与从设备之间每次传输的数据为1个字节(byte),则对应的时钟脉冲阈值为8,即主设备每次发送数据需要发送8个时钟脉冲信号给从设备。

其次,所述主设备发送单个时钟脉冲信号的同时将所述主移位寄存器中的一位数据发送给所述从设备的从移位寄存器;由于在串行通讯协议中数据是一位一位的传输的,因此sck每发送一个时钟脉冲,就通过mosi针脚将一位的数据发送给从设备。根据设置的参数不同,传输的数据在时钟脉冲的上升沿或下降沿时进行发送,在紧接着的下降沿或上升沿被从设备读取,完成一位数据的传输。在具体的实现中,主移位寄存器每次都是发送最左一位的数据,然后再将所有未发送数据进行向左移位,接收数据的时候,都是将接收的数据存入主移位寄存器的最右的位置上。例如,在一个时钟脉冲周期中,主设备在时钟脉冲的上升沿发送一位数据给从设备,同时通过左移位操作将发送的数据移出主移位寄存器,在时钟脉冲的下降沿接收从设备发送的数据并存入主移位寄存器的最右一位的位置上。

所述主设备按照上述方式重复发送时钟脉冲信号和数据,直至发送的时钟脉冲值达到所述时钟脉冲阈值,即完成一轮的数据发送。

步骤3、各从设备接收到时钟脉冲信号后,将各自的从移位寄存器中的数据通过miso针脚同步发送给所述主设备的主移位寄存器;

由于在串行通讯协议中,sck信号线只能由主设备进行控制,从设备不能控制信号线,只能进行时钟脉冲信号的接收。因此从设备的发送数据或接收数据的操作,都是由主设备的脉冲信号进行控制,当主设备没有发送时钟脉冲信号时,从设备不会进行数据接收或传送数据的动作。当从设备每接收到主设备所发送的一个时钟脉冲信号之后,会将从移位寄存器中的最左一位数据通过miso针脚同步发送给主设备的主移位寄存器,同时将从移位寄存器中所有未发送数据进行向左移位,然后将从主移位寄存器接收的数据存入从移位寄存器的最右一位的位置上。这样,主设备和从设备在同一个时钟脉冲内分别进行了数据的发送和接收,实现了相互之间最左一位数据内容的交换。

步骤4、所述主设备和各从设备分别将各自主移位寄存器或从移位寄存器中的数据对应保存至各自的主接收缓冲模块或从接收缓冲模块;由于移位寄存器的容量大小有限,当主设备与从设备之间进行了一次的数据交换之后,主设备需要先将主移位寄存器中的数据保存到主接收缓冲模块,从设备也将从移位寄存器中的数据保存到从接收缓冲模块,再进行下一轮的数据传输,若不进行数据缓冲,则会导致主移位寄存器或从移位寄存器中的数据被下一次传输数据覆盖,造成数据的丢失。

步骤5、所述主设备和各从设备分别判断各自的主接收缓冲模块或从接收缓冲模块是否已满,若是,则设置标志位等待对应的主处理器或从处理器读取数据后继续传输数据;否则,继续传输数据;

当主设备的主接收缓冲模块或从设备的从接收缓冲模块被数据填满的时候,为了防止数据的丢失,必须等待这些数据被处理器读取并处理之后,才能写入新的数据。通常的做法是,主设备或从设备会进行相应的标志位设置,所述的标志位可以是缓冲模块满标志位,使得寄存器在缓冲模块满的时候不再写入数据,或者是中断标志位,使得处理器中断当前的其他操作优先进行缓冲模块的数据读取。主设备的主处理器负责读取主接收缓冲模块中的数据,从设备的从处理器负责读取从接收缓冲模块中的数据,当缓冲模块的数据被处理器读取之后,则缓冲模块满标志位或中断标志位会被清除,移位寄存器就可以继续向接收缓冲模块写入数据。

在主设备的时钟脉冲信号的控制下,通过重复上述步骤1至步骤5,主从设备不断地双向同步发送和接收数据,就可实现所述主设备与所述从设备之间数据的串行传输。本发明的技术方案中,主设备与从设备之间采用串行方式进行数据传输,因此只需要mosi针脚和miso两个针脚就可同时完成数据输入和数据输出,另外,通过sck针脚,主设备可以通过控制时钟脉冲对传输过程进行控制,使用场景更加灵活。

在另一具体的实施例中,从设备可以为多个,主设备的mosi针脚分别与每个从设备的mosi针脚进行连接,向所有从设备同步发送数据;同时主设备的miso针脚分别与每个从设备的miso针脚进行连接,用来接收每个从设备发送的数据;主设备的cs针脚与每个从设备的cs针脚进行连接,用来对从设备进行片选控制,只有被选中的从设备才能够被主设备所访问;另外,主设备还通过sck针脚与每个从设备的sck针脚进行连接,向从设备传输时钟脉冲信号,控制数据交换的时机以及速率。

例如,在一具体的应用场景中,伺服驱动器中的主设备为dsp,从设备为fpga,dsp与fpga之间通过mosi接口、miso接口、sck接口和cs接口进行连接,dsp和fpga的移位寄存器大小为1个字节,dsp和fpga约定在时钟脉冲的上升沿进行数据发送,在时钟脉冲的下降沿进行数据接收,则dsp与fpga之间进行数据的串行通讯传输方式为:

步骤1、dsp从主发送缓冲模块中读取1个字节的待发送数据,保存至主移位寄存器中;同时fpga也从从发送缓冲模块中读取1个字节的待发送数据,保存至从移位寄存器中;

步骤2、dsp设置发送时钟脉冲阈值为8,即发送8个时钟脉冲才能将主移位寄存器中的数据全部发送完成。dsp通过sck针脚向从设备发送一个时钟脉冲信号,同时在时钟脉冲的上升沿将主移位寄存器中的左边第一位数据通过mosi针脚发送给fpga的从移位寄存器,再通过左移位操作将发送的数据移出主移位寄存器,在脉冲的下降沿接收fpga发送的数据,并存入主移位寄存器的最右位置上。dsp发送8次时钟脉冲信号,将1个字节的数据全部发送给fpga。

步骤3、fpga每接收到一个时钟脉冲信号后,同样在时钟脉冲的上升沿将从移位寄存器中的左边第一位数据通过miso针脚同步发送给dsp的主移位寄存器,同时通过左移位操作将发送的数据移出从移位寄存器,在脉冲的下降沿接收dsp发送的数据,并存入从移位寄存器的最右位置上。在接收到8个时钟脉冲信号后,dsp与fpga相互发送了1个字节的数据。

步骤4、dsp将主移位寄存器中1个字节的数据保存至主接收缓冲模块;fpga也将从移位寄存器中1个字节的数据保存至从接收缓冲模块。

步骤5、dsp判断主接收缓冲模块是否已满,若是,则设置缓冲模块满标志位或中断标志位,等待主处理器读取数据后继续传输数据;否则,则可以继续传输数据;同理,fpga判断从接收缓冲模块是否已满,若是,则设置缓冲模块满标志位或中断标志位,等待从处理器读取数据后继续传输数据;若未满,则可以继续传输数据。

重复上述步骤1至步骤5,即可实现dsp与fpga之间数据的串行传输。

如图2,是本发明的一种伺服驱动器结构图,其中包含主设备和从设备,所述主设备通过mosi、miso、sck、cs四个针脚与所述从设备进行连接,其中,主设备内部设置有以下部件:主移位寄存器,通过mosi针脚与各从设备的从移位寄存器进行连接,用于向各从设备的从移位寄存器发送数据,同时通过miso针脚与各从设备的从移位寄存器进行连接,用于接收各从设备的从移位寄存器发送的数据;主接收缓冲模块,通过数据总线方式与主设备的主移位寄存器进行连接,同时通过数据总线方式与主设备的主处理器进行连接,用于保存接收的数据;主发送缓冲模块,通过数据总线方式与主设备的主移位寄存器进行连接,同时通过数据总线方式与主设备的主处理器进行连接,用于保存待发送的数据;主控制寄存器,通过cs针脚与各从设备的从控制寄存器进行连接,用于向各从设备发送片选信号,只有片选中的从设备才能接收主设备的数据,同时还通过sck针脚向从设备发送时钟脉冲信号,控制从设备进行工作;主处理器,通过总线方式与主设备的主接收缓冲模块进行连接,并通过总线方式与主设备的主发送缓冲模块进行连接,用于将待发送数据写入主设备的主发送缓冲模块,并从主设备的主接收缓冲模块读取数据。

同样的,与主设备相类似,从设备也包括以下部件:从移位寄存器,通过mosi针脚与主设备的主移位寄存器进行连接,用于接收主设备的主移位寄存器发送的数据,同时通过miso针脚与主设备的主移位寄存器进行连接,用于向主设备的主移位寄存器发送数据;从接收缓冲模块,通过数据总线方式与本设备的从移位寄存器进行连接,同时通过数据总线方式与本设备的从处理器进行连接,用于保存接收的数据;从发送缓冲模块,通过数据总线方式与本设备的从移位寄存器进行连接,同时通过数据总线方式与本设备的从处理器进行连接,用于保存待发送的数据;从控制寄存器,用于通过cs针脚接收所述主设备发送的片选信号,并通过sck针脚接收所述主设备发送时钟脉冲信号,根据脉冲信号进行工作;从处理器,通过总线方式与本设备的从接收缓冲模块进行连接,并通过总线方式与本设备的从发送缓冲模块进行连接,用于将待发送数据写入本设备的从发送缓冲模块,并从本设备的从接收缓冲模块读取数据。

在本发明所述的伺服驱动器内部,主设备与从设备之间采用串行通讯方式进行数据传输,具体的步骤为:

主设备的主处理器向主发送缓冲模块写入待发送数据;从设备的从处理器向从发送缓冲模块写入待发送数据;

主设备从主发送缓冲模块中读取待发送数据,保存至主移位寄存器中;从设备也将从发送缓冲模块中的待发送数据读取并保存至从移位寄存器中;

主设备设置发送时钟脉冲阈值并通过sck针脚向从设备发送一个时钟脉冲信号,同时在一个时钟脉冲周期内将主移位寄存器中的左边第一位数据通过mosi针脚发送给从设备的从移位寄存器,再通过左移位操作将发送的数据移出主移位寄存器,同时接收从设备发送的数据,并存入主移位寄存器的最右位置上。主设备重复发送时钟脉冲信号,直至将主移位寄存器中的数据全部发送给从设备。

从设备每接收到一个时钟脉冲信号后,同样将从移位寄存器中的左边第一位数据通过miso针脚同步发送给主设备的主移位寄存器,同时通过左移位操作将发送的数据移出从移位寄存器,再接收主设备发送的数据,并存入从移位寄存器的最右位置上。

主设备将主移位寄存器中的数据保存至主接收缓冲模块;从设备将从移位寄存器中的数据保存至从接收缓冲模块。

主设备判断主接收缓冲模块是否已满,若是,则设置缓冲模块满标志位或中断标志位,等待主处理器读取数据后继续传输数据;否则,继续传输数据;同理,从设备也判断从接收缓冲模块是否已满,若是,则设置缓冲模块满标志位或中断标志位,等待从处理器读取数据后继续传输数据;否则,继续传输数据。

重复上述步骤,由主设备不断重复发送时钟脉冲信号,即可实现主从设备之间数据的串行传输。从上述描述可知,采用串行通讯方式,只需要mosi、miso、sck、cs四个针脚就可实现数据的同步输入和输出,不但节约了主设备与从设备之间的管脚占用,同时可为pcb的布局节省空间,降低硬件成本。

在一优选的实施例中,本发明的伺服驱动器中,包含的主设备为dsp数字信号处理器,除了对数字信号进行处理运算之外,还可以实现比较复杂的控制算法,实现数字化、网络化和智能化处理,包含的从设备为fpga可编程器件,用来实现伺服驱动器的辅助功能,在复杂的应用场景中,fpga可编程器件还可以有多个。

在另一具体的实施例中,本发明所述的伺服驱动器包含多个的从设备。主设备的mosi针脚分别与每个从设备的mosi针脚进行连接,向所有从设备同步发送数据;同时主设备的miso针脚分别与每个从设备的miso针脚进行连接,用来接收每个从设备发送的数据;主设备的cs针脚与每个从设备的cs针脚进行连接,用来对从设备进行片选控制,只有被选中的从设备才能够被主设备所访问;另外,主设备还通过sck针脚与每个从设备的sck针脚进行连接,向从设备传输时钟脉冲信号,控制数据交换的时机以及速率。

上述具体实施方式只是对本发明的技术方案进行详细解释,本发明并不只仅仅局限于上述实施例,凡是依据本发明原理的任何改进或替换,均应在本发明的保护范围之内。

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