【精品】VC++开发在Windows下的串口异步通信程序(论文+源代码)
收藏
资源目录
压缩包内文档预览:(预览前20页/共46页)
编号:1639483
类型:共享资源
大小:151.53KB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
vc
开发
windows
串口
异步
通信
通讯
程序
论文
源代码
- 资源描述:
-
【精品】VC++开发在Windows下的串口异步通信程序(论文+源代码),精品,vc,开发,windows,串口,异步,通信,通讯,程序,论文,源代码
- 内容简介:
-
= = of is a a of in of up at to a or is It is is a of of It ES be +to or to to to is an is as s is by +. in , is DI is to in to , to of to , to a a is + to of to or FC in a is in a s to + or it to ( If t do of I of in of 1 用 发在 的串口异步通信程序 学 生: 指导老师: 计算机科学系 2008 年 5 月 1 日 2 用 发在 的串口异步通信程序 摘要 异步串行通信在现在的生产生活中被得到广泛的应用,在 上一般至少有两个串行口 用的串行外设有电传打字机、 真机以及远程数据采集设备、通信设备等。串行通信接口标准经过使用和发展,目前已经有多种。但都是在 准的基础上经过改进而形成的。 如何在 台下实现串口通信,也越来越来越多地被得到研究,实现的方法重要有利用 件和直接用 程。利用 件编程相对来说更简单一些,而直接使用 程更灵活一些。本文主要讨论了使用 件来开发串口通信程序,而界面是利用 做的,这样编程灵活性大,并且能够将主要工作集中在串口编程方面。程序可以实现利用 的两个 能根据设置调整异步传行通信参数。 【关键词】 串口通信、异步通信、终端、 句柄 3 is in at in C, on of of to on is of PI to is in is So is we in C to OM 4 目录 摘要 . 2 . 3 引言 . 2 第 1 章 绪论 . 3 题的提出 . 3 究的意义 . 3 第 2 章 相关技术简介 . 6 串行接口标准 . 6 行接口标准 . 8 其他 准接口 . 13 的串口通讯 . 15 . 16 接用 访问串口。 . 18 件介绍 . 24 件的通讯的方式 . 24 件的属性 . 25 第 3 章 系统设计 . 31 统功能设计 . 31 法分析 . 33 第 4 章 系统调试与运行 . 38 统调试 . 38 统测试与运行 . 38 试方法 . 38 试内容 . 39 试结果 . 39 第 5 章 结论 . 40 致谢 . 41 参考文献 . 42 2 引言 在 用程序的开发过程中, 相互之间 常常需要通信。而串口是工业控制中计算机与外部串行设备之间常用的数据传输通道,由于串行通信方便易行,其应用非常广泛。本文将介绍串行通信的基本原理、在台下的工作机制和用 现串行通信的方法。 串口是工业控制中计算机与外部设备之间常用的数据传输通道。但在境下,计算机系统完全接管了各 种硬件资源,不允许用户直接控制串口的中断管理,用户只能通过一些 发软件,如 +等才能控制计算机的底层资源。 +因其高性能编译技术、面向对象设计方法、可视化开发环境等特点得到广泛的应用,它包含了丰富的编程工具,具有很高的代码效率,提供了与 统更紧密的接口,易于进行硬件访问,是一个灵活度和集成化 都很高的软件开发环境,非常适合开发 用程序。本文以 境下串口的通信为基础,主要介绍串行通信的基本原理,并探讨用 + 发串口通信程序的几种方法。 3 第 1 章 绪论 题的提出 在 用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。计算机和单片机(如 具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线者 淆)。大多数计算机包含两个基于 串口。串口同时也是仪器仪表设备通用的通信协议;很多 容的设备也带有 32 口。同时,串口通信协议也可以用于获取远程采集设备的数据。 究的意义 串口通信的概念非常简单,串口按位( 送和接收字节。尽管比按字节( 并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如 定设备线总 长 不得超过 20 米,并且任意两个设备间的长度不得超过 2 米;而对于 串口而言,长度可达 1200 米。典型地,串 口用于 字符的传输。通信使用 3 根线完成:( 1)地线,( 2)发送,( 3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一 根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: 4 a,波特率 :这是一个衡量通信速度的参数。它表示每秒钟传送的 如 300 波特表示每秒钟发送 300 个 我们提到时钟周期时,我们就 是指波特率例如如果协议需要 4800 波特率,那么时钟是 4800意味着串口通信在数据线上的采样率为 4800常电话线的波特率为 14400, 28800 和 36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是 备的通信。 b,数据位 :这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是 8 位的,标准的值是 5、 7 和 8 位。如何设置取决于你想传送的信 息。比如,标准的 是 0 127( 7 位)。扩展的 255( 8 位)。如果 数据使用简单的文本(标准 ),那么每个数据包使用 7 位数据。每个包是指一个字节,包括开始 /停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语 包 指任何通信的情况。 c,停止位 :用于表示单个包的最后一位。典型的值为 1, 2 位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设 备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大, 但是数据传输率同时也越慢 。 d,奇偶校验位 :在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位 (数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是 011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数 个。如果是奇校验,校验位位 1,这样就有 3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低 5 校验。这样使得接收设备能够知道一个位的状 态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。 6 第 2 章 相关技术简介 串行接口标准 在计算机网络数据通信中,有几个接口标准是经常见到和用到的,那就是通常所说的 准。它们都是串行数据接口标准,最初都是由电子工业协会( 定并发布的。 口(又称 目前最常用的一种串行通信接口。它是在 1970 年由美国电子工业协会( 合贝尔系统公司、调制解调器厂家及计算机终端生产厂家共 同制定的用于串行通信的标准。它的全名是 数据终端设备( 数据通信设备( 间串 行二进制数据交换接口技术标准 。该标准规定采用一个 25 脚的 接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。 展而来,它是为弥补 不足而提出的。为改进 信距离短、速率低的缺点, 义了一 种平衡通信接口,将传输速率提高到 10Mb/s,传输距离延长到 4 000 英尺(速率低于100Kb/s 时),并允许在一条平衡总线上连接最多 10 个接收器。 一种单机发送、多机接收的单向、平衡传输规范,后 来被命名为准。为扩展应用范围, 于 1983 年在 础上制定了 准,增加了多点、双向通信能 力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 准 。由于 出的建议标准都是以 为前缀的,所以在通信工业领域,仍然习惯将上述标准以前缀称谓,也就是上面说到的 3 个串行接口标准。 7 准只对接口的电气特性作出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。 表 2以上 3 种串行接口电气性能参数的综合比较。 表 2 行接口电气性能参数综合比较 性 能 参 数 485 工作方式 单端 差分 差分 节点数 1 收 1 发 1 发 10 收 1 发 32 收 最大传输电缆长度 50 英尺 400 英尺 400 英尺 最大传输速率 20Kb/s 10Mb/s 10Mb/s 最大驱动输出电压 +/+6V +12V 驱动器输出信号电平(负载最小值) +/+/+/动器输出信号电平(空载最大值) +/+/动器负载阻抗( W) 3k 7k 100 54 摆率(最大值) 30V/s N/A N/A 接收器输入电压范围 +/10V +10V +12V 接收器输入门限 +/+/收器输入电阻( W) 3k 7k 4k(最小) 12k 驱动器共模电压 +3V +3V 接收器共模电压 +7V +12V 8 行接口标准 目前 中 表美国电子工业协会, 表推荐标准, 232 是标识号。 定义为一种在低速率串行通信中增加通信距离的单端标 准。 取不平衡传输方式,即所谓单端通信。一个完整的 口有 22 根线,采用标准的 25 芯插头座( 除此之处,目前广 泛应用的还有一种 9 芯的 口( 它们的外观都是一个 D 形的,不过,对接的两个接口又分为针式的 公头 和孔式的 母头 两 种, 头 和 公头 与 母头 和 公头 分别如图 2示。 图 2 公头 和 母头 在 准中定义了逻辑 1 和逻辑 0 电压级数,以及标准的传输速率和连接器类型。信号大小在正的和负的 3 15V 之间。 定接近 0的电平是无效的,逻辑 1 规定为负电平,有效负电平的信号状态称为传号( 它的功能意义为 辑 0 规定为正电平,有效正电平的信号 状态称为空号( 它的功能意义为 据设备供电电源的不同,正负 5、正负 10、正负 12 和正负 15 这样的电平都是可能的。 在 准中规定的设备可以分 为数据终端设备( 数据通信设备( 类,这种分类定义了不同的线路用来发送和接收信号。一般来说,计算机和终端设备有 接器,调制解调器和打印机有 9 准中指定了 20 个不同的信号连接,由 25 个 型 脚构成的 接器。但很多设备只用了其中的一小部分管脚,出于节省资金和空间的考虑不少机器采用较小的连接器,特别是 9 管脚的者是 连接器被广泛使用。 因为 目前为止经历了好多个不同版本,最近的版本号为 E,它相对目前广泛应用的 C 版本来说,电气性能改进了不少,也对连接器中的 25 个 管脚进行了充分利用(只有 2 个予以保留)。表 2出的是 25芯 口的信号和管脚分配,而表 2示的则是在 、调制解调器和路由 器等网络设备中使用的 9 芯 口的信号和管脚分配。 表 225 芯 口的信号和管脚分配 引 脚 号 缩 写 符 信 号 方 向 说 明 1 共端 连接器外壳 2 出 发送数据 3 入 接收数据 4 出 请示发送 5 入 清除发送 6 入 数据设备准备好 7 共端 信号地 8 入 载波检测 9 保留 10 保留 11 出 选择传送通道 12 入 载波检测 13 入 清除发送 10 14 出 发送数据 15 入 发送时钟 16 入 接收数据 17 入 接收器定时 18 出 本地回路控制 19 出 请示发送 20 出 数据终端准备好 21 出 远程回路控制 22 入 振铃指示器 23 入 数据装置准备好 24 出 发送器定时 25 入 测试指示器 表 29 芯 口的信号和管脚分配 引 脚 号 缩 写 符 信 号 方 向 说 明 1 入 载波检测 2 入 接收数据 3 出 发送数据 4 出 数据终端准备好 5 共端 信号地 6 入 数据装置准备好 7 出 请示发 送 8 入 清除发送 9 入 振铃指示 在 本中, 25 个引脚( 4 个数据引脚、 11 个控制信 11 号引脚、 3 个定时引脚、 7 个备用和未定义引脚)实际上只用了表 2的9 个,分别是: 1、 2、 3、 4、 5、 6、 8、 20、 22 脚。它们的作用分别如下。 ( 1)控制信号引脚( 4、 5、 6、 8、 20 和 22 号 6 个引脚) 数据装置准备好( 有效时( 态,表明接口处于可以使用的状态。 数据终端准备好( 有效时( 态,表明数据终端可以使用。 这两个信号有时连到电源上,一上电就立即有效。但这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。 请求发送( o 用来表示 求 送数据,即当终端要发送数据时,使该信号有效( 态),向 备请求发送。 允许发送( o 用来表示 备好接收 来的数据,是对请求发送信号 响应信号。 当 类设备已准备好接收终端传来的数据并向前发送时,使该信号有效,通知终端开始沿发送数据线 送数据。这对 求应答联络信 号是用于半双工 统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需 要 络信号使其变高。 数据载波检出( 也叫 接收线信号检出 ( 用来表示 接通通 信链路,告知 备接收数据。当本地的 到由通信链路另一端(远地)的 来的载波信号时,使 号有效,通知终端准备接收,并且由 接收下来的载波信号解调成数字数据后,沿接收数据线 12 到终端。 振铃指示( 当 到交换台送来的振铃呼叫信号时,使该信号有效( 态),通知终端,已被呼叫。 ( 2)数据发送与接收线( 2 和 3 号 2 个引脚) 发送数据( 通过 端将串行数据发送到 。 接收数据( 通过 终端接收从 。 ( 3)地线 7 脚)、 1 脚)分别用来接信号地和保护地信号线,无方向。 上述控制信号线何 时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当 处于有效( 态时,才能在 间进行传送操作。若 发送数据,则预先将 置成有效( 态,等 上收到有效( 态的回答后,才能在 种顺序的 规定对 半双工的通信线路特别有用,因为只有半双工的通信能确定 由接收方向改为发送方向,这时线路才能开始发送。 使用 接器,作为提供多功能 I/O 卡或主板上 只提供异步通信的 9 个信号。 连接器的引脚分配与 引脚信号完全不同。因此,若与配接 连接器的 备连接,必须使用专门的电缆线。 在连接距离上,如果通信速率低于 20s 时, 直接连接的最大物理距离为 15m。 13 其他 准接口 除了前面介绍的 口外,在 口标准中,常见的串行接口协议还有诸如 ,本节予以简单介绍。 去称为 采用 4 线、全双工、差分传输、多点通信的数据传输接口协议。与下面将要介绍的 同的是 允许出现多个发送端,而只能有多个接收端( 口也可以有多个接收端)。如 可以有两端口、四端口和八端口等 几种型号,而接口可以有四端口、八端口,甚至十端口等几种型号。 信更 远、更快,并且一般都能抗电子干扰和电涌。当电缆线的长度为 12m( 40 码)时传输速率可以达到 10Mb/s。由于 决方案具有上述优点, 因此成为工业和制造应用及分布广泛的销售经营企业的首选产品。 通常用途是作为 扩展,曾在苹果麦金托什( 大量使用。 口的机械特性由 定,然而设备仅有在发送方和接收方成对出现时才存在。电缆的最高传输速率为在 为10Mb/s, 1 200m 时 100Kb/s。 能实现像 样的真正的多点通信,尽管一个发送端就可连接最多 10 个接收端。 去也称 口协议是于 1992 年 9 月制定的。它规定了数据终端设备和数据通信设备之间的接口的功能特性和机械特性。 规定 用平衡传输时的电气特性协议是 定非平衡传输时的电气特性协议是 据的传输率可达 200s。协 议规定了两个接时第一个为 37 脚,第二个为 9 脚。尽管这种协议没有在个 人电 14 脑上使用,这种接口在大型数据交换服务器上还是很常见的。 去叫做 者 口协议是电力特性规定为 2线、全双工、多点通信的标准,它的电力特性和 不一 样,用缆线两端的电压差值来表示传递信号。 1 端的电压标识为逻辑 1,另一端标识为逻辑 0。两端的电压差最小为 上时有效,任何不大于 12V 或者不 小于 7V 的差值对接收端都被认为是正确的。 仅规定了接收端和发送端的电力特性,没有规定或推荐任何数据协议。 以应用于配置便宜的广域网和采 用单机发送,多机 接收通信连接,可提供高速的数据通信速率( 10m 时 35Mb/s, 1 200m 时 100 Kb/s)。 样使用双绞线进行高电压差分平衡传输,可以进行大面积长距离传输(最长为 1 200m)。与 同的是, 发送端需要设置为发送模式,这使得以使 用双线模式实现真正的多点双向通信。 荐使用在点对点网络中,线型是总线型,不能是星型和环型网络。在理想情况下 要 2 个终接 电阻,其阻值要求等于传输电 缆的特性阻抗。没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声。没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘, 这其中的一些是不正确的。 能使用星型或者环型的拓扑结构,主要是由于在这些结构中, 口过低或者过高的终接电阻可以产生电 磁干扰。 使用 4 线时可以和 样实现全双工,还可实现真正的多点通信。在某些限制条件下 以实 现相互的连接。如 制卡通常使用这种标准的设备来作为物理层。口同样可以在一些工厂的项目控制机器上看到,来 实现工厂不同楼层之间的数据通信。它可以抵抗机械设备和焊接设备的电磁干扰。 15 可以在大型音频系统中使用,如在音乐厅或剧院中通过这种接口设备就可以使用普通的计算机来运行一些特殊的软件,实现远距离音频设备的控制。 过 准的线缆连接设备大量用于麦克风上,从而实现舞台和控制台之间的连接而不需要预设线路。 表 2出了 一些特性和引脚的分配及和 比较。 表 2一些特性和引脚的分配及和 比较 8 1 o ( 3 2 o ( 2 3 ( 20 4 ( 5 o ( 6 6 o ( o 4 7 ( o 5 8 的串口通讯 C+语言是当今最流行的面向对象程序设计语言,而 +是司开发的基于 作系统 的 C+语言程序的可视化编程工具。 +的执行速度快,对操作系统的访问权限高,这些是其他许多编程工具所无法比拟的。因此, +成为众多程序员在 我们选择 +下简称 为我们的编程工具。它提供了强大的编译能力以及良好的界面操作性。能够对 5/98、 16 T 以及 000 下的 C+程序设计提供完善的编程环境。同时 网络、数据库等方面的编程也都提供相应的环境支持 。 在 中有两种方法可以进行串口通讯。一种是利用 司提供的 件 一种是直接用访问串口。下面将简述这两种方法。 司在 它,我们可以很简单的利用串口进行通讯。在使用它之前,应将控件加在应用程序的对话框上。然后再用 成相应的对象。现在我们可以 使用它了。 该控件有很多自己的属性,你可以通过它的属性窗口来设置,也可以用程序设置。我推荐用程序设置,这样更灵活。 定使用的串口。 到当前使用的串口。 定串口的参数。一般设为默认参数 9600, N, 8, 1。这样方便与其他串口进行通讯。 得串口参数。 开或关闭串口,当一个程序打开串口时,另外的程序将无法使用该串口。 得串口状态。 入缓冲区中接受到的字符数。 次读取输入缓冲区的字符数。设置为 0时,程序将读取缓冲区的全部字符。 取输入缓冲区。 17 出缓冲区中待发送的字符数。 入输出缓冲区。 一般而言,使用上述函数和属性就可以进行串口通讯了。以下是一个范例。 #00 . ; ); !) 57600,N,8,1); ); ,10, 18 (= ; / / 用该控件传输的数据是 式。关于 关于该控件的其他详细资料请查看 分。 接用
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。