什么是上位机开发之单片机通信实践

-begin-
经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与plc之间通信,那么其实对上位机开发来说,不管是和plc通信,还是和单片机通信,通信原理都是一样的。plc的本质就是单片机,在单片机的基础上添加一些外围电路并形成产品化,即构成了plc控制器。今天在这里给大家分享一个上位机与单片机通信的实例,希望对大家开发上位机有所启发。
1. 单片机硬件介绍只要做上位机开发,就离不开通信协议。一般来说,单片机可以与上位机之间以串口通信为主,当然也不排除现在有的单片机也集成了以太网口。就串口通信而言,常用的几种通信方式,包括串口自定义协议、modbus协议、can总线,接下来介绍的这个单片机是某个锂电池的核心板,它主要是支持modbus协议和can总线的方式。
2. 通信分析(1)这里我们选择的是基于485总线的modbusrtu通信协议,如果要实现上位机开发,需要单片机开发人员提供一份通信变量表,如果读取变量较多或者不连续,需要进行分组读取。
(2)通信变量表一般包含参数名称、modbus地址、存储区、数据类型、换算公式等内容,能够将通信变量表看明白并完成通信测试,是能够完成上位机开发的前提。
(3)这里,我截取部分变量表跟大家做一个分析:
上表中,以电芯总电压为例,modbus地址为0x1003,对应十进制即为4099,寄存器地址即为44100,读取类型为ushort类型,换算公式为读取之后乘以0.01,比如读取值为5630,即为5.63v。
分析明白之后,我们就可以先用modbuspoll软件来一波初步测试,如果需要modbus软件资料的,可以通过本公众号获取,modbus软件代号:201。
这里我们需要通过485转usb连接到电脑中,然后通过设备管理器,看到端口号为com4。
3. 通信测试(1)打开modbuspoll软件,通信参数选择com4、9600、n、8、1,具体配置如下图所示:
(2)读取寄存器起始地址为4099,读取长度为10,具体配置如下图所示:
(3)配置完成后,即可读取到单片机的数据,具体如下图所示:
(4)实现读取之后,我们分析一下结果,4099读取到的值为4206,说明当前电池的电压为42.06v。我们可以用实际开发完成的上位机软件做下对比,验证一下数据是否正确:
4. 整体总结本文主要针对单片机的modbus通信实例做了较为详尽的描述,由于篇幅有限,仅仅介绍了通信测试部分,对于后续的项目实战部分,会通过后续的文章进行进一步的阐述。
-end-

印度正在采用比特币来推动其经济的发展
中国移动将继续抢抓全媒体时代的发展机遇以5G+为产业赋能
华为的羁绊将巩固英特尔5G市场的地位
关于示波器的用途介绍
PLC闪存的到来机械硬盘该何去何从
什么是上位机开发之单片机通信实践
台积电明年首季营收恐或下滑严重
无线局域网中5 GHz频段的轴向模螺旋天线设计方案
基于机器视觉的表面缺陷检测设备的核心组件
变频器滤波器和电抗器的区别
基于亚马逊自研的 Arm 处理器 Graviton2
设计完美的PCB细节,元器件布局的10条规则
漏洞严重!Intel芯片遭无密破解
5G通信标准专利华为第一 5G SEP专利三星傲视群雄
电感的工作原理及其特性
红魔3预计将在4月发布搭载骁龙855移动平台支持类DC调光
英伟达有史以来最大的一笔收购交易,70亿美元收购Mellanox
芯盾时代获得权威机构颁发的CMMI 5级证书
拼多多推动数字化农业落地,将投入农业农村“新基建”发展
神州数码将与华为开展基于鲲鹏产业生态的深度合作