毕业设计---基于单片机PC程控脉冲信号发生器设计.doc_第1页
毕业设计---基于单片机PC程控脉冲信号发生器设计.doc_第2页
毕业设计---基于单片机PC程控脉冲信号发生器设计.doc_第3页
毕业设计---基于单片机PC程控脉冲信号发生器设计.doc_第4页
毕业设计---基于单片机PC程控脉冲信号发生器设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)题 目:基于单片机PC程控脉冲信号发生器设计 指导教师: 郭 兵 姓 名: 陈 娅 学 号: 0700232 专 业: 通信技术 班 级: 07通信 1班 起止日期:2009年11月5 日 至2010年 04月30日 教务处 制毕业设计指导任务书毕业设计题目 基于单片机PC程控脉冲信号发生器设计 学生姓名 陈娅 专 业 通信技术 指导教师 郭兵 职 称 副教授 毕业设计的内容及要求:设计的任务:设计一个可由PC程控的便携式脉冲信号发生器。要求:利用可变脉冲来实现。毕业设计进度计划:1、期限:自 2009 年 11 月 5 日起至 2010 年 4 月 30 日2、具体进度安排:时 间完 成 内 容2009.11.5至2009.11.30查阅资料2009.12.1至2010.12.31弄懂PC程控脉冲信号发生器的工作原理和工作过程并简要摸索出它的论证方案,作出其方案图2010.3.1至2010.3.30在经过详细研究下选择出PC程控脉冲信号发生器的电路元件,通过计算制作出它的电路图并实际操作安装和调试2010.4.1至2010.4.30完成毕业论文毕业设计教师指导记录表班级 通信技术1班 指导教师 郭兵 学生姓名陈娅学号0700232专业通信技术第一次指导指导时间:2012.11.5指导内容:先选择本次设计的题目,在老师的指导下查阅电子资料的方法。第二次指导指导时间:2012.11.15指导内容:检查查找资料的情况,指导弄懂PC程控脉冲信号发生器的工作原理和工作过程。第三次指导指导时间:2012.11.25指导内容:指导对PC程控脉冲信号发生器的方案进行论证,作出其方案图。第四次指导指导时间:2012.12.5指导内容:指导选择出PC程控脉冲信号发生器电路元件,通过计算制作出发生器电路图。第五次指导指导时间:2012.12.15指导内容:指导毕业论文的写作,分为几个部分来写。第六次指导指导时间:2013.4.10指导内容:指导毕业论文的书写规范。目 录第一章 绪论 .1第二章 系统方案设计 .22.1 引言22.2 飞思卡尔各型号单片机简介32.2.1 8位单片机32.2.2 16位单片机32.2.3 32位单片机32.3 带USB模块的单片机MC9S12UF32特点及应用42.3.1 UF32单片机引脚封装图42.3.2 UF32单片机内部资源结构图42.4 系统设计方案论证62.4.1 系统指标分析62.4.2 总体方案简述与设计框图62.4.3 PC 端模块设计72.4.4 MCU端USB和PULSE模块设计8第三章 USB2.0通信接口设计.93.1 引言93.2 USB接口设计必须具备的基础知识93.2.1 USB基本结构93.2.2 USB主机103.2.3 USB设备103.3 USB物理特性与接口设计方法113.3.1 USB接口113.3.2 USB信号123.4 USB通信协议123.4.1 信息包格式133.5 事务处理基本类型及USB传输类型133.5.1USB设备列举143.6UF32的USB2.0模块的设计14第四章 系统硬件实现 .154.1 引言154.2 原理图设计及各模块要说明154.2.1 电源模块设计154.2.2 时钟模块设计154.2.3 复位模块设计164.2.4 USB接口模块设计164.2.5 状态显示模块设计174.2.6 输入输出模块设计174.2.7BDM调试接口模块设计184.3 PCB设计及版图设计简要说明184.3.1 版图设计说明184.3.2 Freescale 9S12UF32&USB2.0版图19第五章 系统设计软件实现与调试 .205.1 引言205.2 脉冲产生处理程序215.3 USB模块接收程序215.3.1 UF32内部模块方案选择215.3.2 UF32芯片的USB 2.0 功能的软件实现225.4USB模块与PULSE模块数据通信设计235.5USB模块调试235.6系统集成模块调试235.7 系统集成模块调试脉冲输出照片24第六章 PC端VC+程序编制及调试 .256.1 引言256.2 主机程序的实现及功能266.2.1 USB接口函数介绍266.2.2 PC端操作界面266.2.3 程序流程及说明27致谢 参 考 文 献附录A:系统电路原理图摘 要USB(Universal Serial Bus)以其高速、免费、开放、便利等特点已经在各种设备中广泛采用,并以其独特的优势渐有取代传统通信接口的趋势。Freescale单片机以其稳定、简单、灵活、优越的性能,广泛应用于工业控制和消费电子中。本系统是基于USB2.0高速传输的理论(高速模式速度480Mb/s,全速12Mb/s)。以Freescale UF32单片机为核心控制单元,利用UF32内含的USB2.0控制模块(UDC20) 实现与PC主机的USB通信,设计了PC程控的便携式脉冲信号发生器。硬件系统通过USB2.0接口与PC机相连,硬件板上的UF32单片机通过USB接口模块和专门用于批量传输的集成队列模块(IQUE)与主机通信。当收到上位机传来的脉冲信号参数和控制命令,则通过内部程序设置,利用内部增强的定时器模块(ETC_16B8C)产生相应的脉冲输出。PC机上VC+编程实现图形界面(GUI),以及驱动程序完成应用程序和USB系统驱动的连接,以达到设计目的。关键词:USB2.0,脉冲,VC+图像界面设计 第一章 绪论脉冲信号源在日常生活和生产中需求不断提高,特别是对其各种参数需求的灵活性。应用最广泛的是PWM(脉冲宽度调制)去控制步进电机,完成对工业仪器和设备的远程智能控制。单片机MCU采用Freescale 9S12UF32,其内置USB2.0控制模块及专门用于批量传输的IQUE(集成队列模块)。使用Freescale开发系统及免费的CodeWarrior开发环境,单片机编程使用汇编语言、C语言均可。因此,新一代的信号发生器产品就应运而生。国内外均有相应产品,如美国NI公司就有PCI总线、PXI/CPCI总线的信号发生器产品系列,而国内类似产品尚处于研制初期。电子工程实际中经常要用到的信号发生器,其功能和效果都已标准化、产品化。随着科技应用的发展和延伸,对信号发生器的各方面要求越来越高。传统信号发生器存在波形精度低、频率稳定性差、价格贵、携带不便、无程控等缺点。另外,在某些特殊工程应用中,需要专门配备特殊信号(如雷达等)、由用户程序控制、并能嵌入目标系统的信号发生单元,而不是一个单纯的实验设备型仪器。USB(通用串行总线)在当今已广泛应用,它存在于我们生活的各个地方,如电脑、手机、数码相机、鼠标、等,它是一种廉价、通信速度快。适合于大批量、短距离数据传输的设备进行实时通信。USB总线的快速性和开放性使得它有取代老式的慢速总线的趋势,并成为智能设备中一种不可或缺的总线接口。 重庆工商职业学院基于单片机PC程控脉冲信号发生器设计 毕业设计说明书第二章 系统方案设计2.1 引言单片机是单片微型计算机SCM(single chip micro-computer)的译名简称, 它包括中央处理器CPU、随机存储器RAM、只读存储器ROM、中断系统、定时器/计数器、串行口和I/O等等。 早期:以Intel公司为领袖,同步于通用微机,有个阶段:第一阶段(19741978)初级,8位,MCS-48系列(带并行I/O接口、定时器计数器、无串行IO接口)第二阶段(19781983)高级,8位,MCS-51系列(新增串行I/O接口、多级中断等功能完备,拓宽了其应用范围)第三阶段(1983)16位单片机, MCS-96系列(16位处理,含A/D转换器,功能加强,速度快) 其中:MCS-51系列获得了最为广泛的应用,典型型号为使用Intel 8051内核的89C51、89S51Freescale(飞思卡尔)半导体公司是全球最大的半导体公司之一,其前身为Motorola(摩托罗拉)半导体部,2004年从摩托罗拉分拆上市。它从1953年开始从事半导体业务,是世界半导体产业与技术的开拓者,为汽车电子、消费电子、工业控制、网络和无线市场设计并制造了众多的嵌入式半导体产品, 在微控制器领域长期居于全球市场领先地位。飞思卡尔MCU家族: 8位机 - HC05、HC08、HCS08、RS08系列 16位机 - HC12、S12、S12X系列 32位机 - PowerPC、Coldfire、ARM、M.CORE系列应用特点: 品种全、选择余地大、新产品多。 应用领域极广,尤其在汽车、手机领域。 在同样速度下所用的时钟频率较Intel类单片机低很多,因而使得高频噪声低,抗干扰能力强,更适合用于工控领域及恶劣的环境。2.2 飞思卡尔各型号单片机简介2.2.1 8位单片机 Motorola公司于1975年推出MC6800微处理器。在此基础上,1983年前后发展成为较高性能的M68HC05系列8位单片机,并获得全球销量第一的荣誉。其先后推出基于HC08、HCS08、RS08核心的新一代8位单片机,价格低廉,功能强大。RS08系列是2006年推出的超低端8位MCU,以满足体积更小,更经济高效的解决方案。2.2.2 16位单片机 飞思卡尔采用CPU12内核的MCU主要有HC12和HCS12两种类型。 2005年,飞思卡尔推出HCS12X系列16位单片机,做为HCS12的升级版,在保留了HCS12系列16位MCU效率,同时采用增强的内核和增强的外围设备,提高了总线速度(最高总线速度达到40MHz)。HCS12X增加了一个平行的协处理器XGATE,它可以在很大程度上解放CPU,使得其达到通常只有32位CPU才能达到的性能。 HCS12是HC12的升级版,其性价比更高,是CPU12系列MCU的先进机种。其主要特点是:增强型16位CPU内核(HCS12),高总线频率8MHz到25MHz,具有片内FLASH存储器,CPU编码效率高,支持背景调试(BDM,单线,低成本,在线全仿真、下载)。 HCS12子系列:MC9S12A、 MC9S12B、 MC9S12D-通用MC9S12H、 MC9S12L-带液晶驱动MC9S12E128、 MC9S12E64-低供电电压MC9S12NE-带以太网接口MC9S12UF32-带USB接口2.2.3 32位单片机 飞思卡尔的32位微处理器,大部分基于PowerPC、Coldfire、ARM、M.CORE几种核心架构。他们的处理能力都相当强,PowerPC架构的处理器如MPC860系列,主要应用于电信行业,并成为主流CPU,MPC500系列一经推出就被汽车行业评委年度最佳MCU产品。2.3 带USB模块的单片机MC9S12UF32特点及应用2.3.1 UF32单片机引脚封装图图2.1 MC9S12UF32 PU引脚封装图2.3.2 UF32单片机内部资源结构图图2.2 MC9S12UF32 PU内部资源结构图MC9S12UF32是16位单片机中低价位、高性能HCS12家族中的一员。由S12内核(Star Core CPU),加其它标准的片上模块组成,包括32K字节FLASH EEPROM,3.5K字节RAM,1.5K队列QRAM,高速USB2.0(480Mb/S)接口,给USB批量数据传输使用的集成队列控制器(IQUE),ATA5接口(PCI总线接口),U盘类FLASH接口(Compact FLASH),SD/MMC接口,智能多媒体接口,记忆棒接口,一个16位8通道定时器,串行通讯接口,73个独立的数字I/O通道和2个输入通道。MC9S12UF32系统总线为16位宽。外部总线可以在8位窄模式下工作,IQUE模块控制一条专门的内部总线,使得从存储接口到USB模块保持每秒60M字节的传输率。MC9S12UF32单片机有LQFP-100和LQFP-64两种封装形式。CPU本身起到了对系统的配置和控制作用,真正的数据传输通过IQUE作为中介完成。集成队列模块IQUE由三个主要部分组成:QUE控制器、QUE集成模块(QIM)和静态队列RAM(QRAM)。QUE控制器有四个通道,它们可以在单个IQUE时钟周期内移动一个字节或者一个16位字。QIM内部的复用和控制逻辑允许QRAM在QUE控制器和CPU之间共享。模块有三个总线接口:外设(IP)总线接口,IP 先进先出缓冲接口(FIFO)和S12的CPU接口(EEPROM总线)。在数据队列的自动传输过程中,数据以FIFO的方式写入或传出QRAM。CPU可以通过对QUE控制器寄存器的操作实现对QRAM的写入或者读出。CPU可以用普通的读或写方式对QRAM进行随机访问。当从FIFO数据端口访问QRAM中的信息时,指针会自动更新,此时QRAM缓冲区以环形或线性FIFO方式工作。FIFO的起始指针和末尾指针也可以直接修改。2.4 系统设计方案论证2.4.1 系统指标分析本系统可以看作是一个简单的嵌入式设备,因此,对系统要完成如下功能:1、 要求PC机上有较为友好的操作界面(GUI)。2、 能通过USB总线进行数据的收发。3、 用USB高速传输模式。4、 脉冲产生模块要求输出频率,占空比,个数及输出使能可调,频率和信号波形达到普通信号源要求。5、 硬件板块要求小巧而且布局美观,以达到便携式要求。6、 要求硬件板块必须引出足够丰富接口和其他资源,以供其他功能应用,而成为真正的一个嵌入式标准模块或是核心板。对于系统硬件设备的主要芯片,UF32对本系统相当合适,所有本次设计选用飞思卡尔16位高性能单片机MC9S12UF32作为核心控制模块。2.4.2 总体方案简述与设计框图系统要求通过PC上的客户软件输入要产生相关参数,如周期(频率)等。通过USB总线以高速批量传输方式,将相应参数信息传递给处理板(MC9S12UF32单片机为核心的硬件系统),首先UF32接收到上位机的信息,然后作为脉冲产生模块的输入参数,并将这些参数写到相应寄存器内,从而产生对应波形。 系统总体框图如下:PC客户软件USB接收模块IQUE模块 电源模块时钟与复位模块脉冲产生模块BNC输出其他引出接口BDM调试模块状态显示模块USB驱动程序主机USB其他程序与接口 UF32核心处理模块图2.3 系统设计框图2.4.3 PC 端模块设计USB主机必须完成三个功能:客户软件、USB系统软件和USB总线接口。USB客户软件是PC程序实现的目标,包括USB设备驱动和界面应用程序。对于本系统,我采用VC+/MFC进行开发。本次PC端主要模块即为VC+图形界面的设计,要求界面包括如下指标及参数的设定:1、 设备打开成功与否,状态显示。2、 向设备输入数据显示和设备相关信息显示。3、 频率设置、占空比设置、脉冲个数设置、脉冲输出使能设置窗口。4、 发送按钮、清除按钮。5、 退出按钮。2.4.4 MCU端USB和PULSE模块设计由于UF32内部集成了USB2.0控制模块,所以USB通信协议由MCU程序中设置相应USB相关寄存器和初始化该模块,设定USB接收发送的相关中断完成对USB工作的基本环境。UF32的USB 2.0模块共有6个端点,其中1端点作为默认的零号控制端点使用,2、3 端点可以各自使用内部64 字节的寄存器缓冲区,4、5 端点可以使用UF32 的集成队列模块(IQUE)进行数据缓冲,这个模块是一个类似于DMA方式的模块,用于外设和内存之间传送数据,而不需要CPU 的干预。使用4、5端点作为USB 的批量传输输入输出端口,那么在高速模式情况下,端点一次最多可以发送512 个字节,且端点4、5的端点缓冲区不在USB2.0模块内部,而是在IQUE的寄存器设置,来确定最终将数据存到所映射的QRAM的某个位置。这样PC上传下来的数据将保存到该QRAM中,CPU要读取数据,可以直接通过对QRAM相应地址读数据即可。PULSE(脉冲)产生模块,采用UF32内部集成的增强定时器(ECT_16B8C)模块,利用单通道的输出比较(OC)模式,并允许比较成功中断,设置相关寄存器设置比较成功中断并输出翻转。利用分别不同时刻交替的向TCx赋值为HighTime和LowTime来完成占空比和频率可调。每次进入中断后检测Mun是否超出预先设置值,再在最后判断是否输出使能,并再次允许中断,启动定时器。8重庆工商职业学院基于单片机PC程控脉冲信号发生器设计 毕业设计说明书第三章 USB2.0通信接口设计3.1 引言 计算机总线是计算机各部件之间进行信息传输的公共通道,根据信号类型的不同,微型计算机的总线一般分为数据总线、地址总线和控制总线三种。在基于8Ox86系列CPU的PC系统中所采用的标准总线主要有PC汉T总线、SIA总线、EISA总线、MAC总线以及VESA、PCI、AGP总线,其中后三种总线属于局部总线,也是性能比较高、传输速度比较快的总线结构。 USB不是一种新的总线标准,而是应用在PC领域的接口技术。目前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。目前的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座,而且除了背板的插座之外,主板上还预留有USB插针,可以通过连线接到机箱前面作为前置USB接口以方便使用。而且USB接口还可以通过专门的USB连机线实现双机互连,并可以通过Hub扩展出更多的接口。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps, USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机等。USB的版本:第一代:USB1.0/1.1的最大传输速率为12Mbps。第二代:USB2.0的最大传输速率高达480Mbps。USB1.0/1.1与USB2.0的接口是相互兼容的。第三代:USB3.0 最大传输速率5Gbps, 向下兼容USB 1.0/1.1/2.03.2 USB接口设计必须具备的基础知识3.2.1 USB基本结构USB 是一种支持热插拔的高速串行传输总线,它使用差分信号来传输数据,最高速度可达480Mb/S。USB 支持“总线供电”和“自供电”两种供电模式。在总线供电模式下,设备最多可以获得500mA 的电流。USB2.0 被设计成为向下兼容的模式,当有全速(USB 1.1)或者低速(USB 1.0)设备连接到高速(USB 2.0)主机时,主机可以通过分离传输来支持它们。一条USB 总线上,可达到的最高传输速度等级由该总线上最慢的“设备”决定,该设备包括主机、HUB 以及USB 功能设备。USB 体系包括“主机”、“设备”以及“物理连接”三个部分。其中主机是一个提供USB接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG 设备。一个USB 系统中仅有一个USB 主机;设备包括USB 功能设备和USB HUB,最多支持127 个设备;物理连接即指的是USB 的传输线。在USB 2.0 系统中,要求使用屏蔽的双绞线。以下为USB系统数据通信的结构图,下面将对其进行一一说明。图3.1 USB通信架构图3.2.2 USB主机USB的所有数据通信(不论是上行通信还是下行通信)都由USB主机启动,USB主机在整个数据传输过程中占主导地位。在USB系统中,只允许一个主机。USB主机分为3个不同的功能模块:客户软件、USB系统软件和USB总线接口。3.2.3 USB设备一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元。这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);USB逻辑设备被USB软件看作是一个端点的集合;功能单元被客户软件看作是一个接口的集合。SIE、端点和接口都是USB设备的组成单元。USB设备使用各种描述符来说明其设备构架,包括设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符和管道,它们通常被保存在USB设备的固件程序中。3.3 USB物理特性与接口设计方法3.3.1 USB接口 USB使用一根屏蔽的4线电缆与网络上的设备进行互联。数据传输通过一个差分双绞线进行,这两根线分别标为D+和D-;另外两根线Vcc和GND,其中Vcc向USB设备供电。1、 其引线定义:表3.1引脚编号信号名称缆线颜色1Vcc红2D-绿3D+白4GND黑2、USB连接头A型连接头用于上行连接,即接主机或集线器,B型连接头用于下行连接,USB设备上一般用B型插座。12431234 A型连接头 B型连接头图3.2 USB A、B型接口图3.3.2 USB信号数据在USB总线上实际传输时,使用的是NRZI(反向不归零)编码的差分信号,这种信号有利于保证数据的完整性和消除噪声干扰。1、差分信号技术传统的传输方式大多使用一个临界值来分别来区分1和0。差分信号技术最大的特点是:必须使用两条线路才能表达一个比特位,用两条线路传输信号的压差作为判断1还是0的依据。2、编码格式(1)方向不归零编码由发送信息的USB代理程序完成;(2)被编码的数据通过差分驱动器送到USB电缆上;(3)接收器将输入的差分信号放大,将其送给解码器。传输结构图:电缆段NRZI编码器差分驱动器NRZI解码器差分驱动器D+ D-图3.3 USB通信线路示意图 3.4USB通信协议USB事务处理由一系列具有特定格式的信息包组成。要了解完整的USB通信协议,必须从USB的信息传输单元包及其数据域谈起。在低速、全速模式下,主机每间隔1ms(这个1ms称为一帧)发送一个帧开始令牌包SOF(Start of Frame)。包含SOF标记、帧序列号及CRC5校验码 ;在高速模式下,主机每间隔1/8ms(即为一微帧)发送一个帧开始令牌包SOF。 包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。USB包由5部分组成:同步(SYNC)字段、包标识符(PID)、数据字段、循环冗余校验(CRC)字段和包结尾(EOP)字段。基本包格式:表3.2SYNCPIDDATACRCEOP3.4.1 信息包格式根据信息包所实现的功能,其可以分为3种类型:令牌包、数据包和握手包。其中,令牌包定义了数据传输的类型,数据包含有需要传输的数据,握手包指明了数据接收的成功与否。1、 令牌包 在USB系统中,只有主机才发出令牌包,它是事务处理的第一阶段。令牌包格式:表3.38位8位7位4位5位SYNCPIDPID#ADDRENDPCRC52、 数据包主机总是通过配置事件初始化总线传送的第一个数据包为DATA0 PID,第二个数据包为DATA1 PID,并且以后的数据传送轮流切换。格式如下:表3.48位8位01023字节16位SYNCPIDPID#DATACRC163、 握手包握手信息包是最简单的信息包类型。在这个握手信息包中,仅含有一个PID数据域。格式如下:表3.58位8位SYNCPIDPID#3.5 事务处理基本类型及USB传输类型在USB上的数据信息的一次接收或发送的处理过程为事务处理(Transaction)。事务处理的类型包括输入(IN)事务处理、输出(OUT)事务处理、设置(SETUP)事务处和帧开始、帧结尾等类型。USB传输类型有4种:批量控制传输、实时传输、批量传输和中断传输。3.5.1 USB设备列举USB设备列举:HUB通知主机设备连接到USB总线上,此时USB设备处于供电状态;主机查询HUB来获得设备信息,并且等待100ms,让设备总线处于供电稳定,此时USB主机向设备发送复位请求;USB设备复位后,通过默认地址响应总线标准请求;USB主机为USB设备分配一个设备地址,并通过读设备描述符来获得设备端口的最大载荷;USB主机获得设备配置信息,并根据信息向设备发送设备配置请求,USB设备响应该请求后列举完成。3.6UF32的USB2.0模块的设计USB2.0模块依靠片上USB设备控制器(UDC20)和USB物理层接口(UPHY),支持USB全速和高速协议。UDC20模块有6个独立的端点,它们可以配置为控制、中断、批量或者同步传输的IN/OUT端点。两个64字节缓冲区分配给了物理端点1,该端点默认为控制端点。另外三个64字节缓冲区分配给了物理端点2,3和6。端点数据通过IP FIFO总线保存在IQUE模块中。使用4、5端点作为USB 的批量传输输入输出端口,在高速模式情况下,端点一次最多发送512 个字节,且4、5的端点缓冲区不在USB2.0模块内部,而是在IQUE的寄存器设置,来确定最终将数据存到所映射的QRAM的某个位置。这样PC上传下来的数据将保存到该QRAM中,CPU要读取数据,可以直接通过对QRAM相应地址读数据即可。UF32内部USB2.0模块框图如下:图3.5 USB2.0模块方框图 15重庆工商职业学院基于单片机PC程控脉冲信号发生器设计 毕业设计说明书第四章 系统硬件实现4.1 引言由于硬件模块核心处理器选择Freescale UF32单片机,因此,硬件电路参考飞思卡尔官方网站推荐电路和部分电路设计,最终完成整个系统的硬件设计。具体硬件部分主要由核心处理单元UF32、UF32最小系统要求外围时钟、电源、复位、及调试接口,并且也引出了丰富的接口资源,可以供多个外围器件或设备与本系统进行数据交换。4.2 原理图设计及各模块要说明4.2.1 电源模块设计UF32需要+5V和+3.3V供电电压,其中UF32 的9、10脚(VSSR、VDDR)之间为+5V,为系统提供电源和地;29、30脚(VDD3X、VSS3X)和60、61脚(VSSX、VDDX)之间为+3.3V 给相应I/O 口提供电源和地;电源和地之间的电容均为滤波电容。图4.1电源模块电路图4.2.2 时钟模块设计UF32 第84、85 脚(XTAL、EXTAL)之间的电路为晶振电路,晶振频率大小为12MHz。另外配备1个1M 反馈电阻和2 个22pF的电容。 同时,为系统可以工作于其他频率模式,特别在电路图中增加了用户选用晶振,该晶振为有源晶振,频率大小可以自己按需要选定。图4.2时钟模块电路图4.2.3 复位模块设计UF32第7脚( RST )上所接的电路为复位电路。该电路实现比较简单,只需选择合适的上拉电阻和滤波电容即可。下图电路,则可以完成上电复位和用户按键手动复位,使复位方式更灵活。图4.3复位模块电路图4.2.4 USB接口模块设计系统中使用的USB 口为标准B 型USB 连接头,方口中的1 脚为电源、2脚为D-数据线、3 脚D+数据线、4 脚为地。UF32 的89、90、91、92 脚(DPF、DPH、DMF、DMH)为USB 物理层上的全速或高速通讯引脚。其中高速模式下使用的是DPH 和DMH,其它两个引脚用来终止D+信号。而全速模式下使用的是DPF和DMF,另外两个引脚处于高阻状态。图4.4 USB接口模块电路图4.2.5 状态显示模块设计状态由4个LED灯组成,它们包括一个5V电源指示灯,一个3.3V电源指示灯,两个作运行和调试指示灯。图4.5状态显示模块电路图4.2.6 输入输出模块设计用户可以从8路输出接口中任选一路作为BNC的输出,即脉冲输出。图4.6 BNC输出模块电路图4.2.7BDM调试接口模块设计 BDM是飞思卡尔单片机有别于其他单片机的一种叫背景调试(Backgroud Debug)接口,它支持开发软件对硬件系统的在线调试与仿真。本设计中采用兼容式BDM接口,它可以同时支持Freescale官方定义和清华大学定义的BDM调试器。图4.7 BDM调试模块电路图4.3 PCB设计及版图设计简要说明4.3.1 版图设计说明硬件板卡设计使用Protel DXP先进行原理图设计,然后通过建库及导入,之后完成器件的布局布线工作。板块对外引出了96个核心处理器UF32的接口,可与UF32进行数据的交换和共享。在最右边引出了与普通开发板相似的万能板插口,允许外部接入双列直插式芯片和引脚式电器元件。同时也多放置了许多的SMD(贴片式)焊盘,支持小于等于28脚的贴片式封装芯片的接入及各种与0805封装相近的贴片电子元件。在PCB设计中,布局布线是一个需要特别注意的环节。而其中,电磁干扰、线间串扰及数据信号完整性等问题常常是最为令版图设计人员头痛的事情。因为一个设计的版图电磁兼容性的好坏有时不但会影响系统的运行效果,更有可能会直接致使系统无法工作。况且,电磁干扰不仅仅是对系统本身,还涉及到系统运行时,对周围设备的正常运行带来影响,即设备运行时,向外部空间辐射大量的无用电磁波,造成周边设备无法正常工作。当然,这也是允许的。因此,本系统布局布线有如下规则:1. 在布置USB差分线走线要求等长,对称及包围面积尽量小,并且要求USB信号线上阻抗恒定为90hmo,需在布局时加以重点考虑,并最好有地包裹。2. 电源芯片远离核心信号部分,远离核心处理芯片。3. 晶振电路远离电源,远离重要信号线。并且时钟线最好有地包裹。4. 所以电源引脚的滤波电容必须离引脚尽量靠近。5. UF32要遵循官方PCB布局布线要求。6. 表面有大面积铺地,减少线间串扰。7. 线宽大于8mil,并要求走线不宜太长,保证信号完整性要求。4.3.2 Freescale 9S12UF32&USB2.0版图板尺寸: 58.58 x 97.00 mm 板 层: 双层板,表面敷铜图4.8 PCB顶层图 图4.9 PCB底层层图20重庆工商职业学院基于单片机PC程控脉冲信号发生器设计 毕业设计说明书第五章 系统设计软件实现与调试5.1 引言MCU端程序包括三大主要模块,它们分别为:MCU初始程序,脉冲产生处理程序和USB模块接收程序。各模块先进行各自的初始化处理,然后经过相互间的数据通信,完成数据共享。并通过相互间数据的收发,完成把最终数据传递给输出处理模块,该模块再将发来的数据或命令解析、执行,从而完成规定的任务。MCU初始化将进行一下几个步骤的工作。1、 进行堆栈初始化和寄存器初始化,以完成程序要执行的最基本的条件。2、 关闭看门狗电路,使能内部电压转换模块。3、 选择系统时钟和总线时钟设置。4、 进行必要的内存地址映射。MCU初始化完成,然后,CPU就可以按指定要求完成相应的程序处理工作。这之前内存映射是很重要的,他将决定你的访问地址所在位置。USB 2.0 功能的软件实现部分函数头的初始化函数:void USB_ModuleInit(void) /USB模块的初始化.void IQUE_Module_Init(void) / IQUE模块的初始化.void USB_InitBulkOnlyTransport(void) / USB批量传输初始化 配置1x64字节BULK in 和1x64字节BULK out中断处理函数:void USB_StatusChgISR(void) /USB_StatusChgISR-挂起,复位中断函数void USB_StartFrameISR(void) /USB起始帧中断处理void USB_SetConfigISR(void) /USB SET_CONFIGURATION中断处理void USB_EP0INISR(void) /端点0 IN中断void USB_EP0OUTISR(void) /端点0 OUT中断void USB_PhyEP4ISR(void) /端点4 out中断 void USB_PhyEP5ISR(void) /端点5 In中断5.2 脉冲产生处理程序脉冲产生模块为整个信号源的核心模块,它的性能将直接影响整个系统的实现和最终效果。S12部分单片机内置PWM模块,使用起来便十分简单,但UF32内部无PWM模块,则给系统的实现造成了一定的困难。但UF32与其他同系列单片机一样,都集成了一个叫增强定时器(ETC)模块。它功能非常强大,8个通道16位定时器,可配置为输入捕捉/输出比较,或作为脉冲累加器等。本设计中采用它的通道7的输出比较功能,通过对TC7写入不同的数据(高电平时间/低电平时间),允许定时器输出比较中断,然后比较成功输出翻转,从而达到占空比、频率可控的效果。并可以在比较输出之前进行输出个数检查和输出使能的确认。设计过程中的测试程序如下:/可变脉冲设计 void TimerOCCTL(INT8U HighTime,INT8U LowTime,INT8U Num,INT8U Gate,INT8U int_Flag0) if(int_Flag0) int_Flag0 = TimerOCHigh(HighTime); /置高电平数据给TC7 TimerOCNum(Num); /检查输出个数是否超出 else int_Flag0 = TimerOCLow(LowTime); /置低电平数据给TC7 TimerOCGate(Gate); /检查输出使能 5.3 USB模块接收程序5.3.1 UF32内部模块方案选择UF32的USB 2.0模块共有6个端点,其中1端点作为默认的零号控制端点使用。使用4、5端点作为USB 的批量传输输入输出端口,那么在高速模式情况下,端点一次最多可以发送512 个字节,但是如果用2、3 端点实现的话,那么2、3 端点的缓冲区只有64个字节,限制了缓冲区数据量,影响速度。5.3.2 UF32芯片的USB 2.0 功能的软件实现UF32芯片的USB 2.0 功能的软件实现主要分以下五个步骤:1 Setup 配置该步骤主要是初始化PLL,并映射IQUE模块的内存到地址0x1000。IQUE有专用的1.5k SRAM内存,而UF32也有3.5K的SRAM用作其他用处,在这里把IQUE的专用内存移动到0x1000位置,目的是不与系统中那个3.5K的地址重叠。2USB模块初始化这一步骤能开启各种中断,因为大部分USB 的处理工作都是在中断中完成的,开启的主要中断有:收到Setup 包、接收到SOF信号、复位和唤醒、遇到主机SetConfigure请求等等。3 IQUE模块初始化IQUE 模块有4 个通道,设置UF32的USB 模块端点5使用通道3和4组成的双缓冲区IQUE 模式,USB的端点4使用通道1,并设置通道1为接收模式。4 USB批量传输初始化该部分用于初始化批量传输模式的端点以及端点所使用的IQUE 模块。程序内容包括设置USB的寄存器,设置配置和接口数目,配置所有使用的端点,比如端点的传输类型,是IN 还是OUT,使用哪个缓冲区以及缓冲区的大小,端点所属的配置号和接口号,并且配置IQUE 的通道等等。5USB中断处理该部分程序主要功能是对USB 的各种可能的中断进行处理。主要包括以下: 挂起和复位中断。 Setup 中断。 端点0的IN 和OUT中断。端点0的IN和OUT中断处理主要是清相应的状态位,设置UEPCSR0 = 0x3000。 端点4和端点5中断。当产生端点4 中断时,通过读QC1DR 这个寄存器就可以把从PC端接收的数据全部读出来,实现了数据的读取过程。5.4USB模块与PULSE模块数据通信设计由于,通信时使用IQUE模块,所以端点数据通过IP FIFO总线保持在IQUE模块中,这个结构使得实现片内其它模块与USB2.0模块之间持续数据通信变得容易。数据的位置由IQUE的QCnSML的控制位决定。若通道1被用到,则可通过QCnCR来确定是哪个通道或大包还是小包传输,以16位还256位为访问单位等。同时,通过设置QCnZB中的QSIZE来设置需要n个block的16位/256位的存储区。设置QBASE位来设置该通道的存储区首地址。这样,具体数据地址为:QRAM地址+QBASE地址,当然,QRAM地址需要自己设置,这需要进行memory map的相应设置,本设计把QRAM地址设置在$1000$1FFF位置。5.5USB模块调试通过辅助软件Bus Hound读取设备插入PC机后,USB端口的部分数据抓取:截图一:获得设备PID/VID:USBVID_0425&PID_050E截图二:配置描述符SET_CONFIGUREATION_DESCRIPTOR 由此可知,PC对USB设备发送各种标准请求,并获得了相关描述符,即PC已经识别到该设备已接入,配置完成后就可以访问。5.6 系统集成模块调试由于Code warrior支持TBDML在线仿真调试,我们可以通过观察寄存器相关变化,了解系统运行状况。那么本部分系统调试分为以下几个步骤:调试一:Code warrior集成开发环境调试仿真器调试二:主程序执行调试三:收到USB的数据,完成数据的存储调试四:进入输出比较成功中断调试五:读入USB传下来的数据,低电平时间调试六:再次进入中断后,读入高电平时间5.7 系统集成模块调试脉冲输出照片27第六章 PC端VC+程序编制及调试6.1 引言本模块是在PC上进行驱动程序的修改应用和PC图像界面的制作。使用工具为DDK,Driver studio,及VC Studio 2005。图像界面就是使用VC进行编程实现,利用MFC进行框图的设计,调用winapi的驱动设备相关api函数,对设备进行打开、读取、写入、关闭等操作。就是利用以下函数:open、read、write、close及ioctl等对设备进行操作访问。C+是在C语言基础上发展的一门语言,它继承了C语言的高效,简洁,快速,和高移植性的传统。C+包含C语言的内容,主要是在C语言的基础上添加了面向对象编成(OOP)的方法,C语言是面向过程的编成。所以两种语言的基本语法和语义是相同的。C+语言是在C语言的基础是扩展而成的.所以两种语言的基本语法

温馨提示

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

评论

0/150

提交评论