工业上我们最常见的MODBUS RTU/ASCII通信协议是一种典型的起止型异步协议。之前在 《串口通信协议》 中已经解释过,起止型异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。
这里需要强调的就是对于起止型通信协议,每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或一位半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。
这段话可能讲的有点理论了,对于我们工作中所常见的一个情况就是选择一个串口的校验位、数据位与停止位(这里没有起始位,因为起始位一般是默认的)。
对应到一个如上图的具体通信格式上,就是8个数据位,无校验位➕一位停止位。也就是我们说的8N1通信格式。当然,这里也会用到奇偶校验的变化,如西门子V90在使用串口通信控制时便要求为8O1(8位数据,偶校验,1位停止)。
不考虑串口的传输线数量,单以一根线来理解,即每传输(扫描)一个位,信号线上便给出一个(高或低)电平,即0或1。对于一个8N1格式的传输,每一次传输周期电平将扫描 1起始位+8数据位+1停止位 共10次电平变化,而扫描的频率就是串口的波特率。因此,虽然理论上说起止型协议依托于起止信号来判断数据的开始和结束,数据间没有固定的时间间隔要求,但在实际应用的过程中,对于一个既定的串口协议,通信站之间还是要保持相同的收发波特率的,否则扫描口将会对同样的电平变化做出可能完全不同的解读而导致通信失败。
综上,串口数据格式存在的意义是限定了串口传输数据的时间间隔、每次传输的数据量以及传输的起始和结束。它解决了“怎么传”的问题。
而串口通信报文,则是定义“传什么”的问题。
一个典型的modbus报文格式如下:
设备地址(8位)➕功能码(8位)➕起始 *** 作地址(16位)➕ *** 作数量(16位)➕CRC(16位)
我在工作中遇到一个比较多的就是关于数据格式与报文的概念混淆。如上述的一串格式报文,曾经被误解为与8N1的数据格式相矛盾,因为很明显,它完全就超出了我们所说的8位数据或10位数据的格式,那么怎么来解释这个问题呢?
澄清一个概念,数据格式中的8位,指的是8bit而不是8byte,对于上述modbus,当采取8N1格式通信时,串口将会以1byte(8位)为单位对报文进行包装并传输。比如最开始,串口芯片或发射端会将8位设备地址提出,然后对这个字节进行包装(加1位起始码,加1位停止码),形成一个10位的数据包,并将数据发送出去,然后继续提取功能码,进行同样的包装发送,以此类推,直至所有数据发送完毕。
因此,报文指的是数据字符,而数据格式,只是表明如何来包装这个数据字符。而我们通过各种软件所看到的,是经过计算机串口处理的数据,因而无法看到起始码停止码一类的信号,而仅有我们所需要的数据。
由此还可以推导出串口通信的效率。依旧以8N1格式来说,每个数据包的长度为10位,若选择波特率为9600,即每秒传输9600个位信号,那么8N1数据格式每传输1个数据包所需要的时间10/9600约为1ms,对于一串MODBUS典型报文,需要8个字节(根据指令决定),故信号发出时间为8ms。modbus规定从站必须在指定时间内反馈相应的数据方可认为通信成功,因而需要再加回报时间,如只 *** 作一个字节,那么往返数据时间应该在20ms左右,根据 *** 作的数据量通信时间会相应的加长。
因此,还可以了解到的是在多站轮询时需要根据数据量进行一次核算,若对实时性要求较高,则要考虑进行主站的独立处理。
经验之谈,欢迎指正。串口服务器 在工业领域应用越来越广泛,在某些应用环境中需要对其参数进行设置,下面介绍串口服务器参数设置的几种方法。
一般串口服务的参数设置有网页和AT指令两种方法。
第一,网页设置方法。 通过网页来设置的方法是最常用的一种方法,在家庭路由器设置上也是用的网页,所以大多数人都不会陌生。
打开电脑浏览器,在地址栏中输入串口服务器的ip地址,其ip地址一般在服务器机身上带有。打开登陆界面后,输入登陆账号和密码进入界面后,即可修改参数。
网页设置的优点是使用 *** 作简单,利用电脑浏览器 *** 作即可完成,无须其它配套设备。但须要值得注意的是,串口服务器的IP地址必须和本机处在同一个网段上。
第二,AT指令设置方法。 AT 指令是指,在命令模式下用户通过 UART与模块进行命令传递的指令集,上电启动成功后,可以通过 UART对模块进行设置。
以有人的单串口服务器 USR-N510 为例,其模块的UART口参数为:波特率 115200、无校验、8 位数据位、1 位停止位。不同的模块去对应相应的参数即可。最后用户MCU可以随时发送串口命令来配置参数。
不同厂家的串口服务器不同,但其原理大同小异,以上就是两种设置串口服务器参数的方法。
以上讲述了串口服务器参数设置的方法,那么串口服务器参数设置的步骤是什么呢?
在购买 串口服务器 以后,想要实现联网需求,首先要对串口服务器进行设置。对于经验尚浅的从业者来说,真的是很丈二和尚摸不着头脑。等着技术支持远程一步步 *** 作是最容易的,缺点是下一次自己依然不会 *** 作。与其直接要果实,不如要耕种的方法,这样也可以迅速提高自己的专业水平,早日成为行业大牛。
以有人串口服务器USR-TCP232-304为例,讲述串口服务器的设置流程。
首先将串口服务器的网口连接到电脑,用485转USB转接线连接串口服务器和电脑,并接通电源。
按照串口服务器的电子说明书中的默认参数设置本地电脑的IP,如图所示
再登陆串口服务器背面的设置页面地址19216807进行设置。
打开串口服务器的设置软件,搜索设备,搜索设备成功后,设置该串口服务器的静态IP地址、波特率,本地端口以及工作方式。如果将串口服务器进行一对一传输,需要将这款串口服务器设置为TCP Serever的工作模式,点击“保存参数”(很多人忘了最简单也是最重要的这步)。
将第二款串口服务器换上,如上述方法设置第二款串口服务器的参数。目标IP地址为需要连接的串口服务器静态IP,即作为Server的串口服务器静态IP地址。本地端口和串口波特率与Server串口服务器保持一致。静态IP地址为同IP端的不同IP地址,,点击“保存参数”。
打开测试软件,将两个串口服务器链接的COM端口对应起来(“我的电脑——属性——设备管理器——端口”)。进行互发信息。
人类生存于世,少不了沟通。沟通使人类互相认知,传递信息,提升生活品质。但然单片机也需要,不然单单一个机器,无法构成一个系统,发挥更大的力量。只有单片机与外围设备传递信息,互相反馈才会有一个完美的系统。串行口通信就被发明出来,下面来了解串行口通信(uart)。
为了能更好理解串行口通信,在介绍它之前,先来看看几个概念,补充知识,方便深入明白uart工作原理。
串行通信有两种,一位异步串行通信,二为同步串行通信。
异步串行通信 :异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。
同步串行通信 :所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。
两种串行通信不同就只有时间,在发送字符时,异步可以是不同时间间隔发送,但同步只能以固定的时间间隔发送。
波特率 :波特率表示每秒钟传送的二进制位数,是衡量数据传送速率的指标,它用单位时间内载波调制状态改变的次数来表示。
相互通信的甲乙双方必须具有相同的波特率,不然无法成功完成串行通信。
52单片机具有一个全双工串行通信口。一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。管脚RXD( P30),TXD(P31)与串口通信有关。波特率可以设置。
串行口通信与三个寄存器有关,分别是:
这个寄存器只有SMOD位与串行口通信有关。系统复位默认为SMOD=0。当为用52单片机的定时器2产生波特率时,波特率不受SMOD影响。用定时器1产生波特率时,不去设置,就默认为0,波特率正常,设置为1时,波特率加倍。
串行口为10位通用异步接口。发送或接收一帧数据信息为10位,包括1位起始位“0”、8位数据位、1位停止位“1”。发送数据:数据从TXD端口输出,当数据写入发送缓冲器SBUF时,就启动发送器发送。发送完一帧数据后,置中断标志TI=1,申请中断,通知CPU可以发送下一个数据了。接收数据:首先使REN=1(允许接收数据),串行口从RXD接收数据,当采样到1至0跳变时,确认是起始位“0”,就开始接收一帧数据,当接收完一帧数据时,置中断标志RI=1,申请中断,通知CPU从SBUF取走接收到的数据 。
溢出速率即溢出频率,只要算出定时器每溢出一次所需要的时间T,那溢出率就是1/T。计算在没有波特率加倍(SMOD=0)的情况下,波特率为9600bps时怎样赋值计数器。这里说明一下,由于波特率是需要很精确的,不然通信会出错。如果采用定时器工作模式1,采用人工重载,会有较大误差,因为进入中断函数也需要时间,累积时间就会出错。所以这里运用工作模式2,8位自动重装。计数器自动重装不需人工干预,减少误差。
对照上面公式,波特率不加倍,SMOD=0,工作模式2,那n=8,波特率=9600,就可以算出x=253,十六进制为fd。
范例1是将接受的数据原封不动发送出去。采用查询法,故不需要打开串口中断,不用中断函数。只需不断查询TI,RI的值,就知道数据接收发送情况。
与范例1如出一撤,就不详细注释。
在串口通信中,方式1是最常用的,要认真理解方式1。串行数据一位一位的已经不用处理了,52单片机已经有一个模块处理完了。只要知道接收一个数据,产生一次接收中断,要软件置0,发送一个数据会产生一次发送中断,也要软件置0。自行置0,处理好数据就OK。下一篇将介绍其他三种方式,欢迎关注。
1.RS232接口RS232-C接口连接器一般使用型号为DB-9的9芯插头座,只需3条接口线,即"发送数据"、"接收数据"和"信号地"即可传输数据,其9个引脚的定义如图11-3所示。
图11-3 RS232-C接口连接器定义
在RS232的规范中,电压值在+3V~+15V(一般使用+6V)称为"0"或"ON"。电压在-3V~-15V(一般使用-6V)称为"1"或"OFF";计算机上的RS232"高电位"约为9V,而"低电位"则约为-9V。
RS232为全双工工作模式,其信号的电压是参考地线而得到的,可以同时进行数据的传送和接收。在实际应用中采用RS232接口,信号的传输距离可以达到15m。不过RS232只具有单站功能,即一对一通信。
2.RS485接口
RS485采用正负两根信号线作为传输线路。两线间的电压差为+2V~6V表示逻辑"1":两线间的电压差为-2V~6V表示逻辑"0"。
RS485为半双工工作模式,其信号由正负两条线路信号准位相减而得,是差分输入方式,抗共模干扰能力强,即抗噪声干扰性好;实际应用中其传输距离可达1200米。RS485具有多站能力,即一对多的主从通信。
在串行通信中,数据通常是在两个站之间传送,按照数据在通信线路上的传送方向可分为3种基本的传送方式:单工、半双工和全双工,如图11-4所示。
(大图)图11-4 单工、半双工和全双工通信
单工通信使用一根导线,信号的传送方和接收方有明确的方向性。也就是说,通信只在一个方向上进行。
若使用同一根传输线既作为接收线路又作为发送线路,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。
当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收 *** 作,这样的传送方式就是全双工。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。全双工方式无须进行方向的切换。
串行通信可分为两种类型,一种是同步通信,另一种是异步通信。采用同步通信时,将所有字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,填上空字符,因为同步传输不允许有空隙。采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数据位来作为分隔位。比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式高,因为同步方式的非数据信息比例比较小。但是,从另一方面看,同步方式要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每一个信息位的位置。这样一来,如果采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。在数据传输中,较为广泛采用的是异步通信,异步通信的标准数据格式如图11-5所示。
(大图)图11-5 异步通信数据格式
从图11-5所列格式可以看出,异步通信的特点是一个字符一个字符地传输,并且每个字符的传送总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一次有一个起始位,紧接着是5~8个的数据位,再后为校验位,可以是奇检验,也可以是偶校验,也可不设置,最后是1比特,或1比特半,或2比特的停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿,以此标识开始传送数据。伦通态触摸屏,两路串口的会钱要设置数据间隔的时间,大约35分钟时间,因为那如果要设置过低过低和,我扫的这种情况之下,对他们的机器的本身都是有害煮的,所以那想把他设置很好的情况之下,只能是这样的设计问题一:串口通信协议有哪些 I2C总线是内部总线,用来连接内部系统内的芯片。比如mcu和存储器、键盘现实芯片、ad转换等等。 串口通信是用来和系统外部的设别通信的。比如设备和设备之间通信。 I2C和串口在通信协议上可以做到一样,也可做到不一样,这取决与具体的情况。 mcu和2402通信,mcu和电脑通信它们之间的协议软件可以做到完全一样 比如mcu发送1 2402和电脑发送2。
问题二:串口通讯协议是什么 串口通讯协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。
问题三:怎么写串口通信协议 通信协议是可以自己定义的,只不过要求不一样,可以自己随意定义,也可以根据客户要求定义,或根据相关设备定义(如你所述你的主机通过扫描q扫描二维码,那主机内部就应该有相关编码协议),看相关说明书能查到。同时自己也可以在里面加上校验码等等
问题四:plc串口通信协议有哪些 232或者485
问题五:串口通信协议是硬件还是软件 应该是硬件的,,串口数据流鼎原生,没有编译的数据
通过软件,识别成信号,完成执行所要的功能
问题六:R232串口通讯协议是指什么?内容是?它与R485的区别在哪? 区别是232是全双工
485一个是半双工
问题七:串行通信的异步通信协议 1、串行异步通信时的数据格式异步方式通信ASYNC(Asynchronous Data munication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。串行异步传输时的数据格式:⑴ 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。⑵ 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。⑶ 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。⑷ 停止位:停止位为1位、15位或2位,可有软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。⑸ 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。2、串行异步通信时的数据接收串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之后,又进行下一个字符的传送过程。 通常接收端的采样时钟周期要比传输字符的位周期短,常用的采样时钟频率为位频率的16倍,采取这种措施是为了提高抗干扰能力,参看图819所示。从图中可知,传输字符的位周期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/ntpcm基群没有听说过,不知道是什么DD?在这里我就把它想成透明的,就是导线咯。
其实就你的架构而言,串口服务器的设置应该取决于电脑上的通信软件。
1、如果软件是打开“com n”(n取整),那么均设置成real com mode就好,或者叫实串口模式
2、如果软件是连接IP地址的,那么分别设置对应的tcp server或者tcp client mode就好咯
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)