CN102147778B - 基于半双工串行总线的数据传输系统及传输控制方法 - Google Patents
基于半双工串行总线的数据传输系统及传输控制方法 Download PDFInfo
- Publication number
- CN102147778B CN102147778B CN 201010108636 CN201010108636A CN102147778B CN 102147778 B CN102147778 B CN 102147778B CN 201010108636 CN201010108636 CN 201010108636 CN 201010108636 A CN201010108636 A CN 201010108636A CN 102147778 B CN102147778 B CN 102147778B
- Authority
- CN
- China
- Prior art keywords
- equipment
- data lines
- serial data
- bidirectional serial
- change
- 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
Landscapes
- Bidirectional Digital Transmission (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种基于半双工串行总线的数据传输系统及传输控制方法。本发明所使用的半双工串行总线,在读数据开始传输之前、以及写数据传输完毕之后,会变更双向串行数据线的传输方向,但本发明在双向串行数据线的传输方向变更后,并不是立即开始读操作或确认写操作完成,而是插入了供主设备查询从设备响应的转换周期、且只有在查询到从设备返回的响应后才开始读操作或确认写操作完成,如此一来,无论从设备是高速设备还是慢速设备,主设备无需任何额外操作均可与之匹配,从而使主设备灵活匹配对不同速率从设备的访问。而且,本发明所使用的半双工串行总线还具有不需要任何额外硬件信号的超时处理机制。
Description
技术领域
本发明涉及串行总线技术,特别涉及一种基于半双工串行总线的数据传输系统、以及一种半双工串行总线的传输控制方法。
背景技术
串行总线是一种常用于各种领域的总线协议。例如,在如图1所示的数据处理系统中,FPGA可根据需要设定任意规格的数据处理能力、CPU执行FPGA寄存器配置的管理、以及状态的读取等操作,而CPLD则为FPGA实现CPU接口协议的解析,其中,CPLD与FPGA之间通常就会采用任意类型的串行总线。
一种实现方式为:CPLD与FPGA之间的串行总线可以采用I2C总线,I2C总线是一种半双工串行总线。参见图2,作为主(Master)设备的CPLD与作为从(Slave)设备的FPGA之间,具有双向数据信号线(I2C DATA)、以及时钟信号输出线(I2C CLK)。基于半双工的I2C总线,CPLD可以通过页面(Page)写和随机(Random)读的方式访问FPGA,但却存在如下问题:
1、I2C总线对慢速从设备(本文所述的“慢速”是指对主设备的响应较慢)的访问,需要通过拉低I2C CLK的方式来表示从设备在等待,实现较为复杂;
2、I2C总线没有访问超时退出的机制,因而如果从设备出现访问超时退出,需要利用额外的硬复位信号恢复从设备;
3、I2C总线数据传输速率较低,一般只有400KHz、最高也只有2.4MHz;
4、I2C总线的数据传输依据电平触发起始和停止,严格意义上看属于抗干扰能力较差的电平触发。
另一种实现方式为:CPLD与FPGA之间的串行总线可以采用串行外围接口(SPI)总线,SPI总线是一种全双工的串行总线。参见图3,作为主设备的CPLD与作为从设备的FPGA之间,具有时钟信号输出线(SPI CLK)、片选输出信号线(SPI CS)、数据信号输入线(SPI SDI)、以及数据信号输出线(SPI SDO)。基于全双工的SPI总线,CPLD可以通过Page写和Page读的方式访问FPGA,但也存在如下问题:
1、SPI总线不支持对慢速从设备的访问;
2、SPI总线没有访问超时退出的机制,主设备和从设备均无法正常退出;
3、SPI总线的信号管脚数量相对较多,相互独立的读写通道造成管脚的浪费。
可见,现有技术中的上述两种串行总线不能灵活匹配对不同速率从设备的访问、不具有超时退出机制,进一步地,还不能同时兼顾高传输速率和较少的信号管脚。
发明内容
有鉴于此,本发明提供了一种基于半双工串行总线的数据传输系统、以及一种半双工串行总线的传输控制方法,能够灵活匹配对不同速率从设备的访问。
本发明提供的一种基于半双工串行总线的数据传输系统,包括主设备和从设备,其中,主设备通过一路时钟信号输出线、以及一路双向串行数据线与从设备相连;
主设备对从设备执行读操作时,先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示读操作的命令字、地址信号;然后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后开始数据周期,读取从设备的数据、并在读取完毕后开始空闲周期;
主设备对从设备进行写操作时,先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示写操作的命令字、地址信号;然后开始数据周期,向从设备写入数据;数据写入完毕后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后变更双向串行数据线的传输方向、开始空闲周期。
在转换周期内,双向串行数据线保持固定电平状态,从设备通过在双向串行数据线上产生预定电平变化组合来向主设备返回响应。
在转换周期内,主设备进一步在双向串行数据线上查询到区别于所述预定电平变化组合的电平变化后,确认从设备的响应操作超时、并异常退出;主设备还进一步对转换周期的持续时间计时,在计时到达后确认主设备超时、并异常退出。
在转换周期内,双向串行数据线保持高电平,预定电平变化组合先后包括连续2个时钟周期的低电平、以及1个时钟周期的高电平,所述区别于所述预定电平变化组合的电平变化为连续3个时钟周期的低电平。
主设备和从设备通过切换各自的接口方向来变更双向串行数据线的传输方向,且双向串行数据线通过上拉电阻保持高电平。
前导码为连续32个时钟周期的高电平;
起始标志为连续的1个时钟周期低电平、以及1个时钟周期高电平;
表示读操作的命令字为连续的1个时钟周期高电平、以及1个时钟周期低电平;
表示写操作的命令字为连续的1个时钟周期低电平、以及1个时钟周期高电平。
地址信号占用可支持多个从设备统一编址的若干个时钟周期。
数据周期包含以字节为单位的若干时钟周期。
主设备和从设备采用时钟边沿采样。
主设备和从设备在时钟下降沿发出数据、在时钟上升沿接收数据。
本发明提供的一种半双工串行总线的传输控制方法,设置主设备通过一路时钟信号输出线、以及一路双向串行数据线与从设备相连,且该传输控制方法包括如下步骤:
对从设备执行读操作时,主设备先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示读操作的命令字、地址信号;然后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后开始数据周期,读取从设备的数据、并在读取完毕后开始空闲周期;
对从设备进行写操作时,主设备先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示写操作的命令字、地址信号;然后开始数据周期,向从设备写入数据;数据写入完毕后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后变更双向串行数据线的传输方向、开始空闲周期。
在转换周期内,双向串行数据线保持固定电平状态,从设备通过在双向串行数据线上产生预定电平变化组合来向主设备返回响应。
在转换周期内,进一步由主设备在双向串行数据线上查询到区别于所述预定电平变化组合的电平变化后,确认从设备的响应操作超时、并异常退出;还进一步由主设备对转换周期的持续时间计时,在计时到达后确认主设备超时、并异常退出。
在转换周期内,双向串行数据线保持高电平,预定电平变化组合先后包括连续2个时钟周期的低电平、以及1个时钟周期的高电平,所述区别于所述预定电平变化组合的电平变化为连续3个时钟周期的低电平。
主设备和从设备切换各自的接口方向来变更双向串行数据线的传输方向,且双向串行数据线通过上拉电阻保持高电平。
前导码为连续32个时钟周期的高电平;
起始标志为连续的1个时钟周期低电平、以及1个时钟周期高电平;
表示读操作的命令字为连续的1个时钟周期高电平、以及1个时钟周期低电平;
表示写操作的命令字为连续的1个时钟周期低电平、以及1个时钟周期高电平。
地址信号占用可支持多个从设备统一编址的若干个时钟周期。
数据周期包含以字节为单位的若干时钟周期。
主设备和从设备采用时钟边沿采样。
主设备和从设备在时钟下降沿发出数据、在时钟上升沿接收数据。
由上述技术方案可见,本发明所使用的半双工串行总线,在读数据开始传输之前、以及写数据传输完毕之后,会变更双向串行数据线的传输方向,但本发明在双向串行数据线的传输方向变更后,并不是立即开始读操作或确认写操作完成,而是插入了供主设备查询从设备响应的转换周期、且只有在查询到从设备返回的响应后才开始读操作或确认写操作完成,如此一来,无论从设备是高速设备还是慢速设备,主设备无需任何额外操作均可与之匹配,从而使主设备灵活匹配对不同速率从设备的访问。
可选地,本发明可以利用预定的电平变化组合作为从设备返回的响应,使主设备对从设备响应的查询更易于实现。
进一步地,本发明所使用的半双工串行总线还具有超时处理机制,该机制只需主设备利用异常的电平变化即可识别出从设备超时,无需任何额外的硬件信号。
再进一步地,本发明所使用的半双工串行总线中,数据周期可以包含以字节为单位的若干时钟周期,因而支持多页面数据的高速传输,且由于本发明所使用的半双工串行总线仅具有两根信号线,因而能够同时兼顾高传输速率和较少的信号管脚。
此外,本发明所使用的半双工串行总线还可支持多个从设备统一编址,并可采用抗干扰能力较强的时钟边沿采样。
附图说明
图1为现有串行总线的一种应用形式示意图;
图2为现有如图1所示应用形式的一种具体接口形式示意图;
图3为现有如图1所示应用形式的另一种具体接口形式示意图;
图4为本发明实施例中半双工串行总线的接口形式示意图;
图5为本发明实施例中半双工串行总线的一读写操作实例的时序图;
图6为本发明实施例中主设备内部状态机的一状态转移实例的示意图;
图7为本发明实施例中传输控制方法针对读操作的流程示意图;
图8为本发明实施例中传输控制方法针对写操作的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本实施例中基于半双工串行总线的数据传输系统包括例如CPLD等主设备、以及例如FPGA等从设备,主设备与每一个从设备之间通过半双工串行总线相连,如图4所示,半双工串行总线包括、且仅包括两根信号线:由主设备连接至从设备的一路时钟信号输出线SCLK、以及主设备与从设备之间的一路双向串行数据线SDIO。
基于该半双工串行总线,主设备与从设备之间按照如表1a所示的预定帧格式进行读操作的交互、按照如表1b所示的预定帧格式进行写操作的交互。
表1a半双工串行总线读操作时的帧格式
表1b半双工串行总线写操作时的帧格式
按照上述帧格式,主设备与从设备之间针对读操作和写操作的交互方式如下:
1)主设备对从设备执行读操作时:先通过双向串行数据线向从设备顺序写入Prem、ST、表示读操作的OP、Addr信号;然后,变更双向串行数据线的传输方向、即放弃对双向串行数据线的驱动而转由从设备驱动,开始TA周期,并在双向串行数据线上查询从设备返回的响应;TA周期内查询到从设备返回的响应后开始Data周期,读取从设备的数据;读取完毕后开始Idle周期;
如上可见,读数据的Data周期开始之前,双向串行数据线的传输方向会发生变更、即由主设备向从设备写变为主设备自从设备读,但主设备不是立即开始读操作,而是先在TA周期内查询、并等待从设备返回响应,且只有在查询到从设备返回的响应后才开始读操作,从而能够避免主设备在从设备未完成数据读取的准备时而读取到错误的数据,例如,避免主设备在从设备尚未确定数据读取的起始位时即开始读操作,再例如,避免主设备在从设备尚未调整电平状态时即开始读操作,如此一来,无论从设备是高速设备还是慢速设备,主设备无需任何额外操作均可与之匹配,进而还能够提高数据读取的可靠性。
2)主设备对从设备进行写操作时:先通过双向串行数据线向从设备顺序写入Prem、ST、表示写操作的OP、Addr信号;然后开始Data周期,向从设备写入数据;数据写入完毕后变更双向串行数据线的传输方向、即放弃对双向串行数据线的驱动而转由从设备驱动,开始TA周期,并在双向串行数据线上查询从设备返回的响应;TA周期内查询到从设备返回的响应后,变更双向串行数据线的传输方向、即由主设备重新驱动双向串行数据线,然后开始Idle周期;
如上可见,写数据的Data周期结束之后,双向串行数据线的传输方向会发生变更、即由主设备向从设备写变为主设备自从设备读,但主设备并不是立即开始Idle周期,而是先在TA周期内查询、并等待从设备返回响应,且只有在查询到从设备返回的响应后才确认写操作完成、并开始Idle周期,从而能够避免从设备未完成数据写入时所可能产生的写错误,例如,避免主设备在从设备尚未完成当前数据写入时即开始下一次写入,再例如,避免主设备在从设备当前写数据出错后由于已开始Idle周期而无法重新写入,如此一来,无论从设备是高速设备还是慢速设备,主设备无需任何额外操作均可与之匹配。
为了使主设备对从设备响应的查询更易于实现,本实施例可以利用预定的电平变化组合作为从设备返回的响应。具体说,在TA周期内,双向串行数据线可以保持固定的电平状态,即持续高电平、或持续低电平,而从设备则可以通过在双向串行数据线上产生预定电平变化组合来向主设备返回响应。
进一步地,对于从设备以预定电平变化组合作为响应的方式,只要从设备出现超时异常,即会导致半双工串行总线在TA周期内出现区别于预定电平变化组合的异常电平变化,因此,利用该特性,本实施例可以为半双工串行总线设置一超时处理机制,该机制可以由主设备进一步在双向串行数据线上查询到区别于所述预定电平变化组合的任一种异常电平变化后,确认从设备的响应操作超时、并异常退出,这样,可以避免例如FPGA等从设备产生超时操作并长时间占用串行总线。当然,主设备也不是无休止地查询,主设备自身可以对TA周期的持续时间计时,当计时到达时认定主设备超时,也会异常退出。
下面,再结合一较佳实例,对本实施例中基于半双工串行总线的数据传输系统进行进一步说明。
在本实例中,主设备与从设备之间读操作时的帧格式各部分位宽比特(bit)数、以及电平定义如表2a所示,主设备与从设备之间写操作时的帧格式各部分位宽比特数、以及电平定义如表2b所示。
Prem | ST | OP | Addr | TA周期 | Data周期 | Idle周期 | |
位宽比特数 | 32 | 2 | 2 | 24 | 5 | 8×N | 1 |
电平定义 | 1……1 | 01 | 10 | …… | ZX……XZ | …… | Z |
表2a半双工串行总线读操作时的帧格式具体定义
Prem | ST | OP | Addr | Data周期 | TA周期 | Idle周期 | |
位宽比特数 | 32 | 2 | 2 | 24 | 8×N | 5 | 1 |
写操作 | 1……1 | 01 | 01 | …… | …… | ZX……XZ | Z |
表2b半双工串行总线写操作时的帧格式具体定义
如表2a和表2b所示,除了表示读操作的OP与表示写操作的OP不同、以及读写操作是TA周期的顺序不同之外,无论是读操作还是写操作:
Prem均为连续32个时钟周期(1个时钟周期对应1比特)的高电平1;
ST均为连续的1个时钟周期低电平0、以及1个时钟周期高电平1;
Addr信号均占用可支持多个从设备统一编址的24个时钟周期,即有64K的地址空间可供多个从设备统一编址;当然,Addr信号所占用的时钟周期并不限于表2a和表2b所示的24个,而是可以为更多数量的连续时钟周期,从而能够进一步扩展可供更多从设备统一编址的地址空间;
Data周期均包含以字节(BYTE)为单位的8×N个时钟周期、N为大于等于1的正整数,用以支持多页面数据的高速传输。
此外,TA周期内:
在第1个时钟周期,主设备和从设备均不驱动双向串行数据线、并切换各自的接口方向,即主设备在第1个时钟周期将自身置为高阻状态Z、以放弃对双向串行数据线的驱动,并将接口的输出方向改为输入方向,从设备在第1个时钟周期也将自身置为高阻状态Z、以放弃对双向串行数据线的驱动,并将接口的输入方向改为输出方向;
在第1个时钟周期之后的至少3个时钟周期(即表2a和表2b中示出的“X……X”、其长短取决于主设备查询到预定电平变化组合的等待时间),主设备为输入接口且不需要驱动总线、从设备为输出接口,由于双向串行数据线具有一上拉电阻、即接口的电气特性为漏极开路(OD)门,因而在从设备产生表示响应的预定电平变化组合之前,从设备可以不驱动双向串行数据线,而主设备则可以查询到高电平的等待状态(即表2a和表2b中示出的“X”),直至查询到从设备产生的预定电平变化组合(即表2a和表2b中未示出)、然后开始TA周期内的最后1个时钟周期。
在最后1个时钟周期,主设备和从设备仍然均不驱动双向串行数据线、并在写操作时将各自的接口方向分别切换回TA周期开始之前的方向,即主设备在最后1个时钟周期将自身置为高阻状态Z、以放弃对双向串行数据线的驱动,并将接口的输入方向再改回为输出方向,从设备在最后1个时钟周期也将自身置为高阻状态Z、以放弃对双向串行数据线的驱动,并将接口的输出方向再改回为输入方向。
基于表2a和2b所示的帧结构,半双工串行总线上的电平变化时序如图5所示:
1)读操作的电平变化依次如下:
主设备向从设备连续写入32比特高电平1的Prem;
主设备向从设备连续写入1比特电平0、以及1个高电平1;
主设备向从设备连续写入24比特地址信号A;
主设备放弃对双向串行数据线的驱动、并切换其接口方向后,查询到高电平的等待状态;
从设备驱动双向串行数据线,返回连续2比特低电平0以及1比特高电平1、即001作为响应后,主设备接收来自从设备的8×N比特的数据D、即读数据,然后正常退出;但如果主设备在双向串行数据线上查询到的不是001、而是000,则主设备可认为该电平变化属于异常电平变化,因而可以确认从设备超时、并异常退出。
2)写操作的电平变化依次如下:
主设备向从设备连续写入32比特高电平1的Prem;
主设备向从设备连续写入1比特电平0、以及1个高电平1;
主设备向从设备连续写入24比特地址信号A;
主设备向从设备发送8×N比特的数据D、即写数据;
主设备放弃对双向串行数据线的驱动、并切换其接口方向后,查询到高电平的等待状态;
从设备驱动双向串行数据线,返回连续2比特低电平0以及1比特高电平1、即001作为响应后,主设备即可正常退出;但如果主设备在双向串行数据线上查询到的不是001、而是000,则主设备可认为该电平变化属于异常电平变化,因而可以确认从设备超时、并异常退出。
实际应用中,主设备和从设备可以采用时钟边沿采样,以提高抗干扰能力。具体说,主设备和从设备在时钟下降沿发出数据、在时钟上升沿接收数据。
基于表2a和2b所示的帧结构、以及如图5所示的双向串行数据线的电平变化时序,主设备状态机的状态转移方式可以如图6所示:
空闲状态:主设备内可设置有寄存器REQ,在未收到外部读写请求的情况下REQ=0,如果主设备收到例如CPU等发送的外部读写请求,则变更REQ=1,并切换至命令地址状态;
命令地址状态:主设备判断读写请求的类型,如果为写操作,则主设备记录内部寄存器OP=01,然后顺序向从设备连续写入32比特Prem、2比特ST、2比特表示写操作的OP、以及24比特Addr信号,并利用主设备内的计数器CNT1对写入的上述比特数计数,当计数器CNT1计数到达而设置主设备内的寄存器CNT1_END=1时,切换至写状态;
写状态:连续向从设备写入8×N比特的数据,并利用主设备内的计数器CNT2对写入的上述比特数计数,当计数器CNT2计数到达而设置主设备内的寄存器CNT2_END=1时,切换至查询状态;
查询状态:主设备利用位宽为3比特的寄存器STATUS[2:0]记录TA周期内双向串行数据线上的电平变化,当STATUS[2]=1、且主设备内表示主设备超时的寄存器OVT_FLG=0时,即TA周期内双向串行数据线上的电平持续为高电平1,因而继续保持查询状态;当STATUS[2]=1、且寄存器OVT_FLG=1时,即主设备由于未收到响应而超时,则切换至结束状态;当STATUS[2]=0时,即TA周期内双向串行数据线上的电平发生了变化,则切换至响应判断状态;
响应判断状态:如果STATUS[1:0]=00,即从设备返回的是000、而非001,则确认从设备超时并切换至结束状态;如果STATUS[1:0]=01、且寄存器OP=01,则表示从设备正常响应且写操作完毕,切换至结束状态;如果STATUS[1:0]=01、且寄存器OP=10,则表示从设备正常响应且可以开始读操作,切换至读状态;
读状态:连续接收来自从设备的8×N比特的数据,并利用主设备内的计数器CNT3对接收的上述比特数计数,当计数器CNT3计数到达而设置主设备内的寄存器CNT3_END=1时,切换至结束状态;
结束状态:直接切换至空闲状态,并设置寄存器REQ=0,继续维持在空闲状态,等待下一次读写请求。
以上,是对本实施例中基于半双工串行总线的数据传输系统及其实例的详细说明,下面,再对本实施例中半双工串行总线的传输控制方法进行说明。
本实施例中的半双工串行总线的传输控制方法,首先需要设置例如CPLD等主设备通过一路时钟信号输出线、以及一路双向串行数据线,与例如FPGA等从设备相连,且该传输控制方法包括读操作和写操作的两部分。
图7为本发明实施例中传输控制方法针对读操作的流程示意图。如图7所示,本实施例中的传输控制方法针对读操作包括如下步骤:
步骤701,主设备通过双向串行数据线向从设备顺序写入Prem、ST、表示读操作的OP、Addr信号;
步骤702,双向串行数据线的传输方向变更,主设备开始TA周期、并在双向串行数据线上查询从设备返回的响应;
步骤703,主设备查询到从设备返回的响应后开始Data周期、并读取从设备的数据;
步骤704,主设备在读取完毕后开始Idle周期。
至此,一次读操作的处理流程结束。
如上述流程可见,读数据的Data周期开始之前,双向串行数据线的传输方向会发生变更、即由主设备向从设备写变为主设备自从设备读,但主设备不是立即开始读操作,而是先在TA周期内查询、并等待从设备返回响应,且只有在查询到从设备返回的响应后才开始读操作,如此一来,无论从设备是高速设备还是慢速设备,主设备无需任何额外操作均可与之匹配。
图8为本发明实施例中传输控制方法针对写操作的流程示意图。如图8所示,本实施例中的传输控制方法针对写操作包括如下步骤:
步骤801,主设备通过双向串行数据线向从设备顺序写入Prem、ST、表示读操作的OP、Addr信号;
步骤802,开始Data周期,主设备向从设备写入数据;
步骤803,数据写入完毕后,双向串行数据线的传输方向变更,开始TA周期、并在双向串行数据线上查询从设备返回的响应;
步骤804,查询到从设备返回的响应后,双向串行数据线的传输方向变更,开始Idle周期。
至此,一次写操作的流程结束。
如上述流程可见,写数据的Data周期结束之后,双向串行数据线的传输方向会发生变更、即由主设备向从设备写变为主设备自从设备读,但主设备并不是立即开始Idle周期,而是先在TA周期内查询、并等待从设备返回响应,且只有在查询到从设备返回的响应后才确认写操作完成、并开始Idle周期,如此一来,无论从设备是高速设备还是慢速设备,主设备无需任何额外操作均可与之匹配。
实际应用中,无论是如图7所示的读操作流程还是如图8所示的写操作流程,为了使主设备对从设备响应的查询更易于实现,在TA周期内可以设置双向串行数据线保持固定电平状态,并令从设备通过在双向串行数据线上产生预定电平变化组合来向主设备返回响应。
进一步地,对于从设备以预定电平变化组合作为响应的方式,只要从设备出现超时异常,即会导致半双工串行总线在TA周期内出现区别于预定电平变化组合的异常电平变化,因此,利用该特性,如图7所示的读操作流程、以及如图8所示的写操作流程中,均可以由主设备在TA周期内查询到双向串行数据线上出现区别于所述预定电平变化组合的异常电平变化后,确认从设备的响应操作超时、并异常退出。当然,主设备也不是无休止地查询,主设备自身可以对TA周期的持续时间计时,当计时到达时认定主设备超时,也会异常退出。
此外,本实施例中的半双工串行总线的传输控制方法,也适用如表2a和表2b所示出的帧结构具体定义实例,在此不在赘述。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种基于半双工串行总线的数据传输系统,包括主设备和从设备,其特征在于,主设备通过一路时钟信号输出线、以及一路双向串行数据线与从设备相连;
主设备对从设备执行读操作时,先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示读操作的命令字、地址信号;然后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后开始数据周期,读取从设备的数据、并在读取完毕后开始空闲周期;
主设备对从设备进行写操作时,先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示写操作的命令字、地址信号;然后开始数据周期,向从设备写入数据;数据写入完毕后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后变更双向串行数据线的传输方向、开始空闲周期。
2.如权利要求1所述的数据传输系统,其特征在于,在转换周期内,双向串行数据线保持固定电平状态,从设备通过在双向串行数据线上产生预定电平变化组合来向主设备返回响应。
3.如权利要求2所述的数据传输系统,其特征在于,在转换周期内,主设备进一步在双向串行数据线上查询到区别于所述预定电平变化组合的电平变化后,确认从设备的响应操作超时、并异常退出;主设备还进一步对转换周期的持续时间计时,在计时到达后确认主设备超时、并异常退出。
4.如权利要求3所述的数据传输系统,其特征在于,在转换周期内,双向串行数据线保持高电平,预定电平变化组合先后包括连续2个时钟周期的低电平、以及1个时钟周期的高电平,所述区别于所述预定电平变化组合的电平变化为连续3个时钟周期的低电平。
5.如权利要求4所述的数据传输系统,其特征在于,主设备和从设备通过切换各自的接口方向来变更双向串行数据线的传输方向,且双向串行数据线通过上拉电阻保持高电平。
6.如权利要求4所述的数据传输系统,其特征在于,
前导码为连续32个时钟周期的高电平;
起始标志为连续的1个时钟周期低电平、以及1个时钟周期高电平;
表示读操作的命令字为连续的1个时钟周期高电平、以及1个时钟周期低电平;
表示写操作的命令字为连续的1个时钟周期低电平、以及1个时钟周期高电平。
7.如权利要求1至6中任一项所述的数据传输系统,其特征在于,地址信号占用支持多个从设备统一编址的若干个时钟周期。
8.如权利要求1至6中任一项所述的数据传输系统,其特征在于,数据周期包含以字节为单位的若干时钟周期。
9.如权利要求1至6中任一项所述的数据传输系统,其特征在于,主设备和从设备采用时钟边沿采样。
10.如权利要求9所述的数据传输系统,其特征在于,主设备和从设备在时钟下降沿发出数据、在时钟上升沿接收数据。
11.一种半双工串行总线的传输控制方法,其特征在于,设置主设备通过一路时钟信号输出线、以及一路双向串行数据线与从设备相连,且该传输控制方法包括如下步骤:
对从设备执行读操作时,主设备先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示读操作的命令字、地址信号;然后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后开始数据周期,读取从设备的数据、并在读取完毕后开始空闲周期;
对从设备进行写操作时,主设备先通过双向串行数据线向从设备顺序写入前导码、起始标志、表示写操作的命令字、地址信号;然后开始数据周期,向从设备写入数据;数据写入完毕后变更双向串行数据线的传输方向、开始转换周期,并在双向串行数据线上查询从设备返回的响应;转换周期内查询到从设备返回的响应后变更双向串行数据线的传输方向、开始空闲周期。
12.如权利要求11所述的传输控制方法,其特征在于,在转换周期内,双向串行数据线保持固定电平状态,从设备通过在双向串行数据线上产生预定电平变化组合来向主设备返回响应。
13.如权利要求12所述的传输控制方法,其特征在于,在转换周期内,进一步由主设备在双向串行数据线上查询到区别于所述预定电平变化组合的电平变化后,确认从设备的响应操作超时、并异常退出;还进一步由主设备对转换周期的持续时间计时,在计时到达后确认主设备超时、并异常退出。
14.如权利要求13所述的传输控制方法,其特征在于,在转换周期内,双向串行数据线保持高电平,预定电平变化组合先后包括连续2个时钟周期的低电平、以及1个时钟周期的高电平,所述区别于所述预定电平变化组合的电平变化为连续3个时钟周期的低电平。
15.如权利要求14所述的传输控制方法,其特征在于,主设备和从设备切换各自的接口方向来变更双向串行数据线的传输方向,且双向串行数据线通过上拉电阻保持高电平。
16.如权利要求14所述的传输控制方法,其特征在于,
前导码为连续32个时钟周期的高电平;
起始标志为连续的1个时钟周期低电平、以及1个时钟周期高电平;
表示读操作的命令字为连续的1个时钟周期高电平、以及1个时钟周期低电平;
表示写操作的命令字为连续的1个时钟周期低电平、以及1个时钟周期高电平。
17.如权利要求11至16中任一项所述的传输控制方法,其特征在于,地址信号占用支持多个从设备统一编址的若干个时钟周期。
18.如权利要求11至16中任一项所述的传输控制方法,其特征在于,数据周期包含以字节为单位的若干时钟周期。
19.如权利要求11至16中任一项所述的传输控制方法,其特征在于,主设备和从设备采用时钟边沿采样。
20.如权利要求19所述的传输控制方法,其特征在于,主设备和从设备在时钟下降沿发出数据、在时钟上升沿接收数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010108636 CN102147778B (zh) | 2010-02-05 | 2010-02-05 | 基于半双工串行总线的数据传输系统及传输控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010108636 CN102147778B (zh) | 2010-02-05 | 2010-02-05 | 基于半双工串行总线的数据传输系统及传输控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102147778A CN102147778A (zh) | 2011-08-10 |
CN102147778B true CN102147778B (zh) | 2013-09-11 |
Family
ID=44422047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010108636 Active CN102147778B (zh) | 2010-02-05 | 2010-02-05 | 基于半双工串行总线的数据传输系统及传输控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102147778B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092175B (zh) * | 2013-01-21 | 2015-04-15 | 杭州华三通信技术有限公司 | I2c主设备与从设备之间串行时钟线scl控制的方法及装置 |
US9946675B2 (en) * | 2013-03-13 | 2018-04-17 | Atieva, Inc. | Fault-tolerant loop for a communication bus |
CN103402286B (zh) * | 2013-07-10 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种指示灯控制方法和fpga |
CN104375965B (zh) * | 2013-08-15 | 2017-09-15 | 竣阳国际开发股份有限公司 | 多工具机操作系统 |
CN105512070B (zh) * | 2015-12-02 | 2018-07-06 | 中国电子科技集团公司第四十一研究所 | 一种基于串行总线的控制系统 |
CN105550151B (zh) * | 2015-12-02 | 2018-07-24 | 中国电子科技集团公司第四十一研究所 | 一种高效串行总线控制电路 |
CN105457211A (zh) * | 2015-12-17 | 2016-04-06 | 九江精密测试技术研究所 | 一种二总线的环形组网方法及系统 |
CN106201984A (zh) * | 2016-07-15 | 2016-12-07 | 青岛海信电器股份有限公司 | 一种数据读取方法及装置 |
KR102235290B1 (ko) * | 2019-01-24 | 2021-04-02 | (주)실리콘인사이드 | 캐스케이드 연결 구조의 호스트와 슬레이브 장치 |
CN114880270B (zh) * | 2022-06-02 | 2024-05-28 | 厦门紫光展锐科技有限公司 | Spi设备及其数据传输方法 |
CN117056274B (zh) * | 2023-08-29 | 2024-01-30 | 浙江波誓盾科技有限公司 | 一种用于单核处理器的并行数据通信架构及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1128271A1 (en) * | 2000-02-22 | 2001-08-29 | THOMSON multimedia S.A. | Method for the serial transfer of data between two electronic bus stations and bus station for use in said method |
JP2006527549A (ja) * | 2003-06-13 | 2006-11-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 時間依存型デジタル装置を直列に相互接続するためのシリアル・バス・インターフェースおよび方法 |
CN100530156C (zh) * | 2007-08-03 | 2009-08-19 | 杭州华三通信技术有限公司 | 一种主从模块间的控制方法和装置 |
US7668977B2 (en) * | 2007-09-12 | 2010-02-23 | Infineon Technologies Austria Ag | Method for exchanging information between devices connected via a communication link |
-
2010
- 2010-02-05 CN CN 201010108636 patent/CN102147778B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102147778A (zh) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102147778B (zh) | 基于半双工串行总线的数据传输系统及传输控制方法 | |
CN100481043C (zh) | 用于处理输入/输出命令的方法、系统和程序 | |
EP1046111B1 (en) | Data transferring in source-synchronous and common clock protocols | |
CN101346708B (zh) | 全缓冲dimm读数据替代写确认 | |
EP1764703B1 (en) | A system for providing access to multiple data buffers of a data retaining and processing device | |
CN101568903B (zh) | Nand闪存的基于命令的控制 | |
CN105335326A (zh) | 一种基于fpga的pcie转sata接口阵列的装置 | |
CN103366794A (zh) | 用于减少接脚数内存总线接口的装置及方法 | |
CN103530268A (zh) | 通用串行总线传输转译器及微帧同步方法 | |
US7469312B2 (en) | Computer system bus bridge | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
EP3336710B1 (en) | I²c bridge device | |
CN100561595C (zh) | 使用磁芯存储器的熔丝数据存储系统 | |
CN105681222A (zh) | 一种数据接收缓存方法、装置及通信系统 | |
CN1328679C (zh) | 使用差动信号来提高多媒体卡的传送速率的方法 | |
CN100361108C (zh) | 配置总线上的组件进行输入/输出操作的方法、系统和设备 | |
CN100373361C (zh) | 外设lpc总线接口时序转换方法、装置及输入输出系统 | |
CN117093157B (zh) | 一种用于单向光传输的ddr高速读写方法及系统 | |
CN107783927B (zh) | 用于连接axi接口和dma接口的电路转换系统及方法 | |
CN101261611A (zh) | 一种外围设备间的数据传输装置和传输方法 | |
US6662258B1 (en) | Fly-by support module for a peripheral bus | |
CN100587680C (zh) | 管理分离总线上总线代理之间的数据流的方法和系统 | |
CN101436119A (zh) | 一种与存储卡通讯的系统和方法 | |
CN1744068B (zh) | 主设备和从设备联合同步的实现方法 | |
CN101976230B (zh) | 通用序列总线传输转译器及输入请求同步传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |