




已阅读5页,还剩69页未读, 继续免费阅读
(计算机应用技术专业论文)m68hc08系列mcu嵌入式开发平台的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 6 8 t 1 c 0 8 系列删嵌入式开发平台的设计与实现中文摘要 m 6 8 h c 0 8 系列m c u 嵌入式开发平台的设计与实现 中文摘要 嵌入式技术已进入一个崭新的时代,f r e e s c a l e 公司推出的新一代8 位m 6 6 h c 0 8 系列微处理器,因其速度快、功能强、功耗小、价格低等优点,在业界得到了广泛的 应用。 为了能方便快捷地使用m 6 8 h c 0 8 系列微处理器研发产品,须有相应的开发平台, 包括代码编辑功能及编译器、编程器、调试器等组件。国外公司提供的一些开发平台, 尽管功能强大,但是价格高昂,英文界面,难以被广大国内用户所接受;国内也有一 些大学开发过有关的开发平台,但功能较为单一,只针对m 6 8 h c 0 8 系列的某款芯片, 而且一般不带调试功能。 一个嵌入式开发平台研制的难点在于编程器的通用性和c 语言源程序级调试的 实现。本文针对f r e e s c a l em 6 8 h c 0 8 系列单片机,提出了通用编程器的解决方案以及 c 语言源程序级调试的实现方法。在苏州大学m c u & d s p 研发中心s d 1 在线编程系 统的基础上,结合原有系统的编辑及编译器部分,开发了通用性好、扩展性强、价格 低廉的m 6 8 h c 0 8 全系列m c u 嵌入式开发平台。论文详细地阐述了带有u s b 接口的 通用编程器和调试器的设计方案及软硬件设计。 关键词:m 6 8 h c 0 8 系列单片机,m c 6 8 h c 9 0 8 j b 8 ,写入调试头,核心板 作者:刘雪兰 指导老师:王宣怀 a b s t r a c t t h ed e s i g na n di m p l e m e n t a t i o no f m 6 8 h c 0 8s e r i e sm c u e m b e d d e d d e v e l o p i n g p l a t f o r m t h e d e s i g na n di m p l e m e n t a t i o n o fm 6 8 h c 0 8s e r i e s m c ue m b e d d e d d e v e l o p i n gp l a t f o r m a b s t r a c t e m b e d e d t e c h n o l o g ye m b r a c en e we r af o ri t sp e r v a s i v ec o m p u t i n ga b i l i t y f r e e s c a l e s n e wm 6 8 h c 0 8s e r i e sm c uh a v eb e e na c c e p t e db ya l ll i n do f i n d u s t r i e sa l lo v e rt l l ew o r l d f o rt h e i rp o w e r f u lc o m p u t i n g ,l o w e re n e r g yc o n s u m p t i o na n dp r i c e t h e r ei sn e c e s s a r yt od e v e l o pa n dd e s i g np r o d u c tw i t hm 6 8 h c 0 8s e r i e sm c uu n d e r t h es u i t a b l ec i r c u m s t a n c et h a tp r o v i d ec o d ee d i t e r , c o m p i l e r , p r o g r a m m e ra n dd e b u g g e r s o m ef o r e i g nc o m p a n i e sh a v ei s s u e ds e v e r a lp r o g r a mt o o l ss u c ha sm e t r o w e r k sc o d e w a r r i o ra n dp em i c r o c o m p u t e rs y s t e m sc a s m s 0 8 ,b u tt h e ya r ee x p e n s i v ea n dt h e i n t e r f a c ei ss h o w e l li ne n g l i s h s oi ti sas e r i o u sp r o b l e mf o rm a n yn a t i v e1 1 $ e r t h e r ea r ea f e wu n i v e r s i t i e sd e v e l o pc o h e r e n tp r o g r a mt o o l sb u tt h e ya r ej u s ts u p p o r to n l yo n es t y l e m c i uo f m c 6 8 h c 0 8a n dw i t h o u td e b u g g e r t or e s o l v et h e s ep r o b l e m ,w em n gf o r w a r dan e wp r o g r a mt o o lt os u p p o r ta l lk i n do f m c u so fm 6 8 h c 0 8a n dp r o v i d ed e b u g g e rt od e b u gcc o d e i ti sac h a l l e n g et om a k ei t t r u e b a s e0 nt h eh a - s y s t e mp r o g r a m m a b l es d 一1t h a td e v e l o p e db ys o o c o ou n i v e r s i t y m c u & d s pr e s e a r c ha n dd e v e l o p ec e n t e r , d e p e n d i n go nt h ei n h e r e n te d i t e ra n dc o m p i l e r , w ed e s i g nt h ep r o g r a mt o o lt oo f f e rg e n e r a l i z a f i o nu t i l i t y ,f l e x i b l ee x t e n t i o na n dl o wc o s t f o rn a t i v eu s e r t h ep a p e rd e s c r i b ei nd e t a i l e d l yt h es c h e m eo fa l l - p u r p o s ep r o g r a m m e ra n d d 曲u g g e rw i t hu s bi n t e r f a e e a l s oi n e l u d et h ed e s i g no f h a r d w a r ea n ds o f t w a r e k e yw o r d :m 6 8 h c 0 8s e r i e s m c u s ,m c 6 8 h c 9 0 8 j b 8 ,d o w n l o a da n dd e b u gp o d , k e r n e lb o a r d i i w r i t t e nb yl i ux u e l a n s u p e r v i s e db yw a n gy i h u a i y9 5 6 8 2 2 苏州大学学位论文独创性声明及使用授权声明 学位论文凌剖- 陛声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立 进行研究工作所取得蛉成果。除文中已经注明引用的内容外,本论文 不含其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏 州大学或其它教育机构的学位证书而使用过的材料。对本文的研究作 出重要贡献的个人和集体,均己在史中以明确方式标明。本人承担本 声明的法律责任。 研究生签名: 乏l 望垒日期:趔6 :【2 学位论文挺用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论 文合作部、中国社科院文献信息、情报中心确权保留本人所送交学位论 文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论 文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的 保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的 全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名:速j 盈羔日期:丝止上啦 导灏篓,要:一垒组扭日期;丞疆生4 m 6 8 h c 0 8 系列m c i j 嵌入式开发平台的设计与实现 第一章绪论 第一章绪论 随着芯片制造技术的快速发展,单片机及其嵌入式应用已经成为计算机应用领域 的重要方向之一。f r e e s c a l e 半导体公司于1 9 9 9 年开始投入市场的m 6 8 h c 0 8 系列单 片机因其速度快、功能强、功耗小及价格低等优点,在单片机市场有着极高的占有率, 至2 0 0 6 年该系列单片机已经出品一百多个型号。该系列单片机在我国也得到了较广 泛的应用。利用单片机进行嵌入式产品的开发,离不开嵌入式开发工具。苏州大学于 2 0 0 2 年开发了s d 1 在线编程系统,已经被国内2 0 多所大学使用,其缺点是只针对 m c 6 8 h c 9 0 8 g p 3 2 具体型号,以及不带调试功能,而嵌入式开发平台研制的难点在于 编程器的通用性和c 语言源程序级调试的实现。本文在原有的s d 1 在线编程系统的 基础上,着眼于适用整个m 6 8 h c 0 8 系列单片机这个目标,开发通用编程器并解决c 语言源程序级调试问题。本章首先介绍相关的设计背景、课题的功能和课题的必要性, 最后给出了本文的工作内容及论文结构。 1 1m 6 8 h c 0 8 系列m c u 嵌入式开发平台的背景 1 1 1m 6 8 h c 0 8 系列m c u 概述 嵌入式系统( e m b e d d e ds y s t e m ) 是一种面向测控对象,将计算机( 或单片机) 嵌入到实际应用系统中,实现嵌入式应用的计算机系统【i j 。 微控制器( m i c r oc o n t r o l l e ru n i t ,m c u ) ,也就是人们通常所说的单片机,因此 本文中的m c u 和单片机是一个意思。单片机的全名应为单片微型计算机( s i n g l e c h i p m i c r oc o m p u t e r ) ,m c u 的基本含义是:在一块芯片上集成了中央处理单元( c p u ) 、 存储器( r a m r o m 等) 、定时器计数器及多种输入输出( i o ) 接口的比较完整的 数字处理系统f ”。各种各样的以单片机为核心的应用系统从广义上来说都是简易的嵌 入式系统。 m o t o r o l a 半导体部( 2 0 0 4 年改为f r e e s c a l e 半导体公司,以下统称f r e e s c a l e ) 于 1 9 7 4 年开始推出m c 6 8 0 0 微处理器,在此基础上,1 9 7 9 年开始生产单片机m c 6 8 0 1 , 。在1 9 8 3 年前后发展成为较高性能的m 6 8 h c 0 5 系列,根据d a t a q u e s t 公司的资料显示, f r e e s c a l e 单片机在国际市场上占有最大份额【”。2 0 0 0 年前后,f r e e s c a l e 半导体公司继 m 6 8 h c 0 5 系列单片机之后,推出了m 6 8 h c 0 8 系列单片机,它具有功能强、价格低、 第一章绪论 m 6 8 t 1 c 0 8 系列, i c ui 扶入式开发平台的设计与实现 功耗低、指令系统丰富等特点,是新一代的8 位单片机,特别是带有闪速f l a s h 存储 器,闪速存储器具有非易失性,在断电时也能保留存储内容,这使它优于需要持续供 电来存储信息的易失性存储器,如静态和动态r a m ,闪速存储器可实现大规模电擦 除,这使它优于只能通过紫外线慢速擦除的e p r o m 或其他类型的e e p r o m ,也优 于曾经出现过的o t p 型( o n et i m ep r o g r a m m a b l e ) 的一次性编程r o m 。m 6 8 h c 0 8 的中央处理器是c p u 0 8 ,在c p u 0 8 的基础上集成不同的存储器模块与外围电路,就 会生成适应各种不同的应用环境的微控制器芯片,从而构成了品种繁多的m 6 8 h c 0 8 系列。f r e e s c a l e 的0 8 系列单片机型号有一百多种 2 l 。在这些不同型号的单片机中, 资源各不相同,即使是同一种型号的单片机,也有多种封装形式,其i o 口数目也不 相同。如m c 6 8 h c 9 0 8 j b 8 就有2 0 脚的d i p 、2 8 脚的s o i c 、4 4 脚的q f p 和2 0 脚的 s o i c 四种封装形式。 i 1 2 嵌入式开发平台的基本功能 嵌入式系统与般的集成电路应用设计不同,它是硬件与软件相结合的系统。当 硬件系统设计并制作好之后,即使没有任何故障,也必须配备相应的软件才能投入运 行;而且只有配合软件的运行才能彻底发现硬件故障或者不完善的地方,并且可能要 经过多次修改。至于软件,开发人员必须配合硬件电路进行调整与性能测试,可能也 要反复修改才够完善,最后才将成熟的软件固化到系统中。由此可见,这种硬件与软 件相互依托与相互影响显然增加了系统开发的难度,于是需要开发嵌入式开发平台来 帮助嵌入式程序的开发,实现嵌入式系统软件的编辑及编译、系统的调试和软件的写 入等功能的系统即称为嵌入式开发平台。单片机的硬件和软件设计好以后,必须借助 单片机的开发平台进行调试,排除硬件中的故障,软件中的错误,测试系统的实时性 能等,并借助于开发平台把调试好的软件固化【3 1 。 一般来说,针对带有f l a s h 存储器的单片机,一个完整的嵌入式开发平台应该包 含以下功能: ( 1 ) 可以在p c 上进行源程序的编辑和编译; ( 2 ) f l a s h 区的擦除与程序写入,一般由编程器来完成; ( 3 ) 源程序调试功能,一般由调试器完成; ( 4 ) 提供一个集成开发环境。 其中程序调试功能的实现是最复杂、最费时的,也是开发过程中关键之处。程序 m 6 8 h c 0 8 系列m c u 嵌入式开发平台的设汁与实现 第一章绪论 的调试至少提供单步跟踪与断点设置。单步跟踪是指每次只执行一条指令,并及时返 回单片机程序当前运行情况,如寄存器的值和变量的值,以便用户检查该指令执行的 结果;断点设置是指仅在程序的某些地方设置断点,程序运行到断点处即中止,并及 时返回单片机程序当前运行情况,以便用户检查该段程序运行的结果。 1 2m 6 8 h c 0 8 嵌入式开发平台的必要性 m 6 8 h c 0 8 系列单片机使用相当的广泛。从1 9 9 3 年起, f r e e s c a l e 半导体公司为 全球提供的8 位微控制器已超过5 0 亿片,然而我国国内大多数“熟悉”单片机的人 却不知晓这一底细,国内的微控制器市场从2 0 世纪8 0 年代开始,一直由i n t c l 公司 推出的m c s 5 1 占据着绝对的统治地位。人们又逐渐发现,从进口的电子信息类产品, 特别是各类通信产品中,其中有m c u 的,多数使用了f r e e s c a l e 的产品,而不是 m c s 5 1 1 4 1 。因此,学习与掌握f r e e s c a l e 微控制器技术是中国大陆全面进入国际化的 形势所迫,了解并掌握f r e e s e a l e 微控制器体系结构,有利于我们学习与掌握国外更 多的先进技术与经验,扩大自己的知识面,增强创新思维能力。 然而国内掌握并应用f r e e s c a l e 的m c u 的人却相当的少,原因就是国内f r e e s c a l e 的m c u 的相关资料比较少,f r e e s c a l e 提供的开发平台又非常的昂贵,且都是英文版, 很难学习和掌握,如f r e e s c a l e 提供的功能比较强大的集成开发环境c o d e w a r r i o r 的官 方网站报价为$ 3 ,11 4 0 0 t 5 1 。在中国,该公司提供的教学试用版,有存储空间和时间的 限制。 在国内,目前基于f r e e s c a l e 单片机的应用研发机构比较少,但最近几年f r e e s c a l e 半导体公司加大了宣传力度,并在国内一些大学中设立了研究机构,其中研发过类似 的开发平台的有复旦大学、清华大学和苏州大学。 复旦大学开发了m 6 8 h c 0 8 系列单片机仿真器,该仿真器达到在目标系统硬件尚 未定m c u 型与制版情况下,先行调试目标系统的硬件、软件设计,为目标系统的研 制提供前期基础,但是,一些情况下,难以实现1 0 0 的实时仿真,有些功能在用仿 真器调试时十分正常,而到了实际应用系统却不能顺利运行,同时,传统的仿真方式 的一些调试功能仅适用于初学者,对于具有一定开发经验并拥有通用功能模块积累的 开发者,往往增加了开发时间【6 j 。 清华大学开发的m c 6 8 h c 9 0 8 g p 3 2 教学实验板,针对m c 6 8 h c 9 0 8 g p 3 2 型号, 第一章绪论m 6 8 h c 0 8 系列m c u 嵌入式开发平台的发计与实现 提供了编译、下载程序,编辑功能由用户自己利用现有编辑工具。主要缺点有: ( 1 ) d o s 程序界面:迫使学生在对文件编辑、编译后转入d o s 界面运行。 ( 2 ) 文件必须按照其要求更改中断向量,才能在实验板上运行,实际写入空白 芯片时必须重新更改中断向量,重新编译。 ( 3 ) 每次文件编译后,必须使用其提供的c h s l 9 e x e 文件将实际的s 1 9 文件 转为一个固定文件名的文件才能写入,不仅给操作带来不变,也增加了程序的对比运 行的时间。 苏州大学m o t o r o l am c u 实验室( 作者所在的实验室) 2 0 0 2 年开发的s d 1 在线 编程系统,主要特点有:不要求用户改变中断向量、写入后自动转入用户程序执行、 全部操作在w i n d o w s 界面下完成。但也只针对m c 6 8 h c 9 0 8 g p 3 2 具体型号,以及不 带源程序级调试功能,所以下决心继续研发。而通用性和c 语言源程序级调试的实 现是有一定难度的,本课题克服这些困难,实现了通用性和c 语言源程序级调试。 关于编程器,苏州大学研制的支持f r e e s c a l em c u 的编程器,目前只支持 m 6 8 h c 9 0 8 j l 3 t 7 】和m 6 8 h c 9 0 8 g p 3 2 ( 8 】这两种芯片,没有达到通用性,另外不能实 现断点调试;清华大学于2 0 0 3 年推出的8 位f r e e s c a l e 单片机m 6 8 h c 9 0 8 全系列编程 裂引,专门为f r e e s e a l ef l a s h 型单片机而设计,但只支持m 6 8 h c 0 8 系列中的1 4 种 单片机,支持m c u 芯片数量少,而且为英文界面,使用不方便,也不能实现调试。 所以迫切需要研制适合国内不同用户要求的m 6 8 h c 0 8 嵌入式开发平台。 基于上述背景,作者着手开发适合国内用户需要的m 6 8 h c 0 8 系列m c u 嵌入式 开发平台,为用户提供该系列的快捷、方便、高效、廉价的通用集成开发环境。 1 3 本文工作和结构 1 3 1 本文工作 在研究生的学习过程中,作者对“嵌入式系统的软、硬件设计”、“f r e e s c a l e8 位、 3 2 位及d s p 等系列的单片机”等课题有了深入的学习和实践,积累了有关电路设计、 系统设计、数据通信方面的知识和经验,有信心将m 6 8 h c 0 8 系列m c u 嵌入式开发 平台的设计作为的毕业设计课题。 由于该开发平台中的编辑及编译部分主要是由作者的同学完成,对这部分本文不 4 m 6 8 h c 0 8 系列m c u 嵌入式开发平台的设计与实现 第一章绪论 作介绍:作者主要完成开发平台中的核心部分m 6 8 h c 0 8 系列m c u 通用编程器和调 试器的实现,以及编辑及编译器、编程器和调试器的合成,因此本文主要介绍编程器 和调试器的实现方法。 本文主要工作: ( 1 ) 硬件平台的设计与实现; 1 ) 芯片选型( 选带u s b 模块的m c 6 8 h c 9 0 8 j b 8 ) ; 2 ) 了解芯片的外围电路,分析芯片间的接线方式,设计硬件原理图; 3 ) 绘制p c b 电路图,联系厂家制作电路板: 4 ) 其他元器件的选型与采购等; 5 ) 焊接、硬件部分测试,完成硬件系统。 ( 2 ) m c u 方软件平台的设计、实现与测试 1 ) u s b l 1 协议分析: 2 ) u s b 主要子程序设计与测试; 一 3 ) 与目标芯片通信相关子程序设计与测试: 4 ) 总体功能分析与主程序设计: 5 ) 整体测试。 ( 3 ) p c 方软件设计及调试 1 ) 界面的设计; 2 ) u s b 主要子程序设计与测试; 3 ) 数据库的建立; 4 ) 擦除模块的子程序的设计与测试; 5 ) 写入模块的子程序的设计与测试; 6 ) 调试模块的子程序的设计与测试。 ( 4 ) 总体的测试。 1 3 2 本文结构 全文共七章,各章的内容安排如下: 第一章介绍课题的背景,以及开发的必要性,并给出了本文工作及结构 第二章主要介绍本课题的设计方案和所涉及到的基础知识,主要是f l a s h 存储器 的在线编程和监控r o m 。 第三章主要介绍写入调试头硬件板的设计。 第一章绪论 1 6 8 1 t c 0 8 系列m c u 嵌入式开发平台的设计与实现 第四章阐述m c u 端的软件设计方案,并给出关键子程序的源代码、流程图或算 法描述。 第五章阐述p c 机端的软件设计方案,并给出关键子程序的源代码、流程图或算 法描述。 第六章介绍设计体会。 最后一章对本文的工作进行总结,并提出一些尚待改进的地方。 6 m 6 8 , t i c 0 8 系列胍u 嵌八式开发平台的设计与实现 第二章设计方案及技术基础 第二章设计方案及技术基础 m 6 8 h c 0 8 系列m c u 嵌入式开发平台实现的难点就是通用编程器和调试器,本 章主要介绍该系列通用编程器和调试器的设计方案,以及在该方案中所涉及到的 f l a s h 存储器的编程和监控r o m 等技术细节。 2 1 设计方案 在讨论设计方案前,先简单介绍一下监控r o m 的概念,在第2 3 节中将会详细 介绍。m 6 8 h c 0 8 系列m c u 出厂时,厂家在r o m 区固化了段程序,该程序称为监 控r o m ,主要提供与外界通信的接口。因而m 6 8 h c 0 8 系列m c u 有两种工作模式: 用户模式和监控模式。用户模式是m c u 上电复位后,m c u 转向复位矢量( 地址 s f f f e $ f f f f ) 所指向的地址处执行f l a s h 中的用户程序。监控模式是m c u 在上电 复位后,执行监控r o m 中的程序。当复位矢量为“空”( $ f f ) 时,m c u 会自动进入 监控模式;当复位矢量不空时,m c u 需要一定的条件才可以进入监控模式。这些条 件包括外部晶振频率、特定i o 的电平、i r q 脚上的9 v 电压和复位信号。这些条件 满足后m c u 便可以进入监控模式,运行监控r o m 程序,该监控程序通过一个i o 口和外界交互。 目前,市场上提供的m 6 8 h c 0 8 系列编程器的实现方案是直接采用芯片技术手册 中提供的监控模式编程电路,利用监控r o m 完成对m c u 的擦除、写入、读出操作。 图2 1 为m 6 8 h c 0 8 系列m c u 的监控模式编程电路图【1 0 】,p c 机通过串行口直接与待 编程芯片( 以下称为目标m c u ) 的监控r o m 通讯,对目标m c u 进行编程。由于串 p c 机 m a x 2 3 2 m c 7 4 h c l 2 5勰 m c u 审r x d 丁2 0 u t 亿刑 行 0 e ia 2 一 用于通讯 n t x dr 2 r nr 2 0 u 1- e _ j a i y 1 的y o 口 图2 - 1f r e e s c a i e 公司提供的编程器原理图 行口有两个数据线,一个为发送数据线,另一个为接收数据线,是全双工的,而目标 m c u 在监控模式下只有一根数据线,同时用来接收和发送数据,是半双工的,于是 中间加了芯片7 4 h c l 2 5 “埙串口的两根数据线并为一根数据线和目标m c u 通讯。作 者的师兄曾经使用过该方案实现过对f r e e s c a l e 的m c 6 8 h c 9 0 8 j l 3 ( 1 2 】的编程,但在实 第二章设计方案及技术基础 m 6 8 h c 0 8 系列m c u 嵌入式开发平台的设计与实现 践中发现,该方案至少存在两个缺点:第一,程序写入速度慢;第二,它很难达到通 用性。不同的目标m c u 进入监控的外围电路有很大差别,例如,要进入监控模式, m c 6 8 h c 9 0 8 g p 3 2 【1 3 】( 以下简称g p 3 2 ) 所需的外部晶振频率为4 9 1 5 2 m h z 或 9 8 3 0 4 m h z ,m c 6 8 h c 9 0 8 j b 8 【1 4 1 为3 m h z 或6 m h z ,m c 6 8 h c 9 0 8 g z 6 0 【1 5 】为4 m h z 或 8 m h z 。因此对不同的目标m c u 编程,需要重新设计进入监控的外围电路,无法达 到通用性。 为了克服这些缺点,作 者考虑在p c 机和目标 m c u 之间加一个m c u ( 以 下称为主控m c u ) ,如图 2 - 2 所示,主控m c u 接收 p c 机发送的操作命令,与 目标m c u 进行通信,使目 标m c u 完成相应的操作。 主控m c u 和目标m c u 分 i 主控m c u 所在的电路板1 目标m c u 所在的电路板 图2 - 2 使用主控m c u 方案 别设计在两块电路板上,两个电路板之间通过排线相连,以实现两板间的数据通信和 信号控制。主控m c u 电路板提供所有目标m c u 进入监控所需的信号,目标m c u 只要留出相应的进入监控的接口就行了,要对不同的目标m c u 操作,只需要更换目 标m c u 电路板,这样就很容易实现该开发平台的通用性,另外用m c u 控制m c u 比较容易,并且稳定性好。 对于调试器,目前用得很多的方案是软件调试,就是编一段监控程序,写在目标 m c u 的f l a s h 区的最后面,然后利用这个监控程序达到调试的目的。但在作者实现 了该方案后,发现该方案至少有三个缺点:第一,它占用了用户的资源,程序需要放 在f l a s h 区,因此占用了f l a s h 资源,程序运行需要内存,因此占用了r a m 资源,一 般m c u 的资源本来就少,如芯片m c 6 8 h c 9 0 8 q t i 的r a m 区只有1 2 8 个字节,f l a s h 区只有1 5 k 个字节【16 1 ,这样用户使用软件调试很不方便;第二,软件调试需要占用 串行口,限制了对串口的调试:第三,不能达到通用性,因为所编的监控程序中一些 参数是针对具体芯片的,不同的目标m c u 参数值不一样,监控程序也不一样。 上砸介绍到m 6 8 h c 0 8 系列m c u 内部都有监控r o m ,作者考虑能不能也利用监 控r o m 达到调试程序的目的。如果可行的话,由于监控r o m 不占用用户资源,不 使用串口,而且m 6 8 h c 0 8 系列m c u 内部监控r o m 的功能都是一样的,这样就提 m 6 8 h c 0 8 系列m c u 嵌入式开发平台的设计与实现 第二帮设汁方案及技术基础 高了调试的灵活性和通用性。但这又带来了一个难点,f r e e s c a l e 公司并没有公布监控 r o m 的源代码,而各个芯片手册上对监控r o m 的介绍对于要解决调试功能是远远 不够的,一些相关的书籍有源代码的介绍m 】,但只是介绍了一些子程序,关键的主程 序没有介绍。于是作者编写程序读取了g p 3 2 的监控r o m 的字节,并将读出来的字 节进行反汇编后分析,终于确定使用监控r o m 完全可以实现对用户程序的调试,最 后确定了该方案的可行性。 由上面的分析得知,编程器和调试器的实现都以监控r o m 为工具,两者有机结 合,形成最终的解决方案:硬件上使用主控m c u 的方案:软件上分p c 方软件和主 控m c u 方软件,m c u 方软件与目标m c u 的监控r o m 交互,完成编程和调试操作, p c 方软件主要实现对这些操作的控制,与m c u 方软件配合使用达到对m 6 8 h c 0 8 系列m c u 的编程及调试。 2 2f i a s h 存储器的编程 f r e e s c a l e 公司在f l a s h 存储器技术相当成熟的时候,在m 6 8 h c 0 8 系列单片机内 集成了f l a s h 存储器。该系列单片机内部的f l a s h 存储器不但可用编程器对其编程, 而且也可以由内部程序在线写入,从而给嵌入式系统设计与编程提供了方便川。存储 器是m c u 的重要组成部分,存储器技术的发展对单片机的发展起到了极大的推动作 用。 2 2 1f i a s h 存储器的基本特点 f l a s h 存储器是一种高密度、真正不挥发的高性能读写存储器,兼有功耗低、可 靠性高等优点。与传统的固态存储器工艺相比,f l a s h 存储器的主要特点如下: 固有不挥发性:这一特点与磁存储器相似,f l a s h 存储器不需要后备电源来保 持数据。所以,它具有磁存储器无需电能保持数据的优点。 易更新性:f l a s h 存储器具有电可擦除特点。相对于e p r o m ( 电可编程只读 存储器) 的紫外线擦除工艺,f l a s h 存储器的电擦除功能为开发者节省了时间,也为 最终用户更新存储器内容提供了可能。 成本低、密度高、可靠性好:f l a s h 存储器与e e p r o m ( 电可擦除可编程的 只读存储器) 相比较,f l a s h 存储器的成本更低、密度更高、可靠性更好。 2 2 2m 6 8 h c 0 8 系列单片机fa s h 存储器的特点与编程模式 在将f l a s h 存储器技术引入单片机的初期,f l a s h 存储器与r o m 或e p r o m 相比 9 第二章设计方案及技术基础 m 6 8 h c 0 8 系列m c u 嵌入式开发平台的设计与实现 较,其可靠性和稳定性存在一些不足。f r e e s c a l e 公司在f l a s h 存储器技术相当成熟的 时候才推出片内带有f l a s h 存储器的8 位单片机,在应用方便性和可靠性等方面有自 己的特点,主要有以下几个方面: 第一,编程速度快及可靠性高。m 6 8 h c 0 8 系列单片机对单字节的编程时间在4 0 n s 以内,对片内f l a s h 的整体擦除时间也可以控制在5 m s 以内,片内f l a s h 的存储数据 可以保持1 0 年以上,可擦写次数也在l 万次以上。 第二,单一电源电压供电。一般的f l a s h 存储器,在正常的只读情况下,只需要 用户为其提供普通的工作电压即可,而要对其编程,则需要同时提供高于正常工作电 压的编程电压。但是,m 6 8 h c 0 8 系列单片机通过在片内集成电荷泵,可由单一工作 电压在片内产生出编程电压。这样,可实现单一电源供电的在线编程,不需要为f l a s h 的编程而在目标板上增加多余的硬件模块。 第三,支持在线编程。m 6 8 h c 0 8 系列单片机的片内f l a s h 支持在线编程( i n c i r c u i t p r o g r a m ) ,允许单片机内部运行的程序去改写f l a s h 存储内容,这样可以代替外部电 可擦除存储芯片,减少外围部件,增加了嵌入式系统开发的方便性。 下面以g p 3 2 为例,介绍m 6 8 h c 0 8 的f l a s h 存储器的编程方法。 2 2 3g p 3 2 单片机f i a s h 存储器编程方法 1 f l a s h 存储器编程的基本概念 虽然f l a s h 存储器是一种快速的电可擦除、电可编程( 写入) 的读写存储器,但 是基于物理结构原因,对f l a s h 存储器的擦除及写入一般需要高于电源的电压, m 6 8 h c 0 8 系列单片机的片内f l a s h 存储器内含有“升压电路”,使其能够在单一电源 供电情况下进行擦除与写入。对f l a s h 编程的基本操作有两种:擦除( e r a s e ) 和写入 ( p r o g r a m ) 。擦除操作的含义是将存储单元的内容由二进制的0 变成1 ,而写入操作 的含义,是将存储单元的内容由二进制的1 变成0 。擦除及写入操作都是通过设置或 清除f l a s h 存储器的控制寄存器( f l c r ) 中的某个或某些位来完成的【l9 1 。 f l a s h 存储器在片内是以页( p a g e ) 和行( r o w ) 为单位组织的。页和行的大小 ( 字节数) 随整个f l a s h 存储器的大小变化而变化,但页的大小始终为行的两倍。例 如g p 3 2 内含3 2 k 的f l a s h 存储器( 地址为$ 8 0 0 0 $ f d f f ) ,每页的大小为1 2 8 字节, 每行的大小为6 4 字节;而m c 6 8 h c 9 0 8 j l 3 片内f l a s h 存储器仅有4 k ,每页和每行的 大小也分别变为6 4 字节和3 2 字节。 对于g p 3 2 单片机来说,对f l a s h 存储器的擦除操作可以进行整体擦除也可以仅 擦除某一起始地址开始的一页( 1 2 8 字节) 。也就是说,不能仅擦除某一字节或一次 o m 6 8 h c 0 8 系列m c u 嵌入式开发5 卜台的设计与实现 第二章设计方案及技术基础 擦除小于1 2 8 字节。注意这一特点,在数据安排时尤为重要。g p 3 2 单片机的写入操 作以行( 6 4 字节) 为基础,一次连续写入数据个数只能在一行之内。当然,不经过 擦除的区域,不能进行写入,这一点需特别注意。 从这里可以看出,对f l a s h 存储器的写入,必需将一组数据准备好后,放入r a m 区,然后擦除f l a s h 存储器的相应区域并进行写入。我们要考虑到对f l a s h 存储器的 某一字节擦除与写入会影响其后的一页,所以,在进行擦除与写入操作之前,把与擦 除区域相关的数据安排好十分必要。 2 f l a s h 存储器的编程寄存器 在g p 3 2 单片机中,与f l a s h 编程有关的寄存器有2 个,它们是f l a s h 控制寄存器 ( f l c r ) 和f l a s h 块保护寄存器( f l b p r ) 。对应的地址分别为$ f e 0 8 和$ f f 7 e 。下 面分别阐述这些寄存器的功能及用法。 ( 1 ) f l a s h 控制寄存器( f l a s hc o n t r o lr e g i s t e r f l c r ) f l c r 的地址:$ f e 0 8 ,定义为 d 7 d 4 位:未定义。 d 3 一h v e n 位:高压允许位( h i g h - v o l t a g e e n a b l e b i t ) 。h v e n = 1 ,打开电荷 泵并将高电平加到f l a s h 阵列上:h v e n = 0 ,撤除f l a s h 阵列上的高电平并关闭电荷 泵。当p g m = 1 或e r a s e = i 时,可以通过设置h v e n 将来自片内电荷泵的高压加到 f l a s h 阵列上。 d 2 一m a s s 位:整体擦除控制位( m a s se r a s ec o n t r o lb i t ) 。该位在e r a s e = l 时有效,用于选择f l a s h 擦除操作方式:整体擦除或页擦除。m a s s = i ,选择整体擦 除方式;m a s s = 0 ,选择页擦除方式。 d 1 一e r a s e 位:擦除控制位( e r a s ec o n t r o lb i t ) 。该位用于设置f l a s h 编程操 作为擦除操作。e r a s e 位与p g m 位之间存在互锁关系,无法同时被设置为1 。 e r a s e = 1 ,选择擦除操作;e r a s e = 0 ,不选择擦除操作。 d o p g m 位:编程( 写入) 控制位( p r o g r a mc o n t r o lb i t ) 。该位用于设置f l a s h 编程操作为编程( 写入) 操作,且无法与e r a s e 位同时为l 。p g m = 1 ,选择写入操 作;p g m = 0 ,不选择写入操作。 ( 2 ) f l a s h 块保护寄存器( f l a s hb l o c kp r o t e c tr e g i s t e r f l b p r ) f l b p r 的地址:$ f f 7 e ,它的内容为f l a s h 保护区域的起始地址的1 4 7 位,保护 第二章设计方案及技术基础 m 6 8 h c 0 8 系列m c i j 嵌入式开发平台的设计与实现 区域的起始地址的最高位始终为i ,而保护区域的起始地址的低7 位( 位6 o ) 始终为 0 。对f l b f r 写入,可以设定被保护的f l a s h 区域,它本身也是个f l a s h 字节。当 f l a s h 处于保护状态时,擦除和写入操作都是受限制的,h v e n 将无法被正常置起。 f l a s h 块保护寄存器设定的只是保护区域的起始地址,保护区域的结束地址始终为 f l a s h 存储区的结束地址( $ f f f f ) 。例如,设定f l b p r 的值为$ 0 2 ( 0 0 0 00 0 10 ) ,则 保护区域为$ 8 1 0 0 $ f f f f ( 1 0 0 00 0 0 10 0 0 0 0 0 0 0 1 1 1 11 1 1 11 1 1 l1 1 1 1 ) 。 特别情况是:f l b p r 的存储内容为$ o o ,整个f l a s h 存储区郡受到保护;如果f l b p r 的存储内容为$ f f ,则整个f l a s h 存储区都可以被擦除或写入。 3 f l a s h 存储器的编程过程 在m 6 8 h c 0 8 系列单片机中,对f l a s h 进行擦除或写入操作需要遵循一定的时序 和步骤。对于整个m 6 8 h c 0 8 系列的各个型号,这些步骤是一样的,但时序要求可能 略有不同,针对具体型号的f l a s h 进行编程时应参考相应的芯片手册。下面介绍g p 3 2 的f l a s h 编程的基本操作。 1 ) 页擦除操作 按照下面过程,可以擦除g p 3 2 的f l a s h 存储器的一页( 1 2 8 字节) : ( i ) $ 2 - - f l c r ( i e r a s e 位,0 一m a s s 位) :进行页面擦除; ( 2 ) 读f l a s h 块保护寄存器f l b p r ; ( 3 ) 向被擦除的f l a s h 页内任意一个地址写入任意值,为方便起见,一般向待擦 除页首地址写入0 ; ( 4 ) 延时t n v s ( 1 0us ) ; ( 5 ) $ a - - f l c r ( 1 一h v e n 位) : ( 6 ) 延时t e r a s e ( l m s ) ; ( 7 ) $ 8 一f l c r ( o e 耳a s e 位) : ( 8 ) 延时m v h ( 5 us ) ; ( 9 ) $ 0 一f l c r ( o h v e n 位) ; ( 1 0 ) 延时t r c v ( 1 1 ts ) ,完成一页的擦除操作。 2 ) 整体擦除操作 下面是擦除g p 3 2 的整个f l a s h 区域的具体过程。 ( i ) $ 6 一f l c r ( 1 - - e r a s e 位,1 一m a s s 位) :进行整体擦除; ( 2 ) f l a s h 块保护寄存器f l b p r ; ( 3 ) 被擦除的f l a s h 任意一个地址写入任意值,为方便起见,般向首地址写入o : m 6 8 9 c 0 8 系列肌u 嵌入式开发平台的设计与实现 第二章设计方案及技术基础 ( 4 ) 延时t n v s ( 1 0 ps ) ; ( 5 ) $ e f l c r ( i h v e n 位、m a s s 位、e r a s e 位) ; ( 6 ) 延时t m e r a s e ( 4 m s ) ; ( 7 ) $ c f l c r ( o e r a s e 位) ; ( 8 ) 延时t n v h l ( 1 0 0us ) ; ( 9 ) $ o f l c r ( o h v e n 位、m a s s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行成都市简阳市2025秋招笔试热点题型专练及答案
- 农发行资阳市乐至县2025秋招笔试行测高频题及答案
- 楚雄姚安县中储粮2025秋招笔试行测高频题库及答案
- 国家能源济南市莱芜区2025秋招笔试思维策略题专练及答案
- 国家能源保定市唐县2025秋招笔试逻辑推理题专练及答案
- 恩施咸丰县中储粮2025秋招写作案例分析万能模板直接套用
- 半年护理工作总结15篇
- 厂转让合同汇编15篇
- 劳动委员个人工作总结
- 2025年湖北城市建设职业技术学院专项公开招聘19名工作人员模拟试卷完整参考答案详解
- 2025年《公共基础知识》试题库(附答案)
- 高二《复活》课文解读
- 大圆满前行考试题及答案
- 2025贵州毕节威宁自治县面向社会招聘城市社区工作者17人考试参考试题及答案解析
- 建筑工地垃圾清理与处理方案
- 修井现场安全培训内容课件
- 2022届辽宁省大连市高三一模语文试题
- 企业后备干部培养及管理办法
- 2025年标准服装行业安全员考试题库及答案
- 2025年宜昌专业技术人员公需科目培训考试题及答案
- 2025年成人高考高升专试题(含答案)
评论
0/150
提交评论