1 / 13
文档名称:

单片机通信协议处理.doc

格式:doc   大小:84KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机通信协议处理.doc

上传人:sssmppp 2020/3/2 文件大小:84 KB

下载得到文件列表

单片机通信协议处理.doc

相关文档

文档介绍

文档介绍:单片机通信协议处理这里所说的数据协议是建立在物理层之上的通信数据包格式。所谓通信的物理层就是指我们通常所用到的RS232、RS485、红外、光纤、无线等等通信方式。在这个层面上,底层软件提供两个基本的操作函数:发送一个字节数据、接收一个字节数据。所有的数据协议全部建立在这两个操作方法之上。通信中的数据往往以数据包的形式进行传送的,我们把这样的一个数据包称作为一帧数据。类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成部分:帧头、地址信息、数据类型、数据长度、数据块、校验码、帧尾。帧头和帧尾用于数据包完整性的判别,通常选择一定长度的固定字节组成,要求是在整个数据链中判别数据包的误码率越低越好。减小固定字节数据的匹配机会,也就是说使帧头和帧尾的特征字节在整个数据链中能够匹配的机会最小。通常有两种做法,一、减小特征字节的匹配几率。二、增加特征字节的长度。通常选取第一种方法的情况是整个数据链路中的数据不具有随即性,数据可预测,可以通过人为选择帧头和帧尾的特征字来避开,从而减小特征字节的匹配几率。使用第二种方法的情况更加通用,适合于数据随即的场合。通过增加特征字节的长度减小匹配几率,虽然不能够完全的避免匹配的情况,但可以使匹配几率大大减小,如果碰到匹配的情况也可以由校验码来进行检测,因此这种情况在绝大多说情况下比较可靠。地址信息主要用于多机通信中,通过地址信息的不同来识别不同的通信终端。在一对多的通信系统中,可以只包含目的地址信息。同时包含源地址和目的地址则适用于多对多的通信系统。数据类型、数据长度和数据块是主耍的数据部分。数据类型口J以标识后面紧接着的是命令还是数据。数据长度用于指示有效数据的个数。校验码则用来检验数据的完整性和正确性。通常对数据类型、数据长度和数据块三个部分进行相关的运算得到。最简单的做法可是对数据段作累加和,复杂的也可以对数据进行CRC运算等等,可以根据运算速度、容错度等要求来选取。2,上位机和下位机中的数据发送物理通信层中提供了两个基本的操作函数,发送一个字节数据则为数据发送的基础。数据包的发送即把数据包中的左右字节按照顺序一个一个的发送数据而已。当然发送的方法也有不同。在单片机系统中,比较常用的方法是直接调用串丨I发送单个字节数据的函数。这种方法的缺点是需要处理器在发送过程中全程参与,优点是所要发送的数据能够立即的出现在通信线路上,能够立即被接收端接收到。另外一种方法是采用中断发送的方式,所有需要发送的数据被送入一个缓冲区,利用发送中断将缓冲区中的数据发送出去。这种方法的优点是占用处理器资源小,但是可能出现需要发送的数据不能立即被发送的情况,不过这种时延相当的小。对于51系列单片机,比较倾向于釆用直接发送的方式,釆用中断发送的方式比较占用RAM资源,而且对比直接发送来说也没有太多的优点。以下是51系列单片机屮发送单个字节的函数。voidSendByte(unsignedCHARch)SBUF二ch;while(TI二二0);TI二0;上位机中关于串口通信的方式也有多种,这种方式不是指数据有没有缓冲的问题,而是操作串口的方式不同,因为PC上数据发送基本上都会被缓冲后再发送。对于编程来说操作串口有三种方式,一、使用windows系统中自带的串口通信控件,这种方式使用起来比较简单,需要注意的是接收时的阻塞处理和线程机制。二、使用系统的API直接进彳亍串口数据的读取,在windows和linux系统屮,设备被虚拟为文件,只需要利用系统提供的API函数即可进行串口数据的发送和读取。三、使用串口类进行串口操作。在此只介绍windows环境下利用串口类编程的方式。CSerialPort是比较好用的串口类。它提供如下的串丨I操作方法:voidWriteToPort(CHAR*string,intlen);串口初始化成功后,调用此函数即可向串口发送数据。为了避免串口缓冲所带来的延吋,可以开启串口的冲刷机制。,一、等待接收,处理器一直查询串丨I状态,来判断是否接收到数据。二、中断接收。两种方法的优缺点在此前的一篇关于串口通信的文章屮详细讨论过。得出的结论是采用中断接收的方法比较好。数据包的解析过程可以设置到不同的位置。如果协议比较简单,整个系统只是处理…些简单的命令,那么可以直接把数据包的解析过程放入到中断处理函数中,当收到正确的数据包的吋候,置位相应的标志,在主程序中再对命令进行处理。如果协议稍微复杂,比较好的方式是将接收的数据存放于缓冲区中,主程序读取数据后进行解析。也有两种方式交叉使用的,比如一对多的系统屮,首先在接收屮断中解析“连接”命令,连接命令接收到后主程序进入设置状态,釆用查询的方式来解析其余的协议。以下给出具体的实例。在这个系统中

最近更新

2025年兰州外语职业学院单招职业技能测试题库.. 75页

保险行业居间贸易合同样本3篇 49页

2025年兰州资源环境职业技术大学单招职业技能.. 74页

2025年冀中职业学院单招综合素质考试题库完整.. 72页

供热工程运输车辆协议模板3篇 54页

2025年内蒙古机电职业技术学院单招综合素质考.. 74页

2025年内蒙古科技职业学院单招职业适应性测试.. 76页

2025年内蒙古锡林郭勒盟单招职业倾向性测试题.. 75页

2025年包头钢铁职业技术学院单招职业倾向性考.. 76页

2025年北京戏曲艺术职业学院单招职业适应性测.. 74页

实习医生实习报告 5页

2025年南充文化旅游职业学院单招职业适应性测.. 73页

2025年南通科技职业学院单招职业适应性考试题.. 75页

2025年厦门兴才职业技术学院单招综合素质考试.. 74页

2025年厦门南洋职业学院单招职业技能考试题库.. 73页

银行季度总结报告-银行高管 25页

2025年吉林城市职业技术学院单招职业技能考试.. 71页

2025年吉林省白城市单招职业适应性考试题库推.. 73页

2025年咸宁职业技术学院单招职业适应性考试题.. 76页

2025年唐山科技职业技术学院单招职业倾向性测.. 74页

2025年商洛职业技术学院单招综合素质考试题库.. 73页

2025年嘉兴南湖学院单招职业适应性考试题库及.. 74页

塑料产品设计指南 8页

外研社版初中英语八下Module1单元测试试题试卷.. 13页

危重病人的抢救配合站位 44页

石材图谱 6页

(完整版)人教版小学阶段英语单词默写表 10页

隧道衬砌标准化工艺及技术要求 10页

公路工程隧道二衬施工品质工程质量安全管控指.. 17页

绿化景观工程技术交底PPT课件 60页