上位机与下位机通讯方式(转载)

上位机:指可以直接发送操作指令的计算机或单片机,一般提供用户操作交互界面并向用户展示反馈数据。

典型设备类型:电脑、手机、排版、触摸屏等。

下位机:指直接与机器相连接的计算机或单片机,一般用于接收和反馈上位机的指令,并且根据指令控制机器执行动作以及从机器传感器读取数据。

典型设备类型:STM32、51、FPGA、ARM等各类可编程芯片。

上位机与下位机的关系

为了实现以上功能,上位机和下位机都需要单独编程,都需要专门的开发人员在各自两个平台编写代码。

上位机与下位机之间的通信

上位机与下位机在通信之前要先建立通信协议,建立完成后上位机就可以发送指令了。

通信协议

上位机与下位机之间的通信协议有很多,只要能完成通信的协议都可以用在上位机与下位机之间。

常见用于上位机与下位机之间的通信协议:RS232、RS485串行通信、USB/蓝牙、UDP/TCP等。

通信API(Application Programming Interface)

在通信协议的基础上,具体发送什么指令,还需要规定各个功能所对应的指令,每个功能所对应的指令叫做API,API也常称为”私有通信协议“。

只要通信协议可以建立,上位机软件可以是任意开发语言和任意开发平台,下位机也可以使用任意类型的单片机。

  • 上位机给下位机发送控制命令,下位机收到命令并执行相应的动作。
  • 上位机给下位机发送状态获取命令,下位机收到命令后调用传感器测量,然后转化为数字信息反馈给上位机。

  • 下位机主动发送状态信息或警报信息给上位机。

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

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

相关文章

Dotar(zsh,tmux,vim,ag)

Dotar是一个包含了zsh, spacevim(nvim), tmux和许多其它工具的多合一的Mac/Ubuntu开发环境 背景 Dotar的名字源于dot和tar的结合,代表者打包(tar)文件。 开始 需求 zsh, tmux, vim, ag已经安装,并且zsh作为你的默认终端: chsh -s $(which zsh)如果…

NX二次开发UF_CAM_ask_tool_matl_db_object 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_tool_matl_db_object Defined in: uf_cam.h int UF_CAM_ask_tool_matl_db_object(UF_CAM_db_object_t * db_obj ) overview 概述 This function provides the database object which is…

解锁性能:玩转多线程编程的新姿势......

拥有多线程和拥有一百枚核弹没有区别,因为都是毁灭性的存在。——麦克阿瑟 在Java中,实现多线程主要有三种方式:继承Thread类、实现Runnable接口和实现Callable接口。 多线程的形式上实现方式主要有两种,一种是继承Thread类&…

NX二次开发UF_CAM_ask_lower_limit_plane_status 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_lower_limit_plane_status Defined in: uf_cam_planes.h int UF_CAM_ask_lower_limit_plane_status(tag_t object_tag, UF_PARAM_lwplane_status_t * status ) overview 概述 Query the…

NX二次开发UF_CAM_ask_opt_template_object 函数介绍

文章作者:里海 来源网站:里海NX二次开发3000例专栏 UF_CAM_ask_opt_template_object Defined in: uf_cam.h int UF_CAM_ask_opt_template_object(UF_CAM_opt_t * opt_object ) overview 概述 This function provides the object which is used to in…

hadoop 编写开启关闭集群脚本, hadoop hdfs,yarn开启关闭脚本。傻瓜式hadoop脚本 hadoop(九)

1. 三台机器: hadoop22, hadoop23, hadoop24 2. hdfs在22机器启动,yarn在hadoop23机器 3. 脚本需要hadoop用户启动才可以 4. 脚本: #!/bin/bashHADOOP_PATH"/opt/module/hadoop-3.3.4"# 检查脚本执行用户是否为 hadoop if [ &q…

〖大前端 - 基础入门三大核心之JS篇㊴〗- DOM节点的关系

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

11、利用大津算法完成一张图片的前景分割

上一篇文章介绍了大津算法,总的来说,大津算法的核心思想就两个: 数学上,通过确定一个像素阈值,来将图片中的像素分为两类,一类前景、一类背景,然后计算两类图像的类间方差,使方差最大。 工程实现上,为了确定像素阈值,采用遍历的方法来实现。 代码实现 下面通过一个…

[C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…

VulnHub DC-7

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

释放锁流程源码剖析

1 释放锁流程概述 ReentrantLock的unlock()方法不区分公平锁还是非公平锁。 首先调用unlock()方法。 unlock()底层使用的是Sync.release(1)方法 public void unlock() {<!-- --> sync.release(1); } release(1)方法会调用tryRelease(1)去尝试解锁。 public fin…

TC397 EB MCAL开发从0开始系列 之 [15.0] Fee配置说明 -理论详解

一、Fls模块详解1. FEE驱动工作模式:1.1 双扇区&QS1.2 单双扇区1.3 单QS2. Fls配置相关3. 初始化FEE驱动程序4. FEE operation5. Configuration of QS blocks6. Key points to consider6.1 FEE和FLS依赖6.2 GC介绍6.3 写块接近GC阈值6.4 FEE_E_GC_TRIG DEM6.5 Fee_Read和Fe…

EtherCAT从站EEPROM分类附加信息详解:RXPDO(输入过程数据对象)

0 工具准备 1.EtherCAT从站EEPROM数据(本文使用DE3E-556步进电机驱动器)1 分类附加信息——RXPDO(输入过程数据对象) 1.1 分类附加信息规范 在EEPROM字64开始的区域存储的是分类附加信息,这里存储了包括设备信息、SM配置、FMMU配置在内的诸多信息。每个信息在一段连续的…

python实战—核心基础1(高考倒计时)lv1

目录 一、核心代码解释 二、代码 三、运行截图 一、核心代码解释 1、datetime模块 Python有一个名为datetime的模块&#xff0c;用于处理日期和时间。 datetime模块中定义的一个类是datetime类。 可以使用now()方法创建一个包含当前本地日期和时间的datetime对象。 impo…

藏头诗(C语言)

本题要求编写一个解密藏头诗的程序。 注&#xff1a;在 2022 年 7 月 14 日 16 点 50 分以后&#xff0c;该题数据修改为 UTF-8 编码。 输入格式&#xff1a; 输入为一首中文藏头诗&#xff0c;一共四句&#xff0c;每句一行。注意&#xff1a;一个汉字占三个字节。 输出格…

Milvus Standalone安装

使用Docker Compose安装 Milvus standalone&#xff08;即单机版&#xff09;&#xff0c;进行一个快速milvus的体验。 前提条件&#xff1a; 1.系统可以使用centos 2.系统已经安装docker和docker-compose 3.milvus版本这里选择2.3.1 由于milvus依赖etcd和minio&#xff0c…

公司电脑文件透明加密、防泄密管理软件系统

天锐绿盾数据透明加密系统是一款采用驱动层透明加密技术实现电子文件安全加密的防护产品&#xff0c;可以对企业电子文件的存储、访问、传播和处理过程实施全方位保护。该系统遵循基于文件生命周期安全防护的思想&#xff0c;集成了密码学、访问控制和审计跟踪等技术手段&#…

MySQL优化-查询优化

MySQL查询优化是指通过调整查询语句、优化表结构、使用索引等方式&#xff0c;提高查询性能的过程。以下是MySQL查询优化的几种方法&#xff1a; 1. 尽量避免使用SELECT* SELECT *会查询表中的所有列&#xff0c;包括不需要的列&#xff0c;这会消耗大量的计算资源和时间。而…

PTA目录树

在ZIP归档文件中&#xff0c;保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时&#xff0c;可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。 输入格式: 输入首先给出正整数N&#xff08;≤104&#xff09;…

【开源】基于Vue.js的计算机机房作业管理系统的设计和实现

项目编号&#xff1a; S 017 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S017&#xff0c;文末获取源码。} 项目编号&#xff1a;S017&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 课程管理模块2.3 课…