CN111008169B - 一种低成本高速通信总线及其传输控制方法 - Google Patents
一种低成本高速通信总线及其传输控制方法 Download PDFInfo
- Publication number
- CN111008169B CN111008169B CN201911140471.1A CN201911140471A CN111008169B CN 111008169 B CN111008169 B CN 111008169B CN 201911140471 A CN201911140471 A CN 201911140471A CN 111008169 B CN111008169 B CN 111008169B
- Authority
- CN
- China
- Prior art keywords
- slave
- data
- master control
- equipment
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- 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
-
- 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/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- 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/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/1438—Negotiation of transmission parameters prior to communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种低成本高速通信总线,包括主控设备和从设备,主控设备和从设备之间通过串行数据传输总线连接;串行数据传输总线有两路,一路用于传输所述主控设备向所述从设备发送的指令,另一路用于传输所述从设备向所述主控设备发送的应答数据;主控设备和从设备中均包括核心微控制单元,核心微控制单元连接两个RS485控制器实现全双工数据收发。设备中无需采用专用高速通信芯片,绝大部分现有设备在原有基础上再扩一个RS485控制器即可实现高速通信,改造成本低。还公开了一种低成本高速通信总线传输控制方法,通过在传输报文中设计特定转义字符以及增加补偿字节,使报文适合采用DMA方式进行传输,大幅提升总线传输速率。并设计了总线自恢复机制。
Description
技术领域
本发明属于应用PLC的自动化监控领域,具体涉及一种低成本高速通信总线及其传输控制方法。
背景技术
目前在应用PLC的自动化监控领域,针对实时高精度运动控制的需求日益增加,这要求主控设备和IO设备之间具备极高的数据传输速度,尽可能减少传输时间,从而降低数据传输延时带来的控制误差。而传统的中小型PLC采用的低速通信总线已不能满足高精度运动控制的需求;部分大型PLC采用专用的通信器件满足主控和IO设备之间的高速通信,但专用器件价格高昂,并且很多专用器件是定制开发的,通用性较差,不能很方便的集成到其它设备中。
在一些对控制精度要求较高的工控系统中,主控设备和IO设备之间必须具有极低的数据传输延时,才能确保主控设备能够快速应答外部输入信号的变化,并以极短的时间将控制信号输出到控制机构,以确保控制对象的动作误差满足系统需求。在这种工控系统中,要求主控设备轮询IO设备的周期小于5ms,因此一般采用大型PLC作为核心设备,主要是由于大型PLC的主控设备和IO设备之间一般采用专用的串行通信总线,传输速度极高。国际知名 PLC厂商如施耐德、GE、贝加莱等的高端产品,其主控设备和IO设备之间都是基于其独立研制的串行总线通信,并且采用了独立研制的通信芯片,总线通信速率高达一般高达 20~50Mbps。这些总线的通信协议是不对外公开的,并且通信芯片也不对外销售。而另外一些PLC厂商的产品则采用公开的Profibus总线作为主控设备和IO设备之间的通信方式,这种通信总线是由西门子公司主导研发的,主控设备和IO设备都需要集成Profibus通信芯片,通信速率最高可达12Mbps,一般也能满足高精度运动控制的需求。
无论是采用专用的通信总线或是公开的Profibus总线,这两种通信总线在本质上是基本相同的,其通信架构如图4所示,其主要工作流程如下:
1)主控设备或IO设备的MCU和专用的通信芯片之间通过并行总线进行交互;
2)通信芯片负责将主控设备或IO设备发送的数据封装为符合串行总线传输协议的数据包,并发送到串行总线上;
3)通信芯片负责接收串行总线上的协议数据包并进行解析,若数据包中的地址与自身节点地址一致,则将协议数据包还原为发送端的原始数据包,并通过并行总线发送给自身节点的MCU。
Profibus通信芯片的价格已经接近低端PLC IO设备的物理成本,为PLC主控设备和所有配套的IO设备增加一块Profibus芯片,设备总体成本预计要增加。近50%~80%左右,价格方面的竞争力将大幅降低。
Profibus对外提供的接口是并行总线,需要PLC主控设备和IO设备的处理器具备并行接口,而低端PLC IO设备的核心处理器一般采用较低端的单片机或ARM处理器,本身硬件资源有限,无法提供多余的引脚用于并行通信,因此大多数IO设备要兼容Profibus的通信方式需要更换资源更丰富的处理器,并且还需要对设备的嵌入式软件进行较为复杂的调整。因此产品升级所需的时间和物理、人力成本都不菲。
发明内容
本发明提供了一种低成本高速通信总线及其传输控制方法,解决了通信速度和成本的技术问题。
为了解决上述技术问题,本发明所采用的技术方案是:一种低成本高速通信总线,包括主控设备和从设备,主控设备和从设备之间通过串行数据传输总线连接;所述串行数据传输总线有两路,一路用于传输所述主控设备向所述从设备发送的指令,另一路用于传输所述从设备向所述主控设备发送的应答数据;所述主控设备包括核心微控制单元,核心微控制单元连接两个RS485控制器;所述从设备包括核心微控制单元,核心微控制单元连接两个RS485 控制器。
进一步地,还包括重启数据同步信号线,用于在所述主控设备或所述从设备发现所述串行数据传输总线上数据有错误时通知所有设备重新进行数据同步。起到了总线异常自动恢复的作用。
进一步地,所述核心微控制单元包含中断程序;所述重启数据同步信号线与所述核心微控制单元的一个中断引脚连接。
进一步地,所述主控设备中,RS485控制器包括MS端口和MR端口,MS端口用于向所述从设备发送指令,MR端口用于接收所述从设备的应答数据;所述从设备中,RS485控制器包括SR端口和SS端口,SR端口用于接收所述主控设备的指令,SS端口用于向所述主控设备发送应答数据和/或用于接收其他从设备发送的数据。
进一步地,所述核心微控制单元中包括DMA控制器,并支持以DMA方式进行串行通信。
一种低成本高速通信总线的传输控制方法,包括以下步骤:
主控设备上电后,立即拉低重启数据同步信号线的电平,主控设备通知串行数据传输总线上的从设备进行数据同步;
完成数据同步后,主控设备根据已配置的从设备组织初始化报文,并将初始化报文发送给从设备,初始化报文中包括串行数据传输总线上各个从设备的地址和最大应答延时信息;
主控设备发送初始化报文后等待一段时间,若在等待时间内重启数据同步信号线的电平没有被拉低,则主控设备组织命令报文;若在等待时间内重启数据同步信号线的电平被拉低,则主控设备通知串行数据传输总线上的从设备进行数据同步;
主控设备将命令报文发送给从设备,发送命令报文的同时接收从设备的应答报文并进行解析处理;
主控设备接收到最后一个从设备的结束帧后,结束该次轮询。
进一步地,所述初始化报文发送、命令报文发送均将报文分为多帧进行发送,具体为主控设备按设置的DMA发送缓冲区的大小,将报文分为多帧进行发送。
进一步地,所述初始化报文和所述命令报文的原始数据包中进行了特定字符转义,且增加了补偿字节。
进一步地,所述主控设备将命令报文发送具体为:主控设备首先将第一帧报文填入MS 端口的DMA发送缓冲区,然后启动DMA控制器发送,当DMA控制器将DMA发送缓冲区中的第一帧报文发送完毕后,会产生一个中断,通知主控设备的CPU已完成发送,主控设备的CPU此时会进入中断程序,在该中断程序中,将下一帧数据再次填入DMA发送缓冲区,然后循环重复上述步骤,直至所有帧数据发送完毕。
进一步地,所述解析处理具体为:主控设备接收到某个从设备的起始帧后,解析出该帧中包含的<ADDR>、<LENGTH>信息,主控设备根据LENGTH和总线传输速率推算出该从设备全部帧传输所需的时间Tss;主控设备将接收帧存放到一个临时缓冲区,然后继续接收下一帧报文,每接收一帧,就和上一帧进行拼接;如果在Tss时间内主控设备接收到该从设备的结束帧,主控设备将结束帧和前面保存的帧拼接,然后对DATA区中的内容进行解码,完成对该从设备应答数据的处理;如果在Tss时间内主控设备接收到其它从设备的起始帧,则主控设备清空存放前一个从设备的临时缓冲区,重新开始解析处理。
本发明所达到的有益效果:
(1)通信总线中核心微控制单元连接两个RS485控制器,实现全双工数据收发。无需采用专用高速通信芯片,在设备原有基础上只需要再扩一个RS485控制器即可,原有设备的大部分器件可保留,硬件调整少,改造成本低,且能够实现10Mbps以上高速通信。
(2)通过在传输报文中设计特定转义字符以及增加补偿字节,使报文适合采用DMA方式进行传输。采用了DMA方式而非传统的中断接收方式进行串行数据传输,接收到多个字符后产生中断,CPU有足够的时间在中断程序中对数据包进行处理。大幅提升总线传输速率,实现高速通信。
(3)从设备中,RS485控制器包括SR端口和SS端口,SR端口用于接收主控设备的指令,SS端口用于向主控设备发送应答数据和/或用于接收其他从设备发送的数据;从设备可以同时监听主控设备和其它从设备发出的报文,结合超时判断机制进行全双工传输,即主控设备发送命令报文的同时,从设备发送应答报文,提高总线传输速度。
附图说明
图1为本发明总线架构图;
图2为本发明多帧初始化报文示意图;
图3为本发明多帧命令报文示意图;
图4为现有基于专用通信芯片或Profibus芯片的高速串行总线架构图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
Master为主控设备;Slave1~SlaveX是从设备,即主控设备下辖的各个IO设备;MCU为核心微控制单元;RS485 Chip为RS485控制器;TTL为TTL串行接口;RS485 Serial Bus为串行数据传输总线;A、B均为信号电缆;MS、MR、SR、SS均为端口;RST为重启数据同步信号线;GND为电路中的数字地。
如图1所示,一种低成本高速通信总线,包括主控设备和从设备,主控设备和从设备之间通过串行数据传输总线连接。串行数据传输总线有两路,一路用于传输主控设备向从设备发送的指令,另一路用于传输从设备向主控设备发送的应答数据。串行数据传输总线包括两根信号电缆,分别为A信号电缆和B信号电缆。
通信总线还包括重启数据同步信号线,重启数据同步信号线与核心微控制单元的一个中断引脚连接,中断方式为下降沿触发,主控设备和从设备中均有核心微控制单元,且核心微控制单元包含中断程序。重启数据同步信号线用于在主控设备或从设备发现串行数据传输总线上数据有错误时通知所有设备重新进行数据同步,重启数据同步信号线平时为高电平,一旦串行数据传输总线上任意一个设备发现数据接收错误,可拉低RST信号线,通知其它设备重新进行数据接收同步,起到了总线异常自动恢复的作用。
主控设备包括核心微控制单元,核心微控制单元连接两个RS485控制器。从设备包括核心微控制单元,核心微控制单元连接两个RS485控制器。上述RS485控制器的最高传输速率满足10M~50Mbps;核心微控制单元和RS485控制器均设有TTL串行接口,且核心微控制单元设有至少2个TTL串行接口。
主控设备中,RS485控制器包括MS端口和MR端口,MS端口用于向从设备发送指令,MR端口用于接收从设备的应答数据。从设备中,RS485控制器包括SR端口和SS端口,SR 端口用于接收主控设备的指令,SS端口用于向主控设备发送应答数据也能够用于接收其他从设备发送的数据。
核心微控制单元包含了CPU、RAM及各种外设接口。核心微控制单元中包括DMA控制器,并支持以DMA方式进行串行通信。基于DMA方式的串行通讯可由核心微控制单元中的DMA控制器完成串口数据接收发送。串口数据的发送或接收预先在内存中分配一块固定长度的区域,即DMA缓冲区,并将该长度通知DMA控制器。以串口接收为例,DMA控制器负责接收串口数据并放入DMA接收缓冲区,当DMA接收缓冲区接收满后,再发出中断,通知CPU读取缓冲区中的数据。
一种低成本高速通信总线的传输控制方法,包括以下步骤:
主控设备上电后,立即拉低重启数据同步信号线的电平,主控设备通知串行数据传输总线上的从设备进行数据同步;
完成数据同步后,主控设备根据已配置的从设备组织初始化报文,并将初始化报文发送给从设备;初始化报文根据DMA发送缓冲区的大小被分为多帧进行发送;
主控设备发送初始化报文后等待一段时间,若在等待时间内重启数据同步信号线的电平没有被拉低,则主控设备组织命令报文;若在等待时间内重启数据同步信号线的电平被拉低,则主控设备通知串行数据传输总线上的从设备进行数据同步;
主控设备将命令报文发送给从设备,发送命令报文的同时接收从设备的应答报文并进行解析处理;命令报文根据DMA发送缓冲区的大小被分为多帧进行发送;
主控设备接收到最后一个从设备的结束帧后,结束该次轮询。
主控设备将命令报文发送具体为:主控设备首先将第一帧报文填入MS端口的DMA发送缓冲区,然后启动DMA控制器发送,当DMA控制器将DMA发送缓冲区中的第一帧报文发送完毕后,会产生一个中断,通知主控设备的CPU已完成发送,主控设备的CPU此时会进入中断程序,在该中断程序中,将下一帧数据再次填入DMA发送缓冲区,然后循环重复上述步骤,直至所有帧数据发送完毕。
解析处理具体为:当主控设备接收到某个从设备的起始帧后,解析出该帧中包含的<ADDR>,<LENGTH>等信息,主控设备根据LENGTH和总线传输速率可以推算出该从设备全部帧传输所需的时间Tss;主控设备将接收帧存放到一个临时缓冲区,然后继续接收下一帧报文,每接收一帧,就和上一帧进行拼接。如果在Tss时间内主控设备接收到该从设备的结束帧,主控设备将结束帧和前面保存的帧拼接,然后对DATA区中的内容进行解码,完成对该从设备应答数据的处理;如果在Tss时间内主控设备接收到其它从设备的起始帧,则主控设备清空存放前一个从设备的临时缓冲区,重新开始解析处理。
本实施例中,传输包编码格式如下:
1)基础包格式:
<HEAD><TYPE>[ADDR][LENGTH][DATA]<CMP>[ADDR]<TAIL>,其中<>中的内容是必选项,[]中的内容是可选项。
其中<HEAD>表示传输包头,1个字节,固定为16进制的0x7E;<TYPE>表示包类型;[ADDR]表示从设备节点地址,1个字节,16进制表示,范围1~255,和Modbus协议中的地址含义类似,总线上的每个从设备必须具有一个唯一的地址,在<HEAD>后面和<TAIL>前面各有1个[ADDR];<LENGTH>表示<DATA>区总长度,2字节小端字节序表示,范围为 1~65535;<DATA>表示传输的数据包;<CMP>表示补充字节,当<HEAD>、<TYPE>、[ADDR]、 [LENGTH]、[DATA]、[ADDR]、<TAIL>几个部分的字节总长度不等于DMA缓冲区长度的整数倍时,在[DATA]后补0,使传输包的总长度等于DMA发送缓冲区和DMA接收缓冲区长度的整数倍;<TAIL>表示传输包尾,1个字节,固定为0x7E。
设计了适合DMA传输方式的数据包编码方法,在数据包中增加补偿字节,以满足数据包总体长度等于DMA缓冲区的整数倍,便于数据包按DMA固定的缓冲区大小进行分帧传输。
2)包类型
传输包分为3种类型:
a)初始化报文
初始化报文由主控设备组织并发出,主要将总线上各个从设备的地址和最大应答延时信息发送给各个从设备,以便从设备在判断传输超时时使用。编码格式如下:
<HEAD><TYPE><LENGTH><DATA><CMP><TAIL>,
其中<HEAD>,<LENGTH>、<CMP>,<TAIL>在基础包格式中有相关说明,<TYPE> 表示1个字节,固定为0x01,表示包类型为初始化报文;<DATA>表示总线上从设备地址和最大应答延时参数,格式如下:
<Addr1><DlyTime1>……<AddrX><DlyTimeX>,
其中AddrN(N=1~X)是从设备的地址,1字节无符号整型数表示,范围为1~255,DlyTimeN(N=1~X)是每个从设备允许的最大应答延时时间,单位us,2字节无符号整型数表示,范围为1~65535us。最大应答延时是从设备接收到主控设备发出的命令后到开始发出应答报文的允许时间。
b)命令及应答报文
其中命令报文由主控设备发出,主要是召唤从设备数据或控制从设备动作;应答报文由从设备发出,是针对主控设备发出的命令报文的回复。编码格式和基础数据包格式一致:
<HEAD><TYPE><ADDR><LENGTH><DATA><CMP><ADDR><TAIL>,
其中<TYPE>表示1个字节,固定为0x02,表示包类型为命令或应答报文;<DATA>表示对于命令报文,是由主控设备组织的召唤从设备数据或控制从设备动作的指令;对于应答报文,是从设备应答主控设备指令的数据或确认。具体由各个厂家主控设备和IO设备之间的通讯协议确定。
c)轮询结束报文
由主控设备发出,表示表示一次对总线上所有从设备的轮询结束。从设备在收到轮询结束包后,等待发送完毕返回主控设备的应答报文后,重新进入下一次轮询准备状态。设置该报文的目的是考虑到每次轮询的从设备数量可能不一样,有一个结束标志利于从设备程序进行判断。轮询结束报文一般紧跟在主控设备发出的命令报文后面,具体编码格式如下:
<HEAD><TYPE><CMP><TAIL>,
其中<TYPE>表示1个字节,固定为0x03,表示包类型为轮询结束报文。
3)DATA区原始数据的转义规则
为了方便数据包的解析,规定对DATA区原始数据包含的特定字符进行转义。首先定义 1个转义字符,例如0x7D,当原始数据包中包含有数据包头尾字符0x7E或转义字符0x7D时,将0x7E或0x7D转变为2个字节,其中第1个字节为转义字符0x7D,第2个字符为本字符和0x20进行异或的值。
通过在传输包中设置转义字符,使数据包的起始帧和结束帧易于辨识,有效提升数据解码和处理的速度。
例如一组原始数据包长度为6个字节,内容如下:
{0x01,0x02,0x7E,0x03,0x7D,0x04}
经过转义后,变为8个字节的数据包,如下所示:
{0x01,0x02,0x7D,0x5E,0x03,0x7D,0x5D,0x04}
可以看出,原始数据包中的0x7E和0x7D经过转义分别变为0x7D,0x5E(0x7E和0x20的异或值)和0x7D和0x5D(0x7D和0x20的异或值),这样在最终经过转义的DATA区报文中,就不会再包含传输包头尾的0x7E字符。这样就利于接收程序对起始帧和结束帧的判断,从而节省数据包处理的时间。
4)DMA缓冲区大小设置
DMA缓冲区的大小必须至少能够容纳<HEAD><TYPE>[ADDR][LENGTH]共5个字节,确保这些关键信息在一帧中传输。实际应用时,缓冲区大小可根据主控设备和IO设备之间的实际报文大小确定。
实施例一、低成本高速通信总线的传输控制方法
主控设备Master及从设备Slave具体的工作流程如下:
一、Master工作流程:
步骤1)Master上电后,立即拉低RST线上的电平,至少保持10ms,通知其它Slave进行数据同步。
步骤2)Master完成同步通知后,启用自身MS端口的DMA发送和MR端口的DMA 接收功能。
步骤3)Master根据已配置的Slave,组织初始化报文。然后按设置的DMA发送缓冲区 (以下我们简称为Ns)的大小,将报文分为多帧,如图2所示。Master发送完初始化报文后,需等待至少10ms,在此时间内如果RST线没有被拉低,表示Slave全部接收正确。Master可以转入步骤4)。
步骤4)Master将所有总线上的Slave按节点地址从小到大的顺序,分别组织命令报文,然后按设置的DMA发送缓冲区(以下我们简称为Ns)的大小,将报文分为多帧,如图3所示,图中,SlaveN Cmd(N=1~X)表示Master组织的针对各Slave的命令报文,例如Slave1Cmd包含了3帧报文,而Slave2 Cmd包含了5帧报文。报文的最后一帧是轮询结束包。
步骤5)Master首先将第1帧报文填入MS端口的DMA发送缓冲区,然后启动DMA 发送,当DMA控制器将缓冲区中的报文发送完毕后,会产生一个中断,通知Master的CPU 已完成发送,Master的CPU此时会进入中断程序,在该中断程序中,将下一帧数据再次填入 DMA发送缓冲区,然后再次启用DMA发送。这样一直循环,直至所有帧数据发送完毕。
步骤6)Master在发送命令报文过程中,同时从MR端口接收Slave的应答报文并进行解析处理。当Master接收到某个Slave的起始帧后,解析出该帧中包含的<ADDR>,<LENGTH> 等信息,Master根据LENGTH和总线传输速率可以推算出该Slave全部帧传输所需的时间Tss。 Master将接收帧存放到一个临时缓冲区,然后继续接收下一帧报文,每接收一帧,就和上一帧进行拼接。如果在Tss时间内Master接收到该Slave的结束帧,Master将结束帧和前面保存的帧拼接,然后对DATA区中的内容进行解码,完成对该Slave应答数据的处理。如果在 Tss时间内Master接收到其它Slave的起始帧,则Master清空存放前一个Slave的临时缓冲区,重新开始步骤6)。
步骤7)Master接收到最后1个Slave的结束帧后,本次轮询结束,重新回到步骤4),开始下一次轮询。
Master针对异常情况的处理机制:当出现以下异常情况时,Master应通知总线上的Slave 重新进行数据同步,具体操作为上面的步骤1)和步骤3)。
(1)Master发起一次新的轮询后,接收到的第一帧报文不是某个Slave的起始帧。具体判断是否为起始帧的方法为:通过检验数据帧的第1个字节是否为0x7E判断该帧数据是否为第1帧,因为在后续的DATA区是不可能出现0x7E的。
(2)在步骤6)中,如果在Tss时间后Master继续接收到非起始帧。
(3)当Master接收到某Slave的结束帧后,接收的下一帧不是起始帧。判断是否为结束帧的方法:通过检验数据帧的最后1个字节是否为0x7E判断该帧数据是否为结束,因为在之前的DATA区是不可能出现0x7E的。
(4)Master在连续发起3次轮询后,未从MR端口接收到任何有效的报文。
Master针对Slave的应答超时处理机制:以SlaveN为例,当以下2个条件同时成立时, Master开始针对SlaveN的应答进行超时判断。
(1)Master针对SlaveN的命令报文已经发送完毕。
(2)SlaveN前一个节点的应答报文已经发送完毕或者SlaveN前一个节点应答超时。
(3)SlaveN超过自身的应答时间没有回复Master报文,Master认为该Slave应答超时。
二、Slave工作流程
步骤1)Slave加电后立即启用自身SR端口的DMA接收功能,以及SS端口的DMA发送及接收功能。同时清空这2个端口的DMA发送和接收缓冲区。需注意的是,Slave的SS 端口除了发送数据外,也是可以接收数据的。当1个Slave发送数据时,其它Slave是可以监听到这个Slave发送的数据的。
步骤2)Slave加电后10ms内如果没有收到Master发送的初始化报文,应主动发起同步操作,方法和Master工作流程中的步骤1)相同。
步骤3)Slave接收到Master发送的初始化报文,将总线上所有Slave的地址和最大应答延时信息保存到自身的存储器中。并准备开始接收Master的轮询。
步骤4)以某个节点SlaveN为例,SlaveN的前一个节点为SlaveM,SlaveN同时监听SR 端口接收的Master的命令报文和SS端口其它Slave发出的应答报文,当SlaveN在SS端口接收到SlaveM的结束帧或者发现SlaveM应答超时,就立即组织应答报文,通过SS端口发送出去。当SlaveN接收到的起始帧中包含的节点地址大于N时,SlaveN不进行任何处理。当SlaveN接收到Master发出的轮询结束帧时,并且SlaveN已完成自身应答报文的发送后,SlaveN进入Master的下一次轮询的准备状态。
设计了可靠的高速全双工传输控制逻辑,根据Slave工作流程中的步骤3)和步骤4)所述,总线上的IO设备可以同时监听主控设备和其它IO设备发出的报文,结合超时判断机制, IO设备可以可靠的控制自身发送应答报文的时间,确保不和其它IO设备发生冲突,真正做到全双工并发传输,即主控设备发送命令报文的同时,IO设备发送应答报文。
Slave针对异常情况的处理机制:当Slave接收到Master或其它Slave的结束帧后,接收的下一帧不是起始帧,说明总线、某个Slave或自身的DMA控制器可能异常,Slave应发起同步操作。
Slave检测其它Slave超时的机制:和Master判断Slave超时的机制一致。以SlaveN为例,当以下2个条件同时成立时,SlaveN后面的节点开始针对SlaveN的应答进行超时判断。
(1)Master针对该SlaveN的命令报文已经发送完毕。
(2)SlaveN前一个节点的应答报文已经发送完毕或者SlaveN前一个节点应答超时。
传输帧间隔规定:Master发送数据时,帧与帧之间的间隔不能大于3帧数据传输所需的时间。否则Slave可认为Master或总线异常,发起同步操作。Slave发送数据时,帧与帧之间的间隔不能大于3帧数据传输所需的时间。否则其它Slave可认为该Slave应答超时,该Slave 下一个节点的Slave可发起数据传输。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (5)
1.一 种低成本高速通信总线,其特征在于,包括主控设备和从设备,主控设备和从设备之间通过串行数据传输总线连接;
所述串行数据传输总线有两路,一路用于传输所述主控设备向所述从设备发送的指令,另一路用于传输所述从设备向所述主控设备发送的应答数据;
所述主控设备包括核心微控制单元,核心微控制单元连接两个RS485控制器;
所述从设备包括核心微控制单元,核心微控制单元连接两个RS485控制器;还包括重启数据同步信号线,用于在所述主控设备或所述从设备发现所述串行数据传输总线上数据有错误时通知所有设备重新进行数据同步;
所述核心微控制单元包含中断程序;所述重启数据同步信号线与所述核心微控制单元的一个中断引脚连接,中断方式为下降沿触发;重启数据同步信号线平时为高电平,一旦串行数据传输总线上任意一个设备发现数据接收错误,拉低RST信号线,通知其它设备重新进行数据接收同步,起到了总线异常自动恢复的作用;
所述核心微控制单元中包括DMA控制器,并支持以DMA方式进行串行通信。
2.根据权利要求1所述的一种低成本高速通信总线,其特征在于,所述主控设备中,RS485控制器包括MS端口和MR端口,MS端口用于向所述从设备发送指令,MR端口用于接收所述从设备的应答数据;所述从设备中,RS485控制器包括SR端口和SS端口,SR端口用于接收所述主控设备的指令,SS端口用于向所述主控设备发送应答数据和/或用于接收其他从设备发送的数据。
3.一种低成本高速通信总线的传输控制方法,其特征在于,包括以下步骤:
主控设备上电后,立即拉低重启数据同步信号线的电平,主控设备通知串行数据传输总线上的从设备进行数据同步;
完成数据同步后,主控设备根据已配置的从设备组织初始化报文,并将初始化报文发送给从设备,初始化报文中包括串行数据传输总线上各个从设备的地址和最大应答延时信息;
主控设备发送初始化报文后等待一段时间,若在等待时间内重启数据同步信号线的电平没有被拉低,则主控设备组织命令报文;若在等待时间内重启数据同步信号线的电平被拉低,则主控设备通知串行数据传输总线上的从设备进行数据同步;
主控设备将命令报文发送给从设备,发送命令报文的同时接收从设备的应答报文并进行解析处理;
主控设备接收到最后一个从设备的结束帧后,结束该次轮询;
其中,所述主控设备核心微控制单元连接两个RS485控制器;所述从设备核心微控制单元连接两个RS485控制器;
所述主控设备将命令报文发送具体为:主控设备首先将第一帧报文填入RS485控制器MS端口的DMA发送缓冲区,然后启动DMA控制器发送,当DMA控制器将DMA发送缓冲区中的第一帧报文发送完毕后,会产生一个中断,通知主控设备的CPU已完成发送,主控设备的CPU此时会进入中断程序,在该中断程序中,将下一帧数据再次填入DMA发送缓冲区,然后循环重复上述步骤,直至所有帧数据发送完毕;
所述解析处理具体为:主控设备接收到某个从设备的起始帧后,解析出该帧中包含的<ADDR>、<LENGTH>信息,主控设备根据LENGTH和总线传输速率推算出该从设备全部帧传输所需的时间Tss;主控设备将接收帧存放到一个临时缓冲区,然后继续接收下一帧报文,每接收一帧,就和上一帧进行拼接;如果在Tss时间内主控设备接收到该从设备的结束帧,主控设备将结束帧和前面保存的帧拼接,然后对DATA区中的内容进行解码,完成对该从设备应答数据的处理;如果在Tss时间内主控设备接收到其它从设备的起始帧,则主控设备清空存放前一个从设备的临时缓冲区,重新开始解析处理。
4.据权利要求3所述的一种低成本高速通信总线的传输控制方法,其特征在于,所述初始化报文发送、命令报文发送均将报文分为多帧进行发送,具体为主控设备按设置的DMA发送缓冲区的大小,将报文分为多帧进行发送。
5.据权利要求3所述的一种低成本高速通信总线的传输控制方法,其特征在于,所述初始化报文和所述命令报文的原始数据包中进行了特定字符转义,且增加了补偿字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911140471.1A CN111008169B (zh) | 2019-11-20 | 2019-11-20 | 一种低成本高速通信总线及其传输控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911140471.1A CN111008169B (zh) | 2019-11-20 | 2019-11-20 | 一种低成本高速通信总线及其传输控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008169A CN111008169A (zh) | 2020-04-14 |
CN111008169B true CN111008169B (zh) | 2022-08-12 |
Family
ID=70113156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911140471.1A Active CN111008169B (zh) | 2019-11-20 | 2019-11-20 | 一种低成本高速通信总线及其传输控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111008169B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112436932B (zh) * | 2020-11-20 | 2023-05-09 | 深圳市宏电技术股份有限公司 | 两路半双工接口控制方法、装置、电子设备及存储介质 |
CN114326510B (zh) * | 2021-12-29 | 2024-03-22 | 上海智殷自动化科技有限公司 | 工业机器人控制器基于串口的一种io通信方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1014273A2 (en) * | 1998-12-24 | 2000-06-28 | Smc Kabushiki Kaisha | Method of start/stop synchronous data transmission |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452419A (en) * | 1992-03-06 | 1995-09-19 | Pitney Bowes Inc. | Serial communication control system between nodes having predetermined intervals for synchronous communications and mediating asynchronous communications for unused time in the predetermined intervals |
US20020144038A1 (en) * | 2001-02-09 | 2002-10-03 | J. Howard Smith | Data communication prioritization method and bus controller |
CN102681481B (zh) * | 2012-05-24 | 2014-09-10 | 山西联华伟业科技有限公司 | 一种基于usb总线的plc通讯方法 |
CN202904869U (zh) * | 2012-11-16 | 2013-04-24 | 天津市泰华科技有限公司 | 一种带有中继功能的rs485总线接口 |
CN203399150U (zh) * | 2013-08-21 | 2014-01-15 | 广东浩迪创新科技有限公司 | 一种自动发送地址信息的电能表组网系统 |
CN105959288A (zh) * | 2016-05-27 | 2016-09-21 | 姹や寒 | 一种电力电网系统中的网络协议转换及其相互通讯方法 |
CN108243017B (zh) * | 2016-12-24 | 2020-10-23 | 华为技术有限公司 | 广播实现方法、装置和设备 |
CN106776436B (zh) * | 2017-01-12 | 2019-11-26 | 烽火通信科技股份有限公司 | 一种适用于多点互联的高速串行总线的通信方法 |
CN108965083B (zh) * | 2018-06-13 | 2020-09-18 | 四川川润液压润滑设备有限公司 | 一种抗有源干扰的Modbus-RS485通信程序方法 |
-
2019
- 2019-11-20 CN CN201911140471.1A patent/CN111008169B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1014273A2 (en) * | 1998-12-24 | 2000-06-28 | Smc Kabushiki Kaisha | Method of start/stop synchronous data transmission |
Also Published As
Publication number | Publication date |
---|---|
CN111008169A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4554863B2 (ja) | ハードウェアが削減されたネットワークアダプタ及び通信方法 | |
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN100496048C (zh) | 多主通信系统 | |
KR960005444B1 (ko) | 통신제어용 마이크로 컴퓨터 | |
EP2530599A1 (en) | Method and mobile terminal for realizing audio transmission | |
CN111008169B (zh) | 一种低成本高速通信总线及其传输控制方法 | |
CN101788972A (zh) | 一种数据传输的系统与方法 | |
US20120327950A1 (en) | Method for Transmitting Data Packets | |
CN110166378B (zh) | 一种用于配网终端调试维护的通信系统及方法 | |
CN113518044B (zh) | Epa设备 | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
CN116991121A (zh) | 一种多协议兼容的epa调度方法及装置 | |
CN112398714A (zh) | 一种背板总线主站、系统及其数据通信方法 | |
WO2011137648A1 (zh) | 基于mdio接口的下载方法及系统 | |
US20060184708A1 (en) | Host controller device and method | |
US20010043361A1 (en) | Printer detecting data precisely in response to change in data transmission speed | |
CN116541329A (zh) | 一种数据传输方法、装置、设备及介质 | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
CN116126756A (zh) | 一种基于fmql的srio实现装置及方法 | |
CN111130678B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
EP2726992B1 (en) | Network control model driver | |
CN103164369A (zh) | 数据传输的控制方法及装置 | |
CN117896452A (zh) | 一种提高控制器局域网报文滤波效率的装置及方法 | |
JP3460502B2 (ja) | シリアル伝送システム | |
CN113923074A (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 |