(通信与信息系统专业论文)调制解调器监控电路设计与实现.pdf_第1页
(通信与信息系统专业论文)调制解调器监控电路设计与实现.pdf_第2页
(通信与信息系统专业论文)调制解调器监控电路设计与实现.pdf_第3页
(通信与信息系统专业论文)调制解调器监控电路设计与实现.pdf_第4页
(通信与信息系统专业论文)调制解调器监控电路设计与实现.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

南京理工大学硕士学位论文 调制解调器监控电路设计与实现 摘要 设计和实现调制解调器监控电路,通过接收主控机发来的命令,对调制解调器的 各种业务进行控制,以及把调制解调器的有关参数回送给主控机。 通过a t m e g a l 2 8 单片机的异步串口( u s a r t ) 与主控机进行通信,通过同步串 口( s p i ) 与d s p 芯片t m s 3 2 0 c 5 4 1 0 a 进行通信,及时提供f p g a 动态加载信息并读 取调制解调器估计得到的信道多谱勒频率和信噪比等信息,通过通用i o 口配置直接 数字频率合成器a d 9 8 5 1 以切换f p g a 主时钟,并以访问外部s r a m 的方式与f p g a 交换数据以进行业务切换。完成了调制解调器监控电路硬件设计和软件编程,系统调 试表明,设计的监控电路符合要求。 关键词:a v r 单片机串行通信接口监控 南京理工大学硕士学位论文调制解调器监控电路设计与实现 a b s t r a c t t od e s i g na n di m p l e m e n tt h em o n i t o r i n gc i r c u i to fm o d e ms y s t e m ,t h em i c r o c o n t r o l l e r c o n t r o l sa l lk i n d so fo p e r a t i o n so ft h em o d e mw h e nr e c e i v i n gt h ec o m m a n dc o m i n gf r o m m a s t e rc o n t r o l l e ra n ds e n d ss o m ep a r a m e t e r sf r o mt h em o d e mt om a s t e rc o n t r o l l e r a t m e g a l 2 8m i c r o c o n t r o l l e rc o m m u n i c a r e sw i t hm a s t e rc o n t r o l l e rv i au s a r a , i t c o m m u n i c a t e sw i t hd s pc h i pt m s 3 2 0 c 5 4 1 0 av i as p it os u p p l yd y n a m i cr e c o n f i g u r a t i o n i n f o r m a t i o no ff p g aa n dr e a dd o p p l e rf r e q u e n c ya n ds n rt h a th a v eb e e ne s t i m a t e db yt h e m o d e mi nt i m e ;i tc o n f i g u r e st h ed d sd e v i c ea d 9 8 51v i ag e n e r a ld i g i t a li 0p o r t st o s w i t c ht h em a i nw o r k i n gc l o c ko ff p g a ;i ta l s oe x c h a n g e sd a t a w i t hf p g ai nt h ew a yo f a c c e s s i n ge x t e r n a ls r a m t oc u t o v e rt h et r a n s a c t i o n a f t e rt h eh a r d w a r ed e s i g n i n ga n d s o f t w a r ep r o g r a m m i n g ,t h ed e b u g g e ri ns y s t e ms h o w st h a tt h i sd e s i g n e dm o n i t o r i n gc i r c u i t o ft h em o d e ma c c o r d sw i t ht h er e q u i r e m e n t s k e yw o r d s :a v rm i c r o c o n t r o l l e r , s e r i a lc o m m u n i c a t i o ni n t e r f a c e ,s u p e r v i s o r yc o n t r o l y 7 6 3 5 2 3 声明 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:新白话 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容a 对 于保密论文,按保密的有关规定和程序处理。 研究生签名:新年7 i 月铘面年6 月铘 南京理工大学硕士学位论文 调制解调器监控电路设计与实现 i 引言 1 ia f r 单片机产品及其应用现状 随着电子技术的迅猛发展,单片机更广泛地应用于军事、工业、通讯、家用电器、 智能玩具、便携式智能仪表等领域,使产品功能、精度和质量大幅度提高,丽电路设 计更简单、敌障率低、可靠性高且成本低廉。从目前的趋势看,f l a s h 技术、在线可 编程、低功耗、大规模集成是今后单片机的发展方向。 a t m e l 公司是全球著名的高性能、低功耗、菲易失性存储器和数字集成电路的半 导体公司之一。它最引人注目的是它的e e p r o m 电可擦除技术,闪速存储器技术和高 质量、高可靠性的生产技术。9 0 年代初,a t m e l 率先把沁s 一5 l 内核与其擅长的f l a s h 技术相结合,推出轰动业界的a t 8 9 系列单片机。至今,a t m e l 在m c s - 5 1 市场上仍占 据主要份额。1 9 9 7 年,a t m e l 挪威设计中心出于市场需求考虑,充分发挥其f l a s h 技 术优势,推出全新配置的精简指令集( r i s c ) 单片机,简称a v r 。几年来,a v r 单片 机已形成系列产品,其a t t i n y 、a t 9 0 与a t m e g a 分别对应为低、中、高档产品( 高档 产品含j t a gi c e 仿真功能) “3 。 a t m e l 公司产品的主要特色表现为如下几点: ( 1 ) 以e e p r o m 电可擦除及f l a s h 技术为主导; ( 2 ) 多种封装形式和高的质量; ( 3 )高标准的质量检测。 a t 9 0 系列单片机是增强r i s c 结构、内载f l a s h 的单片机,通常简称为a v r 单片 机。该系列单片机是基于新的精简指令( r i s c ) 结构,综合了半导体集成技术和软件 性能的新型8 位单片机。 为了缩短进入市场的时间和简化维护的支持,以及为了方便程序的集成和移植, 对于单片机而言,用高级语言编程是一种标准编程方法。a v r 单片机的开发目的就是 要求能采用c 语言编程,从而高效地开发出目标产品。正因如此,在本次设计中,最 终采用c 语言进行a v r 源代码的编写,事实也证明c 语言确实能够加快程序设计的速 度,并且易于移植和集成“。 a v r 单片机具有良好的性价比。它常常通过引脚复用的形式,用较少的引脚实现 较多的功能,a t m e g a l 2 8 就是一例,它仅有6 4 个引脚,却包含有7 组并行总线和多种 串行通信接口;它采用h a r v a r d 结构,因此它的程序存储器和数据存储器是分开的; 某些寄存器被双向映射,既能以访问i o 口的方式( 用i n 和o u t 指令) 访问,又能 把它们看成内部s r a m 而进行读写。 1 引言 硕士论文 1 2a v r 单片机在本次设计中泡应用 在本次设计所涉及的系统中,主要的工作都在d s p 与f p g a 中完成。d s p + f p g a 组 成的系统具有结构灵活,通用性强,适于模块化的特点。底层的信号预处理算法要处 理的数据量很大,对处理速度的要求高,但算法结构相对比较简单,适于用f p g a 进 行硬件实现,这样能同时兼顾速度和灵活性。高层处理算法的特点是所处理的数据量 较底层算法少,但算法的控制结构复杂,适于用运算速度快、寻址方式灵活、通信机 制强大的d s p 芯片来实现。就本系统而言,f p g a 的作用主要有:编码译码,调制 解调:系统时序产生中心;信息交换中心;逻辑控制中心。d s p 则是系统高级算法( 如 f f t ) 实时处理的核心器件,另外它还负责对f p g a 的动态重构。”。 与d s p 及f p g a 类器件相比,单片机的工作速度较低,不适合用它进行复杂算法 的运算,也即不适于进行实时运算处理。然而,单片机的接口较为丰富,控制机制较 为完备,同时也具备一定简单运算的能力,因此用它进行低速率的信息处理还是比较 适合的。另外,现在有很多单片机( 例如a v r ) 上都能运行c 程序,这样就可以极大 地加快程序开发的进度,特别体现在对于协议栈的编写上。考虑到方便性和经济性, 本次设计采用a v r 单片机来实现系统监控,完成一些控制功能,而将对芯片工作速度 有严格要求的算法处理放入d s p 和f p g a 中来实现,a v r 与它们进行通信获取部分处理 结果,从而达到芯片之间的优势互补。 a t m e g a l 2 8 是a t m e l 公司的一款高档8 位a v r 单片机,属于a t 9 0 系列。在本 次设计中,实际采用a t m e g a l 2 8 l 完成系统的监控功能( 以后为了方便,省去最后一 个字母“l ”一律称为a t m e g a l 2 8 ) 。该a v r 单片机具有丰富的并行和串行接口,可 以方便地与系统中其他器件进彳亍连接以实现数据交换;内载6 4 k 程序f l a s h ,利用a v r s t u d i o 软件可以方便地实现在线调试和烧写;除了程序f l a s h ,它还有6 4 k 的数据f l a s h 供放置庞大的数据表用。 作为系统监控“”, a t m e g a l 2 8 提供多个通信接口与系统中相关模块进行通信。 在系统工作过程中,要实时接收外部命令以进行速率变换和业务切换,这就要求单片 机通过异步串口( u a r t ) 不停地接收主控机发来的命令,经过相应的处理转化为本 系统的控制信息,控制系统动作,同时读取系统的状态信息以回复命令的形式及时向 外反馈。通过这种交互操作,系统的运行与外界的要求达到同步。为了获取系统信息, a v r 单片机利用s p i 口与d s p 相连,根据主控机的命令读取相应内容并通过异步串 口发送出去。另外,a v r 也会根据需要,通过并行总线和外部扩展总线与d s p 以及 f p g a 进行通信。a v r 还控制着a d 9 8 5 1 芯片的运行,根据主控机要求实时改变系统 时钟,以达到业务速率切换的目的。 综上所述,本次关于系统监控的设计主要包括以下几个模块,各模块的组合连接 示意圈如图1 1 所示: 南京理工大擘硕士学位论文 调制解调器监控电路设计与实现 ( 1 ) 利用u a r t 与主控机进行通信的模块“; ( 2 ) 利用s p i 口与本地d s p 进行通信的模块; ( 3 ) 利用外扩总线对f p g a 中进行访问的模块; ( 4 ) 控制a d 9 8 5 1 切换业务速率的模块。 另外,在设计中用到了两个中断:定时中断和u s a r t 接收中断。在这两个中断 中都要访问相同的异步串口,如何防止冲突是一个关键。为了防止程序走飞,设计中 还加入了看门狗模块,以保证当单片机受到干扰而走飞时具有自恢复功能。 a v r 的时钟源来自内部r c 振荡电路,通过烧写相应熔丝位确定r c 电路振荡频 率。 1 。3 论文结构 图1 ,1 各模块的通信连接示意图 第二章首先对a t m e g a l 2 8 芯片的结构和特点进行了整体介绍。在第三章至第七 章的各章中,将分别对所用到的a v r 相关硬件模块进行深入分析,然后再结合流程 图及相应的源代码对该模块软件部分的设计思路加以详细说明。 在汇编和c 语言的混合编程过程中曾经遇到过不少困难,所以在此论文的第八 章指出了其中一些需要注意的问题。 2 a t m e g a l 2 8 芯片介绍 顽士论文 2a t m e g a l 2 8 芯片说明 2 1 芯片特点 a t m e g a l 2 8 芯片的主要特点介绍如下”: ( 1 ) 高性能、低功率8 位a v r 单片机; ( 2 ) 改进的r i s c 结构: 1 3 3 条指令,其中大多为单周期指令; 3 2 8 个通用工作寄存器+ 外设控制寄存器; 完全静态操作; 8 m 时钟( 对a t m e g a l 2 8 l 而言) ,1 6 m 时钟( 对a t m e g a l 2 8 而言) ; 片内双周期硬件乘法器。 ( 3 ) 非易失的程序和数据存储器: 1 2 8 k 字节在系统可编程f l a s h ,可经受1 0 0 0 次擦写; 4 k 字节潮l m ,可经受1 0 0 0 0 0 次擦写; 4 k 字节内部s r p d v i ; 高达6 4 k 字节的可选外部存储空间。 ( 4 ) j t a g 接口( 符合i e e e1 1 4 9 ,1 标准) : 边界扫描能力; 广泛的片内调试支持; 通过j t a g 接口对f l a s h 、e e p r o m 、熔丝位和加密位编程。 ( 5 ) 片内外设: 两个带预分频器和比较模式的8 位定时器,计数器: 两个扩充的带预分频器和比较模式、捕获模式的1 6 位定时器,计数器; 具有独立振荡器的实时计数器; 2 通道8 位p w m ; 6 通道1 6 位精度p w m ; 输出比较调节器; 8 通道1 0 位a d 转换( 8 个单端通道,7 个微分通道,2 个增益为l x 、1 0 x 、 2 0 0 x 的微分通道) ; 两线串行接口( 仰忆) ; 两个异步串行接口u s a r 主从s p i 接口: 带内部振荡器的可编程看门狗定时器; 南京理工大学硒士掌能论文调制解调器监控电路设计与实现 片内模拟比较器。 ( 6 ) m c u 特点: 上电复位和可编程的低电压检测: 内郝可校准的r c 振荡器; 外部和内部中断源; 6 种休眠模式:空闲模式、a d c 噪声抑制模式、省电模式、搏电模式、待 命模式和扩展待命模式; 软件可选时钟频率; 通过一个熔丝选定a t m e g a l 0 3 兼容模式; 全局上拉禁止。 ( 7 ) 的和封装: 5 3 个可编程的f o 脚; 6 4 脚t q v - p 封装。 ( 8 ) 工作电压: 2 7 - 5 。5 v ( a t m e g a l 2 8 l ) : 4 5 5 5 v ( a t m e g a l 2 8 ) 。 ( 9 ) 速度: 0 - s m h z ( a t m e g a l 2 8 l ) : 睢1 6 m h z ( a t m e g a l 2 8 ) 。 2 2 芯片播述 2 2 1 芯片螭构 a v r 核将3 2 个工作寄存器和丰富的指令集连接在一起。所有的工作寄存器都与 a l u 算术逻辑运算单元直接相连,允许在一个时钟周期内执行的单条指令,同时访问 两个独立的寄存器。这种结构提高了代码效率,使a v r 得到了比普通c i s c 单片机高 将近l o 倍的性能。 a q y n e g a l 2 8 主要内部结构包括:1 2 8 k 字节具备写操作时可读( r w w ) 的在系统 可编程f l a s h ;4 k 字节e e p r o m ;4 k 字节s r a m ;5 3 个通用f o1 2 ;3 2 个通用工作 寄存器;实时计数器( r t c ) ;4 个具有比较模式和p w m 的定时器、计数器;2 个u s a r t : 一个两线串行接口( t w i ) ;8 通道1 0 位具有可选增益差分输入的a d 转换器;一个 带内部振荡器的看门狗定时嚣;一个s p i 口;一个符合砸e e1 1 4 9 1 标准的j t a g 测 试接口,也可用于访问d e b u g 系统和编程;6 种可通过软件选择的省电模式。 对于6 种省电模式,说明如下:工作于空闲模式时,c p u 将停止运行,而s r a m 、 5 2 a t m e g a l 2 8 芯片介绍 硕士论文 定时器、计数器、s p i 口和中断系统继续工作;掉电模式时,振荡器停止工作,所有 功能都被禁止,而寄存器内容锝到保留,直到下一个外部中断和硬件复位才退出此状 态;省电模式时,异步定时器继续工作,以使用户能在芯片的其余部分处于休眠状态 时保持定时器基准;a d c 噪声抑制模式除异步定时器和a d c 继续工作外,停止c p u 和所有的 o 单元,以较少a d c 转换时的开关噪声;待命模式中除晶振工作夕 ,芯 片的其余部分处于休眠状态,这就使得在低功耗得情况下能非常快的启动;在扩展待 命模式中,主振荡器和异步定时器继续工作。 芯片是以a t m e l 的高密度非易失性内存技术生产的。f l a s h 程序存储器可以通过 s p i 串行接口、通用编程器或运行于a v r 核上的片内b o o t 程序,多次编程。b o o t 程序可以用任意的接口下载到应用f l a s h 程序存储器中。当应用程序区被更新时, b o o t 区的软件将继续运行,提供写操作时真正可读的功能。通过将增强的r i s c8 位c p u 与f l a s h 集成在一个芯片内,a t m e g a l 2 8 为许多嵌入式应用提供了灵活而低成 本的方案。在本设计中,c 编译器采用i c c a v r 编译软件,调试和仿真采用a v rs t u d i o 软件。 2 2 2a y r 的c p u 棱 c p u 核的主要功能是确保程序的正确执行,因此,c p u 必须能够访问存储器、 执行算术逻辑运算、控制外设以及处理中断。 为了最大限度地提高性能及并行性,a v r 的c p u 核采用哈佛结构,用独立的总 线分别访问程序空间和数据空间。程序存储器中的指令通过单级流水线进行访问,即 当执行某条指令时,下一指令被预先从程序存储器中取回。这使得指令可以在每个 时钟内被执行。程序存储器为在系统可编程的f l a s h 存储器。 快速访问寄存器堆中包含有3 2 个8 位的通用工作寄存器,它们可在一个时钟周 期内被访问,这便使单周期的a l u 操作成为可能。典型的a l u 操作是这样的:选取 寄存器堆中的两个作为a l u 运算的输入,执行运算,将结果保存到寄存器堆中,这 些操作均在一个指令周期内完成。 在3 2 个通用寄存器中,有6 个( 称为x ,y ,z 寄存器) 可以作为数据空间间接 寻址的寄存器指针,这就使得高效的地址运算成为可能。其中,z 寄存器还可以作为 对程序空间中查找表进行间接寻址的寄存器指针。 a l u 支持寄存器之间以及寄存器与常量之间的算术和逻辑运算,同时,单寄存器 操作也是允许的。在每次算术运算之后,状态寄存器将被更新以反映该操作。 可以通过条件以及非条件跳转和调用指令改变程序流程,并能通过此方式盥接寻 址整个地址空间。大多数指令具有1 6 位的字格式,每个程序地址包含有1 6 3 2 位的指 令。 南京理工大学硕士学位论文调制解调器监控电路设计与实现 f l a s h 空间被分为两段:引导程序段和应用程序段。每段都有专用的锁定位进行 读写保护。s p m 指令可对应用程序段进行写操作,但它必须处于引导程序段之中。 当发生中断或子程序调用时,返回地址保存在堆栈当中。由于堆栈分配在通用数 据s r a m 当中,因此它将受限于s r a m 的大小及其使用情况。在复位程序中,用户 必须在中断和子程序调用之前初始化s p ,s p 可以通过访问片内i o 空间的形式进行 访问。数据s r a m 可以通过a v r 提供的五种不同的寻址方式被访问。 对于可屏蔽中断模块而言,它既受位于y o 空间中的控制寄存器影响,也受制于 状态寄存器中的全局中断使能位。所有的中断均各自对应于中断向量表中的中断向 量,中断优先权决定于它们在中断向量表中的位置,中断向量地址越低,优先权越大a 2 。2 3 引脚鬻量 a t m e g a l 2 8 的引脚配置见圈2 i a 圉2 1a t m e g a l 2 8 的引脚配置 引脚定义: v c c 、g n d :电源,地。 a 口( p a t 。p a 0 ) :a 口是一个双向i o 口,每一个引脚都有内部可选上拉电阻- 2 a t r m g a l 2 8 芯片介绍 硕士论文 a 口的输出缓冲有对称的驱动特性,包括输入和输出电流。当作为输入时,如果外部 被拉低,由于上拉电阻的存在,引脚将输出电流。在复位过程中,a 口为三态。 b 口( p b 7 p b o ) ,c 口( p c 7 一p c 0 ) ,d 口( p d 7 一p d 0 ) ,e 口( p e 7 p e 0 ) ,c 口( p f 7 p f 0 ) ,g 口( p g 4 - p g 0 ) 作为通用i o 口的功能大致如a 口,但它们各自 都有特殊用途,只要配置相应的寄存器,这些引脚就不再作为通用并行口,而有了其 他功能,这便是a v r 单片机的引脚复用的实例。 r e s e t :复位输入引脚。即使晶振还未起振,超过最小脉冲宽度的低电平将引起 系统复位,低于最小脉冲宽度的脉冲不能保证系统的可靠复位。 x t a l l :反向振荡放大器的输入和内部时钟工作电路的输入。 r a l 2 :反向振荡放大器的输出。 a v c c :a v c c 是f 口和a d 转换器的电源端。即使不使用a d c ,也应外接到v c c 端:如使用v c c ,应该通过一个低通滤波器与v c c 连接。 p e n :串行下载的编程使能信号。上电复位时通过保持p e n 为低电平,芯片会进 入s p i 串行编程模式。正常操作时无任何功能。 南京理工丈学顼士学位论文调南g 解调器监控屯路设计与实现 3 利用u s a r t1 3 实现与主控机的通信 3 1 1u s 盯扮特点及其主要部件 a t m e g a l 2 8 单片机带有两个全双工的通用同步异步串口收发器 ( u s 删,u s a r t l ) ,在本次设计中只用了u s a r t 0 。u s a r t 模块的主要特点如下: ( 1 ) 全双工操作( 异步发送和接收寄存器分开) ; ( 2 ) 异步和同步操作; ( 3 ) 两精度波特率产生; ( 4 ) 支持的串行帧格式包括5 、6 、7 或8 个数据位以及l 或2 个停止位; ( 5 ) 能产生奇偶校验位并提供奇偶校验的硬件支持; ( 6 ) 数据溢出检测; ( 7 ) 帧错误检测; ( 8 ) 噪声滤除功能包括:伪起始位检测和数字低通滤波; ( 9 ) 3 种中断:发送完成中断,发送数据寄存器空中断,接收完成中断; ( 1 0 ) 双倍速度的异步通信模式。 a t m e g a l 2 8 的u s a r t 模块有3 个主要部件:时钟产生器,发送器,接收器。这 3 部分均受异步串口的控制寄存器所控制。时钟产生逻辑包括关于外部输入时钟的同 步逻辑以及波特率产生器。发送模块由一个写缓冲,一个移位寄存器,奇偶校验位产 生器以及用来处理不同帧格式的控制逻辑所组成,其中写缓冲允许帧之闻无延时的连 续数据传输。接收模块因其时钟和数据恢复单元而成为u s a r t 的最为复杂的模块。 它的恢复单元用于异步数据接收,除此之外,它还包含有一个奇偶校验器,控制逻辑, 一个移位寄存器和两级接收缓冲( u d r ) 。接收器支持的帧格式和发送器相同,并且 它还能检攫i l 帧错误,数据溢出和奇偶校验错误。 3 1 2 波特率产生 u s a r t 的时钟产生逻辑为发送模块和接收模块提供时钟源。a t m e g a l 2 8 的 u s a r t 模块提供4 种模式的时钟操作:正常异步模式;双速率异步模式;主同步模 式;从同步模式。u s a r t 控制和接收状态寄存器c ( u c s r c ) 中的u m s e l 位用于 选择两步和异步模式,u c s r a 中的u 2 x 位用于选择双速率模式。x c k 引脚仅当取 同步模式时才有效。 一9 一 ! 型望! ! 垒墨! 里壅翌兰差篓塑塑翌堕 堡主堡兰 波特率寄存器( u b r r h :u b r r l ) 和与之相连的a t 计数器用来进行预分频或 波特率产生。向下计数器以f o s c 为时钟进行工作,每当它计数到0 或当u b r r l 被写 入时,它将载入u b r r 的值。每当该计数器计数到0 时,产生一个时钟脉冲。波特率 产生器的输出直接用于接收机的时钟和数据恢复单元。在正常的异步模式下,波特率 的计算公式如下,其中,u b r r 为寄存器u b r r i - i 和u b r r l 的内容,b a u d 为所求 波特率,单位是比特每秒( b p s ) : b a u d :翌兰 3 1 ,3 轼格式 串行数据帧定义为若干比特的字符型数据加上同步比特( 起始位和停止位) ,另 外还可选择加上一个用于校验的奇偶校验比特,示意图见图3 1 。u s a r t 支持下述位 域的3 0 种组合为合法的帧格式: ( 1 ) 1 个起始位 ( 2 ) 5 ,6 ,7 ,8 或9 个数据位: ( 3 ) 无校验,1 个奇校验位或1 个偶校验位; ( 4 ) 1 个或2 个停止位。 司竺旺日丑正匝正i 砸 图3 1u s a r t 串行数据帧格式 3 1 4u s 棚寄存器及其关键位的说明 关于u s 心r 的寄存器“”“包括:数据寄存器u d r ,控制和状态寄存器a ( u c s r a ) ,控制和状态寄存器b ( u c s r b ) ,控制和状态寄存器c ( u c s r c ) ,波特 率寄存器u b r r h :u b r r l 。发送移位寄存器祁接收移位寄存器不受用户直接控制, 所以并未列出。 u s a r t 的发送数据缓冲寄存器和接收数据缓冲寄存器虽不是同一个寄存器,却 公用一个i o 地址,即u d r 所指向的地址。当向u d r 位置写数据时,实际的目的寄 存器为真正的发送数据缓冲( t x b ) ,当从u d r 读数据时,实际是从接收数据缓冲 ( r x b ) 中取数。对于5 ,6 或7 位的字符,u d r 中的高位将被发送器忽略并被接收 器置0 。当u c s r a 中的u d r e 位被设置时,才能向u d r 中写数,否则写入操作将 被发送器忽略。当向发送寄存器中写数并且发送被使能,若此时发送移位寄存器为空, 发送器将自动把数据载入发送移位寄存器,然后数据将从t x d 脚串行发送出去。接收 南京理工大学硕士学位论文调制解调墨监控电路设计与实现 缓冲由两级f i f o 组成。每当接收缓冲被访问后,f i f o 都将改变状态。由于接收缓冲 的这一行为模式,不应对其使用s b i 和c b i 指令。在使用位测试指令( 如s b i c 和 c b i s ) 时也应特别小心,因为这也会改变f i f o 的状态。 u c s r a 的位名称即相应位置见图3 , 2 。下面就其中的常用位r x c ,t x c ,u d r e , u 2 x 进行分析。当接收缓冲u d r 中有未读数据或当其中为空却被清零时r x c 位( 接 收完成位) 将被设置;如果接收被禁止,接收缓冲将被清洗从而导致r x c 位清零; r x c 而可用来产生接受完成中断。当发送移位寄存器中的整个帧被移出并且当前的发 送缓冲u d r 中无新数据时,t x c 标志位将被设置;当执行接收中断或向t x c 位置 写l 时,t x c 位会被清零:t x c 标志位可产生接收完成中断。u d r e 标志位用以指 示发送缓冲u d r 是否准备接收新数据:如果u d r e 为1 ,就表明u d r 为空并且准备 接收新数据;u d r e 标志位可以产生数据寄存器空中断。u 2 x 位仅对于异步操作有效, 若要执行同步操作,应将该位置l ;在异步模式下,将该位置1 会使波特率分配因子 从1 6 减少到8 ,从而使异步通信的传输速率加倍。 a0 图3 2u c s r a 关于u c s r b 寄存器,它的常用比特是:r x c i e ,t x c i e ,u d r 砸,r x e n ,t x e n , u c s z 2 。r x c i e 是异步接收完成中断使能位;如果r x c e 位为1 ,寄存器s r e g 中 的全局中断标志位为1 ,并且u c s r a 中的接收完成标志r x c 也为1 ,将会产生u s a r t 异步串口接收中断。t x c i e 是异步发送完成中断使能位;当t x c i e 位,s r e g 中的 全局中断标志位以及u c s r a 中的发送完成标志t x c 位均为1 时,将会产生u s a r t 异步串口发送中断。u d r i e 时u s a r t 数据寄存器空中断使能位;当u d r i e 位,s r e g 中的全局中断标志位以及u c s r a 中的u d r e 位均为1 时,将会产生u s a r t 数据寄 存器空中断。r x e n 为发送器使能位,t x e n 为接收器使能位,将它们置1 可以屏蔽 相应o 的通用i o 功能,将其复位又能恢复相应端口的通用i o 操作;当要使用 u c s r a 模块时,应将它们置为1 。u c s r b 中的u c s z 2 与u c s r c 中的u c s z l :u c s z 0 组合,以确定发送和接收的帧当中字符数据位的比特长度,具体见表3 1 。u c s r c 的 位名称及相应位置见图3 3 。 oo ono ooo 图3 3u c s r b 3 利用u s a r t 口实现与主控机的通信硕士论文 袭3 1 符号数据比特数选择 u c s z 2 u c s z l u c s z 0符号大小( c h a r a c t e rs i z e ) 000 5 比特 00l 6 比特 010 7 比特 o 11 8 比特( 本设计采用此模式) 1o0 保留 1o1 保留 ll0 保留 ll1 9 比特 u c s r c 的位结构图见图3 4 ,现在就对该寄存器的各位进行描述。u s e l 用以 选择u s a r t 的工作模式;该位取1 时选择异步方式,取0 时选择同步方式。位域u p m l : u p m o 用以使能奇偶校验并确定奇偶校验的模式,详见表3 2 ;在校验使能的情况下, 发送器自动产生并发送奇偶校验位,与此相对应,接收器将根据所接收的数据产生奇 偶校验位,再与u p m o 的设置相比较,如果不匹配,u c s r a 中的u p e 标志将被设置。 u s b s 选择发送器插入的停止位个数,若u s b s 为0 ,则停止位是1 比特,若u s b s 为l ,则停止位是2 比特。u c s z l :u c s z o 与寄存器u c s r b 中的u c s z 2 组合,确 定数据比特的长度,如表3 1 所示。 000o0l10 图3 4u c s r c 袁3 2 奇偶校验模式选择 u p m lu p m o奇偶校验模式( p a r i t ym o d e ) 00 禁止( 本设计采用此模式) ol保留 1 0使能,偶校验 11 使能,奇校验 t i c s r c 关于u s a r t 波特率寄存器,u b r r h 只有低4 位可用。对于标准的晶振频率, 常用的波特率可通过查表确定相应的u b r r 值。有时根据u b r r 值算出的波特率与 实际所需的波特率有一定差距,小于0 5 的误差是允许的,但是接收器的抗噪性能将 随着误差的增加而减弱。误差值计算公式如下: e r r o r ( 丝鲣! 丝虹幽幽一1 0 0 b a u d r a 。 k l 。 南京理工大学硕士学位论文调制解讽墨监控电路设计与实现 3 2i i s a i i t 的初抬化 在串行通信开始之前,u s a r t 模块需要进行初始化工作。初始化过程通常包括 设置波特率,设置帧格式以及根据具体使用情况使能发送和接收模块。对于有中断驱 动的u s a r t 操作,必须保证串口初始化之前关闭全局中断标志位,否则有可能触发 不需要的中断操作。当精改变帧格式和波特率而要重新初始化之前,必须保证当时无 正在进行的发送操作。必须注意,当用查询方式进行异步发送时,必须在每次通信前 ( 即u d r 被写入之前) 将t x c 标志位清零。 在此次设计中,仅使用u s a r t 0 口,但它的发送模块和接收模块都要用到,指定 的串行帧格式和波特率设置如下: ( 1 ) 符号数据长度为8 比特; ( 2 ) l 位停止位; ( 3 ) 无奇偶校验; ( 4 ) 波特率为1 9 2 k b p s ,a v r 工作时钟是4 m h z ,通过查表确定u b r r 的值 为1 2 。 由于系统中存在两路异步串口收发操作,要求两路的t x d 引脚相与,因此需使 t x d 引脚在闲置状态下保持为高电平,这就要求一开始就设置u c s r b 寄存器中的 t x e n ( 发送使能) 位。 设计中对于串口接收采用中断方式,对于串口发送却以查询方式进行。 根据以上安排,相应的控制寄存器设置见表3 3 。 表3 3u s 越盯初始化设置 比特域位值描述所在寄存器 1 x co 首次通信前复位t x c u c s r a u 2 x0 正常异步模式 u c s r a r x c 1 中断方式进行异步接收操作 u c s r b r x e n1 使能接收模块 u c s r b t x e n1 使能发送模块 u c s r b u c s z0 1 1 8 位字符长度 u c s r b ,u c s r c u m s e lo异步操作u c s r c u p m 0 0 无奇偶校验 u c s r c u s b s0 1 比特停止位 u c s r c 对应于表3 3 中的设置,下面就给出u s a r t 0 口初始化操作的c 源代码 u c s r o b - - - o x 0 0 ; u c s r o a = o x 0 0 ;t x c 位清零 3 利用u s a r t 口实现与主控机的通信硕士论文 u c s r o c = 0 x 0 6 ; 8 位数据位,l 位停止位,无校验 u b r r o l = 0 x 0 c ; f 设置波特率为1 9 2 k b p s ( 内部时钟为4 m h z ) u b r r o h = 0 x 0 0 ; u c s r o b = 0 x 9 8 ;,一开始就打开发送使能,是为了使t x d 脚电平变高 根据实际要求查芯片资料以确定相应位的设置,这种方法虽然可取,但当某个模 块的寄存器较多,丽寄存器的位也较多时它又往往是根繁琐的。在实际应用中,又往 往需要改变某一模块的工作模式,如果很长时间末接触该模块,难免对其寄存器各位 的功能就生疏起来,重新学习和应用既费时又乏味。针对这一问题,用户可以利用 些软件来加快寄存器设置的速度,i c c a v r 软件中就提供了一种设置寄存器的应用向 导。具体操作方法如下:首先打开i c c a v r 软件,点击“t o o l s ”菜单中的“a p p l i c a t i o n b u i l d e r ”命令或直接点击工具栏中的快捷图标,就可以打开应用构筑向导对话框; 点击c p u 选项,设置目标器件和系统频率,见图3 5 ;点击u a r t 选项,就可以方便 而直观的对u s a r t 串口的相关寄存器进行设置了,设置结果见图3 6 ;设置完成后, 单击“o k ”按钮就可以产生相应的寄存器配置文件( c 语言格式) ,你可以选择其中 有用的部分复制到你的工程当中。 一1 4 圈3 5 用a p p l i c a t i o nb u i l d e r 设置c p u 南京理工大学硕士学位论文调制解调器监控电路设计与实现 图3 6 用a p p l i c a t i o nb u i l d e r 产生设置u a r t 的源代码 3 3 以中断方式实瑷u s a r t 的异步接收 3 3 1 单字节接收 在初始化完成之后,就可以利用异步串口进行通信了“。在本次设计中,异步接 收采用中断方式实现。由于异步接收操作在整个程序运行期间都有效,通过出断方式, c p u 就不必一直查询r x c 位以检测接收是否完成,而可以转而进行其他操作。要进 入异步接收中断,应设置u c s r b 中的r x c i e 位,s r e g 中的全局中断标志位为1 , 这些工作已在前面的初始化过程当中完成了。以此为前提,当一个串行数据帧收完之 后,u c s r a 中的r x c 标志被设置,a v r 的中断控制模块自动使程序转到串口接收 中断的入口处执行中断服务程序。 用i c c a v r 编程,要想进入某一中断,应在头文件“i o m l 2 8 w h ”中找到该中断 对应的中断向量号,再于c 程序中用# p r a g m a 伪指令说明。比如,u s a r t o 异步接 收中断对应的中断向量号是1 9 ,对应的中断子程序入口为u s a r t o _ r e c e i v e ,则相应的c 程序中的说明语句是: # p r a g m ai n t e r r u p t _ h a n d l e ru s a r t 0 _ r e c e i v e :1 9 在中断予程序u s a r t 0 3 e c e i v e 中,应读取接收缓冲u d r 中的内容,对于单字节接 收其最简单的形式为: 3 利用u s a r t 口实现与主控机的逼信硕士论文 v o i du s a r f f ) _ r c c e i v e ( v o i d ) b u f f e r = - u d r 0 ; 1 这样串口数据被接收并存于变量b u f f e r 当中,同时u c s r a 中的接受完成标志位 r x c 被清零。从而允许新的数据接收。 3 3 2 命令峻接收当中的向曩 本次设计当中,a t m e g a l 2 8 作为本地系统监控,它接收主控机的命令,并根据需 要发送回复命令至主控机。接收和发送的命令遵从同一格式,含有多个字节。如何高 效而准确地接收全部命令字节,首先在于对通信所采用的命令结构和接收要求进行透 彻的分析。本次设计要求传输的命令格式见图3 7 ,其中规定如下: ( 1 ) “帧头”和“帧尾”分别为o x 7 e ;帧头和帧尾之间特殊信息的编码: o x 7 e 编码为o x 7 d 、o x 5 e , 0 x 7 d 编码为0 x 7 d 、o x 5 d 。 ( 2 ) “长度”为l 字节,仅计算从信息字节( 含) 到校验字节( 含) 的所有内 容,且为加入转义字符以前。 ( 3 ) “校验”为l 字节,是从地址字节( 含) 到校验字节前所有字节的累加和 校验( 舍去高位) ,且为加入转义字符以前。 ( 4 ) 命令发送要求:主机、4 个从机发送命令数据每个字符之间的时间间隔要 求小于5 m s ,如果超出此时间要求,认为此命令非法。 ( 5 ) 命令响应时间:主机给从机发送的命令,如果要求从机进行响应,则从机 应在l o o m s 内发送响应命令,否则,认为从机故障。 羔、 。 。o k ;、$ 疹:、 眵帧头| 1 热鹅她地j f 长度譬,信息:鞋 霆验馨:蝴象? fo 蟹7 辍,瞵礴畸。4 h 字甍糍印蹿蔫一 、讶啼1 ”。壤蕺 一 、t 。乳聱:。弘、警鬟巅l j 鞭人? ,。:薯# 。、f 孽:,。 一4 溪t 。, 茹、: 1 ,寒l i ;辩, 命令内窨 一。 o 7 、_ ?;鳢节 _ 萋嚓第o 。 图3 7 传输的命令帧格式 堕塞墨三奎兰堡主鲎垒笙奎 受型竺塑曼苎叁皇堕垦生兰壅墨 在这次设计中,有两个从枫,它们分别是业务m o d e m 和t d m 单收m o d e m 。 业务m o d e m 对应的从机地址是0 x 5 f ,t d m 单收m o d e m 对应的从机地址是0 x 6 f 。 本文主要以业务m o d e m 为例来说明命令的接收过程。 由前面对命令帧的描述可知,正确接收命令的关键之一在于对其中长度字节的正 确接收并合理利用。只有正确地接受了长度字,才知道后面还有几个字节没有收到, c p u 应等待多长时间进行后面字节地接收完成。只有当一个命令当中的所有字节均被 接收以后,单片机才能进入后续处理,如判断命令格式是否正确从而跳到相应的错误 处理程序,命令接收正确又要根据信令代码跳到对应的命令处理子程序。 正确接收命令的另一个关键是对转义字符的合理判断。由于长度字节仅计算h i ? - 转入字符以前的信令字节和校验字节的长度之和,如果捕获到转义字符,就应该修改 前面所收的长度字节以使后面的接收能够顺利完成。后期校验字节的比较也是个问 题,因为命令中的校验字节仅计算了加入转入字符以前的地址字节和信令字节的内 容。 还有一个问题就是命令帧可能会出错“”。尽管利用a v r 与主控机

温馨提示

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

评论

0/150

提交评论