CN106502950B - 一种通过串口传输文件的方法及系统 - Google Patents

一种通过串口传输文件的方法及系统 Download PDF

Info

Publication number
CN106502950B
CN106502950B CN201610873065.6A CN201610873065A CN106502950B CN 106502950 B CN106502950 B CN 106502950B CN 201610873065 A CN201610873065 A CN 201610873065A CN 106502950 B CN106502950 B CN 106502950B
Authority
CN
China
Prior art keywords
file
data
byte
receiving end
serial ports
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
Application number
CN201610873065.6A
Other languages
English (en)
Other versions
CN106502950A (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.)
Zhuzhou Taichang Electronic Information Technology Ltd By Share Ltd
Original Assignee
Zhuzhou Taichang Electronic Information Technology Ltd By Share 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 Zhuzhou Taichang Electronic Information Technology Ltd By Share Ltd filed Critical Zhuzhou Taichang Electronic Information Technology Ltd By Share Ltd
Priority to CN201610873065.6A priority Critical patent/CN106502950B/zh
Publication of CN106502950A publication Critical patent/CN106502950A/zh
Application granted granted Critical
Publication of CN106502950B publication Critical patent/CN106502950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种通过串口传输文件的方法及系统,包括以下步骤:步骤1:文件发送步骤;发送端通过串口向接收端发送文件数据时,还发送文件长度数据;步骤2:文件接收步骤;接收端接收到文件数据以及文件长度数据后,根据接收到的文件长度数据截取文件数据,得到最终的文件。该通过串口传输文件的方法易于实施,传输可靠性高。

Description

一种通过串口传输文件的方法及系统
技术领域
本发明涉及一种通过串口传输文件的方法及系统。
背景技术
对于高可靠性的应用场景,文件的传输不仅要保证传输过程中的可靠性,同时在传输完成后,还需要保证源文件与目标文件的一致性。目前使用串口进行文件传输,往往使用XMODEM协议进行。该协议采用128或1024字块的形式传输数据,如果需要传输的数据长度少于128或1024字块,则会采用SUB字节 (0x1A)填充。该机制下接收的文件总是会包含填充字节,常常导致接收文件与源文件大小不一致。当需要进一步保证源文件和目标文件一致性的时候,如比对源文件与目标文件的MD5校验码等,则无法通过。因此,有必要设计一种通过串口传输文件的方法及系统。
发明内容
本发明所要解决的技术问题是提供一种通过串口传输文件的方法及系统,该通过串口传输文件的方法易于实施,传输可靠性高。
发明的技术解决方案如下:
一种通过串口传输文件的方法,包括以下步骤:
步骤1:文件发送步骤;
发送端通过串口向接收端发送文件数据时,还发送文件长度数据;
步骤2:文件接收步骤;
接收端接收到文件数据以及文件长度数据后,根据接收到的文件长度数据截取文件数据,得到最终的文件。
步骤1中,采用字块的方式分帧传输文件数据;
每一个字块的总数为M;M为整数,M≥64;
每一个字块预留N个字节用于存放本帧数据中的有效数据数;N为整数, N≥2;
步骤2中,接收端对每一个字块中的有效数据进行截取,再将所有字块的有效数据按顺序进行组合,形成最终的文件。
所述的预留的N个字节位于字块的最前端或最末尾。
作为优选,M=128或1024;N=2。如果字块数据量大,可以预留3或4个字节,甚至预留更多字节;如字节长度为126,则填充0x00,0x7E,字节长度为1022,则填充0x03,0xFE。其余数据长度转换为十六进制数据填充此两字节即可;
发送端与接收端使用XMODEM协议进行通信。
在步骤1之前,发送端向接收端发出MD5校验码,在步骤2后,接收端进行MD5校验;校验通过则表明文件发送成功。
在步骤1中,在发送文件数据前,单独发送文件长度数据。
在步骤1中,将标识码与文件长度数据结合成一个文件长度字段与文件数据一并发送;所述的一并发送是指:文件长度字段位于文件数据的前端、尾端或中部。文件长度字段共占用6字节,标识码采用RS字符(0x1E),格式为“1E+ 文件长度(4字节)+1E”。例如,发送文件长度为50000000字节,文件长度字段为“1E 02 FA F0 80 1E”。
一种通过串口传输文件的系统,包括发送端和接收端;发送端和接收端基于前述的方法通过串口进行文件传输。
本方法主要在现有XMODEM协议基础上进行改进,发送方选取每一字块中最后两个有效字节填充长度字段,接收方接收到数据后,先解析出该填充字段,再根据字段截取有效字节,即可过滤掉填充SUB字节(0x1A)。或者发送方在文件传输的第一个字块中填充文件长度字段,接收方接收到该字段后,以该长度拼接后续接收到的其余字块数据,高效截取出最后一个字块的有效字节,从而达到过滤填充SUB字节(0x1A)的作用。
有益效果:
本发明的通过串口传输文件的方法及系统,该方法具有流程简单和传输可靠的特点,能高效实现串口文件的高可靠性传输,既能借助原有XMODEM的串口传输协议保证文件传输过程中的可靠性,又能通过添加的协议字段过滤掉填充字节,使源文件和目标文件能够进行再一次MD5校验,同时也为进一步的文件校验处理提供了条件,可靠性高。
附图说明
图1为通过串口传输文件的流程图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明:
实施例1:如图1,通过串口传输文件的方法对应的系统由两部分组成:发送端和接收端。
原xmodem协议帧结构:
改进帧结构:
发送端:
由于需要传输的文件可能存在其他程序异步读写的情况,因此发送端在文件传输前首先发送文件MD5码到接收端,以便文件接收完成后进行进一步检查校验。避免了文件在传输前被改写的情况,提高了可靠性。
文件传输过程中,每一帧最后两个字节被用于传输数据长度,循环发送数据直至文件内容发送完成。
发送端在进行XMODEM协议的数据字块组合期间,由原先的选取128或1024字节,更改成选取126或1022字节。对于最后一帧未满126或1022字节的,则选取实际剩余字节数。原数据字节最后两字节用于填充字节长度。如字节长度为126,则填充0x00,0x7E,字节长度为1022,则填充0x03,0xFE。其余数据长度转换为十六进制数据填充此两字节即可。
接收端:
接收端在实际接收文件内容前,首先接收文件MD5码并保存到本地。
文件传输过程中,依据XMODEM协议进行校验和验证,对于完整接收的每一帧数据,先获取到XMODEM协议规定的128或1024字节数据字段,再解析数据长度两个字节,根据该长度从数据字节中截取有效数据,并存储在文件中。
文件完整接收后,进行接收文件MD5码计算,然后与接收端发送的文件 MD5码进行比对和校验,如果完全一致,文件保留,否则予以丢弃。
一种通过串口传输文件的系统,包括发送端和接收端;发送端和接收端基于前述的方法通过串口进行文件传输。
实施例2:
步骤1:文件发送步骤;
发送端通过串口向接收端发送文件数据时,还发送文件长度数据;
步骤2:文件接收步骤;
接收端接收到文件数据以及文件长度数据后,根据接收到的文件长度数据截取文件数据,得到最终的文件。
在步骤1中,在发送文件数据前,单独发送文件长度数据。
实施例3:在步骤1中,将标识码与文件长度数据结合成一个文件长度字段与文件数据一并发送;所述的一并发送是指:文件长度字段位于文件数据的前端、尾端或中部。如:文件长度字段共占用6字节,标识码采用RS字符(0x1E),格式为“1E+文件长度(4字节)+1E”。例如,发送文件长度为50000000字节,文件长度字段为“1E 02 FA F0 80 1E”。

Claims (2)

1.一种通过串口传输文件的方法,其特征在于,包括以下步骤:
步骤1:文件发送步骤;
发送端通过串口向接收端发送文件数据时,还发送文件长度数据;
步骤2:文件接收步骤;
接收端接收到文件数据以及文件长度数据后,根据接收到的文件长度数据截取文件数据,得到最终的文件;
步骤1中,采用字块的方式分帧传输文件数据;
每一个字块的总数为M;M为整数,M≥64;
每一个字块预留N个字节用于存放本帧数据中的有效数据数;N为整数,N≥2;
步骤2中,接收端对每一个字块中的有效数据进行截取,再将所有字块的有效数据按顺序进行组合,形成最终的文件;
所述的预留的N个字节位于字块的最前端或最末尾;
M=128或1024;N=2;
发送端与接收端使用XMODEM协议进行通信;
在步骤1之前,发送端向接收端发出MD5校验码,在步骤2后,接收端进行MD5校验;校验通过则表明文件发送成功;
在步骤1中,在发送文件数据前,单独发送文件长度数据;
在步骤1中,将标识码与文件长度数据结合成一个文件长度字段与文件数据一并发送;所述的一并发送是指:文件长度字段位于文件数据的前端、尾端或中部;
帧结构为:
发送端在进行XMODEM协议的数据字块组合期间,由原先的选取128或1024字节,更改成选取126或1022字节;对于最后一帧未满126或1022字节的,则选取实际剩余字节数;原数据字节最后两字节用于填充字节长度;如字节长度为126,则填充0x00,0x7E,字节长度为1022,则填充0x03,0xFE;其余数据长度转换为十六进制数据填充此两字节即可。
2.一种通过串口传输文件的系统,包括发送端和接收端;发送端和接收端基于权利要求1所述的方法通过串口进行文件传输。
CN201610873065.6A 2016-09-30 2016-09-30 一种通过串口传输文件的方法及系统 Active CN106502950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610873065.6A CN106502950B (zh) 2016-09-30 2016-09-30 一种通过串口传输文件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610873065.6A CN106502950B (zh) 2016-09-30 2016-09-30 一种通过串口传输文件的方法及系统

Publications (2)

Publication Number Publication Date
CN106502950A CN106502950A (zh) 2017-03-15
CN106502950B true CN106502950B (zh) 2019-10-01

Family

ID=58294054

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610873065.6A Active CN106502950B (zh) 2016-09-30 2016-09-30 一种通过串口传输文件的方法及系统

Country Status (1)

Country Link
CN (1) CN106502950B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1316146A (zh) * 1999-07-27 2001-10-03 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
CN1571370A (zh) * 2003-07-18 2005-01-26 华为技术有限公司 一种通信设备数据加载的方法
CN101366010A (zh) * 2005-12-22 2009-02-11 直观外科手术公司 多优先级报文接发
CN101369149A (zh) * 2008-09-27 2009-02-18 东南大学 一种畜禽设施养殖环境监控方法
CA2483419C (en) * 1995-05-08 2012-06-19 Digimarc Corporation Methods and systems for processing digital media content
CN103957134A (zh) * 2014-04-22 2014-07-30 航天恒星科技有限公司 一种模块化可配置的遥测参数解析处理系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2483419C (en) * 1995-05-08 2012-06-19 Digimarc Corporation Methods and systems for processing digital media content
CN1316146A (zh) * 1999-07-27 2001-10-03 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
CN1571370A (zh) * 2003-07-18 2005-01-26 华为技术有限公司 一种通信设备数据加载的方法
CN101366010A (zh) * 2005-12-22 2009-02-11 直观外科手术公司 多优先级报文接发
CN101369149A (zh) * 2008-09-27 2009-02-18 东南大学 一种畜禽设施养殖环境监控方法
CN103957134A (zh) * 2014-04-22 2014-07-30 航天恒星科技有限公司 一种模块化可配置的遥测参数解析处理系统

Also Published As

Publication number Publication date
CN106502950A (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN109768970B (zh) 一种基于可配置的通用协议生成方法
CN107426770B (zh) 基于数据链路层的数据通讯方法、数据终端及系统
CN111083161A (zh) 数据传输的处理方法及装置、物联网设备
US7082603B2 (en) Upgrading peripheral devices
CN106657149B (zh) 通讯协议转换方法与装置
CN109756536A (zh) 一种数据传输的方法、装置及系统
EP2866142A1 (en) Upgrade package generation method and device, dynamic file differential upgrade method and terminal
CN107222777B (zh) 一种机顶盒WiFi和蓝牙共存优化方法及装置
CN110380842B (zh) 适用于智慧网联汽车的can总线报文签名方法、装置和系统
CN101729525A (zh) 数据包的发送、接收方法及装置、以及处理方法及系统
WO2016173128A1 (zh) 一种软件版本的下载方法及装置、存储介质
CN106603506B (zh) 基于多现场总线的数据通信方法、设备及系统
CN109040505A (zh) 一种基于批量二维码传输的安全数据传输方法
WO2014135038A1 (zh) 基于pcie总线的报文传输方法与装置
CN101479969B (zh) 数据封装的方法和设备
CN108880760B (zh) 一种基于北斗卫星的大数据量可靠通信方法
CN108781218A (zh) 数据处理方法、数据发送端、接收端和通信系统
US8799350B2 (en) Method and device for establishing network communication compatibility of terminals
CN104869174A (zh) 一种基于第三方消息中间件的文件传输方法
CN106502950B (zh) 一种通过串口传输文件的方法及系统
CN110147244A (zh) 一种车载软件升级的方法
CN118158215A (zh) 一种基于卫星短报文的文件传输方法和系统
CN109309676A (zh) 数据传输端、数据接收端、数据处理系统及方法
CN103838587A (zh) 基于gprs的控制系统远程升级方法及装置
US20140297753A1 (en) Method for transferring network event protocol messages

Legal Events

Date Code Title Description
C06 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