什么是串口通信协议
串口通信指l两个或两个以上的设备使用串口按位(bit)发送和接收字节。可以在使用一根线发送数据的同时用另一根线接收数据。 串口通信协议就是串口通讯时共同遵循的协议。 协议的内容是每一个bit 所代表的意义。 常用的串口通信协议 有以下几种 1 RS-232(ANSI/EIA-232标准)只支持 点对点, 最大距离 50英尺。最大速度为128000bit/s, 距离越远 速度越慢。 支持全双工(发送同时也可接收)。2 RS-422(EIA RS-422-AStandard),支持点对多一条平衡总线上连接最多10个接收器将传输速率提高到10Mbps,传输距离延长到4000英尺(约1219米),所以在100kbps速率以内,传输距离最大。支持全双工(发送同时也可接收)。RS-485(EIA-485标准)是RS-422的改进,支持多对多(2线连接),从10个增加到32个,可以用超过4000英尺的线进行串行通行。速率最大10Mbps。支持全双工(发送同时也可接收)。2线连接时 是半双工状态。 广义上来说USB 协议 sata 硬盘PCI_E 也是串行通信的范畴. 更为复杂

怎么写串口通信协议
串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。 什么是串口串口是计算机上一种非常通用的设备通信协议(不要与通用串行总线Universal SerialBus或者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'S OSI七层参考模型中的数据链路层。
通信协议是可以自己定义的,只不过要求不一样,可以自己随意定义,也可以根据客户要求定义,或根据相关设备定义(如你所述你的主机通过扫描枪扫描二维码,那主机内部就应该有相关编码协议),看相关说明书能查到。同时自己也可以在里面加上校验码等等

串口通信中的数据包是什么意思,怎么解析(最好来点c代码举例下)
通俗的说就是符合某通讯协议的一组二进制串或字符串。 有些有包头及包尾,如modbus ascii,冒号表示包头,回车(0xd)表示包尾,某些没有包头及包尾,如modbus rtu,如果时间超过3.5个字符,表示新的一桢数据包。数据包还真不好用c语言举例。这样说吧,比如一桢数据包可以这样定义:第一字节:从站地址+第二字节:指令类型(读还是写,bool,short还是float)+第三第四字节:地址+第五第六字节:crc校验。可以有一个结构体与之对应:typedef struct _protocol{char cStationAddr;char cInst;short sAddr;short sCRC;}PRO;发送协议需要将结构体打包成串,接受到串后需要解包。就这个例子而言,解包就比较容易了,如接收缓冲区为char cBuff[MAX_BUF_LEN];PRO thePro;那么,thePro.cStationAddr=cBuff[0];同理,thePro.sAddr=(cBuff[2]<<8)|cBuff[3];//这句就不解释了哈,相信你能看懂。当然,通讯协议可以自己定义,符合某通讯协议(如tcp/ip)可以直接跟其他机器通讯。打个比方,通讯协议就是中文,英文,德文。。。,数据包就是某种语言的一句话,语种相同的人,互相说话,就是在传递数据包,你可以传“你好”或“hello”数据包。所以建议楼主学习一下通讯协议,如modbus,你就明白了,但你要做好克服困难的心理准备先。 全手工录入,满意请采纳。谢谢。
串口通信,每次只有一个字节。 如果数据量大,就要进行多字节的传送。这一批数据,应该有一个《头》标记、目标机地址、数据长度、数据、校验码、尾标记等等。简单的情况下,只有《头》标记、数据,也可。完整的 C 代码可见:http://hi.baidu.com/do_sermon/item/c2db620200031af4a110340b

[串口通讯]关于发送指令时的 CHECKSUM,帮忙解析下通讯协议。
我的最初理解: 双字节求和就是把49 48看成一个双字,49是高8位,48是低8位。值应该是49*256 + 48 = 12592.这样的和是144402。但是最后取摸再取反的结果还是对不上。但是我仔细看了一下你的计算结果。每个字节直接相加,和是1092,取摸后1092,取反按位取反,或者这么算也可以:65536-1092=64444. 即FB BC.你已经对了。呵呵===============================================================几个容易混淆的运算:取反:所有位按位取反。比如:0000 0101 取反变成 1111 1010。取补码:符号位不变,其余位取反加一。比如-5的原码1000 0101 取补码变成 1111 1011。取补(有的书上叫“取相反数”):连同符号位在内,取反加一。比如-5的补码1111 1011取相反数,得到0000 0101,即5。“取补码”和“取补”一定是针对带符号数的。“取补码”是不改变数值,用补码形式表示这个数;而“取补”是数值改变了,就是取原数相反数的补码。 其实,“取补”就相当于“取反”后加1。
![[串口通讯]关于发送指令时的 CHECKSUM,帮忙解析下通讯协议。](https://static.wangsu123.cn/pich-W+S4suWPo+mAmuiur13lhbPkuo7lj5HpgIHmjIfku6Tml7bnmoQgQ0hFQ0tTVU3vvIzluK7lv5nop6PmnpDkuIvpgJrorq/ljY/orq7jgII=g.png)
rs232串口通信协议怎么写
协议一般要包含:起始符、、数据、校验码、结束符,5个部分的定义。 其中 起始符、结束符,不能与其他数据重码。如只要传输字母与数字,可以看下ASCII码表,使用非数字和字母的符号做起始结束符即可,如{};数据长度码即表示此串数据包的数据长度,如果传输的数据串长度固定可省去;校验码相当于对此串数据正确性的校验,和奇偶校验效果类似,一般是和校验,即将数据全部累加得到一个和值当校验码,接收方收到数据也做一样的运算与收到的检验码比较,相等就说明正确接收。如要发{1234567890 }换成16进制即:7B10 31 32 33 34 35 36 37 38 39 30 25 7D;31~30是数据, 7B,7D分别为起始和结束符,10为数据长度的BCD码,25是校验码,是31~30的和模100后的BCD码,转成BCD码是为了避免与 起始和结束符重码。
楼主 可以去 百度文库 里搜搜! 一般是根据自己的应用需要!

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/69191.html。