CN107703815A - 循环地址式三线spi通讯*** - Google Patents
循环地址式三线spi通讯*** Download PDFInfo
- Publication number
- CN107703815A CN107703815A CN201711032347.4A CN201711032347A CN107703815A CN 107703815 A CN107703815 A CN 107703815A CN 201711032347 A CN201711032347 A CN 201711032347A CN 107703815 A CN107703815 A CN 107703815A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- dlct
- sclk
- main control
- 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.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 66
- 238000004891 communication Methods 0.000 title claims abstract description 64
- 230000002093 peripheral effect Effects 0.000 claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 13
- 230000000630 rising effect Effects 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 9
- 238000002955 isolation Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000011217 control strategy Methods 0.000 claims description 3
- 230000003111 delayed effect Effects 0.000 claims description 3
- 230000009471 action Effects 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Communication Control (AREA)
Abstract
本发明公开了循环地址式三线SPI通讯***,属于工业控制技术领域。该***包括一个主控设备和多个外部设备。主控设备带有CPU,外部设备是数据采集设备或数/模输出设备。主控设备和外部设备都带有标准的SPI接口,主控设备通过SPI接口的时钟线SCLK、数据输入线MDI和数据输出线MDO并经三线SPI控制***与各个外部设备相连接。每次通讯的长度在通讯数据传输之前被传输到三线SPI控制***,而外设片选的地址信息不用传输。本发明采用“从头循环片选”的方式,选择通信的外设。整个通信总线只需一根时钟线、两根数据线,通过三条线就能够和带有SPI协议的外设进行通讯,并且对带有SPI协议的外设没有特殊要求,具有很好的兼容性。
Description
技术领域
本发明公开了循环地址式三线SPI通讯***,属于工业控制技术领域。
背景技术
工业控制上设备之间的通信常常采用串行总线,SPI(Serial PeripheralInterface)是一种被广泛采用的串行通信协议,获得多数相关芯片厂家的支持。该协议由一根启动线、一根时钟线、两根数据线和若干片选线组成。
与多个***设备交换数据时主控设备首先会通过片选信号选择一个想要与其通讯的设备,然后在时钟线上的时钟信号的控制下通过数据线发送和接受数据,主控设备会控制整个通讯过程。
如果***设备较多,主控设备与***设备的连接线就会随***设备的增多而增多,这大大增加了连接的复杂度。在一些应用场合需要为总线增加长线驱动器或是隔离器以增强***的远程通讯能力或可靠性,如果能够减少串行通讯的总线数量无疑将很有意义。此外,在每次通信时所传数据的长度可变并且去掉所夹带的地址信息可以很好地实现通信的灵活性与通信效率之间的平衡,满足了更多实际应用场合的需要。
发明内容
本发明提出了一种使用三条线就可以实现主控设备和带有SPI协议的外设进行通讯的方案。每次通讯的长度在通讯数据传输之前被传输到三线SPI控制***,而外设片选的地址信息不用传输。本发明采用“从头循环片选”的方式,选择通信的外设。整个通信总线只需一根时钟线、两根数据线,通过三条线就能够和带有SPI协议的外设进行通讯,并且对带有SPI协议的外设没有特殊要求,所以该方案具有很好的兼容性。
为实现上述目的,本发明所采用的技术方案是:循环地址式三线SPI通讯***,该***包括一个主控设备和多个外部设备(即从设备)。主控设备带有CPU,外部设备是数据采集设备或数/模输出设备。主控设备和外部设备都带有标准的SPI接口,主控设备通过SPI接口的时钟线SCLK、数据输入线MDI和数据输出线MDO并经三线SPI控制***与各个外部设备相连接。
***组成如图1所示。隔离模块设置在主控设备和三线SPI控制***之间,隔离模块对主控设备所传信号起到隔离作用,隔离模块不改变所传信号的逻辑性质,对SPI的控制逻辑无影响。
隔离模块能用驱动模块替换,驱动模块用以对主控设备所传信号起到驱动作用。
三线SPI控制***组成原理图如图2所示,其中数据长度计数器DLCT负责记录每次通讯时所传数据的长度,所传数据的长度是4位,最多传输16位数据。如果需要传输32位数据,则数据长度计数器需要变成5位计数器。数据长度的值是通过MDO线在时钟SCLK和选择计数器SCT的控制下串行输入到数据长度移位寄存器DLSR中。
帧计数器FCT控制着原始数据的通信周期,每帧的周期由数据位长度所确定。如果数据位长度是4位,则帧最大长度为16位,即最多16个SCLK周期能够完成一次通信。
当数据长度移位寄存器DLSR写满后,结果会在数据长度计数器DLCT控制下写入帧计数器FCT,FCT会依照刚刚写入的数值进行计数,以控制SPI接口数据传输的总周期。
外部设备的选择采用循环地址策略,即外部设备的片选地址信息不由数据线进行传输,在同步之后主控设备依次与第0,1,2,…,n个外部设备通信,数列中的数字表示外部设备的地址并由地址计数器ACT进行控制。外部设备的规模由ACT计数器的位数所决定。如果ACT的位宽为3位,则三线SPI控制***最多控制8台外设。在零比较器的控制下主控设备能够从头访问外设,以提高地址选择效率,避免未接外部设备高位地址的空循环。
本发明由于采取以上技术方案,其具有以下优点:
1、本发明去除了SPI中所有片选线路,通讯线路减少到3条,从而使主从设备之间物理连接被大大简化。
2、由于主从之间的通讯线路数量的减少使得主从设备之间的隔离与驱动的成本大为降低。
3、三线SPI控制***的输出符合SPI接口的协议,因此有较好的兼容性,对从设备模块没有特殊要求,满足SPI接口的芯片或模块均可以接入本***,使其成为***的从设备。
4、每次通信时通信数据的长度可以调整,可以满足不同字长的外部设备的通信要求。
5、选择外部设备的策略采用循环地址策略,外部设备的片选地址信息可以不由数据线进行传输。
6、外部设备的数量由地址计数器的位宽确定,在设计***时可以根据需要设置地址范围,从而满足不同外设规模的***需要。
7、主控设备的控制逻辑基本没有变化,只需将数据位信息加到数据信息的前面。
8、主控设备可以通过同步控制过程使通讯同步到初始状态。
9、在零比较器的控制下主控设备可以从头访问外设,从而提高了地址选择的效率,避免未接外部设备高位地址的空循环。
附图说明
图1三线SPI通讯***的基本组成模块图。
图2三线SPI接口控制***的组成模块图。
图3数据通讯的时序图。
图4主控设备通信初始化流程图。
图5主控设备数据通讯流程图。
图6主控设备时钟同步流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
如图2所示,三线SPI控制***分别由数据长度计数器DLCT、数据长度移位寄存器DLSR、帧计数器FCT、零比较器、地址计数器ACT、选择计数器SCT以及地址译码器部分组成。
数据长度计数器DLCT分别与选择计数器SCT、零比较器和帧计数器FCT连接,数据长度移位寄存器DLSR分别与帧计数器FCT和零比较器连接,零比较器分别与地址计数器ACT和选择计数器SCT连接,选择计数器SCT通过CS延时器与地址译码器连接。帧计数器FCT分别与数据长度计数器DLCT和数据长度移位寄存器DLSR连接。
数据长度计数器DLCT用于记录通信数据长度的位宽,即表达数据长度的时钟个数。通信数据长度的位宽在3~5位之间,用以描述最大数据长度在23~25之间,最终位宽由外设的最长数据位数决定。
若***通过SPI连接了三个数据采集设备,其精度分别是8位、8位和12位,则数据长度计数器DLCT应该设定为4位。但从通信效率角度而言,数据长度计数器DLCT并不是设得越大越好。数据长度移位寄存器DLSR负责记录由主控设备指定的原始通信数据的长度。主控设备在每次发送或接受数据之前都会向三线SPI控制***发送通信数据的长度,而DLSR就是负责接受通信数据的长度,然后将通信数据的长度写入帧计数器FCT。帧数据是整个***要收发的原始数据,它紧随通信数据的长度后。
整个通信周期的时序如图3所示。在说明***的时序时采用如下控制策略:在SCLK下降沿外设读入MDO数据,下降沿发生前主控设备将发送数据准备好并送往MDO端;在SCLK上升沿主控设备读入SDO数据,上升沿发生前外设将发送数据准备好并送往SDO端。与上述控制策略相反的时序其工作原理一样,这里就不另作说明了。
图3以收发12位数据为例,SCLK时序中L3~L0表示4个传送数据长度的时钟周期,D11~D0表示原始数据的收发占12位。在SCLK的下降沿DLSR将MDO的数据移入到自己的串行寄存器,并在DLCT输出为高时将寄存器的数据写入FCT,在随后的SCLK下一个周期的下降沿FCT依据新写入的数据进行计数。
选择计数器SCT记录着DLCT和FCT的状态,选择计数器SCT实际上是一个1位二进制计数器,DLCT和FCT计数计满时都会触发SCT状态反转。整个通信周期划分成DLCT计数周期和帧通信周期,SCT控制着这两个周期的交替切换。
从图3中可以看到:时钟SCLK的第L0周期前半个周期,即第4个周期前半个周期,经SCLK下降沿触发,DLCT输出变为高电平,其宽度等于半个SCLK周期,表示DLCT计数计满。DLCT输出的下降沿将触发SCT计数,即从0变成1的状态改变。初始时SCT的输出为0。该输出信号经过反相器反向之后经CS延时器输入到地址译码器的/CS控制端,该地址译码器的/CS控制端为低电平时使地址译码器有效,这时地址计数器ACT的地址数据被译码。如果ACT的计数位是n位,通过译码器译码后在2n个地址中只有一个地址为有效地址。译码后的输出线将直接连接到外设的片选端。CS延时器作用是使/CS信号的下降沿出现在SCLK信号即L0信号的上升沿之后,以便L0信号恢复成高电平时不会对外部设备产生影响。但L0信号不能延时过长,L0信号最长时长小于SCLK的半周期。SCT的输出也控制着DLCT,FCT以及DLSR。SCT为低电平时,使其控制对象有效。在图2中,SCT的输出通过一个反相器接到了FCT的控制端,这说明当SCT输出为低电平时DLCT和DLSR有效,FCT无效;而SCT输出为高电平时FCT有效,DLCT和DLSR无效。D0周期的下降沿使FCT的输出变为高电平,其宽度等于半个SCLK周期时,表示FCT计满。FCT输出的下降沿将触发SCT计数,即从1变成0的状态改变。同样SCT经CS延时器使/CS片选信号变成无效状态,在无效状态下所有外部设备都不被选中。SCT经CS延时器和ACT延时器使/CS信号充分延时后变成高电平,高电平使ACT计数,即地址自动加1,并为下一次通信做好准备。循环地址式的片选之所以能循环有赖于ACT计数器对SCT输出的计数。ACT延时器的作用是在/CS失效前确保ACT的输出不会被改变,从而保证在/CS有效期间地址译码的输出不会改变。
如果在DLCT周期中DLSR连续读入0,即数据长度被主控设备指定为0,则会触发零比较器变成有效。零比较器还受到DLCT输出的控制,只有在DLCT输出为高电平时零比较器的输出才可能有效。零比较器有效使得地址复位信号有效,复位信号触发ACT清零,这使得地址循环被强制重新开始而不必等待ACT计数计满,以提高寻址的效率,若外部设备共有12个,ACT的位宽必须设为4位,当第12个外设通信完成后,主控设备在DLCT周期向三线SPI控制***发出连续的0数据,然后会使ACT复位成0,使ACT复位成0为强制复位机制。如果没有强制复位机制,ACT需要计数到16才能重新计数。地址复位信号同时还复位了SCT,使通信状态还原成最初状态。
主控设备与三线SPI控制***(简称为控制***)开始通信前需要同步,以便主控设备能够判断控制***何时处于初始状态。同步时主控设备在DLCT周期向控制***每输出一个0数据就会在相同SCLK周期的上升沿从MDI端读入数据。DLCT周期在SCT的控制下所有外设都不被选中,只有“DLCT输出2”被选中。主控设备在DLCT计满时会输出一个SCLK周期的高电平,如图3“4位数据长度计数器DLCT输出”时序中“DLCT输出2”所示。在SCLK时钟的上升沿,主控设备读入该高电平信息从而能够判定该高电平之后为***的初始状态。主控设备的同步过程如图6所示,其具体过程如下:MDO始终输出0,主控设备不断从MDI端读入数据,如果读入不是1,则在SCLK的下一个周期继续从MDI端读入数据直到读到1为止。
主控设备控制着整个通信过程。图4给出了主控设备通信的初始化过程,该过程是要设定DLCT的位宽SIZEDLCT,准备好收发数据的寄存器以及表示数据长度的寄存器。每次通信开始时首先要确定通信帧的数据长度。外部设备的数量记录在Rp中,当前DLCT的位宽记录在CTL中。
如图5所示为主控设备通过三线SPI控制***进行通信的过程。首先将Rp置成0,以便从外设地址0开始寻址。每完成一次读写数据的通信任务后Rp就会自动加1,直到循环至外设地址的最大值SIZEp。当超出最大外设地址时,会调用时钟同步子程序,该程序的流程图如图6所示。
调用时钟同步子程序之后整个程序结束。如果没有超出最大外设地址时则程序将SCLK端置1,CTL置0,收发数据的数据长度写入RL。若要收发12位数据则RL被设置为(1100)b。然后在MDO端输出RL的最高位。接下来判断CTL是否小于SIZEDLCT,如果条件满足说明该SCLK周期应该传输数据长度信息,即RL的信息。传输时首先将SCLK端置0,以便数据接收端读入MDO上的数据。然后在MDO端输出RL的下一位,随后CTL自动加1,最后将SCLK端恢复成1。反复执行直到RL中的所有长度信息传输完毕。经过4个SCLK周期传输完RL中的数据。通信程序接下来要收发帧数据,即原始数据。首先,将接收数据寄存器Rin置0,再把要输出的数据写入Rout寄存器,并使输出数据的最高位与Rout的最高位对齐,即输出数据与Rout要左对齐,以便Rout进行左移操作,最后在MDO端输出Rout的最高位。完成Rout的最高位后,以下进入帧数据循环收发周期:帧数据循环收发周期首先判断帧数据是否收发完毕,即RL是否小于1。如果没有收发完则将SCLK置0,以便数据接收端读入MDO上的数据。之后Rout左移1位并在MDO端输出Rout的最高位,这将为下一个SCLK时钟下降沿向外设写入数据做好准备。之后SCLK恢复成1并且RL自动加1。SCLK由0变成1实际上是命令外设向主控设备通过MDI发送数据,所以主控设备需要将Rin左移1位后读取MDI端的数据到Rin的最低位。反复执行直到Rin和Rout中的所有的信息收发完毕。在进行下一帧数据收发之前Rp自动加1,即下一帧数据的通信地址自动加1。
Claims (4)
1.循环地址式三线SPI通讯***,其特征在于:该***包括一个主控设备和多个外部设备;主控设备带有CPU,外部设备是数据采集设备或数/模输出设备;主控设备和外部设备都带有标准的SPI接口,主控设备通过SPI接口的时钟线SCLK、数据输入线MDI和数据输出线MDO并经三线SPI控制***与各个外部设备相连接;
隔离模块设置在主控设备和三线SPI控制***之间,隔离模块对主控设备所传信号起到隔离作用,隔离模块不改变所传信号的逻辑性质,对SPI的控制逻辑无影响;
隔离模块能用驱动模块替换,驱动模块用以对主控设备所传信号起到驱动作用;
三线SPI控制***分别由数据长度计数器DLCT、数据长度移位寄存器DLSR、帧计数器FCT、零比较器、地址计数器ACT、选择计数器SCT以及地址译码器部分组成;
数据长度计数器DLCT分别与选择计数器SCT、零比较器和帧计数器FCT连接,数据长度移位寄存器DLSR分别与帧计数器FCT和零比较器连接,零比较器分别与地址计数器ACT和选择计数器SCT连接,选择计数器SCT通过CS延时器与地址译码器连接;帧计数器FCT分别与数据长度计数器DLCT和数据长度移位寄存器DLSR连接;
数据长度计数器DLCT负责记录每次通讯时所传数据的长度,所传数据的长度是4位,最多传输16位数据;如果需要传输32位数据,则数据长度计数器需要变成5位计数器;数据长度的值是通过MDO线在时钟SCLK和选择计数器SCT的控制下串行输入到数据长度移位寄存器DLSR中;
帧计数器FCT控制着原始数据的通信周期,每帧的周期由数据位长度所确定;如果数据位长度是4位,则帧最大长度为16位,即最多16个SCLK周期能够完成一次通信;
当数据长度移位寄存器DLSR写满后,结果会在数据长度计数器DLCT控制下写入帧计数器FCT,FCT会依照刚刚写入的数值进行计数,以控制SPI接口数据传输的总周期。
2.根据权利要求1所述的循环地址式三线SPI通讯***,其特征在于:***的时序时采用如下控制策略:在SCLK下降沿外设读入MDO数据,下降沿发生前主控设备将发送数据准备好并送往MDO端;在SCLK上升沿主控设备读入SDO数据,上升沿发生前外设将发送数据准备好并送往SDO端;
收发12位数据时,SCLK时序中L3~L0表示4个传送数据长度的时钟周期,D11~D0表示原始数据的收发占12位;在SCLK的下降沿DLSR将MDO的数据移入到自己的串行寄存器,并在DLCT输出为高时将寄存器的数据写入FCT,在随后的SCLK下一个周期的下降沿FCT依据新写入的数据进行计数;
选择计数器SCT记录着DLCT和FCT的状态,选择计数器SCT实际上是一个1位二进制计数器,DLCT和FCT计数计满时都会触发SCT状态反转;整个通信周期划分成DLCT计数周期和帧通信周期,SCT控制着这两个周期的交替切换;
时钟SCLK的第L0周期前半个周期,即第4个周期前半个周期,经SCLK下降沿触发,DLCT输出变为高电平,其宽度等于半个SCLK周期,表示DLCT计数计满;DLCT输出的下降沿将触发SCT计数,即从0变成1的状态改变;初始时SCT的输出为0;该输出信号经过反相器反向之后经CS延时器输入到地址译码器的/CS控制端,该地址译码器的/CS控制端为低电平时使地址译码器有效,这时地址计数器ACT的地址数据被译码;如果ACT的计数位是n位,通过译码器译码后在2n个地址中只有一个地址为有效地址;译码后的输出线将直接连接到外设的片选端;CS延时器作用是使/CS信号的下降沿出现在SCLK信号即L0信号的上升沿之后,以便L0信号恢复成高电平时不会对外部设备产生影响;但L0信号不能延时过长,L0信号最长时长小于SCLK的半周期;SCT的输出也控制着DLCT,FCT以及DLSR;SCT为低电平时,使其控制对象有效;SCT的输出通过一个反相器接到了FCT的控制端,这说明当SCT输出为低电平时DLCT和DLSR有效,FCT无效;而SCT输出为高电平时FCT有效,DLCT和DLSR无效;D0周期的下降沿使FCT的输出变为高电平,其宽度等于半个SCLK周期时,表示FCT计满;FCT输出的下降沿将触发SCT计数,即从1变成0的状态改变;同样SCT经CS延时器使/CS片选信号变成无效状态,在无效状态下所有外部设备都不被选中;SCT经CS延时器和ACT延时器使/CS信号充分延时后变成高电平,高电平使ACT计数,即地址自动加1,并为下一次通信做好准备;循环地址式的片选之所以能循环有赖于ACT计数器对SCT输出的计数;ACT延时器的作用是在/CS失效前确保ACT的输出不会被改变,从而保证在/CS有效期间地址译码的输出不会改变;
如果在DLCT周期中DLSR连续读入0,即数据长度被主控设备指定为0,则会触发零比较器变成有效;零比较器还受到DLCT输出的控制,只有在DLCT输出为高电平时零比较器的输出才可能有效;零比较器有效使得地址复位信号有效,复位信号触发ACT清零,这使得地址循环被强制重新开始而不必等待ACT计数计满,以提高寻址的效率,若外部设备共有12个,ACT的位宽必须设为4位,当第12个外设通信完成后,主控设备在DLCT周期向三线SPI控制***发出连续的0数据,然后会使ACT复位成0,使ACT复位成0为强制复位机制;如果没有强制复位机制,ACT需要计数到16才能重新计数;地址复位信号同时还复位了SCT,使通信状态还原成最初状态;
主控设备与三线SPI控制***开始通信前需要同步,以便主控设备能够判断控制***何时处于初始状态;同步时主控设备在DLCT周期向控制***每输出一个0数据就会在相同SCLK周期的上升沿从MDI端读入数据;DLCT周期在SCT的控制下所有外设都不被选中,只有“DLCT输出2”被选中;主控设备在DLCT计满时会输出一个SCLK周期的高电平;在SCLK时钟的上升沿,主控设备读入该高电平信息从而能够判定该高电平之后为***的初始状态;主控设备的同步过程具体过程如下:MDO始终输出0,主控设备不断从MDI端读入数据,如果读入不是1,则在SCLK的下一个周期继续从MDI端读入数据直到读到1为止。
3.根据权利要求1所述的循环地址式三线SPI通讯***,其特征在于:主控设备通信的初始化过程,该过程是要设定DLCT的位宽SIZEDLCT,准备好收发数据的寄存器以及表示数据长度的寄存器;每次通信开始时首先要确定通信帧的数据长度;外部设备的数量记录在Rp中,当前DLCT的位宽记录在CTL中;
主控设备通过三线SPI控制***进行通信的过程;首先将Rp置成0,以便从外设地址0开始寻址;每完成一次读写数据的通信任务后Rp就会自动加1,直到循环至外设地址的最大值SIZEp;当超出最大外设地址时,会调用时钟同步子程序;
调用时钟同步子程序之后整个程序结束;如果没有超出最大外设地址时则程序将SCLK端置1,CTL置0,收发数据的数据长度写入RL;若要收发12位数据则RL被设置为(1100)b;然后在MDO端输出RL的最高位;接下来判断CTL是否小于SIZEDLCT,如果条件满足说明该SCLK周期应该传输数据长度信息,即RL的信息;传输时首先将SCLK端置0,以便数据接收端读入MDO上的数据;然后在MDO端输出RL的下一位,随后CTL自动加1,最后将SCLK端恢复成1;反复执行直到RL中的所有长度信息传输完毕;经过4个SCLK周期传输完RL中的数据;通信程序接下来要收发帧数据,即原始数据;首先,将接收数据寄存器Rin置0,再把要输出的数据写入Rout寄存器,并使输出数据的最高位与Rout的最高位对齐,即输出数据与Rout要左对齐,以便Rout进行左移操作,最后在MDO端输出Rout的最高位;完成Rout的最高位后,以下进入帧数据循环收发周期:帧数据循环收发周期首先判断帧数据是否收发完毕,即RL是否小于1;如果没有收发完则将SCLK置0,以便数据接收端读入MDO上的数据;之后Rout左移1位并在MDO端输出Rout的最高位,这将为下一个SCLK时钟下降沿向外设写入数据做好准备;之后SCLK恢复成1并且RL自动加1;SCLK由0变成1实际上是命令外设向主控设备通过MDI发送数据,所以主控设备需要将Rin左移1位后读取MDI端的数据到Rin的最低位;反复执行直到Rin和Rout中的所有的信息收发完毕;在进行下一帧数据收发之前Rp自动加1,即下一帧数据的通信地址自动加1。
4.根据权利要求1所述的循环地址式三线SPI通讯***,其特征在于:外部设备的选择采用循环地址策略,即外部设备的片选地址信息不由数据线进行传输,在同步之后主控设备依次与第0,1,2,…,n个外部设备通信,数列中的数字表示外部设备的地址并由地址计数器ACT进行控制;外部设备的规模由ACT计数器的位数所决定;如果ACT的位宽为3位,则三线SPI控制***最多控制8台外设;在零比较器的控制下主控设备能够从头访问外设,以提高地址选择效率,避免未接外部设备高位地址的空循环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711032347.4A CN107703815B (zh) | 2017-10-29 | 2017-10-29 | 循环地址式三线spi通讯*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711032347.4A CN107703815B (zh) | 2017-10-29 | 2017-10-29 | 循环地址式三线spi通讯*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107703815A true CN107703815A (zh) | 2018-02-16 |
CN107703815B CN107703815B (zh) | 2020-04-24 |
Family
ID=61176729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711032347.4A Expired - Fee Related CN107703815B (zh) | 2017-10-29 | 2017-10-29 | 循环地址式三线spi通讯*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107703815B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639379A (zh) * | 2018-12-20 | 2019-04-16 | 武汉耐普登科技有限公司 | 传感器组件及传感器*** |
CN110768739A (zh) * | 2019-09-27 | 2020-02-07 | 上海畲贡自动化科技有限公司 | 一种同步串行控制***及方法 |
WO2020118950A1 (zh) * | 2018-12-10 | 2020-06-18 | 北京集创北方科技股份有限公司 | 用于串行通信的从设备及方法 |
CN112269338A (zh) * | 2020-10-23 | 2021-01-26 | 阳光电源股份有限公司 | 基于gpio的数字控制器通信方法及*** |
CN112540942A (zh) * | 2020-11-20 | 2021-03-23 | 中电科仪器仪表(安徽)有限公司 | 一种多通道同步串行通信电路及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553640A (zh) * | 2003-06-05 | 2004-12-08 | 中兴通讯股份有限公司 | 一种实现以太网管理接口的装置 |
CN101196866A (zh) * | 2006-07-06 | 2008-06-11 | 旺宏电子股份有限公司 | Spi总线至少一管脚每半脉冲周期传输一比特的方法及装置 |
DE102009002072A1 (de) * | 2008-04-01 | 2009-10-08 | Infineon Technologies Austria Ag | System und Verfahren für ein mehrkanaliges Steuersystem |
CN102831090A (zh) * | 2012-05-07 | 2012-12-19 | 中国科学院空间科学与应用研究中心 | 一种用于星载dsp与fpga通讯接口的地址线及其优化方法 |
CN104484306B (zh) * | 2014-12-31 | 2017-06-20 | 哈尔滨工业大学 | 基于差分信号的主从同步串行通讯总线及其实现方法 |
CN107145460A (zh) * | 2017-04-13 | 2017-09-08 | 上海云统信息科技有限公司 | 一种可扩展串行总线***及其通讯方法 |
-
2017
- 2017-10-29 CN CN201711032347.4A patent/CN107703815B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553640A (zh) * | 2003-06-05 | 2004-12-08 | 中兴通讯股份有限公司 | 一种实现以太网管理接口的装置 |
CN1292563C (zh) * | 2003-06-05 | 2006-12-27 | 中兴通讯股份有限公司 | 一种实现以太网管理接口的装置 |
CN101196866A (zh) * | 2006-07-06 | 2008-06-11 | 旺宏电子股份有限公司 | Spi总线至少一管脚每半脉冲周期传输一比特的方法及装置 |
DE102009002072A1 (de) * | 2008-04-01 | 2009-10-08 | Infineon Technologies Austria Ag | System und Verfahren für ein mehrkanaliges Steuersystem |
CN102831090A (zh) * | 2012-05-07 | 2012-12-19 | 中国科学院空间科学与应用研究中心 | 一种用于星载dsp与fpga通讯接口的地址线及其优化方法 |
CN104484306B (zh) * | 2014-12-31 | 2017-06-20 | 哈尔滨工业大学 | 基于差分信号的主从同步串行通讯总线及其实现方法 |
CN107145460A (zh) * | 2017-04-13 | 2017-09-08 | 上海云统信息科技有限公司 | 一种可扩展串行总线***及其通讯方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020118950A1 (zh) * | 2018-12-10 | 2020-06-18 | 北京集创北方科技股份有限公司 | 用于串行通信的从设备及方法 |
CN109639379A (zh) * | 2018-12-20 | 2019-04-16 | 武汉耐普登科技有限公司 | 传感器组件及传感器*** |
CN110768739A (zh) * | 2019-09-27 | 2020-02-07 | 上海畲贡自动化科技有限公司 | 一种同步串行控制***及方法 |
CN112269338A (zh) * | 2020-10-23 | 2021-01-26 | 阳光电源股份有限公司 | 基于gpio的数字控制器通信方法及*** |
CN112540942A (zh) * | 2020-11-20 | 2021-03-23 | 中电科仪器仪表(安徽)有限公司 | 一种多通道同步串行通信电路及方法 |
CN112540942B (zh) * | 2020-11-20 | 2023-06-02 | 中电科思仪科技(安徽)有限公司 | 一种多通道同步串行通信电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107703815B (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107703815A (zh) | 循环地址式三线spi通讯*** | |
TWI406135B (zh) | 資料傳輸系統與可編程序列周邊介面控制器 | |
CN100521637C (zh) | 基于光纤的高速串行工业实时通信总线***及其控制方法 | |
CN101477504B (zh) | 数据传输***及数据传输方法 | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
CN100416536C (zh) | 10位寻址模式i2c控制器访问大容量存储器的方法 | |
CN102193888B (zh) | 数据传输***与可编程串行***设备接口控制器 | |
JPS62115564A (ja) | インタ−フエ−ス回路 | |
CN101963808B (zh) | 一种支持多种现场总线协议的***的实现方法 | |
CN102023956A (zh) | 集成电路芯片中串行外设从器件接口结构及数据读写方法 | |
CN103677671A (zh) | 一种电口模块的数据读写方法和*** | |
CN102360204A (zh) | 基于FlexRay的分布式飞行控制计算机通信***及控制方法 | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展***和方法 | |
CN102147778A (zh) | 基于半双工串行总线的数据传输***及传输控制方法 | |
CN101794152A (zh) | 具有lvds串行接口的嵌入式控制器及其控制方法 | |
CN101213534A (zh) | 对延时不敏感的fifo信令协议 | |
CN100561595C (zh) | 使用磁芯存储器的熔丝数据存储*** | |
CN104484306A (zh) | 基于差分信号的主从同步串行通讯总线及其实现方法 | |
CN1326057C (zh) | 用于与总线连接的总线***和总线接口 | |
CN100373361C (zh) | 外设lpc总线接口时序转换方法、装置及输入输出*** | |
CN107832249A (zh) | 三线实现和带有spi接口外设进行通讯的***及方法 | |
CN201336032Y (zh) | 一种软件模拟串行数据传输装置 | |
US6332173B2 (en) | UART automatic parity support for frames with address bits | |
CN101415027A (zh) | 基于hdlc协议的通讯模块及数据实时转发存储控制方法 | |
CN100422977C (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200424 |
|
CF01 | Termination of patent right due to non-payment of annual fee |