0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RS485通信方式分析 了解485通信也就基本了解了422通信

lPCU_elecfans 来源:未知 作者:风拂柳絮 2018-11-21 09:57 次阅读

(本文为电子发烧友网用户风拂柳絮原创稿件)众所周知,串口数据通讯方式有单工模式、半双工模式以及全双工模式。单工模式:只支持数据在一个方向上传输;半双工模式:允许数据在两个方向上传输,但某一时刻只允许在一个方向上传输;全双工模式:同时在两个方向上传输,是两个单工通信的结合,要求发送设备和接收设备同时具有独立的接收和发送能力。

例如我们常见的RS232RS485RS422串口通讯方式,其中RS232是全双工的,RS485是半双工的,RS422是全双工的,当然两个半双工的485可以组成422通信方式。下面就讲一下今天的重点RS485通信方式,了解了485通信也就基本了解了422通信。

先介绍一下RS485的电气特性,RS485采用差分传输的方式,逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。

传输速率高,抗干扰能力强,并且可以大大延长通信距离,比如RS232传输距离一般是30米,而采用RS485,完全不需要修改程序,通信距离可以达到1200米(9600bps)。且RS485一般最大支持32个节点,实现多节点收发。特制的485芯片可以实现更多节点收发。

既然RS485通信这么优秀,那么就开始今天的实例吧。

首先本次实例选用的是STM32F107VCT6,如图一所示,以及图二所分配给485通信的

管脚,本次PA2作为单片机的发送端,PA3作为单片机的接收端,PA1作为接收和发送使能的控制端。板子上输出的A2、B2引脚分别接DB9的T/R+、T/R-,此处针对不同的DB9接脚

位置不一样,读者注意辨别。硬件电路到这里就基本完成。

下面是软件调试部分,

Step1,在对应的配置里找到Device中找到本次的芯片类型F107VC,当然不同的芯片选型一定要正确。

Step2,在对应的宏定义里面将圆圈处改成CL。因为此次芯片flash是256K,属于小芯片容量。

Step3,配置jlink驱动,选择四线的SW模式,四线分别是3.3v,SWDIO,SWCLK,GND。看到SWDevice中出现此次圆圈处的型号,并点击Flash Download出现下图的界面看看芯片选型是不是256k,不是点击Add添加,选择256k的flash size即可,然后一些列OK就行。

Step4,主函数的编写,当然此次省略了新建工程等一些列操作,不懂的可以百度有步骤指示,主函数程序很简单,一个中断配置函数,一个485初始化函数,当然485初始化函数里包括很多配置,具体的往下看,延时函数此次可以不用。主函数就是一个发送接收使能的切换(RS485_TX_EN)和一个发送函数。

Step5,对485初始化函数进行定义,管脚的配置,此处是PA2输出,PA3输入,PA1是使能位,具体可参看上面原理图,同时在此函数中对波特率以及串口的中断进行了配置。

Step6,485发送函数及中断函数进行了定义,由于此次没有使用外部中断,而是采用了内部中断的方式,在串口2中断中将接收到的数据保存在receive数组中,并定义了包头和包位分别为0xAA,0xBB,并设置发送数据长度为6,不满足次三个条件的数据是无法发送的串口调试助手的,当然时刻要注意使能位(RS485_TX_EN)为1还是为0,为1则485发送,为0则485接收,因为485是半双工,前面已经讲到,某一时刻只能接收或者发送。并在头文件中将相应的函数以及数组定义成全局。

Step7,最后就是最紧张的测试环节,将串口调试助手圆圈里的配置调成与代码的配置一样的形式,并将发送数据的格式改成带有包头AA包尾BB中间4位数据格式的形式发送,点击发送,就可以在串口调试助手中收到此次的数据,当然如果不满足包头和包位分别为0xAA,0xBB,发送数据长度为6的格式,将不会在串口助手中收到数据,读者可以自行尝试,版面有限,不多说明。

Step8,本人才疏学浅,属于刚摸索单片机阶段,可能在很多地方不尽完美,希望大佬们多批评指正,不吝赐教,本人在此先谢谢大家。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5675

    浏览量

    134119
  • RS485
    +关注

    关注

    39

    文章

    1048

    浏览量

    80991

原文标题:8个步骤,教你轻松搞定485通讯小实例(烧友原创)

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    labview与rs485通信的modbus协议

    labview与rs485通信的modbus协议编程怎么用,知道有mdbus模块,但是网上例程少而且特别简单所以,想看看大家是怎么利用这个modbus协议的
    发表于 05-18 08:54

    关于RS485通信信号问题

    的。实际RS485接收波形是红色框后面的波形,请教问TTL接收端为什么会有发送的波形?问题2.我做了2个板子,通过RS485通信,但是电流不一样,两个通讯线上再并连 485转USB工具
    发表于 05-27 18:20

    不能用RS485通信方式通信

    RS422通信方式都能正常通信使用串口调试助手智能RS422方式
    发表于 10-11 06:31

    RS485通信总线防雷保护应该怎么做?

    现在的RS485作为最为最常用的电表通信方式之一,日常生活中雷电和静电干扰已经成为485通信总线在实际工程经常遇到的问题。
    发表于 04-06 09:47

    RS485通信原理是什么?RS485应用存在哪些问题?

    RS485特点是什么?RS485通信原理是什么?RS485应用存在哪些问题?
    发表于 05-20 06:06

    RS485——RS485通信基础理论与STM32测试 精选资料分享

    1.优劣优势:RS485的可靠传输距离远,接线简单成为了相对于RS232的最大优势。不足:RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,
    发表于 07-28 06:54

    RS485通信硬件实现

    阅读目录1、RS485简介 2、RS485特性3、RS485通信硬件实现4、RS485通信软件实
    发表于 08-19 08:20

    浅析RS485通信和Modbus通信协议

    RS485通信和Modbus通信协议汇总1. 主从模式RS-485上的软件层协议ModBus主要依赖于主从模式。主从模式是指在半双工通讯方式
    发表于 08-23 06:16

    如何实现基于FPGA的RS485通信接口设计

    RS485是什么?如何实现基于FPGA的RS485通信接口设计?
    发表于 09-28 07:53

    RS485通信与Modbus协议的相关资料分享

    文章目录RS485 通信与 Modbus 协议单片机 RS485 通信接口、控制线、原理图及程序实例RS485
    发表于 11-30 07:31

    RS485通信与Modbus协议的特点

    RS485通信与Modbus协议 附源码及视频教程下载RS485通信的特点1、采用差分信号。2、RS485
    发表于 11-30 07:05

    RS485是什么?RS485通信的特点有哪些

    RS485简介485(一般称作 RS485/EIA-485)是隶属于 OSI 模型物理层的电气特性规定为 2 线,半双工,多点通信的标准。它
    发表于 01-14 07:54

    基于ucosii实时操作系统的RS485通信

    一、实现效果基于ucosii实时操作系统的RS485通信,采用USART + DMA进行收发,二、开发环境开发工具:KEIL V5开发板: STM32f107RC采用方式:USART + DMA
    发表于 02-18 07:35

    如何使用MCU UART用于RS485通信

    应用:本代码将使用MCU UART用于RS485通信。 BSP 版本: N76E003 BSP Keil C51 v1.0.6 硬件: NuTiny-SDK-N76E003 v2.1 典型的系列
    发表于 08-22 07:10

    使用MCU UART用于RS485通信的代码

    应用:本代码将使用MCU UART用于RS485通信。 BSP 版本: N76E003 BSP Keil C51 v1.0.6 硬件: NuTiny-SDK-N76E003 v2.1 典型的系列
    发表于 08-30 07:59