---世纪新锐文档区欢迎你的到来!交流经验 资源共享!如果你有网站 欢迎转载 更欢迎链接 谢谢你!

芯锐科技——明智之选 好伙伴!

21XR.COM 世纪新锐-----> 电子技术类文档 综合版-----> PIC/51/TI单片机

最近更新

网页制作

计算机应用

PIC单片机

DSP技术

51/TI单片机

电子操作

电视技术

音响技术

无线电技术

仪器仪表

电子CAD

    <--- 返回

分布式测控系统通信卡的研制

--基于PC总线的RS-485/232通信卡


  摘要对分布式测量控制系统的通信部分进行了探讨。作者根据分布式系统的特点及工程要求,设计了一个基于PC总线的通信接口卡。该卡采用了隔离的RS-485通信方式,具有硬件开放、抗干扰能力强、ESD保护、易于组网等特点。本文详细介绍了该卡硬件及其通信软件的研制开发过程,以及相关经验。

  关键词分布式测控系统通信接口卡RS-485ESD保护抗干扰

 

1引言

广告:>>

  随着数字技术的发展,以计算机为站点的分布式系统在工程中得到日益广泛的应用。例如分布式目标监控系统,数据采集系统以及工业自动化系统等,这些系统的各站点需要向主机或互相之间进行数据的交换及通信。
  目前,有些系统的站间通信仍然采用异步串行通信方式中的RS-232C接口标准和比较老的电流回路等。采用这种信号传输方式,随着信号传输距离的增加和速率的提高,传输线上的衰减、共地噪声等干扰的影响会显著加强,从而引起信号的畸变,由此限制了通信距离和传输速率。而在工程上的长距离通信应用中,RS-485接口标准有其独特优势。该标准采用平衡发送和差分接收,因此具有抑制共模干扰的能力,而且灵敏度高,能检测出低至200mV的电压,所以传输信号能在千米以外得以准确恢复;并且以此标准只用一根双绞线就可以实现多站联网,构成分布式系统的设备简单、价格低廉,故能在工程项目中得到广泛的应用。
  现今市场上已有应用于网络通信、DCS或PLC系统的RS-485通信卡产品,但一般价格较高,且硬件内部对系统设计者不开放,所以作者研制了一个便于系统设计者使用的通信卡,该卡的硬件设计开放,使用者可以对其进行灵活方便的编程,且适用于多种工业环境。以下介绍该卡的研制开发过程。

2通信卡的总体设计

2.1要求

  在分布式测控系统中,通信卡主要用于测控下位计算机与上位计算机的数据交换。分布式系统中的一个上位机要带多个远程测量单元,因此首先在通信距离上不能少于500米。其次,在构成通信网时,站与站之间可能会有很高的共模电压,而且传输线要经过工业现场,有可能会受到强大的干扰,因而通信卡必须要有很好的抗干扰能力。另外,通信线路还有可能经过某些特殊环境,如电厂、变电站、架空等等。实践表明,在这些环境里通信线上有时会寄生强静电,还有可能遭受雷电感应袭击,这种瞬间干扰对通信卡以及上、下位计算机的破坏都是具有毁灭性的,因此必须设计出周密的保护方法。当然,通信卡的成本不宜太高,而且在组成分布式通信网时越简单、越廉价越好。

2.2方案

  通信卡总体框图如图1所示。
  方案的核心部分是可编程异步串行通信接口芯片8250,在经过与PC总线进行I/O扩展之后,8250能够读写总线上的并行数据,并可在程序的驱动下将这些数据以串行方式输入输出。输出的是TTL电平的串行信号,再经过光电耦合电路,实现信号的电气隔离,然后由RS-485收发器将这个信号变换成差分信号发送。通信卡上还有RS-232收发器,这主要是考虑到在某些特殊场合,需要与有RS-232接口的仪器交换数据而设计的。

3主要电路的实现及原理分析

3.1总线扩展及板号发生电路

xm1.GIF (3181 bytes)

图1通信卡组成框图

  图2为通信卡的总线扩展及板号发生电路。图2的左半部分为IBM-PC/XT系统的I/O扩展槽,具有62个引脚,常称为PC总线或XT槽。XT槽的62个引脚分布在两面,分别标注为A1~A31和B1~B31,其中A面对应扩展卡的元件面,B面对应扩展卡的焊接面,引脚的标号从机箱的后部起始。引脚间距(中心距离)为1/10英寸,即2.54mm。XT槽的62个信号包括时钟与复位信号,20条地址线,8位双向数据线,存储器和I/O读写控制线,6个中断请求线,3个DMA总线请求线,各线均为TTL电平。此外,还有4组电源和地线等。

xm2.GIF (16317 bytes)

图2 板号扩展及板号发生电路

  图2右半部分为通信卡与PC总线接口部分的电路。图中地址译码器74LS138的3个使能端XM7.GIF (83 bytes)XM8.GIF (83 bytes)、E3分别接到PC机地址总线的A4、A5、A9,所以只有当A4、A5、A9分别为0、0、1时译码器才能工作。译码器的3个输入端C、B、A又分别接至A6、A7、A8,于是如表1所示当译码器工作时,A6、A7、A8为001时,输出XM9.GIF (79 bytes)选中(300~30FH)地址,为101时输出XM10.GIF (82 bytes)选中(340~34FH)地址。XM9.GIF (79 bytes)是给8250和数据总线缓冲器74LS245提供片选;XM10.GIF (82 bytes)给板号缓冲器提供片选。另外将3个低位地址A0、A1、A2直接接到8250的A0~A2,XM11.GIF (98 bytes)(I/O接口读使能)接到缓冲器的方向控制和8250的XM12.GIF (132 bytes)(读使能),XM13.GIF (103 bytes)接到8250的DISTA(写使能)。这样计算机就可以寻址访问8250的内部寄存器,可以对扩展口进行读写。注意这种接口译码方式要避免与PC机固有地址冲突。PC机的地址分配见表2。 

xm3.GIF (2068 bytes)

3.2可编程异步通信接口INS8250

  INS8250是可编程的异步通信接口芯片,它的引脚及接线如图3所示,主要性能如下:
  (1)完全双工、双缓冲器发送和接收的异步通信接口电路。
  (2)通信波特率:50~9600,共分为50种。
  (3)每字符可传5~8位。
  (4)停止位可编程选择为1、1.5和2位。  

xm4.GIF (4756 bytes)
  5)可产生中止字符(输出连续低电平,以通知对方中止通信)。
  (6)可进行奇偶校验,可选择奇校验或偶校验。
  (7)出错检测,具有奇偶、溢出和帧错误等检测电路。
  (8)片内具有优先权中断控制逻辑,具有很强的中断控制功能。
  简而言之,该电路可以在程序的控制下,把数据总线上的并行数据按设定从SOUT端串行发出,或把SIN端的串行数据按设定接收并变为可被总线读取的并行数据。至于芯片的内部结构及详细的程序控制方法,请参看参考文献1

3.3RS-485驱动电路   

通信卡的485驱动部分主要由MAX485E完成,该芯片是具有ESD(静电放电)保护功能的RS-485收发器。收发器的主要特性为:半双工通信方式,波特率可高达2.5Mbps,通信总线可挂接32个收发器,±15kV静电放电保护。构成的驱动部分的电路如图4。图中IC7-TLP-4是四路光耦芯片,R1、R2、R3为发光二极管的限流电阻,R4、R5、R6为光敏三极管的集电极电阻。DC-DC是直流-直流转换器,能产生一个与输入电源隔离的新直流电源。由SOUT输入的TTL电平经过非门和光耦两次反相后,加在MAX485E的数据输入端(DI);XM14.GIF (102 bytes)(READY TO SEND)经过光耦反相后接至驱动使能端(DE)。当发送数据时,XM14.GIF (102 bytes)变成低电平,则DE为高有效,于是DI上的TTL电平变成485标准的差分信号发送出去。接收同理而反之。由图上还可以看到,由于使用了隔离的电源和不同的地,485驱动部分与输入的TTL电路在电气上是隔开的。之所以采用这种光耦结合DC-DC的隔离,主要是针对设计要求中对瞬间毁灭性干扰的保护问题。采用隔离技术以后,即使是超越MAX485E的ESD保护范围的静电或者是雷电感应加在信号线上,只会毁坏驱

xm5.GIF (6231 bytes)

图3 INS8250引脚xm6.GIF (4792 bytes)

图4RS-485驱动电路

动器或光耦这两个器件,不至于破坏整个后级系统。如果在实际板件中再加上这两个器件的冗余备用插座,将使板件的可靠性更大程度地提高。通信卡上的RS-232的驱动部分使用MAX232来完成由TTL到RS-232的电平转换。

4通信卡的软件设计

  由于程序的操作实际上就是对通信卡上地址的读写,因此软件设计中要特别注意这一点。这里介绍一个发送并接收板号的程序,该程序是利用本通信接口卡硬件设计上允许自发自收这一点,执行了读入板号,发送出去,然后再接收并读入,所以此程序可用于对通信接口卡的自检。该程序用TURBOC编写,并在研华386工控机上运行成功。

 
#include "stdio.h"
#include "dos.h"
 main()
{  int a,b,c;
//8250initialize:
  outportb(0x30b,0x80);
//set DLAB=1
  outportb(0x308,0x0c);
//set BAUTrate DLL
  outportb(0x309,0x00);
//set BAUTrate DLM
  outportb(0x30b,0x1f);
//set line control register LCR
  outportb(0x30c,0x03);
//set MODEMcotrol register MCR
  outportb(0x309,0x00);
//set int enable register IER
a=inportb(0x340);
printf("\nthe board code:");
printf("%d\n",a);
outportb(0x308,a);
printf("sending...");
  do {c=(inportb(0x30d))&0x40;}
  while (!c);
do
{b=inportb(0x30d);
if(b&0x1e)
{printf("data error!");
exit() ;}
while (!b&0x01);
b=inportb(0x308);
printf("\nrec boardcode:%d\n",b);
    printf("complete!");

5调试及使用

  在分部实验测试RS-485驱动电路时,可用信号源产生一个TTL电平的方波,将此方波加到MAX485E的数据输入端DI,并使驱动使能DE有效,用示波器观察485的输出端波形,可以看到A、B线上为差动的方波。然后调节信号源的输出频率,当频率在4.8kHz时输出波形良好,也就是说,驱动器在9600bps的数据率下能正常工作。继续调高频率,发现输出波形在占空比上有很大的畸变,甚至完全没有输出。检查后发现这是由光耦的开关时间造成的,但该光耦对9600bps以下的信号不产生影响。如果要考虑提高通信数据率,必须选用高速光耦,如TI公司的TIL193B。UART8250也限制了数据率的提高,如果用TI公司TL16C450、TL16C550等与8250功能兼容的芯片,在通信速率上可以大大改善卡的性能(详见TI数据光盘)。
  在制成印刷电路板后,一定要严格检查,确保线路的正确,无短路、漏电处。如不仔细检查,在插入PC总线槽进行调试时,就有可能损坏整个工控计算机。运行测试程序可由小到大,由零到整。例如,检测发送时可以让机器循环发送某个固定数据,如果接口卡运行正常的话,将输出一个固定波形的485信号,可以用示波器清楚地判断输出正确与否。
  在将本接口卡应用于系统通信时,对传输线的选择、铺设、匹配也是必须注意的问题。RS-485信号收发系统中,一般选择双绞线作为信号传输线。我们知道信号在传输线上传送,若遇到阻抗不连续的情况时,就会出现反射现象,从而影响信号的远距离传送。因此必须采用阻抗匹配的方法来消除反射。普通双绞线(一般要求节距D/d<=10,D为节距,d为线外径)的特性阻抗一般在110~130Ω之间,这个值与线的绝缘材料的厚度有关,而与线绞合的松紧程度关系不是很大。例如SBUR0.12mm导线,每米绞100匝时特性阻抗是123Ω,每米绞40匝时,为129Ω。为了与这个特性阻抗进行匹配,通常在传输线末端接120Ω电阻。对于信号传输线,不仅要注意它的特性阻抗,还要注意它对信号的衰减,往往不同型号的双绞线,其特性阻抗有可能相同,但对信号的衰减却不同。尤其是在长距离通信中,导线电阻对传输有着不可忽略的影响。具体影响可根据所用的传输线每单位长度的电阻值及终端所接匹配电阻的大小进行计算。
  另外,在系统安装过程中,传输线最好采用屏蔽线,而且应尽量做到信号传输线单独铺设,不要与交流电电缆铺设在一条电缆沟中;强信号线和弱信号线应尽量避免平行走向,尽量使二者正交,以使电磁耦合干扰减到最小。如果难以做到正交,也可以平行布线,但两者距离应足够大。
  RS-485标准在工程上已被广泛采用,本文介绍的RS-485通信卡的研制,旨在探讨如何让该标准更好地在工程领域里发挥作用。

参考文献

1周明德.微型计算机原理及应用(上册).清华大学出版社,1991
2钱受宇,杜斌.微机通信技术.电子科技大学出版社,1992
3路有容.PC系列微机接口扩展设计.成都科技大学出版社,1994
498新产品研讨会资料. P&S武汉力源电子股份有限公司
5MAXIM产品资料全集.P&S武汉力源电子股份有限公司

 

21XR.COM 版权所有 联系我们