新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Windows 2K平台下多机通信卡

Windows 2K平台下多机通信卡

作者:时间:2012-05-15来源:网络收藏

摘要:在工业现场,监控系统经常采用RS-485/423/422标准。然而,在下,复杂的多机和大数据量的传输会加重计算机的负担。作者采用自制的多机卡解决了这一问题。本文介绍了下多机通信的基本原理,论述了多机通信卡的设计方法,进一步阐述了驱动程序设计的一般原则。

本文引用地址:http://www.eepw.com.cn/article/149062.htm

关键词:RS-485,单片机,多机通信,WDM

1引言

在电力监控系统中,为保证数据通信的可靠性,从机经常采用RS-485标准接口同主机进行通信。通常,主机是一台安装有9X、WinNT或Windows等操作系统的计算机。从机为8051单片机系统,8051串行口的输入输出为TTL电平,抗干扰性较差,只能在几米的范围之内传输数据。

为了增强抗干扰性,提高串地通信的可靠性,增加传输距离,必须采用标准串行总线接口。若将串行口的输入输出电平转换成目前流行的RS-485标准串行总线接口,那么主机也必须完成相应的RS-485转换接口。普遍采用的做法是给计算机外接一个RS-485/232转换接口卡,利用现有的RS-232接口完成主机同从机之间的通信。

在单机通信的情况下,这种做法是可以的。但是在多机通信中,实现起来非常麻烦,而且会大量占用计算机CPU的时间。下面介绍Windows实现通信的几种基本方式,以及开发多机通信卡的方法和技巧。

2Windows平台下多机通信方式

利用计算机的串行通信适配器,其核心为可编程异步收发器UART8250芯片,8250由10个可寻址寄存器供CPU读/写,实现与外界的数据通信,制动通信协议和提供通信状态信息。这样,可以满足单机通信的要求。

8051单片机的串行通道是一个全双工的串行通信口,既可以实现双机通信,也可以实现多机通信。当串行口工作在方式2或方式3时,若特殊功能寄存器SCON的SM2由软件置为“1”,则为多机方式;若SM2置为“0”,则为9位异步通信方式。

在多机通信时,8051的帧格式是11位,其中第9位是SCON中的TB8,它是多机通信时发送地址(TB8=1)或发送数据(TB8=0)的标志。

计算机的串行通信接口芯片8250并不具有多机通信的功能,也不能产生类似8051的TB8。为了完成多机通信的功能,一般的实现方式是:

计算机给每台8051单片机系统发送9位数据,查询是否有要发送的数据,并等待应答。若有,则接收数据;没有,则继续查询下一台。由此可以看出,这种通信方式速度是很慢的(如果有一台8051长时间没有响应,则耗时更长),而且也并不可靠,从机的台数越多则计算机的资源浪费就会越严重。这种实现方式效率不高,不能满足我们的通信要求。

因此,直接利用计算机串口的方式进行通信是行不通的。为了尽可能减轻CPU的负担,采用自行设计的智能通信卡,利用中断方式的通信(这里指的是从机与通信卡之间的通信方式),来解决这个问题。

3通信卡与多个8051通信的原理

为完成异步串行通信,首先就需要实现异步收发器的功能,其次还要实现多机通信时发送的帧格式。考虑到8051除了实现异步收发的功能外,还可以编制控制程序,使用起来更加灵活、方便,因此,用8051来实现异步收发器。为了提高通信速度,从机与通信卡之间采用中断通信方式。

具体的实现方案如图1所示。

图示的这种硬件结构,使从机解放出来,平时不必处于监听状态。当计算机要求通信时,可以利用多机通信卡的处理器向从机发出中断信号,即通信卡通过3487(TTL电平转换为RS-485电平),从机通过3486(RS-485电平转换为TTL电平)进行从机中断信号联系。从机进入中断服务程序后,则关闭外部中断,保护现场,监听主机发送的地址信号,并对其进行识别,如果与本机地址相符,取消监听,进入通信状态。

通信卡与计算机进行通信是通过数据接口和译码电路实现的。该接口卡利用中断方式与计算机通信,即通信卡向计算机发出中断请求,计算机接收到相应中断请求后,执行数据收发的任务。其中,计算机对通信卡的访问是利用内存映射方式实现的。

4通信卡设计

该通信卡基于ISA总线工业标准。它的设计主要分为三个部分:地址译码电路、数据接口电路和控制逻辑电路。

(1)地址译码电路

由于采用的是端口统一编址的方式(也就是给每一个I/O端口分配一个存储器地址),I/O端口的寻址信号由地址总线通过译码得到。CPU用存储器读写指令对I/O接口进行读写,此时,I/O端口的读写操作控制信号采用存储器读(MEMR)和存储器写(MEMW)信号。而在通信卡上为实现内存映射就必须完成相应的译码转换,也就是将对应的双口RAM地址与分配的地址空间对应起来,实现地址的转换。

实现时,采用动态配置内存映射设备,改变内存映射端口的地址也相对方便,比老式的ISA[1]接口用跳线配置要优越些。该双口RAM为8K,但计算机能够访问的只有4K。其中CTRL线是8KRAM的控制线,通过该线可以实现“乒乓”结构[1]的数据传输。

(2)数据接口电路

数据接口电路实现数据线的驱动功能。尽管很多计算机主板的数据总线都经过驱动,但为了确保可靠性,数据总线不应直接与双口RAM相连接,而是通过数据驱动器件与数据线相连。

(3)控制逻辑电路

控制逻辑电路是与计算机通信的核心部分,该部分主要是实现“乒乓”结构的硬件控制部分。当存储器中的RAM达到HALFREADY(半满状态)时发出中断申请实现数据的传输,同时,将CTRL状态取反,使得计算机访问的是其中的一半,即实现了数据传输的“乒乓”结构。此外,数据的读写控制也通过控制逻辑实现。

89C52实现与从机多机通信,同时将得到的数据存入双口RAM中,控制逻辑协调RAM的数据读写工作。

5设备驱动程序的设计

在Windows9x下的VxD(虚拟设备驱动程序)相比,Windows2K下的WDM(Windows设备驱动模型)驱动程序要复杂一些。

WDM驱动程序是分层的,不同层上的驱动程序有着不同的优先级[2]。此外,WDM还引入了FDO(功能设备对象)与PDO(物理设备对象)两个新类来描述硬件。


上一页 1 2 下一页

关键词: 通信 平台 2K Windows

评论


相关推荐

技术专区

关闭