RS-232 串口通信在汽车检测仪器设备中的应用及故障处理方法
2020-12-04佛山市南海瀚顺机动车检测有限公司罗永康
佛山市南海瀚顺机动车检测有限公司 罗永康
随着计算机及网络技术的飞速发展,生产第一线的仪器设备有序地完成着各自的操作,使得工业自动化的传感系统、控制系统、管理系统的功能得以充分发挥,从而实现了工作效率上的优化。在工业自动化中,需要对现场仪器设备的数据进行实时精确的处理,同时仪器设备又要完成自身内部的各种指令。通常以工控机为上位机,单片机为下位机,单片机直接面对被控制对象。它们相互间有着大量的数据需要交换,而这些都是由RS-232串口通信来完成的。本文论述RS-232串口通信在汽车检测仪器设备上的应用,并结合RS-232串口通信的相关知识来探讨其在汽车检测仪器设备上的使用注意事项和故障处理方法。
1 RS-232串口通信在汽车检测仪器设备上的应用
目前,在我国,在用汽车检测是国家强制性的,包括安全检测、性能检测和环保检测,在用汽车执行国家相关标准并按要求进行相应的检测。汽车的检测项目由检验人员操作各工位上的仪器设备来完成,各工位上的仪器设备通过RS-232串行通信接口连接至工控机并与其通信,工控机连接局域网,服务器连接外域网平台,具体的工作示意如图1 所示。其中,使用RS-232串口通信的汽车检测仪器有尾气分析仪、不透光烟度计、雷达外廓检测仪、油耗测试仪、前照灯检测仪、声级计、路试仪、GPS速度测试仪、发动机转速测试仪和环境气象站;使用RS-232串口通信的汽车台架设备有底盘测功机、车速检测台、制动检测台、侧滑检测台、轴重检测台和悬架装置检测台。
图1 RS-232串口通信在汽车检测仪器设备中应用
2 RS-232串口通信的简介
2.1 RS-232C标准
RS-232C标准(协议)的全称是EIA-RS-232C标准,是常用的串行通信接口标准之一。其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(Recommeded standard)代表推荐标准,232是标识号,C代表RS-232的最新一次修改(1969年),在这之前有RS-232A、RS-232B。RS-232C标准的全名是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定了串行通信接口的连接电缆、机械特性、电气特性、信号功能及传送过程。
2.2 RS-232接口连接器的类型和结构
由于RS-232C并未定义连接器的物理特性,因此出现了DB-25、DB-15和DB-9各种类型的连接器,其端子定义各不相同。其中,DB-25、DB-9连接器的结构示意如图2所示。
图2 DB-25、DB-9连接器的结构示意
2.3 RS-232接口主要信号线的功能定义
DB-25连接器中RS-232标准接口有25条线,分别为4条数据线、11条控制线、3条定时线和7条备用未定义线,其中常用的有9条线,其端子的信号说明见表1所列。
表1 DB-25连接器中RS-232标准接口常用端子的信号说明
2.4 RS-232通信物理接口
大多数汽车检测仪器设备采用单片机89C系列来实现自动控制及数据传输,并通过RS-232接口与上位机进行数据通信。常用的物理接口有以下2种。
2.4.1 上位机(计算机)和下位机之间的物理接口
计算机使用DB-9接口作为COM1口,下位机使用MAX232芯片,建立RS-232串口通信的具体方法如下。
首先需要确认计算机DB-9接口连接器、MAX232芯片上TXD(发送)、RXD(接收)、GND(信号地)端子。根据计算机DB-9接口连接器的端子定义,得知端子2为RXD(接收)端子、端子3为TXD(发送)端子、端子5为GND(信号地)端子;根据MAX232芯片的端子定义,得知端子7为TXD(发送)端子、端子8为RXD(接收)端子、端子15为GND(信号地)端子。接着将计算机DB-9接口连接器的端子2与MAX232芯片的端子7连接;计算机DB-9接口连接器的端子3与MAX232芯片的端子8连接;计算机DB-9接口连接器的端子5与MAX232芯片的端子15连接并形成公共接地。具体的线路连接示意如图3所示。
图3 计算机和MAX232芯片的连接示意
2.4.2 上位机(计算机)、单片机89C系列和MAX232芯片之间的物理接口
汽车检测系统中的仪器若要实现自身的操作功能,除了需要与计算机通信外,还需要与单片机进行数据或指令交换。MAX232芯片内部集成有2个RS-232驱动器,同时满足计算机和单片机的通信要求。MAX232芯片上的其中一组端子7、端子8与计算机连接通信,另外一组端子9、端子10与单片机连接通信。具体的线路连接示意如图4所示。
2.5 串口通信参数
2.5.1 波特率的概念
在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒传送二进制数码的位数,其单位为bps。RS-232C标准中规定的传送速率有50 bps、75 bps、110 bps、150 bps、300 bps、600 bps、1200 bps、2400 bps、4800 bps、9600 bps、19200 bps。如果设定数据传送的波特率为2400 bps,采用N.8.1帧格式(10位),则1 s传送字节为2400个,那么字节中每一位传送时间就是波特率的倒数:t=1/2400=0.00042 ms。
由此可知,根据数据传送的波特率,就可以确定出每一位字节的传送时间,实现I/O口的串行通信时序;一般可以灵活选择波特率,但需要注意的是,上、下位机波特率要一致;对于设备是慢速的应选择较低的传送速率;反之,建议选择较高的传送速率。
图4 计算机、单片机和MAX232芯片的连接示意
汽车检测仪器设备的波特率一般选择2400 bps,这样能更好地实现过程数据的响应。
2.5.2 起始位(Start Bit)
起始位是用来表示单个数据包中的开始字符传送位,起始位使数据线开始处于低电平逻辑0状态,提示接收器数据准备好开始传输。
2.5.3 数据位
数据位紧跟在起始位之后,它是衡量通信中实际数据位的参数,数据位的标准值是5位、7位、8位。比如,标准的ASCII码是0~127(7位),扩展的ASCII码是0~255(8位),具体的设置主要由传送的信息量来决定。
2.5.4 奇偶校验位
在串口通信中一般会设置校验位,以数据位后面的一位进行检错,用一个值确保传输的数据有偶数个或奇数个逻辑高位。
2.5.5 停止位
停止位是用来表示单个数据包中的最后一位,其值为1位、1.5位或2位。因为所发出的数据包在传输过程中是有持续时间点的,所以需要停止位来表示传输结束。另外,对于每台设备来说都会有自己的时钟,很可能在通信中两台设备出现时钟不同步问题,设置停止位能够为计算机提供校正时钟同步的机会。
2.5.6 串口通信参数的格式
串口通信参数的格式如图5所示。
2.6 RS-232接口电气特性
R S-232 C 规定采用负逻辑电平,DC(-15 V~-3 V)表示逻辑1,DC(3 V~15 V)表示逻辑0。在实际使用中,经过测量,得知-3 V~3 V为过渡区,-9 V~-7 V为合理驱动电压。
图5 串口通信参数的格式
在TXD、RXD线上,逻辑1(MARK)为-3 V~-15 V;逻辑0(SPACE)为3 V~15 V;在RTS、CTS、DSR、DTR及DCD等控制线上,信号有效时为ON状态,接通,正电压;信号无效时为OFF状态,断开,负电压。
2.6.1 PC机RS-232接口与单片机之间的电路
因为PC机RS-232接口信号电平与单片机的信号电平(TTL电平,TTL是Transistor-Transistor Logic,即晶体管-晶体管逻辑的简称,它是计算机处理器控制的设备内部各部分相互之间通信的标准技术)不一致,所以在它们之间需要设置电路来进行电平转换。通常这个电路都选择专用的RS-232接口电平转换集成电路进行设计,如MAX232芯片、HIN232芯片等。
在实际应用中,MAX232芯片由单一的5 V电源供电,配备高精度的钽电容RS来完成电平转换,转化后的串口信号TXD和RXD就可以直接与上位机连接通信了。
2.6.2 串口通信的传输电平数据帧格式
串口通信的传输电平数据帧格式显示为0和1逻辑关系,TTL电平和RS-232电平的数据帧0和1逻辑关系是有区别的,即两者高低电平不相同。例如,对于十六进制数据55aaH,当采用8位数据位、1位停止位传输时,首先传输第一个字节55,接着传输第二个字节aa,每个字节都是从低位向高位逐位进行传输。它在信号线上的传输波形如图6和图7所示。
图6 TTL电平的串行数据帧格式传输波形
图7 RS-232电平的串行数据帧格式传输波形
2.7 RS-232串口通信流程
在RS-232串口通信中,数据是一位一位有序进行传送的,以应答模式建立数据交换,具有特定的方向性。按照数据流的方向分为单工、半双工和全双工3种传输方式,大多数汽车检测仪器设备采用半双工和全双工的传输方式,拥有强大的服务功能,且方便固件升级。
2.7.1 数据的发送与接收
如图8所示,上位机通过TXD发送出数据,下位机通过RXD接收数据的流入;下位机通过TXD发送出数据,上位机通过RXD接收数据的回应,上位机、下位机一问一答完成数据或指令交换,按照设计好的程序执行各自的运作。
图8 上位机与下位机之间的数据通信
2.7.2 通信协议
上位机和下位机通信双方共同达成应答模式的约定功能码,包括对数据格式、同步方式、传送速度、传送步骤、检错方式、控制字符等做了统一规定,双方共同遵守。
3 RS-232串口通信的优缺点
RS-232串口通信优点包括以下3点。
(1)MAX232芯片因其性能可靠在行业内得到广泛使用。
(2)一台计算机或工控机可配备多个RS-232串行通信接口,其方法是直接在计算机或工控机的扩展槽上增加多串口卡(Moxa卡),安装、维修简单。
(3)RS-232串行通信接口一般只使用3条信号线,就能实现点对点的通信,有效节约了成本,并降低了因信号线过多而造成的信号干扰。
RS-232串口通信也存在其不足的地方,包括以下4点。
(1)传输速率低,在异步通信中很少被采用。
(2)抗噪声干扰性差,严重影响了数据传输距离,尤其是在高波特率的情况下,传输距离更短。
(3)RS-232串行通信接口的信号电平较高,很容易会导致接口电路上的芯片烧坏。
(4)RS-232串行通信接口使用一根信号线和一根信号返回线而构成共地的传输形式,很容易产生共模干扰。
4 汽车检测仪器设备上RS-232串口通信的使用注意事项及故障处理方法
结合以往工作经验,现将汽车检测仪器设备上RS-232串口通信的使用注意事项及故障处理方法总结如下。
(1)设置RS-232串口通信有效的数据传输距离,理论的传输距离为10 m,一般限于15 m内;在实际使用过程中,普通三芯线建议不能超过60 m(室内);使用超六类网线建议不能超过150 m(室内)。另外,数据传输距离还需要考虑波特率的设置,一般情况下,低波特率比较稳定,但是传输速率慢;反之,高波特率传输速率快,但容易出现被干扰的情况。
(2)在雷雨季节,使用串口隔离器能够更有效地保护仪器设备上的MAX232芯片。
(3)在汽车检测线上,确保检测系统、检测仪器、检测设备的正常运作是前提,否则会导致检测项目数据的缺失,无法形成合格的车辆检测报告单。若出现不能通信的故障,快速的处理方法是,对调仪器设备上的通信线进行确认,但需要注意设置对应的COM口和波特率的同步,从而快速确定上、下位机的问题所在。
(4)对于单片机串口通信的检查,可使用万用表分级测量TXD线的电压(正常情况下,TXD线的电压应为-10 V~-5 V),从而判断是前、后级TXD线的故障,还是MAX232芯片故障。
(5)MAX232芯片一般设置为可插拔式,可直接对调MAX232芯片进行芯片故障的确认。注意仪器设备应处于断电状态,并留意MAX232芯片连接器的连接方向。另外,在工业自动化控制中,MAX202芯片和MAX232芯片一般可以互换使用。
(6)使用串口通信测试软件或监控软件做助手,能够更好地判断和处理串口通信的问题。