(电磁场与微波技术专业论文)超低频井下通信系统软件开发研究.pdf_第1页
(电磁场与微波技术专业论文)超低频井下通信系统软件开发研究.pdf_第2页
(电磁场与微波技术专业论文)超低频井下通信系统软件开发研究.pdf_第3页
(电磁场与微波技术专业论文)超低频井下通信系统软件开发研究.pdf_第4页
(电磁场与微波技术专业论文)超低频井下通信系统软件开发研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(电磁场与微波技术专业论文)超低频井下通信系统软件开发研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘 要 大功率的超低频电磁波技术是当今国际瞩目的一个新兴研究领域,在井下、水 下通信系统、海洋、地震监测、核废料处理及环境保护等方面具有广泛应用前景。 目前,我国对于超低频井下通信的研究还不太成熟。本文针对井下通信的实际 需求,进行了井下通信系统的开发工作。鉴于传统低频无线通信系统中,电路元件 过多过大、系统结构复杂以及硬件调试不便等诸多缺点,本文提出了以单片机的软 件调制方式替代传统的硬件调制方式的做法,精简了系统结构,减少了电路元器件, 并使整个通信系统的调试显得更为方便。整个超低频井下通信系统中包括了发射机、 接收机及频率检测器三个部分,文中对这三个部分的功能及软件实现都进行了详尽 的阐述。电磁波的发射频率范围为 1100hz,使用数字脉宽调制方式(dpwm) , 这些工作都将由单片机软件编程完成。 最后,本文对于系统软件的综合及调试进行了说明,并对整个超低频通信系统 作了总结。 关键词:超低频 井下通信 单片机 数字脉宽调制 ii abstract the technique of large power super low frequency communication is attached great importance as a new research field in current international situation. it can be widely used in several kinds of circumstances, such as, communication systems under- well / underwater, sea / earthquake monitoring, nucleus scarp processing and environment protection application, etc. as a matter of fact, the under- well super low frequency communication is not very mature in our country. the research of the under- well super low frequency communication system is achieved in this thesis due to the practical needs of the under- well communication. since there are many shortcomings in the traditional low - frequency wireless communication systems such as excessive circuit components, system complexity and inconvenience of hardware debugging, this thesis presents a new approach that using single - chip microprocessor (scm) software modulation instead of the traditional hardware modulation to reduce circuit components and simplify the system structure. in this system, the emission frequency range of electromagnetic wave is between 1hz and 100hz using digital pulse width modulation (dpwm). all these efforts will be completed by scm software programming. in all, the method is characterized by simple structure, collecting components easily and low cost. and it provides a model for the designing work of a communication system in super- low frequency. key words: super- low frequency communication under- well single- chip microprocessor dpwm 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名:余飞 日期:2 0 0 7 年 6 月 9 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_ _ _ _ _ 年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名:余飞 指导教师签名:董天临 日期: 2 0 0 7 年 6 月 9 日 日期: 2 0 0 7 年 6 月 9 日 本论文属于 1 1 绪论 1.1 课题背景 1.1.1 超低频通信技术简介 超低频通信技术是利用无线电频谱中的超/极低频谱段(美国将 3 赫3 千赫频段 称为极低频,前苏联将其划分为三个频段:330 赫为极低频;30300 赫为超低频; 3003000 赫为次低频)。 实现超低频通信,需要研究多种课题:在给定输入功率的情况下,如何使输出 功率达到最大;要在给定通信距离和功率要求的条件下,选择最佳的发射频率;研 究超低频通信的加密技术;如何提高通信的数据传输速率;什么样的地质构造适合 建造超低频通信台站等。 超低频通信具有如下优点1- 7: 1超低频信号在地壳中传播的衰减远比其它常用的低频信号低得多,因此可以 有更高的穿透深度。 2超低频信号对不可靠的传播条件不敏感,传播稳定可靠,是为数极少的几种 不受电磁波破坏的通信手段之一。 3抗干扰能力较强,如果试图干扰超低频通信,就必须要有比超低频通信信号 更强大的功率输出。 同样的,超低频通信也具有不少的缺点: 1超低频通信系统最有效的发射机天线应有近似于波长同样大小的尺寸,要架 设这样的天线十分困难。 2超低频通信系统天线效率比较低,为了能够将信号远距离的传送出去,往往 需要很高的发射功率。这个信号还必须与主要由地球周围的电报引起的高电平磁噪 声进行竞争。 3超低频通信系统由于频带很窄,只能以很低的数据率进行传输,即需要较长 的时间来传送一份简短的电文。天线尺寸的任何折中方案都将进一步降低效率,使 数据率更低。 但即便超低频通信存在着天线尺寸大,效率低以及数据传输率慢等诸多缺点, 在地质探测、井下通信系统中,为了减少传播衰减,增大通信距离,仍然需要使用 超低频通信技术来解决实际问题。 2 1.1.2 井下通信系统 在地质探测与研究的过程中,通常需要对地表下数百米甚至数千米的地质特征 进行数据的采样,然后进行分析。而此项工作,不可能让地质研究员深入地下数千 米处亲力而为,往往都是借由井下探测仪器来进行数据的采集,然后通过无线通信 系统,将采集得到的数据发回地表,送入计算机主机,再由研究员们对数据进行分 析处理8- 13。 除了地质探测仪在数据采集过程中作用巨大之外,井下通信系统的重要性以及 对其的要求也是越来越高。 由于钻井深度大,通信距离远,而地壳中的结构特点使得电磁波中的高频成分 会被极大的衰减,因此需要借由超低频信号扰干扰能力强,传播远的特点,实现井 下与地表间的通信。 1.2 课题来源、目的和意义 本论文所研究的课题来源于华中科技大学电信系微波中心实验室与中国地质大 学的合作项目。 目的是设计并开发一种井下通信系统电路板,用于测井中,采集数据的存储与 传输。 正如上一节中叙述的一样,井下通信系统面临着传输慢,效率低等诸多缺点, 而随着采集的数据增多,井下通信系统的控制、数据的存储也趋于复杂。 井下通信系统作为整个测井设备的纽带,其重要性是不言而喻的。为了能够让 井下通信系统正常的工作,并找到一种有效的传输方式和控制方式,正是本文所要 研究的重点内容。 1.3 本文的主要工作及研究 本文的主要工作是对井下通信系统软件部分的研究与实现,包括以下几个方面: 1根据井下通信的一般特点,分析了井下通信中对于数据采集、存储、及编码 发送等技术的指标需求。 2设计井下通信系统的软件体系结构,依据系统需求分析得到的信息以及现有 的资源环境,分析了不同系统架构设计的优缺点,确定了系统体系结构,编程语言 3 与集成开发环境。 3根据通信数据的结构及功能模块,采用规范的程序设计方法对系统进行软件 的编写。 4完成系统相关文档的编码及调试工作。 1.4 全文内容结构安排 第一章详细介绍本研究课题的背景、目的和意义。说明本文完成的主要工作、 研究以及论文的主要内容和章节安排。 第二章首先分析系统需求,然后为本系统流程进行分析,确定系统的解决方案。 第三章简要介绍本系统的关键技术,说明使用这些技术的目的和具体的使用方 法。 第四章详细说明系统各模块的具体实现。 第五章是本系统软件的综合集成。 最后是全文总结。 1.5 本章小结 本章主要讲述课题的背景,首先概述了超低通信技术的特征及优缺点,并介绍 了超低频通信在井下通信系统中的必要性。接下来讲述本课题的来源、目的与意义。 最后是对本论文的主要工作和内容的归纳和安排。 4 2 通信系统的设计 2.1 系统需求分析 根据课题研究的技术要求,本文所设计的整套通信系统主要包括两个部分,一 个是地下发射装置(简称为上位机) ,一个是地表接收装置(简称为下位机) ,适用 于 1100hz的电磁波发射与接收。 图 2- 1 给出了一个整套系统的示意: 图 2- 1 整套通信系统示意 对于上位机而言,主要功能是信号发射。上位机硬件安装在直径 36mm 宽的线 路板上,线路板可装入外径为 38mm 装饰用不锈钢管内,长度不限。若线路板过长 时可分为几段,段与段之间插线连接。上位机使用外接电源36v,电池放电最大值 3a/h。工作前,由外部计算机输入发射参数,包括采样时间、发射频率、发送时间 间隔和待机时间。在不发送信号的间隔时间内,采集的数据记录储存。发射部分与 斜测探管插线连接,发射功率不小于 120w。图 2- 2 是对上位机功能的示意。 图 2- 2 上位机示意图 上位机 单 片 机 发射电路 数据 采集 上位机 下位机 发射电磁波 处理主机 地表 地壳 钻井 钻头 串口 5 下位机用于接受信号,下位机与外部计算机连接。使用 220v标准电源,面板上 有开关,电源调理线路装于机内,电源应有过载保护功能。面板上还应有天线和地 线的连接线柱。 并且下位机的机壳还要有能适应恶劣环境的要求。 图 2- 3 是对下位机 的功能示意。 图 2- 3 下位机示意图 如果有必要,还应该设计出能够检测电磁波发射频率的简易信号检测器,以便 观测上位机是否能够正常工作。 以上是关于整套系统的综合说明,对于系统软件的设计而言,需要如下的软件 设计指标: 1 传输数据的格式为 “bb55” 11 个数据 (每个数据两个字节即 4 个 bcd码) , 因此一组数据共计 48 个 bcd码。 2采集数据由串口送回单片机,接收默认时间为 1s,初始可调 1- 10s。 3当上位机工作时,向外编码发送数据的发送时间默认为 3min,初始可调 3- 30min。 4间歇时间默认 10min,可调 5- 60min。间歇时间内,发送装置处于休眠状态, 目的是为了省电。 2.2 系统配置 由于是在单片机上开发程序,所以首先需要选择一个开发平台。在本课题中, 本文选取的是:wave for windows version 3.20。 在单片机芯片的选取上,对于上位机而言,要求电路板板宽为 36mm,这就决定 了所选用的单片机不能过大,因此选择了 at89c2051,它的结构比较小巧。 下位机 单 片 机 接收电路 计算机 6 下位机是地表接收装置,没有尺寸的要求,因此可以直接比较常用的 at89c51。 2.3 系统模块划分及流程设计 确定单片机控制系统总体方案,是进行系统设计最重要、最关键的一步。总体 方案的好坏,直接影响整个控制系统的性能及实施细则。总体方案的设计主要是根 据被控对象的任务及工艺要求而确定的。 设计方法39- 41大致如下:根据系统的要求,首先确定出系统是采用开环系统还 是闭环系统,或者是数据处理系统。选择检测元件,在确定总体方案时,必须首先 选择好被测参数的测量元件,它是影响控制系统精度的重要因素之一。选择执行机 构,执行机构是微型机控制系统的重要组成部件之一。执行机构的选择一方面要与 控制算法匹配,另一方面要根据被控对象的实际情况确定。 选择输入/输出通道及外 围设备。选择时应考虑以下几个问题:被控对象参数的数量;各输入/输出通道是串 行操作还是并行操作;各通道数据的传递速率;各通道数据的字长及选择位数;画 出整个系统原理图。 首先本文提出了一种比较传统的低频通信方法。 图 2- 4 上位机工作流程 图 2- 4 中给出了上位机工作流程。 按照通信原理的发射基本框图,按照模块一一 进行实现。地质探测器采集到的数据,首先需要通过模数转换送入到单片机保存, 然后再由数模转换变成模拟信号按照传统的方法进行调制,载波是由振荡电路产生 的 1100hz的正弦波,然后送放大电路进行功率放大最后通过天线发射。 7 图 2- 5 下位机工作流程 同理, 图 2- 5 给出了下位机工作流程,首先通过天线接收由地底发射过来的电磁 波信号,由于传播过程中的衰减与干扰,首先需要对电磁波信号进行放大与滤波, 将小信号变为大信号,然后通过解调电路还原成原始的波形信号,再经过模数转换 变为数字信号送入到单片机中,最后由串口送回计算机主机处理。 在这种通信方式中,优点是各硬件模块分离,系统流程比较清晰,但也正是因 为硬件模块过多,频繁的 d/a,a/d 转换,却使得整个系统显得过于复杂,而且使 用模拟调制方式,更是为整个通信增添了诟病。另外,在整个通信系统中,虽然使 用了单片机进行数据的中转,但是,单片机本身强大的数据处理功能却并没有得到 发挥, 从图 2- 4 与图 2- 5 中可以看出, 它的作用也仅仅只在于提供数据的交换与存储, 而没有用过单片机微处理器的诸多功能。 因此,本文又提出了一种改进方案,该方案的主要思想是:最大限度的利用单 片机本身的运算资源和存储资源,尽量简化硬件电路要求,将模拟调制方式更改为 数字调制方式,优化通信系统性能。 整个系统将尽量精减为如图 2- 2,图 2- 3 所示意一般,即除了收/发电路与放大电 路之外,通信过程中的大部分工作将由单片机来完成,包括数据的传输、存储、编/ 解码、整个系统的控制等。这也即是要求需要对单片机的控制系统软件有着良好的 设计。 单片机控制系统的软件设计一般分 2 类:系统软件和应用软件设计。系统软件 8 的主要任务是:管理整个控制系统的全过程,比如,powerup 自诊断功能,key inpit 的管理功能,printer output 报表功能,display 功能等等。是控制系 统的核心程序,也称之为 moniter监控管理程序其作用类似 pc 机的 dos 系统。 软件设计包括如下几个方面: 1) 可靠性设计为保证系统软件的可靠性,通常设计一个自诊断程序,定时对系 统进行诊断。在可靠性要求较高的场合,可以设计看门狗电路,也可以设计软件陷 阱,防止程序跑飞。 2) 软件设计与硬件设计的统一性在单片机系统设计中,通常一个同样的功能, 通过硬件和软件都可以实现,确定那些由硬件完成,那些由软件完成,这就是软件、 硬件的折衷问题。一般来说,在系统可能的情况下,尽量采用软件,因为这样可以 节省经费。若系统要求实时性比较强,则可采用硬件。 3) 应用软件的特点 实时性:由于工业过程控制系统是实时控制系统,所以对应用软件的执行速 度都有一定的要求,即能够在被控对象允许的时间间隔内对系统进行控制、计算和 处理。换言之,要求整个应用软件必须在一个采样周期内处理完毕。所以一般都采 用汇编语言编写应用软件。但是,对于那些计算工作量比较大的系统,也可以采用 高级语言和汇编语言混合使用的办法,即数据采集、判断、及控制输出程序用汇编 语言,而对于那些较为复杂的计算可采用高级语言。为了提高系统的实时性,对于 那些需要随机间断处理的任务,通常采用中断系统来完成。 通用性:在应用程序设计中,为了节省内存和具有较强的适应能力,通常要 求程序有一定的灵活性和通用性。为此,可以采用模块结构,尽量将共用的程序编 写成子程序,如算术和逻辑运算程序、延时程序、标度变换程序、报警程序等。 4) 软件开发步骤软件开发大体包括:划分功能模块及安排程序结构;画出各程 序模块详细流程图;选择合适的语言编写程序;将各个模块连接成一个完整的程序。 按照软件开发步骤,首先根据上位机与下位机的功能进行模块划分。 1上位机发射装置 根据上位机的功能特点,需要将其分为以下几个模块: 1) 上位机初始化模块。负责读入外部计算机赋予的初始值。 2) 数据读入模块。负责通过串口读取探测器采集而来的数据。 3) 数据编码模块。负责将读取存储的数据进行适当的编码。 9 4) 数据发送模块。负责控制发射电路,并将编码好的数据发射出去。 5) 定时模块。负责上位机关于接收时间,发送时间等时间的控制。 如上所述,可以绘出上位机工作流程大致如图 2- 6 所示: 图 2- 6 上位机主流程图 2下位机接收装置 从模块划分上而言,下位机的模块划分要比上位机少,因为它是地表工作装置, 所以已经不存在关于工作时间控制的问题。大致模块如下: 1) 下位机初始化模块。负责读入外部计算机赋予的初始值。 2) 数据接收模块。负责将接收电路接收到的数据读入单片机。 3) 数据解码模块。根据编码规则将信号数据还原为 bcd数据组。 4) 数据发送模块。负责将已解码的数据通过串口送到计算机主机。 开始 读入初始化信息 循环子程序开始 接收采样数据 采样时间 数据编码发送 发送时间 待机? 否 否 已到 已到 否 10 因此,下位机的工作流程可以用图 2- 7 表示。 图 2- 7 下位机主流程图 根据以上模块的划分及流程表示,软件开发的下一步是对各个模块进行编码, 将在后续章节中介绍。 2.4 本章小结 在本章中,主要讨论了研究课题的技术要求指标,包括软件与硬件,然后先根 据硬件要求选取了与之适应的开发平台与单片机芯片,再根据软件要求对整个软件 系统进行模块化、功能化,总结并绘出了软件系统实现的流程图。 开始 读入初始信息 循环子程序开始 接收数据 存储数据 通过串口送往主机 结束? 解码还原 结束 否 11 3 关键技术介绍 在上一章的系统需要分析与流程分析中,确定了以单片机为通信处理核心的方 案,为了最大限度的利用单片机内部资源,在这一章中,将对 51 单片机中与本文课 题相关的三个关键技术14- 19予以介绍,以便在本文第四章的编程实现中进行使用。 3.1 单片机的中断机制 在使用单片机对外部数据或片内状态进行监测时,通常的做法是不断检测与该 状态相关的寄存器标志位,观察标志改变与否,以判断事件是否发生。在中断机制 引入以前,都是通过程序的条件语句反复判断标志的取值,即查询方式,在查询过 程中 cpu 不能再处理其它的事情,而使用中断机制之后,当某一事件发生时会自动 产生中断信号, 则 cpu 提出请求, cpu 暂停正在执行的程序转而为该特殊事件服务, 待处理完毕再回到原断点继续执行原程序。这样一来,cpu 完成可以在事件发生之 前处理其它的事情,而不必时刻监测事件是否发生,大大的节省了系统的资源。 在本文的系统软件开发中,因为上位机发射装置是位于地下,对系统的资源控 制比较严格,所以需要利用到单片机的中断机制,以节省系统资源。 3.1.1 中断源与中断控制寄存器 51 系列单片机中有 5 个中断源,3 个在片内,2 个在片外,它们在程序存储器中 有固定的中断入口地址。当 cpu 响应中断时,硬件将自动形成入口地址,进入中断 服务程序。表 3- 1 给出了 51 单片机的五个中断源说明。 表 3- 1 51 单片机的中断源 符号 名称 中断引起原因 中断服务程序入口地址 int0 外部中断 0 p3.2引脚的低电平或下降沿信号 0003h int1 外部中断 1 p3.3引脚的低电平或下降沿信号 0013h t0 定时器 0 中断 定时计数器 0 计数回零或溢出 000bh t1 定时器 1 中断 定时计数器 1 计数回零或溢出 001bh ti/ri 串行口中断 串行通信完成一帧数据发送或接收引起中断 0023h 中断控制有三个控制寄存器,用于中断的控制和设置优先级别,反映中断请求 有/无的标志。具体如下: 1中断的允许和禁止中断控制寄存器 ie ie 寄存的各位对应相应的中断源,如果允许该中断源中断则该位置 1,禁止中 12 断则该位置 0。结构如表 3- 2 示。 表 3- 2 中断控制寄存器 ie ea es et1 ex1 et0 ex0 ie 中断总控 允/禁 不用 串行口 允/禁 t1 允/禁 int1 允/禁 t0 允/禁 int0 允/禁 1/0 其中,ea 是中断总控开关。ea=1,cpu 开中断,它是 cpu 是否中断的前提, 在此前提下,如某中断源的中断允许位置 1,才能响应该中断源的中断请求。ea=0, cpu 关中断,无论哪个中断源有请求(被允许) ,cpu 都不予响应。 2中断请求标志及外部中断方式选择寄存器 tcon 当某中断源有中断请求,该中断标志被置为 1,无中断请求,该中断标志被置为 0。结构如表 3- 3 所示。 表 3- 3 中断方式选择寄存器 tcon tf1 tr1 tf0 tr0 ie1 it1 ie0 it0 tcon t1请求 有/无 t1工作 启/停 t0请求 有/无 t0工作 启/停 int1请求 有/无 int1方式 下沿/低电 int0请求 有/无 int0方式 下沿/低电 1/0 需要说明的是,tr1 和 tr0 是定时器 t1和 t0的工作启动和停止控制位,与中 断无关。而串行口的中断标志在 scon 的 ri 和 ti 位。 3中断优先级管理寄存器 ip(表 3- 4 所示) 表 3- 4 中断优先级管理寄存器 ip ps pt1 px1 pt0 px0 ip 无用位 串行口 高/低 t1 高/低 int1 高/低 t0 高/低 int0 高/低 1/0 当某几个中断源在 ip 寄存器相应位同为 1 或同为零时, 由内部查询确定优先级。 cpu 查询的顺序是:int0t0int1t1ti/ri。 3.1.2 中断响应过程 中断处理分为四阶段:中断请求,中断响应,中断处理,中断返回。 图 3- 1 所示给出了中断处理的流程。其中中断请求和中断响应过程由硬件完成。 中断服务程序应根据需要进行编写,程序中要注意保护现场和恢复现场。 若某个中断源通过编程设置处于被打开状态,并满足了中断响应的条件,然而 13 下面三种情况仍不响应此中断: 1) 当前正在执行的那条指令没执行完。 2) 当前响应了同级或高级中断。 3) 在操作 ie、ip 中断控制寄存器或执行 reti 指令。 当 cpu 响应中断后,应及时撤除该中断请求,否则会引起再次中断。 图 3- 1 中断处理流程图 图 3- 1 中给了中断处理流程图示意。 中断技术的引入,不仅能让单片机处理程序 运行过程中的突发事件,还可以极大的节省系统资源开销,是传统的查询方式不可 比拟的。 y y n n 执行命令 中断请求 中断允许 cpu 判断优先级 断点进栈,调入中断服务 撤除中断标志 中断服务 中断返回,断点出栈恢复 中断请求 中断响应 中断服务 中断返回 14 3.2 单片机的定时系统 单片机的定时系统在本课题研究起着极为关键的作用。无论是数据编码,数据 接收与发送控制,串口通信设置,系统省电休眠控制,都需要用到定时计数器的定 时功能。下面将对这一部分重点介绍。 3.2.1 定时计数器工作原理和控制寄存器 在 51 系列单片机中有两个 16 位的定时计数器 t0和 t1,两者均为可编程定时计 数器。定时器 t1由 th1、tl1组成,定时器 t0由 th0、tl0组成,它们均为八位寄 存器,映射在特殊功能寄存器中,占地址 8ah8dh。它们用于存放定时或计数的 初始值。此外,内部还有一个 8 位的方式寄存器 tmod 和一个八位的控制寄存器 tcon,用于选择定时器的工作方式,如计数或是定时(c/t) ,启动方式(gate) 及启动控制信号 tr0 或 tr1 等。 定时器实质上是一个加 1 计数器,当软件设定了定时器的工作方式,启动以后, 定时器就按规定的方式工作,不占用 cpu 的操作时间,此时的 cpu 可执行其他程 序,除非定时器溢出才可能中断 cpu 执行的程序。 在定时器工作之前必须将控制命令写入定时器的控制寄存器,即进行初始化。 定时器主要有方式寄存器 tmod以及控制寄存器 tcon 两种。 1定时器方式寄存器 tmod 表 3- 5 定时器方式寄存器 tmod gate c/t m1 m0 gate c/t m1 m0 tmod 门控 开/关 计数/定时 方式选择 门控 开/关 计数/定时 方式选择 1/0 从表 3- 5 中可知,tmod寄存器为八位寄存器,其高 4 位用于选择 t1的工作方 式,低四位用于选择 t0的工作方式。 2定时器控制寄存器 tcon 寄存器 tcon 的结构在 3.1.1 节中断系统中已经进行过介绍, 定时器控制中仅用 了其中高四位。 tf 为溢出中断请求标志,为 1 表示有中断请求,为 0 表示无中断请求。tr 为 运行控制位,为 1 启动定时器,为 0 停止定时器。 其它不再赘述。 15 3.2.2 定时计数器的工作方式 根据 m1与 m0的取值,定时器的工作方式有 4 种: 1m1 m0=00,工作方式 0: 此时定时器为 13 位定时计数方式,由 th 提供高 8 位、tl 提供低 5 位的计数初 值,最大计数值为 213,每次启动计数前需预置计数初值。 当 c/t=0 时,工作于定时器方式,以振荡源的 12 分频信号作为计算脉冲;当 c/t=1 时,工作于计数器方式,对外部脉冲输入端 t0或 t1输入的脉冲计数。 启动后计数器立即加 1 计数,当 13 位计数满时,中断溢出标志 tf 置 1,产生 中断请求,表示定时时间到或计数次数到。 2m1 m0=01,工作方式 1: 方式 1 与方式 0 基本相同。 惟一的区别在于计数寄存器的位数是 16 位的, 由 th 和 tl 寄存器各提供 8 位计数初值,最大计数值为 216,是几种方式中计数值最大的 方式。 3m1 m0=10,工作方式 2: 方式 2 是 8 位的可自动重装载的定时计数方式,最大计数值为 28。 在方式 0 和方式 1 中,当计数满后,若要进行下一次定时/计数,需用软件向 th 和 tl 重装预置计数初值。而在方式 2 中 th 和 tl 被当做两个 8 位计数器,计数过 程中,th 寄存 8 位计数初值并保持不变,由 tl 进行 8 位加 1 计数。当 tl 计数溢 出时,除产生溢出中断请求外,还自动将 th 中的初值重装到 tl,即重装载。除此 之外,其他同方式 0。 4m1 m0=11,工作方式 3: 方式 3 只适合定时计数器 0(t0) 。当 t0工作在方式 3 时,th0和 tl0成为两个 独立的计数器。这时 tl0可作定时器/计数器,占 t0用在 tcon 和 tmod 寄存器中 的控制位和标志位。而 th0只能作为定时器用,占用 t1资源 tr1和 tf1。在这种情 况下,t1仍可用于方式 0,1,2,但不能使用中断方式。只有将 t1用做串行口的波 特率发生器时,t0才可工作在方式 3,以便增加一个定时器。 3.2.3 定时器计数初值和初始化 如前所述,定时器/计数器不同工作的模值不同,由于采用加 1 计数,因此计数 初值应为负值,计算机中用补码表示。计数初值(c)的求法如下: 16 计数方式:xc= 模计数初值, (其中 x 为要计的脉冲个数) 定时方式: mc t mc t c=模计数初值 补 其中,t 为欲定时时间,mc 为机器周期 osc f mc 12 =。当采用 12mhz 晶振时, smc1=,当采用 6mhz晶振时,smc2=。 定时器的初始化编程一般说来按照以下几个步骤: 1) 根据定时时间要求或计数要求计算计数器初值; 2) 填写工作方式控制字送 tmod寄存器; 3) 送计数初始值的高八位和低八位到 th 和 tl 寄存器中; 4) 启动定时(或计数) ,即将 tr 置位。 如果工作于中断方式,需置位 ea (中断总开关)及 et (允许定时/计数器中断) 。 并编写中断服务程序。 3.3 串行通信 在本课题所研究的软件系统中,采样数据的读入,初始化信息的设置,以及最 后接收解码后将数据送往计算机主机,都是需要借用串口通信来完成。因此本节将 介绍串行通信中的一些关键技术。 3.3.1 串行通信的工作方式 串行通信的方式选择,接收和发送控制及串行口的标志均由专用寄存器 scon 控制和指示,其格式如下: 表 3- 6 串行口标志寄存器 scon sm0 sm1 sm2 ren tb8 rb8 ti ri 方式选择 多机控制 串行接收 允许/禁止 欲发的 第九位 收到的 第九位 发送中断 有/无 接收中断 有/无 根据 sm0与 sm1的取值,单片机的串行通信有四种工作方式。 方式 0:串行数据通过 rxd 输入或输出,txd 输出频率为 12 osc f 的时钟脉冲。 17 数据格式为 8 位,低位在前,高位在后,波特率固定为 12 osc f 。 发送过程以写 sbuf 寄存器开始,当八位数据传送完,ti 被置为“1”方可再发 送下一数据。 接收必须预先置 ren = 1(允许接收)和 ri = 0,当八位数据接收传送完,ri 被置为“1” ,此时,可通过读 sbuf 指令,将串行数据读入。 方式 1:此方式为 10 位异步通信试,即每帧数据由 1 个起始位“0” 、8 个数据 位和 1 个停止位“1”共 10 位构成。其中起始位和停止位在发送时是自动插入的。 方式 1 以 txd为串行数据的发送端,rxd为数据接收端,由 t1(时钟 1)提供 移位时钟,是波特率可变方式,计算公式为: )256(1232 2 )( 32 2 1 x f t osc smodsmod =的溢出率波特率 根据给定的波特率,可以计算 t1的计数初值 x。 方式 2:11 位异步发送/接收方式,即每帧数据由 1 个起始位“0” 、9 个数据位 和 1 个停止位“1” 共 11 位构成。 第九位数据作为检验位存放在 scon 寄存器的 tb8 位。波特率可变,计算公式同方式 1。 方式 3:数据格式同方式 1,所不同的是波特率固定为 osc smod f 64 2 。 3.3.2 串口通信程序设计 如前所述,串行口的波特率有两种方式:固定波特率和可变波特率,当使用可 变波特率时,应首先确定 t1的计数初值,并对 t1进行初始化。ti 和 ri 是一帧数据 发送完成否或一帧数据到齐否的标志,可用于查询;如果设置允许中断,也可引起 中断。因此串行通信的编程有两种方式:查询方式和中断方式,两种方式中当发送 或接收数据后都要注意清 ti 或 ri。 1查询方式 查询方式的工作流程如图 3- 2: 18 查询方式的特点是由 cpu 主动监测外设,判断是否有数据的流入或输出,外设 则处于被动地位。 2中断方式 中断方式初始化同查询方式,不同的是要置位 ea、es,大致流程如图 3- 3: (a)查询发送 y n n y t1初始化、启动 t1工作 设定串行通信方式 置发送数据块首址 数据块长度计数器 发送数据 ti = 1? 清 ti 修改地址指针 和块长度计数器 数据发送完 结束 y n n y t1初始化、启动 t1工作 设定串行通信方式 并设定允许接收 置发送数据块首址 数据块长度计数器 接收数据 ri = 1? 清 ri 修改地址指针 和块长度计数器 数据接收完 结束 (b)查询接收 图 3- 2 查询方式 19 主程序 设定 t1和 scon 设定发送数据地址指针 和块长度计数器 开中断开关 ea 允许串行口中断 发送 等待中断 中断服务程序 n y 清 ti 修改数据地址 指针和计数器 数据发送完 发送 中断返回 清 ea或 es (a) 中断发送 主程序 设定 t1和 scon 置位 ren 允许接收 设定发送数据地址指针 和块长度计数器 开中断开关 ea 允许串行口中断 等待中断 中断服务程序 y n 清 ri 数据送 接收缓冲器 数据接收完 清 ea或 es 中断返回 接收数据 (b) 中断接收 图 3- 3 中断方式流程 20 3.3.3 单片机和 pc 机的串行通信 本课题所研究的系统软件,其初始化数据由计算机主机进行设置,而接收系统 最后还原的数据也须通过串口送回计算机主机, 因此这里对单片机和 pc 机间的串行 通信略做讨论。 pc 机串行通信接口使用的是 8250 可编程串行接口,内部有 10 个寄存器,共占 用 7 个地址。编程步骤与单片机编程类似: 1) 选定波特率,即写波特率除数锁存器 brd。先使线路控制寄存器 lcr的最 高位为 1 以选中,然后将高 8 位低 8 位分别写入 brdh 和 brdl。 2) 写控制字。 将通信的数据格式写入线路控制寄存器 lcr, 同时使最高位为 0, 以便后面的发送和接收。 3) 传送数据。当状态寄存器 lsr 的第 5 位为 1 的时候才能发送。对发送缓冲 器写数据即启动发送过程。 4) 接收数据时,检查状态寄存器的第 1 位,为 1 时,即说明已收到一个数据, 这时可以从接收缓冲器中读出数据。 3.4 本章小结 在这一章中,主要介绍了本论文研究课题中的一些关键技术知识,包括中断技 术的应用,单片机的定时系统,串行通信系统以及单片机与 pc 机之间的通信问题。 这些问题,不仅仅是课题研究过程中需要用的技术,也是需要解决的主要问题。 21 4 通信系统的软件实现 在第 2 章中,对整个通信系统的软件结构进行了模块化划分,因此在本章中,将按照上位机与下位机的各个 模块,来依次介绍它们的编程实现方法20- 23。 4.1 上位机的软件实现 4.1.1 at89c2051 的结构与内部资源 at89c2051 是美国atmel 公司生产的低电压,高性能 cmos 8 位单片机,片内含 2k bytes 的可反复擦写的 只读程序存储器(perom)和 128 bytes 的随机存取数据存储器(ram) ,兼容标准mcs- 51 指令系统,片内置 通用 8 位中央处理器和 flash 单元。图 4- 1 是 2051 的器件示意。 主要性能参数: 与 mcs- 51 产品指令系统完全兼容 2.76v的工作电压范围 1288 字节内部 ram 2k 字节可重擦写闪速存储器 15 个可编程 i/o 口线 两个 16 位定时/计数器 6 个中断源 可编程串行 uart 通道 可直接驱动 led 的输出端口 在 at89c2051 的 i/o 口中,比较重要的是 p3 口。p3 口的 p3.0p3.5、p3.7 是带有内部上拉电阻的 7 个双 向 i/o 口。p3.6 没有引出,它作为一个通用 i/o 口但不可访问,但可作为固定输入片内比较器的输出信号 此外,p3 口还有复用功能,如表 4- 1 所示: 表 4- 1 p3 口复用功能 口引脚 功能特性 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 int0(外中断 0) p3.3 int1(外中断 1) p3.4 t0 (定时/计数器 0 外部输入) p3.5 t1 (定时/计数器 1 外部输入) 图 4- 1 at89c2051 22 at89c2051 另提供了省电的空闲模式:在空闲模式下,cpu 保持睡眠状态而所 有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内 ram 和所有特殊 功能寄存器的内容保持不变。空闲模式下可由任何允许的中断请求或硬件复位终止, 恢复时禁止对 ram 进行读写。 4.1.2 上位机初始化模块 上位机是工作于井下的电磁波发射装置,它的各个工作参量需要在处于地表的 时候就由外部计算机来提供,提供的方法是通过串口通信技术来实现。 需要进行初始的参量,根据软件技术指标,包括以下几个: 接收采样数据时串口的波特率:g_ibaudrate,默认 1200; 一个周期内的时间分割片数:g_itimenum,默认 256; 电磁波的发射频率:g_ifreq,默认 50hz,1100hz可调; 采样数据接收时间:g_irecvtime,默认 1s,110s 可调; 数据发送时间:g_isendtime,默认 3 分钟,330min 可调; 发送间歇时间:g_isleeptime,默认 10 分钟,560min可调。 在以上的六个需要初始的数据中,波特率和时间分割片数分别需要以两个字节 存放,其它的都只需要一个字节,因此上位机的初始数据组一共需要 8 个字节。 定义如下: #define uchar unsigned char int g_ibaudrate; / 波特率 int g_itimenum; / 一个周期内分割的时间片数 uchar g_ifreq; / 电磁发射频率 uchar g_irecvtime; / 接收时间 uchar g_isendtime; / 发送时间 uchar g_isleeptime; / 待机时间 一般说来,单片机与 pc 机之间的通信波特率设置为 1200,当然也可以设为其 它值,这是软件可调的。由于这一通信过程是人为可控的,且通信数据不多,所以 采用查询的工作方式使单片机读入数据组,最后再赋给需要初始化的变量。 晶振频率为 12mhz,首先需要根据串口的波特率计算公式来计算波特率发生器 t1计时器的计数初值。 由于使用的波特率为 1200,不算太高,因此使 t1工作于方式 2 作为波特率发生 23 器,取 smod=0,mhz12= osc f,根据波特率计算公式: )256(1232 2 )( 32 2 1 x f t osc smodsmod =的溢出率波特率 将波特率 1200,smod=0,mhz12= osc f带入上式,可以解出 x=230,换做 16 进制数,即 e6h。 所以初始化模块如下: int init_data_setup( ) uchar i, data8; tmod = 0 x20; / 将 t1工作于方式 2 th1 = 0 xe6; tl1 = 0 xe6; / 装入计数初值 tr1 = 1; / 开始计数 scon = 0 x50; / 设置控制寄存器 for(i=0; i 0 ? (data0*100+data1):1200; g_itimenum = (data2*100+data3)0 ? (data2*100+data3):256; g_ifreq = data40 ? data4 : 50; g_irecvtime = data50 ? data5 : 1; g_isendtime = data60 ? data6 : 3; g_isleeptime = data70 ? data7 : 10; return 0; 24 pc 端的串行通信设置与单片机端有些许不一样,主要是几个状态寄存器有变。 根据第 3 章的介绍,pc 机的串行通信接口使用的是 8250,其内部时钟的频率为 1.8432mhz,波特率除数(brd)和波特率(baud)的关系如下: 波特率 时钟频率 = 16 brd 所以,当波特率为 1200 b/s 时,则有: hbrd006096 120016 108432 . 1 6 = = 在第 3 章中提到 pc 端串口通信的第 2 步是写控制字 lcr,格式如表 4- 2 所示: 表 4- 2 控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论