一种高速可配置扩展spi总线的制作方法

文档序号:6616442阅读:278来源:国知局
专利名称:一种高速可配置扩展spi总线的制作方法
技术领域
本实用新型专利涉及一种工业控制技术,尤其涉及一种高速可配置扩展SPI总线。

背景技术
在工业自动控制中,自动生产系统需要进行大量的数字信号和模拟信号的采集和操作。现场总线作为一种通信方法,可实现信号的分布控制,其应用越来越广泛。现有总线技术大多通信速率不高,且柔性较差,不容易实现总线上各模块的同步控制。
SPI总线技术是一种用于IC之间传输的串行接口技术,可实现数据的全双工同步传输。其物理实现如图4-1所示。其中SCLK(Serial Clock)为主模块的时钟输出MOSI(MasterOutput,Slave Input)为主模块输出给从模块的时钟信号线。MISO(Master Input,Slave Output)为从模块给主模块的数据信号线。SS(Slave Select)为主模块给从模块的选通信号线。SPI只适合芯片与芯片之间的短距离高速通信,总线的传输速率可达几十Mbps以上,但无法满足工业现场的长距离传输和多从模块的可扩展配置需要。

发明内容
本实用新型的目的就是为了解决目前现场总线结构通信速率不高,柔性差,不容易实现总线上各模块的同步控制等问题,提供一种具有结构合理,使用方便,在SPI总线技术基础上改进和通信协议的研发,实现了主从模块之间的高速长距离传输和子模块的同步控制,可对任何子模块的扩展和改变进行在线识别和配置,并协调各模块同步动作等优点的高速可配置扩展SPI总线。
为实现上述目的,本实用新型采用如下技术方案 一种高速可配置扩展SPI总线,它有至少一个主模块及至少一个从模块,以及SPI总线中的SCLK时钟输出信号线、MOSI数据线、MISO数据线、SS选通信号线以及配置信号线SCFG,所述主模块内设有可变长总线发送/接收器FPGA/CPLD,从模块内设有总线接收/发送器FPGA/CPLD,它们共同组成总线配置收发器;主模块可变长总线发送/接收器FPGA/CPLD通过串行级联配置信号线SCFG与其中一个从模块的总线接收/发送器FPGA/CPLD连接,该从模块总线接收/发送器FPGA/CPLD则通过配置信号线SCFG与其它从模块总线接收/发送器FPGA/CPLD相互串联,通过通信协议和可编程逻辑设计进行数据报文的可变长度传输和从模块的柔性在线配置;同时主模块的SPI总线还通过屏蔽双绞线与其他从模块连接,并对SPI总线信号进行差分处理,实现数据包的高速长距离的一主多从通讯。
所述可变长总线发送/接收器FPGA/CPLD包括报文长度寄存器、发送计数器,发送计数器接收发送使能信号和计数时钟信号,报文长度寄存器、发送计数器输出端接比较器,比较器输出端接SCLK时钟输出信号线,计数时钟信号还分两路,一路接SCLK时钟输出信号线,另一路接串行发送器输入端,其输出端接MOSI数据线。
所述总线接收/发送器FPGA/CPLD包括控制信息接收器和数据信息接收器;主板和每个子板各有至少一个控制信息接收器和一个数据信息接收器。
本实用新型的工作方法为, 1)系统上电自检; 2)主模块对从模块的自动识别和配置,以实现一主多从模式的传输,过程为主模块通过通信协议发出的配置信号高电平使与之连接的第一从模块接收器的CFG EN信号置高,该从模块进行配制,接收主模块配置数据包并返回自己的信息;第一从模块配置结束后,禁止自身配置模块工作,同时将CFG OE信号置高,此时与之串联的下一从模块中的CFG EN被置高,该从模块的配置操作被触发,依次触发下去;直至最后无配置信息返回时,配置结束,从而实现软件在线配置,以满足不同长度的数据包传输及子模块的在线扩展和配置; 3)进入正常操作模式;总线地址分广播地址和普通地址,若为广播地址,所有子模块同步接收到主模块命令;若为普通地址,子模块只接收与自身地址匹配的数据包,在接收的同时将相应数据发送至主模块;配合报文协议,实现位置控制,I/O控制及设置的其它功能。
所述步骤2)中通信协议包括主至从通信报文M2S和从至主通信报文S2M;它们又各由配置报文C报文和数据报文D报文组成,由报文的最高位MSB标识。
所述主至从通信报文M2S的配置报文C即M2S C报文格式为标记为标识位C/D,若标记为1为命令报文,0位数据报文;4bits的主模块地址位BA、3bits的后面紧跟的报文数据长度DL;数据信息DATA,其长度由数据报文长度DL确定;校验位VR; 从至主通信数据报文S2M的配置报文C即S2M C报文格式为,子板相关描述信息DATA;校验位VR; 主至从通信数据报文M2S的数据报文D即M2S D报文格式为,标识位C/D,若标记为1则为命令报文,0为数据报文;4bits的报文传送地址BS;4bits的板内子模块地址MS;数据生效控制位DC;数据信息位DATA,其长度由配置时的DL确定;校验位VR; 从至主通信数据报文S2M的数据报文D即S2M D报文格式为,标识位C/D,若标记为1则为命令报文,0为数据报文;数据类型位DC,0表示数据为即时数据,1表示缓冲区中锁存的同步数据;数据信息DATA,长度由配置时的DL确定;校验位VR。
所述步骤2)中在主模块对从模块配置时,从模块监测到配置信号高电平后,提取M2SC报文BA,DL位,按BA,DL位的信息将S2M C报文发送给主模块,S2M C报文的发送与M2S C报文接收同步;与此同时提取M2S中相关信息配置报文发送长度,记录自身地址;配置过程中子模块通过计数器将SCLK计数控制,通过控制信息接收器实现信息提取至相应的寄存器中。
所述步骤3)正常操作模式中位置控制为,主模块发送数据时将M2S D报文标识位DC置1,采用普通地址发送,使各模块接收到数据后暂时存放在缓冲区中,然后通过DC置1的广播报文将各子模块中缓冲的数据同步输出实现各轴同步控制;而在同步输出数据的同时,各子模块会同步锁存外设采样数据,然后在下个周期给各子模块发送命令数据时由主模块依次读出; I/O控制为若各I/O点无同步要求,可使M2S D报文置0,使传至子模块的数据立即生效并采样外设的即时数据传至主模块;若有同步要求,可参考位控功能的方法实现各模块之间的同步输出和采样。
所述步骤3)中,对于普通地址,控制信息接收器将数据首先接收板地址;当地址接收完毕时,判断若非本板地址,将本板发送输出端置高阻禁止本板此次通信的数据发送以防止MISO数据线的多驱动;若为本板地址,继续接收模块地址和DC位;接收完DC位后将模块地址对应的数据信息接收器打开接收数据;数据信息接收器接收数据并将其存在接收缓冲区;待数据接收完成后,若DC位为高,则使用总线上SS信号将数据从缓冲中发出,若为低,等待广播命令与其他板同步发出; 对于广播地址,控制信息接收器将数据首先接收地址;若为广播地址,并且DC位为0时,使能所有模块数据信息接收器接收公共广播数据;若DC接收位为1,保持所有数据信息接收器禁止,待数据传输完成后利用SS信号将所有模块接收缓冲区中的数据发出。
本实用新型主要包括主模块,从模块以及SPI通信总线中的SS,SCFG,MOSI,MISO,SCLK信号线构成,在SPI(Serial Peripheral Interface)的基础上增加了配置线并将信号差分处理,实现数据包的高速长距离的一主多从通讯。通过报文协议和FPGA/CPLD可编程逻辑设计实现数据报文的可变长度传输和子模块的柔性在线配置。
本实用新型通过增加一根SCFG串行级联配置线,使得系统具有对从模块的配置功能。通过对总线信号的差分处理,解决了信号的长距离抗干扰传输问题。其通信协议采用寻址机制和FPGA/CPLD可编程配置信息提取逻辑设计,实现了子模块的在线识别配置和扩展。通信协议采用同步机制实现各从模块之间数据采集的同步和FPGA/CPLD中相应的命令发送的同步功能逻辑设计。通过通信协议可变长配置方法和FPGA/CPLD的可变长总线发送/接收器,实现了数据报文的可变长传输和数据包长度的在线配置,进而实现了一主多从的架构和从模块的柔性在线配置和扩展。
本实用新型的有益效果是 a传输速度高,传输距离长 通过对SPI总线的差分化改进,可实现信号的高速长距离传输。
b报文数据包长度的可配置 通过配置,可实现对于不同子模块不同报文长度的发送,可大大提高系统的柔性。
c子模块及模块功能的在线配置 通过配置,可实现不同子模块之间的任意组合。使模块扩展方便,开发维护简单。
d模块数量的在线配置 通过配置,可实现模块的随意增减。使系统柔性大大提高。
e模块间的同步协调 可实现各子模块之间的同步协调,满足位置控制和具有同步要求的其他控制领域需要。
本实用新型的传输介质采用屏蔽双绞线,主从模块的关键技术通过先进的FPGA/CPLD技术实现,成本低廉,运行可靠。

图1为传统SPI总线结构示意图; 图2为总线物理实现结构示意图; 图3为主模块总线发送器结构示意图; 图4为总线配置线连接示意图; 图5为总线配置信息提取功能示意图; 图6为正常通信结构示意图; 图7为串行总线结构设计图。
其中,1、主模块,2、从模块,3、SPI总线,4、串行级联配置线SCFG,5、报文长度寄存器,6、发送计数器,7、比较器,8、串行发送器,9、串行接收器。
具体实施方式

以下结合附图与实施例对本实用新型作进一步说明。
本实用新型内容主要包括物理实现和软件协议两部分。总线通过对SPI物理层的改造,可以实现高速长距离的传输。并且可实现总线上各挂靠模块的在线软件配置。具体实现如下。
图1为现有SPI总线结构图。
图2中,本实用新型将信号进行差分处理以抑制干扰,增加传输的可靠性,使传输距离增长。增加一个串行级联配置信号,可以实现对从模块的自动识别和配置,以实现一主多从模式的传输。收发器用FPGA/CPLD实现,可用软件在线配置,以实现不同长度的数据包传输。
它有至少一个主模块1及至少一个从模块2,以及SPI总线3中的SCLK时钟输出信号线、MOSI数据线、MISO数据线、SS选通信号线,SCFG配置信号线,主模块1内设有可变长总线发送/接收器FPGA/CPLD,从模块2内设有总线接收/发送器FPGA/CPLD,它们共同组成总线配置器;主模块1可变长总线发送/接收器FPGA/CPLD通过串行级联配置线SCFG 4与其中一个从模块2的总线接收/发送器FPGA/CPLD连接,该从模块2总线接收/发送器FPGA/CPLD则通过串行级联配置线SCFG 4与其他从模块2总线接收/发送器FPGA/CPLD相互串联,通过通信协议和可编程逻辑设计进行数据报文的可变长度传输和从模块的柔性在线配置;同时主模块的SPI总线3还通过屏蔽双绞线与其他从模块连接,并对SPI总线信号进行差分处理,实现数据包的高速长距离的一主多从通讯。
图3中,可变长总线发送/接收器FPGA/CPLD包括报文长度寄存器5、发送计数器6,发送计数器6接收发送使能信号和计数时钟信号,报文长度寄存器5、发送计数器6输出端接比较器7,比较器7输出端接SCLK时钟输出信号线,计数时钟信号还分两路,一路接SCLK时钟输出信号线,另一路接串行发送器8输入端,其输出端接MOSI数据线。
CPLD中总线接收器包括控制信息接收器8和数据信息接收器;每个子板有一个控制信息接收器,子板上每个子模块对应有一个数据信息接收器。
通信数据报文分Master to Slave(M2S)数据报文和Slave to Master(S2M)数据报文。其中M2S和S2M数据报文又各由配置报文(C报文)和数据报文(D报文)组成,由报文的最高位(MSB)标识。
M2S C报文格式定义如下
各个数据位的描述如下表所示 S2M C报文格式定义如下
各个数据位的描述如下表所示 M2S D报文格式定义如下
各数据位描述如下 S2M D报文格式定义如下
各数据位描述如下 串行级联配置线SCFG用来触发系统配置操作,具体过程如下 图4中,主模块1发出的配置信号高电平使第一从模块2内部CFG_EN信号置高,第一从模块2进行配制,接收主模块1配置数据包并返回自己的信息。第一从模块2配置结束后,禁止自身配置模块工作,同时将CFG_OE信号置高,此时下一从模块2中CFG_EN被置高,该从模块2的配置操作被触发。依次下去。直至最后无配置信息返回时,认为配置结束。转入正常操作模式。
单个模块的配置过程为 模块监测到配置信号高电平后,提取M2S C报文BA,DL位,按BA,DL位的信息将S2MC报文发送给主模块,S2M C报文的发送与M2S C报文接收同步。与此同时提取M2S中相关信息配置报文发送长度,记录自身地址。配置过程中子模块通过计数器将SCLK计数控制,通过控制信息接收器实现信息提取至相应的寄存器中,如图5所示。
正常工作模式使用D报文,报文中地址分为广播地址和普通地址。若接收到的报文地址为广播地址,所有子模块同步接收到主模块命令或同步数据。若为普通地址,子模块只接收与自身地址匹配的数据包,在接收的同时将相应数据发送至主模块,若报文地址与自身地址不匹配,则将自身与MISO的连接置高阻防止MISO多驱动的发生,如图6. 配合协议M2S报文和S2M报文中DC位的使用,可以实现位置控制,I/O控制功能。
a.位置控置功能举例 位置控制中,需要将发送给各轴的位置命令同步生效并需要获得各轴的同步数据。但各个轴有可能被分配到不同的子板中或者相同子板的不同子模块中。此种情况下可在主模块发送数据时将使用普通地址传输的M2S D报文DC置1,使各模块接收到数据后暂时存放在缓冲区中,然后通过DC置1的广播地址传输的广播报文将各子模块中缓冲的数据同步输出实现各轴同步控制。而在而在同步输出数据的同时,各子模块会同步锁存外设数据,然后在下个周期给各子模块发送命令数据时由主模块依次读出。(参见M2S D报文结构。) b.I/O控制功能举例 用于I/O控制时,若各I/O点无同步要求,可使M2S D报文置0,使数据立即生效并采样外设的即时数据。若有同步要求,可参考位控功能的方法实现各模块之间的同步输出和采样。
本实用新型子板总线接收器可在CPLD中基于串行接收器实现。分为控制信息接收器和数据信息接收器。每个子板有一个控制信息接收器,子板上每个子模块对应有一个数据信息接收器。和具体接收过程设计如下。
a.普通数据包接收 控制信息接收器将数据首先接收板地址。当地址接收完毕时,判断若非本板地址,将本板发送输出端置高阻禁止本板此次数据包的接收。若为本板地址,继续接收模块地址和DC位。接收完DC位后将模块地址对应的数据信息接收器打开接收数据。数据信息接收器接收数据并将其存在接收缓冲区。待数据接收完成后,若DC位为高,则使用总线上SS信号将数据从缓冲中发出,若为低,等待广播命令与其他板同步发出。
b.广播数据包接收 控制信息接收器将数据首先接收地址。若为广播地址,并且DC位为0时,使能所有模块数据信息接收器接收公共广播数据。若DC接收位为1,保持所有数据信息接收器禁止,待数据传输完成后利用SS信号将所有模块接收缓冲区中的数据发出。
主模块可变长总线发送器可实现不同长度报文的发送。主板设计中,将设定的报文长度存储在报文长度寄存器中,计数器将发送数据位数计数,计数值和报文长度比较来控制数据发送长度,如图3所示。
串行发送器的设计如图7所示,其中SS信号作为计数器的复位信号和使能信号。在SS到来时计数器复位并开始计数,SS信号结束时计数禁止。由计数器的计数值来控制多路交叉开关的通道选择,按位将数据发送缓冲区中的数发出。其中,SS信号作为计数器的复位信号和使能信号。在SS到来时计数器复位并开始计数,SS信号结束时计数禁止。由计数器的计数值来控制多路交叉开关的通道选择,按位将数据发送缓冲区中的数发出。
权利要求1.一种高速可配置扩展SPI总线,它有至少一个主模块及至少一个从模块,以及SPI总线中的SCLK时钟输出信号线、MOSI数据线、MISO数据线、SS选通信号线以及配置信号线SCFG,其特征是所述主模块内设有可变长总线发送/接收器器FPGA/CPLD,从模块内设有总线接收/发送器FPGA/CPLD,它们共同组成总线配置收发器;主模块可变长总线发送/接收器FPGA/CPLD通过串行级联配置信号线SCFG与其中一个从模块的总线接收/发送器FPGA/CPLD连接,该从模块总线接收/发送器FPGA/CPLD则通过配置信号线SCFG与其它从模块总线接收/发送器FPGA/CPLD相互串联,通过通信协议和可编程逻辑设计进行数据报文的可变长度传输和从模块的柔性在线配置;同时主模块的SPI总线还通过屏蔽双绞线与其他从模块连接,并对SPI总线信号进行差分处理,实现数据包的高速长距离的一主多从通讯。
2.根据权利要求1所述的高速可配置扩展SPI总线,其特征是所述可变长总线发送/接收器FPGA/CPLD包括报文长度寄存器、发送计数器,发送计数器接收发送使能信号和计数时钟信号,报文长度寄存器、发送计数器输出端接比较器,比较器输出端接SCLK时钟输出信号线,计数时钟信号还分两路,一路接SCLK时钟输出信号线,另一路接串行发送器输入端,其输出端接MOSI数据线。
3.根据权利要求1所述的高速可配置扩展SPI总线,其特征是所述总线接收/发送器FPGA/CPLD包括控制信息接收器和数据信息接收器;主板和每个子板各有至少一个控制信息接收器和一个数据信息接收器。
专利摘要本实用新型公开了一种高速可配置扩展SPI总线及其工作方法。其结构为它有至少一个主模块及至少一个从模块,以及SPI总线中的SCLK时钟输出信号线、MOSI数据线、MISO数据线、SS选通信号线以及配置信号线SCFG,主模块内设有可变长总线发送/接收器FPGA/CPLD,从模块内设有总线接收/发送器FPGA/CPLD,它们组成总线配置收发器;主模块可变长总线发送/接收器FPGA/CPLD通过串行级联配置信号线SCFG与其中一个从模块的总线接收/发送器FPGA/CPLD连接,该从模块总线接收/发送器FPGA/CPLD则通过配置信号线SCFG与其它从模块总线接收/发送器FPGA/CPLD相互串联;同时主模块的SPI总线还通过屏蔽双绞线与其他从模块连接,并对SPI总线信号进行差分处理。可对任何子模块的扩展和改变进行在线识别和配置,并协调各模块同步动作。
文档编号G06F13/40GK201060487SQ200720021370
公开日2008年5月14日 申请日期2007年5月29日 优先权日2007年5月29日
发明者胡天亮, 张承瑞, 武洪恩, 鹏 李 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1