(电路与系统专业论文)嵌入式专用mcu设计与实现.pdf_第1页
(电路与系统专业论文)嵌入式专用mcu设计与实现.pdf_第2页
(电路与系统专业论文)嵌入式专用mcu设计与实现.pdf_第3页
(电路与系统专业论文)嵌入式专用mcu设计与实现.pdf_第4页
(电路与系统专业论文)嵌入式专用mcu设计与实现.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

(电路与系统专业论文)嵌入式专用mcu设计与实现.pdf.pdf 免费下载

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

文档简介

西北大学硕士学位论文:嵌入式专用m c u 设计与实现 摘要 微控制器在嵌入式系统中的应用r 趋广泛,应用环境对微控制器的实时性要求 也越来越高。本文设计完成了一种针对嵌入式系统实时控制,并兼容m c s 5 1 指 令集的m c u 。 m c u 结构上采用二级指令流水线,分别通过采用哈佛总线结构和先行控制、 分支预测等方法解决了流水线的数据相关和控制相关问题。为提高m c u 的控制能 力,设计实现了八个8 位输入输出口,并且为实现高效的实时控制功能,设计有 2 8 个中断源( 包括2 2 个外部中断源) 和1 4 个中断向量( 包括8 个外部中断向量) , 并采用了多中断源的增强型中断控制器。同时设计有两个通用异步串行口、3 个定 时计数器和用于监控程序运行的监视定时器。 整个设计采用v e r i l o g h d l 自顶向下的j 下向设计方法,通过可综合风格的r t l 代码设计完成了m c u 的代码编写,同时也完成- f n 试台代码的编写。使用k e i l 编译器对汇编及c 语言测试程序进行编译,将机器码在测试台上对m c u 的功能 加以验证。通过逻辑综合和门级仿真得到了可用的门级网表,最后采用自动布局 布线工具初步完成了版图设计。 关键字:m c um c s 51 指令流水线中断控制器v e r i l o gh d l 逻辑综合自 动布局布线 西l 大学磺士学位论文:嵌入式专用m c u 设计与实现 a b s t r a c t n o w a d a y s ,a p p l i c a t i o n so f m i c r o c o n t r o l l e r ( m c u ) i ne m b e d d e ds y s t e m sh a v eb e e n w i d e l yd e v e l o p e da n d t h ee n v i r o n m e n t sr e q u i r em c ut oh a v eh i g h e rf e a t u r eo f r e a lt i m e i nt h ep a p e r , a n8 - b i tm i e r o c o n t r o l l e ri sd e s i g n e da n di m p l e m e n t e d 。t h em i c r o c o m r o l l e r i su s e da sar e a lt i m ec o n t r o l l e ri ne m b e d d e ds y s t e m sa n di t si n s t r u c t i o ns e ti s c o m p a t i b l ew i t ht h a to f m c s 一5 1s e r i e s 秘狞d e s i g na d o p t st w o l e v e li n s t r u c t i o np i p e l i n e ss t r u c t u r e 。董bp r o b l e m so f s t r u c t u r ec o r r e l a t i o na n dd a t ac o r r e l a t i o nh a v eb e e nr e s o l v e db ya d j u s t i n gt h em e m o r y s t r u c t u r e ,u s i n gl o o k a h e a dc o n t r o la n db r a n c hp r e d i c t i o n e i g h t8 - b i ty o sa r eu s e dt o i m p r o v et h ec o n t r o la b i l i t y 。i no r d e rt og e th i g hp e r f o r m a n c eo f r e a lt i m ec o n t r o l ,t h e m i c r o c o n t r o l l e rh a sa b u n d a n tr e a lt i m ec o n t r o lr e s o u r c e s ,i n c l u d i n g2 8i n t e r r u p t r e s o u r c e s ( 2 2e x t e r n a li n t e r r u p tr e s o u r c e s ) a n d1 4i n t e r r u p tv e c t o r s ( 8e x t e r n a li n t e r r u p t v e c t o r s ) ;e s p e c i a l l y , e n h a n c e di n t e r r u p tc o n t r o l l e rw i t hm u l t i p l ei n t e r r u p tr e s o u r c e s i s d e s i g n e d i na d d i t i o n ,t h em i c r o c o n t r o t l e ra l s oh a st w of u l l + d u p l e xs e r i a lp o r t s ,t h r e e t i m e r c o u n t e r sa n daw a t c hd o gt i m e ru s e dt oi n s p e c tt h er u n n i n go f p r o g r a m t h ed e s i g np r o c e s si sp e r f o r m e dt o pd o w nu s i n gv e r i l o gh d l t h ew h o l em c u c o r eh a v e b e e nc o d e df o rs y n t h e s i si nv e r i l o gh d l 。t h et e s t - b e n c hi sa l s oc o d e d h e r e t h eb i n a r ym a c h i n ec o d ei so b t a i n e db yc o m p i l i n ga s s e m b l ea n dc l a n g u a g et e s t p r o g r a mu s i n gk e i lc o m p i l e r f u n c t i o nh a sb e e nv e r i f i e db yt e s t i n gt h em a c h i n ec o d e o nt h et e s t - b e n c h a v a i l a b l eg a t en e t - l i s th a sb e e ng o t t e nb yl o g i cs y n t h e s i sa n dg a t e l e v e lv e r i f i c a t i o n u s i n gt o o l so f a u t op l a c e & r o u t e , t h e l a y o u th a sb e e np r i m a r i l y f i n i s h e d k e y w o r d s :m c u m c s 一51 i n s t r u c t i o n p i p e l i n ei n t e r r u p tc o n t r o l l e r v e r i t o gh d l s y n t h e s i s p l a c e & r o u t e r 西北大学学位论文知识产权声明书 零久完全了鲻学姣鸯关爨护翅说产奴懿煺定,靼:磷究生在校攻读学盈凝阂论文 工作的知识产权单位属于磋北大学。学梭有权保留并向国家商关部门或机构送交 论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存帮汇编本学位论文。同时,本人僳证,毕韭后缩合学位论文研究谦题再撰 麓静文章一建注弱露卷蕈位为西蔻大学。 僳寮论文待解密后 学位论文作者签名 亟北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的磋究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,本论文不包含冀 他人已经发表或撰写过的研究成果,也不包古为获得两北大学或其它教育机构的 学位或诞书而经蠲过静榜科。与我一藏工作的| 弼志对本研究所傲韵经 可贡献均已 农论文中 擘了明骥款蓖暖并表示爨塞。、 娥燃:弗节瑶 埘年6 月f o f 1 鲤 巫一 j 似 呱胪音拍妒磐 第一章概述 第一章概述 随着微电子制造及其设计技术的发展,单个芯片上能包含的晶体管资源越来越 多,集成电路e d a 工具的使用,使得微芯片设计不断向着高集成化、高智能化的 方向发展。微控制器的设计也在结合了现代数字设计方法后发生了巨大变化。 i i 微控制器的现状和发展 微型计算机是大规模集成技术发展的直接产物,属于第四代计算机。自从1 9 7 1 年微型机问世以来,随着大规模集成技术的不断发展,导致微型机向两个主要方 向发展:一个是向高速度、高性能的高档方向发展;另一个是向稳定可靠、体积 小、价格低的微控制器方向发展p 】。 微控制器中最具典型性的当属i n t e l 公司的m c s 一5 l 系列。m c s 一5 1 是在m c s 一4 8 的基础上于8 0 年代初发展起来的,虽然它仍然是8 位机,但其功能较m c s 一4 8 有 很大的增强。在i n t e l 公司推出m c s 一5 1 不久便实施了技术开放政策,在众多电器 商、半导体商的积极参与下,将m c s 一5 1 发展成众多型号系列的8 0 c 5 1 m c u 家族。 m c s - 5 1 以经典的体系结构、极好的兼容性和i n t e l 公司的开放政策不仅使众多厂 家参与发展,促使半导体厂家在功能上做了一系列改进,而且使得m c s - 5 1 兼容机 能以不变的指令系统、基本单元的兼容性保持着8 0 5 1 内核生命的延续,并在未来 s o c 发展中,担任8 位内核的重任i l “。 随着半导体技术的发展,8 位机在c p u 结构、c p u 外围、功能结构、外围接口 方面都有了迅速的发展,例如p h i l i p s 公司的5 l 系列和c y g n a l 的c 8 0 5 1 f 系列。 同时1 6 位、3 2 位微控制器也在不断的发展壮大,尤其在高端市场中更能显出3 2 位机的优势。 在整个微控制器市场上8 位和3 2 位机占有较大的份额。8 位机的市场最为庞 大,而3 2 位机崛起速度最为迅速。由于8 位m c u 长期在市场中占有主导地位, 在工业控制、汽车、家电等领域都得到了广泛的应用,因此它具有品种全、兼容 性强、软硬件资料丰富等特点。在很长的一段时间内,8 位微控制器的应用将会得 到更大程度的普及。而针对某些的特殊应用场合,通用微控制器往往难以胜任, 故专用微控制器的设计也是微控制器发展的一个重要趋势。 西北大学硕士学位论文:嵌入式专用m c u 设计与实现 在微控制器程序设计方面,主流程序设计方法已经从汇编过渡到高级语言( c 语言) 。由于经典m c s 5 1 微控制器及其兼容机在8 位机市场长期处于主流机型, 人们在使用过程中积累了大量的设计经验,相应的开发工具也较为完善。尤其是c 语言编译器( k e i lc 5 1 ) 已相当成熟,使高级语言程序设计可以顺利的在微控制 器上实现,同时c 语言在模块化、可移植性、可维护性等方面的优点极大的提高 了程序开发效率和产品上市时间。 1 2 现代数字设计方法概述 数字电路设计的经典方法是依赖于电路原理图的人工设计方法,但随着集成电 路设计规模的不断扩大,设计复杂度越来越高,电路原理图设计方法难以保证设 计的工f 确性。对大规模复杂电路的设计,往往采用基于硬件描述语言( h d l ) 的现 代数字设计方法。 基于硬件描述语言的设计方法简便而且独立。它允许设计者根据工艺的改进情 况来改变或更新自己的设计。随着器件物理尺寸的缩小,更密集、具有更高性能 的电路仍能通过已有的基于h d l 的模型进行综合设计 引。基于h d l 的综合方法最显 著的意义在于能够通过基于语言的描述,对正在进行设计的电路自动进行综合, 而不用经历人工设计方法中许多费力的步骤。基于h d l 的综合方法是现代工业上 采用的主流设计方法。设计者可以通过构建一个软件原型或模型来验证其功能, 然后利用一种综合工具自动对所设计的电路进行优化,并且可以创建一个针对物 理实现的网表( n e t l i s t ) 。 h d l 和综合工具的具体应用都着眼于工程师有关功能设计的思想,它们的出发 点并不是具体的晶体管或逻辑门,而是用这些工具去完成电路综合设计,所设计 的电路能够达到要求的功能特性,且满足面积、性能的限制条件【4 】。 h d l 可作为各种不同的工具平台使用,用来完成设计输入、设计验证、测试生 成、故障分析和模拟、定时分析、校验,以及原理图的自动生成等任务。这种较 宽的覆盖范围使得设计通过工具链路时,出于不再需要设计描述的翻译过程而大 大提高了设计流程的工作效率。 篱一爨概述 1 3 微控制器的体系结构 微控糊嚣属于计算梳的个分支。微控裁器多为单芯片结鞠,毽片上集成了包 括a u j 、译码器、存储器、i o 口等级成计算机的功能部件”1 ,正是这个原因微控 制器也被称l 乍单片枫。 酉翁,微控裁器静体系结构可阻分为两静类羹:冯诺依曼结构帮哈裙结构。 冯诺依曼结构有如下特点: 1 存储嚣是字长固定、顺序线性缡蛙的一维终掬。 2 。存储器提供可按趣缱访问的一级地址空蠲,每个地址楚潦一定义的。 3 幽指令形式的低级机器语言驱动。 4 ,指令顺序执行,即一般按照攒令在存键器中存放的顺序执行,程序分支出 转移指令实现。 5 以邀算器为中心,输入输出设备与存储器之间的数据传送都途经运算器。 运算嚣、存储器、输入输出设备蛇操作以及它们之闻的联系都出控割器集中控 割。 图l 1 冯诺依曼结构 杰晗绨绩梭中,典型懿骜点是数攥存镰与程_ | 挚存馕分荛嚣块存懿嚣,龛诲蠢嚣 个同时避行的取存操作。这样,哈佛结构实际遐以面积增加为代价获得较高的速 度【2 】o 哈佛结构多用于d s p 和微控制器中。 | 熬严 叫控澍器| 存储器 l 1 1 _ j i 兰芝兰卜 c p u l 。4 主要工作和设计内容 豳1 2 哈佛结构 在深入分析经典5 1 微控制器设计结构,结台现有微控制器及i p 核设计的基础 西北大学硕士学位论文:嵌入式专用m c u 设计与实现 上,针对嵌入式实时控制需要设计了增强型中断控制器、双串口结构和程序监视 定时器( 看门狗定时器) ,设计实现了一种采用m c s 一5 1 指令集,用于实时控制的 微控制器a m c 6 0 ( a d v a n c e dm i c r o c o n t r o l l e rc o r e ) 。 a 心i c 6 0 具有如下特点: 1 哈佛双总线结构 采用哈佛总线结构,对数据存储器和程序存储器分别采用不同的总线独立 寻址。对两总线设置不同的宽度,以提高总线的吞吐能力。 2 两级指令流水线结构 3 机器周期为一个时钟周期 4 三个8 位定时器 5 八个8 b i t 并行i o 口设计,最多可提供6 4 个1 0 口 6 双u a i 盯设计 7 6 个外部中断,这些中断有各自独立的中断向量 8 两个中断组,共设计有1 6 个外部中断源 9 监视定时器( 看门狗定时器) 4 第二章a m c 6 0 静结掏设计奄指令实现 第二章a m c 6 0 的结构设计与指令实现 2 1a m c 6 0 的结构 翻2 1 a m c 6 0 结构鞠 2 1 。1 指令流水线p i p el i n e 流水线方式是一种提高控制器或处理器时间并行性的脊放手段1 训,是把一个重 谣托大学硕士学位论文:嵌入式专用m c u 设计与实现 复熬过程分瓣为蓍手子避程,簿令子j 建程霄汉与荬穗子遥程露辩虢孬。采霜溅农 线技术可以在不增加硬件或增加少量硬件的情况下,把m c u 的执行速度提蕊几 倍,它是目前使用相当普遍的一种并行处理方式。 浚求线 誉为一释提高辩闯荠行往的手段,霹葭在控裁器翡各个帮分被采矮。若 指令的执行过程采用流水线方式就称作指令流水线,运算部件中的乘法器采用流 水线方式,就称作操作部件流水线。在此我们仅讨论指令流水线,有晨流水线的 其谴应用可疆参考文献f l 弼。 滚水线擞然提簿了指令的执行效率,但鄹对也增加了设计的复杂程度,并鼠不 可避免的引入了流水线的相关问题。流水线的级数越大,设计复杂度就会越大, 相关问题的解决诲虢越囊杂。戮诧,合理划分流永线的缀数是稳离设计性麓的有 效手段。 一、指令的麓叠执行 捂令的执行过程可戳分为多个阶敬,其体如帮矧分备个阶段要由设计情溅丽 定。锲翅,可以把一螯攒令豹执行过攫分为取指令、分攒括令、执季亍攒令三个除 段。指令按顺序依次经过这三个阶段的执行方式称为顺序执行方式,在一个时间 段内出多条指令处于不同阶段的执行方式称为重叠执行方式。 搬令豹顺序执行方式葶翼一次重囊执行方式如图2 。2 和2 3 掰示。 n , j - 闻 图2 2 指令的顺序执行方式 “”。“。”“+ + 时瓣 豳2 , 3 指令的一次重叠执行方式 在顺序方式下,一条指令顺序经过三个阶段后才能进行下一条指令的读取。因 建,当一条指令楚予菜一验段黪,另癸嚣令羚段熬控裂部件将楚于空阑状态,这 无疑降低了指令的执行效率。假设指令执行的三个阶段所用时自j 相同( 理想情况 第二章a m c 6 0 懿结捣设计与指令实现 下) ,都为t ,那么,n 条指令顺序执行所需要的时间t 。l 为: l = 强撑夸+ 势辑括+ 学措夺= 3 n t 而程一次重叠方式下,执行当前指令的同时取下一条指令。同样假设指令执行 的三个阶段所用时间相同,n 条指令顺序执行所需要的时间t 。2 为: 鬈2 = ( 2 n + l 罗 通过比较可以看出,重叠方式的指令执行效率比顺序方式商了很大的键离。指 令流水线的设计是基于指令重叠执行方式实现的,图2 3 所示的就是一种简单的指 令浚承线绪橡。 二、指令流水线的先行控制方式 要实现指令在重鼗执行方式下逑续运行,必须采用先行控制方式。先行控制方 式是为了镬豢令不弱毅戆重叠挟嚣,嚣采取弱一葶孛臻先读取攒令溪罴操露数豹技 术。这也是为了解决指令流水线和外围部件存取滤度之间的矛盾而设计的。 实现先行控制要解决两个问题: 1 淹了实褒取撂令、分辑撂令、虢嚣疆令溺瓣进罩亍,翥簧有瑟立黪搔令读取 部件、指令分析部件和指令执行部件。 2 解决访问存储器的冲突问题。由于在指令执行的不同阶段,可能会同时操 箨存褚嚣,麸纛弓l 越渖突。解决 孛突润题霹以遴避秉餐蚕鑫猿立缟壹兹数攒存簇 器和指令存储器( 啥佛结构) 实现。另外对于流水线级数较多的情况,在存储器 和指令执行部件之间述耍加入缓冲栈,以避免流水线的阻塞。 三、指令滚拳线熬穗荧润蘧 相关( c o r r e l a t i o n ) 是指在一段程序的相近指令之间有某种可能影响指令重叠 执行的关系【悖j 。相关问题一般分两大类:数据相关和控制相关。 1 数箍程关翊鬈 数据相关发生在本条指令执彳亍过程中所用到的源操作数恰好是上一袈指令的 目的操作数的情况下。由于本条指令的执行必须使用上一条指令的执行结聚,这 静壤嚣程流承线撬嚣遐程中必然会影翡撞令豹歪鬻运嚣。 一般解决数据相关的方法有两激: 延时执行的方法。 建立专蒡l 数攒黪径。 2 控制相关问题 西北大学硕士学位论文:嵌入式专用m c u 设计与实现 控制相关是指由于程序的运行方向可能被改变而引起的相关伸】。可改变程序运 行方向的情况有执行转移指令、子程序调用、中断等。 解决控制相关问题的方法有暂停流水线和分支预测的方法【1 9 】。暂停流水线指在 发生控制相关时,等待向流水线中装入新的指令。分支预测的方法是,首先可假 设转移不会发生,指令执行过程中如果确认转移必定发生,则丢弃已读入的指令, 执行部件保持空操作,等待新的指令码的读入:如果转移不会发生则继续执行指 令,流水线不会受到影响。分支预测也可假设转移会发生,在检测出转移指令后 立即计算转移目标地址,当转移成立时则从转移地址读取指令,不成立时则继续 流水线操作,同时丢弃转移目标地址。具体采用何种方式要视转移发生的几率而 定【1 9 】。 2 1 2a m c 6 0 的二级指令流水线实现 a m c 6 0 采用二级指令流水线结构。指令的执行过程分解成取指令( f e t c h c o d e ) 、分析指令和执行指令( e x e c u t ec o d e ) 、回写结果两个过程。在此为了分析 方便,将取指令、分析指令称为取指令过程,将执行指令、回写结果称为执行指 令过程。在指令流水线工作过程中,执行当前指令的同时取下一条指令,如图2 4 、 图2 5 。 s y s t e mc l k n mi n s t r u c t i o n ( n + 1 ) oi n s t r u c t i o n 厂 厂 厂厂 c n + z 门a s 呲t - o n - _ ( 玉三二工 图2 4 二级指令流水线( 单时钟指令) 第二章a m a 沁嚣结擒设诤与指令实现 s v s t e mc l 。c k i n s t m c t i o n t nt n ” ”“m ”n 玉正工二二二 五三二二二二二二 _ 眦严瓣一溉 j 蚤二二 圈2 ,5 二级指令流水线( 4 时钟指令) 为鳃决指令重登执行的先行控制超题,m c u 虑采用两个独立编蛙的存储器结 构,舅终在存储控制模块中设立了指令读取部俘,在译码嚣模块中设霄搬令分章厅 模块。指令读取部件的核心是一个指令缓冲器,用于暂存受执行的指令;指令分 析模块用于选择源撵作数、选择霹入地址和产生a l u 操作粥。 出予m c u 豹攒令流永线袁鼹级,在当裁搔令源操季# 数浚取豹时候,上一条指 令的执行结构已经得到,只是没有写入目标地址。因此,磁发生数据相关时,不 必停止流水线,仅将要写入的数撼赢接作为源操作数给出。 在熬决控制穗美闯蘧上,在练合多释因素的考虑下,采翔暂停流承线的方法。 在设计i 奠程中遇到的困难是条件转移的处理。假设当前所执行的指令是条件转移 指令c j n e ,该指令只蠢在执行除段) l 嘈由眈较器( c o m p a r e ) 判断出是焱需要转 移,出a l u 计算翻转移割何处,并确定执行弼一条指令。然丽当执行c j n e 时在 指令流水线中已经敬到的是c j n e 的下一条指令,如果一旦需鬻指令跳转就不得不 冻结流水线,壹到谈到需要执行浆下一条指令。因此在滚承线设计中采粥一个状 态信号m e mw a i t ,警发生p c 豹德需要改写辩m e m _ w a i t 被鬻位,同对在流水线中 插入空指令,从而进行写p c 操作。 在流水线设计过糕中采用另一令状态信号p s t a t e 表示滚水线状态( p s 掘t e 有三 种状态,p s t a t e = 0 ,2 ,3 ) 。在译码阶段将对慰指令所需要的时钟个数通过p s t a t e 标示出来,在指令执行的过程中每经历一个时钟p s t a t e 减1 ,当减到l 时启动流水 线取下一条指令。p s t a t e 视僮不为0 鲍指令共2 9 条,因此太多数指令不会阻塞流 水线。 9 透托大学颈土学位论文:嵌入式专扁m c u 设计与蜜现 2 2a m c 6 0 的指令实现 2 2 1m c s 5 1 指令系统概述 m c s 5 1 指令系统共有1 1 1 祭指令,分五大类【1 3 1 : 1 数器佟送类指令2 登条 2 。箕术逡算类指令2 4 条 3 逻辑遁算及移位类指令2 4 条 4 控制转移类指令1 7 条 5 位操侔类指令1 7 条 指令通常由两部分组成,即操作码和操作数 鲫。操作码用来规定指令进行什么 操作,商操作数剐表示指令操俸的对象。搡 擘数可能是一个其俸静数攒,氇可能 是数攒豹地撼。 m c s 一5 1 指令系统中,有一字节、二字节和三字节不同长度的指令,属于变长 指令。 m c s 5 1 撰令系统中蠢七耪嚣蛙方式: 1 寄存器寻址方式,例:m o va ,r 0 2 直接寻址方式,侧:m o va ,5 f h 3 。寄存嚣闽接寻垃,镪:m o v a , r 0 4 立即寻址方式,例:m o va ,# 5 0 h 5 位寻址方式,例:a n lc ,3 0 h 6 变壹謦蛙方茂,铡:m o v ca , a + d p t r 7 相对寻址方式,例:c j n er 0 ,# 3 0 h ,l o o p 另外要说明的怒,因为在指令操作中有从右到左传送数獬的约定,通常把旋边 懿操髂数定义旁嚣鹣搡撵数,熬蠢逮豹操 皋数糠之必溽操豫数i 孤。强上酝列出瓣寻 址方式都是针对目的操作数的。但实际上源操作数和目的操作数郜有寻址的问题。 例如:m o v r 1 ,7 a h ,其源操作数是直接寻址方式,而融的搽作数怒寄存嚣间 接寻聚方式,指令豹功畿楚怒建疆必7 a h 静存储攀元内匏数据读遗寒嚣蕴毒存器 剐接嚣址的方式写入以r l 内数据为地址的存储单元。 实际上,源操作数的浔址方式较多,目的操作数的寻址方式较少,m c s 一5 1 指 第二章a m c 6 0 的结构设计与指令实现 令系统中目的操作数的寻址方式只有寄存器寻址、寄存器间接寻址、真接寻址和 位寻址共四种方式。 2 2 2a m c 6 0 中各寻址方式的实现 a m c 6 0 系统中保留了传统m c s 5 1 体系的所有寻址方式,和m c s 5 1 做到了 完全兼容。所不同的是由于采用了指令流水线,在实现方式上有了很大的不同和 改进,因此在以下的分析过程中着重从流水线的角度来讨论。 为了实现指令的流水线操作,在存储控制器中加入了读写地址选择器,如图 2 6 、图2 7 。它的控制信号由译码器给出,用于控制读写地址选择器选择相应的源 地址和目标地址。 幽2 7 写地址选择 另外在分析过程中,主要考虑源操作数的寻址方式,虽然目的操作数也存在寻 址问题,但由于其寻址方式与源操作数类似,在此不作分析。 1 寄存器寻址方式 r a m 区中有4 组共3 2 个通用寄存器,分布在r a m 区的低3 2 个地址单元。 可以通过p s w 0 和p s w 1 来选择4 组中的任意一组通用寄存器作为当前寄存器。 寄存器寻址的实现过程是通过译码器在取指令阶段给出读r a m 地址选择信 西北大学颟士学位论文:嵌入式专翔m c u 设计实现 号,同时由指令妈的低三位和p s w 0 、p s w 1 得到寄存器地址,在下一个时钟沿将 数掘读出,将要写入的目标她址准备好,并在指令执彳予阶段将数据写入。 2 誊接寻垃方式 直接寻址就趋直接读取毹含在指令码中的r a m 地址单元,然后霹入目标地址。 一般直接寻址指令为两个字节长度,除操作码外的另一个字节是源地址或目标地 缱。当源操佟数秘嚣夔撩终数郄是壹接寻蟪方式对,豢令将交鸯3 个字节。 直接寻址的实现是通过译码器在取指令阶段给出读取地址( 由第二个操作数褥 到) ,在下一个时钟沿得到数据,同时给出写入目标地址,在指令执行阶段将数据 写入蓬标建缱。 圈2 8 直接寻自t ,1 司镁寻址选择器 3 寄存器间接寻址 寄存器阕竣等缝是先读敬r 0 或r l 兹痰套终戈溪媲缝,然蜃嚣掇爨褥羁熬蟪 止进行读取操作,最后写入目标地址。 出于寄存器间接寻址需鼹进行两次的读驭操作,较骐他寻址方式疆多一个时钟 麓能完痰,蠹令流承线藏要被孛錾来等特读敬襟终究箴。嚣魏,必了避免滚承线 的阻塞、提高指令的吞吐率,特别设计了寄存器间接释址模块,内部包含独立于 片上r a m 之外的8 个寄存器,专门用于存放4 组通用寄存器中的r 0 和r l 。这样, 亵辫存器阗接露垃薅不需要滚敬r a m 嚣盏接反寄存器瓣接零蛙臻块豹辕基褥蘩 源地址。 出于寄存器间接寻址模块构设计,使锶寄存器间接嚣址能在一个时钟内完成, 箕绦作方式粪织予寄存器蘸接寻薤遘程。 4 立即寻址方式 立即寻址是将指令码中的立即数作为源操作数进行读写操作。 在a m c 6 0 豹存褚器攘裁模块中霹褥裂3 个字节豹撵令鹃,分瘸为o p l 、o p 2 、 第二章a m c 6 0 的结构设汁舄指令实现 o p 3 。在立即寻址时,将a l u 的源操作数选择为o p 2 进入数据通路即可实现立即 寻址j 5 位寻址方式 位寻址是指从给意的位地址中读取位( b i t ) 数据。系统内熬有2 2 1 个可寻址位, 其中毽糖1 2 8 个r a 溅经帮s 3 令黪臻功能瞧。 位寻址和字节寻址的单元是相飘重叠的,即能通过位寻止访问的位也可以通过 字节寻址的方式访问该位所对应的字节。在r a m 中的位寻址区的位地址魑连续的 ( o 辑i 7 f h ) ,露在s f r 中懿谴寻缝嚣是不连续瓣。 s f r 中的位地址的编址不同于字节地址,但佼地址和该位所在字节的地址是紧 密联系的。位地址由两部分构成,一部分是8 饿地址的高5 位,表示该位所在字 节的逮皱:勇一部努怒8 位遂蛙静低3 整,表豢该往在字节中瓣蕴菱。 在a m c 6 0 中位地址的实现过糨是通过译码器给出位寻址使能信号,通过使地 址在下一个时钟读出数据,然后通过由c y ( 进能标志位) 组成的位数据通路写入 鏊蠢邈蟪。 6 变址露址方式 变址寻址是以程序计数器p c 域数据指针d p t r 作为基址地址寄存器,以累加 器接戈燹艟寄存器,凳它翻内容戆秘器是程序器镶器懿遗缝,聂寻蛙该楚黢攀元, 读取数据。变址寻址可以方便的用于查表程序。 在a m c 6 0 中变址寻址的实现怒通过a u j 选通p c 或d p t r ,将p c 或d p t r 与a 程翻,褥到器拣圭龟缝,然磊鑫存螓控涮横绞避嚣数据读数。 7 相对游址方式 相对碍址也用于访问程序存储器,般用于程序转移指令中。 媚瓣罨缱豹转移攒令中夔最寒令字节懿毒燕嚣羁是穗怼圭| 鏊缝壤( 鼯r e l ) ,在撂 令执行时将计算p c 假( 此时p c 融指向下一条指令) 与r e l 的和作为转移地址写 入p c 。需要说明的怒r e l 是由编译器生成的地址偏移量的补硒,因此用p c 和r e l 霹菹实瑷蘩磊建壹戆雾i 转。峦予糟l 为8 爱,雾耱范溺是( p c t 2 8 ) ( p c + 1 2 7 ) 。 在a m c 6 0 的相对寻址过程中,通过a l u 实现在一个周期内1 6 位的p c 值和 8 位的偏移量r e l 相加,并在下一个时钟沿写入p c 。写入p c 艨的操作参见“控制 类豢令”部分。 鞲托大学硕士攀位论文:嵌入式专掰m c u 设计与实蜣 2 2 3a m c 6 0 的指令实现 戬上已经分绍了m c s 一5 1 秘指令系统,下西将介绍在a m c 6 0 微控制器中如筒 实现整个指令系统。 在a m c 6 0 系统中由于采用了= 缎指令流水线绩果及哈佛驳总线结梅,傻得指 令处理速度有了骥登豹提高( 鞍传统5 结构) ,大部分指令设计为单时钟指令, 同时废除了机器周期的概念,直接采用系统时钟为计时单位。 以下将按数据传送类、算术运辣类、逻辑避黧及移位类、控制转移类、位操 乍 类五类指令 3 1 分别秀蟊戳叙述。 一数摄传送类指令 数援传送的实现怒袄赖各种寻址方式,将数据逶过数据通路进行传竣。数据传 送类指令可分威内部r a m 数据佟遴指令、程序存储器数据传送指令、数瓣交换指 令和堆栈操作指令。 内部r a m 数攒佟送指令莘曩稷侉存储器数攒传送指令盼实现是基于不阁改寻址 方式,由于寻址方式强t 茸面已经徽过介绍,在魏不再赘述。 数据交换指令x c h ( 字节交换) 、x c h d ( 半字节交换) 和s w a p ( 累加器高 低半字节交换) 在a 雌中技 亍。 堆校操作指令是通过s p 逑行的间接寄存器寻址。为了避免间接寻址时流水线 阻塞,在s p 模块内设有堆栈缓冲器s p _ w 来保存栈顶的数据,能在一个时钟内完 成堆栈掇馋。 二算术运算和逻辑运算类 算术运算、逻辑遂算和移位指令通过a l u 实现,在a l u 中定义了m c u 所用 到豹各糖雾本运算秘逻辑运算。a l u 憨具体攒逑参见第三耄a l u 邦分。 三控制转移类 控制转移指令包括绝对转移、条件转移及子程序调用指令。控制转移擞指令多 鼗关系剿p c 焦懿改麓:对于缝黠转移搔令,程糖令分辑除毅羧嚣始执行p c 戆改 写:而条件转移指令瑟在指令的执行阶段力。能判定是否满足转移条件。肖关条件 转移的执行过程可参考第三章的比较器部分。 霆。霞搽终类 与傲操作指令相荚的控制线宵位操作控制线和位数据线b i t 。位控制线为高电 茎三童鼎堡! 整釜塑墼建墨塑皇奎垫 平时,当前操作为使操作;否则为字节操作。位地址的计算可参见本章位寻址部 分。、 使写入豹过程怒个读取、修改、写入的j 馥程。当执行位写入对,被操作位所 在的字节将被读出,使用位数据线上的数据将对应位改写艏,再进行字节写入, 完成佼攥终。位读窭旋过程相对麓肇,先将佼掰在戆字节浚爨,然后穆对应经觚 位数据线上输出。 2 3 小缝 本章介绍了a m c 6 0 的整体结构、二缀指令流水线的设计、m c s 5 1 指令集及 其在a m c 6 0 上的实现过程。 攒令流东线是蘩于指令瓣萋爨魏行实琨,它逶提裹指令魏行霹阗著抒浚蠢冬有效 途径,同时也引入了流水线的数据相关和控制相关问题。通过m c u 性能和设计复 杂度的综合考虑,a m c 6 0 采用二缀指令流水线。在a m c 6 0 中采用哈佛双总线结 秘及数舞壹蔹读写遴路,毒效翳决了二缀捂令瀛汞线戆数据相关霹题;邋过霰定 转移不会发生的分支预测方法和辫停流水线的方法解决了控制相关问题。 采用先行控制方式,减少指令读取操作数所需要的时间,将多数指令的执行缩 短隽一个时镑周期,疆赢了指令鹃虢智速凄。 a m c 6 0 兼容m c s 一5 1 的整个指令集,为了在指令流水线中实现多种寻址方式, 采用了数掘缓冲和设置多路选择器的方法。 第三章a m c 6 0 珐施攘块醴诗 3 1 概述 第三章a m c 6 0 功髓模块设计 嚣嚣徽控制器懿设计日憝淘巅嶷痰度、多功麓方囱发袋,穰决纯功能鲍蓊废集 成给基于微控制器系统的设计提供了广阔的应用空间,同时也给微控制器本身的 设计带来了巨大的挑战。 在焱入式系统庭蹋设计中,袋镬对系统酌突时性膏较嵩要求,对舞郝攀佟的响 应要迅瀵。在嵌入式系统中常常采用中断来处理实时性要求最高的事件,以使得 控制器农最短的时间傲如响应。然而,通用微控话器虑部中断资源往往比较紧张。 经典8 0 5 1 控制器秘审颛源有5 个,蒸中包括两个外蒸中薮、两个定时器中断和一 个串口中断。在规模较大的系统绒特殊应用环境中使用通用微控制器,会使中断 资源的分配十分复杂,甚至难以实现;这耪问题在一定程度上可以采用中斯扩展 豹方式来解决,键又会大大增加系统软硬俘设计豹复杂度。故本设诗豹一个特点 在于采用多中断源包括2 8 个中断源( 2 2 个外部中断) 、1 4 个中断向量( 8 个外部 中断向爨) ,并采用增强型的中断控制器加以管理。 随着率彳亍通信在嵌入式系统中豹应用越来越广泛,尤其怒u a r t ( 遭蠲舜步串 行口) 的应用,例如:通过一个微控制器同时连接p c 机和多个子控制器的数据采 集系统,微控制器中u a r t 的作用网菇凸现。普避微控制器中钱往只有一个u a r t , 在应用系统设计融受到了缀夫的隈涮,两带有多u a r t 接翻豹徽控制器刘可以有 效的解决这个问题。a m c 6 0 设计有两个功能相间的u a r t 接1 2 1 ,其中的每个u a r t 都可选择定时器l 或定时器2 作为波特率发生器。 簸褫定时器也瑟瑟f 1 狗定时嚣,是现代徽控制器常常采_ 麓的功能部俘。监视定 时器通过独立的时钟计数器监控程序的运行情况,在程序异常时发生定时器溢出, 然后由滋出信号来复像微控制器或绘出中断信号。监视定时器鲍应用无疑提高了 基于微控制器的应用系统的可靠栏。a m c 6 0 懿羧视定时器设计出本章稻威部分详 述。 西北太学硕j :攀证论文:嵌入戎专用m c u 设计姆实现 3 2 基本功能模块设计 a m c 6 0 中氛含麴基本功熊模块包括: 译码器d e c o d e r 存储控制单元m e m c u 冀寒逻辑蕈元a u j 比较器c o m p 数据指针d p t r 堆棱指针s p 累加器a c c b 寄存器 程穿状态字寒存器p s w 数据存储器接口单元 程序存储器接口单元 3 2 。1 译码器模块 翻3 1 译码嚣姥掏图 1 8 第三章a m c 6 0 功能模块设计 译码器是微控制器的核心部件,它的主要功能是对当前指令进行分析译码并给 出控制信号,控制各个功能部件完成指令要求的操作,译码器结构见图3 1 。 表3 1 译码器信号说明 输入信号功能说明输出信号功能说明 c l k 时钟信号 m mrs e l 读r a m 选择 r s t 复位信号p c 写p c o p _ i n p u t 指令码 p c _ s e lp c 选择控制 m e r ew a l t 存储器操作等待 c o m p _ s e l 比较器选择控制 d a t aw a i t数据操作等待 b i ta d r 位寻址信号 e o m p 比较器输出 n n w 读一改一写信号 s c r ls e la l u 操作数1 选择 s c r 2s e la l u 操作数2 选择 s c r 3s e la l u 操作数3 选择 c ys e lc y 选择 a l u _ o p a l u 操作码 r a mws e l r a m 写选择 p s w g e t 置位p s w s t rws f r 写 r d 读指令信号 制 信号,另一个用于产生a u j 操作码和数据回写控制。前者由组合逻辑实现,后者 由时序逻辑实现。 译码器工作在指令流水线的取指令、分析指令阶段;指令码由存储控制模块传 送到译码器,译码器通过指令分析后首先由组合逻辑控制块给出控制信号,并在 这一阶段结束时读入源操作数,同时由时序逻辑控制块给出a l u 的控制信号和数 据回写控制信号,完成指令执行前的准备工作。 译码器中的f s m ( 有限状念机) 部分设有流水线状态指示标志p s t a t e ,在正常 状态下即单时钟指令执行过程中,p s t a t e 始终为0 。当发生流水线阻塞即有多周期 指令被执行时p s t a t e 为非零值,具体赋值情况和指令有关。例如:当执行l c a l l 指 。登垄垄慧鉴圭兰笙兰奎:璧垒整墨型墼蔓兰塞翌 令时p s t a t e = o x ik 3 2 2 存绪控辩单元m e m c u 存储控制单元对m c u 内的寄存器、数据存储器及程序存储器进行集中控制, 并形成译码器、a l u 和存销单元的数据接口。 存涟控蕊单元含青读、霉逢蛙选择嚣、指令缓冲嚣、葭:控澍器等多令凌畿粼 件,它的主群功能是控制指令的读取和缓冲、数据的读写及中断晌成。 1 读、写地蜒选择器 译褥器稷据不丽撵令鹣骞蛙方式簸鼹瀵、写连鲢送撵游,著鑫存诺控摹l 摹元斑 的读、写地址选择器完成地址选择功能。选择器结卡妇h 赋图2 6 、图2 7 。 2 掺令缓狰嚣张p c ( p r o g r a mc o u n t e r ) 控制器 讯la c k b u f 鞫3 ,2 指令瑗j 申嚣及p e 控翻嚣缝梭 指令缓冲器内包含八个8 位寄存器,用于暂存读入的指令码。p c 控制器用予 计算将要执行躯指令蕴嚣,包括指令在缓狰寄存嚣巾的倥曼期在程岿存姥区中麴 位疑( 瑟p c 鹣毽) 。 为了实现指令流水线籼降低程序存储器的操作频率,m c u 在镣次指令读取操 作怼将麸r o m 串簇痔读敬4 字节撵令秘,著存放在攒令缓狰器孛。撵令缓狰嚣输 漤3 字节酶攒令玛o p l _ o u t 、o p 2 _ o u t 、o p 3o u t ,p c 撩截器中设蠢捂令指o p _ p o i n t 和指令长度谢存器o p l e n t h ;o p _ p o i n t 用于指示当前执行指令的操作码o p l _ o u t , o p 2 _ o u t 、o p 3 _ o u t 只嘉在多溺翅指令对囊会救瑗到。o p _ l e n t h 存髓当越撵令约长痰, 稻予计算下一条指令操簿褊的位置。 第三睾a m c 6 0 琏能模莰设计 指令缓冲器内的指令并不总是顺序执行的,幽发生程序跳转时,已读入的指令 将被丢穷,指令渡永线瞧将暂停,簿蒋存德控铡嚣驮耨蛉基栎缝整读取摆令强后, 指令流水线再继续运行。这一过程也就是在第= 二章提到的指令流水线的控制相关 问题。 当蠢中颧请求并灏足中断确发条馋露( i n ta c k b u f 爻l 越) ,中酝嚷瘦猩撰令缓 冲器的输出插入一条l c a l l 指令来完成。l c a l l 指令调嗣的目标地址( 所响应 中断的入口地址) 幽中断向量确定。 3 2 。3 算术逻辑擎嚣a l u a l u 是微控制器中的关键部件,完成所有指令中的算术运算、逻辑运簿以及 移位搡傍等珐麓,邀楚缀藏数据邋鼹约主要餐臀。 1 a l u 的结构 a l u 部分采用组食逻辑实现,疑控制码有两部分,一是操作控制码,用于选 簿a

温馨提示

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

评论

0/150

提交评论