串口通信协议范文_第1页
串口通信协议范文_第2页
串口通信协议范文_第3页
串口通信协议范文_第4页
串口通信协议范文_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#串口通信协议范文一、单片机串口通讯协议程序如何写最好举个例子万分感激单片机串口通讯协议,这要看单片机是与什么通信,是电脑吗,还是其他什么设备,假如是买来的什么设备,那肯定要按那设备的通信协议来写程序啦,不然话,是不能通信的。假如是电脑就好办了,因电脑端可以写一个软件来完成收/发,那详细的单片机与电脑的通信协议就可以本人来定义啦,其中包括确定波特率,数据位数,即是8位,还是9位,9位的话,要加校验位,比较麻烦,8位比较便利,还有就是结束位是1位。这些是基本的参数,次要是定义通信代码啦,用什么代码表示什么功能,上位机与下位机如何联系,即怎样应答,一条报文有几个字节,用不用校验和,等等,这些事宜都是可以本人定义的。.二、怎样写串口通信协议串口按位(bit)发送和接收字节。《虽然比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。什么是串口串口是计算机上一种特别通用的设备通信协议(不要与通用串行总线UniversalSerialBus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信接口;许多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于猎取近程采集设备的数据。串口通信的概念特别简洁,串口按位(bit)发送和接收字节。虽然比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简洁并且能够实现远距离通信。比如IEEE488定义并行通行形态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必需的。串口通信最重要的参数是比特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必需婚配:a,比特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,就是指比特率,例如假如协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的比特率为14400,28800和36600。比特率可以远远大于这些值,但是波特率和距离成反比。高比特率经常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。假如数据使用简洁的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开头/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的状况。c,停止位:用于表示单个包的最终一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其本人的时钟,很可能在通信中两台设备间消失了小小的不同步。因而停止位不只仅是表示传输的结束,并且供应计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。d,奇偶校验位:在串口通信中一种简洁的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的状况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个规律高位。例如,假如数据是011,那么对于偶校验,校验位为0,保证规律高的位数是偶数个。假如是奇校验,校验位为1,这样就有3个规律高位。高位和低位不真正的检查数据,简洁置位规律高或者规律低校验。这样使得接收设备能够晓得一个位的形态,有机会推断能否有噪声干扰了通信或者能否传输和接收数据能否不同步。串口通讯协议是指通信双方的一种商定。商定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及掌握字符定义等问题做出统一规定,通信双方必需共同恪守。因而,也叫做通信掌握规程,或称传输掌握规程,它属于ISO'SOSI七层参考模型中的数据链路层。三、怎样写串口通信协议串口按位(bit)发送和接收字节。虽然比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。什么是串口串口是计算机上一种特别通用的设备通信协议(不要与通用串行总线UniversalSerialBus或者USB混淆)。大多数计算机包含两个基于区5232的串口。串口同时也是仪器仪表设备通用的通信接口;许多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于猎取近程采集设备的数据。串口通信的概念特别简洁,串口按位(bit)发送和接收字节。虽然比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简洁并且能够实现远距离通信。比如IEEE488定义并行通行形态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:⑴地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必需的。串口通信最重要的参数是比特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必需婚配:、a,比特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,就是指比特率,例如假如协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的比特率为14400,28800和36600。比特率可以远远大于这些值,但是波特率和距离成反比。高比特率经常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。假如数据使用简洁的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开头/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的状况。c,停止位:用于表示单个包的最终一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其本人的时钟,很可能在通信中两台设备间消失了小小的不同步。因而停止位不只仅是表示传输的结束,并且供应计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。d,奇偶校验位:在串口通信中一种简洁的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的状况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个规律高位。例如,假如数据是011,那么对于偶校验,校验位为0,保证规律高的位数是偶数个。假如是奇校验,校验位为1,这样就有3个规律高位。高位和低位不真正的检查数据,简洁置位规律高或者规律低校验。这样使得接收设备能够晓得一个位的形态,有机会推断能否有噪声干扰了通信或者能否传输和接收数据能否不同步。串口通讯协议是指通信双方的一种商定。商定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及掌握字符定义等问题做出统一规定,通信双方必需共同恪守。因而,也叫做通信掌握规程,或称传输掌握规程,它属于ISO'SOSI七层参考模型中的数据链路层。四、7232串口通信协议怎样写协议一般要包含:起始符、、数据、校验码、结束符,5个部分的定义。其中起始符、结束符,不能与其他数据重码。如只需传输字母与数字,可以看下ASCII码表,使用非数字和字母的符号做起始结束符即可,如{};数据长度码即表示此串数据包的数据长度,假如传输的数据串长度固定可省去;校验码相当于对此串数据正确性的校验,和奇偶校验效果类似,一般是和校验,即将数据全部累加得到一个和值当校验码,接收方收到数据也做一样的运算与收到的检验码比较,相等就说明正确接收。如要发{1234567890}换成16进制即:7B1031323334353637383930257D;31~30是数据,7B,7D分别为起始和结束符,10为数据长度的BCD码,25是校验码,是3广30的和模100后的BCD码,转成BCD码是为了避开与起始和结束符重码。五、求单片机串口通信协议,做设计要求:上位机通过串口实现点亮和灭#include#defineucharunsignedchar#defineuintunsignedidataintucharidatatrdata[]={'R','I','C','H','M','C','U','R','Z','-','5','1','V','2','.','0',0x0d,0x0a,0x00};sbitK1=P3、2;〃对应开发板K1 按 键/* ——*///串口初始化voidUART_Init(void){SCON=0x50;〃串口工作方式为1,串行允许接收//SM0=0;//SM1=1;//REN=1;TMOD=0x20;〃定时器1工作在方式2//PCON=0x80;//SMOD=1;波特率加倍TH1=0xfd;〃波特率9600bpsfosc="11".0592MHzTL1=0xfd;ES=1;〃开串口中缀TR1=1;〃允许定时器1工作EA=1; 〃开总中缀}voiddelay1ms(uinti){ucharj;while(i一){for(j=0;j诘问: 老师给提出的比较繁琐,例如协议是/ooo;表示3盏灯全点亮,/就表示单片机预备接收掌握LED的指令,然后婚配看是不是正确的指令,还有不测的状况就是要使接收的时候上位机操作者不发了怎样办,要求延时等几秒,还有就是;表示指令结束,再比如/xxx;就代表3盏灯全灭,同时还要求校验,比如几个符号的ASCII码等于多少来判定指令能否正确。。是不是有些简单追答: 的确比较繁琐。这个只是一个和简洁的协议这种在工业上用的许多,而且很简单。上面的程序是一个简化版的,不过你可以把他当作一个模型。下面,你可以在中缀里面把串口发送的数据接受存下来,然后在用推断,最终在执行相应的操作就OK。多试试就出来了,写协议还是很简洁的。不过,你假如把上面的程序发给老是,估量老师也算认可。但是肯定会有违老师额初衷,你这叫剑走偏锋。哈哈诘问:嗯,我再讨论下,次要是第一次写单片机的程序,以前也写过不少C,但都是基于操作系统的,在单片机上这种C,不太习惯,感觉有些别扭。请问能不能以刚才你发的模版,帮我修改一个最简洁的,能运转的,仅仅让计算机掌握单片机上一盏LED灯的亮灭,不需要再次回显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论