Reportcom口传输协议.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Reportcom口传输协议

Report com串口通信协议设计1串口通信协议分层结构:为了实现计算机之间的通信并减少协议设计的复杂性,大多数络通信按层次方式进行组织,并且可以参照国际标准七层通信模。从通信角度看,各层提供的服务可以分为两大类,即面向连接的服务和无连接的服务。本串行通讯协议是基于面向连接的服务。协议体系结构图如下:图1协议体系结构图2串口通信协议的设计:设计思想基于帧传输的万式,即在串口发送数据时是一帧一帧地发送。对于上层应用(如文件传输)来说,应用程序所发送和接收的都是流式数据,即如果应用程序需要进行上层协议解释的话,这些流式数据将面临重新拼装。为保证可靠的传输,在传输开始前,通过握手建立连接;在每一帧的传输中采用发送、应答、重连、失败的方式进行。2.1帧格式本传输协议中设计2种帧:控制帧、数据帧,用于文件传输,每一帧分为帧头和负载两个部分(数据帧还有两字节结束符),其中帧头占6个字节,前两个字节用于区分2种帧,后4个字节对于不同帧的意义各不同,负载长度不定,结束符为0x55AA。2.1.1数据帧数据帧的帧头(见图2)的前两个字节均为0,第2、3字节(A、B部分)表示负载数据的长度,用字节表示。第4、5字节M、N部分)表示第2、3字节的校验和。图2数据帧的帧头规则:·第1、2字节为O0表示数据帧;·AB表示传输数据长度.·MN表示校验,=数据长度负载数据的长度通常根据运行程序的输出缓冲区大小而定,一般最多不超过输出缓冲区的一半。2.1.2控制帧控制帧分为发送端控制帧和接收湍控制帧,除发送端控制帧中的“请求接收新文件”帧外,其余控制帧均不含负载,控制帧头如图3。图3控制帧头规则:·第l、2字竹为10表示控制帧,AB为请求表示,MN为附加表示。·当AB=11时,MN表示描述字符串文件名子串的长度。·当AB=10时,通知放弃传输。·当AB=00时,通知文件传输完毕。·当AB=01,请求对方发送数据。若MN=10,请求发送下一个,若MN=00,请求重发。例如:发送方:发送 101108test.txt (请求传输文件test.txt)10:是十六进制0x10,表示控制帧 11:是十六进制0x10,表示文件名08:是十六进制0x08,表示文件名长度 test.txt:文件名接受方:回复 100110 (请传输)10:是十六进制0x10,表示控制帧 01:是十六进制0x01,表示请求对方发送数据10:是十六进制0x10,表示继续发送2.2数据分帧与数据重组应用程序发送来的数据作为一个流按串口通信协议进行分帧,切割后为每帧加上帧头和校验和进行发送;在接收端,分帧的数据去掉帧头、校验和后存入文件缓存,接收完成后写入磁盘,如图5、6。图5 发送图6 接收3传输过程在发送数据的,发送方将数据进行分帧包装,然后按发送请求、数据传输、发送完成的步骤进行通信。3.1发送请求(1)发送端发“请求接收新文件”信号,等待反馈。(2)接收端收到请求信号后,向用户询问是否接收。(3)用户确认接收后,接收端发出“请求发送文件”信号。(4)发送端收到“请求发送文件”信号后,开始发送数据.3.2数据传输(1)首先由发送端发出第一帧数据,然后等待反馈。(2)接收端收到一帧数据后,若帧长度校验和错误则发出“请求重新发送帧数据”信号,如果正确,则发出“请求发送下一帧数据”信号。(3)若发送端收到“请求重新发送帧数据”信号,则重新发送先前的发送的帧数据。(4)若发送端收到“请求发送下一帧数据”信号,则首先检查已经发出的一帧数据是否是最后一帧,如果是则发出“发送完毕”信号,否则,发送下一帧数据。(5)重复(2)、(3)、(4)的步骤。3.3发送完成(1)发送方发出“发送完毕”信号后,关闭文件,并提示用户“发送完毕”。(2)接收端受到“发送完毕”信号后,则把文件缓冲区中存储的数据写入磁盘,然后关闭文件。并向用户提示“接收完毕”。

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档