本文在对几种常用串口通信方法分析比较的基础上,着重讨论了Delphi开发环境下利用SPCOMM控件实现PC机与单片机之间串口通信的方法。研究了SPCOMM串口通信的关键技术问题,并通过一个实例给出了SPCOMM控件在Delphi7.0串口通信中的应用。
维普资讯 doc.docsou.com
S ENOE& OI
f OHN OL0GY NFOfMA ION I I
学术论坛
Dep COMM控件实现串口通信 i P +S lh 陈增发严锋 (苏州大学江苏苏州 2 6 0 1 0) 5摘要:文在对几种常用串口通信方法分析比较的基础上,着重讨论了 Dep开发环境下利用 S本 l hi PCOMM控件实 PC机与单片机之间串口通信的方法。研究了S C MM串口 P O通信的关键技术问题,并通过一个实例给出了 S C P OMM控件住 D l h 7 0串口 ep i . 通信中的应 用。
关键词:口通信 D lhi. S COMM摔件串 ep 7 0 P中图分类号: N9 l T l 文献标识码: A
文章编号: 6 2 7 1 0 6 l( )0 2 O 1 7 3 9 ( 0 ) 1 2 a 22 1
1串行通信的概念
Ev n、Mar e k、SP c a e等。 B u R t:设定支持串口通信用的波特 a d ae所谓“串行通信”是指外设和计算机问 6 0 8 0根据实际需要来定,在串口 使用一根数据信号线(另外需要地线,可能还需率 9 0、4 0等,实 要控制线)数据在一根数据信号线上一位一位打开后可更改波特率,际波特率随之更改。, B tSz ye i e属性:表示一个字节中。使用地进行传输,每一位数据都占据一个固定的多少个数据位收发数据,根据具体情况设定 5、时间长度。如图 1所示。 l0‘ 1l D 0 l 叫 T
0 D} l 6”l
n r1] n - r 图 l
由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。对于那些与计算机相距不远的人一机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪,磁盘等,采用串行方式交换数据也很普遍。在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各 C U之间的通信 P 般都是串行方式。所以串行接口是微机应用系统常用的接口。 一
数据也为 6字节。当 PC发出 ( 0 0, F,个 F,1F F, 1F ) 8 5能收到一 ( 0 0, F, F 0,0后 0 l帧 F, lF F, 1 F )表
示数据通信握手成功, F 0,0,两者之间就可以按照协议相互传输数据。 创建个新的工程 S COMM. R,把 P DP窗体的 NA ME属性定为 F P O S C MM,窗体把的标题定义为测试通信,照图2添加控件( 按图 6 .7、8等。 S o B t属性:表示一个字节中,用停 2 tp i s使中黑色矩形围住的控件即为 C mm1。 o ) 止位的位数,根据具体情况设定 l .、等。、1 5 2 S n D tE t e d a a mp y属性:布尔属性,为 Tr e时表示发送缓存为空,或者发送队列里 u没有信息;为 F le表示表示发送缓存不为 as时空,或者发送队列里有信息。 3. P O 2 S C MM控件的方法 Sato t rc mm方法用于打开串口,当打开 2 失败时通常会报错。错误主要有 7:()口种 1串 设定 C MM 1 O属性: . 1波特率: 8 0 2 40;.已经打开;2 ()打开串口错误; ) (文件句柄不是通 3奇偶校验位:; .无 3字节长度:;停止位: 8 4. 信句柄; )能够安装通信缓存;() (l 4不 5不能产生 l;5.口:串 COMl。事件;) (不能产生读进程;7不能产生写进程; 6 () Me 1 mo中将显示发送和接收的数据。将 S o Co t p mm方法用于关闭串口,没有返新的窗体存储为 C mm . a。 o p s 回值;
2SC M P O M串口通信组件简介 目前,利用 De p实现串口通信的常 l hi用的方法有 3种:是利用控件,如 MS 一 CO MM控件和 S OMM控件;二是使用 API PC 函数;三是调用其他串口通信程序。其中利用 A I P编写串口通信程序较为复杂,需要掌握大量的通信知识。相比较而言,利用 S CO P MM控件则相对较简单,并且该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,而且还支持多线程。 S OMM是 S l i a开发的一个第 PC mal g Te m P三方 Dep i口控件,该控件具有丰富的与 lh串串口通信密切相关的属性及事件。提供了对串口的各种操作,且编程简单、通用性强、 可移植性好。在 D l h软件开发中已经成为 ep i个被广泛应用的串口通信开发控件。 S
PCOMM共实现了三个类:口类 Tc mm、串 o 读线程类 T r dThr d以及写线程类 e a e a Twzt Th e d ie r a Tc mm的某个实例在方法 o Sa t o t rC mm中打开串口.并实例化了一个读线程 R ead F h read和一个写线程 WrtTh e d,它f:主线程之间进行消息 ie r a f ̄ lU的传递,实现串口通信。 一
W rt Com t ( ie r Da a pDa a W r t D t To ie: PCh r d ie f a a W rt W o d )法 a;wS zo D tTo i e: r方
4 S C MM串口通信的关键技术问题 PO S 0MM应用的核心在于主线程、读 PC线程和写线程之的消息传递机制,而通信数据相关信息的传递也是以消息传递的方式进行的。在使用 S C M M进行串口通信编 P O程,按照说明使用外,除还需要特别注意以下两个问题。首先,S PCOMM是通过 Re d n a l tr aT me u属性的设置。来确定所接收到 ev li o t 的数据是否属子同一帧数据,其默认值是 l O,也就是说,只要 F何两个字节到达的 O ms E时间间隔小于 l O s都被认为是属于同一帧 Om,数据,在与单片机协同工作时,要特别注意这个问题。另外,S COMM的默认属性设置是 P支持软件流控制的。用于流控制的字符是 1 H( f h r,l 1 Xo c ) Xo C a )ll H( n h。当单片机以 3 二进制方式发送数据时,必须要禁用 S OMM对于软件流控制的支持。否则,在 PC数据帧中出现的 l H和 l H会被 S C MM 3 l P O作为控制字符而加以忽略。
是个带有布尔型返回值的函数,用于将一个字符串发送到写进程,发送成功返回 tu,发 re送失败返回 f le as。执行此函数将立即得到返回值,发送操作随后执行。该函数有两个参数,其中 p a a o i是要发送的字符串, D tT Wr e t d ief a a o ie wSzo D tT Wrt是发送字符串的长度。 33 SC M P O M控件的事件 OnRe ev Da a: o e u e S n e: c i e t pr c d r ( e d r To jc; fe: o n e; fe L n
h: be t Bu f r P i t r Bu f r e gt
Wo d f o jc当有数据输入缓存时将触 r )o b e t发该事件,在这里可以对从串口收到的数据进行处理。Bu f r中是收到的数据,Bu f r fe fe Le g h是收到的数据长度。 nt OnRe ev E r r p o e u eS nd r c i e r o: r c d r ( e e: T bet v nMak:D O j;E et s c WO D R )当接收数据出错误时将触发该事件。砚 3 4 S C M串口通信的实现 . P O M S C MM串行通信控件具有多线程的特 P O性,接收和发送数据分别在两个线程内完成,接收线程负责收到数据时触发 On c ie a a事件:用 WrtCo Re ev D t ie mmDaa) t( 函数将待发送的数据写入输出缓冲器,发送线程在后台完成数据发送工作。在接收和发 3 S C MM件串口通信的实现 PO控送数据前需要初始化串口,用 S a t o trC mm方 3 1S C M P O M控件的基本属性法打开串u。退出程序时用 So C mm方法 tp o Co mmNa me属性{计算机串[端 U号 j关闭串 1。以实现 PC机与单片机 8 51 0之的名字。COM l、COM 2...,在打开等间的通信为例,首先要调通它们之间的握手串口前,必须填写好此值。 信号。假定它们之间的通信协议是:PC到 P rt a iy属性:奇偶校验位 No e n,nr i d. 8 5一帧数据 6字节,8 5到 P O1个 01 C一帧 22 2科技资讯 S E E& T N C N { CINC F CH O[ OY IF M^1 OI I ON
参考文献 【 1]李志合,易维明,程卫东,国海 . e h程张 Dl i p序中实现串口通信的三种方法 .山东工程学院学报 . 0卜 9 20,p5 p 5 2 5.【]李忠明,锦明 .于 D l h 2方基 ep i6的串口通信程序实现方法研究 .兰州大学学报【自然科学版]2 0 () 4 p 4. . 0 4 8,p 1 4 【J谭思云,仲. 8 I C 3单片机在串口 3 周 I 9, 9 5: P ) 通信和 I I编程}应用 .微计算机信 c 的… 息 .0 5, 2 0 7:p 6 p 7 6 6

Delphi+SPComm实现串口通信_信息与通信_工程科技_专业资料。Delphi+SPComm实现串口...关键词:口通信;SCo串Pmm控件;Deh lip 0引 言 随着 计算机 网络通 信与信 ...
科技资讯 2006 NO.31SCIENCE&TECHNOLOGYINFORMATION 学术论坛 Delphi+SPCOMM 控件实现串口通信陈增发 严锋 (苏州大学 江苏苏州 215600)摘 要: 本文在对几种常用串口...
介绍单片机与PC机串口通信的基本原理,介绍了SPComm控件的安装和基本属性、方法和事件,以及在Delphi环境下PC机利用SPComm控件与单片机进行串口通信的实现。介绍单片机与PC机...
的基本原理,介绍了89C51单片机及其外围信号采集电路构成的下位机的原理及程序框图,并详述了在Delphi环境下上位机利用Spcomm控件与下位机进行RS232串行口通信的实现。...
基于Delphi及Spcomm控件实现的单片机与PC机串口通信_信息与通信_工程科技_专业资料。单片机通信技术 基于Delphi及Spcomm控件实现的 单片机与PC机串口通信黄瑛,孙志锋,孙晓东...
MSComm控件实现串口通信的方法_计算机软件及应用_IT/计算机_专业资料。详细介绍了MSComm控件,并在VC++6.0中利用MSComm控件开发了基于对话框的串口通信实例。MSComm...
图2 串行帧的结构图 图1 系统连接结构图 2 软件设计以第三方 Delphi 串口控件 SPComm来实现串口 通信则相对比较简单, 它是在 Delphi 软件开发中已 经成为一个...
使用SPComm控件实现PC机与单片机AT89C51的串口通信_专业资料。本文介绍一种基于C++...Delphi+SPCOMM控件实现串... 104人阅读 1页 0.50 基于DELPHI的PC机和AT89...
Delphi中利用SPComm 控件实现的PC 机与单片机串口通讯_信息与通信_工程科技_专业资料。Delphi 中利用 SPComm 控件实现的 PC 机与单片机串口通讯 http://hi.baidu....
在VS(VC)2010中使用MSComm控件实现串口通信的详细步骤_IT/计算机_专业资料。VS2010中使用MSComm控件的详细步骤,采用VS2010自带控件。采用事件驱动方式。适用于初学者...
闽公网安备 35021102001881号 
热门文档