RS485总线调试设备的接口设计

2011-10-27 00:46卢亚普陈强张世福
中国科技信息 2011年1期
关键词:校验串口总线

卢亚普 陈强 张世福

大庆钻探工程公司测井公司 大庆 163412

RS485总线调试设备的接口设计

卢亚普 陈强 张世福

大庆钻探工程公司测井公司 大庆 163412

介绍了RS485总线调试设备的实现原理,论述了三种总线接口及通信软件的实现方法,完成了对石油测井仪器工作状态的显示。

USB;RS232;RS-485;API;奇偶校验

USB;RS232;RS-485 ;Parity Check

引言

现代石油测井仪器研究和生产过程中,经常要对数据进行采集分析。RS485总线调试设备的设计目的,就是采集仪器信息、显示仪器工作状态,满足生产调试需求。此设备与井下仪器采用RS485总线进行通信;与计算机通讯采用U S B和RS232双接口的设计。

1 三种总线接口基本原理

USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB总线属一种轮讯方式的总线,主机控制端口初始化所有的数据传输。在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包。数据传输方向不是从主机到设备就是从设备到主机。

RS232个人计算机上的通讯接口之一,由电子工业协会所制定的异步传输标准接口。异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,最后一个停止位。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。

RS-485是工业界使用最为广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络;具有传输距离远(最大传输距离1200m),传输速率快(1200 m时为100kb/s),抗干扰能力强,布线简单等优点。

2 接口硬件电路

2.1 USB接口硬件电路构成

U S B接口芯片采用C H系列的CH372芯片,该芯片是一个USB 总线的通用设备接口芯片,是CH371 的升级产品,是CH375芯片的功能简化版。 在本地端,CH372 具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机 /DSP/MCU/MPU 等控制器的系统总线上;全速USB 设备接口,兼容USB V2.0,即插即用,外围元器件只需要晶体和电容。提供一对主端点和一对辅助端点,支持控制传输、批量传输、中断传输。该设备采用8951作为控制器,其接口原理如图1所示:

图1 USB接口电路图

2.2 232接口硬件电路构成

51 单片机通过I/O口与PC 机RS232串口实现通信的硬件接口电路如图2示。5 1单片机的输入、输出均采用T T L电平;而PC机采用的串行通信标准为RS-232。RS-232规定了自己的电气标准,由于它是在TTL电路之前研制的,所以它的电平不是+5V和地,而是采用负逻辑,即:

逻辑“0”:+5V~+15V

逻辑“1”:-5V~-15V

因此,RS-232C不能和TTL电平直接相连,使用时必须进行电平转换,否则将使TTL电路烧坏。MAX232芯片就是MAXIM公司专门为PC机RS-232标准串口设计的电平转换电路。该芯片与TTL/COMS电平兼容,片内有2个发送器,2个接收器,且使用+5V单电源供电,使用十分方便。图中 89C51 的 P1.2模拟发送端,P1.3 模拟接收端。

图2 232接口电路图

图3 485接口电路图

2.3 485 接口硬件电路构成

如图3,单片机的标准串行口的RX 、TX通过光电隔离电路连接MAX485芯片的RO 、DI引脚,控制芯片R/D同样经光电隔离电路去控制MAX485芯片的DE和RE引脚。由单片机输出的R/D信号通过光电隔离器件控制MAX485芯片的发送器、接收器使能;R/D信号为“1”,则M A X 4 8 5芯片的D E和R E引脚为“1”,接收器有效,接收器禁止,此时单片机可以向RS485总线发送数据字节;R/D信号为“0”,则M A X 4 8 5芯片的D E和R E引脚为“0”,接收器禁止,接收器有效,此时单片机可以接收来自RS485总线的数据字节。

3 通信软件实现

在进行数据通信时,必须解决好两个方面的问题:一是可靠性、二是速度。而这两方面的问题,可靠性是第一位的,速度只能是在可靠的基础上的速度。可靠快速转输的实现需要上下位机软,件以及通信协议等各个环节的可靠和其间的相互配合。在设计PC— MCU通信协议时,说明一点:本系统的实际通信中PC机永远是主控者,单片机只是被动接收者。

3.1 PC— MCU通信程序设计

对于不同的PC— MCU应用程序,虽然界面不同,但是如果采用串口与主机之间的通信,对串口的处理方式大致相似,无非就是通过串口收发数据,对于通过串口接收到的数据,交给上层软件处理显示,对于上层要发给串口的数据,进行转发。在Win32下,可以使用两种编程方式实现串口通信,其一是调用的Windows的API函数,可以清楚地掌握串口通信的机制,熟悉各种配置和自由灵活采用不同的流控进行串口通信;其二是使用ActiveX控件,提供了一系列标准通信命令的使用接口,利用它可以建立与串口的连接,并可以通过串口连接到其他通信设备(如调制解调器),发出命令,交换数据以及监视和响应串行连接中发生的事件和错误。后者的主要特点是简单易学 ,但前者的功能更为强大,控制手段更为灵活。所以本应用程序采用在Win32 环境下调用 API 函数来实现与位于下层的设备驱动程序进行数据通信。具体实现通讯过程如下:

3.1.1 打开串口

Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的原型为:

3.1.2 配置串口

主要有一个结构体来配置,DCB结构体。DCB结构包含了诸如波特率、数据位数、奇偶校验和停止位数等信息。在查询或配置串口的属性时,都要用DCB结构来作为缓冲区。一般用CreateFile打开串口后,可以调用GetCommState函数来获取串口的初始配置。要修改串口的配置,应该先修改D C B 结构,然后再调用SetCommState函数设置串口。

3.1.3 读写串口

初始化工作完成以后,便可以根据通信协议使用ReadFile和WriteFil两个函数,读写各种握手信息和数据信息等。ReadFile函数只要在串口输入缓冲区中读入指定数量的字符,就算完成操作。而WriteFile函数不但要把指定数量的字符拷入到输出缓冲区,而且要等这些字符从串行口送出去后才算完成操作。如果通信事件一直没有发生,系统将不会继续执行。在实际程序设计中,我们可以设置一时限,超过此时限通信事件未到则执行相应错误处理。此函数的声明形式如下:

3.1.4 关闭串口

利用API函数关闭串口非常简单,只需使用CreateFile函数返回的句柄作为参数调用CloseHandle即可:

3.2 通信程序的可靠性措施

只有通信协议是可靠的,才能保证数据传输的可靠性。主要通过以下两种措施确保通信传输的准确无误:

3.2.1 数据传输方式 用一帧来表示一个字符,其内容为:一个起始位,仅接着是若干个数据位,最后一个停止位。数据发送和接收均将起始位和停止位作为开始和结束的标志,这样就可以降低数据传输的误码率。

图4 一帧数据格式

3.2.2 检错校验方式 在串口数据通信中,常用的检错校验方法有两种:

冗余校验码(CRC),基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+ r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。是一种高效的差错控制方法,实现相对复杂。

奇偶校验,通常用在数据通信中来保证数据的有效性。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。校验处理过程简单,应用广泛,一般异步传输模式选用偶校验。

通信程序采用异步传输模式进行数据传输,格式如下:

通过以上两种措施的应用,数据传输出错的可能性就会极大的降低,确保传输的数据是可靠、准确的。

4 结论

经过电路软、硬件调试和部件组装,RS485总线调试设备实现了单片机与PC机之间的数据通讯,完成了对井下仪器数据的采集分析,适应了生产调试的需求,实践证明有较强的实用价值。

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

[2]李朝青.PC机与单片机数据通信技术[M].北京:北京航空航天大学出版社.2003

[3]冉林仓.Windows API编程[M].北京:清华大学出版社.2005

[4]朱友芹.新编WIN32 API 参考大全[M].北京:现代出版社.2000

[5]大庆测井公司.PCM9801-R1数传协议.2006(资料)

In the paper ,the principle and implementation of the RS485 bus debugging system is introduced, discussed the three bus interface and the realization method of communication software, has completed to the well logging instrument active status demonstration.

10.3969/j.issn.1001-8972.2011.1.019

卢亚普,黑龙江省大庆市让胡路区银浪测井公司研究所。

猜你喜欢
校验串口总线
使用Excel朗读功能校验工作表中的数据
浅谈AB PLC串口跟RFID传感器的通讯应用
一种基于CAN总线的误码测试方法
炉温均匀性校验在铸锻企业的应用
电子式互感器校验方式研究
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计