首页 RS485串口通信原理

RS485串口通信原理

举报
开通vip

RS485串口通信原理RS485串口通信原理 一、RS485串口通信电路图 二.VxWorks中基于RS485总线的串口通信协议及实现 摘 要:本文介绍了在嵌入式实时操作系统Vxworks下串行设备的驱动架构及实现,提出了一种基于RS-485总线的新型串口通信协议,重点讨论了基于这种协议的应用程序的设计方法,发送时主要采用了总线仲裁机制,接收时主要采用了字符合法性校验、长度校验、内容的CRC校验,提高了系统的通信效率和稳定性。 关键词:VxWorks;RS-485;通信协议;总线仲裁;CRC校验 RS-485总线 RS-485...

RS485串口通信原理
RS485串口通信原理 一、RS485串口通信电路图 二.VxWorks中基于RS485总线的串口通信协议及实现 摘 要:本文介绍了在嵌入式实时操作系统Vxworks下串行设备的驱动架构及实现,提出了一种基于RS-485总线的新型串口通信协议,重点讨论了基于这种协议的应用程序的设计 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,发送时主要采用了总线仲裁机制,接收时主要采用了字符合法性校验、长度校验、内容的CRC校验,提高了系统的通信效率和稳定性。 关键词:VxWorks;RS-485;通信协议;总线仲裁;CRC校验 RS-485总线 RS-485总线接口是一种常用的串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 到低达200mv的电压,可靠通信的传输距离可达数千米。使用RS-485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统、设备简单、价格低廉、通信距离长。 VxWorks中串口驱动的实现 VxWorks 操作系统是美国Wind River公司设计开发的嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。Vxworks 操作系统的I/O 系统可以提供简单、统一、与任何设备无关的接口。这些设备包括:面向字符设备、随机块存储设备、虚拟设备、控制和监视设备以及网络设备。Vxworks 的I/O 系统包括基本I/O 系统和缓冲I/O 系统,具有比其他I/O 系统更快速,兼容性更好的特性。这对于实时系统是很重要的。 串口驱动架构 基于vxWorks的串口设备驱动程序架构,对vxWorks的虚拟设备ttyDrv进行封装,向上将TTY设备安装到 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的I/O系统中,上层应用通过标准的I/O 接口完成对硬件设备的操作,向下提供对实际硬件设备的底层设备驱动程序。其软件架构如图1所示。 由图1可知,串口设备驱动由两部分组成,一部分为对ttyDrv进行封装,将串行设备安装到标准的I/O系统中,提供对外的接口;另一部分为串行设备驱动程序,提供对硬件设备的基本操作。 虚拟设备ttyDrv管理着I/O系统和真实驱动程序之间的通信。在I/O系统方面,虚拟设备ttyDrv作为一个字符型设备存在,它将自身的入口点 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 挂在I/O系统上,创建设备描述符并将其加入到设备列表中。当用户有I/O请求包到达I/O系统中时,I/O系统会调用ttyDrv相应的函数响应请求。同时,ttyDrv管理了缓冲区的互斥和任务的同步操作。另一方面,ttyDrv负责与实际的设备驱动程序交换信息。通过设备驱动程序提供的回调函数及必要的数据结构,ttyDrv将系统的I/O请求作相应的处理后,传递给设备驱动程序,由设备驱动程序完成实际的I/O操作。 驱动初始化 串口设备的初始化xxDevInit流程如图2。 设备驱动的初始化过程首先调用系统函数ttyDrv(),该函数通过调用iosDrvInstall()将ttyOpen()、ttyIoctl()、tyRead()、tyRead、tyWrite安装到系统驱动函数表中,供I/O系统调用。 接着根据用户入参对串口芯片寄存器进行初始化,安装驱动函数指针。 最后调用系统函数ttyDevCreate()创建ttyDrv设备。该函数初始化设备描述符,调用tyDevInit()函数初始化tyLib、初始化select功能、创建信号量和输入输出缓冲区,调用iosDevAdd()函数将设备添加到设备列表中并将设备置为中断模式。 驱动模块初始化成功后,应用程序就可以用标准的I/O函数read()和write()收发数据了。 RS-485通信协议 485通信帧格式 表 1 485通信帧格式 目的地址 源地址 长度 控制 帧净荷数据 CRC检验 1Byte 1Byte 1Byte 2Bytes 由长度字节确定,2Bytes ?255Bytes 长度字段不包含控制字段、检验字段。校验字段使用CCITT的CRC16的校验方法。校验字段默认是加上的,只有在发送方的CPU负荷比较大时,并且能够保证本帧出现的错误不会对系统产生潜在的和现实的影响,或者保证影响在可以控制在一定范围内并且可以忍受时,才考虑取消校验字段。当接收方接收到帧的总长度减去长度字段值与帧头的长度之和,得到的结果为2时,表明发送方附带了校验和。 485数据链路层帧 表 2 485链路层帧格式 头标志(0x7E) 485通信帧 尾标志 (0x7E) 1Byte 最大不超过485通信帧的长度(不包括字节拆分2Bytes 的添加字符) 头标志是任意个数的连续的字符0x7E,尾标志也是任意个数的连续的字符0x7E。预定头标志为1Byte,尾标志为2Bytes,在发送方的CPU认为发送完毕最后一个尾标志字符时,保证第一个尾标志字符能够完全到达目的设备。发送方除头标志或尾标志之外,不允许出现0X7E,若遇到0X7E,则拆分成0X7D,0X5E;若出现0X7D,则拆分成0X7D,0X5D传送。 串行通信应用程序设计 初始化配置 , 创建一个51200Bytes的接收环形缓冲区,用来存放剩余的或不成帧的数 据:g_tRecvRingId = rngCreate(51200); , 串口设备描述符为 “myCom”,打开串口并创建设备读写描述符: g_sdwChannelFD = open(“myCom”, O_RDWR, 0); , 设置波特率:ioctl(g_sdwChannelFD, FIOBAUDRATE, g_RS485LinkCB[i].sdwBaudRate); , 清空接收、发送缓存:ioctl(g_sdwChannelFD, FIOFLUSH,0); , 工作模式设置:ioctl(g_sdwChannelFD, FIOSETOPTIONS, OPT_RAW); 通信发送过程 在发送之前,发送方需要按照双方约定的485通信帧格式将消息组帧,并按照约定数据链路传输协议组成485的数据链路帧。接下来就是如何发送数据包了。 在RS-485通信中,发送过程主要采取了总线仲裁机制: 在向485总线写数据时,主设备先写一字节的地址请求,所有的从设备均会收到,只有地址与之相等的从设备端口打开,其他设备全部关闭。这样,主设备与从设备之间的通信就是点对点的。 每一个从设备均有一根请求线与主设备相连,若从设备需要与主设备通信时,先通过请求线进行请求,当请求成功后,从设备应能检测到总线上的地址与自身地址相同,从设备才能打开发送中断,才能发送消息,发送完之后必须关闭发送中断,释放总线,以保证其他从设备这段时间能与主设备正常通信,提高通信效率。 RS-485通信发送流程图如图3所示。 通信接收过程 对于串口通信,仍然要关心数据接收的实时性,因此采用中断方式,利用VxWorks 提供的select 函数的事件触发机制,将读串口的任务阻塞使其一直等待数据,当有数据来到的时候该任务会立刻自动响应,提高系统的实时性,调用read( )接收数据并存入先前创建的接收环形缓冲区g_tRecvRingId中直至缓冲区g_tRecvRingId满或接收完链路上的数据,接下来就是根据通信协议来处理数据包――解帧处理过程。 接收方判断开始485通信帧的条件是,设备不报告接收错误的情况下,接收到0x7E字符之后的第一个非0x7E的字符。判断帧结束的条件是,帧接收已经开始,遇到第一个尾标志字符。在两个0X7E间若收到0X7D,则丢弃,并将其后的一个字节数据与0X20异或。 当链路层的通信帧接收已经开始的情况下,设备报告字符接收错误,此时应当丢弃本帧,结束帧的接收,重新开始搜索下一帧。 长度字段后面的字节个数不等于长度字段指示,并且也不等于长度字段加2时,指示长度错误,作无效帧。帧长度小于帧头的长度的帧视为无效帧。当接收的字符个数超过最大的485通信帧字节数——262时,也认为接收错误,重新开始搜索头标志,检出下一帧数据。 超时保护:如果接收收方在接收一帧数据时,在未接收完一帧时,超过20ms(2个Ticks)仍未有数据到达,则认为本帧数据接收结束,并将其丢弃。 在允许进行校验的情况下,对接收到的帧进行CRC校验。如果校验字段与帧的校验结果不符,认为帧出错,通常作丢弃处理。 帧头中,目的地址与接收单元不匹配时,丢弃该帧。 典型的串行通讯标准是RS232和RS485.它们定义了电压,阻抗等.但不对软件协议给予定义 区别于RS232, RS485的特性包括: 1. RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6) V表示;逻辑“0”以两线间的电压差 为-(2—6)V表示。接口信号电平比RS -232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电 平兼容,可方便与TTL 电路连接。 2. RS-485的数据最高传输速率为10Mbps 3. RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。 4. RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米,另外RS-232-C接口在总线上只 允许连接1个收发器,即单站能力。而 RS-485接口在总线上是允许连接多达128个收发器。即具有多站 这样用户可以利用单一的RS-485接口方便地建立起设备网络。 因RS-485能力, 接口具有良好的抗噪声干 扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为RS485接口组成的半双工 网络 ,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 RS485接口连接器采用DB-9的9芯 插头座,与智能终端RS485接口采用DB-9(孔) ,与键盘连接的键盘接口RS485采用DB-9(针)。 RS485编程 串口协议只是定义了传输的电压,阻抗等,编程方式和普通的串口编程一样~~ RS-232与RS-422之间转换原理和接法 通常我们对于视频服务器、录像机、切换台等直接播出、切换控制主要使用串口进行,主要使用到RS- 232、RS-422与RS-485三种接口控制。下面就串口的接口标准以及使用和外部插件和电缆进行探讨。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础 上用户可以建立自己的高层通信协议。例如:视频服务器都带有多个RS422串行通讯接口,每个接口均 可通过RS422通讯线由外部计算机控制实现记录与播放。 视频服务器除提供各种控制硬件接口外,还提 供协议接口,如RS422接口除支持RS422的Profile协议外,还支持 Louth、Odetics 、BVW等通过RS422 控制的协议。 RS-232、RS-422与RS-485都是串行数据接口标准,都是由电子工业协会(EIA)制订并发布的,RS-232 在1962年发布。RS-422由RS-232发展而来,为改进RS-232通信距离短、速率低的缺点,RS-422定义了一 种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允 许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 , 被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增 加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲 突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。 1. S-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中 增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对 于信号地。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在 +5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从 TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接 收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为 约15米,最高速率为20Kbps。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负 载为3kΩ~7kΩ。所以RS-232适合本地设备之间的通信。 2. RS-422与RS-485串行接口标准 (1)平衡传输 RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线, 将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻 辑状态,负电平在-2V~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而 在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能” 端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 (2)RS-422电气规定 由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接 收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通 信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控 制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单 独的双绞线)实现。RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mbps。其平衡 双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能达到最大传输距离。只有在很短的距离 下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mbps。RS-422需要一 终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米 以下不需终接电阻。终接电阻接在传输电缆的最远端。 (3)RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输 方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双 向通信。RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485 采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至 200mV的电压,故传输信号能在千米以外得到恢复。 RS-485采用半双工工作方式,任何时候只能有一点 处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许 多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。 RS-485 与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之 间;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。RS-485与RS-422 一样,其最大传输距离约为1219米,最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在 100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一 般100米长双绞线最大传输速率仅为1Mbps。 (4)RS-422与RS-485的网络安装注意要点 RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。网络拓扑一般采用终端匹配的总 线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点: * 采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便 使引出线中的反射信号对总线信号的影响最低。 * 应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情况易产生这种不连 续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的 分支线引出到总线。 总之,应该提供一条单一、连续的信号通道作为总线。 二 串口插口种类及转换 串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电 缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口 接口标准上使用各种协议进行通讯及设备控制。 以上我们了解了串口的协议,而我们日常工作中接触最多的是实际的一些设备的外部接口,我们如何从 外形上就知道它是那种接口呢,制作线缆各针脚如何定义,上面我们知道了串口RS-232、RS-422与RS- 485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己 的高层通信协议。从我们实际工作中碰到的使用最多的插口有三种DB9 DB25 RJ45,上面三种插口插件 都可以用作串口插口插件,也可以通过线缆进行插口之间的转换。下面我们就三种插口的针脚定义分别 说明,三个插口之间的转换也只要按照插口定义的线缆跳接即可。 * DB9(9脚插口插座),如图2。9针串口功能如表1。 * DB25(25脚插口插座),如图3。25针串口功能如表2。 * 还有一种插口是RJ45,比如湖北台使用的品尼高mss1600、mss700视频服务器的编解码板控制口都为 串口,插口是RJ45的,而播控机的串口插口是DB9,因此我们就需要使用转换线缆。转换线缆的针脚定 义如图4。 RS485 半双工接法为:RX+ 和TX+ 并联为Data+;RX- 和TX- 并联为Data-。RS485 全双工/RS422 接法 为:FULL 和GND 短接;信号线为RX+,TX+,RX-,TX-,可根据需要连接GND。 三 串口的扩展 串口的扩展,我们知道一般一台计算机有两个串口,而对于一台播控计算机需要控制的设备远远不止两 台设备,我们需要同时控制视频服务器,录像机、切换台、字幕机等各种设备。所以我们就需要对串口 进行扩展,我们可以使用串口扩展卡对串口进行扩展,比如我们在播控系统中使用的串口扩展卡MOXA CI-134。 MOXA CI-134是专为工业环境通信应用设计的 RS-422/485 四串口卡。它支持4个独立的RS-422/485串口 ,在一对多点的通信应用下,最多可控制128 个设备。为使RS-485 2线半双工操作变得更加简单,每片 CI-134 卡都具有数据流向自动控制(ADDC),不需软件操作。因此,在Windows应用下不需额外的编码 就能控制RS-485半双工协议。为达到工业环境对高可靠性产品的要求,本系列产品提供可选择的光电隔 离(2 KV)和浪涌保护(25 KV ESD)功能。 该产品特点包括:可选择光电隔离(2KV)和浪涌保护(25KV ESD)功能;提供数据流向自动控制ADDC (Automatic Data Direction Control)功能;RS-485 数据控制l: ADDC 或通过 RTS控制;内建终端 电阻;采用芯片硬件流量控制,保证数据不流失;采用先进 ASIC 设计,返修率低;支持众多常见的操 作系统。 四 串口在播出控制系统中的应用 我们知道串口RS232有效传输距离为15米, RS-422的最大传输距离为4000英尺(约1219米),最大传输 速率为10Mbps。我们播控中使用的录像机如DVCPRO、IMX控制接口有RS232、RS422多个接口供选择,如 果使用pin9则为RS422接口,视频服务器编解码口控制都是RS422接口,只是插口为RJ45不是DB9的,需 要转换线缆进行转换。因此我们在控制中根据以上特性可以灵活使用,我们由于主备控制切换的需要, 以及距离的考虑统一选用RS422倒换开关进行倒换,控制RS422倒换开关的为RS232控制接口,这个直接 由播控机本身的COM口来控制倒换开关进行倒换,其他控制录像机、切换台、视频服务器编解码卡使用 MOXA卡扩展的RS422接口进入RS422倒换开关进行倒换。控制图如图5。 整个系统中只有RS422倒换开口控制是播控机的COM(RS232)口控制,其他都是MOXA卡扩展的RS422接口 ,由于应急开关需要RS232所以在应急开关前面加了一个RS422转RS232的转换器。通过控制线播控机可 以及时发出播控指令,也可以随时读取录像机、切换台、还有视频服务器的状态。以上只是播控机房的 系统控制图。上载、总控机房的系统控制大致和这相同。 RS422总线、RS485和RS422电路原理基本相同,都是以差动方式发送和接受,不需要数字地线。差动工 作是同速率条件下传输距离远的根本原因,这正是二者与RS232的根本区别,因为RS232是单端输入输出 ,双工工作时至少需要数字地线、发送线和接受线三条线(异步传输),还可以加其它控制线完成同步 等功能。RS422通过两对双绞线可以全双工工作收发互不影响,而RS485只能半双工工作,发收不能同时 进行,但它只需要一对双绞线。以上三种接口各有缺点,在实际工作中可以根据需要灵活选用。 计算机控制在广电播控系统中运用会越来越广泛,而且随着计算机技术的不断发展,智能化也会不断提 高,系统也会更加庞大,这就要求我们能更深入了解计算机的基础理论,这样才能更深入的了解系统, 维护系统,保证系统的安全稳定运行,更好的保障安全播出。 市场上的RS-232转RS-485的转换器,无源与有源两种 无源一般只是转换,有源的转换器除了实现232和485的转换,还能保证两者之间电气隔离~因为485的 线路往往比较长,线路上有干扰,采取隔离措施后即使485线路上有干扰也不会影响232
本文档为【RS485串口通信原理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_594886
暂无简介~
格式:doc
大小:33KB
软件:Word
页数:15
分类:互联网
上传时间:2017-10-10
浏览量:21