资源描述:
《基于vb的串口通讯及其软件实现的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于VB的串口通讯及其软件实现的论文 摘要:串口通信因为其简单,灵活易用,在许多领域有着广阔的应用前景。本文在深入了解串口通讯技术的基础上,结合自身的工程实践经验,阐述了vb串口编程的技术要点。并结合一个通讯实例,分析通讯的具体实现,给相关领域的研究人员提供值得参考的信息。 关键词:串口;rs232;api;pm;msm;通信程序 abstract:serialmunicationhasbroadapplicationinmanyfieldsbecauseofitssimplemunicationcircuitryandf
2、lexibility.basedondeepprehensionofthetechnologyoftheserialmunications,thisarticleexpoundsimportanttechnologydetailintegratedpleofmunicationprogramispresentedandanalyzed,ation. key;msm;municationprogram 现在通讯方式越来越多,速度越来越快,但串行通讯由于自身价格低、协议透明、硬件投资少、软件编程简单等诸多优点在远程数据采集、
3、监视、通信及控制领域里一直占据着极其重要的地位。.cOm它不仅没有因为时代的进步而被淘汰,反而在规格上越来越完善、应用越来越广,长久不衰。 1串口通信的通信机理 pc串行通信是指直接对串行端口的uart(pc机的通用异步收发器,也叫异步通信适配器,是pc机用于异步通信的接口)进行编程实现的通信。pc机每个uart中的ins8250中有10个可编程的单字节寄存器,可用于控制、监视操作串行端口,1的寄存器地址3f8h-3feh,2的寄存器地址为2f8h-2feh。10个寄存器由7个地址访问,其中5个寄存器的访问条件是先设
4、置3fbh线路控制寄存器的最高位为“1”,该位也称为dlab状态位。[1] 一般说来,pc机都有一个或多个串行端口,它们依次为1、2……。这些串口提供了外部设备与pc进行数据传输和通信的通道,在cpu和外设之间充当了解释器的角色。当字符数据从cpu发送给外设时,这些字符数据将被转换成串行比特流数据;而当接受数据时,从外界进来的比特流数据被转换成字符数据传递给cpu进行处理。在操作系统方面,.drv)调用api函数发送和接受数据。当用通信控件或声明调用api函数时,它们由m.drv解释并传递给设备驱动程序。 作为一个vb程序员
5、,要编写串口通信程序,只需知道通信控件提供给c1489、sn75150芯片可完成ttl电平到eia电平的转换,而mc1489、sn75154可实现eia电平到ttl电平的转换。 3三种读取串口数据的方式 目前通用的串口通讯的软件实现方式有3种,本文都进行详细的介绍,它们各有自身的优缺点,读者在编程时可根据具体的情况选择合适的方式。 3.1利用msm控件 vb提供的这个通信控件“隐藏”了大部分串口通信的底层运行过程,程序员只需编写少量的代码就可以完成软件的开发过程。在通信数据量不大,通信要求不是很高的情况下建议采取
6、此方式。 利用msm控件实现通信最需要掌握的就是它的几个主要属性,下面选取其中重要的进行介绍,其余的可以参考相关资料。[3] (1)settings属性:以字符串的形式设置并返回波特率、奇偶校验位、数据位、停止位。这个属性很重要,针对不同的终端设备需要根据设备的具体情况进行调整(比如日本的设备不同于美国的设备,通常会采用奇校验)。 (2)inputmode属性:设置接收数据的类型,0为文本格式,1为二进制格式。 (3)input属性:读取并删除接收缓冲区中的数据流。 (4)output属性:向发送缓冲区传送一数据流。
7、 (5)rthreshold属性:该属性为一阀值,它确定当接收缓冲区内的字节个数达到或超过该值后就产生代码为evreceive的onm事件。 (6)handshaking属性:设置和返回握手协议,即计算机内部cpu与串口之间的通讯协议,保证在缓冲区过载时数据不会丢失。这个属性在保证数据传输的正确性方面有很大的作用,共有四个选项,分别表示:①无流控制;②软件流控制;③硬件流控制;④软硬件流控制。采用硬件流控时,要求串口之间和电缆支持硬件握手,在自己制作串口通信线时,有关硬件握手的线rts、cts、dsr、dtr要连接正确。 在
8、正确设置这些属性的基础上,剩下的就是打开串口,通过串口发送及接受数据了。本文后续章节利用一个实例详细讲解了这些属性的设置及具体代码。 3.2直接调用> (3)readfile()函数:从串口输入缓冲区读取数据流。 (4)state()函数:获取串口的当前配