目录摘要......................................................................IIIAbstract....................................................................V第一章串行通信的介绍......................................................11.1串行通信方式........................................................11.2串行通信的传送方向..................................................21.3串行输入/输出.......................................................21.4串行接口标准........................................................2第2章串口编程技术.........................................................52.1串口实现双机互联系统功能概述........................................52.2VB串口查询法的实现方法..............................................5第3章SPCP通信协议设计....................................................93.1串行通信协议........................................................93.2SPCP协议的发送格式.................................................13第4章双机互联程序的实现..................................................154.1创建标准的项目文件.................................................154.2加入串口通信控件...................................................154.3设计程序主窗体.....................................................16第5章程序的测试与运行....................................................215.1软件及硬件测试.....................................................215.2总结...............................................................24附录.......................................................................25IIIII串口实现双机通信摘要计算机串口编程在通信软件中有着十分广泛的应用,如电话、传真、视频和控制等。很多行业会涉及到串口通信技术。串行通信中分为异步通信和同步通信两种基本串行通信方式,串行通信在两个设备之间传输,有单工、半双功、全双工三种形式。在本论文中,串口实现双机互联是通过串口线直接连接两台计算机,按照自定义的串口通信协议(简称为SPCP)进行信息交换。通过VB中MSComm控件处理底层串口通信细节,根据自定义串口通信协议建立连接,实现聊天和文件传输功能。关键字:VB,串口通信,SPCP,数据交换。IVVserialcommunicationAbstractSerialcomputerprogramminginthecommunicationssoftwarehasaverywiderangeofapplications,suchastelephone,fax,videoandcontrol.Manyindustrieswouldinvolveserialcommunicationtechnologies.Serialcommunicationisdividedintoasynchronouscommunicationsandsynchronouscommunicationaretwobasicserialcommunication,serialcommunicationbetweenthetwotransmissionequipment,asingle-workers,half-duplex,full-duplexthreeforms.Inthispaper,toachievedouble-serial-lineInternetdirectlythroughtheserialporttoconnecttwocomputers,inaccordancewiththecustomofserialcommunicationprotocol(referredtoasSPCP)forinformationexchange.VBMSCommcontrolthroughtreatmentinthebottomofserialcommunicationdetails,accordingtocustomserialcommunicationprotocoltoconnect,andchatandfiletransferfeature.Keyword:VB,serialcommunication,SPCP,dataexchange.VI-1-第一章串行通信的介绍1.1串行通信方式在计算机与外设之间的信息传送中,按照一次传送数据的位数分类,可分为:并行传送方式和串行传送方式。并行传送方式为数据的各位同时传送;串行传送方式为数据的各位按一定的顺序逐位分时传送。串行传送适用于长距离通信系统及各类计算机网络。由于信息在一个方向上传输只占用一根传输线,而这根线上既传送数据,又传送联络信号,为此为区分这根线传送的信息流中,哪一部分是联络信号,哪一部分是数据,就必须引出串行通信的一系列约定。于是,在串行通信中就有异步通信和同步通信两种基本串行通信方式。1.1.1异步通信异步通信有字符格式和波特率两项约定。字符格式:传送一个字符总是从传送一位起始位(0)开始,接着传输字符本身(5~8位),传送字符从最低位开始,逐位传送,直至到传送最高位,接着传送奇/偶校验位,最后传送1位或1个半位或2位停止位(1)。从起始位开始到停止位结束,构成一帧信息。一帧信息传送完毕后,可传送不定长度的空闲位(1),作为帧与相邻帧之间的间隔,也可以没有空闲位间隔。波特率:是单位时间内传送二进制数据的位数,以位/秒为单位,即波特。异步通信传送速度一般在50~9600波特范围内,用于传送信息量不大,传送速度要求较低场合。1.1.2同步通信同步通信中使用的数据格式根据所采用的控制规程(通信双方就如何交换信息所建立的一些规定和过程称为通信控制规程)又可分为面向字符型和面向位(比特)型两种。面向字符型的数据格式又有单同步、双同步、外同步之分。单同步:发送方先传送1个同步字符,再传送数据块,接收方检测到同步字符后接收数据;双同步:发送方先传送2个同步字符,再传送数据块,接收方检测到同步字符后接-2-收数据;外同步:用一条专用线来传送同步字符,以实现收发双方同步操作。三种同步方式,均以2个字节的冗余检验码CRC作为一帧信息的结束。面向位型:根据IBM的同步数据链路控制规程SDLC,SDLC数据格式,同步传送,接收和发送时钟对于收/发双方之间的数据传送达到同步是至关重要的。在发送方,一般都是在发送时钟的下降沿将数据串行移位输出;在接收方,一般都是在接收时钟的上升沿将数据串行移位输入。1.2串行通信的传送方向串行通信在两个站(或设备)A和B之间传送,有单工、半双工、全双工三种形式。单工:仅能进行一个方向的传送,即A只能作为发送器,B只能作为接收器;半双工:能交替地进行双向数据传送,但两设备之间只有一根传输线,因此两个方向的数据传送不能同时进行;全双工:A、B之间有两条传输线,能在两个方向上同时进行数据传送。1.3串行输入/输出串行输入的特点:串行数据传输中,每次只传送一位数据,速度比并行传输慢。但是,实现串行传输的硬件具有经济性和实用性的特点。1.4串行接口标准RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的.RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。RS-232串行接口标准目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对于信号地.典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-3--12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。-4--5-第2章串口编程技术在MicrosoftWindows下开发串行通信目前通常有如下几种方法:一是利用WindowsAPI通信函数;二是利用windows的读写端口函数_inp、_inpw、_inpd、_outp、_outpw、_outpd、(Windows95系列下)或开发驱动程序(WindowsNT系列操作系统下)直接对串口进行操作;三是利用第三方提供或自己编写的通信;四是使用串口通信组件,如ActiveX控件MSComm。MSComm控件:(MicrosoftCommunicationControl)是微软公司提供的简化windows下串口通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法,在VisualBasic、VC、Delphi等语言均可使用。以上几种方法中第一种使用面较广,但由于比较复杂,使用较困难;第二种需要了解硬件电路结构原理,深入驱动层次,专业化程度较高;第三种方法使用面向对象技术封装Win32API函数,提供一个用于串行通信的类,只要理解这种类的几个成员函数,就能方便的使用,但能普遍应用的这种类相当困难;第四种方法较简单,对于VisualBasic,常用的方法就是使用第四种方法。本文将用第四种方法实现双机通信。2.1串口实现双机互联系统功能概述双机互联程序通过串口将两台计算机连接起来,按照自定义的串口通信协议(简称为SPCP)进行信息交换,实现通过串口进行聊天、文件和收发的功能。SPCP协议设计思想基于帧传输方式,即在向串口发送数据时是一帧一帧地发送。对于上层应用(如文件传输)来说,应用程序所发送的和所接收的都是流式数据,即如果应用程序需要进行上层的协议解释的话,它将面对的这些流数据重新拼装。为保证可靠的传输,在传输开始前,通过协议建立连接。来确定是否要接收数据,是否保存等。2.2VB串口查询法的实现方法2.2.1串口查询法的机理VB的串口查询法是一种主要工作在查询方式下的实现方法。当通信程序工作在“查询