CN107145460B - 一种可扩展串行总线系统及其通讯方法 - Google Patents
一种可扩展串行总线系统及其通讯方法 Download PDFInfo
- Publication number
- CN107145460B CN107145460B CN201710238394.8A CN201710238394A CN107145460B CN 107145460 B CN107145460 B CN 107145460B CN 201710238394 A CN201710238394 A CN 201710238394A CN 107145460 B CN107145460 B CN 107145460B
- Authority
- CN
- China
- Prior art keywords
- line
- port
- register
- data
- cable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0012—High speed serial bus, e.g. IEEE P1394
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
一种新型的SPI总线系统,其包括:一个主控制器、至少一个节点选择逻辑模块、至少一个从设备和包含5根线缆的串行总线(时钟线CLK、下行数据线MOSI、上行数据线MISO、片选控制线CS、地址选择线CSA)。所述的主控制器通过接口连接在5根线缆的一端,所述的节点选择逻辑模块采用T型方式接入CS线、CAS线、CLK线、MOSI线,所述的从设备采用T型方式接入CLK线、MISO线缆,与主控制器相连的MOSI线采用菊花链拓扑连接方式,MOSI线经过本级节点选择逻辑模块连接到下一级节点选择逻辑模块和本级从设备,所述的从设备通过CS线连接到本级的节点选择逻辑模块,所述的从设备采用T型方式接入到本级节点选择逻辑模块和下级节点选择逻辑模块之间的MISO线缆。
Description
技术领域
本发明涉及一种串行总线系统,尤其是涉及串行外设接口SPI总线电路系统,适用于单片机系统中非中断设备总线控制,属于电子电路技术领域。
背景技术
在一般单片机系统中,主控制器需要实现数据计算、信号采集、数据存储等功能,但是在多数系统中,单片机的片内资源并不能满足系统需求,需要进行一定程度的扩展,例如需要连接RAM(随机存取存储器)、EEPROM(带电可擦可编程只读存储器)、FlashROM(快速擦写只读编程器)、A/D转换器(模数转换器)、D/A转换器(数模转换器)等、LED/LED显示驱动器、I/O接口芯片、实时时钟、UART收发器等进行扩展。
通常情况下,外部模块采用总线方式进行模块扩展,总线分为串行总线和并行总线两大类,串行总线相对于并行总线来说,数据带宽较低,但是优点在于总线线缆数量较少,易于设计。目前串行总线系统已经被大量应用于各种数据存储、数据采集和运动控制等领域。
其中,SPI(串行外设接口)总线被广泛应用于板级设备通讯设计。目前,各半导体公司推出了大量的带有SPI接口的具有各种功能的芯片,为用户的外围扩展提供了极其灵活且经济的选择。在单片机系统扩展过程中,每个从片的SPI接口仅仅需要从主片的I/O接口引出四根线,这四根线分别为时钟线(CLK)、下行数据线(MOSI)、上行数据线(MISO)、片选控制线(CS)。其中CLK线、MOSI线、MISO线是公用线,也就是说所有的从片与主片之间通讯的这三根线是一样的;而CS线则是私用线,也就是说每个从片与主片通讯时都需要单独配备一根CS线。综上,采用SPI总线系统可以简化电路设计,节省很多常规电路中的接口器和I/O口线,提高设计的可靠性。
但是,从上文的描述中也能总结出标准SPI总线系统的弊端。由于CS线是私用线,每个从片与主片之间都需要单独配备一根CS线,这就会使得SPI总线系统在扩展时受到主片I/O接口数量的限制,最终导致主片无法连接更多的从片进行扩展,严重限制了系统的发展性能。
为了解决以上标准的SPI总线在挂载多个从片时,对于主片的I/O接口的需求量过大,从而导致系统不足的问题,本发明提出一种新型的SPI总线系统及其通讯方法。采用本发明的新型SPI总线系统及通讯方法,可以简化标准SPI总线系统的电路设计,大大减少从片对主片的I/O接口的需求量,同时能够实现无限量从片数量的动态扩展。
发明内容
本发明的目的在于解决以上现有技术上存在的缺陷,即因为主片的I/O端口数量有限,而导致的标准SPI系统无法动态扩展从片的问题。有鉴于此,本发明提供一种新型的SPI总线系统及其通讯方法。
一种新型的SPI总线系统,其包括:一个主控制器、至少一个节点选择逻辑模块、至少一个从设备和包含5根线缆的串行总线(时钟线CLK、下行数据线MOSI、上行数据线MISO、片选控制线CS、地址选择线CSA)。所述的主控制器通过接口连接在5根线缆的一端,所述的节点选择逻辑模块采用T型方式接入CS线、CSA线、CLK线、MOSI线,所述的从设备采用T型方式接入CLK线、MISO线缆,与主控制器相连的MOSI线采用菊花链拓扑连接方式,MOSI线经过本级节点选择逻辑模块连接到下一级节点选择逻辑模块和本级从设备,所述的从设备通过CS线连接到本级的节点选择逻辑模块,所述的从设备采用T型方式接入到本级节点选择逻辑模块和下级节点选择逻辑模块之间的MISO线缆。
进一步的,所述的主控制器的SPI模块中包括时钟发生器、8位或16位发送寄存器、8位或16位移位寄存器、8位或16位接收寄存器、主模式控制器、IO口控制器、接口(MOSI、MISO、CLK、CS、CSA)。接收寄存器与发送寄存器连接主控制器内部的系统总线,时钟发生器连接CLK线输出总线时钟信号,MOSI线连接至移位寄存器位输出端,MISO线连接到移位寄存的位输入端,CS线连接至主模式控制器,CSA线连接至IO口控制器。当主控制器需要发送数据时,首先将总线上的数据复制到发送寄存器,发送寄存器将其中的数据复制到移位寄存器,时钟发生器控制移位寄存器将高位的数据位移至MOSI信号线,同时MOSI线上信号输入到移位寄存器的低位,时钟发生器同时将时钟信号传递到CLK口上,当移位寄存器满后数据复制到接收寄存器,使主控制器通过系统总线访问,主模式控制器控制CS管脚的输出。进一步的,每个所述的节点选择逻辑模块包括触发器单元、判决单元、通道选择单元、接口(MOSI、MISO、CLK、CS)。如上所述的节点选择逻辑模块在MOSI线上连接的顺序决定了节点选择逻辑模块访问的地址,离主控制器最近的模块地址为1,下一级为2,以此类推,第n个节点选择逻辑模块地址为n。
如上所述的触发器单元包含两位发送寄存器、两位移位寄存器、两位接收寄存器,其中两位移位寄存器中的高位数据用于输出给下一个级别的节点选择逻辑模块的触发器单元,低位数据用于在同一个时钟周期向前进位升为高位数据。两位接收寄存器与两位发送寄存器连接处理器内部的系统总线,CLK线连接到移位寄存器移位控制信号,MOSI线连接至移位寄存器位输入端,MOSI_OUT连接到移位寄存器的为输出端,CS连接至判决单元,与CSA经过或门接入触发器单元复位信号。
如上所述的通道选择单元,由两个与门,一个非门和一个或门组成。其作用通过控制输入实现对于数据输入1和数据输入2的输出通道选择,当控制输入为1时,数据输出脚随数据输入1脚电平变化而变化,当控制输入为0时,数据输出脚随数据输入2脚电平变化而变化。
如上所述的判决单元是依据判决表来实现是否选中同级设备的。具体的,每个节点选择逻辑模块的触发器单元寄存器的两位数包含四种状态,分别为“00”、“10”、“01”、“11”,对应的PCS_IN在选择过程中状态为“1”,当选中后,PCS_IN的状态为“0”,也就是说PCS_IN存在“0”和“1”两种状态,故寄存器和PCS_IN组合后包含8种状态。在状态选择过程中,只有当寄存器状态为“10”时,才能表示选中该级别的从设备。选中后,PCS_OUT的输出状态为“0”。
进一步的,所述的从设备含有一开关,在节点选择逻辑模块选中同级别的从设备后,从会自动进入工作模式。
进一步的,所述的主控制器的接口包含但不限定于时钟数据端口PCLK、下行数据输出端口PMOSI_OUT、上行数据输入端口PMISO_IN、片选控制线输出端口PCS_OUT、地址控制线端口PCSA。其中,时钟数据端口PCLK连接CLK线缆,下行数据输出端口PMOSI_OUT连接MOSI线缆,上行数据输入端口PMISO_IN连接MISO线缆,片选控制线输出端口PCS_OUT连接CS线缆,地址控制线端口PCSA连接CSA线缆。更进一步的,如上所述的主控制器的接口包括至少一个标准SPI接口和至少一个I/O端口,所述的标准SPI接口用来连接CS线缆、CLK线缆、MISO线缆、MOSI线缆,所述的I/O端口用来连接CSA线缆;或者如上所述的主控制器的接口包括至少一个非标准SPI接口和至少两个I/O端口,所述的非标准SPI接口用来连接CLK线缆、MISO线缆、MOSI线缆,所述的I/O端口用来连接CS线缆和CSA线缆;或者如上所述的主控制器的接口包括至少5个I/O端口,所述的I/O端口用来连接CS线缆、CLK线缆、MISO线缆、MOSI线缆、CSA线缆。
进一步的,所述的节点选择逻辑模块的接口包含至少6个管脚,所述的管脚包含但不限定于时钟数据端口PCLK、下行数据输入端口PMOSI_IN、下行数据输出端口PMOSI_OUT、片选控制线输入端口PCS_IN,地址控制线端口PCSA、片选控制线输出端口PCS_OUT。其中,时钟数据端口PCLK连接CLK线缆,下行数据输入端口PMOSI_IN连接上一级的节点选择逻辑模块,片选控制线输入端口PCS_IN连接CS线缆,地址控制线端口PCSA连接CSA线缆,下行数据输出端口PMOSI_OUT连接下一级节点选择逻辑模块,片选控制线输出端口PCS_OUT连接从设备的片选端口。
进一步的,所述的从设备的接口包含至少4个管脚,所述的管脚包含但不限定于片选控制线输入端口PCS_IN、上行数据输出端口PMISO_OUT、下行数据输入端口PMOSI_IN、时钟数据端口PCLK。其中,片选控制线输入端口PCS_IN连接本级的节点选择逻辑模块的片选控制线输出端口PCS_OUT,上行数据输出端口PMISO_OUT连接MISO线缆,下行数据输入端口PMOSI_IN连接本级节点选择逻辑模块与下级节点选择逻辑模块之间的MOSI线缆,时钟数据端口PCLK连接到CLK线缆。
采用本发明的新型的SPI总线,可以兼容标准的SPI总线,兼容市场上多数的主控制器的SPI模块。采用本发明的新型的SPI总线,可以解决标准的SPI总线在挂载多个从片时,对于主片的I/O接口的需求量过大,从而导致系统不足的问题
一种基于如上所述的新型的SPI总线系统,其通讯过程的特征如下:
A.初始化总线:
A1.主控制器初始化SPI模块的各项配置参数,时钟设置为高电平有效,相位设置为下降沿采用,通讯数据位一般选择8bit,高位先出模式。
A2.主控制器将CSA线缆设置为低电平,CS线缆设置为低电平,迫使挂接在此总线上的所有节点选择逻辑复位模块。
B.选择从设备地址:
B1.主控制器将CS设置为高电平;
B2.编码器和解码器将需要访问的节点选择逻辑模块的地址分别进行编码和解码,最终将需要访问的节点选择逻辑模块的地址转换成二进制数据,该二进制数据通过主控制器的寄存器通过MOSI线依次传送给下一级的节点选择逻辑模块的触发器。
B3.节点选择逻辑模块中触发器包含两位寄存器,在每一个时钟周期过程中,在时钟的下降沿,上一级触发器的两位寄存器的高位数传送给下一级触发器,同时每一个触发器的寄存器中的低位数向前移动一位,变为高位数。以此类推,一直到将主控制器的寄存器中的数据完全输出为止;
B4.在每一个时钟周期过程中,在时钟的下降沿,触发器中的寄存器用来记录上一次时钟周期过程中和本次时钟周期过程中上一级的触发器输入的数据,且上一次时钟周期过程中上一级触发器的寄存器输入的数据为高位数据,本次时钟周期过程中上一级触发器的寄存器输入的数据为低位数据,在时钟的下一个下降沿,触发器的寄存器中的两位数据输出到判决单元;
B5.由判决单元依据判决表对最后一个时钟周期过程中触发器的寄存器输出的两位数据进行判断,若在时钟周期结束时,寄存器输出的两位数为“10”,则表示主控制器选中该地址;
B6.将CSA设置为高电平。
C.访问从设备:CS_OUT拉低,同级设备被选中,从设备进入SPI通讯状态
附图说明:
图1为本发明的新型的SPI总线系统的拓扑结构。
图2为本发明的主控制器的结构。
图3为本发明的节点选择逻辑模块的结构。
图4为本发明的通道选择单元的结构。
图5为本发明的时序图。
图6为含有4个从设备的新型的SPI总线系统的拓扑结构。
图7为含有2个从设备的新型的SPI总线系统的拓扑结构。
图8为含有100个从设备的新型的SPI总线系统的拓扑结构。
图9为判决表格
图10为实施案例1的触发器所有时钟周期中单元状态-选择第三个从设备
图11为实施案例1的触发器所有时钟周期中单元状态-选择第四个从设备
图12为实施案例2的触发器所有时钟周期中单元状态-选择第一个从设备
图13为实施案例3的触发器最后一个时钟周期触发器68的PMOSI输入口状态,和BUS输出状态。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施案例1:
一种新型的SPI总线系统,其包括:一个主控制器、4个节点选择逻辑模块、4个从设备和包含5根线缆的串行总线(时钟线CLK、下行数据线MOSI、上行数据线MISO、片选控制线CS、地址选择线CSA)。所述的主控制器通过接口连接在5根线缆的一端,所述的节点选择逻辑模块采用T型方式接入CS线、CSA线、CLK线、MOSI线,所述的从设备采用T型方式接入CLK线、MISO线缆,与主控制器相连的MOSI线采用菊花链拓扑连接方式,MOSI线经过本级节点选择逻辑模块连接到下一级节点选择逻辑模块和本级从设备,所述的从设备通过CS线连接到本级的节点选择逻辑模块,所述的从设备采用T型方式接入到本级节点选择逻辑模块和下级节点选择逻辑模块之间的MISO线缆。
所述的主控制器中包括时钟发生器、发送寄存器、移位寄存器、接收寄存器、主模式控制器、IO口控制器、接口(MOSI、MISO、CLK、CS、CSA)。
每个所述的节点选择逻辑模块包括触发器单元、判决单元、通道选择单元、接口(MOSI、MISO、CLK、CS)。
离主控制器最近的节点选择逻辑模块地址为1,下一级为2,再下一级为3,最后一级为4。
实施案例1选择地址3的通讯过程如下:
A.初始化总线:
A1.主控制器初始化SPI模块的各项配置参数,时钟设置为高电平有效,相位设置为下降沿采用,通讯数据位选择8bit,高位先出模式。
A2.主控制器将CSA线缆设置为低电平,CS线缆设置为低电平,迫使挂接在此总线上的所有节点选择逻辑复位模块。
B.选择从设备地址3:
B1.主控制器将CS设置为高电平;
B2.每个节点选择逻辑模块中模块级联为2个,假定需要访问的从设备的地址为a,另c=(2<<((a-1)*2))+(0xffffffff>>(32-(a-1)*2))。目前需要访问的地址为3,则主控制器的寄存器通过MOSI线发送给节点选择逻辑模块的触发器的数据为“00101111”。
B3.节点选择逻辑模块中触发器包含两位寄存器,在每一个时钟周期过程中,在时钟的下降沿,上一级触发器的两位寄存器的高位数传送给下一级触发器,同时每一个触发器的寄存器中的低位数向前移动一位,变为高位数。以此类推,一直到将主控制器的寄存器中的数据完全输出为止。具体的,每一个时钟周期过程中触发器单元PMOSI输入口的状态和触发器单元寄存器输出状态参考图10。
B4.在每一个时钟周期过程中,在时钟的下降沿,触发器中的寄存器用来记录上一次时钟周期过程中和本次时钟周期过程中上一级的触发器输入的数据,且上一次时钟周期过程中上一级触发器的寄存器输入的数据为高位数据,本次时钟周期过程中上一级触发器的寄存器输入的数据为低位数据,在时钟的下一个下降沿,触发器的寄存器中的两位数据输出到判决单元;
B5.由判决单元依据判决表对最后一个时钟周期过程中触发器的寄存器输出的两位数据进行判断,在时钟周期结束时,寄存器输出的两位数为“10”,则表示主控制器选中该地址;
B6.将CSA设置为高电平。
C.访问从设备3:CS_OUT拉低,同级设备被选中,从设备进入SPI通讯状态
实施案例1选择地址4的通讯过程如下:
A.初始化总线:
A1.主控制器初始化SPI模块的各项配置参数,时钟设置为高电平有效,相位设置为下降沿采用,通讯数据位选择8bit,高位先出模式。
A2.主控制器将CSA线缆设置为低电平,CS线缆设置为低电平,迫使挂接在此总线上的所有节点选择逻辑复位模块。
B.选择从设备地址4:
B1.主控制器将CS设置为高电平;
B2.每个节点选择逻辑模块中模块级联为2个,假定需要访问的从设备的地址为a,另c=(2<<((a-1)*2))+(0xffffffff>>(32-(a-1)*2))。目前需要访问的地址为4,c=[0xBF]则主控制器的寄存器通过MOSI线发送给节点选择逻辑模块的触发器的数据为“10111111”,高位先出。
B3.节点选择逻辑模块中触发器包含两位寄存器,在每一个时钟周期过程中,在时钟的下降沿,上一级触发器的两位寄存器的高位数传送给下一级触发器,同时每一个触发器的寄存器中的低位数向前移动一位,变为高位数。以此类推,一直到将主控制器的寄存器中的数据完全输出为止。具体的,每一个时钟周期过程中触发器单元PMOSI输入口的状态和触发器单元寄存器输出状态参考图11。
B4.在每一个时钟周期过程中,在时钟的下降沿,触发器中的寄存器用来记录上一次时钟周期过程中和本次时钟周期过程中上一级的触发器输入的数据,且上一次时钟周期过程中上一级触发器的寄存器输入的数据为高位数据,本次时钟周期过程中上一级触发器的寄存器输入的数据为低位数据,在时钟的下一个下降沿,触发器的寄存器中的两位数据输出到判决单元;
B5.由判决单元依据判决表对最后一个时钟周期过程中触发器的寄存器输出的两位数据进行判断,在时钟周期结束时,寄存器输出的两位数为“10”,则表示主控制器选中该地址;
B6.将CSA设置为高电平。
C.访问从设备4:CS_OUT拉低,同级设备被选中,从设备进入SPI通讯状态。
具体实施案例2:
一种新型的SPI总线系统,其包括:一个主控制器、2个节点选择逻辑模块、2个从设备和包含5根线缆的串行总线(时钟线CLK、下行数据线MOSI、上行数据线MISO、片选控制线CS、地址选择线CSA)。所述的主控制器通过接口连接在5根线缆的一端,所述的节点选择逻辑模块采用T型方式接入CS线、CSA线、CLK线、MOSI线,所述的从设备采用T型方式接入CLK线、MISO线缆,与主控制器相连的MOSI线采用菊花链拓扑连接方式,MOSI线经过本级节点选择逻辑模块连接到下一级节点选择逻辑模块和本级从设备,所述的从设备通过CS线连接到本级的节点选择逻辑模块,所述的从设备采用T型方式接入到本级节点选择逻辑模块和下级节点选择逻辑模块之间的MISO线缆。
所述的主控制器中包括时钟发生器、发送寄存器、移位寄存器、接收寄存器、主模式控制器、IO口控制器、I/O端口(MOSI、MISO、CLK、CS、CSA)。
每个所述的节点选择逻辑模块包括触发器单元、判决单元、通道选择单元、接口(MOSI、MISO、CLK、CS)。
离主控制器最近的节点选择逻辑模块地址为1,下一级为2。
实施案例2选择地址1的通讯过程如下:
A.初始化总线:
A1.主控制器初始化SPI模块的各项配置参数,时钟设置为高电平有效,相位设置为下降沿采用,通讯数据位选择8bit,高位先出模式。
A2.主控制器将CSA线缆设置为低电平,CS线缆设置为低电平,迫使挂接在此总线上的所有节点选择逻辑复位模块。
B.选择从设备地址:
B1.主控制器将CS设置为高电平;
B2.每个节点选择逻辑模块中模块级联为2个,假定需要访问的从设备的地址为a,另c=(2<<((a-1)*2))+(0xffffffff>>(32-(a-1)*2))。目前需要访问的地址为1,c=[0x2]则主控制器的寄存器通过MOSI线发送给节点选择逻辑模块的触发器的数据为“00000010”,高位先出。
B3.节点选择逻辑模块中触发器包含两位寄存器,在每一个时钟周期过程中,在时钟的下降沿,上一级触发器的两位寄存器的高位数传送给下一级触发器,同时每一个触发器的寄存器中的低位数向前移动一位,变为高位数。以此类推,一直到将主控制器的寄存器中的数据完全输出为止。
B4.在每一个时钟周期过程中,在时钟的下降沿,触发器中的寄存器用来记录上一次时钟周期过程中和本次时钟周期过程中上一级的触发器输入的数据,且上一次时钟周期过程中上一级触发器的寄存器输入的数据为高位数据,本次时钟周期过程中上一级触发器的寄存器输入的数据为低位数据,在时钟的下一个下降沿或上升沿,触发器的寄存器中的两位数据输出到判决单元;
B5.由判决单元依据判决表对最后一个时钟周期过程中触发器的寄存器输出的两位数据进行判断,在时钟周期结束时,寄存器输出的两位数为“10”,则表示主控制器选中该地址;
B6.将CSA设置为高电平。
C.访问从设备1:CS_OUT拉低,同级设备被选中,从设备进入SPI通讯状态。
具体实施案例3:
一种新型的SPI总线系统,其包括:一个主控制器、100个节点选择逻辑模块、100个从设备和包含5根线缆的串行总线(时钟线CLK、下行数据线MOSI、上行数据线MISO、片选控制线CS、地址选择线CSA)。所述的主控制器通过接口连接在5根线缆的一端,所述的节点选择逻辑模块采用T型方式接入CS线、CSA线、CLK线、MOSI线,所述的从设备采用T型方式接入CLK线、MISO线缆,与主控制器相连的MOSI线采用菊花链拓扑连接方式,MOSI线经过本级节点选择逻辑模块连接到下一级节点选择逻辑模块和本级从设备,所述的从设备通过CS线连接到本级的节点选择逻辑模块,所述的从设备采用T型方式接入到本级节点选择逻辑模块和下级节点选择逻辑模块之间的MISO线缆。
所述的主控制器中包括时钟发生器、发送寄存器、移位寄存器、接收寄存器、主模式控制器、IO口控制器、I/O端口(MOSI、MISO、CLK、CS、CSA)。
每个所述的节点选择逻辑模块包括触发器单元、判决单元、通道选择单元、接口(MOSI、MISO、CLK、CS)。
离主控制器最近的节点选择逻辑模块模块地址为1,下一级为2,以此类推,一直到最后一个节点选择逻辑模块的地址为100。
实施案例3选择地址68的通讯过程如下:
A初始化总线:
A1.主控制器初始化SPI模块的各项配置参数,时钟设置为高电平有效,相位设置为下降沿采用,通讯数据位选择8bit,高位先出模式。
A2.主控制器将CSA线缆设置为低电平,CS线缆设置为低电平,迫使挂接在此总线上的所有节点选择逻辑复位模块。
B.选择从设备地址:
B1.主控制器将CS设置为高电平;
B2.每个节点选择逻辑模块中模块级联为2个,假定需要访问的从设备的地址为a,另
如果a<=16则c1=(2<<((a-1)*2))+(0xffffffff>>(32-(a-1)*2)),C2=0,C3=0,C4=0,C5=0,C6=0,C7=0
否则如果a<=32则C1=0xFFFFFFFF,C2=(2<<((a-17)*2))+(0xffffffff>>(32-(a-17)*2)),C3=0,C4=0C5=0,C6=0,C7=0
否则如果a<=48则C1=0xFFFFFFFF,C2=0xFFFFFFFF,C3=(2<<((a-33)*2))+(0xffffffff>>(32-(a-33)*2)),C4=0,C5=0,C6=0,C7=0
否则如果a<=64则C1=0xFFFFFFFF,C2=0xFFFFFFFF,C3=0xFFFFFFFF,C4=(2<<((a-49)*2))+(0xffffffff>>(32-(a-49)*2)),C5=0,C6=0,C7=0,
否则如果a<=80则C1=0xFFFFFFFF,C2=0xFFFFFFFF,C3=0xFFFFFFFF,C4=0xFFFFFFFF,C5=(2<<((a-65)*2))+(0xffffffff>>(32-(a-65)*2)),C6=0,C7=0,
否则如果a<=96则C1=0xFFFFFFFF,C2=0xFFFFFFFF,C3=0xFFFFFFFF,C4=0xFFFFFFFF,C5=0xFFFFFFFF,C6=(2<<((a-81)*2))+(0xffffffff>>(32-(a-81)*2)),C7=0,
否则C1=0xFFFFFFFF,C2=0xFFFFFFFF,C3=0xFFFFFFFF,C4=0xFFFFFFFF,C5=0xFFFFFFFF,C6=0xFFFFFFFF,C7=(2<<((a-97)*2))+(0xffffffff>>(32-(a-97)*2))。目前需要访问的地址为68,C1=0xFFFFFFFF,C2=0xFFFFFFFF,C3=0xFFFFFFFF,C4=0xFFFFFFFF,C5=0xbf,C6=0,C7=0则主控制器的寄存器通过MOSI线发送给节点选择逻辑模块的触发器的数据为“10111111 11111111 11111111 11111111 11111111 1111111111111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111”。
B3.节点选择逻辑模块中触发器包含两位寄存器,在每一个时钟周期过程中,在时钟的下降沿,上一级触发器的两位寄存器的高位数传送给下一级触发器,同时每一个触发器的寄存器中的低位数向前移动一位,变为高位数。以此类推,一直到将主控制器的寄存器中的数据完全输出为止。
B4.在每一个时钟周期过程中,在时钟的下降沿,触发器中的寄存器用来记录上一次时钟周期过程中和本次时钟周期过程中上一级的触发器输入的数据,且上一次时钟周期过程中上一级触发器的寄存器输入的数据为高位数据,本次时钟周期过程中上一级触发器的寄存器输入的数据为低位数据,在时钟的下一个下降沿或上升沿,触发器的寄存器中的两位数据输出到判决单元;
B5.由判决单元依据判决表对最后一个时钟周期过程中触发器的寄存器输出的两位数据进行判断,在时钟周期结束时,寄存器输出的两位数为“10”,则表示主控制器选中该地址;
B6.将CSA设置为高电平。
C.访问从设备68:CS_OUT拉低,同级设备被选中,从设备进入SPI通讯状态。
从以上三个实施案例中,可以看出采用本发明的新型的SPI总线,可以兼容标准的SPI总线,兼容市场上多数的主控制器的SPI模块。采用本发明的新型的SPI总线,可以解决标准的SPI总线在挂载多个从片时,对于主片的I/O接口的需求量过大,从而导致系统不足的问题。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种SPI总线系统,其包括:一个主控制器、至少一个节点选择逻辑模块、至少一个从设备和包含5根线缆的串行总线,5根线缆的串行总线分别为时钟线CLK、下行数据线MOSI、上行数据线MISO、片选控制线CS和地址选择线CSA,所述的主控制器通过接口连接在5根线缆的一端,所述的节点选择逻辑模块采用T型方式接入CS线、CSA线、CLK线、MOSI线,所述的从设备采用T型方式接入CLK线、MISO线缆,与主控制器相连的MOSI线采用菊花链拓扑连接方式,MOSI线经过本级节点选择逻辑模块连接到下一级节点选择逻辑模块和本级从设备,所述的从设备通过CS线连接到本级的节点选择逻辑模块,所述的从设备采用T型方式接入到本级节点选择逻辑模块和下级节点选择逻辑模块之间的MISO线缆;所述的主控制器包含SPI模块,所述的主控制器的SPI模块中包括时钟发生器、发送寄存器、移位寄存器、接收寄存器、主模式控制器、IO口控制器、MOSI口、MISO口、CLK口、CS口和CSA口;接收寄存器与发送寄存器连接主控制器内部的系统总线,时钟发生器连接CLK线输出总线时钟信号,MOSI线连接至移位寄存器位输出端,MISO线连接到移位寄存的位输入端,CS线连接至主模式控制器,CSA线连接至IO口控制器;当主控制器需要发送数据时,首先将总线上的数据复制到发送寄存器,发送寄存器将其中的数据复制到移位寄存器,时钟发生器控制移位寄存器将高位的数据位移至MOSI信号线,同时MOSI线上信号输入到移位寄存器的低位,时钟发生器同时将时钟信号传递到CLK口上,当移位寄存器满后数据复制到接收寄存器,使主控制器通过系统总线访问,主模式控制器控制CS管脚的输出。
2.如权利要求1所述的SPI总线系统,其特征在于:所述的主控制器的接口包含但不限定于时钟数据端口PCLK、下行数据输出端口PMOSI_OUT、上行数据输入端口PMISO_IN、片选控制线输出端口PCS_OUT、地址控制线端口PCSA;其中,时钟数据端口PCLK连接CLK线缆,下行数据输出端口PMOSI_OUT连接MOSI线缆,上行数据输入端口PMISO_IN连接MISO线缆,片选控制线输出端口PCS_OUT连接CS线缆,地址控制线端口PCSA连接CSA线缆。
3.如权利要求2所述的SPI总线系统,其特征在于:所述的主控制器的接口包括至少一个标准SPI接口和至少一个I/O端口,所述的标准SPI接口用来连接CS线缆、CLK线缆、MISO线缆、MOSI线缆,所述的I/O端口用来连接CSA线缆。
4.如权利要求2所述的SPI总线系统,其特征在于:所述的主控制器的接口包括至少一个非标准SPI接口和至少两个I/O端口,所述的非标准SPI接口用来连接CLK线缆、MISO线缆、MOSI线缆,所述的I/O端口用来连接CS线缆和CSA线缆。
5.如权利要求2所述的SPI总线系统,其特征在于:所述的主控制器的接口包括至少5个I/O端口,所述的I/O端口用来连接CS线缆、CLK线缆、MISO线缆、MOSI线缆、CSA线缆。
6.如权利要求1所述的SPI总线系统,其特征在于:每个所述的节点选择逻辑模块包括触发器单元、判决单元、通道选择单元、MOSI口、MISO口、CLK口和CS口;如上所述的节点选择逻辑模块在MOSI线上连接的顺序决定了节点选择逻辑模块访问的地址,离主控制器最近的模块地址为1,下一级为2,以此类推,第n个节点选择逻辑模块地址为n。
7.如权利要求6所述的SPI总线系统,其特征在于:所述的触发器单元包含两位发送寄存器、两位移位寄存器、两位接收寄存器,其中两位移位寄存器中的高位数据用于输出给下一个级别的节点选择逻辑模块的触发器单元,低位数据用于在同一个时钟周期向前进位升为高位数据;两位接收寄存器与两位发送寄存器连接处理器内部的系统总线,CLK线连接到移位寄存器移位控制信号,MOSI线连接至移位寄存器位输入端,MISO连接到移位寄存器的为输出端,CS连接至判决单元,与CSA经过或门接入触发器单元复位信号。
8.如权利要求6所述的SPI总线系统,其特征在于:所述的通道选择单元,由两个与门,一个非门和一个或门组成;其作用通过控制输入实现对于数据输入1和数据输入2的输出通道选择,当控制输入为1时,数据输出脚随数据输入1脚电平变化而变化,当控制输入为0时,数据输出脚随数据输入2脚电平变化而变化。
9.如权利要求6所述的SPI总线系统,其特征在于:所述的判决单元是依据判决表来实现是否选中同级设备的:具体的,每个节点选择逻辑模块的触发器单元寄存器的两位数包含四种状态,分别为“00”、“10”、“01”、“11”,对应的PCS_IN在选择过程中状态为“1”,当选中后,PCS_IN的状态为“0”,也就是说PCS_IN存在“0”和“1”两种状态,故寄存器和PCS_IN组合后包含8种状态,在状态选择过程中,只有当寄存器状态为“10”时,才能表示选中该级别的从设备,选中后,PCS_OUT的输出状态为“0”。
10.如权利要求1所述的SPI总线系统,其特征在于:所述的从设备含有一开关,在节点选择逻辑模块选中同级别的从设备后,会自动进入工作模式。
11.如权利要求6所述的SPI总线系统,其特征在于:所述的节点选择逻辑模块的接口包含至少6个管脚,所述的管脚包含但不限定于时钟数据端口PCLK、下行数据输入端口PMOSI_IN、下行数据输出端口PMOSI_OUT、片选控制线输入端口PCS_IN,地址控制线端口PCSA、片选控制线输出端口PCS_OUT;其中,时钟数据端口PCLK连接CLK线缆,下行数据输入端口PMOSI_IN连接上一级的节点选择逻辑模块,片选控制线输入端口PCS_IN连接CS线缆,地址控制线端口PCSA连接CSA线缆,下行数据输出端口PMOSI_OUT连接下一级节点选择逻辑模块,片选控制线输出端口PCS_OUT连接从设备的片选端口。
12.如权利要求11所述的SPI总线系统,其特征在于:所述的从设备的接口包含至少4个管脚,所述的管脚包含但不限定于片选控制线输入端口PCS_IN、上行数据输出端口PMISO_OUT、下行数据输入端口PMOSI_IN、时钟数据端口PCLK;其中,片选控制线输入端口PCS_IN连接本级的节点选择逻辑模块的片选控制线输出端口PCS_OUT,上行数据输出端口PMISO_OUT连接MISO线缆,下行数据输入端口PMOSI_IN连接本级节点选择逻辑模块与下级节点选择逻辑模块之间的MOSI线缆,时钟数据端口PCLK连接到CLK线缆。
13.一种SPI总线系统的通讯方式,其应用于权利要求1的系统,通讯方法如下:
A.初始化总线:
A1.主控制器初始化SPI模块的各项配置参数,时钟设置为高电平有效,相位设置为下降沿采用,通讯数据位选择8bit,高位先出模式;
A2.主控制器将CSA线缆设置为低电平,CS线缆设置为低电平,迫使挂接在此总线上的所有节点选择逻辑复位模块;
B.选择从设备地址:
B1.主控制器将CS设置为高电平;
B2.编码器和解码器将需要访问的节点选择逻辑模块的地址分别进行编码和解码,最终将需要访问的节点选择逻辑模块的地址转换成二进制数据,该二进制数据通过主控制器的寄存器通过MOSI线依次传送给下一级的节点选择逻辑模块的触发器;
B3.节点选择逻辑模块中触发器包含两位寄存器,在每一个时钟周期过程中,在时钟的下降沿,上一级触发器的两位寄存器的高位数传送给下一级触发器,同时每一个触发器的寄存器中的低位数向前移动一位,变为高位数;以此类推,一直到将主控制器的寄存器中的数据完全输出为止;
B4.在每一个时钟周期过程中,在时钟的下降沿,触发器中的寄存器用来记录上一次时钟周期过程中和本次时钟周期过程中上一级的触发器输入的数据,同时上一次时钟周期过程中上一级触发器的寄存器输入的数据为高位数据,本次时钟周期过程中上一级触发器的寄存器输入的数据为低位数据,在时钟的下一个下降沿,触发器的寄存器中的两位数据输出到判决单元;
B5.由判决单元依据判决表对最后一个时钟周期过程中触发器的寄存器输出的两位数据进行判断,若在时钟周期结束时,寄存器输出的两位数为“10”,则表示主控制器选中该地址;
B6.将CSA设置为高电平;
C.访问从设备:CS_OUT拉低,同级设备被选中,从设备进入SPI通讯状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710238394.8A CN107145460B (zh) | 2017-04-13 | 2017-04-13 | 一种可扩展串行总线系统及其通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710238394.8A CN107145460B (zh) | 2017-04-13 | 2017-04-13 | 一种可扩展串行总线系统及其通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107145460A CN107145460A (zh) | 2017-09-08 |
CN107145460B true CN107145460B (zh) | 2020-07-07 |
Family
ID=59773676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710238394.8A Active CN107145460B (zh) | 2017-04-13 | 2017-04-13 | 一种可扩展串行总线系统及其通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107145460B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107703815B (zh) * | 2017-10-29 | 2020-04-24 | 北京联合大学 | 循环地址式三线spi通讯系统 |
CN109164745B (zh) * | 2018-11-05 | 2020-04-03 | 郑州轻工业学院 | 车载输入输出控制装置、方法及车辆 |
CN109918332B (zh) * | 2019-03-14 | 2020-06-30 | 昆山龙腾光电股份有限公司 | Spi从设备及spi设备 |
CN113032312B (zh) * | 2019-12-24 | 2022-07-05 | 中国电子科技集团公司第二十四研究所 | 多片电路级联通信系统 |
CN113505094B (zh) * | 2021-09-06 | 2022-01-25 | 上海类比半导体技术有限公司 | Mcu、主机与多个mcu传输数据的方法 |
CN117520220B (zh) * | 2024-01-08 | 2024-04-09 | 湖南恩智测控技术有限公司 | 自动更新数据方法、系统、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928345A (en) * | 1996-09-30 | 1999-07-27 | Rosemont Inc. | Field instrument with data bus communications protocol |
CN102104515A (zh) * | 2009-12-18 | 2011-06-22 | 英飞凌科技股份有限公司 | 耦合装置、包括耦合装置的系统和用于该系统的方法 |
CN102110068A (zh) * | 2009-12-29 | 2011-06-29 | 财团法人工业技术研究院 | 可串接的序列总线装置及其管理方法及串接方法 |
CN105550147A (zh) * | 2015-12-11 | 2016-05-04 | 上海华冠电子设备有限责任公司 | 一种spi总线扩展系统及其通讯方法 |
-
2017
- 2017-04-13 CN CN201710238394.8A patent/CN107145460B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928345A (en) * | 1996-09-30 | 1999-07-27 | Rosemont Inc. | Field instrument with data bus communications protocol |
CN102104515A (zh) * | 2009-12-18 | 2011-06-22 | 英飞凌科技股份有限公司 | 耦合装置、包括耦合装置的系统和用于该系统的方法 |
CN102110068A (zh) * | 2009-12-29 | 2011-06-29 | 财团法人工业技术研究院 | 可串接的序列总线装置及其管理方法及串接方法 |
CN105550147A (zh) * | 2015-12-11 | 2016-05-04 | 上海华冠电子设备有限责任公司 | 一种spi总线扩展系统及其通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107145460A (zh) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145460B (zh) | 一种可扩展串行总线系统及其通讯方法 | |
KR101800157B1 (ko) | 데이터 심볼 트랜지션 기반 클록킹에 의한 멀티-와이어 싱글 엔드 푸시-풀 링크 | |
US20190146944A1 (en) | Dynamically adjustable multi-line bus shared by multi-protocol devices | |
US8364873B2 (en) | Data transmission system and a programmable SPI controller | |
JP4657637B2 (ja) | バス接続を介してのランダムアクセスのための方法およびデータ構造 | |
CN103885919A (zh) | 一种多dsp和fpga并行处理系统及实现方法 | |
US9672910B2 (en) | Memory architecture for storing data in a plurality of memory chips | |
US10579581B2 (en) | Multilane heterogeneous serial bus | |
US20120137022A1 (en) | Electronic device with address programmable through reduced number of terminals | |
KR20170126904A (ko) | 공유 멀티 모드 버스 상에서 레거시 및 차세대 디바이스들의 공존을 위한 페어웰 리셋 및 재시작 방법 | |
CN107015927A (zh) | 一种基于SoC支持多个SPI接口标准组的装置 | |
WO2015127282A1 (en) | Coexistence of legacy and next generation devices over a shared multi-mode bus | |
CN107436851B (zh) | 串行外设接口四线隔离系统及其控制方法 | |
JP5332428B2 (ja) | レベルシフト回路及びその方法 | |
TW201921260A (zh) | 在i3c多線匯流排上之奇偶校驗位元位置 | |
US20190220436A1 (en) | Data lane validation procedure for multilane protocols | |
US11127468B2 (en) | Method for addressing a non-volatile memory on I2C bus and corresponding memory device | |
CN206757602U (zh) | 一种基于SoC支持多个SPI接口标准组的装置 | |
US10122553B2 (en) | Transmitting device for high speed communication, interface circuit and system including the same | |
CN208969655U (zh) | 地址扩展电路和具有该电路的i2c通信接口芯片 | |
CN113688091B (zh) | 基于Tsi721的RapidIO动态枚举过程的实现方法及系统 | |
TWI723051B (zh) | 用於串擾駕馭式傳訊的以邏輯為基礎之解碼器 | |
CN109101448A (zh) | 地址扩展电路和具有该电路的i2c通信接口芯片 | |
CN210327790U (zh) | 一种多接口编解码装置 | |
TWI727581B (zh) | 資料傳輸系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |