CN107819659B - 一种基于spi的智能级联通信网络 - Google Patents

一种基于spi的智能级联通信网络 Download PDF

Info

Publication number
CN107819659B
CN107819659B CN201711004504.0A CN201711004504A CN107819659B CN 107819659 B CN107819659 B CN 107819659B CN 201711004504 A CN201711004504 A CN 201711004504A CN 107819659 B CN107819659 B CN 107819659B
Authority
CN
China
Prior art keywords
station
data
slave
communication
master station
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.)
Expired - Fee Related
Application number
CN201711004504.0A
Other languages
English (en)
Other versions
CN107819659A (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.)
Qixunjun Intelligent Technology Shanghai Co ltd
Original Assignee
Qixunjun Intelligent Technology Shanghai 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 Qixunjun Intelligent Technology Shanghai Co ltd filed Critical Qixunjun Intelligent Technology Shanghai Co ltd
Priority to CN201711004504.0A priority Critical patent/CN107819659B/zh
Publication of CN107819659A publication Critical patent/CN107819659A/zh
Application granted granted Critical
Publication of CN107819659B publication Critical patent/CN107819659B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开一种基于SPI的智能级联通信网络,包括一个主站以及多个从站,每个从站通过SPI接口的数据输出MISO与下游从站数据输入MOSI衔接连接,并且起始从站数据输入MOSI连接主站数据输出MISO,最末尾的从站数据输出MISO返回主站数据输入MOSI,从而构成级联通信的闭环。本发明通信网络中主站与从站的上下行数据流直接贯通传输,在不增加硬件的情况下,使设备和CPU/MPU芯片从大量花费在处理通信的工作中解放出来,大大地提高设备和CPU/MPU芯片的工作效率。

Description

一种基于SPI的智能级联通信网络
技术领域
本发明涉及通信技术领域,具体涉及一种基于SPI的智能级联通信网络。
背景技术
目前的单片机多数具有SPI通信接口。SPI通信接口是各种通信接口中速度最快的,理论上可达单片机外设主频的1/2。以STM32Fxxx芯片为例,若是M3系列的外设最高主频可以配置为36MHz,则SPI通信速率最高可达18M BPS(兆位/秒)。若是M4系列外设最高主频可以配置为84MHz,则SPI通信速率最高可达42M BPS。同时SPI接口具有全双工和自动CRC功能(CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码),可以在不需要其它投资的条件下,构建安全的通信系统平台。在多个具有SPI外设接口的CPU/MPU(微处理器和内存保护单元,MPU是单一的一颗芯片)或设备单元之间,可能存在高速及实时信息交换的需求,因此,利用SPI通信接口的特性,构建一种廉价、简单和高效的高速信息交换网络很有必要。
发明内容
本发明的目的是提供一种廉价、简单和高效的基于SPI的智能级联通信网络。该网络可以提供数十兆位/秒级别高速及实时信息交换服务。
为实现本发明的目的所采用的技术方案是:
一种基于SPI的智能级联通信网络,包括一个主站以及多个从站,每个从站通过SPI接口的数据输出MISO与下游从站数据输入MOSI衔接连接,并且起始从站数据输入MOSI连接主站数据输出MISO,最末尾的从站数据输出MISO返回主站数据输入MOSI,从而构成级联通信的闭环。
所述从站的数目及安装的位置可以是固定,也可以是不固定,其中,所述从站的数目及安装的位置为固定时,该基于SPI的智能级联通信网络可用于定制化组建网络;所述从站的数目及安装的位置不固定时,该基于SPI的智能级联通信网络可用于自动化组建网络。
其中,主站SPI接口操作可以采用轮询(Polled)、中断(Interrupt)和DMA方式,从站的SPI接口操作可以采用中断和DMA方式。
主站与从站采用DMA通信方式进行通信,可以大量节省CPU/MPU的时间资源和减少程序操作。
其中,采用DMA通信方式进行通信时,通信帧采用上下行数据帧,由主站与从站之间直接贯通传输,其中,下行数据帧是主站的发送帧,其由帧头部和发往各个从站的数据块组成,帧头部与数据块的尺寸按照网络初始化时的约定,并且各个从站的数据块的尺寸一致;上行数据帧是主站的接收帧,其由各个从站发往主站的数据块和返回的帧头部组成;且上下行数据流的尺寸一致。
因为上下行数据块尺寸一致,所以上下行数据帧的尺寸一致。由此可见,主站下行数据帧通过级联网络贯通传输到各个从站,与此同步,主站也完成了接收从站发回的上行数据帧。由于帧头部和数据块都具有标准的约定尺寸,所以本网络可实现不用IP或站号,直接进行各从站信息定位传输。
其中,所述主站采用独立的DMA发送缓冲区和DMA接收缓冲区,以发送下行数据帧及接收上行数据帧;所述从站采用交叠的DMA发送缓冲区和DMA接收缓冲区,以接收下行数据帧及发送上行数据帧;在主站及从站同步上电且通信网络初始化完成后,在主站发送第一个数据以后,下行数据帧会自动和连续地进入各个从站的DMA接收缓冲区,同时上行数据帧亦自动和连续地返回主站的DMA接收缓冲区,实现DMA自然数据流传输;在此传输过程中,所述主站与从站无需对传输进行任何操作,故称其为DMA自然数据流传输;在一帧传输完成时,所述主站与从站均可采用DMA完成中断或查询DMA发送与接收指针的方法,确认数据帧传输完成。
需要说明的是,在实际应用时,主站的DMA发送缓冲区和DMA接收缓冲区不必是独立的,当需要节约内存空间时,亦可采用交叠的DMA发送缓冲区和DMA接收缓冲区设计。
假设通信网络初始化已完成,主站和所有的从站都按约定完成了本站DMA缓冲区的配置,则按照以下步骤实现定周期循环的工作:
1)在每帧数据通信之前,所述主站在DMA发送缓冲区,预备发往各个从站的下行数据,清空DMA接收缓冲区,设置好DMA发送和接收指针;各从站分别预备发往主站的上行数据,清空DMA接收缓冲区,设置好DMA发送和接收指针;
2)各个从站通过NSS线与状态向所述主站报告传输准备就绪,主站通过NSS线与状态确认各从站预备完成后,并且根据时间序列或周期约定的时刻,将下行数据帧的首数据写入SPI接口,启动DMA自然数据流传输过程;在传输过程中,所述主站和从站无需对SPI接口操作;
3)当确认一帧数据传输完成后,主站及从站各自进行本站接收数据的处理;
4)若从站采用NSS线与状态作为传输预备就绪状态,在处理接收的下行数据之前,要撤销预备就绪状态;
5)所述主站和从站在完成接收数据的处理之后,重复步骤1)。
当然了,如果是非mS级的传输一帧数据,不一定要使用NSS线。
本发明中,如果在主站与所有从站之间,已经建立了按约定周期进行数据交换的信息流。为实现从站与从站之间相互的数据访问,则在此信息流之上,采用虚拟通信技术,实现从站之间的数据访问。
其中,当一从站需要与另一从站通信时,具体按照以下步骤进行:
1)通信主动方从站在上行信息数据块的虚拟协议通信段VP_COM中填写标识符和报文;标识符中包含通信优先级、目的从站从站号和TX发送标志;
2)当主站接到信息后,根据标识符的通信优先级,裁决让哪两个从站建立通信,然后填写到下行帧中VP_COM控制状态字,首先通信优先级高的从站站号填写到通信主动方从站站号位域,然后将目的从站从站号填写到通信被动方从站站号位域;
3)同时主站将通信主动方虚拟协议通信段的内容,填写到下行帧中目的从站信息数据块的虚拟协议通信段;
4)当通信主动方从站在VP_COM控制状态字中发现自己的通信请求被确认后,继续发送报文或等待目的从站的应答信息,等待时将TX标志复位;
5)当目的从站在VP_COM控制状态字观察到自己是通信连接对中的通信被动方从站时,可解析通信主动方发来的报文,并对其作出反应;
6)通信主动方从站在信息交换未结束之前,标识符除TX发送标志外,其它保持不变,主站根据这一信息,维持当前通信连接对,并连续地转发信息;
7)当通信主动方发送在信息交换结束时,将标识符复位;主站将根据这一信息,允许建立其它的通信连接对。
对于定制化网络,所述主站与从站,都不需配置电子开关eSW(但可以配置机械开关),通过连线(或机械开关)即可完成网络数据链路闭环;对于自动化网络,要求所述主站与从站均配置电子开关eSW;对于自动化网络,从站在初始化过程中,从站自动地辨识出自己是最末尾从站,然后接通电子开关eSW,从而实现网络数据链路闭环。
需要说明的是,对于在同一装置中多个CPU/MPU芯片元件组网的情况,与不同设备的主站与从站之间实现网络数据链路闭环是完全相同的。
在上电之初,由于通信网络处于馄饨状态,必须通过网络初始化过程,才能实现系统网络数据链路闭环和规划传输的信息内容。其网络初始化过程按照以下步骤进行:
1)在系统上电后,所述主站和从站的通信速率取缺省速率,并且数据块取缺省尺寸DBinit
2)对于定制化组网模式:假设已知的从站数目为N,则在初始化过程中,发送和接收的DMA缓冲区尺寸为:帧头长度+N x DBinit;对于自动化组网模式:可假设从站数目N=Nmax,Nmax为网络最大从站容量,则在初始化过程中,发送和接收的DMA缓冲区尺寸为:帧头长度+Nmax x DBinit
3)如果是定制化组网模式,跳过步骤3)直接进入步骤4),否则系统按下列步骤a)-d),自动地辨识出最末尾从站,并且实现网络数据链路闭环;
a)主站接通电子开关eSW,并且设识别最末尾站指令,按N个从站的配置安排DMA发送缓冲区中的数据,主站发送DMA发送缓冲区的数据结束时,各个从站根据自己接收的数据状态,确认自己是否为最末尾站,并反馈给主站;
b)若无法确定,则主站再按N-1个从站安排DMA发送缓冲区中的数据,主站发送DMA缓冲区的数据结束时,各个从站根据接收的数据状态,确认自己是否为最末尾站并反馈给主站;
c)主站按上方法依次递减从站的数量进行数据发送,直到有从站确认自己是最末尾从站为止,然后末尾从站通电子开关eSW,实现网络数据链路闭环;
d)当主站接收到正确的返回信息后,即可确认网络物理层数据流传输链路已经通畅,退出辨识出最末尾从站状态;
4)数据流传输的链路建立后,主站确认网络中从站的数目以后,即可向各从站发出实际使用的通信速率,在确认各个从站均已收到该数据以后,向各从站发出新通信速率激活指令,实现系统通信速率同步迁移。
5)在系统通信速率迁移完成后,主站向各从站发出询问指令,从站利用在DBinit中上电标示符区段将从站声明段反馈给主站;
6)主站根据各个从站反馈获得的信息,确定从站私有信息数据块尺寸,然后主站向各从站发出配置私有信息数据块尺寸指令,各从站仍利用上电标示符区段,将接收到的数据块尺寸通知主站;
7)经过若干次确认之后,主站重新规划DMA接收缓冲区及DMA发送缓冲区,同时向各从站发出重新规划DMA接收缓冲区及DMA发送缓冲区的指令;
8)DMA缓冲区重新规划完成后,主站利用各从站私有信息数据块,通过专用指令建立上下行帧中所有PDO(过程数据对象)的映射关系,至此完成通信网络初始化,主站发出正常运行指令;当网络初始化完成后,各从站上下行私有信息数据块的尺寸相同;
9)网络初始化完成,主站即可向所有从站发出正常运行指令,此后,SPI的智能级联通信网络开始按照约定的时间周期,周而复始地连续工作。
综上所述,本发明所述基于的SPI的智能级联通信网络,实现了由主站规划,在通信网络中所有站之间,运行了一列定期上下行的信息流。在主站的调度下,此信息流不但进行主站与各个从站之间的信息访问,也可进行从站与从站之间的信息访问。各站数据块到站的对位,不需要IP(或站号),只要按照约定数据块尺寸即可实现精准对位;快速信息流的动力来自DMA自然流传输设计,该设计数据传输过程犹如“多米诺”骨牌,传输运行只需主站操作启动(相当推倒第一块骨牌),主站与从站的上下行数据流直接贯通传输(相当后续骨牌依次倒下),贯通传输的运行动力,全部由主站和各从站的DMA提供,在不增加硬件的情况下,因为此设计使设备和CPU/MPU从大量花费在处理通信的工作中解放出来,所以可大大地提高设备和CPU/MPU芯片的工作效率。
附图说明
图1是基于SPI的智能级联通信网络的物理结构示意图;
图2是帧数据发送前系统内数据与指针的分布状态示意图;
图3是发送帧头块数据后系统内数据与指针的分布状态示意图;
图4是发送3#从站下行数据块之后系统内数据与指针的分布状态示意图;
图5是发送2#从站下行数据块之后系统内数据与指针的分布状态示意图;
图6是发送帧发送完成之后系统内数据与指针的分布状态示意图;
图7是系统上电时主站与从站的DMA缓冲区的配置状态示意图;
图8-13是主站与从站确定最末尾站的确定过程示意图;
图14是重新规划DMA缓冲区后下行帧未发送前系统内数据和指针分布状态;
图15是一帧通信完成以后系统内数据和指针分布状态见图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明所述的基于SPI的智能级联通信网络,包括一个主站以及多个从站,每个从站通过SPI接口的数据输出MISO与下游从站数据输入MOSI衔接连接,并且起始从站数据输入MOSI连接主站数据输出MISO,最末尾的从站数据输出MISO返回主站数据输入MOSI,从而构成级联通信的闭环。
其中,所述从站的数目及安装的位置可以是固定的,也可以是不固定的,当所述从站的数目及安装的位置为固定时(即事先已确定了从站的数目及其安装的位置),该基于SPI的智能级联通信网络可用于定制化组建网络;所述从站的数目及安装的位置不固定时(即非固定从站数目及随意安装位置),该基于SPI的智能级联通信网络可用于自动化组建网络。
需要说明的是的,本发明中,对于定制化组建网络及自动化组建网络来说,除它们的网络初始化有所不同外,在网络初始化完成数据流传输的链路建立后,数据流的传送状态是完全一样的。
其中,对于本发明的SPI智能级联通信网络来说,主站SPI接口操作可以采用轮询、中断和DMA方式,从站的SPI接口操作也可以采用中断和DMA方式,当然也可以其它方式进行,具体不限。
采用DMA通信方式进行通信,可以大量节省CPU/MPU的时间资源和减少程序操作,为了便于说明本发明的通信网络的优越性,下面以采用DMA通信方式进行通信为例,对本发明的基于SPI的智能级联通信网络的通信过程进行详细说明。
参见图1-15所示,一种基于SPI的智能级联通信网络,包括主站以及多个通过SPI接口相连接而进行级联通信的从站,所述主站与从站的SPI接口采用DMA通信方式进行通信,上下行数据流在主站与从站之间直接贯通传输;所述主站采用独立的DMA发送缓冲区和DMA接收缓冲区,以发送下行数据及接收上行数据;所述从站采用交叠的DMA发送缓冲区和DMA接收缓冲区,以接收下行数据及发送上行数据;在主站及从站同步上电且通信网络初始化完成后,在主站发送第一个数据以后,下行数据自动和连续地进入各个从站的DMA接收缓冲区,上行数据亦自动和连续地返回主站的DMA接收缓冲区;所述主站、从站均采用DMA完成中断或查询DMA发送与接收指针,确认数据帧传输完成。
具体连接时,主站与从站内部的上游通信端口A与下游通信端口B的NSS端、SCK端以及GND端对应连接,主站与从站在外部通过NSS端、SCK端以及GND端对应连接,从站之间也通过NSS端、SCK端以及GND端在外部对应连接,主站上游通信端口A的MOSI端与从站的上游通信端口A的MOSI端连接进行下行数据流的传送,上游从站的下游通信端口B的MISO端与下游从站的上游通信端口A的MOSI端连接,最末尾从站的下游通信端口B的MISO端通过电子开关eSW或机械开关,如直接用串行数据线连接其上游通信端口A的MISO BACK端连接,各从站之间及从站与主站上游通信端口A与下游通信端口B间的MISO BACK端相连接,实现上行数据的传送,图1中箭头方向表示数据流向。
本发明采用数据传输和网络链路直接定位同时完成技术。为保证高速通信和尽量不占用CPU的处理时间,主从站SPI接口均采用DMA通信方式(直接内存存取)。主站采用DMA发送和接收缓冲区独立设计,从站采用DMA发送和接收缓冲区交叠设计,此设计可以保证上下行数据流直接贯通传输。在传输过程中,所有从站无需为传输提供动力和操作,主站只要发出第一个数据,整个数据传输过程犹如“多米诺”骨牌,以“自然流”方式一次完成的“骨牌自然数据流”。
所述的NSS就是片选信号,NSS线既可以作输入,又可以作输出。所谓输入就是外部NSS输入给自己。输出就是将NSS的信号送出去。每个主站与从站均具有上游通信端口A与下游通信端口B。
所述的NSS是SPI接口的片选信号,NSS引脚既可以作输入,又可以作输出。本发明将其作为主站与从站之间状态联络线使用。使用方法1,所有从站的NSS引脚作为输出,通过线与或者线或逻辑组成状态,表示所有从站通信准备就绪。主站的NSS引脚作为输入检测到此信号之后,在达到约定的时刻,即可发出下行帧。使用方法2,主站的NSS引脚作为输出,所有从站的NSS引脚作为输入。通过NSS线,主站提前向从站发出各就各位信息,然后在达到约定的时刻,发出下行帧。对某些系列的CPU/MPU,其引脚可同时作为输出/输入,则作为联络线使用会更加方便。应用中通常使用方法1。在每帧数据通信之前,所主站预备发往各个从站的下行数据,设置好DMA发送和接收指针;各从站分别预备发往主站的上行数据,清空DMA接收缓冲区,设置好DMA发送和接收指针,所述主站通过NSS线与状态确认各从站预备完成后,进行下行数据的第一个数据发送,或根据时间序列约定发送下行数据的第一个数据。
在确认数据帧传输完成后,所述主站、从站完成接收数据处理(即从缓冲区移开,交给会话层),预备刷新下一帧数据。
本发明中,每帧数据通信之前,所主站预备发往各个从站的下行数据,清空DMA接收缓冲区(也可以不清空),设置好DMA发送和接收指针。
本发明中,若从站采用NSS线与状态作为预备好状态,则在处理接收的下行数据时,要设置未预备好状态,当刷新数据完成后,重新设置预备好状态。
下面,以三个从站为例,即1#从站,2#从站以及3#从站为例说明详细基于SPI的智能级联通信网络对一帧数据的传输过程。参见图2-6所示。
1)在每帧通信之前,主站预备发往各个从站的数据(下行数据),清空【不一定要清】接收缓冲区,设置好发送和接收指针。
2)在每帧通信之前,各从站分别预备发往主站的数据(上行数据),清空接收缓冲区,设置好发送和接收指针。
3)主站可通过NSS线与状态确认各从站预备完成,也可根据时间序列约定发送下行帧的第一个数据。
4)在主站发送第一个数据以后,下行数据自动和连续地进入各个从站的接收缓冲区,上行数据亦自动和连续地返回主站的接收缓冲区。
5)主从站均可采用DMA完成中断或查询DMA指针等方法,(该方法不限于spi,只要是级联式通讯都可以采用该方法),确认数据帧传输完成。
6)确认数据帧传输完成后,主从站都需完成接收数据处理(从缓冲区移开,交给会话层。并且预备刷新下一帧的数据
本发明中,其中,数据块的组织结构,即数据块(段)分为两类,A类是系统公共信息数据块(即帧头部),B类是从站私有信息数据块。其中,A类系统公共信息数据块如下表所示。
Figure GDA0001508006460000091
A类系统公共信息数据块
其中,指令参数表在网络链路构建完成以后,尺寸固定等于0。换言之,此时公共信息数据块的尺寸固定为20。
指令码主要用于网络初始化和系统异常处理。当网络初始化未完成时,时间戳,同步计数器,广播短消息和VP_COM控制状态字等为空数据。
B类从站私有信息数据如下表所示。
Figure GDA0001508006460000092
Figure GDA0001508006460000101
B类从站私有信息数据
当网络初始化完成以后,所有从站上下行私有信息数据块的尺寸必须相同。即数据块的尺寸必须遵循最大约定而确定的原则。
根据数据字典约定,上行过程数据对象(PDO),是主机向从机读取的实时数据,下行过程数据对象,是主机向从机写入的实时数据。
下行服务数据对象(SDO),主机向从机读写根据数据字典索引所指向的数据,读写指令格式采用CAN OPEN协议。上行服务数据对象,是从机向主机返回要读取的数据。
虚拟协议通信段,用于从机与从机之间的信息交换,通信过程必须采用应答通信协议。
本发明中,当一从站需要与另一从站通信时,按照以下步骤进行:
1)通信主动方从站在上行信息数据块的虚拟协议通信段VP_COM中填写标识符和报文;标识符中包含通信优先级、目的从站从站号和TX发送标志;
2)当主站接到信息后,根据标识符的通信优先级,裁决让哪两个从站建立通信,然后填写到下行帧中VP_COM控制状态字,首先通信优先级高的从站站号填写到通信主动方从站站号位域,然后将目的从站从站号填写到通信被动方从站站号位域;
3)同时主站将通信主动方虚拟协议通信段的内容,填写到下行帧中目的从站信息数据块的虚拟协议通信段;
4)当通信主动方从站在VP_COM控制状态字中发现自己的通信请求被确认后,继续发送报文或等待目的从站的应答信息,等待时将TX标志复位;
5)当目的从站在VP_COM控制状态字观察到自己是通信连接对中的通信被动方从站时,可解析通信主动方发来的报文,并对其作出反应;
6)通信主动方从站在信息交换未结束之前,标识符除TX发送标志外,其它保持不变,主站根据这一信息,维持当前通信连接对,并连续地转发信息;
7)当通信主动方发送在信息交换结束时,将标识符复位;主站将根据这一信息,允许建立其它的通信连接对。
本发明中,对于不同设备间的通信,如若定制化网络,所述主站与从站,都不需配置电子开关eSW,但可以配置机械开关,通过连线或机械开关即可完成网络数据链路闭环;如若灵活自动化网络,要求所述主站与从站,均配置电子开关eSW,从站在初始化过程中,自动地辨识出自己是最末尾从站,然后接通电子开关eSW,从而实现网络数据链路闭环;对于在同一装置中多个CPU/MPU芯片元件组网的情况,与主站与从站之间实现网络数据链路闭环是完全相同的。
数据流传输的链路建立后,主站向各从站发出询问指令,从站利用上电标示符区段将从站声明段反馈给主站;
主站根据反馈获得的信息,确定从站私有信息数据块尺寸(遵循最大约定确定原则),然后主站向各从站发出配置私有信息数据块尺寸指令,各从站利用上电标示符区段,将接收到的数据块尺寸通知主站;
经过若干次确认之后,主站重新规划DMA接收缓冲区及DMA发送缓冲区,同时向各从站发出重新规划DMA接收缓冲区及DMA发送缓冲区的指令;
重新规划完成后,主站利用各从站私有信息数据块,通过专用指令建立上下行帧中所有PDO的映射关系,至此完成通信网络初始化,主站发出正常运行指令;当通信网络初始化完成后,各从站上下行私有信息数据块的尺寸相同。
重新规划DMA接收缓冲区及DMA发送缓冲区后,下行帧未发送前系统内数据和指针分布状态如图14所示。一帧通信完成以后,系统内数据和指针分布状态见图15所示。
本发明中,所述的各从站确认自己是否是最末尾从站的步骤如下,参见图7-13所示:
主站和从站同步上电后,主站和从站配置DMA接收缓冲区及DMA发送缓冲区;
主站设识别最末尾站指令,按N个从站的配置安排DMA发送缓冲区中的数据,主站发送DMA发送缓冲区的数据结束时,各个从站根据自己接收的数据状态,确认自己是否为最末尾站,并反馈给主站;
若无法确定,则主站再按N-1个从站安排DMA发送缓冲区中的数据,主站发送DMA缓冲区的数据结束时,各个从站根据接收的数据状态,确认自己是否为最末尾站并反馈给主站;
主站按上方法依次递减从站的数量进行数据发送,直到有从站确认自己是最末尾从站为止。
在最末尾从机确认之后,该机可接通电子开关eSW,由此完成SPI级联通信网络物理回路闭环。以上辨识方法称为“削尺探深”法。
主站和从站同步上电后,按图7所示配置DMA缓冲区,因为此时还不知系统中有多少从站,所以也无法确定从站上行数据块的尺寸。不过此时还不需要从站上行数据,故上行数据块可先用上电标示符代替。上电标示符是两个32(Bits)的专用代码;
主站设识别最末尾站指令,如首先假设有N=5个从站,按图8安排DMA发送缓冲区中的数据,指令参数表的数据可以全部填0x00或0xFF,二进制的表达范围值是从0b00000000~0b11111111,程序中用十六进制表示的时候就是从0x00到0xFF,主站发送DMA发送缓冲区的数据结束时,各从机数据分布如图9所示;显然,此时所有的从机都不能确认自己是最末尾从站;
如主机再假设有N=4个从站。按图10安排DMA发送缓冲区中的数据,主机发送DMA缓冲区的数据结束时,各从机数据分布如图11。显然,此时所有的从机仍不能确认自己是末尾从站,主机再假设有N=3个从站。按图12安排DMA发送缓冲区中的数据。
主机发送DMA缓冲区的数据结束时,各从机数据分布如图13。显然,此时接收缓冲区中末尾只有0x01010101的从机,就可以确认自己是末尾从站。
本发明提出的SPI级联通信网络,利用SPI通信接口优点,加入工业控制需要的同步性能,可应用于如下场景:如同一设备单元内多个CPU/MPU芯片之间的信息交换;近程(3m以内)多台设备单元之间的信息交换;标准串行数据总线的应用。如采用远程SPI级联通信网络,多台设备单元之间距离可达100m。
本发明所基于的SPI的智能级联通信网络,是一种简单和高效的网络,是一种廉价和实用的网络,包括多设备(或同一设备单元内多CPU/MPU芯片元件)组成的控制系统,可以借助本发明的通信网络,建立系统高速与实时的信息共享平台。
以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (5)

1.一种基于SPI的智能级联通信网络,其特征在于,包括一个主站以及多个从站,每个从站通过SPI接口的数据输出MISO与下游从站数据输入MOSI衔接连接,并且起始从站数据输入MOSI连接主站数据输出MISO,最末尾的从站数据输出MISO返回主站数据输入MOSI,从而构成级联通信的闭环;
其中,所述从站的数目及安装的位置为固定时,该基于SPI的智能级联通信网络可用于定制化组建网络;所述从站的数目及安装的位置不固定时,该基于SPI的智能级联通信网络可用于自动化组建网络;
其中,主站SPI接口操作采用轮询、中断和DMA方式,从站的SPI接口操作采用中断和DMA方式;
采用DMA通信方式进行通信时,通信帧采用上下行数据帧,由主站与从站之间直接贯通传输,其中,下行数据帧是主站的发送帧,其由帧头部和发往各个从站的数据块组成,帧头部与数据块的尺寸按照网络初始化时的约定,并且各个从站的数据块的尺寸一致;上行数据帧是主站的接收帧,其由各个从站发往主站的数据块和返回的帧头部组成;且上下行数据帧的尺寸一致;
其中,所述主站采用独立或交叠的DMA发送缓冲区和DMA接收缓冲区,以发送下行数据帧及接收上行数据帧;所述从站采用交叠的DMA发送缓冲区和DMA接收缓冲区,以接收下行数据帧及发送上行数据帧;
在主站及从站同步上电且通信网络初始化完成后,在主站发送第一个数据以后,下行数据帧会自动和连续地进入各个从站的DMA接收缓冲区,同时上行数据帧亦自动和连续地返回主站的DMA接收缓冲区,实现DMA自然数据流传输;在一帧传输完成时,所述主站与从站均可采用DMA完成中断或查询DMA发送与接收指针的方法,确认数据帧传输完成;
假设通信网络初始化已完成,主站和所有的从站都按约定完成了本站DMA缓冲区的配置,则按照以下步骤实现定周期循环的工作:
步骤1-1、在每帧数据通信之前,所述主站在DMA发送缓冲区,预备发往各个从站的下行数据,清空DMA接收缓冲区,设置好DMA发送和接收指针;各从站分别预备发往主站的上行数据,清空DMA接收缓冲区,设置好DMA发送和接收指针;
步骤1-2、各个从站通过NSS线与状态向所述主站报告传输准备就绪,主站通过NSS线与状态确认各从站预备完成后,并且根据时间序列或周期约定的时刻,将下行数据帧的首数据写入SPI接口,启动DMA自然数据流传输过程;在传输过程中,所述主站和从站无需对SPI接口操作;
步骤1-3、当确认一帧数据传输完成后,主站及从站各自进行本站接收数据的处理;
步骤1-4、若从站采用NSS线与状态作为传输预备就绪状态,在处理接收的下行数据之前,要撤销预备就绪状态;
步骤1-5、所述主站和从站在完成接收数据的处理之后,重复步骤1-1。
2.如权利要求1所述基于SPI的智能级联通信网络,其特征在于,如果在主站与所有从站之间,已经建立了按约定周期进行数据交换的信息流,则在此信息流之上,采用虚拟通信技术,实现从站之间的数据访问。
3.如权利要求2所述基于SPI的智能级联通信网络,其特征在于,当一从站需要与另一从站通信时,具体按照以下步骤进行:
步骤2-1通信主动方从站在上行信息数据块的虚拟协议通信段VP_COM中填写标识符和报文;标识符中包含通信优先级、目的从站从站号和TX发送标志;
步骤2-2当主站接到信息后,根据标识符的通信优先级,裁决让哪两个从站建立通信,然后填写到下行帧中VP_COM控制状态字,首先通信优先级高的从站站号填写到通信主动方从站站号位域,然后将目的从站从站号填写到通信被动方从站站号位域;
步骤2-3同时主站将通信主动方虚拟协议通信段的内容,填写到下行帧中目的从站信息数据块的虚拟协议通信段;
步骤2-4当通信主动方从站在VP_COM控制状态字中发现自己的通信请求被确认后,继续发送报文或等待目的从站的应答信息,等待时将TX标志复位;
步骤2-5当目的从站在VP_COM控制状态字观察到自己是通信连接对中的通信被动方从站时,可解析通信主动方发来的报文,并对其作出反应;
步骤2-6通信主动方从站在信息交换未结束之前,标识符除TX发送标志外,其它保持不变,主站根据这一信息,维持当前通信连接对,并连续地转发信息;
步骤2-7当通信主动方发送在信息交换结束时,将标识符复位;主站将根据这一信息,允许建立其它的通信连接对。
4.如权利要求3所述基于SPI的智能级联通信网络,其特征在于,对于定制化网络,所述主站与从站通过连线或机械开关完成网络数据链路闭环;对于自动化网络,要求所述主站与从站均配置电子开关eSW;对于自动化网络,从站在初始化过程中,自动地辨识出自己是最末尾从站,然后接通电子开关eSW,从而实现网络数据链路闭环。
5.如权利要求4所述基于SPI的智能级联通信网络,其特征在于,网络初始化过程按照以下步骤进行:
步骤3-1、在系统上电后,所述主站和从站的通信速率取缺省速率,并且数据块取缺省尺寸DBinit;
步骤3-2、对于定制化组网模式:假设已知的从站数目为N,则在初始化过程中,发送和接收的DMA缓冲区尺寸为:帧头长度+N × DBinit;对于自动化组网模式:可假设从站数目N=Nmax,Nmax为网络最大从站容量,则在初始化过程中,发送和接收的DMA缓冲区尺寸为:帧头长度+Nmax × DBinit;
步骤3-3、如果是定制化组网模式,跳过步骤3-3直接进入步骤3-4,否则系统按下列步骤a)-d),自动地辨识出最末尾从站,并且实现网络数据链路闭环;
a)主站接通电子开关eSW,并且设识别最末尾站指令,按N个从站的配置安排DMA发送缓冲区中的数据,主站发送DMA发送缓冲区的数据结束时,各个从站根据自己接收的数据状态,确认自己是否为最末尾站,并反馈给主站;
b)若无法确定,则主站再按N-1个从站安排DMA发送缓冲区中的数据,主站发送DMA缓冲区的数据结束时,各个从站根据接收的数据状态,确认自己是否为最末尾站并反馈给主站;
c)主站按上方法依次递减从站的数量进行数据发送,直到有从站确认自己是最末尾从站为止,然后末尾从站通电子开关eSW,实现网络数据链路闭环;
d)当主站接收到正确的返回信息后,即可确认网络物理层数据流传输链路已经通畅,退出辨识出最末尾从站状态;
步骤3-4、数据流传输的链路建立后,主站确认网络中从站的数目以后,即可向各从站发出实际使用的通信速率,在确认各个从站均已收到该数据以后,向各从站发出新通信速率激活指令,实现系统通信速率同步迁移;
步骤3-5、在系统通信速率迁移完成后,主站向各从站发出询问指令,从站利用在DBinit中上电标示符区段将从站声明段反馈给主站;
步骤3-6、主站根据各个从站反馈获得的信息,确定从站私有信息数据块尺寸,然后主站向各从站发出配置私有信息数据块尺寸指令,各从站仍利用上电标示符区段,将接收到的数据块尺寸通知主站;
步骤3-7、经过若干次确认之后,主站重新规划DMA接收缓冲区及DMA发送缓冲区,同时向各从站发出重新规划DMA接收缓冲区及DMA发送缓冲区的指令;
步骤3-8、DMA缓冲区重新规划完成后,主站利用各从站私有信息数据块,通过专用指令建立上下行帧中所有PDO的映射关系,至此完成通信网络初始化,主站发出正常运行指令;当网络初始化完成后,各从站上下行私有信息数据块的尺寸相同;
步骤3-9、网络初始化完成,主站即可向所有从站发出正常运行指令,此后,SPI的智能级联通信网络开始按照约定的时间周期,周而复始地连续工作。
CN201711004504.0A 2017-10-24 2017-10-24 一种基于spi的智能级联通信网络 Expired - Fee Related CN107819659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711004504.0A CN107819659B (zh) 2017-10-24 2017-10-24 一种基于spi的智能级联通信网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711004504.0A CN107819659B (zh) 2017-10-24 2017-10-24 一种基于spi的智能级联通信网络

Publications (2)

Publication Number Publication Date
CN107819659A CN107819659A (zh) 2018-03-20
CN107819659B true CN107819659B (zh) 2020-09-29

Family

ID=61607556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711004504.0A Expired - Fee Related CN107819659B (zh) 2017-10-24 2017-10-24 一种基于spi的智能级联通信网络

Country Status (1)

Country Link
CN (1) CN107819659B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968022B (zh) * 2018-09-29 2021-09-17 欧姆龙(上海)有限公司 可编程逻辑控制器、可编程逻辑控制器系统以及控制方法
CN111614492A (zh) * 2020-05-07 2020-09-01 上海拓智电气有限公司 一种用于多站点通信系统的方法和多站点通信系统
CN111737175B (zh) * 2020-06-12 2022-03-18 明见(厦门)技术有限公司 一种高速spi主从机通信方法、终端设备及存储介质
CN114598566A (zh) * 2020-12-04 2022-06-07 山东新松工业软件研究院股份有限公司 一种基于spi总线的通信系统及方法
CN116132218A (zh) * 2023-03-30 2023-05-16 杭州协能科技股份有限公司 主机和多从机的通信系统及其通信方法
CN117220935B (zh) * 2023-09-04 2024-02-20 河北润博星原科技发展有限公司 一种基于移动计算机的网络安全监测系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261614A (zh) * 2007-01-29 2008-09-10 美高森美股份有限公司-模拟混合信号集团有限公司 可寻址串行外围接口
CN101833318A (zh) * 2010-04-29 2010-09-15 上海工程技术大学 一种多终端控制系统及其信息交互方法
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路
CN102510352A (zh) * 2011-10-31 2012-06-20 北京龙鼎源科技有限公司 工业网络终端
CN102868584A (zh) * 2012-10-11 2013-01-09 江苏西电南自智能电力设备有限公司 一种采用串行通信接口的同步时分多路复用总线通信方法
CN203117968U (zh) * 2012-12-28 2013-08-07 上海自动化仪表股份有限公司 一种spi通讯接口
CN103914427A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于三根物理互连线的集成电路片上通讯方法及装置
CN105812392A (zh) * 2016-05-18 2016-07-27 西安航天民芯科技有限公司 一种应用于电池监控芯片的级联spi通信系统及通信方法
EP3098720A1 (en) * 2015-05-26 2016-11-30 STMicroelectronics Srl A self-synchronizing interface, corresponding device and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098519A1 (en) * 2001-03-16 2004-05-20 Hugo Cheung Method and device for providing high data rate for a serial peripheral interface

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261614A (zh) * 2007-01-29 2008-09-10 美高森美股份有限公司-模拟混合信号集团有限公司 可寻址串行外围接口
CN101833318A (zh) * 2010-04-29 2010-09-15 上海工程技术大学 一种多终端控制系统及其信息交互方法
CN102231143A (zh) * 2011-07-04 2011-11-02 浙江大学 一种安全可复用spi外围接口电路
CN102510352A (zh) * 2011-10-31 2012-06-20 北京龙鼎源科技有限公司 工业网络终端
CN102868584A (zh) * 2012-10-11 2013-01-09 江苏西电南自智能电力设备有限公司 一种采用串行通信接口的同步时分多路复用总线通信方法
CN203117968U (zh) * 2012-12-28 2013-08-07 上海自动化仪表股份有限公司 一种spi通讯接口
CN103914427A (zh) * 2014-04-14 2014-07-09 中国人民解放军国防科学技术大学 基于三根物理互连线的集成电路片上通讯方法及装置
EP3098720A1 (en) * 2015-05-26 2016-11-30 STMicroelectronics Srl A self-synchronizing interface, corresponding device and method
CN105812392A (zh) * 2016-05-18 2016-07-27 西安航天民芯科技有限公司 一种应用于电池监控芯片的级联spi通信系统及通信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Miguel Usach.SPI Interface.《analog.com/media/en/technical-documentation/application-notes/AN-1248.pdf》.2015, *
SPI Interface;Miguel Usach;《analog.com/media/en/technical-documentation/application-notes/AN-1248.pdf》;20150930;第6页右栏第6-7段,图13 *

Also Published As

Publication number Publication date
CN107819659A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
CN107819659B (zh) 一种基于spi的智能级联通信网络
US10868767B2 (en) Data transmission method and apparatus in optoelectronic hybrid network
US9710410B2 (en) Camera control slave devices with multiple slave device identifiers
CN105051706A (zh) 用于具有pcie协议栈的低功率phy的操作的设备、方法和系统
CN102835091A (zh) 多媒体USB数据传输透过数字视频和音频(DiiVA)的交互界面
CN108107827B (zh) 一种基于zynq平台软核的srio控制方法
CN102185833B (zh) 一种基于fpga的fc i/o并行处理方法
EP2513744A1 (en) Automatic and controllable system operation
CN103248526A (zh) 实现带外监控管理的通信设备、方法及主从切换方法
US5958024A (en) System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver
CN109313623A (zh) 切换串口数据传输状态的方法及装置
CN107748509B (zh) 基于单片机收发控制的asi通信从机实施方法
CN104008082A (zh) 1553b总线rt节点与can总线的转换器
WO2021217540A1 (zh) 通信链路的检测方法、装置、系统和可移动平台
CN112395230A (zh) 一种基于可编程逻辑器件的uart接口扩展电路
KR101559089B1 (ko) 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜
CN101106504A (zh) 基于can总线的智能自主机器人分布式通信系统
CN110113209B (zh) 基于mipi协议的设备间通信方法及设备拓扑结构
CN1316387C (zh) 一种串行接口总线通信控制器
CN107302522B (zh) 基于USB的SpaceWire网络即插即用基础协议
CN116521609A (zh) 多主机与多从机系统、zynq仲裁器及其数据处理的方法
CN115460036A (zh) 基于uart实现多路can数据收发的系统、方法、设备及存储介质
CN213024391U (zh) 一种车载终端串口扩展设备
CN201820120U (zh) 自适应多总线执行机构控制器
CN101005379A (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: 20200929

CF01 Termination of patent right due to non-payment of annual fee