|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
请教:rs485的方向控制一般怎么实现 |
作者:yuhw 栏目:通信技术 |
RS485-RS232转换时,方向控制一般通过什么信号控制。除了rts,有没有更好的方法 |
2楼: | >>参与讨论 |
作者: chunyang 于 2006/3/1 21:04:00 发布:
用一简单的MCU最好 6脚或8脚的简易型即可,可实现三线制232至485的完美转换。 |
3楼: | >>参与讨论 |
作者: yuhw 于 2006/3/1 21:42:00 发布:
有些模块能够自动识别数据流方向,不知是如何做的 |
4楼: | >>参与讨论 |
作者: chunyang 于 2006/3/2 10:39:00 发布:
用MCU就是判断兼方向控制的 PIC的10F201都够了,两块多钱。 |
5楼: | >>参与讨论 |
作者: yuhw 于 2006/3/6 13:17:00 发布:
老大,嫩不能说得详细点,判断哪个信号呢 |
6楼: | >>参与讨论 |
作者: chunyang 于 2006/3/7 9:45:00 发布:
最好的办法是用协议来判断 简单应用也可只判断逻辑0,逻辑1靠总线偏置实现。 |
7楼: | >>参与讨论 |
作者: infree 于 2006/3/10 23:08:00 发布:
网上有现成的电路 查一下吧,这个其实很简单! 利用发送数据端(TXD)--可能要反相一下,来控制收发切换,我一直这样用,56K没用问题。 |
8楼: | >>参与讨论 |
作者: yuhw 于 2006/3/14 16:39:00 发布:
那如果发送的数为0 那发送的电平应该只有一种状态是正确的呀,或者是高或者是低,可发送数据的时候这两种电平都有呀 |
9楼: | >>参与讨论 |
作者: chunyang 于 2006/3/14 17:39:00 发布:
0靠真正的发送,1靠偏置实现。 |
10楼: | >>参与讨论 |
作者: 12分 于 2006/3/14 20:20:00 发布:
也就是说发送占高级位置,不发送就接收。 显然要从TXD入手,是不是把TXD变换成一个什么信号控制485发送接收端? 485的切换速度能跟的上吗? |
11楼: | >>参与讨论 |
作者: infree 于 2006/3/14 20:51:00 发布:
就是这个意思 这种电路我们一直在用,速度112K也测试过.因为TXD进行收发控制时造成的延迟约在几百ns内(考虑前面加逻辑器件),这个时间对115K的信号可以说不会造成采样误差。 |
12楼: | >>参与讨论 |
作者: 12分 于 2006/3/14 22:45:00 发布:
既然infree如此说,那就给出个电路图岂不更明了。 你不给,我明天发一个。呵呵 |
13楼: | >>参与讨论 |
作者: 12分 于 2006/3/14 23:07:00 发布:
按照大家的意思好像是这样,请指正。 |
14楼: | >>参与讨论 |
作者: iC921 于 2006/3/14 23:19:00 发布:
还得考虑电气隔离 |
15楼: | >>参与讨论 |
作者: 12分 于 2006/3/14 23:24:00 发布:
其原理是不是这样? 当发送1时三极管饱和,485处于接收状态,从而靠上拉? 当发送0时三极管不导通,485处于发送状态,从而发送0? 难道是这样?谁做过试验? |
16楼: | >>参与讨论 |
作者: computer00 于 2006/3/14 23:43:00 发布:
应该倒过来。 由于串口空闲状态是高电平,所以应该用低电平打开发送,并加延迟电路,当低电平变成高电平一段时间后,才能返回到接收状态。 看看下面我画的这个图: |
17楼: | >>参与讨论 |
作者: 12分 于 2006/3/15 8:31:00 发布:
00给的电路好像有问题。 我看圈圈说的不正确。 * - 本贴最后修改时间:2006-3-15 8:48:02 修改者:12分 |
18楼: | >>参与讨论 |
作者: 12分 于 2006/3/15 8:45:00 发布:
不发送时要让485处于接收状态。 而要让485处于接收状态,485第2脚,R\E\要为低电平才可。qq的电路好像不能实现。 |
19楼: | >>参与讨论 |
作者: 12分 于 2006/3/15 8:51:00 发布:
实际测试,我的电路正确。 |
20楼: | >>参与讨论 |
作者: meng730507 于 2006/3/15 8:51:00 发布:
chunyang老大说的方法,我们也在用,但希望大家不要再用啦! 和在家说的一个道理!!但是 1、驱动能力明显不够; 2、当状态转换时,接收线上有一个短暂的冒险冲突(一个负脉冲); 3、改变了线上的阻抗状态,导致并线的数量受影响,因此只能用于非标接法; 好外嘛,就是不用控制方向! |
21楼: | >>参与讨论 |
作者: computer00 于 2006/3/15 10:29:00 发布:
我画的那个只是一个示意图,不是一个实际的485芯片 那个收发器的准能端,都是输入高电平有效,输入低电平时,输出高阻。 |
22楼: | >>参与讨论 |
作者: 12分 于 2006/3/15 12:11:00 发布:
是吗?等待验证。 那个收发器的准能端,都是输入高电平有效,输入低电平时,输出高阻。 |
23楼: | >>参与讨论 |
作者: computer00 于 2006/3/15 12:42:00 发布:
晕了……我是说我画的那个示意图中的那个收发器 不是实际的485收发器。 |
24楼: | >>参与讨论 |
作者: iC921 于 2006/3/15 13:42:00 发布:
观点正确 不过,得考虑谁优先的问题。 如果是接收优先,就得用接收信号关闭发送驱动器; 如果是发送优先,就得用发送信号关闭接收器。 请圈圈补上你正确的图,以免有人误会。 |
25楼: | >>参与讨论 |
作者: computer00 于 2006/3/15 14:32:00 发布:
重新画了一个,如此更好,省掉我外接一个反向器。 485在接收使能口上已经内部有一个反向器了。 跟我原来画的那个图没有本质区别,只是把反向器拿到芯内部去了而已。 |
26楼: | >>参与讨论 |
作者: 12分 于 2006/3/15 14:52:00 发布:
看来是我误会了,对不住啊圈圈。 晚上再回你的贴吧,感觉还存在问题。 IC921说的话模糊啊,能不能清晰一些? |
27楼: | >>参与讨论 |
作者: iC921 于 2006/3/15 15:29:00 发布:
正在写BLOG,就是这个问题 http://blog.21ic.com/more.asp?NAME=iC921&id=10746 |
28楼: | >>参与讨论 |
作者: yuhw 于 2006/3/15 22:43:00 发布:
试验了一下12分的电路,有问题 收发总是有错误,机算计再没发数据的时候,可线路上总有数据干扰出来 |
29楼: | >>参与讨论 |
作者: iC921 于 2006/3/15 23:35:00 发布:
呵呵,将错就错吧.....不知道累吗? 圈圈的图属于发送优先模式,不可取。 主要问题是它可能因此强行发送(哪怕是干扰引起)而破坏别人正在发送的数据。 |
30楼: | >>参与讨论 |
作者: computer00 于 2006/3/16 0:21:00 发布:
那再看看这个如何?再不好我也懒得改了,“将错就错”吧。 |
31楼: | >>参与讨论 |
作者: iC921 于 2006/3/16 0:55:00 发布:
这好象可以了 只是感觉C1大了点,R2小了点。 |
32楼: | >>参与讨论 |
作者: computer00 于 2006/3/16 1:15:00 发布:
具体参数自己调。波特率不一样,参数也不一样。 |
33楼: | >>参与讨论 |
作者: iC921 于 2006/3/16 1:19:00 发布:
还没完! 你发送数据时,数据会倒灌,也就是会在接收输出端出来,因此会关闭发送......哈哈,继续吧? |
34楼: | >>参与讨论 |
作者: iC921 于 2006/3/16 1:23:00 发布:
好晚了,休息好吧 看上去问题都提出了。不会再有什么难题。 最好使用单稳来考虑一下间隔空闲。....我不太喜欢用晶体管,也许这就是一个永远落后的原因~~~~ |
35楼: | >>参与讨论 |
作者: computer00 于 2006/3/16 1:32:00 发布:
怎样个倒灌法? |
36楼: | >>参与讨论 |
作者: iC921 于 2006/3/16 1:42:00 发布:
看错了。。。 |
37楼: | >>参与讨论 |
作者: iC921 于 2006/3/16 1:43:00 发布:
不,是想错了 |
38楼: | >>参与讨论 |
作者: hotpower 于 2006/3/16 2:25:00 发布:
我觉得多用1根IO控制省心些. 电容的选取与数据0xff+停止位的个数有关. |
39楼: | >>参与讨论 |
作者: 12分 于 2006/3/16 8:47:00 发布:
我的图我自己测试没问题啊。我自己还作了感光板。 看这个图,232-485,自动换向,不能自发自收。 05年做的,上边打的日期。 |
40楼: | >>参与讨论 |
作者: 12分 于 2006/3/16 8:51:00 发布:
原理图也发了吧,不保留了,以便于大家使用。 这只是一个参考,我想方法还是很多的只要能实现功能。 |
41楼: | >>参与讨论 |
作者: 12分 于 2006/3/16 8:55:00 发布:
hotpower真疯狂! 竟然半夜还在线。 “hotpower 发表于 2006-3-16 02:25 通信技术 ←返回版面 ”。 大家都太能熬夜了。 佩服。 |
42楼: | >>参与讨论 |
作者: computer00 于 2006/3/16 9:30:00 发布:
楼上的这样也行?那如果要发0xFF时,它能可靠的处于发射状态? |
43楼: | >>参与讨论 |
作者: 12分 于 2006/3/16 10:02:00 发布:
不要忘记了起始位和结束位。 0xff固然全是高电平,但起始位和结束位呢? |
44楼: | >>参与讨论 |
作者: 12分 于 2006/3/16 10:09:00 发布:
另外这个电路115200的波特率我是试过的。 现在经常用这个模块调试东西。当然也有不稳定的时候,例如用于全双工通讯。方便就在于它基本能够实现半双工通讯。 |
45楼: | >>参与讨论 |
作者: suncilang 于 2006/3/16 11:10:00 发布:
ding |
46楼: | >>参与讨论 |
作者: computer00 于 2006/3/16 12:34:00 发布:
晕……不知道你的发射状态是如何维持的。。。。 你把波特率降低,并发送0xFF试试?看它能不能收到???? |
47楼: | >>参与讨论 |
作者: hotpower 于 2006/3/16 12:45:00 发布:
我晕菜~~~"结束位"也算"数",不保持减低速率玩完 一般高电平有个上升过程,下降速度很快. 哈哈...菜农昨晚休眠了不到4小时,梦中惊醒---笔记本丢了.. www.21icbbs.com/club/bbs/ShowAnnounce.asp?v=&ID=2016009I2C总线忽悠记 哈哈,实际是4:30休眠... www.21icbbs.com/club/bbs/ShowAnnounce.asp?v=&ID=2016015晕菜~~~开工了... * - 本贴最后修改时间:2006-3-16 12:52:01 修改者:hotpower |
48楼: | >>参与讨论 |
作者: yuhw 于 2006/3/16 13:06:00 发布:
我昨晚就是按这个图测试的,9600波特率,有错,奇怪 |
49楼: | >>参与讨论 |
作者: atam 于 2006/3/16 21:07:00 发布:
奇怪 电路好象存在问题 |
50楼: | >>参与讨论 | ||||
作者: iC921 于 2006/3/18 3:15:00 发布:
倒,强烈要求晕! 如果是中继器你怎么办? ================= hotpower 发表于 2006-3-16 02:25 通信技术 ←返回版面 我觉得多用1根IO控制省心些. 电容的选取与数据0xff+停止位的个数有关. ================== 这个图,当然是不行的。 ----------
|
51楼: | >>参与讨论 |
作者: hotpower 于 2006/3/18 7:36:00 发布:
再晕这个电路即使能用也不可靠 Q1的开关波形决定了收发状态. |
52楼: | >>参与讨论 |
作者: luyinkai 于 2006/3/18 11:23:00 发布:
自动识别方法 自动识别数据流方向很简单!在TXD端接一反相器至发送/接受控制端,就可以实现自动识别了!呵呵...原理与12分发的那个图一样!此方法绝对可靠,本人已应用6年了! |
53楼: | >>参与讨论 |
作者: keypad 于 2006/3/18 15:20:00 发布:
不跳出来说两句憋的不行了。 luyinkai的说法不对,12分的图也有问题,你的产品用了6年了,你试过1200米吗,你试过300Baud下发0xFF吗,(没有攻击的意思,只为实正看不下去,如题。)说实话,靠偏置电阻拉电平,几十米可以,再远就死了。我的产品原来也跟12分的一样,几个月用下来,我只能跟每个客户陪理说你把距离限制近一点,干扰少一点,线粗一点,最后只好全改了,教训啊。这时候,你还敢说偏置有用吗?实验室你测试的那点距离有超过10米吗?解决方案有二: 1. hotpower 发表于 2006-3-16 02:25 通信技术 ←返回版面 我觉得多用1根IO控制省心些. (多个几块钱的单片机不算什么,你看看市面上那些专业卖转换器的,那个不是好几百,可人家就稳定,就有人买,我认为值。) 2.computer00 发表于 2006-3-15 14:32 通信技术 ←返回版面 重新画了一个,如此更好,省掉我外接一个反向器。 (就是圈圈的那个黄图,此图原理完全正确,我没试过好用不,思路就是要加延时反相器,但此电路的缺点是要根据波特率来计算电容大小,因为300和115200简直差的天上地下,要么就加跳线帽选择电容来适应高低两个波特率。注:2400以下为低波特率,以上为高波特率。) 以上为我的观点,有不同意见的,向我开火。 * - 本贴最后修改时间:2006-3-18 15:23:52 修改者:keypad |
54楼: | >>参与讨论 |
作者: yuhw 于 2006/3/18 21:49:00 发布:
请keypad大侠详细说一下,用io控制如何判断收发方向呢 |
55楼: | >>参与讨论 |
作者: computer00 于 2006/3/18 23:12:00 发布:
方向最好由软件通讯之后才决定,这样比较可靠。 因为它是半双工,就得按半双工来设计。 例如只有收到指令后,才能发送数据。 这样的电路,单靠电路是很难解决问题的。 就像我给的那个图,如果两端同时发,也可能会发生冲突的。只是这样的几率比较少而已。 另外,如果已经收到启始位,但一个字节还未收完,这时软件是不知道的,如果它发一个 数据出去,由于485被设定在接收状态,这个发送的数据就丢了。 |
56楼: | >>参与讨论 |
作者: iC921 于 2006/3/18 23:23:00 发布:
软件控制应该更容易冲突 computer00 发表于 2006-3-18 23:12 通信技术 ←返回版面 方向最好由软件通讯之后才决定,这样比较可靠。 .................。 就像我给的那个图,如果两端同时发,也可能会发生冲突的。只是这样的几率比较少而已。 另外,如果已经收到启始位,但一个字节还未收完,这时软件是不知道的,如果它发一个 数据出去,由于485被设定在接收状态,这个发送的数据就丢了。 |
57楼: | >>参与讨论 |
作者: maoqichun 于 2006/3/18 23:40:00 发布:
RS485芯片通讯方向本来就该软件控制. 一般可将DE和RE连在一起由一个IO控制就行了,在发送时置高,接收时置低. RS485多机通讯时由协议配置为一个讲者,多个听者,点名回答问题.不会出现两端同时发送的状态.发送端发送完毕,都处于接收状态. |
58楼: | >>参与讨论 |
作者: iC921 于 2006/3/19 13:42:00 发布:
假如是一个中继器怎么办? 那时不可能用I/O控制的,因此,问题不可避免地存在! -------------------------- maoqichun 发表于 2006-3-18 23:40 通信技术 ←返回版面 RS485芯片通讯方向本来就该软件控制. 一般可将DE和RE连在一起由一个IO控制就行了,在发送时置高,接收时置低. RS485多机通讯时由协议配置为一个讲者,多个听者,点名回答问题.不会出现两端同时发送的状态.发送端发送完毕,都处于接收状态. |
59楼: | >>参与讨论 |
作者: maoqichun 于 2006/3/19 19:49:00 发布:
从严格意义上讲RS485标准本身并不含485中继 RS485标准本身并不含485中继,后来为了扩展的需要才引入485中继器,这样它不可避免的带来了触发延迟和补偿延迟. |
60楼: | >>参与讨论 |
作者: iC921 于 2006/3/19 21:58:00 发布:
没办法读到这个规范(不是标准) 费了九牛二虎之力也不行。 ------------------------ 规范只规定电气特性,当然不会包括中继器。但只要被一个中继器分割就产生多一个485。规范也不是不允许中继器。 在此,延时问题不是主要的,关键是I/O不能到达。 |
61楼: | >>参与讨论 |
作者: maoqichun 于 2006/3/19 22:22:00 发布:
问IC921,英语里规范和标准分别怎么说? 再问我们常说的国标是什么? 我不认为这两种说法有明显的不同.倒是觉得有点鸡蛋里挑骨头的感觉.汉语里一个意思可能有多种表达方式. 网上搜索一下"RS485标准"也许有很多,我相信不是我一人在这样称呼. |
62楼: | >>参与讨论 |
作者: maoqichun 于 2006/3/19 22:35:00 发布:
网上剪贴 RS-232、RS-422与RS-485标准及应用 一、RS-232、RS-422与RS-485的由来 RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制 订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品 之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232 通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s, 传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接 收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标 准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向 通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保 护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是 以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或 协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建 立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的SONY与松下对录像机的 RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公 开的,而ProLINK则是基于PROFILE上的。 二、RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低 速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯 图1 收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2 脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间 摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无 数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为 2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15 米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱 动器负载为3~7kÙ。所以RS-232适合本地设备之间的通信。其有关电气参数参见表1。 规定 RS232 RS422 R485 工作方式 单端 差分 差分 节点数 1收、1发 1发10收 1发32收 最大传输电缆长度 50英尺 400英尺 400英尺 最大传输速率 20Kb/S 10Mb/s 10Mb/s 最大驱动输出电压 +/-25V -0.25V~+6V -7V~+12V 驱动器输出信号电平 负载 +/-5V~+/-15V +/-2.0V +/-1.5V 表1 三、RS-422与RS-485串行接口标准 1.平衡传输 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使 用一对双绞线,将其中一线定义为A,另一线定义为B,如图2。 图2 通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2 ~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中 这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能” 端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0” 的第三态。 接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收 端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收 器接收平衡线上的电平范围通常在200mV至6V之间。参见图3。 图3 2.RS-422电气规定 (负载最小值) 驱动器输出信号电平 (空载最大值) 空载 +/-25V +/-6V +/-6V 驱动器负载阻抗(Ù) 3K~7K 100 54 摆率(最大值) 30V/ìs N/A N/A 接收器输入电压范围 +/-15V -10V~+10V -7V~+12V 接收器输入门限 +/-3V +/-200mV +/-200mV 接收器输入电阻(Ù) 3K~7K 4K(最小) ≥12K 驱动器共模电压 -3V~+3V -1V~+3V 接收器共模电压 -7V~+7V -7V~+12V RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。 图5是典型的RS-422四线接口。实际上还有一根信号地线,共5根线。图4是其DB9连接器引脚 定义。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输 线上连接多个接收节点,最多可接10个节点。即一个主设备(MASTER),其余为从设备 (Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为 4k,故发端最大负载能力是10×4k+100Ù(终接电阻)。RS-422四线接口由于采用单独的发 送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式 (XON/XOFF握手)或硬件方式(一对单独的双绞线)。 RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。其平衡双绞 线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的 距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为 1Mb/s。 RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不 需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。 RS-422有关电气参数见表1 3.RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如 都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式, 二线制可实现真正的多点双向通信,参见图6。 而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(MASTER) 设备,其余为从设备,但它比RS-422有改进, 无论四线还是二线连接方式总线上可多接到32 个设备。参见图7。 RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而 RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑鳵S-422是4k健; 旧峡梢运 礡S-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。 RS-485有关电气规定参见表1。 RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞 线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在 图4 图5 图6 图7 很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s。 RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需 终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 四、RS-422与RS-485的网络安装注意要点 RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。网络拓扑一般采 用终端匹配的总线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点: 1.采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长 度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。图8所示为实际应用中常见 的一些错误连接方式(a,c,e)和正确的连接方式(b,d,f)。a,c,e这三种网络连接尽 管不正确,在短距离、低速率仍可能正常工作,但随着通信距离的延长或通信速率的提高, 其不良影响会越来越严重,主要原因是信号在各支路末端反射后与原信号叠加,会造成信号 质量下降。 2.应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情 况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧 靠在一起安装,再者是过长的分支线引出到总线。 总之,应该提供一条单一、连续的信号通道作为总线。 图8 五、RS-422与RS-485传输线上匹配的一些说明 对RS-422与RS-485总线网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以 不用考虑终端匹配。那么在什么情况下不用考虑匹配呢?理论上,在每个接收数据信号的中 点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上 难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率 和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向 传输所需时间的3倍以上时就可以不加匹配。例如具有限斜率特性的RS-485接口MAX483输出信 号的上升或下降时间最小为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWG PVC电 缆),那么只要数据速率在250kb/s以内、电缆长度不超过16米,采用MAX483作为RS-485接口 时就可以不加终端匹配。 一般终端匹配采用终接电阻方法,前文已有提及,RS-422在总线电缆的远端并接电阻, RS-485则应在总线电缆的开始和末端都需并接终接电阻。终接电阻一般在RS-422网络中取100 Ù,在RS-485网络中取120Ù。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗 大约在100~120Ù。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率, 对于功耗限制比较严格的系统不太适合。 另外一种比较省电的匹配方式是RC匹配,如图9。利用一只电容C隔断直流成分可以节省 大部分功率。但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。 还有一种采 |
63楼: | >>参与讨论 |
作者: keypad 于 2006/3/20 9:39:00 发布:
IO控制方向就是常态处于485接收, 当232有数据发时单片机检测到有发送,IO打开RS485发送使能,送完后再关断。当然无法处理232发送的同时485有接收,这需要软件来控制,485只实现了一个平台,会不会数据冲突当然要你软件来控制,你的设计就要安排好一个人讲话,所有人听的方式。 |
64楼: | >>参与讨论 |
作者: linxinchun 于 2006/3/20 12:27:00 发布:
我以前在华为电气做过一个 纯硬件实现,应用中还没碰到过问题是华电装备部中用过最稳定的一个,以前买亚当模块又极贵又没我做的稳定. * - 本贴最后修改时间:2006-3-20 12:29:05 修改者:linxinchun |
65楼: | >>参与讨论 |
作者: maoqichun 于 2006/3/20 20:41:00 发布:
RS485中继器设计针对某一固定波特率传输则相对简单 若要大范围速率兼容,则对芯片和电路的响应速度有较严的要求.响应速度越快,兼容性越好. |
66楼: | >>参与讨论 |
作者: iC921 于 2006/3/20 23:25:00 发布:
我错了,只得夹着**逃跑了 ………… |
67楼: | >>参与讨论 |
作者: wcx8229 于 2006/3/21 16:18:00 发布:
nice 这样的气氛很好撒.我来学习的哈 |
68楼: | >>参与讨论 |
作者: yewuyi 于 2006/3/22 13:05:00 发布:
坐会…… |
69楼: | >>参与讨论 |
作者: ryan999 于 2006/3/22 18:21:00 发布:
ttyy |
70楼: | >>参与讨论 |
作者: gxlujd 于 2006/3/22 20:27:00 发布:
我认为应该是这样 平时485-DI为高电平,三极管9014饱和导通,DE/RE为低电平,SP485处于接收状态; 当有数据需要发送,485-DI变为低电平,三极管9014截止,DE/RE为高电平,SP485处于发送状态; 发送的数据中遇到低电平,三极管9014截止,DE/RE为高电平,SP485处于发送状态,此时DI接地,所以往总线发送的数据电平是低电平,与数据逻辑电平一致; 发送的数据中遇到高电平,三极管9014饱和导通,DE/RE为低电平,SP485处于接收状态,而由于2个680R上下拉电阻的存在导致总线为高电位,其他站点读到的就是数据高电平,与发送的数据逻辑电平一致; |
71楼: | >>参与讨论 |
作者: infree 于 2006/3/22 20:31:00 发布:
关于驱动能力的问题 这是以前的一个计算过程,大家看一下,有什么问题没有(电路见附图,使用TX控制倒向端部分未画出--另外最好使用IC来控制--这样就会只有ns级的通过延迟时间)。 偏置电阻的计算按如下方式: 设A(RS85+),B(RS485-)线被两端终接即并了2个120欧姆的电阻,整个总线连接的节点为32个,每个节点的输入阻抗为12K欧姆,则相当于32个12K欧姆的电阻又和个120欧姆的电阻相并接,等效电阻为51.72欧姆。所有节点均处于接收状态时,要通过这些偏置电阻将AB线间电压差拉到200mV,这样就需要3.8mA的电流。则+5V和GND间串接的电阻应为5/(0.0038)=1293欧姆。减去线间电阻51.72欧姆,为1241欧姆,再分配给上拉和下拉,则两个偏置电阻应为600欧姆(电流提高为约4mA)。 对于发送器工作时的影响:发送器(RS485标准)的发送电压最小为1.5V(54欧姆负载),则其输出驱电流最小为27mA,远大于偏置电流4mA,所以偏置电阻不会影响发送器的正常发送。 这样算下来,驱动能力是没有问题的(只要接上合适的偏置电阻),另外还有就是这种电路最好不要在一条485总线上多用,我们使用的就只是在主站方。 还有网友提到会有毛刺(切换时),我在使用中(300~115200BPS)的速率下,没有发现明显的毛刺(有贴中说300BPS就有问题,我未看明的什么原理,呵呵),并且是接了32个从站,当然是近距离的。对于长距离,我只能说驱动能力没有问题,至于说到干扰,我想是所有形式的收发电路都会遇到的问题,不是这种电路独有的,只能从接地,接线方式等方面多考虑了。 * - 本贴最后修改时间:2006-3-22 20:35:53 修改者:infree |
72楼: | >>参与讨论 |
作者: iC921 于 2006/3/23 20:59:00 发布:
楼上说的“切换”到底是什么情形? 有点不解…… -------------- 还有网友提到会有毛刺(切换时),我在使用中(300~115200BPS)的速率下,没有发现明显的毛刺(有贴中说300BPS就有问题,我未看明的什么原理,呵呵),并且是接了32个从站,当然是近距离的。 * - 本贴最后修改时间:2006-3-23 20:59:46 修改者:iC921 |
73楼: | >>参与讨论 |
作者: iC921 于 2006/3/24 2:29:00 发布:
圈圈的图还是存在问题 具体的问题你虽然考虑到了,但问题是(不管是不是高速传输),可能因触发开通时间影响导致最早发送数据会丢失和损坏,因为C1和R3是有时间常数的,它最少要考虑连续接收高电平时的问题,正如你们上面讨论的。 期待完善中 |
74楼: | >>参与讨论 |
作者: computer00 于 2006/3/24 2:47:00 发布:
充电时间远小于放电时间。 可以认为在瞬间就充好电了。 |
75楼: | >>参与讨论 |
作者: infree 于 2006/3/24 16:53:00 发布:
“切换”是指MAX485从收转成发或由发转成收。 由于使用TXD过反向器来控制,存在一定的通过延迟,会使发出的信号波形发生畸变,但现实应用中发现并不严重。 ---以下是引用 iC921 发表于 2006-3-23 20:59 通信技术 ←返回版面 楼上说的“切换”到底是什么情形? * - 本贴最后修改时间:2006-3-27 15:48:16 修改者:infree |
76楼: | >>参与讨论 |
作者: etiller 于 2006/3/24 17:05:00 发布:
如果加个小单片机控制的话 就不能适应各种波特率了,真正的自动转换根本不是infree说的那样简单的 |
77楼: | >>参与讨论 |
作者: infree 于 2006/3/25 9:43:00 发布:
可能因为我只是自己用所以就简单吧! 大家这里在谈到自动转换时,好像没有说要使用单片机控制吧!说使用单片机的是建议不使用自动转换的。 --^_^ “专业无源/有源/隔离/非隔离RS232转RS485/RS422生产销售” -->这些东西我朋友也都做着玩过,也看过别人板子,感觉原理都差不多。不知道你们做的有什么高深之处。当然,即使有也不方便说的,呵呵,理解。 * - 本贴最后修改时间:2006-3-25 9:50:54 修改者:infree |
78楼: | >>参与讨论 |
作者: iC921 于 2006/3/25 23:07:00 发布:
充电时间受制于Q1的导通电阻 应当有一些影响有考虑。 总的来看,真正传输数据前先打开驱动器的条件不应改变,只有这样才能保证数据可靠地传输(按常规就是这样做的)。 打开驱动器的时间总是要占用时间的,要求还必须是低电平,高电平不起任何作用。同时,直接用数据打开驱动器是不可取的,这样做有损坏数据的危险。可以这样说,设计思路上与使用I/O口先打开DE再发送数据的思路是一样的。为了达到不需要I/O干预,那么就需要使用专门的开启机制解决吧。 开启驱动器可以通过线与让I/O控制先送出或先送一个字节开启代码。线与的方法优点是之一占用时间少又类似常规机制(第二个优点是节省光耦,即在线路采用光隔离措施时能与数据线共用一个光耦),但必须在发送真正的数据前及时退出。为了及时准确控制,感觉用单稳态触发器为好。 |
79楼: | >>参与讨论 |
作者: iC921 于 2006/3/25 23:15:00 发布:
多谢infree,你说的延迟,不知道是怎么样的图? 看了一遍,好象没看到你贴有图。主要是要看用什么形式的反相器……另外,从上下文看,好象你最后打漏一个字(见括号处) ----------------------------------- infree 发表于 2006-3-24 16:53 通信技术 ←返回版面 “切换”是指MAX485从收转成发或由发转成收。 由于使用TXD过反向器来控制,存在一定的通过延迟,会使发出的信号波形发生畸变,但现实应用中发现并( 不 )严重。 ---以下是引用 |
80楼: | >>参与讨论 |
作者: infree 于 2006/3/27 16:05:00 发布:
谢谢提示 谢谢iC921的提示,我把那个贴子修改了一下。 看了你上一下贴子,感觉你说的那些还是比较正确的。只是我们讨论这些问题可能要将传输速率限制在一个合适的水平以下。如果是在115.2K,数据的单bit位宽约8uS,而TXD通过74HC05的延迟约为25ns,MAX485的控制延迟约为70ns,这样合计造成单个bit的信号损失为(25+70)/8000=1.18%, 一般UART是对一个比特进行16次采样的,这1%的损失应该不会对其中任何一次造成影响。另外以上的计算可能是实际情况的2倍,因为对于一个0比特,虽然在下降沿部分造成了损失,但是因为前述两个延迟同时也作用于上升沿,这就会延长0电平时间,减少了0电平的宽度损失。 这是我的计算方法,还请大家指正。 |
81楼: | >>参与讨论 |
作者: yuhw 于 2006/3/29 22:12:00 发布:
我现在用rts控制方西 rts信号通过MAX3232转换电平后接485的方向使能端,232这边平时处于接收状态,实际发现,232这端有时会多处00或ff,或者在接收485端的数据时,最前面也会多出00或ff,不知什么原因。 |
82楼: | >>参与讨论 |
作者: infree 于 2006/3/31 9:02:00 发布:
会不会是因为总线上没有发送器驱动造成的? 如果所有接口均处于接收状态,则可能接收到乱码。所以一般会在A,B线上加偏置电阻来防止这种情况。(可见以前大家发的帖子)。 |
83楼: | >>参与讨论 |
作者: sillboy 于 2006/4/4 10:51:00 发布:
好,正好用到 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |