串口通信协议有哪些?
1个回答
展开全部
问题一:串口通信协议有哪些 I2C总线是内部总线,用来连接内部系统内的芯片。比如mcu和存储器、键盘现实芯片、ad转换等等。 串口通信是用来和系统外部的设别通信的。比如设备和设备之间通信。 I2C和串口在通信协议上可以做到一样,也可做到不一样,这取决与具体的情况。 mcu和2402通信,mcu和电脑通信它们之间的协议软件可以做到完全一样 比如mcu发送1 2402和电脑发送2。
问题二:串口通讯协议是什么 串口通讯协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。
问题三:怎么写串口通信协议 通信协议是可以自己定义的,只不过要求不一样,可以自己随意定义,也可以根据客户要求定义,或根据相关设备定义(如你所述你的主机通过扫描枪扫描二维码,那主机内部就应该有相关编码协议),看相关说明书能查到。同时自己也可以在里面加上校验码等等
问题四:plc串口通信协议有哪些 232或者485
问题五:串口通信协议是硬件还是软件 应该是硬件的,,串口数据流鼎原生,没有编译的数据
通过软件,识别成信号,完成执行所要的功能
问题六:R232串口通讯协议是指什么?内容是?它与R485的区别在哪? 区别是232是全双工
485一个是半双工
问题七:串行通信的异步通信协议 1、串行异步通信时的数据格式异步方式通信ASYNC(Asynchronous Data munication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。串行异步传输时的数据格式:⑴ 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。⑵ 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。⑶ 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。⑷ 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。⑸ 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。2、串行异步通信时的数据接收串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之后,又进行下一个字符的传送过程。 通常接收端的采样时钟周期要比传输字符的位周期短,常用的采样时钟频率为位频率的16倍,采取这种措施是为了提高抗干扰能力,参看图8.19所示。从图中可知,传输字符的位周期Td等于采样时钟周期Tc的16倍。接收器的采样时钟的每个上升沿对输入信号进行采样,检验接收数据线上的低电平是否保持8或9个连续的时钟周期,以确定传输线上的低电平是否是真的起始位。这样就可以避免噪声干扰引起的误操作,从而删除假的起始位。相当精确地确定起始位的中间点,从而提供一个时间基准,从这个基准开始,每隔16个Tc对其余数据位采样,以确保传输数据的正确性。接收端为实现采样数据的基准,可以执行以下步骤:⑴ 在接收端设置一采样时钟频率计数器,当检测到起始位下降沿时,将其清零,并开始对采样时钟计数,即每来一个时钟,计数器加1。⑵ 当计数器计到8时,表示已到达起始位的中间位置,此时采样值为0,说明是真正的起始位,同时将计数器清零;若采样值不为0,则说明一开始检测到的下降沿不是真正的起始位前沿,而是一次干扰,此次检测应作废,计数器清零,并重新开始检测起始位。⑶ 检测到真正的起始位后,计数器清零,以后每次计到16时,便采样收到的信号波形(即每一位的中间),将采到的数值暂存起来,同时将计数器清零,重新计数,直至最后的停止位被采样。⑷ 如果停止位采样正确(为1),则字符被接收,并由暂存器装入寄存器。若停止位采样值为0,说明同步或传输有问题,此次采样所得字符作废,不被接收。异步通信的特点⑴ 起止式异步通信协议传输数据对收发双方的时钟同步要求不高,即使收、发双方的时钟频率存在一定偏差,只要不使接收器在一个字符的起始位之后的采样出现错位现象,则数据传输仍可正常进行。因此,异步通信的发送器和接收器可以不用共同的时钟,通信的双方可以各自使用自己的本地时钟。⑵ 实际应用中,串行异步通信的数据格式,包括数据位的位数、校验位的设置以及停止位的位数都可以根据实际需要,通过可编程串行接口电路,用软件命令的方式进行设置。在不同传输系统中,这些通......>>
问题八:串口通信协议的握手 RS-232通信方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使用或者禁止用户使用两个控制字符XON和XOFF。这些字符在通信中由接收方发送,使发送方暂停。例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。输入buffer半满时,LabWindows发送XOFF。此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。显然,发送方必须遵循此守则以保证传输继续。b,硬件握手:第二种是使用硬件线握手。和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。第一组线是RTS(Request to Send)和CTS(Clear toSend)。当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。另一组线是DTR(DataTerminal Ready)和DSR(Data SetReady)。这些线主要用于Modem通信。使得串口和Modem通信他们的状态。例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。读取DSR线置高,PC机开始发送数据。一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。如果端口队列近乎空了,库函数置高RTS,但使DTR维持高电平。如果端口关闭,库函数置低RTS和DTR。c,XModem握手:最后讨论的握手叫做XModem文件传输协议。这个协议在Modem通信中非常通用。尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。在LabWindows中,实际的XModem应用对用户隐藏了。只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。函数是XModemConfig,XModemSend和XModemReceive。XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。这些参数需要通信双方认定,标准的XModem有一个标准的定义......>>
问题九:如何设计一种串行通信协议 简单的说要做一个协议,首先要考虑你的总线拓扑形式。是点对点的方式传输(是一主一从,还是两个为对等的节点),还是一个主机下挂了多个从节点(节点和主机如何链接,是星形链接、树形链接,还是总线型连接)。
如果是一主一从的点对点那是最简单的。如果是两个对等的节点或者一对多总线节点,那就需要考虑总线竞争、冲突、地址设计、超时处理等问题。
那最简单的主从点对点来说(封闭式网络,即设备节点数确定,且非相设备协议不相同无法接入该网络)。
首先你的波特率设置,最好是所有节点都定一个波特率,有人做过不同波特率通信的,反正我没玩过。而且波特率的大小要从你总线的数据量开销、处理器/控制器的速度、应用的环境中电磁复杂程度、硬件设备的带宽(频率高了会不会受影响,导致丢包率增大,或影响其他设备)
然后一个帧开头应该带有帧标识,让对方判断收到的是数据帧还是应答帧。点对点通信,最少应该具备一个数据命令帧和应答帧。数据命令帧是包含主要设信息的,应答帧是告诉对方是正确否收到数据,如没有,请重发。另外如果收的帧标识都不是这两种的,就说明可能总线出现问题/受干扰/接入其他未知设备。
其次考虑你传输的数据量有多大,是否需要数据包定长。如果传输的数据时而多(十几/几十个个字节),时而少(不到一个字节),那就不能定长。这样的话就需要在第二第三个字节(放帧标识的字节前后)加上包/帧的长度信息。
然后是地址,虽然只有两个点在面对面对话通信,但建议加上源地址和目标地址。这个只是建议,在点对点通信中可选。
之后应该加上一个序列号,用以表示为第几次发送。比如说,我发了一次Hello给你,下一次应该发一个World给你,但你反馈应答帧说没收到或者收到错误,然后我再发一次Hello给你,这时的Hello这帧中的序列号应为2了。
接下来是数据内容……
最后是校验,CRC ……异或……什么的,对前面所有的数据从帧头到帧尾的位做数据校验。防止传输过程中,任何一个bit出错。
现在想到的就是这么点。吐个槽,记得当年我们一组人做铁路信号设备的协议,研究院的人看了我们两周想出来的协议后(基于RS584),说:协议是这么简单就搞出来的么!没试验个一年的工夫都不敢说整出一个安全的强壮的协议来。
问题十:串口通讯时的数据帧格式和通讯协议有什么区别 串口参数指的是串口通信所需要设置的相应参数,就像手机入网,你用的是电信的号码还是移动的号码,用的是3G网络还是2G网络,虽然是手机自动设置的,但是还是要设置滴
通信协议就是你说的什么语言,你和别人沟通,大家都说普通话,一个说英文,一个说法语肯定不行啦。
485-can-tcp/...nt
问题二:串口通讯协议是什么 串口通讯协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。
问题三:怎么写串口通信协议 通信协议是可以自己定义的,只不过要求不一样,可以自己随意定义,也可以根据客户要求定义,或根据相关设备定义(如你所述你的主机通过扫描枪扫描二维码,那主机内部就应该有相关编码协议),看相关说明书能查到。同时自己也可以在里面加上校验码等等
问题四:plc串口通信协议有哪些 232或者485
问题五:串口通信协议是硬件还是软件 应该是硬件的,,串口数据流鼎原生,没有编译的数据
通过软件,识别成信号,完成执行所要的功能
问题六:R232串口通讯协议是指什么?内容是?它与R485的区别在哪? 区别是232是全双工
485一个是半双工
问题七:串行通信的异步通信协议 1、串行异步通信时的数据格式异步方式通信ASYNC(Asynchronous Data munication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。串行异步传输时的数据格式:⑴ 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。⑵ 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。⑶ 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。⑷ 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。⑸ 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。2、串行异步通信时的数据接收串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之后,又进行下一个字符的传送过程。 通常接收端的采样时钟周期要比传输字符的位周期短,常用的采样时钟频率为位频率的16倍,采取这种措施是为了提高抗干扰能力,参看图8.19所示。从图中可知,传输字符的位周期Td等于采样时钟周期Tc的16倍。接收器的采样时钟的每个上升沿对输入信号进行采样,检验接收数据线上的低电平是否保持8或9个连续的时钟周期,以确定传输线上的低电平是否是真的起始位。这样就可以避免噪声干扰引起的误操作,从而删除假的起始位。相当精确地确定起始位的中间点,从而提供一个时间基准,从这个基准开始,每隔16个Tc对其余数据位采样,以确保传输数据的正确性。接收端为实现采样数据的基准,可以执行以下步骤:⑴ 在接收端设置一采样时钟频率计数器,当检测到起始位下降沿时,将其清零,并开始对采样时钟计数,即每来一个时钟,计数器加1。⑵ 当计数器计到8时,表示已到达起始位的中间位置,此时采样值为0,说明是真正的起始位,同时将计数器清零;若采样值不为0,则说明一开始检测到的下降沿不是真正的起始位前沿,而是一次干扰,此次检测应作废,计数器清零,并重新开始检测起始位。⑶ 检测到真正的起始位后,计数器清零,以后每次计到16时,便采样收到的信号波形(即每一位的中间),将采到的数值暂存起来,同时将计数器清零,重新计数,直至最后的停止位被采样。⑷ 如果停止位采样正确(为1),则字符被接收,并由暂存器装入寄存器。若停止位采样值为0,说明同步或传输有问题,此次采样所得字符作废,不被接收。异步通信的特点⑴ 起止式异步通信协议传输数据对收发双方的时钟同步要求不高,即使收、发双方的时钟频率存在一定偏差,只要不使接收器在一个字符的起始位之后的采样出现错位现象,则数据传输仍可正常进行。因此,异步通信的发送器和接收器可以不用共同的时钟,通信的双方可以各自使用自己的本地时钟。⑵ 实际应用中,串行异步通信的数据格式,包括数据位的位数、校验位的设置以及停止位的位数都可以根据实际需要,通过可编程串行接口电路,用软件命令的方式进行设置。在不同传输系统中,这些通......>>
问题八:串口通信协议的握手 RS-232通信方式允许简单连接三线:Tx、Rx和地线。但是对于数据传输,双方必须对数据定时采用使用相同的波特率。尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。这时需要串口的握手功能。在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。a,软件握手:我们讨论的第一种握手是软件握手。通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem允许用户使用或者禁止用户使用两个控制字符XON和XOFF。这些字符在通信中由接收方发送,使发送方暂停。例如:假设发送方以高波特率发送数据。在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。输入buffer半满时,LabWindows发送XOFF。此外,如果XOFF传输被打断,LabWindows会在buffer达到75%和90%时发送XOFF。显然,发送方必须遵循此守则以保证传输继续。b,硬件握手:第二种是使用硬件线握手。和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。第一组线是RTS(Request to Send)和CTS(Clear toSend)。当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。另一组线是DTR(DataTerminal Ready)和DSR(Data SetReady)。这些线主要用于Modem通信。使得串口和Modem通信他们的状态。例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。读取DSR线置高,PC机开始发送数据。一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。如果端口队列近乎空了,库函数置高RTS,但使DTR维持高电平。如果端口关闭,库函数置低RTS和DTR。c,XModem握手:最后讨论的握手叫做XModem文件传输协议。这个协议在Modem通信中非常通用。尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。在LabWindows中,实际的XModem应用对用户隐藏了。只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。函数是XModemConfig,XModemSend和XModemReceive。XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。这些参数需要通信双方认定,标准的XModem有一个标准的定义......>>
问题九:如何设计一种串行通信协议 简单的说要做一个协议,首先要考虑你的总线拓扑形式。是点对点的方式传输(是一主一从,还是两个为对等的节点),还是一个主机下挂了多个从节点(节点和主机如何链接,是星形链接、树形链接,还是总线型连接)。
如果是一主一从的点对点那是最简单的。如果是两个对等的节点或者一对多总线节点,那就需要考虑总线竞争、冲突、地址设计、超时处理等问题。
那最简单的主从点对点来说(封闭式网络,即设备节点数确定,且非相设备协议不相同无法接入该网络)。
首先你的波特率设置,最好是所有节点都定一个波特率,有人做过不同波特率通信的,反正我没玩过。而且波特率的大小要从你总线的数据量开销、处理器/控制器的速度、应用的环境中电磁复杂程度、硬件设备的带宽(频率高了会不会受影响,导致丢包率增大,或影响其他设备)
然后一个帧开头应该带有帧标识,让对方判断收到的是数据帧还是应答帧。点对点通信,最少应该具备一个数据命令帧和应答帧。数据命令帧是包含主要设信息的,应答帧是告诉对方是正确否收到数据,如没有,请重发。另外如果收的帧标识都不是这两种的,就说明可能总线出现问题/受干扰/接入其他未知设备。
其次考虑你传输的数据量有多大,是否需要数据包定长。如果传输的数据时而多(十几/几十个个字节),时而少(不到一个字节),那就不能定长。这样的话就需要在第二第三个字节(放帧标识的字节前后)加上包/帧的长度信息。
然后是地址,虽然只有两个点在面对面对话通信,但建议加上源地址和目标地址。这个只是建议,在点对点通信中可选。
之后应该加上一个序列号,用以表示为第几次发送。比如说,我发了一次Hello给你,下一次应该发一个World给你,但你反馈应答帧说没收到或者收到错误,然后我再发一次Hello给你,这时的Hello这帧中的序列号应为2了。
接下来是数据内容……
最后是校验,CRC ……异或……什么的,对前面所有的数据从帧头到帧尾的位做数据校验。防止传输过程中,任何一个bit出错。
现在想到的就是这么点。吐个槽,记得当年我们一组人做铁路信号设备的协议,研究院的人看了我们两周想出来的协议后(基于RS584),说:协议是这么简单就搞出来的么!没试验个一年的工夫都不敢说整出一个安全的强壮的协议来。
问题十:串口通讯时的数据帧格式和通讯协议有什么区别 串口参数指的是串口通信所需要设置的相应参数,就像手机入网,你用的是电信的号码还是移动的号码,用的是3G网络还是2G网络,虽然是手机自动设置的,但是还是要设置滴
通信协议就是你说的什么语言,你和别人沟通,大家都说普通话,一个说英文,一个说法语肯定不行啦。
485-can-tcp/...nt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询