串口通信扩展知识

news2024/12/24 21:41:28

在Android工控系统上,Android与硬件的通讯交互随处可见,其中串口通讯是最常用的通讯方式之一。
串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
传统的串口通讯是异步串行(UART),传输数据采用帧格式传输,一帧数据由起始位、数据位、校验位、停止位组成。

  • 波特率:传输速率,波特率9600,则表示每秒发送 9600 bit
  • 数据位:通信中实际数据位的参数,5-8位
  • 停止位:表示单个包的最后一位。典型的值为1,1.5和2位
  • 校验位:检错方式,有四种检错方式:偶、奇、高和低,也可以没有校验位

常见串口接线通常有两种接法,一种是串口直通线,另一种串口交叉线,区别如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从上面可知:实现设备间的全双工通信串口通讯至少需要三根线:TX(发送数据)、RX(接收数据)、GND(信号地)

特别注意:接线端到端要保持一致,接法不能混合,否则硬件通讯失败

常见串口主要有两种RS232、RS485,主要区别如下:

rs232和rs485的区别如下:

1、传输方式不同

接口传输方式传输距离传输速率通信方式
RS232采用不平衡传输方式,即所谓的单端传输。发送端输出正电平为515V,负电平为-5-15V,无数据时线上为TTL,接收器工作点评在312V与-3-12V。共模抑制能力差适合本地设备之间的传输,传输距离最大为15米最高速率为20kb/s只允许一对一的通信,是全双工的,同时可收发
RS485采用平衡传输,即差分传输方式。AB之间正点平为+2+6V,负电平为-2-6。接收器AB之间大于+200mV为正逻辑电平,小于-200mV为负逻辑电平传输距离为几十米到上千米最高可以达到10M在总线上允许链接128个收发器,是半双工的,某一个只能收或者发

实际开发没有硬件设备,怎么进行串口通讯测试?可以参考下面:

虚拟串口调试模拟工具:

下载地址:https://www.eltima.com/vspdpro-post-download.html

PC端的使用步骤

  1. 添加端口,虚拟端口是成对出现的(这里自己创建的端口是COM1、COM2),一个负责收数据,一个负责发数据。
  2. 使用PC Windows端串口测试工具,分别打开端口COM1、COM2,打开端口的设置参数一样(波特率、数据位、校验位、停止位)
  3. 在PC端串口测试工具进行数据的发送和接收

Android的端使用步骤

  1. 由于串口是互通的,我们可以在PC端使用串口测试工具打开串口COM1,作为数据接收(当然也可以发送数据,因为全双工通讯)

  2. 在Oracle VM VirtualBox中设置Genymotion模拟器(Android Genymotion模拟器运行在Oracle VM VirtualBox中运行的)的虚拟串口
    将Android Genymotion模拟器的串口设备COM1也就是 /dev/ttyS0(COM2对应 /dev/ttyS1),映射到PC的虚拟COM2端口
    在这里插入图片描述

  3. 配置Android Genymotion模拟器串口/dev/ttyS0权限,cmd分别执行

     adb shell
     chmod 777 /dev/ttyS0
    
  4. 启动模拟器,运行Android端的串口调试工具

  5. 最后进行数据发送和接收测试

备注:上面测试只是模拟串口测试,实际还得对接实际硬件设备进行调试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扩散模型(Diffusion Model)原理与代码解析(一)

一、模型概览 扩散模型的灵感来自于非平衡热力学。定义了一个扩散步骤的马尔可夫链(当前状态只与上一时刻的状态有关),慢慢地向真实数据中添加随机噪声(前向过程),然后学习反向扩散过程(逆扩散…

python 图形界面“诈金花”游戏,更新了!附完整代码

旧版本的代码请见上一篇博文: python 从一道作业题到制作一个图形界面的“诈金花”游戏_Hann Yang的博客-CSDN博客Player1: (♥Q, ♣2, ♣8) - 单张Player2: (♦10, ♥7, ♠6) - 单张Player3: (♣4, ♠4, ♦2) - 对子Player4: (♠5, ♠9, ♥6) - 单张Player5: (♠…

SSM框架-SpringMVC(二)

目录 1 SpringMVC处理Ajax请求 1.1 RequestBody 1.2 RequestBody获取json格式的请求参数 1.3 ResponseBody 1.4、ResponseBody响应浏览器json数据 1.5 RestController注解 2 文件上传和下载 2.1 文件下载 2.2 上传文件 3 拦截器 3.1 拦截器的三个抽象方法 3.2 拦截器…

技术分享 | ClickHouse 冷热存储分离方案线上实践

作者:任坤 现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源…

母胎级教学,工业路由器远程维护PLC详细操作指南

1、前言随着工业4.0大力推进,对工业现场设备的稳定性提出了更高的要求,大多数的设备制造商不能持续监测及管理设备,因为现场设备分布比较分散,客户不能集中管理,如果通过视频或电话沟通问题,则准确度不够&a…

【安卓学习之常见问题】jar文件中Class转java文件不准(不同软件打开的class文件不一样)

█ jar文件中Class转java文件不准 █ 系列文章目录 提示:这里是收集了和文件分享有关的文章 【安卓学习之常见问题】android路径及文件问题 【安卓学习之常见问题】文件分享–文件不存在 【安卓学习之常见问题】自定义组件-刷新后跳到第一行 【安卓学习之常见问题…

K_A08_005 基于 STM32等单片机驱动XY-160D模块按键控制直流电机正反转加减速启停

目录 一、资源说明 二、基本参数 四、部分代码说明 接线说明 1、STC89C52RCXY-160D模块 2、STM32F103C8T6XY-160D模块 五、基础知识学习与相关资料下载 六、视频效果展示与程序资料获取 七、项目所有材料清单 八、注意事项 九、接线表格 一、资源说明 单片机型号 测试…

【UNIAPP】APP快速免费生成一键发布页面

参考官方文档:https://uniapp.dcloud.net.cn/uniCloud/hosting.html# 效果预览地址:https://hellouniapp.dcloud.net.cn/portal 一、创建并运行uni-admin 1、创建项目 2、运行项目 3、关联到浏览器打开。 二、登录后台界面 1、进入主页面 2、如…

[附源码]Python计算机毕业设计Django校园帮平台管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

【2023-Pytorch-分类教程】手把手教你使用Pytorch训练自己的分类模型

之前更新过一起tf版本的训练自己的物体分类模型,但是很多兄弟反应tf版本的代码在GPU上无法运行,这个原因是tf在30系显卡上没有很好的支持。所以我们重新更新一期Pytorch版本的物体分类模型训练教程,在这个教程里面,你将会学会物体…

[附源码]计算机毕业设计面向高校活动聚AppSpringboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【电商项目实战】新增收货地址(详细篇)

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉SpringBoot电商项目实战 ✨学习社区: 👉不会压弯的小飞侠 ✨知足上进&#x…

刷爆力扣之最短无序连续子数组

刷爆力扣之最短无序连续子数组 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&…

Windows+Visual stdio+CUDA编程方式及测试

目录一、visual stdio内针对工程的配置1、新建一个空项目2、配置CUDA生成依赖项3、配置基本库目录4、配置静态链接库路径5、配置源码文件风格6、扩展文件名配置二、样例测试测试样例1样例1问题:找不到helper_cuda.h文件测试样例2测试样例3一、visual stdio内针对工程…

Java餐厅点餐系统uniapp源码带安装教程

一套Java开发的餐厅点餐半成品系统,前端使用uniapp编写,经过本地测试,这套系统还有一些功能没完善好,有能力的朋友可以在这套系统基础上进行二次开发。 技术架构 后端技术框架:springboot shiro layui 前端技术框架…

springboot项目作为静态文件服务器

springboot项目作为静态文件服务器 springboot默认文件作用 使用 spring initialzr 创建 spring boot 项目 https://start.spring.io/ static 存放静态资源 template 存放模板页面 , 例如 thymeleaf 自定义静态文件存放目录 springboot 自动装配 , 默认静态资源的目录是 s…

Flink 知识点整理及八股文问题<第一部分 Flink简介>

本篇为Flink的第一大部分&#xff0c;初识Flink&#xff0c;全篇参考自 尚硅谷2022版1.13系列 整个系列的目录如下&#xff1a; <一>Flink简介 <二>Flink快速上手 <三>Flink 部署 <四>Flink 运行时架构 <五>DataStream API <六>Flin…

kubernetes—数据存储

数据存储 在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;kubernetes引…

[附源码]计算机毕业设计旅游度假村管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Python项目】Python基于tkinter实现一个笔趣阁小说下载器 | 附源码

前言 halo&#xff0c;包子们上午好 笔趣阁小说应该很多小伙伴都知道 但是用Python实现一个笔趣阁小说下载器 那不是爽歪歪呀 基于tkinter实现的Python版本的笔趣阁小说下载器今天小编给大家实现了 相关文件 关注小编&#xff0c;私信小编领取哟&#xff01; 当然别忘了一件…