(信号与信息处理专业论文)基于可编程增益多路选择器的阵列信号数据预处理系统.pdf_第1页
(信号与信息处理专业论文)基于可编程增益多路选择器的阵列信号数据预处理系统.pdf_第2页
(信号与信息处理专业论文)基于可编程增益多路选择器的阵列信号数据预处理系统.pdf_第3页
(信号与信息处理专业论文)基于可编程增益多路选择器的阵列信号数据预处理系统.pdf_第4页
(信号与信息处理专业论文)基于可编程增益多路选择器的阵列信号数据预处理系统.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

基于可编程增益多路选择器的 阵列信号数据预处理系统 摘要 阵列信号的数据采集和预处理系统可广泛应用于汽车电子、工业控制、信 息家电、无损探伤等领域。由于阵列信号中每一路信号可能来自于不同类型的 传感器,因此在幅值或频率上可能有较大差异,这就会对后续的a d 转换和数 据处理造成影响,所以阵列信号数据预处理系统的研究是十分必要的。 本文通过分析传统的阵列信号数据采集系统的特点,针对其由于采用固定 增益放大器而产生的不足,研究了由单片机p i c l 6 f 8 7 6 a 作为控制核心的基于 可编程增益放大器( p g a ) 的阵列信号数据预处理系统。系统采用上下位机结 构,由p c 作为上位机,单片机作为下位机,并编写了单片机和上位机程序, 给出了程序流程图。单片机与p g a 之间以及单片机与p c 之间通过异步串行通 信方式交换数据和指令,使得p c 可以利用可编程增益放大器的增益可控性和 输入通道切换的灵活性对阵列信号的每一路根据情况设置不同的增益值,以满 足后续数据处理的需要。 本文最后还对整个系统进行了仿真,仿真结果表明系统各部分均运行正常, 达到了设计要求。 关键词:m c p 6 s 2 x 阵列信号p i c l 6 f 8 7 6 a 单片机增益控制 可编程增益放大器 t h ed a t ap r e p r o c e s s i n gs y s t e m b a s e do up r o g r a m m i n gg a i nm u l t i p l ea l t e r n a t i v e s a b s t r a c t t h ed a t a a c q u i s i t i o na n dp r e p r o c e s s i n gs y s t e mo fa r r a ys i g n a lc a nb ew i d e l y u s e di nm o t o re l e c t r o n i c s 、i n d u s t r i a lc e n t r e l 、n o n d e s t r u c t i v et e s t i n g t h ee v e r y s i n g l eo n eo fa r r a ys i g d a lm a y b et h eo u t p u to ft h ed i f f e r e n tt y p eo fs e n s o ls ot h e y m a yh a v eb i gd i f f e r e n c eo nt h ea m p l i t u d eo rt h ef r e q u e n c y ,a n dt h i sm a yi n f l u e n c e t h ef o l l o w i n ga dc o n v e r s i o na n dd a t ap r o c e s s i n g ,s ot h er e s e a r c ho nt h ed a t a p r e p r o c e s s m gs y s t e mo fa r r a ys i g n a li sn e c e s s a r y t h i sd i s s e r t a t i o nm a i n l yr e s e a r c h e so nt h ed a t ap r e p r o c e s s i n gs y s t e mo fa r r a y s i g n a lw h i c hi sb a s e do nt h ep g au s i n gt h em c up i c l 6 f 8 7 6 aa st h ec o n t r o l c e n t e r ,t h r o u g ha n a l y z i n gt h ef e a t u r eo ft h et r a d i t i o n a ld a t aa c q u i s i t i o ns y s t e mo f a r r a ys i g n a lt h et r a d i t i o n a ld a t aa c q u i s i t i o ns y s t e mo fa r r a ys i g n a l w eu s et h ep ca s u p p e rc o m p u t e rt h em c u a st h el o w e rc o m p u t e ra n dw r i t et h ep r o g r a mt h a tr u n so n t h ep ca n dm c u t h em c ue x c h a n g e st h ed a t aa n di n s t r u c t i o nw i t hp ca n dp g a u s i n ga s y n c h r o n i s ms e r i a lc o m m u n i c a t i o n s ,s ot h ep cc a nc h a n g et h eg a i no fe a c h c h a n n e lt os a t i s f yt h en e e do ft h ef o l l o w i n gd a t ap r o c e s s i n g t h i sd i s s e r t a t i o na l s os i m u l a t e st h er u n n i n gs t a t eo ft h es y s t e m ,t h er e s u l to ft h e s i m u l a t i o nm a k e si tc l e a rt h a tt h ee a c hp a r to fs y s t e mc a nr u nn o r m a l l ya n dt h e s y s t e mr e a c h e dt h ed e s i g ns p e c i f i c a t i o n k e y w o r d s :m c p 6 s 2 x a r r a ys i g n a l m c ug a i nc o n t r o l p r o g r a m m i n gg a i na m p l i f i e r 图表清单 图2 1 系统组成结构框图6 表2 - 1p i c l 6 f 8 7 6 a 的中断控制寄存器9 图2 2 山,d 转换器原理图1 1 图2 3a d 转换与时钟的对应关系1 2 图2 - 4m c p 6 s 2 8 的内部结构及封装形式1 5 图2 5m c p 6 s 2 8 管脚描述1 5 图2 - 6p i c l 6 f 8 7 6 a 与m c p 6 s 2 8 、m c p 6 s 2 1 的s p i 接口1 7 图2 7 ( 1 ) 工作于s p l0 ,0 模式1 8 图2 7 ( 2 ) 工作于s p i1 ,1 模式1 9 图2 8m c p 6 s 2 1 与m c p 6 s 2 8 组成d a i s yc h a i n 的基本通信流程2 0 图2 - 9 异步串行通信传输帧格式2 2 图2 1 0m a x 2 3 2 芯片引脚及工作原理图2 4 图2 1 1 系统硬件原理图2 6 图2 1 2p i c l 6 f 8 7 6 a 串行编程接口i c s p 2 7 图2 1 3 采用m a x 2 3 2 的单片机与p c 串行接口电路2 9 图3 - 1 接收中断服务程序流程3 4 表3 - 1 通道增益与e e p r o m 地址对照表3 6 表3 2l o o l e a p 子程序查找的表t a b l e 3 7 表3 - 3 增益设置指令与p g a 增益对照表3 7 图3 2c c p 中断自动触发a d 转换中断流程3 9 图3 3 上位机程序界面4 2 图3 4 上位机程序流程图,4 3 图4 1v s p dx p 中创建的虚拟串口c o m 3 和c o m 4 4 7 图4 2 系统仿真图4 8 图4 3 增益为默认值时的示波器输出5 0 图4 4 通道0 增益值设为8 的示波器输出5 1 图4 5 通道1 增益值设为4 的示波器输出5 1 图4 - 6 通道2 增益值设为2 的示波器输出5 1 图4 7 通道5 增益值设为2 的示波器输出5 2 图4 - 8 通道6 增益值设为4 的示波器输出5 2 图4 - 9 通道7 增益值设为8 的示波器输出5 2 图4 - 1 0p i c l 6 f 8 7 6 的寄存器值5 3 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成 果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得金壁工些太堂 或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签字 丈l 1 1 罩 j 签字日期跏6 年争月习日 学位论文版权使用授权书 本学位论文作者完全了解金胆王些太堂有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人 授权金鲤王些左堂 可以将学位论文的全部或部分论文内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文青签名:鲫翠 签字日期:阳口占年年月却日 鬻,诺碟:酬t 作单侥:盔b 守招( 苓 导师签名 签字日期 电话 邮编 匆 日叶椰 何埘 致谢 值此论文完成之际,首先应该感谢我的导师何辅云教授,本论文从选题到 研究都是在何老师的悉心指导和不断鼓励下完成的,他独特的学术见解、创新 的科研精神在研究工作中给了我很多有益的启示,而何老师宽和的待人风范和 丰富的人生阅历更将使我终身受益。 感谢我的同学张艳、沈兆鑫、徐海,他们给了我研究生阶段难忘的回忆, 同时在各方面给了我无私的帮助。 感谢我的朋友葛茂根、卞铭、肖海萍和苏光靖,他们在生活中和学习上对 我的帮助使我能够更好地投入研究工作。 再一次感谢所有帮助我和关心我的人。 作者:刘军 2 0 0 6 年4 月 第一章绪论 1 1 数据采集系统及单片机应用系统概述 1 1 1 数据采集系统概述 人的大脑每天都要处理大量的数据,这些信息有些是我们通过五官和身体 其它器官感受到的各种物理量。从数据采集系统的角度来看,我们的眼、耳、 鼻、舌、皮肤等都是接受外界信息的“传感器”;大脑就是数据采集系统中的处 理器。例如,如果有一样东西从我们面前经过,我们可能会看到它的外形,昕 到引擎的轰鸣声、闻到汽油的味道,这样多种不同的信息一同进入我们的大脑, 经过大脑的集中处理和判断,我们可以知道这是辆汽车。由此可以看出,信息 采集其实是我们获取信息的一个基本手段,信息转化的数据处理就是对采集到 的信息进行再加工、分析、量化、显示等。数据采集与处理技术在与信号检测、 计算机、数字信号处理等技术结合以后形成了一门综合的应用技术。 在一个典型应用中,数据采集与处理系统应该具备如下三部分: ( 1 ) 由传感器、多路复用开关、信号调理、增益放大、模数转换等部分组成的 数据采集和预处理部分 ( 2 ) 由微机、单片机或d s p 等组成的用于数据处理或系统控制的处理器部分。 ( 3 ) 由数模转换器、数字信号调理器等组成的数据输出部分。 一般采集系统的输入信号都是模拟信号,特点是时间、幅值均在连续范围 内取值。信号( 这里暂时认为是单路信号) 进入数据采集部分以后首先由采样 保持器对信号进行跟踪采样,然后进行电平保持,在这段时间内,模数转换器 将此时的输出电压根据d 转换器的分辨率和参考电压转换为二进制数以备处 理器进行后续处理。在数据处理结束后,还可以利用数模转换器将数字信号再 转换为模拟信号输出,很多场合也可以直接将数字信号输出。 现在工业上使用的数据采集与处理系统一般分别基于p c 机、单片机、d s p 或专用处理器,从系统的控制核心来看大概可以分为两种,一种是单独使用某 一种处理器的系统,另一种是将两种或两种以上处理器联合起来作为数据采集、 处理和系统控制核心的数据采集与处理系统。这两种方案都各有优缺点。 第一种方案又分为如下几种: 对于基于p c 机的系统,可以利用p c 强大的软件计算能力和丰富的硬件资 源来支持系统的工作,同时也方便对系统进行二次丌发,但系统的成本较高; 基于单片机的系统是由单片机及一些外围芯片构成的数据采集与处理系 统它的计算能力相对较弱,但价格很便宜。系统丌发时可根据应用的需求选 择合适前单片机,出于直接对硬件进行操作,所以能充分利用单片机的资源, 具有很高的性价比。不过系统成型之后,二次开发和扩展性会受到部分限制; 基于d s p 的数据采集与处理系统是数字信号处理理论与超大规模集成电路 ( v l s i ) 技术融合的结晶。d s p 与单片机相比,d s p 多采用时钟倍频做主频,c p u 采用哈佛结构,支持流水线操作,在运行速度上有很大程度的提高,具有高效 的数字信号处理功能; 基于专用处理器的系统是专为特定的应用场合面设计的,可用于通信、多 媒体等便携式设备中,这种系统集成度高,功能强大,内部集成了输入输出设 备、信号转换设备、计算处理单元等部分,可以使系统微型化,缺点是价格较 高且可扩展性不强; 第二种系统方案一般为上下位机结构: 下位机一般由单片机及外围器件构成,它主要运行在工业现场,将采集来 的数据处理之后通过标准r s 2 3 2 、r s 4 8 5 或者c a n 总线传送给上位机,同时 也可以接收来自上位机的指令去执行控制操作。上位机由p c 机、单片机或其 它处理器构成,主要负责对下位机进行管理或接收下位机发来的数据并进行处 理。这种方案的优点在于系统配置灵活,可扩展性强,通过使用统一的总线接 口可以实现多种组合方式。 微电子技术的一系列成就以及数字信号处理技术的发展,不仅为数据采集 与处理系统的应用开拓了广阔的前景,也对数据采集与处理系统的发展产生了 深刻的影响。使用便捷、低成本、易扩展、具有高速数据采集与复杂运算能力、 高可靠性、网络化的特点代表了现代数据采集与处理系统的发展趋势。 l ,1 2 单片机应用系统 随着各个领域中的设备向小型化、智能化方向的发展,作为高新技术之一 的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的 生命力,特别是在控制系统中得到了广泛的应用。所谓单片机是指一个集成有 微处理器、存储器、基本i 0 接口以及定时、计数器件,能够实现一台计算机 的基本功能的芯片。单片机的出现是随着微型计算机以及c p u 芯片在智能测控 系统中的应用而发展起来的,这也使得单片机的种类、性能以及应用领域在应 用中不断提高和扩大。 单片机主要应用于机电一体化设备的控制、数据采集系统的现场采集单元、 分布控制系统的前端控制器、智能化仪表的机芯及消费类电子产品控制几个领 域,随着单片机技术的飞速发展和其性能的提高,其作为直接控制级在计算机 分布控制( d c s ) 中越来越发挥出重要作用。 1 2 本论文的目的及主要内容 1 2 1 论文的研究目的 阵列信号的数据采集在汽车电子、工业控制、信息家电等诸多领域中都有 广泛的应用。例如,在汽车电子中,汽车传感器作为汽车电子控制系统的信息 源,是汽车电子控制系统的关键部件,也是汽车电子技术领域研究的核心内容 之一。汽车传感器种类繁多,其中发动机控制系统用传感器就包括了温度传感 器、压力传感器、位置和转速传感器、流量传感器、气体浓度传感器和爆震传 感器等,要将汽车的各部分运行情况实时反馈给处理器进行处理以利于车载设 备的集中控制、调节和状态显示,就需要犍各个不同的传感器输出信号作为阵 列信号进行采集并进行一定的预处理;同样,在工业控制中,厂区的室内温 度、噪声状况、各个监控设备的运行状态、流水线工作状态等信息以及在信息 家电中,各个家电的工作状况都需要通过传感器传送到中央处理器进行集中处 理,而这些都可以归结到阵列信号数据采集的范围内。 由于油耗、车速、温度、设备状态、家电工作状况等信号的特点有很大差 别,例如车速的变化可能比较剧烈,而油耗和温度的变化又比较平缓,如果采 用相同的采样频率,可能对于油耗和温度信号来说采样频率过高而浪费了系统 资源,而对于车速信号来说采样频率太低而丢失了信息;另一方面,由于各信 号的幅值也有较大差异,如果采用相同的增益进行放大就不利于模数转换和后 期的处理。所以这就要求一个系统既能实现阵列信号的数据采集,又能对采集 的数据进行有区别的预处理,以满足后续处理的要求。 所谓阵列信号传感器阵列形成的多通道信号。 从与传统的数据采集系统的比较来看,传统的各种阵列信号数据采集系统 存在如下不足: 1 、从信号输入端的多路模拟选通开关到后续的摸数转换器件主要使用分立 元件来实现,系统比较复杂,需要使用微控制器大量的r o 引脚资源,不利于 系统的集中控制: 2 、传统的设计中使用的放大器件大多是固定增益的,无论输入信号的幅值 大小都统一进行放大,由于后续a d 转换有一定的量程范围,如果输入信号幅 值大小差别较大,在后面的a d 转换中就会把幅值大于这个范围上下限的所有 信号转换成一个由a d 转换器件分辨率决定的定值,无论器件的增益怎样选择 都无法同时顾全大小信号。 本研究课题针对传统设计中的不足,通过采用新型的集成器件可编程增益 放大器来代替传统设计中的多路模拟开关及放大器件,提高了系统的集成性, 降低了系统复杂度,并充分利用新器件的优势,即增益的可编程控制,改善了 阵列信号数据预处理系统减小了输入信号幅值差别较大对后续摸数转换的影 响。 本课题的研究起用了新型器件,通过对新器件特性的深入了解,将其应用 到数据采集系统中来,取代了一些传统设计中的功能部件,为以后阵列信号的 采集提供了新的思路,有一定的创新性。 本系统除了可以应用于上面提到的汽车电子、工业控制和信息家电中,还 可应用于例如铁磁性管道的探伤。在铁磁性管道的漏磁探伤中,由于采集现场 各种因素的影响、缺陷类型的多样化和进行探伤的传感器的各性差异,对于相 同缺陷采集到的缺陷信号很难保持一致,对于不同缺陷采集到的信号又很难适 合后续d 转换的量程要求,因此必须对采集到的缺陷信号进行预处理,以利 于提高后续刖d 转换和整个采集系统的精度,使后期的缺陷识别和评估更加可 靠,有一定的推广性。 国外在阵列信号采集处理领域起步较早,特别是欧美、日本等工业国家, 但都对这项技术进行了垄断。我国从最近才开始进行相关研究,到目前为止我 国有很多大学和研究所的研究取得了很大的进展,但主要集中于信号的压缩和 后期处理,在信号预处理方面,特别是引入新的器件改进传统设计方案方面相 关研究较少,系统中采用的可编程增益放大器在数据采集领域的应用还并不普 及。 1 2 2 本文的主要研究内容 ( 1 ) 本文首先对传统数据采集与处理系统进行了研究; ( 2 ) 在此基础上引入了新器件可编程增益放大器m c p 6 s 2 x ,并深入了解 了它的芯片特性,包括s p i 通信模块的通信特点及对输入通道进行通 道选择和增益控制的方式; ( 3 ) 研究了单片机控制系统的几种组成方案,选择了p c 机作为上位机, p i c l 6 f 8 7 6 a 单片机作为下位机的控制模式。 ( 4 ) 通过了解单片机的各个功能模块的特点和v b6 0 中的串行通信控件 m s c o m m ,研究了单片机与p c 机、单片机与m c p 6 s 2 x 的串行通信; ( 5 ) 本文研究并实现了在p c 机中通过多种工具软件进行整个系统的仿真 调试。 1 3 论文所作的主要工作及章节安排 在论文撰写过程中主要进行了一下几个方面的工作: ( 1 ) 根据本数据预处理系统的器件需求选用了美国m i c r o c h i p 公司生产的 m c up i c l 6 f 8 7 6 a 和可编程增益放大器m c p 6 s 2 x 作为数据预处理系统的核心 器件,并在设计过程中深入了解了这两款芯片的工作原理圾j 特性。 ( 2 ) 使用v i s u a l b a s i c 6 0 开发了用户界面,通过v b 6 0 的m s c o m m 控件 4 实现了单片机与p c 机的串行通信。可以通过选择列表向单片机发出控制命令, 操作简单方便。 ( 3 ) 使用汇编语言编写了单片机程序,通过单片机的两个片上通信模块实 现了控制指令的接收和发送。 ( 4 ) 使用p r o t e u s 仿真工具和p i c 单片机集成开发环境,并配合串口模拟 软件v s p dx p 及w i n d o w s 自带的串口调试程序超级终端对单片机程序、上位 机程序和硬件电路进行了仿真调试。 本文共分为五章,其内容安排如下 第一章是绪论部分,简述了数据采集系统的基本结构和系统组成方案,介绍了 单片机的应用状况和特性,并介绍本文所作的工作。 第二章是基于可编程增益放大器的阵列信号采集及预处理系统的硬件部分,主 要介绍了本系统的组成结构、器件的选择、主要功能模块的使用和各种通信协 议,特别介绍了可编程增益放大器的工作原理和s p i 、u s a r t 串行通信,并给 出了在仿真软件p r o t e u s 中的硬件原理图。 第三章是本系统的软件部分,主要包括单片机程序和p c 中的v b 程序的编写, 同时介绍了集成开发环境m p l a bi d e 和v b 控件m s c o m m 的主要特点。 第四章是系统仿真试验部分,介绍了单片机及外围器件仿真软件p r o t e u s 和虚 拟串口软件v s p dx p ,并在p r o t e u s 环境下对系统进行了仿真,给出了仿真结 果,为以后的硬件实现奠定了基础。 第五章总结了本文的研究工作和创新点,对本课题的前景进行了展望,并提出 了一些继续完善的方案。 第二章信号采集及预处理系统( 硬件设计) 2 1 系统概述及组成结构 本系统是基于可编程增益放大器的信号采集及预处理系统,主要面向阵列 信号的采集,特别是阵列信号的各路数据来自于不同的传感器,信号幅值差异 较大的场合。利用可编程增益放大器的增益可控性和输入通道切换的灵活性对 阵列信号的每一路根据情况设置不同的增益值,以此来突出或者压制某一路信 号,并且使所有信号在进行d 转换前都有合适的幅值以满足d 转换量程的 要求。 系统总体上可分为上位机和下位机两部分。其中下位机以可编程增益放大 器p g a 及p i c 单片机为核心器件,p g a 与单片机的s s p 模块通过s p i 接口联 结在一起;上位机作为整个系统的控制端由普通的p c 机来担当,其中运行的 v b 程序,通过p c 机的串口将可编程增益放大器的控制指令发送给单片机,单 片机将接收到的指令存入e e p r o m 中作为指令表待查。在单片机中运行的程序 负责串口数据即上位机控制指令的接收和存储,并在主程序中通过s p i 接口对 可编程增益放大器进行控制,实现对输入阵列信号的通道选择和增益设置,从 而满足后续处理的需要。 为了提高单片机d 模块的转换精度,减小环境噪声的影响,系统在p g a 与单片机之间加入了抗混叠滤波电路来滤除信号中的高频噪声,减少采样后的 频谱混叠现象。另外,系统使用了r s 2 3 2 异步通信协议,因为单片机输出的 是t t l 电平,而p c 机使用的是标准r s 一2 3 2 串行通信端口,必须经过电平转 换才能相互一致,所以在p c 与单片机之间加入了电平转换器件以实现r s 2 3 2 协议通信。整个系统的组成框图如下所示: ,一幽2 - 1 系统组成结构框幽 2 2 系统各组成部分介绍 p i c 单片机和m c p 6 s 2 x 是系统最主要的组成部分,它们内部的功能模块代 替了传统设计中的各种分离元器件,提高了系统的集成度,这些功能模块都需 要通过特定的操作方式来使用,如果使用不当系统就无法正常运行。下面对系 统的主要组成部分进行了介绍,并结合系统设计给出了各功能模块的操作方式 和寄存器设置方法。 2 2 1p i c 单片机 2 2 1 1p i c 单片机概述 m i c r o c h i p 公司的p i c 系列单片机可分为初级产品、中级产品和高级产品3 大系列,对应的内部指令宽度分别为1 2 1 4 1 6 位。初级产品典型的有 p i c l 2 c 5 x x 和p i c l 6 c 5 x 系列,采用1 2 位的r i s c 指令系统,价格很低,适用 于简单控制任务并且对价格敏感的消费类产品;中级产品p i c l 6 c 5 5 x 、 p i c 6 x 6 2 x 、p i c 7 x 8 x 9 x x 、p i c l 6 f 8 7 x 、p i c l 6 f 8 7 3 a 8 7 4 a 8 7 6 a 8 7 7 a ,采 用的1 4 位的r i s c 指令系统,在保持低价的前提下增加了a d 转换模块、内部 e e p r o m 存储器、比较输出、捕捉输入、p w m 输出( c c e ) 、1 2 c 和s p i 接口、 异步串行通信接e l ( u s a r t ) 、模拟电压比较器、l c d 驱动、f l a s h 程序存储器 等许多的功能,广泛应用于汽车、智能仪器仪表、电动玩具等各种电子产品中; 高档单片机p i c l 8 系列在p i c l 6 系列基础上有很大的提高,最高指令流达到了 1 0 m i p s ,适用于较高端的产品设计;d s p i c 系列是m i c r o c h i p 推出的最新的1 6 位高性能单片机,其内核中包含完整的定点d s p ,数据运算和处理能力大大增 强,主要应用于汽车电子、复杂电机控制、数据信号处理等高端场合。 考虑到产品性价比及系统复杂度等多种因素,本系统选用了中档系列的 p i c l 6 f 8 7 6 a 。 p i c l 6 f 8 7 6 a 的基本特性如下:【7 1 ( 1 ) 采用“哈佛”结构和功能强大的r i s c 单片机内核 ( 2 ) 8 层硬件堆栈用于保护和恢复程序计数器 ( 3 ) 工作频率在0 2 0 m h z 之间,可根据情况选择合适的工作频率 ( 4 ) 引入了指令执行流水线机制,指令顺序执行时1 条指令只需一个指令周 期( 分支跳转需要两个指令周期) ( 5 ) 总共3 5 条单字指令,程序字长1 4 位 ( 6 ) 程序空间最大物理可寻址范围8 k 程序字 【7 ) 片上寄存器最大物理可寻址5 1 2 字节,使用寄存器文档概念 ( 8 ) 具有丰富的外围功能模块 7 ( 9 ) 片内或片外多种信号中断机制 ( 1 0 ) 片上具备独立的看门狗 ( 1 1 ) 采用e n h a n c e d f l a s h 工艺,可实现在线调试、自编程和系统远程在线升 级 ( 1 2 ) 具有多种时钟模式,可选择采用石英晶体或陶瓷谐振器震荡、外部时钟、 外部或内部r c 震荡 ( 1 3 ) 具有多种复位方式,如上电复位( p o r ) 、低电压检测复位( b o r ) 、外部 复位和看门狗复位 ( 1 4 ) 能够执行s l e e p 指令进入低功耗休眠模式 2 2 1 2p i c 单片机的u s a r t 通信模块【2 l u s a r t 即通用同步异步收发器,也叫做串行通信接口s c i ,是p i c 单片机 上的一个常用的串行通信接口,绝大部分引脚数为2 8 或以上的单片机都具备这 样的一个通信模块。u s a r t 中的异步串行通信模式应用得最为广泛,利用异步 串行通信接口可以很方便的实现p c 机与单片机之间、两个单片机之间的通信, 也可以进行多机联网,从而实现分布式控制。 u s a r t 可以设置成与c r t 终端和p c 等外围模块进行通信的全双工异步通 信系统,也可以设置成与a d 或者d a 接口电路、串行e e p r o m 等进行通信 的半双工同步通信系统,其中半双工同步通信工作方式又可分为半双工同步主 控方式和半双工同步从动方式。 u s a r t 串行通信模块的工作模式以及最终的数据收发都要通过设置和操作一 些关键寄存器的来实现,主要的特殊功能寄存器如下所示: ( 1 ) t x s t a 数据发送控制及状态寄存器( 位于b a n k l 的地址0 x 9 8 ) r f w 一0r w - 0r f w - 0r w - 0u - 0r w - 0r 一1r w - 0 叵叵压匠匾亟匝亟工三正巫正亟咽 位7位6位5 位4位3位2 位1位0 c s r 位:同步通信时钟选择控制位,在异步通信是不起作用,可以是任意值 t x 9 位:9 位数据格式发送使能控制位,系统中选择了8 位数据格式发送,此 位设为0 t x e n 位:发送使能控制位,嚣1 允许发送数据,置0 禁止数据发送 s y n c 位:u s a r t 工作模式选择,这晕设为0 ,即异步通信模式 b r g h 位:波特率控制位,这星胃为1 ,使得本模块在异步通信时使用高速波 特率发生模式 t r m t 位:发送移位寄存器状念位,此位为只读,当移位寄存器空时被置1 , 正在发送数据时置0 t x 9 d 位:使用9 位数掘格式传输时的第9 位数据,可以作为奇偶校验位 ( 2 ) r c s t a 数据接收控制及状态寄存器( 位于b a n k 0 的地址0 x 1 8 ) r 湖0r | w - 0r w - 0r | w 一0u 0r 0 r 0r 0 ls p e ni r x 9 ls r e n1 c r e ni 一1f e r rfo e r rir x 9 di 位7 位6位5位4位3位2位1位0 s p e n 位:串行通信端口使能控制位,在使用u s a r t 模块进行串行通信时设置 为1 ,此时通信端口打开,模块接管引脚r x d t 和t x c k r x 9 位:9 位数据格式接受使能控制位,在初始化时设置为0 ,选择8 位数据 格式接收数据 s p e n 位:单次接收使能控制位,异步通信时不起作用,置为0 c r e n 位:数据连续接收控制位,在初始化时设置为1 ,即模块连续接收数据 f e r r 位:接收数据帧错误标志位,在当前接收的数据发生帧错误时被置1 ,读 一次r c r e g 寄存器后被置0 ,此位为只读位,不能用软件清0 o e r r 位:接收数据溢出错误标志位,当发生溢出错误时被置1 ,只能通过清 除c r e n 位才能将其清除,为只读位 r x 9 d 位:使用9 位数据格式肘的第9 位接收数据,可作为奇偶校验位 ( 3 ) s p b r g 波特率控制寄存器( 位于b a n k l 的0 x 9 9 地址) 波特率是指每秒传输的数据位数( b p s ) ,反映了数据通信的速度,波特率越 高,那么数据传输得也越快。在p i c 单片机中波特率由s p b r g 寄存器和t x s t a 寄存器共同决定。异步通信的波特率一般使用一些公认的特定值,包括6 0 0 、 1 2 0 0 、2 4 0 0 、4 8 0 0 、9 6 0 0 、1 9 2 0 0 、2 8 8 0 0 、3 8 4 0 0 b p s 等,为了得到的实际波特 率与期望波特率误差相对比较小,一般尽量选择高速产生方式,即设置t x s t a 的b r g h 为1 ,使波特率发生器的工作频率取单片机主振荡器振荡频率的1 6 分频,当然,根据系统的需要也可以选择低速产生方式,使波特率发生器的工 作频率取单片机主振荡器振荡频率的6 4 分频。 本系统选择了高速方式,设置s p b r g = 1 0 3 ,b r g h = i ,波特率为9 6 1 5 b p s 。 ( 4 ) 中断控制寄存器 寄存器位7位6位5位4位3位2位1位0 i n t c o ng i ep e i et o i ei n t e r b i et o i ei n t fr b i f p i e lp s p i ea d i er c i et x i es s p i ec c p l i et m r 2 i e t m r l i e p i r l p s p i fa d i fr c i ft x i fs s p l fc c p l i ft m r 2 i ft m r l i f 表2 - 1p i c l 6 f 8 7 6 a 的中断控制寄存器 ( 5 ) t x r e g 及r c r e g 寄存器 t x r e g 是一个8 位宽度的串行数据发送缓冲器,它接收c p u 从数据总线 上送来的并行数据,并加以保存:f s r 为输出移位寄存器,它接收从输出缓冲 器送来的并行数据,以发送时钟的速率把数据逐位移出,即将并行数据转换为 串行数据输出。f s r 为输入移位寄存器,它以接收时钟的速率把出现在串行数 据输入线上的数据逐位移入,当数据装满后,并行送往输入缓冲寄存器,即将 串行数据转换成并行数据。r c r e g 为输入缓冲寄存器,它从输入移位寄存器 中接收并行数据,然后由c p u 取走。 基于u s a r t 中各寄存器的工作特点,本系统在实现p c 上位机与单片机的 异步串行通信时,采用了以下操作顺序( 数据接收部分) : ( 1 ) 初始化s p b r g = 1 0 3 ,置b r g h = 1 ,选择高速波特率生成方式,计算得到 波特率值为9 6 1 5 b p s ( 2 ) 置t x s t a 的s y n c 位为0 ,选择异步通信模式;r c s t a 中s p e n 置1 , 使u s a r t 模块接管芯片引脚r x d t 和t x c k ,打开通信端口 ( 3 ) 设置r c m 、p e i e 、g i e 位为1 ,使能数据接收中断 ( 4 ) 置r c s t a 的r x 9 位为0 ,选择8 位数据接收 ( 5 ) 置r c s t a 的c r e n 位为1 ,开始在异步通信模式下连续接收串行数据 ( 6 ) r c r e g 中收到数据的时候,r c i f 被置1 ,进入中断服务子程序 ( 7 ) 判断中断类型,如果是接收中断,即r c i f = i 且r c i e = i ,开始调用接收 中断服务程序: 1 。) 读r c r e g 得到接收到的8 位数据,并判断是否存在赖错误,即f e r r = i , 如果出现帧错误,调用祯错误处理程序 2 ) 判断接收到的数据是否为0 x 4 5 ,如果是,表明发送端数据发送完毕,清 空a d d r ,防止累加错误,退出中断;如果不是,继续调用w r i t e 子程序,将 接收到的数据写入到e e p r o m 中 由于r c r e g 是一个深度为2 的先进先出缓冲队列,可以同时容纳两次接收 到的数据,所以需要继续判断r c r e g 的f i f o 队列中是否还有数据,如果有继 续读取下个数据;如果没有数据则检查是否有溢出错误,即o e r r - - 1 ,若出 现溢出错误,首先连续读取两次r c r e g 中的数据,置c r e n = 0 然后再置 c r e n = i ,让整个接收模块硬件复位一次。 2 2 1 3p i c 单片机的a d 转换模块 本系统的输入信号为多路模拟阵列信号,为了使这些信号能够被单片机或 后期处理计算机识别,必须将这些连续变化的模拟电压转换成数字信号,这就 要用到a d 转换器件。为了减少外围设备,简化系统,本设计中的模数转换采 用了p i c 单片机自带的a d 转换模块。 p i c l 6 f 8 7 6 a 的片上a d c 模块一共提供5 个被测信号输入通道,在程j 芋运 1 0 行过程中可以通过其内部的多路转换开关选择任意通道进行a d 转换,输入的 模拟电压信号被转换成为1 0 位宽度的数字信号,输出的数字量在 o x 0 0 0 - 0 x 3 f f ( 斟 0 - 1 0 2 3 ) 之间,0 x 0 0 0 对应于允许最小输入电压( 即参考低电平 v l e l - ) ,0 x 3 f f 对应于允许输入的最高电压( 参考高电平v r e f + ) ,理想的采样 频率a d cs a m p l er a t e 为3 0 k s p s 。对于低于v r e f - 的输入信号经a d 转换将得 到0 x 0 0 0 ,高于v r e f + 的输入信号经a d 转换将得到o x 3 f f ,因此在进入a d 转换模块之前首先要对输入模拟信号进行调理,使输入信号尽量满足d 转换 模块的量程要求,从而提高a d 转换精度和分辨率。 图2 2 a d 转换器原理图 本系统中由于采用了可编程增益放大器m c p 6 s 2 x 对阵列模拟信号进行增 益控制,而m c p 6 s 2 x 本身就具备通道切换、多路时分复用功能,所以信号到 达单片机进行a d 转换时只需一个输入通道,而a n 0 通道因它的下一个脚与 o s c l 紧靠在一起,会对a d 对转换造成影响,所以在设计中选择了a n l 通道。 p i c l 6 f 8 7 6 a 中的a d 模块还配有片上采样保持电路,减小了输入端信号 的变化对a d 转换的精度的影响,提高了a d 模块所能采集的信号的最高频率。 一个完整的采样、转换过程所需的时间为: t = 死c 盯+ t c o n v = t a r a p + t c + t c o f f + 9 t a d 1 7 t 其中 t a c q 为采样所需的总时间;t c o n v 为a d 转换总时l 刨; t a m p 为芯片内部各级信号通路建立所需要的总时间: t c 为采样保持电容的充放电时间; t c o f f 为考虑温度系数后额外需要的补偿时间; t a d 为a d 转换时钟周期。 一般对于1 0 位a d 模块来说 t a m p = 2 u s ;1 陀= 1 7 2 8 u s ;t c o f f = 2 2 5 u s 由此,我们可以近似的计算出 t a c q = 2 + 1 7 2 8 + 2 2 5 = 2 1 5 3 u s a a d 转换时钟t a d 必须太于等于1 6 u s ,这是由d 模块内部的电路工作特 性决定的,如果t a d 1 6 u f ,就无法保证得到正确的转换结果。单片机工作频率 为1 6 m h z ,可选的分频数分别为2 、4 、8 、1 6 、3 2 、6 4 ,这样得到的t a d 分别 为o 1 2 5 u s 、o 2 5 u s 、o 5 u s 、l u s 、2 u s 、4 u s ,因此只能选择3 2 分频和6 4 分频, 这里我们选择了3 2 分频,因为转换时间越长,内部采保电容泄漏的电压越多, 转换得到的结果精度误差就越大。 由此得到t a d = 2 u s ;t c o n v = l l * t a d = 2 2 u s 从窟动转换到得到全部结果总时间为2 4 u s 。由于增益设置子程序大概要耗 费2 4 0 u s 的时间,而这远远超过了采样时间t a c q ,所以在主程序中不必专门进 行采样延时。 t “lh 酏t t 8 耐t a t q d 6t a d tt a t a 柏t a 4 1 0t a d l l t a d l 2 h d l 3 j 】 j j j l j j 。j 。j l j 十十b o b 8b t b ob 5 b qb 3b z b 1b o b o 1 i 爨建垂蠢盏孽蔫箍客3 0 髓1 5f il辛争抹结果l ill i 垒受禳糕器黼l 编嘉换 采样开关重赣闭 合,开始果释 幽2 - 3a d 转换与时钟的对应关系 a d c 模块中重要的寄存器及在系统中的配置如下所示: ( 1 ) a d c o n 0 控制寄存器 r w 0 r w 0r w 一0 r w 一0 r w 0 r w 一0u 一0r w 0 ia d c s lia d c s 0ic h s 2l c h s llc h s 0lg o d o n ei a d o ni 位7位6位5位4位3位2位1位0 a d c s l :a d c s 0 为a d 转换时钟选择 c h s 2 :c h s 0 为a d 转换输入通道选择 g o d o n e 为a d 转换启动控制和转换状态标志 1 表示a d 转换正在进行中,0 表示a d 转换结束 a d o n 为a d 模块启用控制位 1 表示a d 模块开始工作,采样开始,0 表示模

温馨提示

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

评论

0/150

提交评论