标题: 单片机如何通过RS485实现与读取多个RFID传感器数据? [打印本页]

作者: 散人森    时间: 2019-5-11 21:41
标题: 单片机如何通过RS485实现与读取多个RFID传感器数据?
本人比较小白,要把RFID传感器读到的数据通过串口传送到单片机(89C51)里面去处理,查了资料和淘宝后,可以用RS485,但是目前有几个问题。
1.在网上查类似的电路图,有的用一个MAX485就直接与DB-9连起来了,有的却用了两片,这两种有什么区别?
2.怎么用RS485实现一片单片机就接收四个RFID传感器的数据?看了很多例子,都是用单片机的RXD和TXD和PC或者单片机通信,可是都是单对单的,怎么让单片机接受4个传感器的数据不混乱呢?只要单向的接收即可

0I[)X_CA0B@V`$1BAUDW39N.png (38.2 KB, 下载次数: 27)

0I[)X_CA0B@V`$1BAUDW39N.png

B_LI7H3SNP)U501K8L$BD0I.png (39.65 KB, 下载次数: 29)

B_LI7H3SNP)U501K8L$BD0I.png

作者: 来51学习    时间: 2019-5-12 23:16
你用的 RFID 具体什么型号?
把资料发出来看看!
作者: 笨笨兔    时间: 2019-5-13 13:08
听你说的意思,RFID传感器应该是RS485总线,A接A,B接B即可;
这个要通讯协议的,简单说就是RFID传感器每个地址不同,根据协议,作为主机的单片机就可以区分不同的RFID了。
可参见ModBus协议。
作者: 散人森    时间: 2019-5-13 23:11
笨笨兔 发表于 2019-5-13 13:08
听你说的意思,RFID传感器应该是RS485总线,A接A,B接B即可;
这个要通讯协议的,简单说就是RFID传感器每 ...

大佬,看了你的回复我大致有些思路了。我现在是这么想的,从MAX485的A和B接出两条RS485总线,然后四个RFID传感器的A和B都分别接在总线的A和B上。然后写个程序,单片机只收不发,事先定义好每个RFID传感器传回来的数据,拿出两位数据做区分,就知道是哪个传感器传回来的数据了这样的方案能实现吗?
作者: 笨笨兔    时间: 2019-5-14 09:40
散人森 发表于 2019-5-13 23:11
大佬,看了你的回复我大致有些思路了。我现在是这么想的,从MAX485的A和B接出两条RS485总线,然后四个RFI ...

意思理解了就好:关键是协议,协议如果不和别的企业有关系可自己制定;单片机不只是只收不发,如果单片机作为主机,可收可发,收发有它控制。
参见ModBus协议。
作者: 笨笨兔    时间: 2019-5-14 09:41
理解的没错,可实现。
作者: 散人森    时间: 2019-5-22 00:53
笨笨兔 发表于 2019-5-14 09:41
理解的没错,可实现。

大佬,能不能麻烦你帮我看看这样能实现我之前说的功能不?我总感觉我这个DB-9接口接的有点奇怪,这样连接正确吗?

5E(A(WT4TB`LAG58R3BWMV0.png (41.94 KB, 下载次数: 31)

DB-9一头与各RFID传感器连接

DB-9一头与各RFID传感器连接

U2~WF)2H8ZP_IDRXLQ@ZM)B.png (36.6 KB, 下载次数: 28)

DB-9一头与单片机连接

DB-9一头与单片机连接

1.png (47.06 KB, 下载次数: 28)

1.png

作者: 散人森    时间: 2019-5-22 00:58
笨笨兔 发表于 2019-5-14 09:41
理解的没错,可实现。

这是我的另外一种想法,我觉得这种方法也挺合理的,但是问题是这样子连我原先预计要使用的DB-9接口我不知道怎么连进去了,麻烦大佬指点一下

2.png (51.89 KB, 下载次数: 34)

直接连接无DB-9接口

直接连接无DB-9接口

作者: aking991    时间: 2019-5-22 08:08
如果你的RFID支持485通讯功能,那你的单片机只要设计485通讯功能就能实现通讯,不过按你提供的原理图,明显不属于485通讯的,由于没有更多的资料可参考,只能说这些了
作者: 笨笨兔    时间: 2019-5-22 09:45
你的第二个想法合理且能实现。至于DB9插头,看放置一最右边485芯片的左侧,

未命名.JPG (38.77 KB, 下载次数: 38)

未命名.JPG

作者: 笨笨兔    时间: 2019-5-22 09:57
你第一个的主要问题是:接CPU那个图中,DB9接口是485;
而接传感器那个图,DB9接口为TTL电平;
两个不能连接;连接上,什么也不会出来的。
记住:485是差分电平,不是TTL电平,与TTL电平有本质区别。

还有一点,485总线中120欧姆电阻,并不是每个都要接,要看具体需要;参见消防类的防火报警!
作者: 散人森    时间: 2019-5-22 13:06
笨笨兔 发表于 2019-5-22 09:57
你第一个的主要问题是:接CPU那个图中,DB9接口是485;
而接传感器那个图,DB9接口为TTL电平;
两个不能连 ...

大佬,我按你的意见进行了修改,你看看这样子OK吗。我还有个问题,DB-9是不是只能传输RS232/RS485的信号?即使两端都是TTL的电平也无法传输
作者: a984984sd123456    时间: 2019-9-3 10:57
最近在用一个485的风速传感器做实验,以前没有用过485的,不知道如何驱动 ,可以参考一下你们的程序吗(stm32 + rs485风速传感器)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1