引言
工业现场经常要采集多点数据,模拟信号或开关信号,一般用到RS485总线,使用一主带多从的通信方式,该种方式接线方便只需要两根屏蔽电缆线,通信距离远最大可支持1500m,加中继器还可延长通信距离,采用差分信号方式抗电磁干扰好。但该方式通信速度不能太快,一般采用主从召唤的方式采集各子单元的数据,即主单元依次召唤各子单元(见图1),召唤到哪个单元哪个单元上传数据,总线的使用权完全由主单元分配,各子单元不能擅自占领总线。如果系统的单元多,主单元循环采集一周的时间就很长,子单元信息变化时不能及时发送给主单元,导致系统对突变事件的反应处理速度慢。本文通过总线状态检测、从机主动上发的方式解决。
图1 常规RS485总线主从方式接口图
硬件设计
整个系统由主单元和多个子单元组成(图2),主单元包括:ARM7微控制器、程序存储器、数据存储器、与子单元通信RS485、与主单元通信RS485、系统电源和通信隔离电源;子单元包括:MSP430单片机、与子单元通信RS485、系统电源和通信隔离电源。
图2 系统框图
主单元
ARM微控制器是主单元的核心,采用三星32位ARM7TDMI内核芯片S3C44B0,该芯片最高处理速度可达76MHZ,总线开放,可外扩程序存储器FLASH和数据存储器SDRAM,该系统外扩了SST公司生产的39VF1601和现代生产的HY57V641620HG,2个UART串行接口,使用ADI的隔离RS485芯片ADM2483进行接口电平转换,总线状态检测使用74HC125三态门芯片。
子单元
子单元的微控制器使用TI的MSP430F133单片机,该单片机处理速度可达8MHz,8K字节片内FLASH存储,256K字节片内SRAM。
电源电路
电源电路采用开关电源供电,开关电源输入电压范围比较宽,输出直流电压5V,通过SP1117-3.3和SP1117-2.5芯片输出3.3V电源。RS485需要的隔离5V电源通过DC-DC模块得到。
总线检测电路
总线状态检测使用74HC125三态门芯片和单片机的两个I/O(图3),当系统都不使用总线时,每个单元的74HC125都输出高阻状态,此时总线为低电平,当有单元要使用总线时,他首先检测总线状态,如果总线为低电平,该单元迅速把74HC125改为输出状态,此时总线变为高电平,该单元占领总线,往总线上发送数据,发送数据完成再把74HC125改为高阻状态。如果检测到总线是高电平,等待检测,直到总线变低后再占领总线。
图3 总线检测电路
隔离485电路
使用ADI的ADM2483芯片进行接口电平转换(图4),该芯片属于隔离485,双电源供电输入输出隔离。
图4 隔离485电路
软件设计
主机程序部分需要实现各从机上传数据的接收、处理和上传。主机接收子单元信息通过一个RS485串口实现,数据格式为16进制,数据位8位,1 个起始位,1个结束位,无寄偶校验位,波特率9600bps。采用串行口中断的方式接收,主机程序初始化完成后等待各从机发送信息,当主机接收到第一个字节后,判断该字节是否为设备号,如果不是设备号,接收个数清零,如果是设备号继续接收第二个字节;判定第二个字节是否为正确的功能码,如果功能码错误,接收个数清零重新接收,功能码正确;接收第三个字节,该字节为从单元发送信息的字节个数x,计算从单元发送总字节个数为M=X+3+2,3个开头字节和2个 CRC校验码,主机接收到M个字节后,首先判断CRC校验码是否正确,错误舍弃所有信息,正确则把从单元的信息保存到数据区,该次接收结束,主机继续等待接收。
信息的上传通过一个RS232串口实现。当主机接收到从机信息后,进行数据的处理,发现从单元信息发生变化,主机准备把从机信息发送到上位机,首先重新初始化发送缓冲区,然后通过中断的方式依次发送信息到上位机,发送信息包括设备号、功能码、发送字节个数、信息字节和CRC校验码。
主机单元接收数据流程图示于图5。
图5 程序流程图
结语
笔者所设计的系统实现了开关信号的多点监测,一个主机单元,32个从机单元,每个从机单元监测32个开关,该系统共可监测1024个开关,使用 9600bps的波特率。采用主从召换的方式,开关信号监测的反应时间一般要用20-30s,使用该种总线检测的方式,开关信号的反应速度最慢也不超过 1s,快时只有几百ms,大大提高反应时间,并且由于不用时时召唤,总线数据流少,提高了总线的稳定性。
参考文献:
1. 李朝青著,PC机及单片机数据通信技术,北京航空航天大学出版社
2 田泽著,嵌入式系统开发与应用,北京航空航天大学出版社
关键字:RS485总线 设备号 功能码 CRC校验 上位机 电平转换 三态门 ARM微控制器 内核芯片
引用地址:
提高RS485总线通信速度的一种设计
推荐阅读最新更新时间:2024-03-30 21:26
专用于ARM的NI LabVIEW嵌入式模块进行嵌入式系统教学
通过一系列面向机器人开发的实验室实践课程与团队项目,吸引电子工程和 计算机 科学学院的同学们积极投入嵌入式系统设计。 The Solution: 采用专用于ARM 单片机 的NI LabVIEW嵌入式模块,对连接到iRobot Create移动机器人平台的Cortex-M3单片机编程,使得同学们可开发一个嵌入式系统,与具有实时约束的真实世界进行交流。 加州大学伯克利分校工程师采用专用于ARM单片机的NI LabVIEW嵌入式模块,对连接到iRobot Create移动机器人平台的Cortex-M3单片机编程,使得同学们可开发一个嵌入式系统。 "通过使用LabVIEW,同学们可以更快地开发复杂的功能,使
[单片机]
ARM9微控制器LPC3180的软硬件平台设计
摘要 介绍以Philips LPC3180微控制器为核心的嵌入式软硬件平台设计;对系统设计的硬件部分和软件部分进行详细的分析,并针对LPC3180芯片特性着重讨论了其软件系统构建以及系统启动流程。实验结果表明,LPC3180嵌入式系统平台结合片内硬件浮点运算单元,具有高性能的浮点运算处理能力,可满足复杂的嵌入式应用场合的要求。
关键词 LPC3180 ARM9 软硬件平台
嵌入式应用系统设计包括硬件平台和软件平台两部分。前者是以嵌入式微控制器/微处理器为核心的硬件系统;后者则是围绕嵌入式操作系统构建的软件系统。两者在设计上是密不可分的,并且需要在设计之间进行权衡优化,根据实际应用进行外扩和裁剪。
基于ARM92
[单片机]
STM32F4学习笔记11——CRC循环冗余校验
关于CRC校验有以下几个方面 1.模2除(也就是异或)。 2.多项式与二进制关系(x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0,x的最高幂次为R,转换成对应的二进制数有R+1位。)。 CRC基本原理 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)
[单片机]
英特尔:2007年前90%笔记本采用双核处理器
5月2日消息,据外电报道,全球最大的计算机芯片制造商英特尔公司透露说,与单核芯片相比,今年第二季度公司将开始制造更多的双核芯片。 到今年年底,在笔记本电脑的微处理器中将有90%的产品是双内核处理器。这一双内核处理器的比例超过了公司先前的预期。 先前英特尔公司曾经表示,从目前开始,到2007年将有70%的笔记本电脑处理器是双核“ Yonah ”双内核处理器。同时部分产品将采用 “ Merom ”双内核处理器。 上周英特尔公司宣布“ Merom ”双内核处理器发布的时间将提前。这款芯片将在今年八月份投放市场,先前公司曾表示“ Merom ”双内核处理器发布的时间为今年第四季度。英特尔公司希望单核处理器向双核处理器
[焦点新闻]
rs485数据总线雷击过压防护技术介绍
rs485数据总线雷击过压防护 1.rs485总线的应用领域 工业控制,dcs,数据采集系统 高速公路收费系统 过程控制及制造 电力系统采集与控制系统 远程终端互连 2. 雷击过压防护的必要性 由于rs485总线实行长距离传输(1200米以上),而且其传输线通常暴露于户外,因此极易因为雷击等原因引入过电压。而rs485收发器工作电压较低(5v左右),其本身耐压也非常低(-7v~+12v),一旦过压引入,就会击穿损坏。在有强烈的浪涌能量出现时,甚至可以看到收发器爆裂,线路板焦糊的现象。 3. 防护方法及原理 以上为rs485总线的两级防护电路图。当雷击发生时,感应过电压由t与r端引入,g1.g2进行共模防护,g3进行差模保护,此时过
[嵌入式]
CRC16校验程序
//CRC16校验在通讯中应用广泛,这里不对其理论进行讨论,只对常见的3种 //实现方法进行测试。方法1选用了一种常见的查表方法,类似的还有512字 //节、256字等查找表的,至于查找表的生成,这里也略过。 // ---------------- POPULAR POLYNOMIALS ---------------- // CCITT: x^16 + x^12 + x^5 + x^0 (0x1021) // CRC-16: x^16 + x^15 + x^2 + x^0 (0x8005) #define CRC_16_POLYNOMIALS 0x8005 // ------
[单片机]
基于采用ARM+单片机+CPLD/FPGA的设计方案
0 引 言 传统的数据采集系统一般采用单片机,系统大多通过PCI总线完成数据的传输。其缺点是数学运算能力差;受限于计算机插槽数量和中断资源;不便于连接与安装;易受机箱内电磁环境的影响。这些问题遏制了基于PCI总线的数据采集系统的进一步开发和应用。因此,需要一种更为简便通用的方式完成采集系统和计算机数据的交互。 数据采集系统性能的好坏,主要取决于它的精度和速度。在保证精度的条件下应尽可能地提高采样速度,以满足实时采集、实时处理和实时控制的要求。实践表明,采用ARM 32位嵌入式微处理器作为控制器,用USB(通用串行总线)和上位机连接构成的数据采集系统能大大提高系统数据处理的能力,降低对PC机和接口速度的依赖。
[单片机]
EPM7128在TMS320LF2407A系统中电平转换的应用
作者Email: xuelei_51@126.com
摘要:TMS320LF2407A采用了高性能静态CMOS技术,使得供电电压降为3.3V,减小了控制器的功耗。但是系统中依然存在很多5V供电的芯片,因此这个系统中就不可避免地存在不同供电电压的模块。为了适应混合电压系统,采用CPLD(EPM7128)实现DSP(TMS320LF2407A)与5V器件接口。
关键词:CPLD(CPLD);DSP(DSP);混合电压(MultiVolt)
1. EPM7128SLC84-15简述
EPM7128SLC84-15是Altera公司推出的MAX7000S 系列的CPLD(Complex Programmable Logic
[半导体设计/制造]