版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第30卷第24期 计算机工程 VoL30施24Computer Engineering2004年12月 December 2004:日:=#=开发研究与设计技术 文章编号:looo_3428(2IJ0424卅192卅3文献标识码:A 中图分类号:TP393自定义串口数据通信协议的分析与设计王承君(潍坊学院计算机系,潍坊26104I摘耍:以微软公司fl(JMSComm串口通信控件为底层接口,建立了一个简单的串口通信协议(sPcP。sPcP协议的设计基于帧f,.fl,.m一一., 采用发送/应答/藤连/失败tr:,UJ"武进行。,*tlIH该瞰义能实现双机短信聊天、文件传输等实时数据通信
2、功能。关键诃:SPCP;通信协i义;f目口;数据帧Analvsis and Design of Self-defining Serial PortCommunication ProtocolWANG ChengJun(Depa!llllenolComputo.Wcifi.mgCollege,Wcifang 261041【Abstract l,ITJlis paper proposes 11simplc Selial pott communication protocol(SPCPbased Oil MSComm developed by Micmsofl Company.rhc nolion
3、tmderling SPCP dcsign is data tYamc transfe nin send ng/ack mwledg ng/reconnecting/thilure way.By SPCP.realtime applications can bc devclopcd.1br example,peer-topeer chatting,Iile translcr,and SO forth.1Kcy wordsSI(、I:(_'onlilluii Jciiliorl pJoloeol;Serial port;Dala fhlrncIll行通f?i接l-I(RS232足汁算机标
4、准眦髓的通膏接l-|, 利川玎;I 1进fi数jl通fIi、数搬采集等是汁锋机的哦婴7、江JH领 域之。她1;:,=在fnI I之l:的数据传输可以根据具体的实际情 况构缱门已的数撕交换|II则,即通信阱义。本文讨论的p是 构建在短信、文件传输等方面的数据通信协议。l SPCP协议分层结构为r实现计算机之间的通信并减少协议设1的复尔性, 大多数I69络通信按层次厅式进行2I织,J卜叮以参照鼍(实t:的I剐珠标llOSI七层通信模,融。从通信们度看,行层提供的 服务IIf以分为I埘人类,UIl IflI;'l迮接flglll务和兀连接的服务。 SPCP的没汁足坫-J:I=fii目连接的服
5、务。S1CP叭议体系结构图 见图l。 图l SICl,协议体系结构图2串口通信协议(SPCP的设计SPCP的没i,I思恕J毒Jj帧传输的万式,即枉向凇ILl发送 数据时址帧帧地发送。刈j:f:层应川(女ll义件传输来 说,膨JI】张序所发送和接收的都是流式数据,即如果应用程 J镛婴进行I二层胁艾f6譬释的淆,这蝗流式数拊将1fifl晰匝新拼一.192一 装。为保证可靠的传输,在传输开始前,通过握手建妒连接 (类似TCP/IP协议;在每-帧的传输中采月J发送/腹答/晚连/失败的方式进行。本传输协议中设计3种帧:控制帧、数据帧、短语帧。 其中控制帧和数据帧用于文件传输,短语帧用于短消息发 送。每一
6、帧分为帧头和负载西个部分,其中帧头占6个字 竹,前两个宇仃J=Ij f区分3利懒,后4个字节对j:不同帧的意 义各不J:l_I同,负载长度/1;定。数据帧的帧头(见图2的前两个字节均为0,第2、3字节 (A、B部分表示负载数据的长度,用字节表示。第4、5字节 (M、N部分表示第2、3字节的校验和。IJ 4ll 0A B M N图2数据帧的枝头规则:第1、2字节为O(表示数据帧;AB表示传输数据长度,l。=人+100+B;MN表示校验,M4100+N=A+B n负载数据的长度通常根据运行程序的输出缓冲区大小而 定,一般最多一i超过输缓冲区的半。控制帧分为发送端控制帧和接收湍控制帧,除发送端控 制
7、帧中的“请求接收新文件”帧外,其余控制帧均,1;含负 载,控制帧头如图3。作者简介:t承档(1966一,男,删教授,主研方向为网络编程与 网络通信、数据库应用一收稿日期:2004-09.10E-mail:wc.isdwl'(/sina.COll 万 方数据'j日 卷义日 I(】 4 II lJ A B M N 豳3控爿姨头规则:第l、2字竹为1(农尿挖制帧,AB为请求表示,MN为附加 表爪.当AB=I I时,M表爪描述字符|巾文件名子凇的长度,N表示 椭述小1文件人小的长度,AP,=IOl J,l",迎知放卉化输。B=IJ0¨寸。通知文件传输完毕。.AB.=
8、0I¨于.沾求对方发送数据。j苔11111=10,请求发送下一 个,符mn=00.清求丌(发。!.1-3f矗息(短语帧觚诳帧的组成。j数掘i帧幸H似,前两个字仃均分别为0和 l,笫!、3中IY(A、B部分表示负载数据的长度,用字节表 爪。与数据帧小同的足怒谢帧没有校验,I弼H寸数据帧的负载 为:进制数拊,I阿矩阡帧的负载为文本数据,见图4。Jj:I。In义日豳4短语帧头规!IJJ:-笫I、!F 17为0I友爪信息帧。AB表爪数槲l,Jf:,I,。+100-¨jXX为配化字符,任意。成JlJ程序发送米的数据作为一个流按SPCP协议进行分 帧,切割后为每帧Jll l二帧头和校验
9、和进行发送;礼接收端, 分帧的数据去掉帧又后仃入文件缓冲IX,接收完成后写入磁 德。祭个过程女¨I15、H6。l川j州“艟_|1.:圩-K:b川_、.ftj0川L_、7SIIK噬缓川II"ijf, ,扣|> ' ,扯氆3传输过程th发送端发“浦求接收新文件”僻呼,等待反馈。(2接收端收到请求信号后,门蹦户询问是否接收。(3用户确认接收后,接收端发I“请求发送文件”储号。(1首先由发送端发出第一帧数据,然后等待反馈。(2接收端收到一帧数据后,若帧长度校验和错误则发 出“请求重新发送帧数据”信号,如果正确,则发出“请求 发送下一帧数据”信号。(3若发送端收到“请求
10、霓新发送帧数据”信蛩,则瞳 新发送先的发送的帧数据。(4若发送端收蓟“请求发送下一帧数据”信号,则首 先检查已经发出的一帧数据是否是最后一帧,如果是则发出 “发送完毕”信号,否则,发送下一帧数据。(5煎复(2、(3、(4的步骤。(I发送方发出“发送完毕”信号后,关闭文件,并提 示用户“发送完毕”。(2接收端受到“发送完毕”信号后,则把文件缓冲区 中存储的数据写入磁盘,然后关闭文件。并向用户提示“接 收完毕”。4SPCP协议的实现本通信阱议的底层数据接口采用MSComm控件。 MSComm控件是Microsoft.公司提供的简化Windows下串行通 信编程的ActiveX控件,它为应用程序提供
11、了通过串行接口 收发数据的简便方法,4F.VB、VC等编程环境下均可使用。 MSComm控件提供两种处理通信方式:事件驱动方式和查 询方式。(1事件驱动通信足处理串行端口交互作用的一种非常 钉效的方法。在许多悄况F,在事件发生If于需婴得到通知, 例如,在Carrier Detect(CD或Request To Send(RTS线上 一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm控件的OnComm习#件捕获并处理这些通信事件。 OnComm事件还可以检查和处理通信错误。所有通信事件 和通信错误都可通过CommEvent属性获得。(2在程序的每个关键功能之后,呵以通过裣硷 M
12、SComm控件的ConllllEvent属性的值来查询啦件和错洪。 如果应JH稿!序较小,并H.足自保持的,这利t方法可能是疆可 取的。例如,如果写一个简单的电话拨号程序,则没有必要 对每接收一个字符都产zI:事件,因为唯一等待接收的字符是 调制解调器的“确定”响应。每个使玎的MSComm控件对应着个串行端日。如果 应用程序需要访问多个|I行端1,必须使H多个MSComm 控件。可以在Windows控制iif极rll改变端U地址和中断 地址。 .4.2SI Cn姚之实现的主要算法设计当MSComm通信控件接收到数据以后,触发MSCoimn 控件的OnComm事件。从丽对接收数据进行处理。图7是
13、当 MSComm通信控件接收到数据以后SPCP协议的处理逻辑。 关于文件接收管删的功能主要包括发送文件请求、发送 数据帧和发送完成信号功能,同样文件接收符娜的功能卜要 包括接收新文件、i_i!f水发送、i!求畦浙发送和接收究成处刖 等功能,限于篇幅,处理逻牟;:这呲不在列出。 万 方数据,臣圈 主>K龟>藿髻畲Y 匝壶圈由臣由y圈由武N申由拶<笾岁压圈“匝壶习t圈7处理逻辑5协议应用实例双机jIjc举:iHI-J'-,通过II将两台计算机连接起来,按照自定义的¨通f。了眺议(SICP进行信息交换,实现通过串口进 行聊天、文件收发的功能。图8足用VB6.0开发
14、的程序主界 面。网巾左中部分负责聊天功能,右半部分负责实现文件传 输功能。12方12媳条I:的3个按乍ff分别完成打升fF-I、关闭 rt:11、配惯il'l,l参数功能。1EgtlrP央的编辑榧娃示聊天的信 息,/i!斤Fi,lll'l'J文小楸完成li信息发送功能。界而的27-;t":部 分负责文f,l:的传输,女j果前嶝发送义件,必须选t Jt“发送文圈8程序主界面件”雎选框,在其下的文本框中输入(或选择文件,然后单击开始传输;若要接收文件,选择“接收文 件”濉选框,在其下的文本框中输入(或选择保存路 径和文件名,单击开始传输进行文件接收。6结束语本文以
15、MSComm控件作为底层接口建立r-个 简单的串13通信协议(SPCP。从中可以了解如何创 建简单的通信协议以及开发协议时遵循的技术。当然 本协议还有许多不完善之处,比如文件传输效率一; 高,安全性没有考虑等,有待于以后进一步优化。ttiJ'文ilitI Stcwarl R R,XieOiaobing.Stream Control-/,rallSlllisSiOll Ptxtoco/(SCllPl.人Rcti:rcncc Guide.AddisonWesley Pub.Co.Bk&【I-Rom Edition.2001122李现勇.Visual C+串H通信技术与工程实践.北京
16、:人民邮也出版社,20023谭思亮.Visualc+串171通信工程开发实例导航.北京:人民邮l乜I版社,20034丸山修考(t-I.通信协议技术.北京:科学出版社,2004(上接笫124页:元和t元的难确率棚差不多,可见当词的距离变大后,词的 前后影响迅速减弱.(:锵误分析标l:锵!13IIJ分为阳类:米髓录同性错误l,-lf类词锵误。以:JCI州U5尔l叮人为例,总词数:122276;标注jE确:10737I;标注锵从,rl:14905。j小,朱髓求iJd'Pl-'.7644I旨5I.3%,兼类词锵误7261I与48.7%。未髓录词性人体m际/n峰PtiJ/n fl(Jlu
17、极端m现象/n极端11膨“j为搬端7dJ任炎M通讯,711下段n址,、,l LL磁波In辄射/、牟flI射,、-心“1为极端mJJ”J:汉语tth”ir寿巾的谢性活用现象,一个词可以以多种词 陀使fJ,这给词悱收求带来了很火的困难,从而产生末髓录 iiiJ世l"错误。标注蛑法一t要解决的是兼类词的错误。从结果来 看,jn!确冰般,还衙蠼进步改进。5结语一194本文介绍了SEGPOS系统的设计思想、框架和实现。Jf:对各种切分、标注算法进行了比较、评测和研究。通过研 究,为今后的研究提供了信息:(1未髓录诃是目前切分过 程巾的ji嘤困难之一,婴提高切分的J11确率,就足妥善解决 未登录
18、词的问题。未精录词的组成复杂,有人名、地私擘,Ik 术语等,每种词都不同,需要有针对性地解决。(2词类活 用现象在汉语中普遍存在,这给标注带来了很大困难,婴提 高标注的正确率,就要对词类挢用进行研究。(3不同的方 法能处理不同的错误,只有多利t方法结合使用,才能不断提 高切分标注的正确鸷。参考文献学报,1999,f52刘颖.1jf急§Ji(1;ig犬模4I!x,l汉i_f进行切分和标注排歧.计算机II程 与设i,t,200I,22(43万建成,杨春花.二抒面汉语的全切分分词算法模型.,J、型微型计算机系统,2003.24(7 4徐 菁,张 麟,陆汝占.汉语语料的切分标注加工系统.计算
19、机:程,2003,2995屈刚,陆汝h个改进的汉语溯性杯注系统.I:海交通大学学报.2003.39(6冒髫 万 方数据 自定义串口数据通信协议的分析与设计作者:王承君作者单位:潍坊学院计算机系,潍坊,261041刊名:计算机工程 英文刊名:COMPUTER ENGINEERING年,卷(期:2004,30(24被引用次数:11次参考文献(4条1. 丸山修考 通信协议技术 20042. 谭思亮 Visual C+串口通信工程开发实例导航 20033. 李现勇 Visual C+串口通信技术与工程实践 20024. Stewart R R;Xie Qiaobing Stream Control Transmi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小微企业安全生产标准化创建工作制度
- 校园消防安全知识竞赛试题及答案
- 心律失常护理试题及答案
- 2026中国联通招聘试题及答案
- 2026中国联合航空秋招心理测试题及答案
- 2026年甘肃省定西市陇西县第二中学生物高二第二学期期末学业质量监测试题含解析
- 2026中国建材招聘试题及答案
- 2026年广东省华南师范大第二附属中学生物八下期末复习检测试题含解析
- 9001体系奖惩制度
- 4s店销售部奖惩制度
- 水炮施工方案消防水炮安装施工方案
- 新版药品管理法培训课件
- PSSR审查表 (空白简单版)
- 2025年中国国新控股有限责任公司招聘笔试参考题库含答案解析
- DB33 786-2010 水泥行业安全生产基本要求
- 磷酸铁销售合同范例
- 湖北省襄阳市2024年中考数学试题(含解析)
- VDA6完整版本.3过程审核核查表-机加
- 2024年西藏初中学业水平考试数学卷试题真题(含答案详解)
- 真题解析 -2025年高考地理选择性必修第二册(人教版)
- 皮质层神经元群集动态
评论
0/150
提交评论