Windos9x下的双机通信

2024-05-11

Windos9x下的双机通信(通用4篇)

篇1:Windos9x下的双机通信

在网络高速发展的今天,虽然网络已经延伸到了社会的各个角落,但是在我们的实际应用中,还会经常遇到两台微机之间临时性连接进行数据通信的情况,如将台式机的.大量数据传输到笔记本电脑中。下面介绍几种双机通信的方法。

一、 通过串口/并口进行双机通信

串口(COM)/并口(LPT)微机间通信技术是最为传统的,也是广大计算机用户最为熟悉和常用的计算机标准设备,并口除了常用于连接打印机外,作为通信端口实现快速数据通信其效果也令人满意,过去在DOS下两台微机间的连接比较简单,而在Windows9x平台下就要复杂一些。

1、 电缆制作

如果要通过串/并口直接电缆连接实现两台微机间通信,首先应当制作连接线缆。线缆一般不应过长,即不可作为远距离,对于串口应控制在15米以内,并口则控制在4.5米以内。串口一般采用9芯孔型插头,并口一采用25芯针型插头,串并口通信线缆连接定义如下表:

篇2:Windos9x下的双机通信

即时通信系统可使人们在网上识别在线用户并与之实时交流。除了市面上流行的即时通信软件如腾讯QQ、MSN等软件,内部网络中使用的即时通信软件为很多企事业单位所需要。即时通信软件分为客户端和服务器端,客户端主要实现客户登录、登出、发送文本消息等功能。而服务器端则实现保存用户信息、登录验证、接受注册、转发文本消息、添加删除好友、登入登出等功能。所以服务器的核心作用显而易见。一旦服务器因为网络、主机或软件故障不能工作,势必影响客户端的使用。保证服务器程序稳定可靠运行,是整个系统可靠性的关键。

在此提出使用Winsock技术,采用双机冗余配置,实现热切换以保证系统不间断运行,排除单故障点。

2 通信原理

2.1 主流通信协议

主流即时通信协议有传输控制协议TCP和用户数据报协议UDP,是TCP/IP协议族的两个主要的传输层协议。TCP“面向连接,可靠传输”,适用于传输可靠性要求比较高的数据传输。UDP“面向无连接,不可靠传输”,传输效率比较高。在此采用TCP协议进行数据传输。

2.2 WinSock技术

Windows环境下进行通信程序设计的最基本方法是采用WinSock技术实现。

Sockets也称为套接字,是一种网络编程接口,提供了一种发送和接收数据的机制。用户目前可以使用两种类型的套接字数据报套接字和流式套接字。每种套接字都有IP地址和端口号属性。

Winsock库函数都包含在Winsock.dll中,其中定义了Socket初始化、连接、发送及接收的函数,调用起来非常方便。

3 设计思路

双机热备指基于Active/Standby模式的服务器热备份。客户端与服务器需要通信时,同时向主备两台服务器发送消息。同一时间只有其中一台服务器(Active,主)给出响应。当主服务器出现故障时,另外一台备份服务器(Standby,从)通过心跳诊断(TCP/IP)自行激活,升级为主服务器,负责所有的通信任务,保证在短时间内完全恢复正常使用。双机热备的工作机制实际上是为整个网络系统的通信服务器提供了一种故障自动恢复能力,系统结构如图1。

以客户端向服务器发出某一消息Socket消息如请求登录为例,主从服务器的消息流程如下:

(1)客户端通过TCP/IP通信接口将消息发送给主、从服务器。

(2)主、从服务器接收到消息后,各自进行程序的处理(如登录验证)。

(3)主服务器直接将处理结果(登录验证成功或失败)发送给客户端;从服务器做同样的处理完毕后,发送一个握手信号给主服务器,若握手信号没有回应则认为主服务器已死,则将消息发送给客户端,从服务器自动升级为主,否则不做任何动作。

(4)当从服务器重新启动后,主服务器要负责向所有客户端通知。

4 实现

4.1 初始化Socket

客户机与服务器之间的通信采用TCP协议来实现,来保证信息交互的可靠性。因此,系统启动之初就要初始化WinSock连接,两个服务端Winsock创建过程如下:

客户端的Socket创建过程从略,需要注意的是客户端同时要跟主从两个服务器建立连接。

4.2 确定主服务器程序

当服务器程序启动时,一方面初始化自己的服务端Socket,另一方面读取系统配置,获知另一个服务器插口,初始化一个客户端Socket,使用该客户端Socket向另一个服务器插口发送一个心跳消息,并同步等待对方回应。

4.3 定时发送心跳

使用SetTimer(m_hWnd,TIMER_BACKUP,5000,NULL)可以设定每5000ms时间向主服务器发送的心跳消息:

if(nSendResu==SOCKET_ERROR)/*发送失败,可能主服务器出现了问题,则本服务器升级为主服务器,对收到的信息进行处理*/

InitializeSystem();//本服务器准备开始工作,根据本系//统的情况定义。并通知主备服务器切换了,根据本系统情况//对管理员做提醒

5 结语

详细描述了基于Socket的双机热备技术的原理与实现方法,可以推广应用到所有用Visual C++开发的,要求即时性、稳定性比较高的系统中,具有一定的通用性。系统运行的环境是复杂的,难免由于一些未知原因,如:程序未发现的bug、程序处理效率底下、操作系统异常、网络中断、突然断电等造起的系统停止运行的情况。所提出的方案作为一种补救措施,一定程度上能弥补系上述异常带来的不良后果。但还不能从根本上解决异常问题,而只是权宜之计,还在软件和硬件上带来了浪费。所以,要保证系统稳定,必须从多个方面入手,尤其是服务器程序以及软硬件环境的完善。

参考文献

[1]黄超编著.Windows网络编程[M].北京:人民邮电出版社,2003.

[2]马展,等编著.Visual C++.NET网络与通信高级编程范例[M].北京:清华大学出版社,2005.

[3]李远杰,等.主流即时通软件通信协议分析术[J].计算机应用研究,2005,7:4-6.

篇3:Windos9x下的双机通信

关键词:串行通信;RS-232串口;LabVIEW

中图分类号:TP273 文献标识码:A文章编号:1007-9599 (2011) 11-0000-01

Double Computer Serial Communication Based on LabVIEW

Xu Qiujing1,Zhao Qiuying2,Song Yi1

(1.Harbin Huade University,Harbin150025,China;2.Northeast Petroleum University Huarui Institute,Harbin150028,China)

Abstract:When Terminal and computer orbetween computers exchanging information,in addition to the use of parallel means of communication,often uses serial communication mode.The paper used LabVIEW as a programming language,introducing in the LabVIEW programming environment,how to realize the double computer serial communication.

Keywords:Serial communication;RS-232 serial port;LabVIEW

一、串行通信

串行通讯是我们最容易接触到的一种通讯方式。终端与计算机之间或者计算机与计算机之间进行交换信息时,除了采用并行通讯方式之外,还经常采用串行通讯方式。串行通讯是指数据一位一位地按顺序传送,当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。当两台RS-232串口设备通信距离较近时(一般在十米左右),可以用电缆线直接将两台设备的RS-232端口连接;若通信距离较远时,需附加调制解调器。

在实际使用中常使用串口通信线将两个串口设备连接起来。串口线的制作方法非常简单:准备两个9针的串口接线端子(因为计算机上的串口为公头,因此连接线为母头),准备3根导线(最好采用3芯屏蔽线),按图1所示将导线焊接到接线端子上。

图1.串口通信线的制作

图1所示的2号接收脚与3号发送脚交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可发也可收。在这种方式下,通信双方的任何一方,只要请求发送RTS有效和数据终端准备好DTR有效就能开始发送和接收。

二、LabVIEW

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。

LabVIEW中有关串口的函数选板它位于函数→仪器I/O→串口,主要包括VISA配置串口、VISA写入、VISA读取、VISA关闭、VISA串口字节数、VISA串口中断、VISA设置I/O缓冲区大小、VISA清空I/O缓冲区八个函数构成。注意:在LabVIEW需安装VISA的驱动程序才能正常使用串口。

三、LabVIEW主要程序面板设计如图2

图2.LabVIEW程序面板设计

四、LabVIEW前面板设计及运行

在两台计算机上分别运行此程序,运行结果如图3所示:

图3.LabVIEW前面板设计及运行结果

参考文献:

[1]马秀龙,董浩斌.基于LabVIEW串口通讯的多路数据采集系统[J].工业控制计算机,2008,21(5):14-15

[2]张桐,陈国顺.精通LabVIEW程序设计[M].北京:电子工业出版社,2008

篇4:Windos9x下的双机通信

1 串行总线介绍

1.1 SPI (Serial Peripheral Interface) (串行外设接口)

SPI是由摩托罗拉公司开发的全双工同步串行总线, 该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。SPI是一种串行同步通讯协议, 由一个主设备和一个或多个从设备组成, 主设备启动一个与从设备的同步通讯, 从而完成数据的交换。SPI接口由SDI (串行数据输入) , SDO (串行数据输出) , SCK (串行移位时钟) , CS (从使能信号) 四种信号构成, CS决定了唯一的与主设备通信的从设备, 如没有CS信号, 则只能存在一个从设备, 主设备通过产生移位时钟来发起通讯。通讯时, 数据由SDO输出, SDI输入, 数据在时钟的上升或下降沿由SDO输出, 在紧接着的下降或上升沿由SDI读入, 这样经过8/16次时钟的改变, 完成8/16位数据的传输。在SPI传输中, 数据是同步进行发送和接收的。SPI传输波特率可以高达5Mbps, 具体速度大小取决于SPI硬件。SPI数据传输的时钟基于来自主处理器的时钟脉冲, 最常用的时钟设置基于时钟极性 (CPOL) 和时钟相位 (CPHA) 两个参数, 其设置决定了数据取样的时钟沿。

1.2 I2C (Inter-Integrated Circuit) 总线

I2C总线是一种由PHILIPS公司开发的两线式串行总线, 用于连接微控制器及其外围设备。I2C总线产生于在80年代, 最初为音频和视频设备开发, 如今主要在服务器管理中使用, 其中包括单个组件状态的通信。I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上, 因此I2C总线占用的空间非常小, 减少了电路板的空间和芯片管脚的数量, 降低了互联成本。总线的长度可高达25英尺, 并且能够以10Kbps的最大传输速率支持40个组件。I2C总线的另一个优点是, 它支持多主控 (multimastering) , 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然, 在任何时间点上只能有一个主控。

I2C总线工作原理:I2C总线是由数据线SDA和时钟SCL构成的串行总线, 可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送, 最高传送速率100kbps。各种被控制电路均并联在这条总线上, 但就像电话机一样只有拨通各自的号码才能工作, 所以每个电路和模块都有唯一的地址, 在信息的传输过程中, I2C总线上并接的每一模块电路既是主控器 (或被控器) , 又是发送器 (或接收器) , 这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分, 地址码用来选址, 即接通需要控制的电路, 确定控制的种类;控制量决定该调整的类别 (如对比度、亮度等) 及需要调整的量。这样, 各控制电路虽然挂在同一条总线上, 却彼此独立, 互不相关。

1.3 单总线 (One-Wire Bus) 技术

单总线 (One-Wire Bus) 技术是由美国的达拉斯半导体公司 (DALLASSEMICONDUCTOR) 推出了一项特有的单总线。该技术与上述总线不同, 它采用单根信号线, 既可传输时钟, 又能传输数据, 而几数据传输是双向的, 因而这种单总线技术具有线路简单、硬件开销少, 成本低廉, 便于总线扩展和维护等优点。单总线适用于单主机系统, 能够控制一个或多个从机设备。主机可以是微控制器, 从机可以是单总线器件, 它们之间的数据交换只通过一条信号线。当只有一个从机设备时, 系统可按单节点系统操作;当有多个从机设备时, 系统则按多节点系统操作。

单总线即只有一根数据线, 系统中的数据交换、控制都由这根线完成。设备 (主机或从机) 通过漏极开路或三态端口连至该数据线, 以允许设备在不发送数据时能够释放总线, 而让其它设备使用总线, 其内部等效电路如图1所示。

单总线通常要求外接一个约为4.7k。的上拉电阻, 这样, 当总线闲置时, 其状态为高电平。主机和从机之间的通信可通过3个步骤完成, 分别为初始化One-Wire器件、识别One-Wire器件和交换数据。由于它们是主从结构, 只有主机呼叫从机时, 从机才能应答, 因此主机访问One-Wire器件时必须严格遵循单总线命令序列, 即初始化、ROM命令、功能命令。如果出现序列混乱, One-Wire器件将不响应主机 (搜索ROM命令, 报警搜索命令除外) 。

2 系统的硬件结构

图2为系统的硬件结构框图:系统通过DS18B20采集温度信号, 通过两个电压传感器采集两路电压信号, 分别送到单片机1中进行处理, 当温度大于设置的温度上限时, 单片机1给出高温报警信号, 当温度小于设置的下限时, 单片机给出低温报警信号;当电压信号高于设定上限时, 单片机1给出过压报警信号, 当电压信号低于设定上限时, 单片机1给出欠压报警信号;同时两路电压值和温度值以及各种报警类型会实时的显示在LCD上, 单片机1通过I2C总线或SPI总线把采集到的电压和温度信号以及各种报警信息传递到单片机2, 并且在单片机2驱动的LCD上显示, 系统的Proteus仿真原理图如图3所示:两个电压传感器用分压电阻模拟。

3 系统的软件流程图

系统的软件流程图如上图所示:单片机1负责电压及温度信号的采样 (读取DS18B20的温度转换值) 、处理、显示并给出相应的报警信号, 驱动相应的报警电路, 在自身的LCD上显示报警类型。单片机2负责接受单片机1的命令数据, 并根据不同的命令对自身LCD作相应设置, 然后接受单片机1的数据信息和报警信息, 并显示在自身LCD上, 可以实现两片单片机的协同显示与报警。

4 结论

本文采用I2C、SPI、One-Wire总线对单片机进行扩展, 搭建了一个简单、可靠、成本低的电压监控和温度报警系统, 可以对电压和温度信号进行实时监控, 并可以多机共享数据信息和报警信息, 可以用在多点监控, 多点控制的场合。DS18B20传感器相当于传统的温度传感器+数字化+CPU+总线协议及接口一线器件采用单条连线解决了控制通信和供电等问题降低了系统成本并简化了设计, 为未来传感器的发展和应用开辟了新的领域。

摘要:本文介绍了一种基于I2C, SPI和One-Wire总线的电压和温度监控系统, 使用PIC16F877A和DS18B20组成的双机通信平台, 使用Proteus作为仿真工具, 实现了报警信息和采样数据在两块单片机中的共享。

关键词:I2C,SPI,One-Wire,DS18B20,单片机,Proteus仿真,通信

参考文献

[1]腾召胜.智能检测与数据融合[M].北京:机械工业出版社, 2000.

[2]郭静华, 欧阳斌林.SPI总线从机接口实时模拟的实现[J].东北农业大学学报.

[3]沙占友主编.智能化集成温度传感器原理与应用, 北京:机械工业出版社.

上一篇:中班暑假安全活动总结下一篇:男生说说说说

本站热搜

    相关推荐