怎样提高RS485总线通信速度
工业现场经常要采集多点数据,模拟信号或开关信号,一般用到RS485总线,使用一主带多从的通信方式,该种方式接线方便只需要两根屏蔽电缆线,通信距离远最大可支持1500m,加中继器还可延长通信距离,采用差分信号方式抗电磁干扰好。但该方式通信速度不能太快,一般采用主从召唤的方式采集各子单元的数据,即主单元依次召唤各子单元,召唤到哪个单元哪个单元上传数据,总线的使用权完全由主单元分配,各子单元不能擅自占领总线。如果系统的单元多,主单元循环采集一周的时间就很长,子单元信息变化时不能及时发送给主单元,导致系统对突变事件的反应处理速度慢。本文通过总线状态检测、从机主动上发的方式解决。
步骤/方法
- 01
ARM 微控制器是主单元的核心,采用三星32位ARM7TDMI 内核芯片S3C44B0,该芯片最高处理速度可达76MHZ,总线开放,可外扩程序存储器FLASH 和数据存储器SDRAM,该系统外扩了SST 公司生产的39VF1601和现代生产的HY57V641620HG,2个UART 串行接口,使用ADI 的隔离RS485芯片ADM2483进行接口电平转换,总线状态检测使用74HC125 三态门芯片。
- 02
总线状态检测使用74HC125三态门芯片和单片机的两个I/O,当系统都不使用总线时,每个单元的74HC125都输出高阻状态,此时总线为低电平,当有单元要使用总线时, 他首先检测总线状态,如果总线为低电平,该单元迅速把74HC125改为输出状态,此时总线变为高电平,该单元占领总线,往总线上发送数据,发送数据完成再把74HC125改为高阻状态。如果检测到总线是高电平,等待检测,直到总线变低后再占领总线。
- 03
使用ADI 的ADM2483芯片进行接口电平转换,该芯片属于隔离485,双电源供电输入输出隔离。
- 04
系统实现了开关信号的多点监测,一个主机单元,32个从机单元,每个从机单元监测32个开关,该系统共可监测1024个开关,使用9600bps 的波特率。采用主从召换的方式,开关信号监测的反应时间一般要用20-30s,使用该种总线检测的方式,开关信号 的反应速度最慢也不超过1s,快时只有几百ms,大大提高反应时间,并且由于不用时时召唤,总线数据流少,提高了总线的稳定性。