




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 本文 概述了计算机与 单片机 进行串行通信的基本原理和编程时所用到 的 并采用 发软件,使用 件设计 了计算机与单片机进行串行口通信 的软件平台, 以及 给出 程序流程图和部分程序源代码 。 串行通信作为基础而灵活的一种通信方式,被广泛应用于计算机系统的数据通信。在 境下使用 件进行串口应用开发具有代码短、运行快、可移植性、简单快捷等特点。 使用 件进行串行通信编程的步骤包括加载 件、初始化并打开串行端口、捕获串行端口时间、 串行端口数据读写和关闭串行端口。 本 程序 使用 供的 用程序框架,采用基于对话框的结构,有主对话框界面和串口设置对话框界面两个界面。其中主对话框实现打开串口、显示接收数据、输入发送数据等功能,而串口设置对话框实现包括端口、波特率、数据位、停止位、校验位等串口通信参数的设置。 使用本文设计的 单片机的通信软件时需要先单击主对话框的串口设置进入串口设置对话框,设置约定的串口参数,然后选择发送数据或者文件, 动将数据通过串口发送给单片机,单片机收到数据后进行相应的操作或者返回数据并在显示区显 示,从而地实现了 制单片机硬件的功能,并具有界面精致、美观、简洁、方便使用等优点。 关键词 单片机 串行通信 目 录 1 前言 . 1 串行通信原理 . 1 软件开发工具 . 2 2 件串口编程 . 2 件简介 . 2 件描述 . 3 件处理通信的方式 . 3 件常用属性 . 3 件的事件 . 5 件编程步骤 . 5 3 串行通信软件的编程实现 . 6 软件功能和流程设计 . 6 界面设计 . 6 变量声明 . 9 编程实现 . 11 初始化 . 11 串口操作 . 12 接收数据处理 . 13 发送数据处理 . 13 文件操作处理 . 14 其它操作 . 15 4 结语 . 15 致谢 . 17 参考文献 . 18 . 19 附录 . 20 1 1 前言 随着计算机在工业领域的广泛应用 , 局域控制网络也深入应用到各行各业中。目前 ,在很多分布式数据采集和控制系统中 , 都采用主从式结构模式 , 即以 为主体 , 分布在现场的各个单片机系统为从机组成的系统结构。 单片机用在控制过 程中 可使控制系统工作在最佳状态 , 提高系统自动化程 度。 但是,由于单片机的数据存储容量和数据处理能力都较低,所以一般情况下要通过通信手段使它与 相连,把所收集到的数据传送到 上,再在 上进行数据处理,充分发挥两者各自的优势。 机 单片机系统是一种广泛应用的主从计算机控制系统,其信号的交互往往采用串行通信 1。 串行通信原理 串 行通信 是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于串 行接 口。 串行通信 的概念非常简单,串口按位( 送和接收字节。尽管比按字节( 并行通信慢,但是串口可以在使用一 根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如 义并行通行状态时,规定设备线总长不得超过 20 米,并且任意两个设备间的长度不得超过 2 米;而对于串口而言,长度可达 1200米。典型地,串口用于 字符的传输。通信使用 3 根线完成:( 1)地线,( 2)发送,( 3)接收。由于 串行通信 是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。 串行通信最重要的参数是波特率、 数据位、奇偶校验和停止位。对于两个进行通信的端口,这些参数必须匹配: 1、 波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的 位 的个数。例如 300波特表示每秒钟发送 300 个 位,记着 300b/s。 2、 数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包, 实际的数据不一定 是 8 位的,标准的值是 5、 7 和 8 位。如何设置取决于你想传送的信息。每个包是指一个字节,包括开始 /停止位,数据位和奇偶校验位。 3、 奇偶校验位:在 串行通信 中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值 确保传输的数据有偶个或者奇个逻辑高位 。 4、 停止位:用于表示单个包的最后一位。典型的值为 1, 2 位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了 2 小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会 2。 软件开发工具 单片机通信的实现依赖于其硬件系统和软件系统两部分,而软件系统又包括下位机(单片机)软件和上位机( 件。本文的任务是设计一个能够实现 单片机串行通信的上位机软件。 在 境下 , 编写串行通 信程序是一件相当复杂的工作 , 程序员需要具备深厚的硬件知识、花费大量的时间和精力与硬件打交道 , 而不是如何获取与处理数据 。 它强大的面向对象的程序设计使一般的用户能够操作 。在 + + 、 发工具之间 , + + 功能强大 , 应用灵活 , 同时也得到了 统的最好支持 。 本设计是在 + +环境下 , 利用 P 操作系统的多线程技术和控件 , 开发串行通信程序 。 在开发微机控制系统的过程中 , 我们经常 需要通过 行接口与外部设备进行通信 。 在 实现多级通信的方法多种多样 , 比如 : 对 I/O 口直接访问操作、基于通信控件来实现、基于动态链接库的方法、用 数等 , 但各有各的优缺点 。 对 I/O 口直接访问操作适用于 8 及以下操作系统中 ; 动态链接库有其自身的特点 , 如节省内存、支持多语种等功能 ,而且当 的函数改变后 , 只要不是参数的改变调用的函数并不需要重新编译 , 这在编程时十分有用 , 但掌握起来比较麻烦 ; 供了使用 文件及 I/O 函数进行串行口操作的方法 , 但是在实现上仍然是相当烦琐的 ; 幸运的是 ,在对串行口编程时 , 台先进的 术使我们不必处理烦琐的细节 。 利用已有的 件 , 只需要编写少量的代码 , 就可以轻松高效地完成任务 。 本文以P 下 使 用 + + 件开发串行通信软件。 该控件的响应文件是 以下简称为 件 。 2 件串口编程 件简介 件 , 即 是 简化 件 。 它提供了一系列标准通信命令的使用接口 , 利用它可以建立起与串口的连接 , 并可以通过串口连接到其他通信设备 (如调制解调器 ), 从而实现发出命令、交换数据以及监视和响应串行连接中发生的事件和错误等功能 。 3 件也可以用于创建电话拨号程序、串行口通信程序和功能完备的终端程序 。 件 描述 件处理通信的方式 件提供下 列两种处理通讯的方式:事件驱动方式和查询方式。 1、 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 D)或 o 上一个字符到达或一个变化发生时。在这些情况下,可以利用件的 件捕获并处理这些通讯事件。 件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 性。在编程过程中,就可以 在 件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个 件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 件。 2、 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是 调制解调器的“确定”响应。 件常用属性 件 利用 件实现计算机通信的关键是理解并正确设置件众多属性。以下是 件的常用属性 3: 设置或返回串口号。 以字符串的形式设置或返回 串行通信 参数。 设置或返回串口状态。 设置或返回接收数据的类型。 设置或返回 1 次从接收缓冲区中读取字节数。 设置或返回接收缓冲区的大小 , 缺省值 为 1024 字节。 设置或返回接收缓冲区中等待计算机接收的字符数。 从接收缓冲区中读取数据并清空该缓冲区 , 该属性设计时无效 , 运行时只读。 4 设置或返回发送缓冲区的大小 , 缺省值为 512 字节。 设置或返回发送缓冲区中等待计算机发送的字符数。 向发送缓冲区发送数据 , 该属性设计时无效 , 运行时只读。 该属性为一阀值。当接收缓冲区中字符数达到该值时 , 件设置 性 为 并产生 件。用户可在 件处理程序中进行相应处理。若 性设置为 0, 则不产生 件。例如用户希望接收缓冲区中达到 1 个字符就接收 1 个字符 , 可将 置为 1。这样接收缓冲区中接收到 1 个字符 , 就产生 1 次 件。 该属性亦为一阀值。当发送缓冲区中字符数小于该值时 , 件设置 性为 并产生 件。若 性设置为 0,则不产 生 件。要特别注意的是仅当发送缓冲区中字符数小于该值的瞬间才产生 件 , 其后就不再产生 件。例如 置为 3, 仅当发送缓冲区中字符数从 3 降为 2 时 , 件设置 性为 同时产生 件 , 如发送缓冲区中字符始终为 2, 则不会再产生 件。这就避免了发送缓冲区中数据未发送完就反复发生 件。 这是一个非常重要的属性。该属性设计时无效 , 运行时只读。一旦串口发生通信事件或产生错误 , 依据产生的事件和错误 , 件为 性赋不同的代码 , 同时产生 件。用户程序就可在 件处理程序中针对不同的代码 , 进行相应的处理。 性的代码、常数及含义见表 1、表 2。 表 1 信事件 代码 常数 含义 1 送缓冲区中数据少于 , 说明串口已经发送了一些数据 , 程序可以用 性继续发送数据。 2 接受到 字符。该事件将持续 产生 , 直到用 性从接受缓冲区中读取并删除字符。 3 号线状态发生变化。 4 号线状态从 1 变到 0。 5 5 号线状态发生变化 6 测到振铃信号。 7 受到文件结束符。 表 2 信错误 代码 常数 含义 1001 受到一个中断信号。 1002 号超时。 1003 号超时。 1004 错误。 1006 串口超速。 1007 载波检测超时。 1008 接受缓冲区溢出 , 缓冲区中已没有空间。 1009 偶校验错。 1010 送缓冲区溢出 , 缓冲区中已没有空间。 1011 索串口的设备控制块时发生错误。 件的事件 件只有一个事件,即 件。 件运行触发事件或者发生错误时,都会触发 件,同时改变 性值。根据 以判断 件当前触发事件或发生错误的具体类型,在 件响应代码段中,编写对应各种 性值的处理代码。 件编程步骤 在 + 成开发环境中,使用 件进 行串行通信编程的步骤包括加载 件、初始化并打开串行端口、捕获串行端口时间、串行端口数据读写和关闭串行端口。 6 1、加载 件。 + 默认情况下,不会包含 件,所以使用控件编程必须将 件加载到 + 成开发环境中。 2、初始化并打开串行端口。初始化主要完成设置程序使用的串口编号、设置串口的通信参数,然后打开端口。 3、捕获串行端口事件。 件运行触发事件或者都会触发 件,同时改变 性值。 由此可 判断控件当前触发事件或发生错误的具体类型。 4、串行端口数据读写。创建 中 数和 实现串行端口数据读写操作。 5、关闭串行端口。当使用完控件后,应该及时关闭串口,以释放串口资源。 3 串行 通信软件的编程实现 软件功能和流程设计 1、本软件要完成以下功能: a)支持各种串口设置,如波特率、校验位、数据位和停止位等。 b)发送和接受的数据可以在十六进制和 之间任意转换。 c)可以自动在发送的数据尾部增加校验位,支持 多种校验格式。 d)可以从外部文件导入 发送 数据 ,也可以导出接收到的数据 。 2、根据要实现的功能要求,编程流程图如图 1 所示。 图 1 串行通信软件概念设计流程图 界面设计 本 程序 使用 供的 用程序框架,采用基于对话框的结构,具有开发易、运行速度快、界面精致等特点 4,程序有主对话框界面和串口设置对话框界面两个界面。 7 其中主对话框实现打开串口、显示接收数据、输入发送数据等功能,而串口设置对话框实现串口通信参数的设置。 1、主对话框界面如图 2 所示,界面中使用了 4 个组框、 3 个编辑框、 8 个按钮盒 2个复选框。 图 2 主对话框界面 主对话框的资源及其作用如表 3 所示。 表 3 主对话框的资源及其功能 名称 能 接收数据编辑框 示接收数据 串口设置按钮 置串口的通信参数 打开串口按钮 开 /关闭串口 打开文件按钮 开要发送的文件 发送文件按钮 送文件 保存文件按钮 存文件 8 文件操作编辑框 示要发送的文件 发送数据按钮 送数据 清除按钮 除已输入的数据 发送数据编辑框 入要发送的数据 清屏按钮 除接收数据框 选框 用 据格式 换行复选框 行 件 口通信 2、 设置 对话框界面如图 3 所示,包括端口、波特率、数据位、停止位、校验位等通信参数的设置。界面中的两个按钮是自动创建的,界面中使用了 6 个静态文本控件作为文本标签。 图 3 设置对话框界面 串口设置对话框的主要资源是 5 个组合列表控制。其参数设置如表 4 所示。 表 4 组合列表框的参数设置 名称 据项目 功能 9 端口组合框 择通信串口 波特率组合框 10 300 600 1200 2400 4800 9600 14400 19200 28800 38400 56000 57600 115200 设置波特率 数据位组合框 6 7 8 设置数据位位数 停止位组合框 2 设置停止位位数 校验位组合框 校验 奇校验 空格校验 标号校验 无校验 设置校验方式 变量声明 变量包括主对话框的成员变量和设置对话框的成员变量。 10 1、主对话框的的成员变量 在主对话框的头文件中声明这些变量。首先应该在 件增加串口设置对话框类多文件 在 文件的首部增加包含 件类头文件和 头文件。然后手动在 文件的类构造中声明成员变量: / ; ; /校验位 /数据位 /端口号 /停止位 / 打开的文件 / 打开标志 / 系统图标标志 ; / 系统图标 同时,使用类向导自动声明静态文本、按钮、复选框和编辑框的关联成员变量。 表 5 关联变量声明 11 2、串口设置对话框的成员变量 使用 +的类向导自动创建串口对话框的成员变量,如图 4 所示。 表 6 对话框的成员变量声明 编程实现 初始化 程序运行时需要给定一个初始化条件,主要内容有三大方面:( 1)串口设置初始化即串口对话框的参数的初始化,本文的设置是端口选择 特率为 115200,数据位为 8,停止位为 1,校验位无未校验;( 2)创建串口对象,即创建控件的实例;( 3)串口 12 初始化,设置输入缓冲区的大小,输出缓冲区的大小,输入模式为二进制并初始化串口等等。 串口操作 1、单击主对话框的“串口设置”按钮,将弹出“串口设置”对话框,可以再该对话框中设置通信参数。流程图如下: 图 5 串口 设置流程图 2、主对话框的“打开串口”按钮实现打开或者关闭指定串口的功能。流程图如图 6所示。 13 图 6 打开串口流程图 接收数据处理 程序在 件的 件中接收数据 ,并在接收数据区实时显示数据 。流程图如图 7 所示。 图 7 接收数据流程图 发送数据处理 发送数据处理包括发送数据按钮和清除按钮两部分。 1.、单击“发送数据”按钮,输入的字符串将通过串口发送出去。流程图如图 8 所示。 14 图 8 发送数据流程图 2、单击“清除按钮”,发送数据编辑框的字符串将清零。 文件操作处理 文件操作处理包括打开文件按钮、发送文件和保存文件。 1、单击“打开文件”按钮,将弹出打开文件对话框,以便选择要发送的文件,只支持 件。流程图如图 9 所示。 图 9 打开文件流程图 2、单击“发送文件”按钮,选中的 件会通过串口发送。流程图如图 10 所示。 15 图 10 发送文件流程图 3、单击“保存文件”按钮,即可以 档格式保存已接受的数据。流程图如图11 所示。 图 11 保存文件流程图 其它操作 1、清屏。单击“清屏”按钮,将清空接收数据。 2、 式。选上 选框,将会使用 式显示接收到的数据。 4 结语 16 本文首先介绍了串行通信的基本原理,然后介绍了使用 件精心串行通信的方法,最后在 +使用 设计了基于对话框的 单片机的通信软件。使用时需要先单击主对话框的串口设置进入串口设置对话框,设置约定的串口参数,然后即可发送数据或者文件, 动将数据通过串口发送给单片机,单片机收到数据后进行相应的操作或者返回数据并在显示区显 示,从而实现了 制单片机硬件的功能。所设计的软件界面精致、美观、简洁,并且操作简单、方便掌握。 17 致 谢 本课题在选题及进行过程中得到刘丹 老师的悉心指导。软件设计过程中,刘 老师多次帮助我分析思路,开拓视角,在我遇到困难想放弃的时候给予我最大的支持和鼓励。刘老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。再多华丽的言语也显苍白。在此,谨向刘老师致以诚挚的谢意和崇高的敬意。 感谢大学四年来,理学院所有老师对我学习上的帮助和生活上的关怀,正是您们的辛勤工作,才使我得以顺利地完成学业 ,取得学位。浓浓师恩,终生不忘。 大学四年的生活即将随着论文的完成划上句号。最后,我感谢大学四年以来给过我帮助和关注的所有人,更加感谢给过我挫折的所有人。你们用不同的方式给了我成长,也是你们促使我在走过的大学时光里一直努力,终可以在毕业的那一天无愧的说一声:青春无悔。 18 参 考 文 献 1 龚建伟 , 熊光明 . +/ 串口通信编程实践 M . 北京 : 电子出版社 , 2004 . 2182 李朝青 . 单片机原理及接口技术 M . 第三版 . 北京 : 北京航空航天大学出版社 , 2006 . 1513 韩利凯 . 用 实现 单片机串行通信方法的研究 J . 西安文理学院学报 , 2005 , 8(2) : 734 . + . 5th U. S : 1998 . 1719 C 10642, of of C CM is of is As a of is in is s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB23-T3037-2021-段木栽培松杉灵芝技术规程-黑龙江省
- DB23-T3031-2021-玉米种质田间抗旱性鉴定技术规程-黑龙江省
- 拓展阳台改造方案(3篇)
- DB23-T2949-2021-植保无人飞机水稻精准施药技术规程-黑龙江省
- DB23-T2925-2021-饲用红三叶栽培技术规程-黑龙江省
- 古代家庭医疗管理制度
- 新楼线路改造方案(3篇)
- 制定企业人员管理制度
- 医院转运中心管理制度
- 外墙清洗策划方案(3篇)
- 麻醉精神药品培训考核试题(含答案)
- 猪丁型冠状病毒感染对ST细胞凋亡与自噬的机制解析
- 核电站辐射剂量优化管理策略-洞察阐释
- 安徽省天一大联考2025年高三最后一卷化学试题及答案
- 国家开放大学2025年《创业基础》形考任务2答案
- 骨痿临床路径及表单
- 挡土墙隐蔽工程验收记录
- 《实验室安全教育》课程教学大纲(本科)
- 部编版六年级下册语文作业本参考答案
- 《毕业设计plc电弧炉控制系统总体设计》
- 铁塔CRM系统立项操作流程
评论
0/150
提交评论