RS485串行通信电路设计

RS485串行通信电路设计
RS485串行通信电路设计

RS485串行通信接口电路的总体设计

在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。

实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧配置RS485/RS232转换器,或者购买适合PC机的RS485卡。这些附加设备的价格一般较贵,尤其是一些RS485卡具有自己独特的驱动程序,上位PC机的通信一般不能直接采用WINDOW95/98环境下有关串口的WIN32通信API函数,程序员还必须熟悉RS485卡的应用函数。为了避开采用RS485通信协议的上述问题,我们决定自制RS485/RS232转换器来实现单片机和PC机之间的通信。

单片机和PC机之间的RS485通信硬件接口电路的框图,如下图1所示。

从图1可看出,单片机的通信信号首先通过光隔,然后经过RS485接口芯片,将电平信号转换成电流环信号。经过长距离传输后,再通过另一个RS485接口芯片,将电流环信号转换成电平信号。

图1单片机与PC机之间的RS485通信硬件接口电路的框图(略)

该电平信号再经过光电隔离,最后由SR232接口芯片,将该电平信号转换成与PC机RS232端口相兼容的RS232电平。由于整个传输通道的两端均有光电隔离,故无论是PC机还是单片机都不会因数据传输线上可能遭受到的高压静电等的干扰而出现“死机”现象。

2接口电路的具体设计

2-1单片机侧RS485接口电路的设计

单片机侧RS485接口电路如图2所示。

AT89C52单片机的串行通信口P3 0(RXD)和P3 1(TXD)的电平符合TTL/CMOS标准(逻辑“0”的电平范围为0V~0.8V,逻辑“1”的电平为2 4V~VCC),它们首先通过光电隔离器件6N137隔离,以保护单片机不受传输通道的干扰影响,其中T01和?T02是为了增加光隔输入端的驱动能力。光隔6N137的左侧电源与单片机相同,右侧必须采用另一组独立的+5V电源,且两组电源不能供电。

图2单片机侧RS485接口电路

图3MAX490的内部结构

MAX490[4]是MAXIM公司的RS485接口芯片,其内部结构如图3所示。MAX490支持单电源+5V工作,传输速率最高可达2 5MBPS,可实现全双工通信。其RO、DI端的逻辑“0”的电平在-0.5V~0.8V之间,逻辑“1”的电平在2 0V~VCC之间。输出电流环的电流在150μA~500μA之间。其工作状态为:当A端电压比B端电压高200mV以上,RO输出逻辑“1”,当A端电压比B端电压低200mV,RO输出逻辑“0”;当DI为逻辑“0”,输出Y低、Z高,当DI为逻辑“1”,输出Y高、Z低。图2中的电阻器RRS为MAX490的终端匹配电阻器。2-2PC机侧RS485/RS232转换器的设计

RC机侧RS485/RS232转换器的电路如图4所示。

该电路首先通过MAX490芯片将单片机侧经远距离传输的电流环信号转换成TTL/CMOS标准图4PC机侧RS485/RS232转换器的实际电路(略)

图5MAX232A的内部结构

的电平信号,然后通过光隔6N137隔离,得到两个同样是与TTL/CMOS电平相兼容的电平信号;最后,经RS232芯片转换成RS232电平:其中RS232电平的逻辑“0”的电平范围为-5V~-15V,逻辑“1”的电平范围为+5V~+15V。这里RS232电平转换芯片选用MAXIM

公司的MAX232A[4],该芯片采用单电源(+5V)供电,RS232电平由内部电荷泵产生,其内部结构如图5所示。

在RS485/RS232转换器的设计过程中需要特别注意的是电源的设计。单片机侧和PC机侧的RS485芯片理论上可共用一个电源。实际上,如果稳压电路安装在单片机侧,同时又将此电源直接拉至PC侧的RS485/RS232转换器中,由于电源线可能长达上百米,电源线的线径又不可能选得很粗。如此远距离的传输将会导致电源电压在PC机侧有一个很大的落差,这样,有可能造成PC机侧的MAX490或光隔IC702工作不正常。一个比较好的解决办法是首先直接将单片机侧变压器输出的交流信号经长距离传输至RS485/RS232转换器,然后经整流和稳压,作为PC机侧MAX490和光隔IC702的供电电源。此外,RS232和光隔左侧的供电电源PCVCC 可以利用PC机内部开关电源的+5V输出,或者由外部稳压电源提供。

3 通信软件的设计

利用上述硬件通信电路,可以实现符合RS485协议的串行通信,同时又对软件的编写没有任何额外要求,因为本电路改变了传输通道的信号传输方式。单片机侧的通信可以采用查询方式或串行中断方式。在电参数测试仪中,为了保证上位机和下位机之间时序的严格一致,我们采用了查询方式,这部分程序的编写较简单,具体可参阅文献[1][3]。PC机侧WINDOWS 环境下的通信程序,可直接利用VC++提供的相应于串口的API函数完成RS232通信编程,具体可参阅文献[2][3]。

由于数据传输是在强干扰的环境中进行的,而且传输距离又较远,为了保证数据能高速、准确传输,软件编程时可以考虑对大批量的数据进行分组传送,同时对每组数据进行和校验,检查其传输的准确性。在实际使用中,设定每组数据的数据头为单字节0AAH,中间为256个字节的采样数据,数据最后一个字节为和校验结果。PC机每接收到一组数据,均要进行再次和校验,,然后将PC机的校验结果和单片机的校验结果(该组数据的最后一个字节)相比较,若两者不等则校验失败,PC机给单片机发重传命令,要求单片机重传本组数据;若两者相等则校验正常,PC机给单片机发确认认号,并准备接收下一组采样数据,单片机则开始新一轮采样。

4 实际应用

在电参数测试仪的工作过程中,大约每隔一分钟单片机和上位PC机之间就要经过多次命令和数据的双向传递,其数据量较大,每次约有7k字节左右。本系统单片机选用ATMEL公司的AT89C52,晶振频率为11 0592MHz,串行通信方式为模式1,通信速率为57.6kBPS。上位机的通信和数据处理程序采用VC++6.0编写。单片机和PC机之间的距离约100米左右,传输线由普通的多芯电源线替代,且经过有电焊机、电动机、高压静电发生器等频繁起动的场合。采用上述硬件通信电路,同时考虑编程时的软件纠错,该仪器经过多次24小时的不间断运行,都没有发生过死机现象,工作一切正常。调试时,通过观察上位PC机中设置的数据重传计数器,发现数据重传次数极少。

实践证明本文设计符合RS485协议的串行通信电路,可以满足高速率、高可靠、远距离的串行通信,同时价格又比较便宜,不失为一种较为理想的串行通信方案。

RS-232C、RS-422、RS-485串口引脚定义

RS-232C、RS-422、RS-485串口引脚定义 从前面的内容中,知道了串口外形,就可以继续了解其每个引脚的定义,这是做线的基础。无论是RS-232C、RS-422,还是RS-485,串口接口的外形、尺寸都是相同的,部件间可以通用互换,但其引脚的定义却各不相同,因此要了解串口做线,首先要知道串口各引脚的定义。 观察一个标准的串口,会发现串口无论是9针的标准串口物理外形(如图3.4所示),还是25针串口物理外形(如图3.6所示),如果横着看,都显示两排引脚。除了两排引脚这一特征之外,还有就是无论是公头,还是母头,两个引脚的外围呈现一边大、一边小的“等腰梯形”的形状(俗称“D形”)。9针引脚中,大的一边有5个引脚,小的一边有4个引脚。 本章除非专门说明,否则所有引脚线序都是指串口外侧的线序,各引脚编号及意义如图3.40所示。 根据图3.40的引脚顺序号,如果是作为RS-232C接口,则各引脚定义如表3.2所示。 表3.2 RS-232C引脚意义表 各引脚的电气特性为: 在TxD和RxD上,逻辑“1”为-3V~-15V;逻辑“0”为+3V~+15V。 在RTS、CTS、DSR、DTR和DCD等控制线上,信号有效为+3V~+15V;信号无效为-3V~-15V。 对于数据信号,逻辑“1”为低于-3V,逻辑“0”为高于+3V;对于控制信号,接通ON为低于-3V;断开OFF为高于+3V;-3V~+3V、低于-15V、高于+15V都表示电压无意义。 作为RS-232C接口,其各引脚由标准文档进行定义,所以也可以称为“标准引脚定义”。而作为RS-422和RS-485接口,则没有“标准”引脚定义的说法,因为RS-422和RS-485连通常的标准接口也没有,具体采用什么接口,接口中使用哪些引脚,完全取决于设备设计生产商自己的定义。不过,作为RS-422和RS-485标准本身,定义了按照这两个标准进行通信时,所必须提供的信号线,

常见串口接口电路设计集锦

常见串口接口电路设计集锦 六种常用串口接口电路1、并口接口(分立元件) 适用于Windows 95/98/Me 操作系统。这个电路与FMS 随软件提供的电路比多了一个200K 的电阻,这个主要是为了与JR 的摇控器连接,因为JR 的摇控器教练口好象是集电极开路设计的,需要加一只上拉电阻才能正常工作。 不过电路还是满简单的,用的元件也很少,很适合无线电水平不太高的朋友们 制作,只是不能用于Win2000/XP 上有点让人遗憾。 2、串口接口(分立元件)字串5 适用于Windows 95/98/Me 操作系统,电路也不是很复杂,当然元件比并口电路多了一些,而且串口的外壳比并口小很多,如何把这些元件都放到小 小的外壳里免不了要大家好好考虑一下了。当做体积小也是它的最大的优点, 而且不用占用电脑并口,因为现在还有一些打印机还是要用并口的。缺点同样 是不支持Win2000/XP。 3、串行PIC 接口(使用PIC12C508 单片机)字串9 适用于Windows 95/98/Me/2000/XP 操作系统。电路简单,只是用到MicroChip 公司的PIC12C508 型单片机,免不了要用到编程器向芯片里写程序了,这个东西一般朋友可能没有,不过大多卖单片机的地方都有编程器,你只 要拿张软盘把需要用的HEX 文件拷去让老板帮你写就可以了。这个接口最大 的优点就是支Win2000/XP 操作系统,还可以用PPJOY 这个软件来用摇控器虚拟游戏控制器玩电脑游戏。 4、25 针串行PIC 接口(使用PIC12C508 单片机) 适用于Windows 95/98/Me/2000/XP 操作系统。电路同9 针的接口基本一样,只不过是接25 针串口的,现在用的不是很多了。

总线的接口电路设计

PCI-Express总线的接口电路设计 王福泽 (天津工业大学) 一、 课题背景 计算机I/O技术在高性能计算发展中始终是一个关键技术。其技术特性决定 了计算机I/O的处理能力,进而决定了计算机的整体性能以及应用环境。从根本 上来说,无论现在还是将来,I/O技术都将制约着计算机技术的应用与发展,尤 其在高端计算领域。近年来随着高端计算市场的日益活跃,高性能I/O技术之争 也愈演愈烈。当计算机运算处理能力与总线数据传输速度的矛盾日益突出时,新 的总线技术便应运而生。在过去的十几年间,PCI(Peripheral component Interconnect)总线是成功的,它的平行总线执行机制现在看来依然具有很高的 先进性,但其带宽却早已露出疲态。PCI总线分有六种规格(表1所示),能提供133MBps到2131MBps的数据传输速率,而对于现有高性能产品例如万兆以太网 或者光纤通信,传统的PCI的数据传输速率早已入不敷出[4]。 表1 PCI总线六种规格 总线类型 总线形式 时钟频率 峰值带宽 每条总线上板卡插槽数 PCI32位 并行 33MHz 133MB/s 4-5 PCI32位 并行 66MHz 266MB/s 1-2 PCI-X 32位 并行 66MHz 266MB/s 4 PCI-X 32位 并行 133MHz 533MB/s 1-2 PCI-X 32位 并行 266MHz 1066MB/s 1 PCI-X 32位 并行 533MHz 2131MB/s 1 对于64位总线实现,上述所有带宽加倍 对于64位总线实现,上述所有带宽加倍仔细分析传统的PCI信号技术,可 发现并行式总线已逐渐走近其性能的极限,该种总线已经无法轻易地提升频率或 降低电压以提高数据传输率:其时钟和数据的同步传输方式受到信号偏移及PCB 布局的限制。高速串行总线的提出,成功的解决了这些问题,其代表应用就是PCI Express。PCI Express采用的串行方式,并且真正使用“电压差分传输” 即是两条信号线,以相互间的电压差作为逻辑“0”,“1”的表示,以此方式传输 可以将传输频率作极高的提升,使信号容易读取,噪声影响降低。由于是差分传输,所以每两条信号线才能单向传送1比特,即一根信号线为正、另一根信号线 为负,发送互为反相的信号,每一个“1比特”的两条信号线称为一个差分对。 按PCI Express技术规范规定,一个差分对的传输速率为2.5Gbps。实际使用中,

串口RS232__485的9针引脚定义

RS485接口定义 rs485有两种,一种是半双工模式,只有DATA+和DATA-两线,另一种是全双工模式,有四线传输信号:T+,T-,R+,R-。全双工模式时可认为是rs422。 1.英式标识为TDA(-) 、TDB(+) 、RDA(-)、RDB(+) 、GND 2.美式标识为Y 、Z 、 A 、 B 、GND 3.中式标识为TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND rs485两线一般定义为(只接收不发送): "A, B"或"Date+,Date-" 即常说的:”485+,485-” rs485四线一般定义为: "Y,Z,A, B," 具体还要根据厂家的使用信号针脚而定,有的使用了RTS或DTR 等针脚的485信号 DB9(RS485)接口针脚定义 1脚为数据A,2脚为数据B,5脚为地。

RS-422的电气性能与RS-485完全一样。主要的区别在于: RS-422有4根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422的收与发是分开的,所以可以同时收和发(全双工)。RS-485有2根信号线:发送和接收都是A和B。 由于RS-485的收与发是共用两根线所以不能够同时收和发(半双工)。 * 能否将RS-422的Y-A短接作为RS-485的A,将RS-422的Z-B短

接作为RS-485的B呢? 回答:不一定。条件是RS-422必须是能够支持多机通信的。波士电子的所有接口转换器的RS-422口都能够支持全双工多机通信,所以可以这样简单转换为RS-485。 RS-485(或 RS-422)通信建议一定要接地线,因为 RS-485(或 RS-422)通信要求通信双方的地电位差小于 1V。即:半双工通信接 3 根线(+A、—B、地),全双工通信接 5 根线(+发、—发、+收、—收、地)。为了安全起见,建议通信机器的外壳接大地。 接线及引脚分配 RS-485的+A接对方的+A、—B接对方的—B、GND(地)接对方的 GND(地)。 RS-422 的接线原则:“+发”接对方的“+收”、“—发”接对方的“—收”、“+收”接对方的“+ 发”、“—收”接对方的“—发”、GND(地)接对方的 GND(地)。 一定要将GND(地)线接到对方的GND(地),除非确保通信双方都已经良好共地。

RS-485通信原理

一、RS485串口通信电路图 二、VxWorks中基于RS485总线得串口通信协议及实现 摘要:本文介绍了在嵌入式实时操作系统Vxworks下串行设备得驱动架构及实现,提出了一种基于RS-485总线得新型串口通信协议,重点讨论了基于这种协议得应用程序得设计方法,发送时主要采用了总线仲裁机制,接收时主要采用了字符合法性校验、长度校验、内容得CRC校验,提高了系统得通信效率与稳定性。 关键词:VxWorks;RS-485;通信协议;总线仲裁;CRC校验 1 引言 随着信息技术与互联网得飞速发展,以及计算机、通讯、数码产品等领域得高速增长,数字化时代已经来临。嵌入式设备就是数字化时代得主流产品,嵌入式软件就是数字化产品得核心,作为嵌入式软件得基础与关键,嵌入式操作系统在产业发展过程中扮演着越来越重要得角色,应用遍及工业自动化、网络通信、航空航天、医疗仪器等领域。 2 RS-485总线 RS-485总线接口就是一种常用得串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。RS-485收发器采用平衡发送与差分接收,因此具有抑制共模干扰得能力,加上收发器具有高得灵敏度,能检测到低达200mv得电压,可靠通信得传输距离可达数千米。使用RS-485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统、设备简单、价格低廉、通信距离长。 3 VxWorks中串口驱动得实现

VxWorks 操作系统就是美国Wind River公司设计开发得嵌入式实时操作系统(RTOS),就是嵌入式开发环境得关键组成部分。Vxworks 操作系统得I/O 系统可以提供简单、统一、与任何设备无关得接口。这些设备包括:面向字符设备、随机块存储设备、虚拟设备、控制与监视设备以及网络设备。Vxworks 得I/O 系统包括基本I/O 系统与缓冲I/O 系统,具有比其她I/O 系统更快速,兼容性更好得特性。这对于实时系统就是很重要得。 3、1 串口驱动架构 基于vxWorks得串口设备驱动程序架构,对vxWorks得 虚拟设备ttyDrv进行封装,向上将TTY设备安装到标准 得I/O系统中,上层应用通过标准得I/O 接口完成对硬 件设备得操作,向下提供对实际硬件设备得底层设备驱 动程序。其软件架构如图1所示。 由图1可知,串口设备驱动由两部分组成,一部分为对 ttyDrv进行封装,将串行设备安装到标准得I/O系统中, 提供对外得接口;另一部分为串行设备驱动程序,提供 对硬件设备得基本操作。 虚拟设备ttyDrv管理着I/O系统与真实驱动程序之间 得通信。在I/O系统方面,虚拟设备ttyDrv作为一个字 符型设备存在,它将自身得入口点函数挂在I/O系统上, 创建设备描述符并将其加入到设备列表中。当用户有I/O请求包到达I/O系统中时,I/O系统会调用ttyDrv相应得函数响应请求。同时,ttyDrv管理了缓冲区得互斥与任务得同步操作。另一方面,ttyDrv负责与实际得设备驱动程序交换信息。通过设备驱动程序提供得回调函数及必要得数据结构,ttyDrv将系统得I/O 请求作相应得处理后,传递给设备驱动程序,由设备驱动程序完成实际得I/O操作。 3、2 驱动初始化 串口设备得初始化xxDevInit流程如图2。 设备驱动得初始化过程首先调用系统函数ttyDrv(),该 函数通过调用iosDrvInstall()将ttyOpen()、 ttyIoctl()、tyRead()、tyRead、tyWrite安装到系统 驱动函数表中,供I/O系统调用。 接着根据用户入参对串口芯片寄存器进行初始化,安装 驱动函数指针。 最后调用系统函数ttyDevCreate()创建ttyDrv设备。 该函数初始化设备描述符,调用tyDevInit()函数初始

揭秘DSP电机控制串行通信系统电路设计

揭秘DSP电机控制串行通信系统电路设计 在电机控制系统中,客户端要通过上位机来设置电机的运行参数,而 被控电机也要将各种运行状态信息实时地传给远程控制端客户,串行通信由于 连线少,成本低,简单可靠,被广泛应用。本文利用SCI 串行通讯接口实现DSP 控制器与PC 机的通信连接;电机控制系统中还必须有数码显示驱动电路,以便于现场控制人员及时了解电机当前的转速等信息,因此利用SPI 同步串行口来实现DSP 与外围设备之间的通信就很有必要。分析了数字信号处理芯片TMS320LF2407ADSP 的串行外设接口SPI,及串行通信接口SCI 模块。在电机控制实验系统中,给出了由这2 个模块构成的串行通信应用实例。重点讲述了 相关的串行通信接口电路硬件设计高。 串行通信接口模块的硬件电路设计 电机的运行参数,如转向、转速及位置信号等由主机制定,通过RS232 串行通信传输到DSP,DSP 再将运行结果返回给主机的电机控制系统中,以实现远程客户端和被控电机之间的通讯。由于上位机(PC)一般都带有RS232 接口,所以我们利用上位机的串行口与下位机DSP 的异步串行口SCI 来进行RS232C 通信和数据交换,实现计算机对工业现场被控对象的检测和控制。TMS32OLF24O7A 的串行通信接口电路如该实验系统利用DSP 的SCI 串行通信接口电路实现了DSP 控制器与上位机的通讯连接,整个接口电路简单,可靠性高。DSP 控制器通过SCI 串行通信接口电路,将控制系统的实时运行状态上传给上位机供存储和分析,而上位机则通过SCI 串行通信接口电路将控制指令(例如起、停、正转、反转、运行速度等)发送给DSP 控制器,以实现对电机控制系统的实时控制。本试验系统的串行通信速率可变,波特率默认值为l 9200,从l200,2400,4800,9 600,到l9 200 可调。

RS485总线接口引脚定义及说明

RS485总线标准是工业中(考勤,监控,数据采集系统)使用非常广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络;最大传输距离1200m,支持1200 m时为100kb/s的高速度传输,抗干扰能力很强,布线仅有两根线很简单。 RS485通信网络接口是一种总线式的结构,上位机(以个人电脑为例)和下位机(以51系列单片机为例)都挂在通信总线上,RS485物理层的通信协议由RS485标准和51单片机的多机通讯方式。由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。 下面介绍以下rs485通讯接口定义的标准 1.英式标识为TDA(-) 、TDB(+) 、RDA(-) 、RDB(+) 、GND 2.美式标识为Y 、Z 、A 、B 、GND 3.中式标识为TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND rs485两线一般定义为: "A, B"或"Date+,Date-" 即常说的:”485+,485-” rs485四线一般定义为: "Y,Z,A, B," 一般rs485协议的接头没有固定的标准,可能根据厂家的不同引脚顺序和管脚功能可能不尽相同,但是官方一般都会提供产品说明书,用户可以查阅相关 rs485管脚图定义或者引脚图 上图中rs232转rs485电路中hin232(max232可以起到同样的作用但是要贵一点)起到转

换pc端rs232接口电平的作用,然后把信号由max485这个芯片转换成485电平由AB两根线输出,如果接上双绞线信号rs485总线接口的信号的通信距离至少是1千米远。

什么是RS485通信接口

什么是RS485通信接口 通信概述 通信设备从早期的邮件,电报,电话,传真,传呼机,手机,电脑,一路发展下来,而且随着科技的发展,世界必将由一个网络组成,所以,在未来开发的设备中,也必然要求大部分的设备都带有通信的功能。 设备与设备之间互相通信,就要有一座桥梁把二者连接起来,那就是传输通路与通信协议。传输通路由传输介质与传输接口组成,传输介质可分为有线和无线传输介质两大类。 有线传输介质在数据传输中只作为传输介质,而非信号载体。计算机网络中流行使用的有线传输介质为:铜线和玻璃纤维。 铜线具有便宜,安装容易的特点,在现在工业应用中普遍应用,在应用中主要有两种基本的铜线类型:双绞线和同轴电缆。双绞线可减小流过电流所辐射的能量,也可防止来自其他通信线路上信号的干扰,对于一些要求比较高的项目上,还需要给双绞线加上屏蔽层;同轴电缆由一对同轴导线组成。同轴电缆频带宽,损耗小,具有比双绞线更强的抗干扰能力和更好的传输性能。按阻抗值不同,同轴电缆可分为基带和宽带两种,同轴电缆是目前局域网与有线电视网中普遍采用的比较理想的传输介质。 所谓玻璃纤维介质,就是指现在所流行的光纤传输,他的两边有一个激光发生器与一个激光接收器,组成一整套通信线路,由于光纤传输距离远,因此现很多在工程都是采用“光端机+光纤”的模式。 结合我在工程中经常应用的通信模式,与“南方的老树51CPLD开发板”上具有的RS232通信、RS485通信两种,详细讲解下这两种通信方式的应用。 什么是RS232接口 首先介绍下什么是RS232接口,什么是RS485接口。

RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。DB25的串口一般只用到的管脚只有2(RXD)、3(TXD)、7(GND)这三个,随着设备的不断改进,现在DB25针很少看到了,代替他的是DB9的接口,DB9所用到的管脚比DB25有所变化,是2(RXD)、3(TXD)、5(GND)这三个。因此现在都把RS232接口叫做DB9。 元器件常识:市场上把公头的接插件叫做DRXX,母头的叫DBXX,比如我们电脑上的串口,在市场上叫做DR9,不是DB9,很多人都误叫做DB9,实际上的DB9是两个把两个DR9互相连接在一起的接口。 在文章中,我把所有的串口设备接口都统一叫做RS232接口。 三、什么是RS485接口 由于RS232接口标准出现较早,难免有不足之处,主要有以下四点: (1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL电路连接。 (2)传输速率较低,在异步传输时,波特率为20Kbps;因此在“南方的老树51CPLD开发板”中,综合程序波特率只能采用19200,也是这个原因。 (3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。 (4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。 针对RS232接口的不足,于是就不断出现了一些新的接口标准,RS-485就是其中之一,它具有以下特点:

几种典型接口电路(485)

典型接口电路EMC设计 一、以太网接口EMI设计 100M网口设计时必须设计Bob smith 电路:可以产生10dB的共模EMI衰减,为了更好的抑制共模信号通过线缆对外的辐射应注意下面几点: 1 、不用的RJ45管脚4 、5、7、8按下图的方法处理。 2 、物理芯片侧的变压器中心抽头需通过0.01uF-0.1uF的电容接地。 3 、物理芯片侧的差模电阻(收端)应等分为二(100分为两个49.9),中心点通过1000pF 电容接地。 以太网口Bob smith电路原理图 以82559为例说明网口设计PCB注意点,布局如下: 以太网口布局示意图

A、B要求尽量短,A不得超过1英寸,B可以根据实际情况放宽。接口变压器PCB设计如下: 以太网口变压器布局示意图 布局要求: PCB布局示意图 布线要求: 1、变压器下面全部掏空处理,其余隔离带的宽度大于100mil; 2、连接器与隔离变压器之间距离小于1000mil; 3、晶振距离接口变压器和板边大于1000mil; 4、灯线不要走到变压器下面,并且尽量不要与差分信号线同层走线,如果同层走线,需要与差分信号线相距30mil以上; 5、差分信号线与变压器输出侧的过孔距离大于40mil。

二、以太网口的防护设计 加防护电路的设计: 增加防护器件电路原理图 以上器件选型要求: 1、变压器要选用隔离耐压3000Vac要求的。 2、气体放电管尽量选用3端气体放电管,启动电压为90V的; 3、TVS管选用SLV2.8-4; 三、485接口电路设计 对于出户外的485端口,进行如下设计,采取气体放电管加TVS管加限流电阻组合方式。选用90V陶瓷管(3R090)可承受10/700us,8KV雷击测试;64V固体管(P0640)只能承受10/700us,3KV雷击测试 。TVS的选择为P6KE6.8CA ,去耦电阻选择为10Ω/1W 。

三菱FX3U 485无协议通讯程序详解(含程序)

三菱FX2N PLC串行通讯指令(FNC 80 RS) 串行通讯指令(FNC 80 RS) 1、指令格式:[RS D0 K8 D10 K8] 发送数据帧起始地址和数目↓ 接收数据帧起始地址和数目 2、功能和动作: ※RS指令是为使用RS232C、RS-485功能扩展板及特殊适配器,进行发送和接收串行数据的指令。 ※传送的数据格式在后面讲述的特殊寄存器D8120设定。RS指令驱动时即使改变D8120的设定, 实际上也不接收。 ※在只发送的系统中,可将接收数设定为K0。(K表示常数) ※在只接收的系统中,可将发送数设定为K0。 ※在程序中可以多次使用RS指令,但在同一时间必须保证只有一个RS指令被驱动。 ※在一次完整的通讯过程中,RS指令必须保持一直有效,直至接收数据完成。 D8120说明: ※根据MD320的通讯协议,无帧头和帧尾,则(bit9,bit8)=(0,0)。 ※bit13~15是计算机链接通讯时的设定项目,使用RS指令时必须设定为0。 ※RS485未考虑设置控制线的方法,使用FX2N-485-BD、FX0N-485ADP时,(bit11,bit10 )=(1,1)。 ※若PLC和变频器之间的通讯参数如下:8位数据位,无校验,2位停止位,波特率9600,无帧头无帧尾,无协议模式,则D8120=H0C89(H表示16进制)(0000 1100 1000 1001B) M8002 │──||────────── [ MOV H0C89 D8120 ]

5、相关标志位: 一.基本指令介绍 ※M8122:数据发送请求标志 当PLC处于接收完成状态或接收等待状态时,用脉冲触发M8122,将使得从D0开始的连续8个数据被发送。当发送完成后,M8122自动被复位。当RS指令的驱动输入X0变为ON状态时,PLC就进入接收等待状态。 ※M8123:数据接收完成标志 当M8123置位时,表明接收已经完成,此时需要将接收到的数据从接受缓冲区转移到用户指定的数据区,然后手工复位M8123。复位M8123后,则PLC再次进入接收等待状态。 如果指定的接收长度为0,则M8123不动作,也不进入接收等待状态。从这个状态想进入接收等待状态,必须使接受长度≥0,然后对M8123进行ON→OFF操作。 ※M8129:通讯超时标志 接收数据中途中断时,那个时点开始如果在D8129中规定的时间内不再重新开始接收,作为超时输出标志M8129变为ON状态,则接收结束。M8129需手工复位。 二.详细程序(与英威腾GD20变频器测试通讯成功的案例)

基于单片机的串行通信接口的设计开题报告

专科毕业设计/论文 开题报告课题名称基于单片机的串行通信接口的设计 系别机电与自动化学院 专业班机电一体化技术1002班 姓名柯辉 评分 导师(签名) 华中科技大学武昌分校 20年月日

毕业设计(论文)开题报告撰写要求: 1.开题报告的主要内容 1)所选课题国内、外研究及发展状况 2)课题研究的目的和意义; 3)课题研究的主要内容、难点及关键技术; 4)研究方法及技术途径; 5)实施计划。 2.主要参考文献:不少于3篇。 3.开题报告的字数不少于1500字,格式按《华中科技大学武昌分校专科毕业设计(论文)撰写规范》的要求撰写。 4.开题报告单独装订,本附件为封

华中科技大学武昌分校专科学生毕业设计开题报告学生姓名柯辉学号20102821076专业班级机电一体化1002系别机电与自动化指导教师吴蕾职称工程师课题名称基于单片机的串行通信接口的设计 1课题国内、外研究及发展状况 1.1课题在国内研究发展状况 随着城市的不段发展和工业科技的不断进步,电子工业产品也越来越自动化和小型化,人们对信息流量的需求也在不断增长,传统并行通信接口技术成为进一步提高数据传输速率的瓶颈。过去主要用于光纤通信的串行通信接口技术与并行接口技术相比其设计简单、控制方便不仅简化了系统的连线,缩小了电路板的面积,节省了系统资源而且还具有扩展性好、编程方便,易于实现用户系统软硬件的模块化以及标准化,串行接口少,便于远距离传输等优点所以串行通信接口技术正在取代传统并行通信接口技术而成为高速接口技术的主流。而在串行通信接口技术中又以RS232和RS485两种串口应用的最为广泛。在国内一些高端知名的电子产品公司如联想、华为、海信等连年不断的对电脑、手机进行升级处理这些都离不开接口技术的快速发展,而人们对这类高端产品的依赖也促进了电子科技的进一步发展而串行通信接口技术正是电子科技的重中之重。有需求就有市场科技永远是人们生活中的一大主流,这就为串行通信接口的发展铺上了一条光明大道。 1.2课题在国外的研究发展状况 串行通信接口技术的发展越来越迅速蓬勃不仅仅表现在国内在国外发展同样迅猛由于国外政府对于IT行业的重视和照顾纷纷采取了一系列相关政策来促进串行通信技术发展使的串口技术成为了进入宽带化、网格化而且还具有了移动性、泛在性的可信网。例如美国的EIA、微软等协会、公司对串口技术的重视不断对串口技术进行升级改良。iphone、三星等国外智能手机的不断升级改良也离不开串行通信接口技术的进一步发展,所以人们想要生活的更好电子技术的研究是必不可少的而其中的串行通信技术也是重中之重。

基于51单片机的双机串行通信课程设计 1000110061

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

于RS485的多机通信程序主机端

于RS-485的多机通信程序(主机端) //-----------------------函数声明,变量定义--------------------- #include ; sbit RE_DE=P1^0; #define COUNT 10 // 定义接收缓冲区大小 #define Slaver_NUM 10 unsigned char bdata flag; //在可位寻址去定义一个标志变量 sbit time_over_flag =flag^0; //接收超时标志unsigned char buffer[COUNT]; //定义缓冲区unsigned char point; //定义缓冲区位置指示unsigned char Slave_AD[Slaver_NUM]; //定义有效地址存放区 unsigned char ADD_num; //有效地址个数 unsigned char idata count_10ms; //用于表示有多少次10ms中断 unsigned char idata send_data[7]={ 0x31,0x32,0x33,0x34,0x35,0x36,0x37}; //与定义发送数据,共7位 void UART_init(); //串口初始化函数

void COM_send(void); //串口接收函数 unsigned char CLU_checkdata(void); //计算校验位函数 //--------------------------------------------------------------- // 函数名称: UART_init()串口初始化函数 // 函数功能:在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s // 串口接收中断允许,发送中断禁止,设定定时器中断允许 //--------------------------------------------------------------- void UART_init() { //初始化串行设置 SCON =0x58; //选择串口工作方式为1,打开接收允许,TB8=1 TMOD =0x21; //定时器1工作在方式2,定时器0工作在方式1 TR1 =1; //启动定时器T1 ES=1; //允许串行口中断 PS=1; //设计串行口中断优先级

异步串行接口电路及通信系统设计设计报告

异步串行接口电路及通信系统设计 设计报告 2009级可编程逻辑课程名称: 实验题目:学生姓名: YC 开课学院: Bio开课时间: 2011课程设计可编程逻辑设计异步串行接口电路及通信系统设计、SXL、ZY、YLJ、WJ 学院至2012学年第二学期重庆大学本科学生课程设计指导教师评定成绩表学院年级学生姓名课程设计题目be学院2009级指导教师专业Zxm. Wxp. BME YC、SXL、ZY、YLJ、WJ 异步串行接口电路及通信系统设计指导教师评语课程设计成绩指导教师签名:年月日重庆大学本科学生课程设计任务书课程设计题目学院BE学院异步串行接口电路及通信系统设计专业BME 年级、班09 BME 01、02班

设计要求:设计一个能进行异步全双工串行通信的模块,该模块以固定的串行数据传送格式收发数据。1)每帧数据供10 位,其中1位启动位,8位数据位,1位停止位。2)波特率为:9600。3)收发误码率摘要摘要通用串口是远程通信接口,在数字系统使用很普遍,是一个很重要的部件。本论文使用VHDL语言描述硬件功能,并适当借助Verilog HDL 语言,利用在FPGA 芯片上的综合描述,采用模块化设计方法设计UART的各个模块。其中包括波特率发生器,程序控制器,UART数据接收器和UART数据发送器,采用的外部时钟为50MHZ,波特率为9600。在QuartusII 环境下进行设计、编译和仿真。最后的程序编译仿真结果及硬件测试结果表明系统设计完全正确。关键字:VHDL; Verilog HDL;UART; 帧格式; FPGA;异步通信I 摘要Abstract In this paper, the use of

RS485接线的正确原理图

RS232 通讯原理 ? RS485通讯原理?RS422 是什么? RS485接线的正确原理图常见的RS485错误接线 RS-232是串行数据接口标准,最初都是由电子工业协会(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作前缀称谓。 备注:以上是官方的专业描述,看不懂没有关系,大致有个印象就可以了,有兴趣的可以上网可以买一些专业书籍做深入研究,我再用通俗的语言补充描述一下。 RS232通讯的基础知识: RS232通讯又叫串口通讯方式。是指计算机通过RS232国际标准协议用串口连接线和单台设备(控制器)进行通讯的方式。 通讯距离:9600波特率下建议在13米以内。 通讯速率(波特率Baud Rate):缺省常用的是9600 bps,常见的还有1200 2400 4800 19200 38400等。波特率越大,传输速度越快,但稳定的传输距离越短,抗干扰能力越差。

RS485串行通信电路设计

RS485串行通信接口电路的总体设计 在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。 实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧配置RS485/RS232转换器,或者购买适合PC机的RS485卡。这些附加设备的价格一般较贵,尤其是一些RS485卡具有自己独特的驱动程序,上位PC机的通信一般不能直接采用WINDOW95/98环境下有关串口的WIN32通信API函数,程序员还必须熟悉RS485卡的应用函数。为了避开采用RS485通信协议的上述问题,我们决定自制RS485/RS232转换器来实现单片机和PC机之间的通信。 单片机和PC机之间的RS485通信硬件接口电路的框图,如下图1所示。 从图1可看出,单片机的通信信号首先通过光隔,然后经过RS485接口芯片,将电平信号转换成电流环信号。经过长距离传输后,再通过另一个RS485接口芯片,将电流环信号转换成电平信号。 图1单片机与PC机之间的RS485通信硬件接口电路的框图(略) 该电平信号再经过光电隔离,最后由SR232接口芯片,将该电平信号转换成与PC机RS232端口相兼容的RS232电平。由于整个传输通道的两端均有光电隔离,故无论是PC机还是单片机都不会因数据传输线上可能遭受到的高压静电等的干扰而出现“死机”现象。 2接口电路的具体设计 2-1单片机侧RS485接口电路的设计 单片机侧RS485接口电路如图2所示。 AT89C52单片机的串行通信口P3 0(RXD)和P3 1(TXD)的电平符合TTL/CMOS标准(逻辑“0”的电平范围为0V~0.8V,逻辑“1”的电平为2 4V~VCC),它们首先通过光电隔离器件6N137隔离,以保护单片机不受传输通道的干扰影响,其中T01和?T02是为了增加光隔输入端的驱动能力。光隔6N137的左侧电源与单片机相同,右侧必须采用另一组独立的+5V电源,且两组电源不能供电。 图2单片机侧RS485接口电路

RS485主从式多机通讯协议

RS485主从式多机通讯协议 一、数据传输协议 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息按本协议发出。 1、数据在网络上转输 控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。 主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。 从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。 2、在对等类型网络上转输 在对等网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。 在消息位,本协议仍提供了主—从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。 3、查询—回应周期 (1)查询 查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。错误检测域为从设备提供了一种验证消息内容是否正确的方法。 (2)回应 如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。 二、传输方式 控制器能设置传输模式为RS485串行传输,通信参数为9600,n,8,1。在配置每个控制器的时候,在一个网络上的所有设备都必须选择相同的串口参数。 地址功能代码数据数量数据1 ...….数据n CRC字节 每个字节的位 · 1个起始位 · 8个数据位,最小的有效位先发送 · 1个停止位 错误检测域 · CRC(循环冗余码校验) 三、消息帧

单片机RS-485通信源程序

附录一、主机源程序 #include unsigned char xdata table[5]; unsigned char code tab[]={0x03,0x9f,0x25,0x0d, 0x99,0x49,0x41,0x1f, 0x01,0x09,0x05,0xc1, 0x63,0x85,0x61,0x71,0xff}; sbit ctrl=P1^2; sbit DATA=P1^0; sbit CLK=P1^1; void show(unsigned char m)//LED显示子程序 { unsigned char i,d; d=tab[m]; for(i=0;i<8;i++) { DATA=d&0x01; CLK=0; CLK=1; d=d>>1; } } void interrupt0(void) interrupt 0 using 0//串行中断程序{ unsigned char cm0,cm1,sum0,sum1,i; lab: sum0=0; ctrl=1;//将MAX485设置为发送方式 SBUF=0xFF;//发送数据申请 while(TI!=1); ctrl=0; //将MAX485设置为接收方式 TI=0; while(RI!=1); cm0=SBUF;//接收申请确认信号 RI=0; if(cm0==0xff) { i=0; ctrl=0; while(RI!=1); cm1=SBUF; //接收第一个数据 RI=0;

while(cm1!=0xf0) { table[i]=cm1; while(RI!=1); cm1=SBUF;//接收后续的数据 RI=0; i++; } for(i=0;i<4;i++) sum0=sum0+table[i];//计算校验和 sum1=table[4];//获取收到的校验和 if(sum0==sum1) { ctrl=1; SBUF=0xf0; //发送数据确认信号 while(TI!=1); TI=0; for(i=0;i<4;i++) show(table[i]); } else goto lab; } else goto lab; ctrl=1;//将MAX485设置为发送方式return ; } void main(void) { SCON = 0x50; //串口方式1,允许接收TMOD = 0x20; //定时器1 定时方式2 PCON=0x80; //设SMOD=1; TH1 = 0xFA; //11.0592MHz 9600 波特率TL1 = 0xFA; TR1 = 1; //启动定时器 EX0=1; //开外部中断0 IT0=0; EA=1; //开总中断 ctrl=1;//将MAX485设置为发送方式while(1); //等待中断 }

相关文档
最新文档