APP下载

基于Delphi的串口通信程序设计方法初探

2018-03-22恒,宗

数字通信世界 2018年3期
关键词:缓冲区控件字符

张 恒,宗 毅

(陕西省火箭军工程大学,西安 710025)

1 串口通信与Delphi串口编程

1.1 串口通信

所谓的串行通信主要是将数据逐一传输,而并行通信使将按照字节等方式进行数据传输。在串行通信中,虽然其速度较为缓慢,但是具有较强的抗干扰能力,能够实现较远距离的传输,因此在通信领域的应用较为广泛。而并行接口虽然在传输速度上占有一定的优势,但由于抗干扰能力较差,只适合于较短距离的传输,在实际应用中受到很大的阻碍,特别是在USB接口诞生以后,在速度和抗干扰能力上都呈现出较大的优势,使得并口传输逐渐淡出人们视野,串口通信的应用变得日渐广泛。十几个字符以后才会形成,产生上述问题的主要原因可能是受到Windows多任务操作使系统不响应的因素影响而成。

另外,在控件使用的过程中会发生接收数据不具体现象。例如,将控件中的属性值设置为“1”后,将一组数据从发送端中传出,数据为“AA EF CB DD C6 57 87 BB”,在缓冲区将该组数据定义为1024B,但是当其首次接收这组数据时,则显示数据为“AA EF CB DD C6”,再次接收此组数据为“57 87 BB”,由此可见,这组数据并没有被一次性接收,而是分成了两批,产生此种现象的原因可能是受到系统操作的影响。对此,为了保障接收端中数据的完整性,应对所接收到的数据进行细致的检测。

1.2 Delphi串口编程

2.2 利用Spcomm控件实现串口通信

在Delphi中最为显著的优势便是功能强大,能够支持多线程编程技术,便于实现串口通信。现阶段,在Delphi基础上进行串口通信的方式有很多种,例如MSComm控件、API函数、其他串口通信程序等。其中,API函数编写的方式较为复杂,需要应用到大量的通信知识才能完成,但是当对数据实时性有严格要求时,API方式将处于首选地位。与其相比较来说,MSComm控件的设计方式较为简单,并且还具有较强的丰富性,能够与串口通信属性相匹配,在本次研究中将采用此种方式进行串口通信设计。

2 基于Delphi的串口通信实现方式

在Delphi基础上进行串口通信设计的方式分为四种,分别为使用Spcomm控件、MSComm控件、行间汇编ASM、其他串口通信程序。本文主要对前两种串口通信方式进行设计。

2.1 利用MSComm控件实现串口通信

MSComm控件安装于VB5.0当中,在使用之前,需要将其安装到系统当中,由于其具有较强的丰富性,能够与串口通信属性相匹配,是串口操作功能变得更加多样化,属于十分具有较强可行性的控件之一,将其应用到串行通信当中,也使得操作变得更加便利。

当串口通信事件发生时,将会产生OnComm事件,如若事件类型为接收事件,则Comevent的数值为“2”,设计人员可以按照对数值的判断来接收数据。通常情况下,在数据接收的过程中还应对控件的属性进行设置,它能够对缓冲区的字符数量进行接收之后,形成OnComm事件。但是在对空间属性进行利用的过程中,通常会产生以下这种问题。例如,控件中的属性值为“1”时,在缓冲区的任意字符中都将会利用控件形成OnComm事件。但事实上,OnComm事件并不是随便接收到任意字符便能够形成的,有时其在缓冲区中接收

在Delphi基础上进行串口通信程序设计时,由于控件中的属性均为变量,并且Delphi能够实现属性与字符类型之间的所以调换,因此可以直接在属性值赋予给字符,这样便能够保障两个属性之间的简单数据传输。在利用Spcomm控件进行串口通信的过程中,首先要在符合设计要求的基础上建立程序设计框架和软件界面,然后对通信对象、PC机、通信端口号等进行设置,最后根据相关需要对实现程序进行编写、发送、接收,最终将通信端口关闭,其中主要的实现步骤有以下几个方面。

一是按照具体需求建立软件界面。二是对串口进行初始化设置,确定Spcomm控件属性值。在本文的设计中,将其属性值设置为波特率为19200,字节长度为8位,无奇偶校验位,停止位一位。

(1)打开串口:procedure Tfcomm.for,showClick(Sender:TObject);begin comml.StartComm ;

(2)发送数据:procedure Tfcomm.BtnsdramClick(Sender:TOBject);var strsend:string.

(3) 接 收 数 据:procedure Tfcomm.CommlReceiveData(Sender:Tobject;Word)var strrcv;string.

(4)关闭窗口。

3 结束语

综上所述,在Delphi基础上进行串口通信设计的方式多种多样,其中最为主要的两种为Spcomm控件和MSComm控件,经过本文的阐述和验证,使MSComm控件在串口通信中的问题得到有效解决,也充分体现出Spcomm控件在通信过程中具有较强的稳定性和界面友好性。同时,在串口编程的过程中,该控件也能够使设计周期有效的缩短,使系统的可靠性显著提升,使得Delphi开发工具在串口编程中的应用变得更加广泛。

猜你喜欢

缓冲区控件字符
基于.net的用户定义验证控件的应用分析
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
HBM电子称与西门子S7-200系列PLC自由口通讯
关于.net控件数组的探讨
基于网络聚类与自适应概率的数据库缓冲区替换*
一类装配支线缓冲区配置的两阶段求解方法研究
关键链技术缓冲区的确定方法研究
初涉缓冲区