串口通信之数据发送时机

这里的“数据接收”特指下位机发送给上位机的数据。其“时机”有两种方式:1>上位机请求下位机数据时,下位机被动“数据发送”给上位机;2>下位机主动“数据发送”给上位机。

下面分析这两种方式应用场合。

方式1>的实现方式有两种,a>在上位机界面,用户主动触发发送请求命令,如点击按钮;b>上位机定时发送请求命令。有下列情形之一,使用方式1>:

a>     使用方式2>数据发送频率过快,导致串口缓冲器压力过大;或没必要使用2>方式过频繁更新上位机数据。

b>     一台上位机挂载多个下位机,而且是单工串口通信,导致下位机无法掌控发送时机,所以必须上位机控制发送进度,采用请求下位机A数据,阻塞等待下位机A返回数据,然后请求下位机B数据······

方式2>实现方式有a>下位机数据改变时,主动发送数据给上位机;b>如果下位机是由控制板和采集器组成,而控制板可以控制定时,可以由下位机定时给上位机发送数据。有下列情形之一,使用方式2>:

a>     下位机数据更改频率较慢,而采用上位机定时请求定时过快数据浪费,定时过慢数据更新很不及时,所有采用下位机数据变化时主动上传数据。

情形一:

       下位机数据有时1秒钟变化2-5次,有时5分钟变化一次。使用下位机数据改变时发送。

情形二:

       下位机数据有时1秒钟变化20次。如果a>过快更新导致串口和上位机UI刷新压力;b>数据发送不是变化累计而是完整数据,使用上位机定时请求。

情形三:

       上位机无法控制进度,容易导致串口压力过大等问题,请使用上位机定时请求或者用户触发时再请求。

原文地址:https://www.cnblogs.com/fyhui/p/2478537.html