打印
[STM32F4]

【正点原子探索者STM32F407开发板】第31章 485通信实验

[复制链接]
3333|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangyang86|  楼主 | 2014-12-23 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第三十一章 485 实验
1.硬件平台:正点原子探索者STM32F407开发板2.软件平台:MDK5.13.固件库版本:V1.4.0
实验26 485通信实验.zip (520.84 KB)


第三十一章 485 实验-STM32F4开发指南-正点原子探索者STM32开发板.pdf (957.81 KB)


本章我们将向大家介绍如何使用STM32F4的串口实现485通信(半双工)。在本章中,我们将使用STM32F4的串口2来实现两块开发板之间的485通信,并将结果显示在TFTLCD模块上。本章分为如下几个部分:
31.1 485 简介
31.2 硬件设计
31.3 软件设计
31.4 下载验证
31.1 485 简介
485(一般称作RS485/EIA-485)是隶属于OSI模型物理层的电气特性规定为2线,半双工,多点通信的标准。它的电气特性和RS-232大不一样。用缆线两端的电压差值来表示传递信号。RS485仅仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议。
RS485的特点包括:
1)              接口电平低,不易损坏芯片。RS485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V
表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
2)              传输速率高。10米时,RS485的数据最高传输速率可达35Mbps,在1200m时,传输
       速度可达100Kbps。
3)              抗干扰能力强。RS485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力
增强,即抗噪声干扰性好。
4)              传输距离远,支持节点多。RS485总线最长可以传输1200m以上(速率≤100Kbps)
一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
RS485推荐使用在点对点网络中,线型,总线型,不能是星型,环型网络。理想情况下RS485需要2个终端匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般为120Ω)。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的电压差。没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,导致数据传输出错。485推荐的连接方式如图31.1.2所示:



图31.1.2 RS485连接
       在上面的连接中,如果需要添加匹配电阻,我们一般在总线的起止端加入,也就是主机和设备4上面各加一个120Ω的匹配电阻。
由于RS485具有传输距离远、传输速度快、支持节点多和抗干扰能力更强等特点,所以RS485有很广泛的应用。
探索者STM32F4开发板采用SP3485作为收发器,该芯片支持3.3V供电,最大传输速度可达10Mbps,支持多达32个节点,并且有输出短路保护。该芯片的框图如图31.1.2所示:
图31.1.2 SP3485框图
       图中A、B总线接口,用于连接485总线。RO是接收输出端,DI是发送数据收入端,RE是接收使能信号(低电平有效),DE是发送使能信号(高电平有效)。
本章,我们通过该芯片连接STM32F4的串口2,实现两个开发板之间的485通信。本章将实现这样的功能:通过连接两个探索者STM32F4开发板的RS485接口,然后由KEY0控制发送,当按下一个开发板的KEY0的时候,就发送5个数据给另外一个开发板,并在两个开发板上分别显示发送的值和接收到的值。
本章,我们只需要配置好串口2,就可以实现正常的485通信了,串口2的配置和串口1基本类似,只是串口的时钟来自APB1,最大频率为42Mhz。
31.2 硬件设计
本章要用到的硬件资源如下:
1)  指示灯DS0
2)  KEY0按键
3) TFTLCD模块
4) 串口2
5) RS485收发芯片SP3485
前面3个之前都已经详细介绍过了,这里我们介绍SP3485和串口2的连接关系,如图31.2.1所示:
图31.2.1 STM32F4与SP3485连接电路图
       从上图可以看出:STM32F4的串口2通过P9端口设置,连接到SP3485,通过STM32F4的PG8控制SP3485的收发,当PG8=0的时候,为接收模式;当PG8=1的时候,为发送模式。
这里需要注意,PA2,PA3和ETH_MDIO和PWM_DAC有共用IO,所以在使用的时候,注意分时复用,不能同时使用。另外RS485_RE信号,也和NRF_IRQ共用PG8,所以他们也不可以同时使用,只能分时复用。
       另外,图中的R38和R40是两个偏置电阻,用来保证总线空闲时,A、B之间的电压差都会大于200mV(逻辑1)。从而避免因总线空闲时,A、B压差不定,引起逻辑错乱,可能出现的乱码。
然后,我们要设置好开发板上P9排针的连接,通过跳线帽将PA2和PA3分别连接到485_TX和485_RX上面,如图31.2.2所示:
图31.2.2 硬件连接示意图






实验详细手册和源码下载地址:http://www.openedv.com/posts/list/41586.htm


正点原子探索者STM32F407开发板购买地址:http://item.taobao.com/item.htm?id=41855882779
  

沙发
mmuuss586| | 2014-12-23 19:18 | 只看该作者

485还是比较简单的;

使用特权

评论回复
板凳
monkeypony| | 2014-12-30 21:51 | 只看该作者
学习一下

使用特权

评论回复
地板
周董| | 2014-12-30 23:07 | 只看该作者
我们通过该芯片连接STM32F4的串口2,实现两个开发板之间的485通信

使用特权

评论回复
5
zhangyang86|  楼主 | 2015-3-5 16:35 | 只看该作者
周董 发表于 2014-12-30 23:07
我们通过该芯片连接STM32F4的串口2,实现两个开发板之间的485通信

可以的。哪个串口都可以

使用特权

评论回复
6
小浣熊| | 2015-3-5 20:24 | 只看该作者
顶一个!!!学习啦!@!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:正点原子STM32开发板购买单击这里

80

主题

916

帖子

51

粉丝