求助各位高手!485总线1路改2路后软件应如何改动? 点击:1477 | 回复:19



可爱fanny

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-26 09:20:00
楼主
各位高手,请问:485总线原来有一条,现在增加了一条后,原来的通信程序应该如何改动?谢谢!



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-05-22 15:47:00
1楼
就我所知 RS-485 分为 2 线式(半双工)与 4 线式(全双工). 有 1 线式的吗?

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-22 16:49:00
2楼
我是说一条485总线,而不是485线。

上海工控

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 468回
  • 年度积分:0
  • 历史总积分:931
  • 注册:2004年2月04日
发表于:2003-05-23 13:02:00
3楼
采用多串口通讯方式!

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 13:50:00
4楼
可否保持用原来的单片机Rx,Tx口,然后外接两个485收发器呢?

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 13:51:00
5楼
可否保持用原来的单片机Rx,Tx口,然后外接两个485收发器呢?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-05-23 14:18:00
6楼
您单片机上的串口是 485 interface 的吗? 若依您上述的接法, 则理论上它还是同一条 485 bus. 且 485 是用 broadcast 的方法通信, 所以由单片机送出的信息, 在这两条 (1 条) 485 bus 上, 都会收到信息才是. (但不知这样是否会有电路杂讯干扰!) 在此情形下, 您的程式应该是不用更改的. 只不过, 这或不是您所想要的系统运行方式. 若要让两条 485 bus 独立且同时运行, 则应该要有另一个 485 接口才行.

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 14:31:00
7楼
Dear GaryLin, thanks! you are right! 我用的是AT89c51。那么说,我应该进行串口扩展了吗? 那么请问:在软件方面,我具体应作哪些方面的改动呢?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-05-23 14:45:00
8楼
对于多串口的通讯, 得看您的系统为何? 甚至开发工具也会有影响. 以 Windows 为例, 它支持 Multi-Task/Multi-Thread. 所以可以考虑用 Multi-Thread 的方式来处理不同的串口. 也可以考虑用 Event 的方式来处理. 在 DOS 下的话, 或许得用 TSR 的方式来处理了. 至于, 其它的 SCADA/HMI ... 各家用法都不太一样了.

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 14:58:00
9楼
Thanks,Mr.GaryLin. 我现在在做一个小区管理系统。485总线上只走数据,没有视频、音频等信号。现在我之所以需要增加一条总线,是因为我需要单独一个通道进行安防报警。我现在的通信是从楼口机到室内机的两个单片机之间的通信。您觉得这样的情况下,软件方面我应该怎样改动以实现现在的两路485通信?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-05-23 15:26:00
10楼
这样的系统, 传送的资料量可能不大, 而且就算有个几秒的 delay, 应该都还是可以接受的. 所以, 您可以考虑用最简单的 polling 方式 (或抽空)去处理第二条 485 bus 的信息即可. (让两条 485 bus 输流运行)

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 15:44:00
11楼
是这样的:第二条485专门用来进行按防报警的,也就是有紧急意外时向公安部门报警。这条线应该具有最高的优先通信级别。所以,您刚才说的polling方式可能不适合。

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-05-23 16:57:00
12楼
上网查了您所说的 AT89C51, 其为 8051 micro-processer. 8051 能用的方法, 除了 polling 之外, 就剩下 Interrupt 了. 您的选择应该不多吧!

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 17:09:00
13楼
Thanks,Garylin! 如您所说,我想用中断方式比较合适。比如,发生火灾时,室内传感器会给室内机一个中断,然后室内机会产生报警信号,通过第2根总线经过楼口机向上报警。您说呢? 问题是:我的楼口机怎样区分信号的来源?是来自第1跟总线还是第2根呢?这是不是和串口扩展卡的驱动有关系呢?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-05-23 17:39:00
14楼
架构大致上应该 OK 吧! 您所说的 "串口扩展卡", 它应该有提供特定的方法让您指定送给哪一个串口, 也应该有方法可以知道 data 从哪一个串口进来才是. 若 data 全混在一起的话, 那不仅失去它的功能, 而且还破坏了 data. 查一查扩展卡的手册, 里面应该找得到您要的资讯.

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-23 17:44:00
15楼
这就是问题所在了。我现在使用的单片机并不支持PCI/ISA,而现在可见的扩展卡大多是PCI/ISA -> 485。我总不能自己做PCI/ISA 卡,然后给它写驱动吧?

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-26 08:58:00
16楼
可以用串口扩展芯片的!

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-26 08:59:00
17楼
我也想过的 你知道芯片的型号吗?

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-26 09:19:00
18楼
Maxim公司有的 你可以去查一下

可爱fanny

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 16回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2003年5月20日
发表于:2003-05-26 09:20:00
19楼
谢谢你!LILLY

热门招聘
相关主题

官方公众号

智造工程师