CN112506839A - 一种一对多spi总线切换方法及装置 - Google Patents

一种一对多spi总线切换方法及装置 Download PDF

Info

Publication number
CN112506839A
CN112506839A CN202011438277.4A CN202011438277A CN112506839A CN 112506839 A CN112506839 A CN 112506839A CN 202011438277 A CN202011438277 A CN 202011438277A CN 112506839 A CN112506839 A CN 112506839A
Authority
CN
China
Prior art keywords
switching
module
spi
bit
signal
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
Application number
CN202011438277.4A
Other languages
English (en)
Other versions
CN112506839B (zh
Inventor
全浩军
崔建飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202011438277.4A priority Critical patent/CN112506839B/zh
Publication of CN112506839A publication Critical patent/CN112506839A/zh
Application granted granted Critical
Publication of CN112506839B publication Critical patent/CN112506839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Abstract

本发明公开了一种一对多SPI总线切换方法及装置,该方法首先设定异步传输参数,然后定义切换指令,之后发送切换指令完成总线切换、进行SPI通信,最后重复由发送指令到SPI通信的过程直至完成所需功能,该装置由主模块、切换指令解析模块、切换模块和多个从模块构成。本方法及装置利用SPI信号线异步传输切换指令,无需额外占用主模块引脚;通过可编程逻辑器件实现SPI总线切换,支持从模块数量多。本发明方法及装置还具有电路简单、可扩展性强等优点,具有很高的实用价值。

Description

一种一对多SPI总线切换方法及装置
技术领域
本发明属于总线切换控制技术领域,涉及一种一对多SPI总线切换方法及装置。
背景技术
SPI(Serial Peripheral Interface,串行外设接口)总线是一种全双工同步总线,具有管脚占用少、简单易用等优点,已经在电子设备中大量采用。该总线多采用4线主从工作方式,即主模块通过CS#、SCLK、MOSI、MISO四根信号线与一个或多个从模块通信。当主模块为一个、从模块数量为多个时,现有的实现方式多采用独立片选方式或独立使能方式。独立片选方式,即各从模块使用独立的CS#片选信号,其余信号共用;独立使能方式,即通过总线收发器等器件使能某个从模块、禁止其余从模块的通信信号传输。这两种方式虽然都达到了一对多SPI总线通信的目的,但限于驱动能力,独立片选方式无法支持较多的从模块,而独立使能方式虽然解决了信号驱动问题,又由于增加了很多使能控制器件而大大增加了电路面积和设计复杂度,且两种实现方式都需要主模块引出多个复用IO作为片选信号或使能信号,导致无法充分利用主模块功能,造成了硬件资源的浪费。
发明内容
(一)发明目的
本发明的目的是:针对现有一对多SPI总线通信存在的诸多问题,提供一种一对多SPI总线切换方法及装置。
(二)技术方案
为了解决上述技术问题,本发明提供一种一对多SPI总线切换方法,包括如下步骤:
步骤1,设定异步传输参数;即设定波特率、最大起始时延、起始位逻辑、校验方式、数据位数和位序;其中波特率为单个数据位宽度的倒数;最大起始时延即当传输异步信号时从CS#信号下降沿开始到起始位跳边沿开始的最大时延,如果在最大起始时延内没有收到起始位,则认为本次CS#低电平期间不传输异步信号;起始位逻辑即起始位为0还是1,该逻辑值应与MOSI常态逻辑相反,即当MOSI常态为1时,应将起始位定为0,否则应将起始位定为1;校验方式可选奇校验、偶校验和无校验,当校验方式为奇校验或偶校验时,校验位个数为1,否则校验位个数为0;数据位数即在CS#低电平期间、起始位之后传输的数据位的个数,该个数包含校验位,数据位中除去校验位的部分为原始数据位,当校验方式为无校验时,数据位即为原始数据位;位序即原始数据位的传输顺序,先传输最高有效位msb还是先传输最低有效位lsb,校验位在原始数据位之后传输。
步骤2,定义切换指令;即为各SPI从模块编号,并建立切换指令与编号值的对应关系。切换指令长度与原始数据位长度一致。
步骤3,发送切换指令;即主模块按步骤1中设定的异步传输参数,利用SPI总线信号线异步发送步骤2中定义的切换指令;具体是在保持SCLK信号不变的前提下,首先将CS#信号置为低电平,然后在最大起始时延内通过MOSI信号线发送起始位,之后依次完成各数据位发送并恢复MOSI信号常态逻辑,最后将CS#信号置为高电平,完成切换指令发送。
步骤4,SPI总线切换;即切换指令接收端根据接收到的有效切换指令将主模块SPI总线切换至指定的SPI从模块;判断切换指令有效应同时满足以下条件:1)由CS#信号下降沿到起始位发送开始的时延小于步骤1中设定的最大起始时延;2)CS#信号低电平期间SCLK无跳边沿;3)CS#信号低电平期间MOSI信号线完成了起始位和所有数据位发送,并恢复至常态逻辑;4)接收到的切换指令是步骤2中已定义的切换指令;将主模块SPI总线切换至指定的SPI从模块即通过可编程逻辑器件建立主模块SPI总线CS#、SCLK、MOSI、MISO四根信号线与指定的SPI从模块CS#、SCLK、MOSI、MISO四根信号线的对应连接关系。
步骤5,进行SPI通信;即在完成总线切换后,SPI主模块与指定的SPI从模块进行正常SPI通信;在SPI正常通信过程中,在CS#信号低电平期间不允许出现SCLK未跳变情况。
步骤6,重复步骤3~5,完成所需功能;即通过多次发送切换指令、进行SPI总线切换,实现主模块与各指定从模块的SPI通信,完成电路所需功能。
本发明还提供一种一对多SPI总线切换装置,由主模块、切换指令解析模块、切换模块和多个从模块构成,其中:
所述主模块通过CS#、SCLK、MOSI、MISO四根信号线与切换模块相连,并通过CS#、SCLK、MOSI三根信号线与切换指令解析模块相连;
所述切换指令解析模块接收主模块发送的切换指令,并根据接收到的有效切换指令通过切换模块将主模块SPI总线切换至指定的SPI从模块。
所述切换模块在切换指令解析模块的控制下将主模块SPI总线切换至指定的SPI从模块;
所述多个从模块的每个从模块均通过CS#、SCLK、MOSI、MISO四根信号线与切换模块相连。
(三)有益效果
上述技术方案所提供一对多SPI总线切换方法及装置,利用SPI信号线异步传输切换指令,无需额外占用主模块引脚;通过可编程逻辑器件实现SPI总线切换,支持从模块数量多。该方法及装置还具有电路简单、可扩展性强等优点,具有很高的实用价值。
附图说明
图1是本发明一种一对多SPI总线切换方法及装置的方法流程图。
图2是本发明一种一对多SPI总线切换方法及装置的切换指令发送时序图。
图3是本发明一种一对多SPI总线切换方法及装置的装置组成框图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本实施例中从模块数目为16。
参照图1、图2,本发明一种一对多SPI总线切换方法的具体实施步骤如下:
步骤1,设定异步传输参数;即设定波特率、最大起始时延、起始位逻辑、校验方式、数据位数和位序;其中波特率为单个数据位宽度的倒数,此实施例定为115200bps;最大起始时延即当传输异步信号时从CS#信号下降沿开始到起始位跳边沿开始的最大时延,此实施例定为20us,如果在20us内没有收到起始位,则认为本次CS#低电平期间不传输异步信号;起始位逻辑即起始位为0还是1,该逻辑值应与MOSI常态逻辑相反,即当MOSI常态为1时,应将起始位定为0,否则应将起始位定为1,此实施例MOSI常态值为1,因此将起始位定为0;校验方式可选奇校验、偶校验和无校验,当校验方式为奇校验或偶校验时,校验位个数为1,否则校验位个数为0,此实施例无校验;数据位数即在CS#低电平期间、起始位之后传输的数据位的个数,该个数包含校验位,数据位中除去校验位的部分为原始数据位,当校验方式为无校验时,数据位即为原始数据位,此实施例数据位个数为8;位序即原始数据位的传输顺序,先传输最高有效位msb还是先传输最低有效位lsb,校验位在原始数据位之后传输,此实施例先传最高位msb。
步骤2,定义切换指令;即为各SPI从模块编号,并建立切换指令与编号值的对应关系。切换指令长度与原始数据位长度一致,此实施例将16个从模块编号为0~15,8位切换指令分为前4位和后4位两部分,其中前4位为从模块编号值,后4位为前四位值按位取反,例如切换指令0b00001111表示SPI总线切换至从模块0,0b00011110表示SPI总线切换至从模块1,依此类推。
步骤3,发送切换指令;即主模块按步骤1中设定的异步传输参数,利用SPI总线信号线异步发送步骤2中定义的切换指令;具体是在保持SCLK信号不变的前提下,首先将CS#信号置为低电平,然后在最大起始时延内通过MOSI信号线发送起始位,之后依次完成各数据位发送并恢复MOSI信号常态逻辑,最后将CS#信号置为高电平,完成切换指令发送。
步骤4,SPI总线切换;即切换指令接收端根据接收到的有效切换指令将主模块SPI总线切换至指定的SPI从模块;判断切换指令有效应同时满足以下条件:1)由CS#信号下降沿到起始位发送开始的时延小于步骤1中设定的最大起始时延20us;2)CS#信号低电平期间SCLK无跳边沿;3)CS#信号低电平期间MOSI信号线完成了起始位和所有数据位发送,并恢复至常态逻辑1;4)接收到的切换指令是步骤2中已定义的切换指令;将主模块SPI总线切换至指定的SPI从模块即通过可编程逻辑器件建立主模块SPI总线CS#、SCLK、MOSI、MISO四根信号线与指定的SPI从模块CS#、SCLK、MOSI、MISO四根信号线的对应连接关系。
步骤5,进行SPI通信;即在完成总线切换后,SPI主模块与指定的SPI从模块进行正常SPI通信;在SPI正常通信过程中,在CS#信号低电平期间不允许出现SCLK未跳变情况。
步骤6,重复步骤3~5,完成所需功能;即通过多次发送切换指令、进行SPI总线切换,实现主模块与各指定从模块的SPI通信,完成电路所需功能。
参照图3,本发明一种一对多SPI总线切换装置的具体实施方式如下:
一种一对多SPI总线切换装置,其特征是由主模块、切换指令解析模块、切换模块和16个从模块构成,其中:
所述主模块通过CS#、SCLK、MOSI、MISO四根信号线与切换模块相连,并通过CS#、SCLK、MOSI三根信号线与切换指令解析模块相连;
所述切换指令解析模块接收主模块发送的切换指令,并根据接收到的有效切换指令通过切换模块将主模块SPI总线切换至指定的SPI从模块。
所述切换模块在切换指令解析模块的控制下将主模块SPI总线切换至指定的SPI从模块;
所述16个从模块的每个从模块均通过CS#、SCLK、MOSI、MISO四根信号线与切换模块相连。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种一对多SPI总线切换方法,其特征在于,包括如下步骤:
步骤1,设定异步传输参数;
步骤2,定义切换指令;
步骤3,发送切换指令;
步骤4,SPI总线切换;
步骤5,进行SPI通信;
步骤6,重复步骤3~5,完成所需功能。
2.如权利要求1所述的一对多SPI总线切换方法,其特征在于,所述步骤1中,异步传输参数包括波特率、最大起始时延、起始位逻辑、校验方式、数据位数和位序;其中波特率为单个数据位宽度的倒数;最大起始时延即当传输异步信号时从CS#信号下降沿开始到起始位跳边沿开始的最大时延,如果在最大起始时延内没有收到起始位,则认为本次CS#低电平期间不传输异步信号;起始位逻辑即起始位为0还是1,该逻辑值应与MOSI常态逻辑相反,即当MOSI常态为1时,应将起始位定为0,否则应将起始位定为1;校验方式选奇校验、偶校验和无校验,当校验方式为奇校验或偶校验时,校验位个数为1,否则校验位个数为0;数据位数即在CS#低电平期间、起始位之后传输的数据位的个数,该个数包含校验位,数据位中除去校验位的部分为原始数据位,当校验方式为无校验时,数据位即为原始数据位;位序即原始数据位的传输顺序,先传输最高有效位msb还是先传输最低有效位lsb,校验位在原始数据位之后传输。
3.如权利要求2所述的一对多SPI总线切换方法,其特征在于,所述步骤2中,为各SPI从模块编号,并建立切换指令与编号值的对应关系。
4.如权利要求3所述的一对多SPI总线切换方法,其特征在于,所述步骤2中,切换指令长度与原始数据位长度一致。
5.如权利要求4所述的一对多SPI总线切换方法,其特征在于,所述步骤3中,主模块按步骤1中设定的异步传输参数,利用SPI总线信号线异步发送步骤2中定义的切换指令。
6.如权利要求5所述的一对多SPI总线切换方法,其特征在于,所述步骤3中,在保持SCLK信号不变的前提下,首先将CS#信号置为低电平,然后在最大起始时延内通过MOSI信号线发送起始位,之后依次完成各数据位发送并恢复MOSI信号常态逻辑,最后将CS#信号置为高电平,完成切换指令发送。
7.如权利要求6所述的一对多SPI总线切换方法,其特征在于,所述步骤4中,切换指令接收端根据接收到的有效切换指令将主模块SPI总线切换至指定的SPI从模块;判断切换指令有效应同时满足以下条件:1)由CS#信号下降沿到起始位发送开始的时延小于步骤1中设定的最大起始时延;2)CS#信号低电平期间SCLK无跳边沿;3)CS#信号低电平期间MOSI信号线完成了起始位和所有数据位发送,并恢复至常态逻辑;4)接收到的切换指令是步骤2中已定义的切换指令;将主模块SPI总线切换至指定的SPI从模块即通过可编程逻辑器件建立主模块SPI总线CS#、SCLK、MOSI、MISO四根信号线与指定的SPI从模块CS#、SCLK、MOSI、MISO四根信号线的对应连接关系。
8.如权利要求7所述的一对多SPI总线切换方法,其特征在于,所述步骤5中,在完成总线切换后,SPI主模块与指定的SPI从模块进行正常SPI通信;在SPI正常通信过程中,在CS#信号低电平期间不允许出现SCLK未跳变情况。
9.如权利要求8所述的一对多SPI总线切换方法,其特征在于,所述步骤6中,通过多次发送切换指令、进行SPI总线切换,实现主模块与各指定从模块的SPI通信,完成电路所需功能。
10.一种一对多SPI总线切换装置,其特征在于,包括主模块、切换指令解析模块、切换模块和多个从模块;
所述主模块通过CS#、SCLK、MOSI、MISO四根信号线与切换模块相连,并通过CS#、SCLK、MOSI三根信号线与切换指令解析模块相连;
所述切换指令解析模块接收主模块发送的切换指令,并根据接收到的有效切换指令通过切换模块将主模块SPI总线切换至指定的SPI从模块;
所述切换模块在切换指令解析模块的控制下将主模块SPI总线切换至指定的SPI从模块;
所述多个从模块的每个从模块均通过CS#、SCLK、MOSI、MISO四根信号线与切换模块相连。
CN202011438277.4A 2020-12-07 2020-12-07 一种一对多spi总线切换方法及装置 Active CN112506839B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011438277.4A CN112506839B (zh) 2020-12-07 2020-12-07 一种一对多spi总线切换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011438277.4A CN112506839B (zh) 2020-12-07 2020-12-07 一种一对多spi总线切换方法及装置

Publications (2)

Publication Number Publication Date
CN112506839A true CN112506839A (zh) 2021-03-16
CN112506839B CN112506839B (zh) 2023-02-03

Family

ID=74970822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011438277.4A Active CN112506839B (zh) 2020-12-07 2020-12-07 一种一对多spi总线切换方法及装置

Country Status (1)

Country Link
CN (1) CN112506839B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201060487Y (zh) * 2007-05-29 2008-05-14 山东大学 一种高速可配置扩展spi总线
CN101599053A (zh) * 2008-06-05 2009-12-09 联想(北京)有限公司 支持多种传输协议的串行接口控制器及控制方法
CN102193888A (zh) * 2010-03-12 2011-09-21 新唐科技股份有限公司 数据传输系统与可编程串行外围设备接口控制器
CN202422132U (zh) * 2012-01-16 2012-09-05 天津市先石光学技术有限公司 电子健康站rfid端口自动识别装置
CN103116562A (zh) * 2011-09-14 2013-05-22 Vega格里沙贝两合公司 用于借助同步串行接口进行异步串行数据传输的方法
CN103309461A (zh) * 2013-05-14 2013-09-18 泰凌微电子(上海)有限公司 无线一对多控制装置和方法
CN104282054A (zh) * 2014-08-06 2015-01-14 上海交通大学 基于sopc技术的mvb总线解码与随车记录系统
CN108496162A (zh) * 2017-06-30 2018-09-04 深圳市大疆创新科技有限公司 标识电调的方法、装置及动力系统、可移动平台
CN109144916A (zh) * 2017-06-16 2019-01-04 深圳市中兴微电子技术有限公司 一种处理数据包的方法及装置、芯片
CN109460379A (zh) * 2018-11-14 2019-03-12 郑州云海信息技术有限公司 一种串口选择的方法及切换装置
CN110073333A (zh) * 2017-11-03 2019-07-30 华为技术有限公司 恢复fpga芯片中的逻辑的方法、系统和fpga设备
CN111181690A (zh) * 2019-12-26 2020-05-19 山西银河电子设备厂 一种多信道通信及接口动态切换方法
CN111241020A (zh) * 2019-12-31 2020-06-05 广州展讯信息科技有限公司 一种基于fpga的串口切换装置、方法及存储介质
CN111343228A (zh) * 2018-12-18 2020-06-26 西蒙兹精密产品公司 用于异步通信系统的分布式时间同步协议
CN111948971A (zh) * 2020-08-28 2020-11-17 上海途鸽数据科技有限公司 一种智能卡管理装置及其数据转接方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201060487Y (zh) * 2007-05-29 2008-05-14 山东大学 一种高速可配置扩展spi总线
CN101599053A (zh) * 2008-06-05 2009-12-09 联想(北京)有限公司 支持多种传输协议的串行接口控制器及控制方法
CN102193888A (zh) * 2010-03-12 2011-09-21 新唐科技股份有限公司 数据传输系统与可编程串行外围设备接口控制器
CN103116562A (zh) * 2011-09-14 2013-05-22 Vega格里沙贝两合公司 用于借助同步串行接口进行异步串行数据传输的方法
CN202422132U (zh) * 2012-01-16 2012-09-05 天津市先石光学技术有限公司 电子健康站rfid端口自动识别装置
CN103309461A (zh) * 2013-05-14 2013-09-18 泰凌微电子(上海)有限公司 无线一对多控制装置和方法
CN104282054A (zh) * 2014-08-06 2015-01-14 上海交通大学 基于sopc技术的mvb总线解码与随车记录系统
CN109144916A (zh) * 2017-06-16 2019-01-04 深圳市中兴微电子技术有限公司 一种处理数据包的方法及装置、芯片
CN108496162A (zh) * 2017-06-30 2018-09-04 深圳市大疆创新科技有限公司 标识电调的方法、装置及动力系统、可移动平台
CN110073333A (zh) * 2017-11-03 2019-07-30 华为技术有限公司 恢复fpga芯片中的逻辑的方法、系统和fpga设备
CN109460379A (zh) * 2018-11-14 2019-03-12 郑州云海信息技术有限公司 一种串口选择的方法及切换装置
CN111343228A (zh) * 2018-12-18 2020-06-26 西蒙兹精密产品公司 用于异步通信系统的分布式时间同步协议
CN111181690A (zh) * 2019-12-26 2020-05-19 山西银河电子设备厂 一种多信道通信及接口动态切换方法
CN111241020A (zh) * 2019-12-31 2020-06-05 广州展讯信息科技有限公司 一种基于fpga的串口切换装置、方法及存储介质
CN111948971A (zh) * 2020-08-28 2020-11-17 上海途鸽数据科技有限公司 一种智能卡管理装置及其数据转接方法

Also Published As

Publication number Publication date
CN112506839B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN1123162C (zh) 电子装置和桥站
US8694710B2 (en) Conversion of a two-wire bus into a single-wire bus
CN101329663B (zh) 一种实现片上系统管脚分时复用的装置及方法
US3978451A (en) Controlling communications between computer devices over common bus
KR100614638B1 (ko) 고속의 무선 통신에 적합한 하이브리드형 직렬 주변 장치 인터페이스 회로 및 그 방법
CN101770443A (zh) 一种内部集成电路总线时序调节方法、相应装置及系统
CN112269749A (zh) I2c通信系统
CN108052473A (zh) 串行通信装置
JPS6239580B2 (zh)
US6175887B1 (en) Deterministic arbitration of a serial bus using arbitration addresses
CN102929830A (zh) 一种软件模拟快速通信协议
CN112506839B (zh) 一种一对多spi总线切换方法及装置
CN112506840B (zh) 一种多对多spi总线切换方法
CN112087241A (zh) 一种电梯总线按钮单线通讯的实现方法
CN116436526A (zh) 控制信号传输的方法及装置、系统、存储介质、电子设备
CN114363109B (zh) 基于边沿同步的脉宽调制单线总线通信方法
CN113900985B (zh) Io和spi复用芯片、复用辅助芯片和数据交互方法
CN112486887B (zh) 一种利用spi总线传输异步信号的方法及装置
CN214480671U (zh) 一种基于spi通讯的一对多通讯电路
EP0185093A1 (en) Data transfer equipment
CN105991160B (zh) 一种信号处理装置
CN105718400A (zh) 基于spi的通信方法
CN115658584A (zh) 一种基于令牌环的spi背板总线通信方法
CN215067812U (zh) 一种基于can控制器及门电路组成的can网络
CN116757152A (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