电子元器件论坛
直播中

李俊

8年用户 1399经验值
私信 关注

上位机串口的接收原理

  一。 确定方案和目的
  在电子电路和工业应用中,串口通信被广泛应用,串口蓝牙模块,串口触摸屏幕,通过串口下载PLC程序,通过串口来控制仪器仪表等等。
  这些预留是为了提供标准的数据对接协议,所以本节来通过labview学习串口的使用,主要知识点是数据读取原理和上位机编程实现方法,具体如下:
2.jpg
  01. 掌握labview串口接收使用方法,理解串口通信原理;
  02. 掌握串口轮询读取和中断读取代码的实现方法;
  03. 学习两种上位机编程,实现与硬件数据交互;
  二。 上位机串口读取(labview)
  01. 轮询方法读取串口的方法是固定时长读取串口接收缓存;
  02. 首先用延时,然后获取串口内部缓存数量,再应用串口读取模块;
  03. 这种读取串口的方法,存在数据丢失和数据堆叠现象;
  04. 假设硬件自主每秒上传9个数据,上位机轮询周期是500ms,会出现数据在500ms的整数倍时刻被截断情况;
2.jpg
  05. 为了单次轮询数据丢失或者不完整,可以采取将多次轮询数据拼接和加快轮询速率;
  06. 自主串口启用后,第一次读取会出现大量数据被读出,因为缓存堆积现象;
  07. 解决缓存堆积现象可以打开串口后清除缓存;
  08. 假设硬件自主每秒上传9个数据,上位机轮询周期是100ms,数据经过多次拼接能够完整呈现;
  09. 这种方式能够解决不定长度的接收数据透传;
  10. 区分一段字符串是依据超时检测机制来判断;检测最新的轮询数据为零时认为语句接收结束;
2.jpg
  11. 轮询浪费CPU资源,上位机串口也可以使用串口接收中断;
  12. 启用中断事件,检测中断或超时,正确中断会进入读取代码块;
  10. 中断方法能够比较容易的区分代码片段,能够减轻CPU负载;
  三。 案例分析
  智能遥控车能够采集温度湿度有害气体,并能够通过GPS获取方位坐标,本例采用轮询串口读取方式获取数据。
  通过查询数据起始位标志来截取字符串,存在一定的数据浪费现象。
2.jpg
  本例读取温度也是采用轮询串口读取方式获取数据。通过CRC校验来截取字符串,提高了数据的正确稳定效果,使用字节传输方式压缩了数据尺寸量,容易做到较大数据块上传。
2.jpg
  4.上位机串口读取(C#语法)
  C#对于串口接收的处理原理是,使用中断方式来操作硬件的串口数据。
  使用串口需要定义参数,映射中断函数,开启中断,处理数据等流程;
2.jpg



原作者: Dream_doing 千里优选教学基地

更多回帖

发帖
×
20
完善资料,
赚取积分