CN113626365A - 一种基于spi总线的通信方法 - Google Patents

一种基于spi总线的通信方法 Download PDF

Info

Publication number
CN113626365A
CN113626365A CN202110835644.2A CN202110835644A CN113626365A CN 113626365 A CN113626365 A CN 113626365A CN 202110835644 A CN202110835644 A CN 202110835644A CN 113626365 A CN113626365 A CN 113626365A
Authority
CN
China
Prior art keywords
spi
data
slave
msg
frame
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.)
Pending
Application number
CN202110835644.2A
Other languages
English (en)
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.)
Shijiazhuang Kelin Electric Co Ltd
Original Assignee
Shijiazhuang Kelin Electric Co Ltd
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 Shijiazhuang Kelin Electric Co Ltd filed Critical Shijiazhuang Kelin Electric Co Ltd
Priority to CN202110835644.2A priority Critical patent/CN113626365A/zh
Publication of CN113626365A publication Critical patent/CN113626365A/zh
Pending legal-status Critical Current

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

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)

Abstract

一种基于SPI总线的通信方法,涉及通信技术领域,特别涉及一种主从设备间基于SPI总线的通信方法,SPI主机和SPI从机间设置由SPI从机控制的MSG信号线,SPI从机产生重要数据后,在MSG线上发送信号,等待SPI主机响应;SPI主机检测到MSG线上的信号后,判断SPI从机地址,根据SPI从机地址对应的片选逻辑生成片选信号,接收数据。本发明在硬件上增加MSG信号线,SPI从机通过MSG信号线,能够及时向SPI主机通报有重要数据需要发送,SPI主机中断正常轮询,优先接收重要数据。

Description

一种基于SPI总线的通信方法
技术领域
本申请涉及通信技术领域,特别涉及一种主从设备间基于SPI总线的通信方法。
背景技术
随着电力电子产品更新换代的加快,芯片技术的不断提高,嵌入式系统的性能也越来越高。近几年,多核技术的融入,两个或两个以上处理器协同工作,成为当今嵌入式系统开发的一个热门选择。
处理器间通信的方式有很多种,常用总线连接,如串口,CAN,SPI,双ram,以太网等。
处理高速数据时,串口、CAN、双ram、以太网等通信方式,在传输速率、成本等方面各存在缺陷。而SPI作为一种高速、全双工、同步的通信总线,且只占用四根线,能够满足高速处理器对于通信的要求。因此,多处理器间通信目前普遍采用SPI总线直接传输数据。
SPI通信是主从方式,当存在多个从设备时,主设备通过片选信号选择从设备,完成主从设备数据的交换,主要是靠轮询方式。当从设备有紧急事件需时,数据无法及时上报到主机,时效性无法保证。
申请号为202011280630.0的中国专利申请披露了《一种通信系统及通信方法》,:除了增加帧结构外,还对硬件连接做了改进:“所述第一SPI接口和第二SPI接口在MCU之间均配置有两个额外的I/O接口”,完成数据确认接收的应答机制。
申请号为201710882738.9的中国专利申请披露了《基于SPI总线的设备间通信的方法、系统及相关装置》,使用一根片选线连接所有从机,通过数据帧中的地址实现数据传输目的的选择。
但以上申请都没有解决从机中重要数据及时上报的问题。
发明内容
本发明的目的是提出一种方法,解决SPI从机数据及时上报的问题。
为实现上述目的,本发明采用的技术方案是:一种基于SPI总线的通信方法,关键在于,SPI主机和SPI从机间设置MSG信号线,MSG信号线上的信号由SPI从机控制;SPI主机中存储SPI从机的地址和地址对应的片选逻辑;SPI从机产生重要数据后,在MSG线上发送信号,等待SPI主机响应;SPI主机检测到MSG线上的信号后,判断SPI从机地址,根据SPI从机地址对应的片选逻辑生成片选信号,接收数据。
进一步地,SPI主机和SPI从机将数据组成数据帧发送,所述数据帧包括依次排列的帧同步、帧控制字节、目的地址、帧长度、数据以及帧校验;SPI主机根据目的地址对应的片选逻辑生成片选信号。
进一步地,所述帧控制字节中,第0-3位表示帧类型,第5位表示数据优先级,第6位是翻转反转位,第7位是方向位。
如果SPI从机有一级数据需要发送,在帧控制字节中将第5位置1;SPI主机判断收到的数据帧中帧控制字节第5位为1时,保持与该SPI从机的通信,直至一级数据发送完毕。
工作时,SPI主机根据各SPI地址,产生片选信号,轮询各SPI从机;SPI从机接受轮询,并根据SPI主机指令组帧发送数据。
如果SPI从机产生了重要数据需要发送,且不再轮询周期内,则将MSG信号线置高电平;SPI主机检测到MSG线上的信号变化后,中断轮询,判断SPI从机地址,根据SPI从机地址对应的片选逻辑生成片选信号,接收数据;接收接受完成后,继续轮询过程。
采用本发明提出的方法,在硬件上增加MSG信号线,SPI从机通过MSG信号线,能够及时向SPI主机通报有重要数据需要发送,SPI主机中断正常轮询,优先接收重要数据;在帧结构中设置表示数据优先级的控制位,在轮询周期内,SPI从机通过设置控制位标志一级数据,可以将一级数据及时发送。通过硬件和软件设计,实现重要数据、一级数据和普通数据的分级发送。
附图说明
图1为本发明的处理流程图;
图2为本发明的一个实施例;
图3为本发明的另外一个实施例;
图4为信号处理单元的工作原理示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
SPI总线在芯片的管脚上占用四根线,分别是:MISO–SPI主机数据输入,SPI从机数据输出;MOSI–SPI主机数据输出,SPI从机数据输入;CLK–时钟信号,由SPI主机产生;CS–SPI从机片选使能信号,由SPI主机控制。
SPI主机一般采用轮询的方式,通过片选使能信号,依次与SPI从机建立通信,收发信息。
采用以上方式,在两次轮询期间,SPI从机只能等待。如果有重要数据发送,也没有发送或通知机制。
以下实施例中,将SPI从机数据分为三个优先级别,分别为重要数据、一级数据和普通数据。重要数据为发生紧急事件,需要及时上报的数据;一级数据为重要性低于紧急事件的数据但高于普通数据的其他数据。
本发明通过增加MSG信号线实现重要数据的及时发送,通过设置帧结构实现一级数据的优先发送。
以下实施例通过在SPI主机和SPI从机间设置MSG信号线,建立了SPI从机发送通知以及SPI主机响应的机制:MSG信号线上的信号由SPI从机控制;SPI从机产生重要数据后,在MSG线上发送信号,等待SPI主机响应;SPI主机检测到MSG线上的信号后,判断SPI从机地址,根据SPI从机地址对应的片选逻辑生成片选信号,接收数据。
SPI从机对MSG信号的控制:SPI从机产生重要数据后,将MSG信号线置为高电平;发送完重要数据后,SPI从机将MSG信号线置为低电平。
SPI主机和从机之间的MSG信号线的连接有多种选择,如可以采用总线方式,SPI主机的一根MSG信号线连接所有SPI从机,预先分配好时隙,当SPI从机需要发送通知时,在预先分配的时隙内发送信息。但这种方式实现起来比较复杂。
本发明采用两种方式实现MSG信号线的连接。
实施例1,参看图2,SPI主机上为每个SPI从机分配一个IO口,通过连接IO口的MSG信号线连接各SPI从机的IO口。
本实施例中,当SPI主机检测到MSG线上的电平由低变高后,中断当前的轮询或完成当前的轮询后,判断设置MSG信号的SPI从机地址,生成片选信号,接收SPI从机的重要数据。相应的MSG信号线电平由高变低,说明SPI从机发送数据完成,SPI主机重新开始轮询。
有可能发生下面情况:多个SPI从机在差不多的时刻产生重要数据,SPI主机检测到多条MSG线上的电平由低变高。为了处理这种情况,本发明中,SPI主机建立SPI从机优先级序列,当同时检测到多个MSG信号变化时,按优先级从大到小的顺序进行处理。
当SPI主机正在接收重要数据时,检测到又有其它SPI从机产生了重要数据,此时,SPI主机执行完当前操作,再接收其它重要数据,不考虑SPI从机的优先级。
实施例2,在SPI主机和SPI从机之间增加信号处理单元,SPI主机和SPI从机各有一条MSG信号线连接信号处理单元,参看图3和图4,M1、M2……Mi是各个SPI从机的MSG信号,全部接入信号处理单元,信号处理单元的输出Sx连接至SPI主机。
信号处理单元检测到MSG信号线由低电平变为高电平时,依据提前设定好的SPI从机优先级算法Mx=F1(M1,M2,M3,…,Mi),计算出需要处理的从机设备的MSG信号Mx。
信号处理单元计算出Mx对应的SPI从机地址码Sx = F2(Mx),并将编码以二进制格式输出。
SPI主机和信号处理单元约定好接收开始和结束标志。
当SPI主机收到SPI从机地址后,中断当前的轮询或完成当前的轮询后,根据SPI从机地址生成片选信号,接收SPI从机的重要数据。
信号处理单元检测到MSG信号线由高电平变为低电平时,向SPI主机发送完成信号;该信号可以是约定的任何信号,如0x5E,不要与SPI从机地址冲突。
SPI主机收到发送完成信号后,SPI主机重新开始轮询。
同样,信号处理单元存储SPI从机地址和优先级序列;信号处理单元检测到多个MSG信号线由低电平变为高电平时,按优先级从大到小的顺序进行上述处理。
以上过程保证了SPI从机在紧急情况下有重要数据需要发送时,可以及时通知SPI主机,中断轮询任务,保证SPI从机的重要数据及时发送。
在传送数据时,SPI主机和SPI从机将数据组成数据帧发送,所述数据帧包括依次排列的帧同步、帧控制字节、目的地址、帧长度、数据以及帧校验,如下表所示:
帧同步 帧控制字节 目的地址 帧长度 数据 帧校验
EB90H 1字节 1字节 2字节 可变 1字节
SPI主机根据目的地址对应的片选逻辑生成片选信号。
1、帧同步:两个字节,固定为16进制的EB90。
2、帧控制字节:第0-3位表示帧类型,第5位表示数据优先级,第6位是翻转位,第7位是方向位,定义如下:
帧类型:表示当前传送的数据类型,0x00=无效数据,0x01=正常数据,0x0E=复位链路确认,0x0F=复位链路。
数据优先级:SPI从机检测到有重要数据需要上送时,将该位置1;传输完成后,该位置0。
翻转位:发送方每发送一帧数据,翻转位变化一次。
方向位:0表示“主机->从机”;1表示“从机->主机”。
3、目的地址:0-备用,1-SPI主机地址,其他-SPI从机地址。
4、帧长度:数据区有效字节个数。
5、数据:应用层数据。
6、帧校验:1个字节,帧同步到数据的所有信息累加和。
在电力应用领域,传输的数据类型包括:对时、召时钟、遥信、遥测、电度、SOE、定值、遥控等等。
传统的SPI通信方式, SPI从机是被动式响应SPI主机要求,SPI主机召什么数据,从机回复对应的数据。轮询时,SPI主机每次只召特定的数据。如果SPI从机产生了一级数据需要发送,但数据类型不是本轮召的数据,一级数据不会上传,造成一级数据不能及时发送。
本发明,如果SPI从机有一级数据需要发送,将当前回复帧的帧控制字节中第5位置1;SPI主机判断收到的数据帧中帧控制字节第5位为1时,召完当前数据后,保持与该SPI从机的通信,向该SPI从机召一级数据,直至一级数据发送完毕。
如果与SPI主机通信期间SPI从机有重要数据需要发送,也采取发送一级数据的策略:在帧控制字节中将第5位置1;SPI主机判断收到的数据帧中帧控制字节第5位为1时,保持与该SPI从机的通信,向该SPI从机召重要数据,直至重要数据发送完毕。在上述情况下,SPI从机可以不改变连接的MSG信号线的电平,在保证重要数据可以及时发送的前提下,减少上位机的工作量。
以上处理过程如图1所示。
通过设置和分析帧结构的内容,本发明还可以发现接收到的数据是否异常;通过过程控制,及时重启通信,保证通信质量。
信息接收端(包括SPI主机和SPI从机)分析接收到的数据帧,如果出现下列情况之一:
1)帧校验的累加和错误;2)翻转位不翻转(通过和前一帧数据对比确认);3)帧同步错误;
说明数据异常,需要重新复位通信链路。
SPI主机检测到上述情况后,直接初始化链路,重启通讯。
SPI从机检测到上述情况后,下次发送数据时停止翻转位变化,触发主机复位通信链路:SPI主机检测到翻转位不翻转,初始化链路重启通讯。

Claims (10)

1.一种基于SPI总线的通信方法,其特征在于,
SPI主机和SPI从机间设置MSG信号线,MSG信号线上的信号由SPI从机控制;
SPI主机中存储SPI从机的地址和地址对应的片选逻辑;
SPI从机产生重要数据后,在MSG线上发送信号,等待SPI主机响应;
SPI主机检测到MSG线上的信号后,判断SPI从机地址,根据SPI从机地址对应的片选逻辑生成片选信号,接收数据。
2.根据权利要求1所述的基于SPI总线的通信方法,其特征在于,SPI从机产生重要数据后,将MSG信号线置为高电平;发送完重要数据后,SPI从机将MSG信号线置为低电平。
3.根据权利要求2所述的基于SPI总线的通信方法,其特征在于,SPI主机上为每个SPI从机分配一个IO口,通过连接IO口的MSG信号线连接各SPI从机的IO口;
SPI主机建立SPI从机优先级序列,当同时检测到多个MSG信号变化时,按优先级从大到小的顺序进行处理。
4.根据权利要求2所述的基于SPI总线的通信方法,其特征在于,在SPI主机和SPI从机之间增加信号处理单元,SPI主机和SPI从机各有一条MSG信号线连接信号处理单元,信号处理单元存储SPI从机地址和优先级序列;
信号处理单元检测到MSG信号线由低电平变为高电平时,将该信号线对应的SPI从机地址发送给SPI主机;
信号处理单元检测到多个MSG信号线由低电平变为高电平时,按优先级从大到小的顺序进行处理。
5.根据权利要求1所述的基于SPI总线的通信方法,其特征在于,SPI主机和SPI从机将数据组成数据帧发送,所述数据帧包括依次排列的帧同步、帧控制字节、目的地址、帧长度、数据以及帧校验。
6.根据权利要求5所述的基于SPI总线的通信方法,其特征在于,所述帧控制字节中,第0-3位表示帧类型,第5位表示数据优先级,第6位是翻转位,第7位是方向位。
7.根据权利要求6所述的基于SPI总线的通信方法,其特征在于,
如果SPI从机有一级数据需要发送,在帧控制字节中将第5位置1;
SPI主机判断收到的数据帧中帧控制字节第5位为1时,保持与该SPI从机的通信,直至一级数据发送完毕。
8.根据权利要求6所述的基于SPI总线的通信方法,其特征在于,发送方每发送一帧数据,翻转位变化一次。
9.根据权利要求6所述的基于SPI总线的通信方法,其特征在于,SPI主机分析接收到的数据帧,如果出现下列情况之一,
帧校验的累加和错误;
翻转位不翻转;
帧同步错误;
说明数据异常,复位通信链路。
10.根据权利要求9所述的基于SPI总线的通信方法,其特征在于,SPI从机分析接收到的数据帧,如果出现下列情况之一,
帧校验的累加和错误;
翻转位不翻转;
帧同步错误;
说明数据异常,在下次发送数据帧时,保持翻转位不翻转,触发主机复位通信链路。
CN202110835644.2A 2021-07-23 2021-07-23 一种基于spi总线的通信方法 Pending CN113626365A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110835644.2A CN113626365A (zh) 2021-07-23 2021-07-23 一种基于spi总线的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110835644.2A CN113626365A (zh) 2021-07-23 2021-07-23 一种基于spi总线的通信方法

Publications (1)

Publication Number Publication Date
CN113626365A true CN113626365A (zh) 2021-11-09

Family

ID=78380665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110835644.2A Pending CN113626365A (zh) 2021-07-23 2021-07-23 一种基于spi总线的通信方法

Country Status (1)

Country Link
CN (1) CN113626365A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115191105A (zh) * 2022-06-07 2022-10-14 广东逸动科技有限公司 抢占总线的方法、装置、电子设备、控制系统及存储介质
CN115987835A (zh) * 2022-12-26 2023-04-18 上海新华控制技术集团科技有限公司 通讯状态的检测方法、系统、装置及电子设备
CN117676064A (zh) * 2024-02-01 2024-03-08 南京国兆光电科技有限公司 一种基于spi通讯的视频信号传输方法、设备和存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115191105A (zh) * 2022-06-07 2022-10-14 广东逸动科技有限公司 抢占总线的方法、装置、电子设备、控制系统及存储介质
CN115191105B (zh) * 2022-06-07 2024-05-17 广东逸动科技有限公司 抢占总线的方法、装置、电子设备、控制系统及存储介质
CN115987835A (zh) * 2022-12-26 2023-04-18 上海新华控制技术集团科技有限公司 通讯状态的检测方法、系统、装置及电子设备
CN115987835B (zh) * 2022-12-26 2024-04-05 上海新华控制技术集团科技有限公司 通讯状态的检测方法、系统、装置及电子设备
CN117676064A (zh) * 2024-02-01 2024-03-08 南京国兆光电科技有限公司 一种基于spi通讯的视频信号传输方法、设备和存储介质
CN117676064B (zh) * 2024-02-01 2024-05-21 南京国兆光电科技有限公司 一种基于spi通讯的视频信号传输方法、设备和存储介质

Similar Documents

Publication Publication Date Title
CN113626365A (zh) 一种基于spi总线的通信方法
CN106453383B (zh) 一种基于uart的主从多机通讯系统及方法
CN101957808B (zh) 多cpu间的通信方法、系统及cpu
CN107819659B (zh) 一种基于spi的智能级联通信网络
US20230119412A1 (en) Arbitration line-based full-duplex spi communication method
CN112398714A (zh) 一种背板总线主站、系统及其数据通信方法
CN104102607A (zh) 基于VxWorks操作系统环境下的CAN总线驱动方法及系统
CN116150054B (zh) 一种基于pcie的中断信息处理方法
CN100493018C (zh) 一种通过网络中的总线接口进行通信的方法和系统
CN111597017B (zh) 双微处理器同步控制方法
CN110687854B (zh) 一种pa总线控制器以及一种pa总线控制系统
CN111858459B (zh) 处理器及计算机
CN113806265A (zh) 一种spi主从式通讯方法
CN109582633B (zh) 一种pos机中双cpu的通讯方法
CN114422288A (zh) 基于Modbus协议的通讯系统
US7334040B2 (en) Method of transmission between two processors of a radio communication unit
CN115981924B (zh) 设备控制方法、电子设备及存储介质
EP0643892B1 (en) A data transfer method for an actuator system operating in an environment subjected to interferences
CN112565038A (zh) 一种基于rs485总线的低负载的通讯方法
US20070230347A1 (en) Communication interface device and communication method
CN111639043A (zh) 一种通信装置
CN201237732Y (zh) 一种通用plc主控制器模块
CN114338265B (zh) 一种基于ttp/c总线的程序下载系统及方法
CN111614532B (zh) 一种基于dsp的can冗余通讯系统
CN115840650B (zh) 基于kvisor隔离实时域实现三端系统通信的方法

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