mysql与串口通信_串口通信 - ShawnXie - 博客园

1、并行通信

2、串口通信

(1)同步通信(synchronous data communication,SYNC)

指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),保证了通信双方在发送和接收数据时具有完全一致的定时关系。

信息帧,每帧的开始用同步字符来指示。

一次通信只能连续传送一帧信息。

同步字符+数据字符+CRC校验码

传输线路始终保持连续的字符位流,如果没有数据传输,要用专用的“空闲”字符或同步字符填充。

举例:欧姆龙PLC-HostLink协议。

(2)异步通信(asynchronous data communication,ASYNC)

字符之间没有固定的时间要求,而每个字符中的各位以固定的时间传送。

收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。

停止位和空闲位都是高电平(逻辑值为1)。

异步通信一个信息帧只包含一个字符,但是包括了起始位、数据位、奇偶校验位和停止位。

举例:modbus协议常见,HPZ80三项电力仪表的Modbus-RTU通信。

每一次完整接收数据,最后是包含有OK字符的,接收数据的开头是发送指令的字符,例如发送“AT+CREC=1,1,0”指令,返回的数据中是包含“AT+CREC=1,1,0”这个字符的,然后数据尾部返回OK表示是成功的

**************************c#是使用流来处理串口的,所以不是存在准确的间隔时间的。串口驱动并不一定能及时引发DataReceived事件。而且串口的不确定性也不能用时间间隔作为数据的分隔。下位机应使用特定的通信协议来传送数据。电脑则使用默认的每来一个字节触发一次DataReceived,但这个触发时机也是不准的,不可能真的每来一个字节就会触发一次DataReceived。当收来下位机发来的起始字符就说明收数开始,可一直收到结束字符。使用串口一定要对数据进行CRC校验。通常来这样设计通信协议:起始字符 数据 结束字符 CRC校验码。校验正确后就可对数据进行处理。

--------******Modbus-RTU通信时,以二进制发送和接收数据,而HostLink通信时候,以字符的ascii形式发送数据,取回时以文本方式取回。Modbus也有ascii形式。

3、调制和编码

数字信号或模拟信号调制成模拟信号,最后经过解调还原成数字或模拟信号。

数字信号或模拟信号编码后变成数字信号,然后经过解码变成数字信号或者模拟信号。

4、编码形式

不归零编码(non-return-to-zero,NRZ)

曼切斯特编码(Manchester):自同步编码,因为在每一位中间会有电压跳变。

差分曼切斯特编码(differential Manchester encoding):自同步编码,每一位之间有跳变则是“0”,否则就是“1”。

5、数据缓冲区、移位寄存器

由于数据串行传送时,时间精度非常高,软件达不到这个要求,因此,要先将数据放入缓冲区,也就是硬件层的移位寄存器中,然后硬件发现寄存器中有数据,则进行发送。接收数据也是一样,先收入缓冲区,然后从缓冲区取出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值