CN114691578A - 一种高性能串行通信方法、系统、介质、设备及终端 - Google Patents
一种高性能串行通信方法、系统、介质、设备及终端 Download PDFInfo
- Publication number
- CN114691578A CN114691578A CN202210339833.5A CN202210339833A CN114691578A CN 114691578 A CN114691578 A CN 114691578A CN 202210339833 A CN202210339833 A CN 202210339833A CN 114691578 A CN114691578 A CN 114691578A
- Authority
- CN
- China
- Prior art keywords
- data
- slave
- host
- communication
- serial communication
- 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
Links
- 230000006854 communication Effects 0.000 title claims abstract description 191
- 238000004891 communication Methods 0.000 title claims abstract description 185
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000007246 mechanism Effects 0.000 claims abstract description 49
- 230000003993 interaction Effects 0.000 claims abstract description 26
- 230000005540 biological transmission Effects 0.000 claims abstract description 22
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000005516 engineering process Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 7
- 238000007405 data analysis Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 230000008092 positive effect Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 235000015429 Mirabilis expansa Nutrition 0.000 description 1
- 244000294411 Mirabilis expansa Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013536 miso Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本发明属于数据通信技术领域,公开了一种高性能串行通信方法、系统、介质、设备及终端,采用DMA技术完成串行通信期间的数据交换过程,实现数据读写传输;在SPI通信机制的基础上增设从机状态信号线和CRC状态信号线,并通过构建的主从机数据交互机制使主机每次通信均可确定从机接收的数据状态。本发明的串行通信方法结构简单,成本低,普适性强,采用的DMA方式读写数据提升了数据的传输速率,确保正常的通信;且新增的信号线与数据交互机制提升了主机与从机之间数据传输的可靠性,并且增强了串行通信的可视性与可控性。同时,本发明中主机与从机采用标准的CRC数据校验机制判断数据的准确性,保证主机与从机之间的正常通信。
Description
技术领域
本发明属于数据通信技术领域,尤其涉及一种高性能串行通信方法、系统、介质、设备及终端。
背景技术
目前,在嵌入式控制系统、机器人控制系统以及伺服控制领域,由于需要针对不同的任务需求完成不同的任务指令的传达,所以需要实现数据指令在不同芯片之间的传输。一种高性能的通信方式有助于提高控制系统的系统响应性以及系统的精准性。
SPI(Serial Peripheral Interface,串行外设接口)是一种高速全双工通信总线,相比于串口通信、CAN通信等技术,具有通信速率高、通信可控、通信简单等特点。国内外大多的DSP、MCU、SOC芯片均支持SPI的开发,具有极好的普适性。目前国内外常用的芯片间通信技术就是SPI通信,采用SPI通信技术来实现控制系统中多芯片之间的数据通信可以大大提高通信效率。
DMA(Direct Memory Access,直接存储器访问)是一种外部设备不通过CPU而直接与系统内存交换数据的接口技术,相比于中断机制可以快速完成批量数据的快速交换,且不占用CPU资源。将DMA技术应用于通信中可以大大提高通信过程中数据交换的速度,提高通信速率,同时可以避免多个中断功能之间的冲突。
传统的SPI通信采用四线制完成,包括串行时钟线SCLK、主机输入/从机输出线MISO、主机输出/从机输入线MOSI以及片选信号线CS。传统的SPI通信较为简单,但是缺乏一个有效的通信机制来保证数据传输的可靠性,也无法满足主机从机之间复杂的数据交互。因此,亟需设计一种新的、高性能的串行通信方法及系统,以弥补现有技术的缺陷。
通过上述分析,现有技术存在的问题及缺陷为:传统的SPI缺乏有效的通信机制来保证数据传输的可靠性,也无法满足主机从机之间复杂的数据交互,例如:主机无法获取从机状态,主机发送数据后无法判断从机是否正确接收数据,主机无法判断自身发送的数据是否有错误。
发明内容
针对现有技术存在的问题,本发明提供了一种高性能串行通信方法、系统、介质、设备及终端,尤其涉及一种基于DMA的高性能串行通信方法、系统、介质、设备及终端。
本发明是这样实现的,一种高性能串行通信方法,所述高性能串行通信方法包括:
采用DMA技术完成串行通信期间的数据交换过程,实现数据读写传输;在传统SPI通信机制的基础上增设从机状态信号线和CRC状态信号线,并通过构建的主从机数据交互机制使主机每次通信均可确定从机接收的数据状态。
进一步,所述高性能串行通信方法包括以下步骤:
步骤一,构建传统四线SPI通信机制,并增设一条从机状态信号线,一条CRC状态信号线,通过六条接线实现主机与从机之间的串行通信;
步骤二,定义串行通信数据包,将数据帧头、功能码进行编码,并将有效数据长度进行范围限定;
步骤三,主机与从机通过DMA完成数据包读写,并将数据映射到缓存数组;
步骤四,主机与从机通过数据交互机制完成双方之间的数据通信;
步骤五,对主机与从机发送每次接收的数据进行CRC校验,通过CRC校验结果判断接收数据是否错误;若从机校验失败,向主机发送CRC错误标志并将接收到的数据清除,主机与从机重新进行数据通信;若校验成功,则将接收到的数据解析并存至指定位置。
进一步,所述步骤二中的串行通信数据包,包括帧头、功能码、有效数据长度、数据域、CRC校验码。
进一步,所述步骤四中的主机与从机通过数据交互机制完成双方之间的数据通信包括:
主机通过增设一条从机状态信号线查询从机目前的状态,若从机处于空闲状态则可以发起数据通信,若从机处于忙状态,则等待从机空闲后发起通信;
从机空闲状态下,主机向从机发送有效的数据包,从机接收到主机发送的数据包后,进入数据包处理状态,从机状态置为忙状态;
从机根据数据包数据依次判断数据帧头、功能码、数据有效长度、有效数据域以及CRC校验码,并根据判断结果生成不同的返回数据包,返回数据包生成后,将从机状态置为闲状态;
主机查询到从机状态为闲状态,确认从机处理完数据后,发送相同字节数无效数据包,同时从机将生成的返回数据包传输给主机;
主机接收到从机返回的数据包,依次处理数据包内容,至此完成一次完整的串行通信。
进一步,从机处理主机发送的数据包过程中,若主机发送数据包验证正确,根据主机数据包生成新的无错误标志返回数据包,若主机发送数据包验证错误,从机根据帧头、命令、数据长度、有效数据的不同的错误生成不同的错误标志返回数据包。
其中,主机接收到从机返回的数据包后,完成数据包内容处理,若数据包无错误标志,则准备下一次通信;若数据包有错误标志,则根据错误标志在主机显示出对应错误。
进一步,所述步骤五中的CRC校验采用标准的CRC数据校验机制;
其中,CRC16-CCITT的校验方式为:x16+x12+x5+1。
本发明的另一目的在于提供一种应用所述的高性能串行通信方法的高性能串行通信系统,所述高性能串行通信系统包括:
信号线增设模块,用于构建传统四线SPI通信机制,并增设一条从机状态信号线,一条CRC状态信号线,通过六条接线实现主机与从机之间的串行通信;
数据范围限定模块,用于定义串行通信数据包,将数据帧头、功能码进行编码,并将有效数据长度进行范围限定;
数据包读写模块,用于将主机与从机通过DMA完成数据包读写,并将数据映射到缓存数组;
数据通信模块,用于将主机与从机通过数据交互机制完成双方之间的数据通信;
CRC校验模块,用于对主机与从机发送每次接收的数据进行CRC校验,通过CRC校验结果判断接收数据是否错误。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
采用DMA技术完成串行通信期间的数据交换过程,实现数据读写传输;在传统SPI通信机制的基础上增设从机状态信号线和CRC状态信号线,并通过构建的主从机数据交互机制使主机每次通信均可确定从机接收的数据状态。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的高性能串行通信系统。
结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
本发明通过DMA技术代替中断技术完成串行通信期间的数据交换过程,提高通信的效率。本发明在传统SPI通信机制的基础上增设了一条从机状态信号线(Busy),一条CRC状态信号线(CRC),并提出了一种新的主从机数据交互机制保证主机可以及时了解从机接收的数据状态,提高了通信状态的可靠性、可视性以及可控性。同时,本发明中主机与从机采用标准的CRC数据校验机制判断数据的准确性,保证主机与从机之间的正常通信。
与传统SPI通信技术相比,本发明还具有以下有益效果:
本发明采用DMA方式来完成数据的读写传输,实现了数据的高效传输,设置了从机状态信号线以及CRC状态信号线并通过一种数据交互机制使主机每次通信均可及时具体了解到从机接收数据的数据状态,确保正常的通信,实现了一种结构简单,成本低,普适性高的串行通信方法,且该方法提升了主机与从机之间数据通信的可靠性,并且增强了串行通信的可视性与可控性。
第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
本发明的通信方法结构简单,成本低,普适性强,采用DMA方式读写数据提升了数据的传输速率,且新增的信号线与数据交互机制提升了主机与从机之间数据传输的可靠性,并且增强了串行通信的可视性与可控性。
第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
(1)本发明的技术方案转化后的预期收益和商业价值为:
传统SPI通信技术通信速度快,但仅可以保证通信的速率,无法保证通信的可靠性且无法实时了解通信状态,本发明技术方案提高了传统SPI通信通信可靠性、通信状态可视性、通信可控性等问题。本发明技术方案可以应用域机器人运动控制领域、工业通信、工业自动化控制等领域,本发明技术方案结构简单、成本低、普适性强,应用于机器人运动控制领域,可以提升机器人的控制可靠性,应用于工业控制现场可以及时了解平台或机器的实时状态并进行修正,避免错误通信产生的严重后果,本发明技术方案可以提高涉及串行通信产品的通信性能,提高产品的竞争力,拥有极高的商业价值。
(2)本发明的技术方案是否解决了人们一直渴望解决、但始终未能获得成功的技术难题:
传统SPI通信通过四线制实现主机向从机发送数据,仅实现了通信的功能,本发明技术方案提高了传统SPI通信通信可靠性、通信状态可视性、通信可控性等问题。本发明通过增设一条从机状态信号线,一条CRC状态信号线,从机状态信号线用于主机实时监控从机闲忙状态,避免主机在从机忙状态下发起通信造成数据丢失,CRC状态信号线用于主机实时监控从机接收数据准确性,避免从机接收过程出现错帧现象,提高主机与从机通信的可靠性;本发明提出了一种双周期通信方式,第一周期主机发送数据,从机接收数据并返回无效数据,从机接收完数据会对数据解析,解析过程中从机会对数据帧头、功能码、有效数据长度等参数进行进一步校验判断,若校验正确生成接收成功返回数据,若校验错误,根据错误类型生成对应的错误码,数据解析完成后开启第二周期通信,主机发送相同格式无效数据,从机根据校验情况返回正确数据或错误码,通过双周期通信主机与从机均可以进一步了解接收数据的准确性,及时了解错误情况,提高通信状态的可视性;本发明通过增设的CRC状态信号线以及双周期通信方式可以及时了解数据传输准确性,若CRC校验错误或双周期通信过程中从机校验数据错误,立即停止数据的下一步操作,避免数据后续操作或执行带来的风险与不良后果,提高了通信的可控性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的高性能串行通信方法流程图;
图2是本发明实施例提供的高性能串行通信系统结构框图;
图3是本发明实施例提供的主机与从机数据传输系统结构图;
图4是本发明实施例提供的主机与从机数据交互机制结构图;
图5是本发明实施例提供的主机数据收发流程图;
图6是本发明实施例提供的从机数据收发流程图;
图中:1、信号线增设模块;2、数据范围限定模块;3、数据包读写模块;4、数据通信模块;5、CRC校验模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种高性能串行通信方法、系统、介质、设备及终端,下面结合附图对本发明作详细的描述。
一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
实施例1
为了解决现有技术存在的问题,本发明提出了一种基于DMA的高性能串行通信方法,本发明通过DMA技术代替中断技术完成串行通信期间的数据交换过程,提高通信的效率;本发明在传统SPI通信机制的基础上增设了一条从机状态信号线(Busy),一条CRC状态信号线(CRC),并提出了一种新的主从机数据交互机制保证主机可以及时了解从机接收的数据状态,提高了通信状态的可靠性、可视性以及可控性;本发明中主机与从机采用标准的CRC数据校验机制判断数据的准确性,保证主机与从机之间的正常通信。
如图1所示,本发明实施例提供的高性能串行通信方法包括以下步骤:
S101,构建传统四线SPI通信机制,并增设一条从机状态信号线,一条CRC状态信号线,通过六条接线实现主机与从机之间的串行通信;
S102,定义串行通信数据包,将数据帧头、功能码进行编码以便判断,并将有效数据长度进行范围限定;
S103,主机与从机通过DMA完成数据包的读写,并将数据映射到缓存数组;
S104,主机与从机通过数据交互机制完成双方之间的数据通信;
S105,对主机与从机发送每次接收的数据进行CRC校验,通过CRC校验结果判断接收数据是否错误;若从机校验失败,向主机发送CRC错误标志并将接收到的数据清除,主机与从机重新进行数据通信;若校验成功,则将接收到的数据解析并存至指定位置。
本发明实施例提供的步骤S102中的串行通信数据包,包括帧头、功能码、有效数据长度、数据域、CRC校验码。
本发明实施例提供的步骤S104中的主机与从机通过数据交互机制完成双方之间的数据通信,主要包括:
主机通过增设一条从机状态信号线查询从机目前的状态,若从机处于空闲状态则可以发起数据通信,若从机处于忙状态,则等待从机空闲后发起通信;
从机空闲状态下,主机向从机发送有效的数据包,从机接收到主机发送的数据包后,进入数据包处理状态,从机状态置为忙状态;
从机根据数据包数据依次判断数据帧头、功能码、数据有效长度、有效数据域以及CRC校验码,并根据判断结果生成不同的返回数据包,返回数据包生成后,将从机状态置为闲状态;
主机查询到从机状态为闲状态,确认从机处理完数据后,发送相同字节数无效数据包,同时从机将生成的返回数据包传输给主机;
主机接收到从机返回的数据包,依次处理数据包内容,至此完成一次完整的串行通信。
其中从机处理主机发送的数据包过程中,若主机发送数据包验证正确,根据主机数据包生成新的无错误标志返回数据包,若主机发送数据包验证错误,从机根据帧头、命令、数据长度、有效数据等不同的错误生成不同的错误标志返回数据包。
其中主机接收到从机返回的数据包后,完成数据包内容处理,若数据包无错误标志,则准备下一次通信,若数据包有错误标志,则根据错误标志在主机显示出对应错误。
本发明实施例提供的步骤S105中,CRC校验采用标准的CRC数据校验机制,例如CRC16-CCITT的校验方式:x16+x12+x5+1。
如图2所示,本发明实施例提供的高性能串行通信系统包括:
信号线增设模块1,用于构建传统四线SPI通信机制,并增设一条从机状态信号线,一条CRC状态信号线,通过六条接线实现主机与从机之间的串行通信;
数据范围限定模块2,用于定义串行通信数据包,将数据帧头、功能码进行编码,并将有效数据长度进行范围限定;
数据包读写模块3,用于将主机与从机通过DMA完成数据包读写,并将数据映射到缓存数组;
数据通信模块4,用于将主机与从机通过数据交互机制完成双方之间的数据通信;
CRC校验模块5,用于对主机与从机发送每次接收的数据进行CRC校验,通过CRC校验结果判断接收数据是否错误。
实施例2
实例将本发明方法应用于伺服控制领域,通过该发明方法实现伺服控制中控制器与驱动器的数据指令通信,并控制电机运转。
控制器主芯片采用STM32F407,工作频率可达168MHz,作为主机,负责向驱动器发送数据指令以及查看电机工作状态。驱动器主芯片采用RT1052,作为从机,负责接收控制器指令控制电机运转,同时监测电机状态并上传至控制器。
如图3所示,控制器与驱动器采用六线制通信方式,在传统四线制SPI通信方式的基础上增加了一条从机状态信号线和一条CRC状态信号线。通信以一个字节为最小传输单元,每一个数据包括帧头、功能码、数据长度、数据域、CRC校验码。本实例中,SPI数据包总长度为21字节。
如图4所示,每次通信都由主设备发起,主设备向从设备发送有效数据后等待从设备处理,从设备接收到数据后进行数据校验解析,并生成返回数据包。主设备查询到从设备完成数据处理,再次开启数据传输,并接收从机返回的数据包,根据返回数据包实时了解从机接收到的数据是否正常。
在实例中,控制器主要向驱动器发送上电握手、读写指令数据包,驱动器接收到控制器指令,针对不同的指令进行相应数据解析,解析验证成功后执行指令,并生成指令正确返回数据,若数据解析验证产生错误,则根据不同的错误生成对应错误码并返回控制器。
在控制器与驱动器通信过程中,同时增加主从机接收数据CRC校验机制,CRC校验机制与数据交互机制共同保证主从机的正确通信,主从机完整通信流程如图5、图6所示。
串行通信主机完整通信流程:
a1-1主机判断从机状态,确保从机处于闲状态,开启通信;
a1-2开启DMA功能将有效数据包映射至缓存数组并发送;
a1-3等待从机接收处理数据包;
a1-4从机处理完数据,再次发送无效数据并将从机返回数据包接收;
a1-5对接收到的数据包进行从帧头到最后一字节数据的CRC校验,若校验正确则解析数据包,查看有无错误码并显示,若校验错误则清除接收数据,结束本此通信。
串行通信从机完整通信流程:
b1-1开启DMA功能,接收主机发送的数据包,并将自身状态设置为忙状态;
b1-2对接收到的数据包进行CRC校验,若校验失败则向主机发送CRC错误标志并结束本次通信,若校验成功则继续解析数据包;
b1-3解析数据包数据,根据数据包功能码执行不同的命令操作,生成返回数据包,若数据解析发现帧头、功能码、有效数据长度等错误,则停止命令操作并生成对应的错误码存放于返回数据包。生成返回数据包后,将自身状态设置为闲状态。
b1-4将生成的返回数据包发送至主机,一次完整的通信结束。
在本实例中,CRC校验均采用标准的CRC数据校验机制,例如CRC16-CCITT的校验方式:x16+x12+x5+1。
以上通信方法结构简单,成本低,普适性强,采用DMA方式读写数据提升了数据的传输速率,且新增的信号线与数据交互机制提升了主机与从机之间数据传输的可靠性,并且增强了串行通信的可视性与可控性。
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用的应用实施例。
将本发明方案应用于多轴运动控制平台,运动平台可以通过控制器下达指令传送至驱动器控制多个轴的运动控制。本实例中对通信帧格式、通信指令集进行了详细设计。
主机与从机通信帧格式定义如下:
Byte0 | Byte1 | Byte2 | Byte3-18 | Byte19 | Byte20 |
轴地址 | 功能码 | 有效数据长度 | 数据域 | CRC16-L | CRC16-H |
通信帧采用固定长度为21Byte,从Byte0开始依次发送直至最后一个Byte。
通信指令指令分别包括上电握手、读参数、写参数、写伺服参数命令,功能码分别为0x10、0x11、0x12、0x13;有效数据长度为0x03至0x0E;轴地址定义为0x01至0x06;CRC采用CRC16校验方式。
通信过程中控制器向驱动器发送对应轴控制指令,驱动器接收到数据后进行数据解析,从轴地址开始,若轴地址不在定义范围内生成轴地址错误码0x07,若正确则进行功能码解析,若功能码不在范围内则生成功能码错误码0x14,若正确则进行有效长度解析,若有效数据长度不在定义范围内,则生成有效长度错误码0x0F,若数据域前轴地址、功能码、有效数据长度均无错误,则继续判断数据域,否则不进行数据域处理,若数据域判断出现错误,则生成功能码错误,错误码为当前命令功能码加0x80。数据解析完成后开启通信,驱动器将生成的错误码返回至控制器,控制器可根据错误码修改数据指令。在通信过程中若驱动器接收到的数据无法通过CRC校验,则直接中断通信无需进行解析,通过CRC状态信号线向控制器返回CRC错误标志。
通过本发明技术方案的应用,多轴运动控制平台可以快速实现控制器与驱动器的指令通信,完成多轴的控制,同时控制器可以及时了解数据指令下达与执行情况,保证了通信的可靠性,提高了多轴运动控制平台的稳定性与可靠性。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
本发明在实际应用过程中对方案中提到的CRC状态信号监测与双周期通信中从机校验返回机制进行了深度验证,对可能出现的通信错误进行模拟测试,验证本发明方案的可行性、可靠性。
多轴运动控制平台数据指令测试情况:
1、上电握手命令
主机:01 10 08 A5 A5 A5 A5 A5 A5 A5 A5 00 00 00 00 00 00 00 00 04 6C
从机:01 10 08 5A 5A 5A 5A 5A 5A 5A 5A 00 00 00 00 00 00 00 00 05 98
主机发送握手数据,从机接收到后对握手数据后对数据取反,返回主机,表示握手成功。
2、读参数命令
主机:02 11 06 20 05 00 20 09 00 00 00 00 00 00 00 00 00 00 00 70 87
从机:02 11 08 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00 63 D4
主机发送读数据命令,从机接收到主机读数据命令校验无误后,将所需读取的具体数据及数据长度返回。
3、写参数命令
主机:01 12 0E 20 05 00 00 00 01 11 20 06 00 00 00 00 60 00 00 6D 60
从机:01 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 98 81
主机发送写数据命令,从机收到主机写数据命令校验无误后,返回数据只包含命令帧头、功能码、校验码表示写命令无误。
4、写伺服参数命令
主机:01 13 07 20 00 00 00 00 01 81 00 00 00 00 00 00 00 00 00 30 45
从机:01 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C9 7D
写伺服参数命令同写参数命令一致,从机收到主机写伺服参数数据命令校验无误后,返回数据只包含命令帧头、功能码、校验码表示写命令无误。
5、轴地址错误命令
主机:08 12 0E 20 09 00 00 00 00 65 20 0A 00 00 00 00 C9 00 00 29 8F
从机:07 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 09
轴地址超出定义范围后,从机解析发现错误生成轴地址错误码0x07并返回主机,即从机返回数据的第一个Byte数据。
6、功能码错误命令
主机:02 15 07 21 06 00 00 00 00 0F 00 00 00 00 00 00 00 00 00 B1 FB
从机:02 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3C 4C
功能码超出定义范围后,从机解析发现功能码错误生成功能码错误码0x14并返回主机,即从机返回数据的第二个Byte数据。
7、有效数据长度错误命令
主机:02 11 02 20 05 00 20 09 00 00 00 00 00 00 00 00 00 00 00 32 46
从机:02 11 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 72
有效数据长度超出定义范围后,从机解析发现有效数据长度错误生成有效数据长度错误码0x0F并返回主机,即从机返回数据的第三个Byte数据。
8、数据域错误命令
主机:01 13 07 10 10 05 73 61 76 65 00 00 00 00 00 00 00 00 00 03 DE
从机:01 93 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E0 95
数据域数据超出可读写范围后,从机解析发现错误会生成错误码,错误码为当前命令功能码加0x80,例如当前命令为0x13,生成的错误码为0x93,以功能码错误的形式返回主机。
以上为本实例针对正确通信命令以及可能出现的错误通信命令进行的部分测试,通过测试结果可以看到无论发送正确命令还是错误命令,从机均可完成相应的解析并生成正确返回数据或对应错误码返回主机,主机可以根据从机返回数据实时了解数据命令的准确性并可以针对错误命令及时定位命令错误原因并进行修改。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种高性能串行通信方法,其特征在于,所述高性能串行通信方法包括:利用DMA方法完成串行通信期间的数据交换,并进行数据读写传输;增设从机状态信号线和CRC状态信号线,并通过构建的主从机数据交互方法使主机每次通信均能确定从机接收的数据状态。
2.如权利要求1所述的高性能串行通信方法,其特征在于,所述高性能串行通信方法包括以下步骤:
步骤一,构建传统四线SPI通信机制,并增设一条从机状态信号线,一条CRC状态信号线,通过六条接线实现主机与从机之间的串行通信;
步骤二,定义串行通信数据包,将数据帧头、功能码进行编码,并将有效数据长度进行范围限定;
步骤三,主机与从机通过DMA完成数据包读写,并将数据映射到缓存数组;
步骤四,主机与从机通过数据交互机制完成双方之间的数据通信;
步骤五,对主机与从机发送每次接收的数据进行CRC校验,通过CRC校验结果判断接收数据是否错误;若从机校验失败,向主机发送CRC错误标志并将接收到的数据清除,主机与从机重新进行数据通信;若校验成功,则将接收到的数据解析并存至指定位置。
3.如权利要求2所述的高性能串行通信方法,其特征在于,所述步骤一中的串行通信数据包,包括帧头、功能码、有效数据长度、数据域、CRC校验码。
4.如权利要求2所述的高性能串行通信方法,其特征在于,所述步骤四中的主机与从机通过数据交互机制完成双方之间的数据通信包括:
主机通过增设一条从机状态信号线查询从机目前的状态,若从机处于空闲状态则可以发起数据通信,若从机处于忙状态,则等待从机空闲后发起通信;
从机空闲状态下,主机向从机发送有效的数据包,从机接收到主机发送的数据包后,进入数据包处理状态,从机状态置为忙状态;
从机根据数据包数据依次判断数据帧头、功能码、数据有效长度、有效数据域以及CRC校验码,并根据判断结果生成不同的返回数据包,返回数据包生成后,将从机状态置为闲状态;
主机查询到从机状态为闲状态,确认从机处理完数据后,发送相同字节数无效数据包,同时从机将生成的返回数据包传输给主机;
主机接收到从机返回的数据包,依次处理数据包内容,至此完成一次完整的串行通信。
5.如权利要求4所述的高性能串行通信方法,其特征在于,从机处理主机发送的数据包过程中,若主机发送数据包验证正确,根据主机数据包生成新的无错误标志返回数据包,若主机发送数据包验证错误,从机根据帧头、命令、数据长度、有效数据的不同的错误生成不同的错误标志返回数据包;
其中,主机接收到从机返回的数据包后,完成数据包内容处理,若数据包无错误标志,则准备下一次通信;若数据包有错误标志,则根据错误标志在主机显示出对应错误。
6.如权利要求2所述的高性能串行通信方法,其特征在于,所述步骤五中的CRC校验采用标准的CRC数据校验机制;
其中,CRC16-CCITT的校验方式为:x16+x12+x5+1。
7.一种应用如权利要求1~6任意一项所述的高性能串行通信方法的高性能串行通信系统,其特征在于,所述高性能串行通信系统包括:
信号线增设模块,用于构建传统四线SPI通信机制,并增设一条从机状态信号线,一条CRC状态信号线,通过六条接线实现主机与从机之间的串行通信;
数据范围限定模块,用于定义串行通信数据包,将数据帧头、功能码进行编码,并将有效数据长度进行范围限定;
数据包读写模块,用于将主机与从机通过DMA完成数据包读写,并将数据映射到缓存数组;
数据通信模块,用于将主机与从机通过数据交互机制完成双方之间的数据通信;
CRC校验模块,用于对主机与从机发送每次接收的数据进行CRC校验,通过CRC校验结果判断接收数据是否错误。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
采用DMA技术完成串行通信期间的数据交换过程,实现数据读写传输;在传统SPI通信机制的基础上增设从机状态信号线和CRC状态信号线,并通过构建的主从机数据交互机制使主机每次通信均可确定从机接收的数据状态。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
采用DMA技术完成串行通信期间的数据交换过程,实现数据读写传输;在传统SPI通信机制的基础上增设从机状态信号线和CRC状态信号线,并通过构建的主从机数据交互机制使主机每次通信均可确定从机接收的数据状态。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求7所述的高性能串行通信系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210339833.5A CN114691578B (zh) | 2022-04-01 | 2022-04-01 | 一种高性能串行通信方法、系统、介质、设备及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210339833.5A CN114691578B (zh) | 2022-04-01 | 2022-04-01 | 一种高性能串行通信方法、系统、介质、设备及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114691578A true CN114691578A (zh) | 2022-07-01 |
CN114691578B CN114691578B (zh) | 2024-04-09 |
Family
ID=82140495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210339833.5A Active CN114691578B (zh) | 2022-04-01 | 2022-04-01 | 一种高性能串行通信方法、系统、介质、设备及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691578B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115284268A (zh) * | 2022-08-01 | 2022-11-04 | 法奥意威(苏州)机器人系统有限公司 | 数据校验方法、装置、机器人系统、电子设备及存储介质 |
CN117076371A (zh) * | 2023-08-28 | 2023-11-17 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种多机数据传输方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744811A (zh) * | 2013-12-27 | 2014-04-23 | 华中科技大学 | 一种串行数据传输系统及方法 |
CN108470013A (zh) * | 2018-01-24 | 2018-08-31 | 中国科学院宁波材料技术与工程研究所 | 一种实现双mcu数据传输的spi通信方法 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
-
2022
- 2022-04-01 CN CN202210339833.5A patent/CN114691578B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744811A (zh) * | 2013-12-27 | 2014-04-23 | 华中科技大学 | 一种串行数据传输系统及方法 |
CN108470013A (zh) * | 2018-01-24 | 2018-08-31 | 中国科学院宁波材料技术与工程研究所 | 一种实现双mcu数据传输的spi通信方法 |
CN112052213A (zh) * | 2020-10-10 | 2020-12-08 | 乐鑫信息科技(上海)股份有限公司 | 增强型spi控制器以及操作spi控制器的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115284268A (zh) * | 2022-08-01 | 2022-11-04 | 法奥意威(苏州)机器人系统有限公司 | 数据校验方法、装置、机器人系统、电子设备及存储介质 |
CN115284268B (zh) * | 2022-08-01 | 2023-11-21 | 法奥意威(苏州)机器人系统有限公司 | 数据校验方法、装置、机器人系统、电子设备及存储介质 |
CN117076371A (zh) * | 2023-08-28 | 2023-11-17 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种多机数据传输方法、装置、存储介质及电子设备 |
CN117076371B (zh) * | 2023-08-28 | 2024-04-12 | 广州市粤港澳大湾区前沿创新技术研究院 | 一种多机数据传输方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114691578B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114691578A (zh) | 一种高性能串行通信方法、系统、介质、设备及终端 | |
CN113254368B (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
CN103714029A (zh) | 新型二线同步通信协议及应用 | |
CN103714026B (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
CN104714907B (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
CN112564882B (zh) | 一种基于ahb总线的单线数字通讯接口 | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
CN111190852A (zh) | 基于双口的PowerPC与Microblaze交互系统及交互方法 | |
CN109992539B (zh) | 双主机协同工作装置 | |
CN116708592A (zh) | 一种可配置的通信协议交互方法及系统 | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN115587026A (zh) | 芯片测试方法、装置、存储介质及芯片 | |
CN110221937A (zh) | 一种板间通信数据的解析方法 | |
CN115549782A (zh) | 一种光模块的信息查询方法及其相关组件 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN113609052A (zh) | 基于fpga和微处理器的芯片模拟系统及实现方法 | |
CN103455401A (zh) | 一种dsp和fpga紧耦合架构的协同验证方法 | |
WO2014027223A1 (en) | Data bus network interface module and method therefor | |
CN109976778B (zh) | 车辆电子产品的软件更新方法与系统、上位机及存储介质 | |
CN102591820B (zh) | 一种idma总线桥装置 | |
CN220137680U (zh) | 一种支持异步通信接口的仿真器 | |
CN110471865B (zh) | 一种模拟spi通信实现控制器与驱动器通信的方法 | |
CN117971743B (zh) | 一种基于总线结构的嵌入式平台同步通信系统和方法 | |
CN113868179B (zh) | 一种LPC_DPRam的通信装置及数据转换方法 | |
CN214225910U (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 |