CN107819659B - 一种基于spi的智能级联通信网络 - Google Patents
一种基于spi的智能级联通信网络 Download PDFInfo
- 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
Links
- 230000006854 communication Effects 0.000 title claims abstract description 178
- 238000004891 communication Methods 0.000 title claims abstract description 174
- 235000015429 Mirabilis expansa Nutrition 0.000 claims abstract description 17
- 244000294411 Mirabilis expansa Species 0.000 claims abstract description 17
- 235000013536 miso Nutrition 0.000 claims abstract description 17
- 230000002093 peripheral effect Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 8
- 239000000872 buffer Substances 0.000 claims description 86
- 230000005540 biological transmission Effects 0.000 claims description 61
- 238000000034 method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 11
- 238000009434 installation Methods 0.000 claims description 10
- 230000006855 networking Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 230000004913 activation Effects 0.000 claims 1
- 238000013508 migration Methods 0.000 claims 1
- 230000005012 migration Effects 0.000 claims 1
- 229920000117 poly(dioxanone) Polymers 0.000 claims 1
- 238000011144 upstream manufacturing Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 6
- 238000005034 decoration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus 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通信接口是各种通信接口中速度最快的,理论上可达单片机外设主频的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类系统公共信息数据块如下表所示。
A类系统公共信息数据块
其中,指令参数表在网络链路构建完成以后,尺寸固定等于0。换言之,此时公共信息数据块的尺寸固定为20。
指令码主要用于网络初始化和系统异常处理。当网络初始化未完成时,时间戳,同步计数器,广播短消息和VP_COM控制状态字等为空数据。
B类从站私有信息数据如下表所示。
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的智能级联通信网络开始按照约定的时间周期,周而复始地连续工作。
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)
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)
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)
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 |
-
2017
- 2017-10-24 CN CN201711004504.0A patent/CN107819659B/zh not_active Expired - Fee Related
Patent Citations (9)
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)
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 |