RS485串行通讯

2024-06-02

RS485串行通讯(精选7篇)

RS485串行通讯 第1篇

上世纪70年代, 同时出现了串行通信和并行通信。经过时间的检验, 并行通信, 由于位同步问题和干扰问题已经逐步被淘汰。串行通信接口标准则经过实践的考验并得到了长足的发展, 演化为诸多串口通许标准, 如:USB、SAS、SATA、RJ-45 (以太网卡接口) 均来源于串行通讯①, 最初的串口标准RS232则是所有串口通讯的前身和基础。近年来随着物联网、智能家居、高性能单片机等技术和市场的发展, RS-232也是老树开花, 再次被广泛应用。本文首先对RS-232、RS485接口进行详细的说明, 然后说明他们之间的转换。最后对常见串行通讯技术做个简单的对比阐述供初学者借鉴。

二、RS-232接口

RS-232是最早出现的串行通讯接口, 也是其他串口通讯的基础。1970年由美国电子工业协会 (EIA) 联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定了用于串行通讯的标准, 该标准采用一个25脚的DB-25连接器。后来IBM的PC机将RS232简化成了DB-9连接器, 从而成为事实标准。虽然纯粹的RS-232接口已经少见, 但是许多的串口通讯技术保持了相同的时序和操作方法。

RS-232采取不平衡传输方式, 即所谓单端通讯。收、发端的数据信号是相对于信号地。典型的RS-232信号在正负电平之间摆动。RS-232是为点对点通讯而设计的, 其驱动器负载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信, 最大传输波特率为256000, 最大传输距离约15米, 传输速度随传输距离增大而减小。

在PC机上, 不管是unix (含linux) 系统还是windows系统, 均把串口通信进行了封装, 我们对串口的操作简化为文件操作, 只不过, 和普通文件相比, 它在打开文件后, 需要设定串口通讯参数, 并需要处理好串口读写的超时问题。通常在PC机上串口的读写由独立的线程完成, 在需要读写串口时, 读写线程启动, 对串口进行初始化, 然后循环关注串口, 当读到数据后, 产生消息通知主线程。

在单片机上, 情况相对复杂, 有的开发平台也进行了封装, 有的没有, 不管是否封装, 操作方法都不大相同, 需按照单片机或开发平台的数据手册执行。但是89C52兼容机均可以通过对串口寄存器的操作来完成的, 这个过程中的核心是以下几个问题:1、通讯模式设定;2、波特率发生器 (定时器) 的选择和设定;3、波特率的计算和设定;4、控制寄存器进行数据通讯。

通讯模式有4种:1、同步位移串行, 在该模式1帧信息8位, 即8位数据位;2、8位异步波特率可变, 在该模式1帧信息10位, 1个起始位, 8位数据位, 1个停止位;3、9位异步, 在该模式1帧信息11位, 1个起始位, 8位数据位, 1个可编程位, 1个停止位;4、9位异步波特率可变, 1帧信息11位同模式3。

需要特别说明的是由于信号的电平标准不同, 不能单片机的串口直接接在COM口 (即DB-9接口) 的对应针脚上, 必须通过电路转换。常见的转换芯片有MAX232芯片, 每个MAX232芯片可以完成两组DB-9到TTL的转换 (电路图可以参见MAX232 Data Sheet, 此处略) 。在实际应用中, 直接用COM口加转换芯片的情况并不多见, 更多的情况是用USB接口模拟COM口, 其另一端直接就是单片机所用的TTL电平信号。

三、RS-422和RS485接口

RS-422标准全称是“平衡电压数字接口电路的电气特性”, 它推出不久就发展了更高级的RS-485。它们相对于RS-232最大的优点有:首先是多机通讯, 一主多从的通讯方式, 允许一条总线上可以连接多达32个设备;其次大大延伸了通讯距离, 通讯距离从十几米延伸至上千米。再次是通许速率大大提高, 最高传输速率为10Mbps。另外, 由于其驱动电压也从25V降到6V, 这样也就延长了接口电路的芯片的寿命;最后是连线方式也大大简化, 从原来的9线, 变为两线制 (不含信号地。以前RS485也有四线制接法, 该接法为全双工, 但是只能实现点对点的通信方式, 现很少采用) 。由于PC机多数没有RS485接口, 在实际中RS485很少独立使用, 而是通过转换器将DB-9接口的RS-232转换成RS-485接口转换器, 采用屏蔽双绞线传输。RS-485其典型的连线方式如图1。

需要注意485总线必须要单点可靠接地。单点就是整个485总线上只能是有一个点接地, 不能多点接地, 因为将其接地是因为要将地线 (一般都是屏蔽线作地线) 上的电压保持一致, 防止共模干扰, 如果多点接地适得其反。另外在在低速、短距离、无干扰的场合可以不要匹配电阻, 相反必须有120欧的匹配电阻。

由于在一条总线上有多个设备, 为了防止多个设备同时发出信息而相互干扰 (撞包) , 一主多从时, 只能半双工通讯, 如果从机要上报信息, 只能等待主机轮询到该从机时, 才可以发送信息, 而主机发出的信息包所有从机都可接收到信息, 所以主机发出的信息包中要有从机地址码, 以便从机辨识发送给自己的信息包。

四、RS232、RS485和TTL之间的转换

RS232和RS485的时序是相同的, 只有电平标准不同, 所以只要通过转换电路将两者之间电平之间转换即可。转换电路见图2:

在这个电路中MAX232芯片将RS232转换为TTL信号, MAX485芯片将串口TTL信号转换为RS485标准。

五、其他常见串口标准

其他和单片机相关的常见的串口通讯技术和标准有:I2C、CAN、SPI/QSPI、USB、TTL等。其中TTL不是串行通讯技术, 它是计算机处理器控制的设备内部, 各部分之间通信的电平标准, +5V等价于逻辑“1”, 0V等价于逻辑“0”。USB作为PC机最常用的外设接口, 可以在PC机端模拟串口, 但是其另一端不是标准RS232口, 而是TTL信号。在上边提到的技术中I2C、CAN由于时序不同, 所以无法通过电路转换成RS232标准。

在通讯距离上I2C和TTL通常是一块主板上的不同芯片间的通讯, SPI/QSPI和USB通常是在几米的通讯距离;CAN控制器局域网属于现场总线的范畴, 是一种有效支持分布式控制系统的串行通信网络。通信距离最远可达10KM (速率低于5Kbps) 速率可达到1Mbps (通信距离小于40M) , 可用于汽车、舰船上的设备控制。

参考文献

[1]http://baike.baidu.com/view/1060187.htm

[2]http://baike.baidu.com/link?url=w4227e1zf PIEl P21j3odp8_p XB5VW3ak Rp ZMVn Cb2Qk IYhq NH1Rlvmjzl GBJE_ERTBIUYv Zwr Jv VKPWK3TLIZqxnu EACSc Ud Cps7pp EC2x TVu T8j Om5t ERu2bbhj I-Tr Oa3633-khn TIVJd DMMp Ifq

RS485串行通讯 第2篇

RS-485串行总线作为工业控制总线的一种形式, 使用一对双绞线作为控制总线, 线路简单, 传输距离远, 组网灵活, 稳定性高, 目前已经被广泛应用在多种监控系统中。

对广播电视发射机房的监控, 目前主要集中在发射机监控和机房环境系统的监测、监控两方面, 要求系统有较好的稳定性, 较强的可操作性, 人机界面友好, 易于管理维护。

由于发射机厂商一般都可以提供相对完善的监控系统, 本文主要论述机房环境系统的监测、监控。

2 系统结构

广播电视发射机房的环境监控系统需监测的项目主要有:市电、柴油发电机组、蓄电池、空调、门禁等的工作状态以及机房温度、湿度等环境状态, 并根据监测到的信息执行不同的操作。

由于监控项目相对简单, 项目之间关联性不大, 控制器通信可以使用主/从技术, 即仅一主设备 (MASTER) 能初始化传输 (查询) , 其他从设备 (SLAVE) 根据主设备查询提供的数据做出相应的反应。

MODBUS串行链路协议作为国家标准, 是一个技术上比较成熟的主/从协议, 在检测、监控等方面有着广泛的应用, 能够方便地进行系统的组建。

图1所示为我台某高山发射站的监控系统结构图。该系统使用2条RS-485串行总线 (线程A、线程B) , 以主/从方式工作, 一个主设备多个从设备, 每个从设备具有唯一的识别地址 (ID) 。监控计算机作为主设备, 不断向总线上的从设备发送操作请求, 从设备接受请求后对其做出响应。由于通信协议有所差别, 且模块较多, 为了减小时延, 增加系统的稳定性, 将电控仪表和其他设备分开为两条总线分别控制。

3 硬件设计

电源部分的监控主要采用智能电力监控仪表, 由于该仪表已提供了可使用标准MODBUS协议的RS-485串行总线接口, 在硬件上无需进行更改, 就可以直接整合到RS-485串行总线控制网络中。

其他设备不支持RS-485接口标准, 需要采用数据采集和控制模块进行系统的构建和整合, 以提供接入RS-485串行总线网络的硬件支持。通过选型, 采用了较为可靠的台湾泓格I-7000系列分布式I/O模块。该系列模块支持工业级多点RS-485网络, 支持热插拔, 具有3000V的隔离能力, 且易于安装和接线。每个I-7000系列模块设置一个ID, 作为RS-485网络中的一个独立的从设备。

在广播电视发射机房中, 由于发电机房相对独立、简单, 其监控设备中既有智能电力监控仪表, 又需要用到7000系列分布式I/O模块, 具有相当的代表性, 下面对其进行详细的介绍 (硬件连接图见图2) 。

(1) 门禁系统

门禁系统主要用于监测门、窗的开、关状态。发电机房有1扇双开的铁门和3个窗, 在门、窗上共安装了5对门磁开关, 通过门磁开关提供门、窗的开关状态值, 使用1块I-7052D (8通道全隔离数字量输入模块) 进行开关信号的检测。

(2) 温湿度控制系统

共使用了2块I-7063D (3通道继电器输出/8通道数字量输入模块) 对发电机房的温度、湿度进行数据采样。首先用传感器将温度、湿度转变成电信号, 送到I-7063D, 进行检测。另外, 为防止机房水浸, 还需要在地板低洼处安装一定数量的传感器。系统根据检测到的湿度值, 控制是否开启抽湿机及开启抽湿机的数量。

(3) 柴油发电机组控制系统

我们使用的柴油发电机组是沃尔奔达的VP500, 内置了捷克科迈公司的控制模块CP-660, 由该模块对发电机组进行监控, 其功能主要有:

(1) 自动、手动启动发电。

(2) 三相电压、电流、转速、频率等参数的检测和显示功能。

(3) 高水温、低油压、过流过压等保护停机及报警功能。

(4) 提供ATS信号给溯高美 (SOCOMEC) 自动转换柜, 进行市电和发电的切换。

由于CP-660本身已经拥有相当完善的检测和控制功能, 并提供开放式MODBUS协议, 在构筑系统时可以直接利用, 以降低系统的复杂性。

发电机组本身配备了自动电源切换柜 (ATS) , 根据检测到的停电、缺相、过压等信息, 自动实现发电和转电。使用1块I-7063D与ATS柜联接, 检测其工作状态, 并通过控制ATS柜对发电机组进行控制。

在系统设计和安装时, 有几个问题需要重点加于考虑。首先是电源问题, 主要是旱季和雨季、白天和晚上的电压差比较大, 系统的稳压范围要宽。其次是机房在高山上, 必须做好防雷击措施, 以防止损坏设备。第三是系统需要在大功率电磁辐射的环境中工作, 要做好接地、屏蔽等抗干扰措施。

4 软件实现

监控软件首先要解决的是底层的通信问题, 也即要能通过串口转换 (RS-232转RS-485) 实现在串行总线上的稳定通信。为此, 需要直接用VC++编写底层代码访问RS-232串口, 利用事件对象 (CEvent) 阻塞其他线程对串口的访问请求, 直到数据读写完成。

智能电力监控仪表支持RTU模式的MODBUS协议, 每个MODBUS包都由地址域、功能码域、数据域和校验域4个部分组成 (见图3) 。将智能电控仪表抽象为类 (Class) , 将所有操作封装在类中, 制作成动态链接库供监控程序使用。

对于I-7000系列模块, 直接利用厂商提供的动态链接库来进行通信, 其通信采用的是ASCII码的方式 (见图4) , 与RTU模式相比, 多了起始码和结束码。

监控程序结构如图5。程序首先运行主线程, 由主线程启动用户界面, 并完成与用户界面的通信。同时启动2个工作线程, 它们各自负责1条RS-485串行总线上的设备。工作线程通过调用库函数以顺序循环方式对相应总线上的设备发送请求, 响应后处理接收到的数据并送回主线程, 再由主线程将数据送到用户界面上显示。

下面仍以发电机房监控系统为例进行说明。

当主线程没有操作请求时, 工作线程顺序读取各设备的状态数据, 并将数据送回, 此时, 可能出现2种状态: (1) 若数据在设定范围内, 则循环执行读取操作 (图6-a) 。 (2) 若数据超出设定范围, 则执行预设操作, 比如当湿度超出设定范围, 就开启抽湿机, 然后继续顺序读取各设备的状态数据, 当全部数据回复到设定范围后, 结束预设操作, 进入下一轮循环。

当用户界面有操作请求时, 工作线程掠过没有操作指令的其它设备, 仅给待操作设备发送操作请求, 读取该设备的操作结果, 并直接返回 (图6-b) 。以指令发电为例, 其操作请求的具体实现如下:工作线程接到用户发电的指令后, 在下一次进入循环时掠过所有没有操作指令的设备, 直接与发电机的CP-660通信, 根据其状态数据判断可以执行发电操作后, 按设定的发电程序发电, 待检测到电压、周波等参数合格后, 控制ATS柜转电, 并读取状态数据以判断发电操作是否完成, 之后返回, 进入下一轮循环。操作失败及其它异常的处理放在循环读取数据的函数中。

本程序采用了一个工作线程对应一个串口操作的方式, 与采用一个物理设备对应一个线程的方式相比, 少了线程间复杂的相互通信和相互协调, 容易实现线程控制, 编程相对简单, 而对设备顺序循环操作的方式已经可以满足广播电视发射机房的监控要求。

由于采用计算机进行机房环境监控, 只要在计算机中添加网络模块, 利用现有的光纤或微波通道, 就可以方便地利用网络实现异地远程监控。

5 结束语

机房环境对保护机器设备起到非常关键的作用, 机房监控系统是广播电视发射技术里不可缺少的一个组成部分, 科学、合理的监控系统在提高设备工作稳定性、安全性, 减少人员工作量等方面将起到非常重要的作用。

摘要:广播电视传输、发射设备对机房环境要求比较高, 需要对供电、温度、湿度等参数进行24小时监控。本文介绍了基于RS-485总线的发射机房监控系统。该系统利用RS-485串行总线、MODBUS串行链路协议与受控设备进行通信, 通过监控软件实现设备的计算机实时监控。

RS485串行通讯 第3篇

目前多机串行通信是通信控制领域的主流通信方式,数据通信、计算机网络、分布式工业控制系统及其测控领域中,经常采用串行通信来达到信息交换的目的。多机串行通信控制网络是物理层采用RS 485通信接口所组成的多机串行通信工控设备网络,RS 485 既是物理层的协议标准,也是串行通信接口的电气标准。这种通信接口可以十分方便地将许多设备组成一个控制网络。RS 485通信方式有很多优点,首先它的通信距离比较远,通常可以做到数百米甚至千米以上,而且还可以实现多点通信方式,从而可以建立一个小范围内的局域网,因而更有实用价值。RS 485采用差模信号传输方式,与地电平关系不大,因而它抗干扰的能力比较好,即便在信号电压比较小的情况下也能获得稳定的传输。

1总体方案及硬件设计

该电子开关系统的设计要求主机能够与从机之间进行地址确认并相互通信,从机能够准确检测到被测信号,主机能够接收从机传来的数据信号,并通过液晶显示器和发光二极管显示,同时采用RS 485总线主从机可以实现长距离通信。主从机采用的主要核心芯片均为单片机[1,2],考虑单片机性能及实际运行环境的需要,选用AT89S51单片机,串行通信网络结构如图1所示。

(1) 主机使用主要器件:AT89S51 MAX485 1602LCD LED RESISTORS CAP CRYSTAL;

(2) 从机使用主要器件:AT89S51 MAX485 RESISTORS CAP CRYSTAL

主机主要功能:

(1) 与从机之间进行地址确认。

(2) 查询从机是否有信号(从机检测被测量时产生的相应的数据信号)发送到主机。

(3) 通过液晶显示发送信号的从机地址,同时可以通过发光二极管显示信号的级别(这里两个发光二极管分别代表两个行程开关的亮灭)。

从机主要功能:

(1) 与主机之间进行地址确认。

(2) 检测被测量,并将被测信号数据发送给主机。

主机主要有两大功能模块:液晶显示模块用来显示从机地址编号,所使用的器件为1602LCD,RS 485串行通信模块用来实现与从机之间的远距离串行通信,使用MAX485芯片来实现。

从机的主要功能模块为RS 485串行通信模块用来完成与主机之间数据的发送和接收。

2设计实现原理

主从机均采用的是AT89S51单片机,它是一个低功耗,高性能CMOS 8位单片机,片内含4 KB的可反复擦写1 000次的FLASH只读程序存储器。单片机的XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。本电子开关设计外接12 MHz晶振。

主从机均使用单片机2个全双工串行通信口外接MAX485芯片来完成与从机之间的串行通信,由串行口控制寄存器SCON设置串行口的工作方式、监视串行口工作状态、发送与接收的状态控制等。P3.0/RXD为串行通信接收端,P3.1/TXD为串行通信发送端。

主机端口P0.0~P0.7作为液晶显示器的数据线,P0口上拉10 kΩ电阻与1602液晶的D0~D7数据端相连,P3.7 与使能端E相连,P3.6与读/写信号线RW相连,P3.5与寄存器选择端RS相连。P1.0和P1.1引脚接两个发光二极管,用来显示从机发送信号的级别。

从机P1.0和P1.1引脚分别接到一级行程开关和二级行程开关,用来检测两个开关的状态,最终由从机P1.0和P1.1这两个引脚将行程开关的状态发送到主机,主机读取状态值并且显示。

主机通过轮询的方式,当主机查询n号从机时,与n号从机进行地址确认,并判断n号从机是否有信号产生,如果没有,主机将查询n-1号从机,如果有信号产生,主机接收到信号并存储该从机的主机编号,分别通过发光二极管和液晶显示出来,如果n-1号从机继续有信号产生,主机继续接收,直到接收完毕,主机将查询n-2号从机,如此往复。从机的个数可以在主机程序中对从机个数n值进行设定。

2.1 多机串行通信及通信协议[3]

电子开关的设计核心主要通过单片机的多机串行通信来实现。

2.1.1 发送器和接收器

AT89S51串行口主要由发送器、接收器和串行控制寄存器组成。发送器主要由发送缓冲寄存器SBUF和发送控制器组成。接收器主要由接收缓冲寄存器SBUF,接收移位寄存器和接收控制器组成。

2.1.2 串行口控制寄存器

串行口控制寄存器SCON用于设置串行口的工作方式、监视串行口工作状态、发送与接收的状态控制等。它是一个既可字节寻址又可位寻址的特殊功能寄存器。控制寄存器SCON的格式如下:

电子开关中单片机串行口控制寄存器SCON各位设置如下:

主机SCON设置:1 0 0 1 1 0 0 0 = #98H

从机SCON设置:1 0 1 1 0 0 0 0 = #0B0H

2.1.3 工作方式的选择

本电子开关单片机串行通信工作方式选择为工作方式2,在方式2下,串行口工作在11位异步通信方式。一帧信息包含一个起始位“0”,八个数据位,一个可编程第九数据位和一个停止位“1”。其中可编程位是SCON中的TB8位,在八个数据位之后, 可作奇偶校验位或地址/数据帧的标志位使用,由使用者确定。

波特率的选择:方式2的波特率是固定的。

若PCON中SMOD=0,速率=fosc/32

若PCON中SMOD=1,速率=fosc/64

该设计中:波特率为9 600 b/s。

2.1.4 实现原理及流程

多机通信[4,5]主要靠主、从机之间正确地设置与判断多机通信控制位SM2和发送或接收的第9数据位(D8)。

电子开关多机串行通信的实现流程:

(1) 主从机均初始化工作方式2,主机置SM2=0,允许中断,从机置SM2=1,REN=1。

(2) 主机置REN=1,TB8=1,将地址信息发送给从机,并等待是否发送完毕,从机等待主机发送地址。

(3) 从机接收到地址与本机地址核对,核对正确,置SM2=0,向主机发送应答地址并等待发送完毕,主机接收之后进行地址确认,并置TB8=0。

(4) 从机地址发送完毕后,接着发送信号数据并等待发送完毕。

(5) 主机接收到数据将从机编号发送到液晶显示,将信号数据发到发光二极管显示信号级别。

2.1.5 主从机之间地址确认

主从机在进行数据通信之前,首先进行地址确认,其目的就是让主机知道哪号从机向主机发送数据。主机首先发送n号从机地址编号#0FFH,所有从机接收到主机发送的地址后与各自的地址进行核对,地址不是#0FFH的从机将继续等待主机的呼叫,核对正确的从机向主机发送本机的应答地址,主机收到从机的应答地址后进一步做出判断,确认是否是n号从机的地址。地址确认正确之后,主机与n号从机进行数据通信,直到数据通信完毕,主机将呼叫下一号从机。

2.1.6 避免多从机与主机通信产生数据冲突

一个主机与多个从机进行串行通信的时候,如果当某一从机有数据时向主机发送,这时可能出现两个,三个或者更多从机同时产生数据,需要同时向主机发送,这样就会导致数据通信的冲突问题。该电子开关的设计采用主机轮询从机的方式,从而有效避免了主从机数据通信冲突的问题,主机先呼叫n号从机,地址确认之后,是n号的从机应答并与主机进行通信,其余从机处于等待状态,主机接收n号从机数据,并判断该从机是否继续有数据发送,此时其他从机若有数据只能处于排队等待中,不会对主机产生干扰,主机接收完毕后将n号从机地址减1,呼叫n-1号从机,如此反复轮询各个从机。主机轮询的过程是很快的,从机检测到被测信号的时候也能得到及时的处理。如图2所示。

2.2 多RS 485串行通信模块

RS 485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A,B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。如果以10 Kb/s速率传输数据时传输距离可达12 m,而用100 Kb/s速率传输数据时传输距离可达1.2 km。如果降低波特率,传输距离还可进一步提高。

实现RS 485串行通信[6]只需给主机和每个从机接各接一片MAX485芯片,其接收器的输出端RO和驱动器的输入端DI,只需分别与单片机的RXD和TXD相连即可;RE¯和DE端分别为接收和发送的使能端,当RE¯为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;在主机电子开关中使用单片机的P3.4 引脚控制MAX485的RE¯和DE两端,如图3所示。

A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。

可靠性措施[7,8]如下:

复位时,主从机都应该处于接收状态。

控制端RE¯,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。

同时将A和B端之间加匹配电阻,一般可选120 Ω的电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应与总线的特性阻抗相当。

接收和发送的使能端RE¯和DE的引脚控制在程序中的实现,主机部分程序如下:

……

M1:

SETB P3.4 ;引脚P3.4置1,为发送状态

MOV SBUF,#02H ;呼叫02号从机发送地址

L1:

JBC TI,L2 ;判断TI是否为1,从而转入接受状态

SJMP L1

L2:

CLR P3.4 ;引脚P3.4置0,处于接受状态

JBC RI,S1

SJMP L2

S1:

MOV A,SBUF

……

2.3 液晶显示模块

液晶显示模块选用1602液晶,1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。电子开关上使用1602液晶显示,是用来显示发送信号数据的从机编号,某一从机检测到信号时将会显示:

Fault Machine is : ***(001号,002号,003号……)

1602主要引脚定义如下:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。

主机接收到某一从机发来的一级或二级信号时,将此从机的编号发送至液晶显示出该从机的编号。主机首先对地址编号值进行百十个位分离,然后在液晶上逐位显示。

百十个位分离程序如下:

USING 0

MOV R7,60H

MOV A,R7

MOV B,#100 ;分离出百位

DIV AB

MOV 10H,A ;将百位值存放在10H单元里

MOV A,#10 ;余数继续分离十位和个位

XCH A,B

DIV AB

MOV 20H,A ;将十位值存放在20H单元里

SWAP A

MOV 40H,B ;将个位值存放在40H单元里

ORL A,B ;将十位和个位拼装成BCD码

MOV R7,A

显示程序如下:

……

MOV p0,#0C0H

ACALL ENABLE ;调用写指令

MOV A,10H(/20H/40 H) ;分别送入百十个位值

ADD A,#30H

MOV P0,A ;将百十个位送至液晶显示

SETB RS ;写数据时序

CLR RW

CLR E

……

主机RS 485通信与液晶显示电路原理图如图3所示。

3电子开关的功能及应用

该电子开关[9,10]从功能上主要分为主机和从机电子开关两部分。

主机主要完成数据的接收和处理,以及将最终结果状态显示出来,从机电子关主要完成信号的检测,同时将数据发送给主机,整个系统的搭建由一个主机和一个或多个从机电子开关组成,从机电子开关的数量可以根据实际情况的需要而定。

因该电子开关要应用到传送带位置跑偏的检测中,从机电子开关要安装在一个档杆机构(如图4,图5所示)中,每个档杆机构中内部都有两个行程开关,根据所要求的信号级别,分别将它们设置为一级行程开关和二级行程开关,档杆通过凸轮机构与行程开关相连,从机电子开关的两个数据输入线接到两个行程开关上即可。

该电子开关主要针对大中型传送带传送过程中位置跑偏的检测而设计完成,同样也可以应用到其他相关的设备及场合的位移量及跑偏量的检测。在传送带两侧已确定位置放置从机电子开关,当传送带传送过程中某处有一定量的位置跑偏,会通过档杆触动一级行程开关,产生一级触发信号,并将信号传送到从机电子开关,从机电子开关检测到并将其发送到主机处理,主机负责显示产生故障的从机编号及故障级别,以供工作人员了解到传送带何处产生一级跑偏,并对传送带做出相应调整,同理传送带某处产生二级跑偏量的时候,将会由从机电子开关将二级信号发给主机显示。

传送带上的安装结构示意图如图5所示。

4运行状态及结果

当1号从机所连接的行程开关档杆机构中1级行程开关被按下时,1号从机检测到一级故障信号,与主机进行地址确认之后,并向主机发送数据,此时主机上液晶显示器上显示:Fault Machine is:001 (故障从机编号为001), 同时发光二级管有一个显示灯熄灭(正常状态下两个发光二极管处于发光状态),同理若是2号从机检测到故障信号时,运行结果如图6所示。

5结论

该电子开关采用了单片机多机串行通信原理而设计,由RS 485模块和1602液晶显示模块组建的小型电子开关系统,在工业控制中,多机串行通信的应用越来越广泛,可以在此电子开关设计的基础上开发功能更强的基于RS 485总线的多机串行通信的电子开关相关产品,以应用于工业控制,检测等及其他领域中。

摘要:针对大中型传送带传送过程中位置跑偏的检测,设计了基于RS 485单片机多机串行通信的电子开关。介绍了该电子开关的总体方案及硬件电路设计,该电子开关采用RS 485通信,不仅抗干扰能力好,并能够实现长距离通信且可以避免多个从机同时与主机通信时产生数据冲突的问题。实验表明,该电子开关结构简单、性能稳定,可应用于工业控制、检测等领域中。

关键词:RS 485,单片机,串行通信,电子开关

参考文献

[1]李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1996.

[2]张振荣,晋明武.MCS-51单片机原理及应用[M].北京:人民邮电出版社,2000.

[3]林雪梅,彭佳红,姚志成.单片机多机通信协议的设计[J].微计算机信息,2006(5):24-26.

[4]詹平红,李红星.基于双单片机的串行通信设计与应用[J].计算机与通信信号,2010,19(6):52-54.

[5]陈铁军,谢春萍.PC机与RS485总线多机串行通信的软硬件设计[J].现代电子技术,2007,30(5):103-105.

[6]彭娜,黎英,林庆超,等.基于RS485总线主从通信协议及其实现[J].云南大学学报:自然科学版,2007(z2):259-262.

[7]陈斌.基于RS485的单片机多机通信技术[J].电子产品世界,2005(14):91-94.

[8]朱志伟,周志光,鲍祖尚.RS485总线通信系统的可靠性措施[J].单片机与嵌入式系统应用,2006(3):68-70.

[9]徐文武,蔡本晓.一种基于光电识别的插卡式电子开关的设计[J].电子与封装,2009(9):25-27.

RS485通讯连接方式及其应用 第4篇

RS485通讯目前在矿区的高压变频技术改造中已普遍应用。如实施变频改造的主副井提升绞车电控系统、主通风机变频改造电控系统等场所, 不少电控制过程都使用了RS485通讯方式。它的应用, 使得控制系统功能更加完善、方便、快捷。

1 RS485接口方式

RS485通讯采用的是差分信号负逻辑控制模式, 即2~6V表示“0”, -6~-2V表示“1”。RS485通讯有两线制和四线制2种接线方式。四线制只能实现点对点的通信方式, 现已很少采用。两线制接线方式是目前采用较多的为总线式拓朴结构, 在同一总线上最多可挂接32个节点。RS485通讯网络中, 一般采用的是主从通信方式, 即1个主机带多个从机。很多情况下, 连接RS485通讯链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来, 却忽略了信号地的连接。此连接方法在许多场合下虽能正常工作, 但也埋下了很大的隐患。

RS485通讯连接不好存在的隐患原因有2方面问题: (1) 共模干扰问题。RS485接口采用差分方式传输信号, 并不需要相对于某个参照点来检测信号, 系统只需检测两线之间的电位差即可。但人们往往忽视了收发器有一定的共模电压范围。RS485收发器共模电压范围为-7~12V, 只有满足上述条件, 整个网络才能正常工作。当网络线路中共模电压超出此范围时, 就会影响通信的稳定可靠, 甚至损坏接口。 (2) EMI问题。也就是发送驱动器输出信号中的共模部分需要一个低阻的返回通道 (信号地) , 否则就会以辐射的形式返回源端, 整个总线就会像一个巨大的天线向外辐射电磁波。

由于PC机默认的只带有RS232接口, 也只有2种方法可以得到PC上位机的RS485电路: (1) 通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号 (对于情况比较复杂的工业环境最好选用防浪涌带隔离栅的产品) ; (2) 通过PCI多串口卡, 可以直接选用输出信号为RS485类型的扩展卡。

2 RS485的布网

网络拓扑一般采用终端匹配的总线型结构, 不支持环形或星形网络。所以在构建网络时, 应注意以下问题:采用一条双绞线电缆作总线, 将各个节点串接起来。从总线到每个节点的引出线长度应尽量短, 以便使引出线中的反射信号对总线信号的影响最低。有些网络连接尽管不正确, 在短距离、低速率仍可能正常工作, 但随着通讯距离的延长或通讯速率的提高, 其不良影响会越来越严重。主要原因是信号在各支路末端反射后与原信号叠加, 会造成信号质量下降。注意总线特性阻抗的连续性, 在阻抗不连续点就会发生信号的反射。总线的不同区段采用了不同电缆, 或某一段总线上有过多收发器紧靠在一起安装, 再者是过长的分支线引出到总线。这3种情况都容易产生不连续性。总之, 布网时应提供一条单一、连续的信号通道作为总线。

在RS485组网过程中还有一个需要注意的问题, 那就是终端负载电阻。设备少、距离短的情况下, 不加终端负载电阻整个网络能很好的工作, 但随着距离的增加性能将降低。从理论上讲, 在每个接收数据信号的中点进行采样时, 只要反射信号在开始采样时衰减到足够低就可以不考虑匹配, 但实际上难以掌握。当信号的转换时间 (上升或下降时间) 超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配了。

一般的终端匹配都采用终端电阻方法。RS485也应在总线电缆的开始和末端都并接终端电阻。终端电阻在RS485网络中取120Ω, 相当于电缆特性阻抗的电阻, 因为大多数双绞线电缆特性阻抗大约在100~120Ω。这种匹配方法简单有效, 但有一个缺点, 匹配电阻要消耗较大功率, 对于功耗限制比较严格的系统不太适合。另外一种比较省电的匹配方式是RC匹配。利用一只电容C隔断直流成分可以节省大部分功率。但电容C的取值又是个难点, 需要在功耗和匹配质量间进行折衷。还有一种采用二极管的匹配方法, 这种方案虽未实现真正的“匹配”, 但它利用了二极管的钳位作用能迅速削弱反射信号, 达到改善信号质量的目的, 节能效果明显。

近年来, 有些企业将信息化管理工作延伸到了车间、办公室、控制室, 根据局域网的现状, 就推出了串口服务器来取代多串口卡。这主要是利用了企业已有的局域网资源, 既减少了线路投资, 又节约了成本, 也相当于通过tcp/ip把多串口卡放到现场。

3 RS485电缆连接

RS485通讯在一般场合下的连接, 采用普通的双绞线即可。要求比较高的环境下, 采用带屏蔽层的同轴电缆连接。在使用RS485接口时, 对于特定的传输线路, 从RS485接口到负载, 其数据信号传输所允许的最大电缆长度与信号传输的波频率成反比。该长度数据主要是受信号失真及噪声等影响。在传输过程中可以采用增加中继的方法对信号进行放大, 一般最多可以加9个中继, 也就是说理论上RS485的最大传输距离可以达到9.6km。当需要长距离传输时, 可以采用光纤为传播介质, 收发两端各加一个光电转换器。多模光纤的传输距离能达5~10km, 若采用单模光纤传输, 可达50km的传输距离。

4 RS485与其它总线网络的区别

工业网络可归结为3类:即RS485网络、HART网络和现场总线网络。

4.1 RS485网络

RS485/MODBUS是现在比较流行的一种布网方式, 其特点是实施简单、方便。另外, RS485的转换接口便宜, 而且种类繁多。

4.2 HART网络

HART是由艾默生公司提出的一个过渡性总线标准。其主要是在4~20m A电流信号上面叠加数字信号, 物理层采用BELL202频移键控技术, 以实现部分智能仪表的功能。但此协议不是一个真正意义上开放的标准, 要加入他的基金会才能拿到协议, 需要一定的费用。这项技术主要被国外几家大公司垄断。现在有很大一部分的智能仪表都带有HART圆卡, 具备HART通讯功能。由于HART通讯速率低组网困难等原因, HART仪表的采购量将会呈下降趋势。

4.3 现场总线网络

RS485串行通讯 第5篇

一、智能电表RS-485通讯接口故障的原因分析

1. RS-485通讯接口规约有差异

不同的厂商在生产智能电表RS-485通讯接口时, 对其规约的要求有所不同, 使得RS-485通讯不能达到统一, 导致有的数据能够采集到, 而有的数据却无法进行采集。

2. RS-485芯片的型号不同

由于不同的厂商生产的智能电表RS-485通讯接口的芯片型号是不一样的, 从而造成了智能电表RS-485通讯接口的电平高低强弱不同, 从而严重的影响力RS-485的正常通讯。

3. 屏蔽电缆的抗干扰性能差

智能电表RS-485通讯接口出现故障的原因还在于屏蔽电缆的抗干扰性能差。没有合理、有效的把屏蔽电缆的屏蔽功能发挥出来, 使它的屏蔽功能大大的降低, 从而影响了智能电表RS-485通讯接口的抗干扰性能。

4. 电缆沟内电磁场将强

电缆沟内的电磁场较强也会导致智能电表RS-485通讯接口发生故障, 没有让屏蔽电缆的屏蔽功能充分的发挥出来, 降低电磁场对智能电表RS-485通讯接口的影响, 反而增加了对屏蔽电缆通讯率的影响。

二、RS-485通讯接口故障的解决办法

1. 强化对RS-485接口的通讯管理

我们通过大量的实验调查发现, 同一型号的智能电表不会发生通讯故障, 然而, 不同的厂商生产出来的智能电表RS-485通讯接口存在很大的差异性。所以, 必须要求智能电表的厂商采用与各个公司相匹配的电能量管理系统的RS-485规约, 并且要在校表台上反复试验合格后方能投入使用。

2. RS-485通讯接口输出电平强弱不同

如果智能电表RS-485通讯接口输出的电平强弱不同也会对通讯造成很大的影响。所以, 我们要求智能电表的生产商必须生产统一型号的RS-485芯片, 并且不断创新能力, 提高RS-485芯片的质量。并且要经过校表台的数据测试合格后才能将其投入使用, 从而保证RS-485接口的通讯质量, 使其能够进行正常的通讯工作。

3. 根据电压的等级分别接入通讯接口

智能电表RS-485通讯接口还可以通过将电压按照等级高低分别接入通讯接口的方式来减少故障。智能电表RS-485可以将3各接口的采集终端依据电压高低分别接入通讯接口, 避免其出现互相交叉的情况, 从而使RS-485每个接口的通讯率都得到了显著的提高。

4. 为屏蔽电缆穿上PVC管

智能电表RS-485还可以通过为屏蔽电缆穿上PVC管的方式来提高它的屏蔽功能。提升屏蔽电缆的屏蔽功能不仅可以确保屏蔽电缆免受外界的干扰, 从而能保证屏蔽电缆能够进行正常的数据传输功能的目的。

5. 合理利用屏蔽电缆的接地点

在进行屏蔽电缆的施工以及安装过程中, 必须要保证屏蔽电缆的接地点是非常好的, 确保其屏蔽功能能够得以很好的发挥。从而大大减少了外界对屏蔽电缆的影响, 使得智能电表RS-485通讯接口能够进行高质量的数据传输。

6. 调低终端的速率

智能电表RS-485还可以通过调低采集终端速率的方式来减少故障。降低采集终端的采集速率, 将原先的9600bps降至4800bps或者2400bps, 以达到提高智能电表RS-485通讯接口传输数据距离的目的, 提高采集终端采集数据的能力。

7. 增加安装长线收发器

智能电表RS-485可以在敷设较长的屏蔽电缆之间加装一个长线收发器, 用来提升智能电表RS-485屏蔽电缆传输信号的强度, 从而提高其数据传输的能力, 确保智能电表能够安全、正常的进行工作。

8. 降低电缆的负电平

智能电表RS-485可以将终端电缆的最后一块连接在电表的末尾一端, 使得屏蔽电缆B相端口的通讯线直接接在地上, 从而大大降低了整个电网的负电平, 同时也降低了电缆沟内电磁场对智能电表RS-485的影响, 使其的数据传输能力的传输能力得到了大大的提高。

三、结束语

电能量管理系统中RS-485通讯接口的故障能够得以完善的解决, 不仅可以提高电能量管理系统的终端采集率, 还可以提高各公司计算线损时间的统一性和数据的可靠性。由于电能量管理系统实施了远程抄表, 不仅实现了抄表时间的一致性, 同时计费智能电表进行数据保存, 还大大减少了不必要的人力、物力、财力的浪费, 同时还能很大程度上的减少人为抄表的误差, 进而提高工作效率, 为公司带来颇丰的经济效益。还由于智能电表RS-485通讯接口实现了远程负荷监察功能, 可以及时的发现智能电表RS-485通讯接口的故障并及时解决, 从而有效的保证了智能电表RS-485通讯接口能够安全、稳定的运行工作。

参考文献

[1]计晓怡.智能电能表常见故障的研究和分析[D].华北电力大学, 2012, (23) :22-24.

RS485串行通讯 第6篇

在实际的工业生产中, 一般一个PLC控制一台机器, 人们可以按照生产工艺需要改变其控制逻辑, 不同的机器按相应的工艺需要进行布置, 以达到生产目标。但当生产系统变得庞大而复杂时, 就需要各个机器之间的协同工作, 传递各个生产单位的运行状态和生产数量, 以便于实现产品的监控和售后服务。因此需要实现PLC之间的通讯, 且通讯要同时具备可效性和实时性。就目前而言, 还没有一种标准的通讯协议可以直接采用。但串口通讯RS485使它成为一种可能, 它被大多数PLC生产商采用, 成为一种底层通信接口, 具有稳定可靠, 编程简单, 组网快, 价格低等优点。相比较而言, 它比RS232可连接的设备多, 比Internet通信方式便宜。因此, 文章主要专注于RS485的通信协议设计, 使其具有普适性, 可以应用与不同PLC之间的互连互通。

1 RS485总线

RS-485标准采用半双工工作方式, 以平衡发送和差分接收方式实现通信, 支持多点连接。具有传输距离远 (最大传输距离可以达到1200m) , 传输速度快 (1200m时可以达到100kb/s) , 布线简单等优点。由于传输线通常使用双绞线, 所以它具有极强的抗共模干扰的能力。

2 协议的设计与实现

连接数台PLC, 以其中一台PLC为主机, 其他PLC为从机, 应用RS485通信让主机读取各从机的相关状态, 并显示在触摸屏中, 实现整个系统的实时监控。本案中采用4台OMRON PLC CJ2M-CPU12为例, 通讯卡采用CJ1W-SCU41。

系统物理连接如图1所示。

PLC之间的通信必须设置为无协议通信方式, 参数一般可以按实际需要任意设置。如:参数形式可以设置为无起始位, 8位数据长度, 无停止位, 偶校正, 数据缓冲区为默认值0。

无协议通信指令包括端口设定指令STUP, 发送指令TXD/TX-DU和接受指令RXD/RXDU。STUP指令用于设定串行端口通信参数, 数据传送指令TXD/TXDU用于向串口端口传送数据, 数据接受指令RXD/RXDU用于从串口端口读取数据。无协议通信方式能够发送和接受数据的最大量为259Byte, 包括起始码和结束码。使用无协议通信的发送进行通讯时, 在数据发送和接收指令中必须指定发送数据的起始字节位置和接收数据的起始字节存储位置, 还必须指定串行端口, 数据发送和接受时的字节顺序, 并指定发送和接受的具体字节, 这些都需要在发送和接受指令的控制字里进行设定。为了使数据发送和数据接收保持一致, TXDU和RXDU中采用了同样的控制字。当通讯卡CJ1W-SCU41的串行端口1空闲, 并且内部总线端口闲置时, 触发相应内部继电器后, 就可以按照控制字中设定的方式, 发送出指定位置的数据。如果接收方的相应串行端口空闲, 并且端口计数器检测到新的数据, 通过一小段接收延时后, 开始按照控制字的方式, 接收所有的数据到指定的地址存储。RXDU有两个作用:当数据检测正确时, 可以把存储的数据做进一步的处理;如果数据不正确时, RXDU可以用作清空串行端口的接收寄存器, 便于下一次接收新的数据。

对于简单的PLC通信可以采用PC-LINK来相互传递数据, 但受限于连接继电器区 (LR区) 大小的限制, 这种连接只能传递少量数据, 并且很难保证传递的可靠性。而使用无协议通信协议构建的系统, 不仅可以灵活的确定传递数据量的大小, 而且其相应的检测机制也能大大提高数据传递的可靠性。

一般PLC之间的通信可以分为基于全握手和无握手通信两种方式。其中基于无握手方式的通信连接, 即通信发起方假设接收方总是接收正确, 而无需等待接收方的回应。它可能会降低通信的可靠性, 但却能大幅地提高通信的速度, 因而比较适用于大量数据的采集和传输。本案例传输数据量比较大, 为了提高通信的实时性, 须采取无握手方式通信连接, 通过简化连接方式, 提高通信速度。同时在数据末尾加入CHECK_SUM, 校验传递数据的有效性。如果接收方收到数据的CHECK_SUM不等于发送方在数据末尾传递的CHECK_SUM, 则认为通讯失败, 通信发起方重新发送数据。协议的结构设计如图2所示。

从站地址:从站地址为01到03。

数据长度:为整个数据串的总长度。

标识位:分为aa和bb, 以区分通信在主从站之间的方向。aa为主站向从站发起通信的标识位, bb为从站向总站发起的标识位。

从站写数据起始地址:为主站将应用数据包写入从站的起始地址。

写数据长度:为主站写入从站的数据长度。

从站读数据起始地址:为主站读取从站数据的起始地址。

读数据长度:为主站读取从站数据的长度。

应用数据包:分为写数据包和读数据包。写数据包为主站写入从站的数据;读数据包为从站返回给主站的数据。

CHECK_SUM:为之前数据串的加权, 用于检验数据传递的有效性。

基于图2的设计原理, 主站向从站依次发起通信, 将参考指令写入从站指定地址;从站收到写指令后, 通过指定地址数据返回当前状态, 并执行相应操作。如果主站向从站发起通信后, 从站在规定时间无应答或者应答数据有差异, 则主站重新发送数据。重复几次通信失败后, 主站标记相应通信失败的从站, 而向下一个从站发起通信, 等到一个循环后, 再次向之前通信失败的从站重新发起通信。循环操作, 实现主站和从站的实时交互。

3 结束语

近年来, 随着人力成本的不断提升, 科技的不断进步, 愈来愈多的工业生产线对采用集散控制系统的需求提高。文章基于RS485串口, 为多个PLC互连互通设计的通信协议已能成功地应用到PCB生产线中。它通过简化程序设计, 缩短各机器故障的排查时间, 很大程度地提高了PLC之间通信的高效性和可靠性, 提升了整条生产线的效能, 降低了相应的人力成本。

摘要:文章主要基于RS485串口, 以OMRON PLC CJ2M-CPU12为例, 专注于PLC互连的通讯协议的设计, 为实现生产系统中PLC之间灵活自主的通信提供一个可靠而高效的解决方案。

关键词:RS485总线,通信协议,PLC互连

参考文献

RS485串行通讯 第7篇

由于CAN总线具备抗干扰能力强、可靠性高、实时性好等特点, 近年来CAN总线应用领域逐渐扩大, 且已逐步成为地铁列车网络技术发展的重要方向。但技术成熟的RS485总线在国内铁路行业中被应用广泛, 可见实现RS485总线与CAN总线互联对铁路行非常重要。

1 多通道通讯

由于铁路站点的微机监测站接收来自多个不同类型传感器或采集器数据, 如温度传感器、湿度传感器、电量传感器等, 故本文提出了多通道CAN-RS485微机检测通讯分机, 该模块通信网络有10个节点, 其中2个主节点和8个从节点。主节点即CAN接口, 负责与上位机之间的数据通信;从节点即RS485接口, 每个接口允许负载20个采集器, 负责与采集器之间的数据通信, 从而实现上位机与传感器或采集器之间的双向实时通讯。

2 硬件设计

基于LPC2292的多通道CAN-RS485通讯分机硬件设计框图如图1所示, 主要由CAN接口、RS485接口、串口收发器、外部存储器、时钟RS485接口和电源七部分组成。

2.1 微控制器

考虑到本通讯分机需要实时处理大量的数据, 且快速、准确, 本设计中微控制器选Phlips公司的LPC2292处理器。该芯片是一款32位的ARMTDMI-S CPU微控制器, 支持JTAG实时仿真和跟踪, 其丰富接口完全满足设计需要。

2.2 CAN接口设计

CAN接口包括总线控制器和收发器两部分, 而LPC2292包含CAN控制器, 只需外接CAN总线收发器, 本设计中选取高速带隔离的CAN收发器CTM-1050T, CAN接口电路图如图2所示。

2.3 RS485接口设计

RS485接口如图3所示, 为满足RS485通道与电源之间隔离耐压DC 1500V, 1min的要求, 设计中采用瞬态抑制二级管SMBJ7.0CA。由于本通讯分机有8路RS485通道, 故RS485接口采用四串口收发器SC16C554DBIB64。

3 软件设计

本微机监测通讯分机中CAN总线的软件程序设计主要包括初始化CAN控制器、帧接收及帧发送三部分。

3.1 CAN帧结构

CAN总线采用CAN2..0B扩展帧格式, CAN帧结构具体定义如表1所示。

其中, 域的具体含义如下:

3.1.1 DIR———方向位

值为“0”时地址域是目标地址 (主机到从采集机) , 为“1”时地址域是源地址 (采集机到主机) 。

3.1.2 M/S———帧性质

值为“0”时表示该帧为自主帧, 为“1”时表示该帧为应答帧。

3.1.3 G———优先级

值为“0”时表示该帧优先级为高级, 为“0”时表示该帧优先级为“1”低级。

3.1.4 ADDRESS———采集机地址

表示采集机地址, 取值范围为0~31, 0#为主机地址, 1-30#为采集机地址, 31#为广播地址。

3.1.5 MF———帧类型

值“0”为时表示该帧为单帧, 为“1”时表示该帧为多帧。

3.1.6 CMD———命令

表示该帧的意义, 即指明应答帧内容。

3.1.7 INDEX OF FRAME———帧序号

表明传送多帧时该帧的序号。

3.1.8 SUM OF FRAME———总帧数

表明该次数据传送的总帧数 (=总字节数/8+1) , 该次数据传送的总字节数=SUM OF FRAME*8+最后帧的DLC。

3.2 初始化CAN控制器

对LPC2292中的CAN控制器初始化包括以下内容:

(1) 初始化CAN模式寄存器CANMOD, 仅设置LOW为仅听模式;

(2) 初始化验收滤波器模式寄存器CANAFMR, 设置验收滤波器为旁路, 所有RX信息都被使能的CAN1控制器接收;

(3) 初始化出错警告界限寄存器CAN1EWL;

(4) 初始化CAN总线时序寄存器CAN1BTR, 初始化波特率、总线时序、采样位;

(5) 初始化中断使能寄存器CANIER, 中断使能寄存器中所有中断使能。

3.3 帧接收

帧接收处理采取中断方式, 通过获取中断和捕获寄存器CANICR状态进行中断控制。

当捕获到接收中断时, CAN控制器从接收缓冲区中读取数据, 该过程具体如下:

(1) 从CAN RX帧状态寄存器CANRFS获得接收信息长度dlc;

(2) 从CAN RX标识符寄存器获取接收帧ID, 从而获得当前帧的帧序号、总帧数;

(3) 从CAN RX数据寄存器获取数据并存放于通讯缓冲区;

(4) 释放接收缓冲区, 设置can命令寄存器CANCMR中RRB为1;

(5) 接收完成初始化通讯缓冲区, 并根据接收帧ID中的CMD进行应答。

3.4 帧发送

CAN帧分为自主帧和应答帧, 且本通讯分机为多通道, CAN控制器在进行帧发送时其流程如下:

(1) 初始化通讯缓冲区, 包括设置设置本次帧长度, 设置通讯标志为发送状态, 设置通讯数据缓冲区指针, 初始化发送帧序号;

(2) 逐点将RS485节点数据存入通信缓冲区;

(3) 当CAN全局状态寄存器获得发送缓存去状态处于无发送信息时, 依次向CAN TX帧信息寄存器中写入帧信息、向CAN1 TX数据寄存器中写入通信缓冲区数据。

4 测试

针对通讯分机的隔离电压、电源电压及温度变化的影响, 本通讯分机经过一系列测试如表2所示, 测试结果表明本通讯分机具备可靠性高、耐高低温性和耐压性强。

针对本通讯分机的通讯能力, 对RS485通道进行满负载且间断运行测试。测试结果表明本通讯分机中RS485通道负载能力不小于20个节点, 采用示波器观察RS485通道轮询时间间隔最小为100ms。测试结果表明本通讯分机具备实时性和负载能力强。

5 结束语

作为当前应用最广泛得现场总线CAN总线, 与传统的RS485串行总线间的转换存在重要的现实意义, 本多通道微机监测通讯分机实现了二者的转换, 且满足可靠性高、耐高低温性、平均无故障时间长等特性。

摘要:针对铁路站点微机监测站接收来自多个不同类型采集器数据, 而绝大多数采集器仍采用技术较成熟的RS485总线, 随着CAN总线逐渐深入地铁列车网络发展, RS485总线与CAN总线互联的实现日趋重要。本文提出一种基于LPC2292多通道CAN-RS485通讯分机设计方案, 给出了硬件和软件设计。测试结果表明该多通道通讯分机具备实时性高且负载能力强适合不间断运行, 对多通道监测有重要意义。

关键词:CAN,LPC2292,多通道

参考文献

[1]站江波, 宋建成, 耿蒲龙.基于CAN总线的矿用通信分站的研究[J].工矿自动化, 2011, 10:51-54.

[2]王珍珠, 刘伟, 刘占清.基于ARM的PLC的CAN通信协议设计与实现[J].组合机床与自动化加工技术, 2011, 8:60-63.

[3]杨芬, 吴伯农, 吴海军.智能传感器的CAN总线接口设计[J].单片机与嵌入式系统应用, 2011, 26 (9-2) :171-173.

[4]郭冀岭, 王远波.CAN与RS485通信在矿用机车斩波调速控制系统中的应用[J].煤矿机电, 2011, 5:111-113.

[5]蒋加伏, 刘清华.RS485-CAN转换器的设计[J].微计算机信息, 2010, 8:7-10.

上一篇:非政府国际组织下一篇:单片机抗干扰措施分析