(计算机应用技术专业论文)m68hc08系列mcu通用编程器及配套软件开发.pdf_第1页
(计算机应用技术专业论文)m68hc08系列mcu通用编程器及配套软件开发.pdf_第2页
(计算机应用技术专业论文)m68hc08系列mcu通用编程器及配套软件开发.pdf_第3页
(计算机应用技术专业论文)m68hc08系列mcu通用编程器及配套软件开发.pdf_第4页
(计算机应用技术专业论文)m68hc08系列mcu通用编程器及配套软件开发.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)m68hc08系列mcu通用编程器及配套软件开发.pdf.pdf 免费下载

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

文档简介

摘要 摘要 自从m o t o r o l a 公司推出新一代8 位m 6 8 h c 0 8 系列微控制器之后,该公司积极进 行在我国的推广工作。因其具有速度快、功能强、功耗小及价格低等优点,目前,该 系列微控制器已经渗入到社会各个应用领域。同时,为适应不同应用场合,m o t o r o l a 公司不断推出各类子系列产品,使得新型号微控制器不断涌现。 为了满足用户开发应用的需求,m o t o r o l a 公司提供了该系列芯片的开发工具和配 套编程器。但是,由于价格昂贵而不能被广大国内用户所接受。为此,很多用户根据 自己的需要,自行设计针对某种型号的编程器。事实上,针对m 6 8 h c 0 8 系列的各种 型号的编程器,其硬件和软件设计思路基本一致。为了缩短开发新型号微控制器的周 期,设计一种通用的、扩展性强、价格低廉的编程器成为众望所归。 本文利用m 6 8 h c 0 8 系列中的m c 6 8 1 1 6 9 0 8 j b 8 芯片支持u s b 的特点,研究 m 6 8 h c 0 8 系列通用编程器的硬件和软件设计方法。首先介绍编程器的发展、研究状 况及开发背景。随后,阐述通用编程器的硬件系统设计方案。接着,分别介绍基板和 p c 机端的软件系统设计方案。最后,简单介绍编程器使用及新型号适配器加入方法。 关键词: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 a b s t r a c t a f t e r8 - b i tm 6 8 h c 0 8m c u sc o m i n gi n t om a r k e tm o t o r o l ac o m p a n yw o r k sh a r d i ns p r e a d i n gt h e i ra p p l i c a t i o na c t i v e l yi nc h i n a b e c a u s eo fr a p i d s p e e d , h i g h p e r f o r m a n c e ,l o w e rp o w e r ,l o w c o s ta n ds oo i 3 ,t h em c u s h a v ec o m ei n t o e v e r ya p p l i c a t i o na r e a a tt h es a m et i m e ,m o t o r o l ac o m p a n yp r o d u c e sv a r i o u s n e ws u b f a m i l yt of i ti n t od i f f e r e n tf i e l d t h en e wk i n d so fm c u sa p p e a r c o n s t a n t l y t o s a t i s f yt h eu s e r sd e m a n d ,m o t o r o l ac o m p a n y h a so f f e r e dt h e d e v e l o p m e n tt o o l sa n dp r o g r a m m e r so ft h em 6 8 h c 0 8f a m i l y h o w e v e rt h e ya r et o o e x p e n s i v et oa c c e p tb ys o m eu s e r s s os o m eu s e r sd e s i g nt h ep r o g r a m m e rf o r o n ek l n do fm c ut os a t i s f yt h e m s e l v e s i nf a c t ,t h ei d e ao ft h ed i f f e r e n tk i n d s o fp r o g r a m m e ro fm 6 8 h c 0 8m c u siss a m e au n i v e r s a l ,e x t e n d e da n dl o w c o s t p r o g r a m m e ri sa n t i c i p a n tt os a v et h ed e v e l o p m e n tt i m e t h ep a p e rm a i n l ys t u d i e sh o wt od e s i g nt h eh a r d w a r ea n ds o f t w a r eo ft h e m 6 8 h c 0 8f a m il yu n i v e r s a lp r o g r a m m e rb a s e do nm c 6 8 h c 9 0 8 j b 8 ,w h i c hisam e m b e r o ft h i sf a m i l ya n di n c l u d e su s bm o d u l e f i r s tt h ep a p e ri n t r o d u c e st h eh i s t o r y o ft h ep r o g r a m m e r ,t h ea c t u a l i t yo fr e s e a r c ha n dt h ed e v e l o p m e n tb a c k g r o u n d t h e n ,e x p a t i a t e st h ed e s i g n o fh a r d w a r e s y s t e m , s o f t w a r e s y s t e m o f b a s e b o a r da n dp c a tl a s t ,g i v e st h ew a yt ou s i n gp r o g r a m m e ra n da d d i n gn e w a d a p t e r s k e yw o r d s :m 6 8 h c 0 8m c u sp r o g r a m m e r m c 6 8 h c 9 0 8 j b 8 a d a p t e r w r i t t e nb yl i a n gy i n z h e n s u p e r v i s e db yw a n g y i h u a i m 6 8 h c o b 系列m c u 通月j 编稔糕及配套软件开发 第一章引言 1 1 开发背景 第一章引富 m c u ( m i c r o c o n t r o l l e ru n i t ) ,又称单片微型计算机,是将计算机的c p u 、r a m 、 r 删、定时器和多种i o 接口集成在一个芯片上,形成的芯片级的计算机。存储器是 m c u 的重要组成部分,存储器技术的发展对单片机的发展起到了极大的推动作用。 在单片机中,常用的程序存储器有e p r o m ( 可擦除可编程只读存储器) 、e e p r o m ( 电 可擦除可编程只读存储器) 、o t p ( 一次性可编程只读存储器) 以及f l a s h ( 闪速存 储器或快擦型存储器) 。对于不同的存储器,用于擦除写入的编程器的工作原理也有 所不同。 由于f l a s h 具有电可攘除、无需后备电源来保护数据、可在线编程、存储密度商、 低功耗、低成本、可靠性好等特点,是目前比较理想的程序存储器。m o t o r o l a 公司 推出的8 位m 6 8 h c 0 8 系列m c u 嘲内部不仅含有s c i 、s p i 、c o p 、定时器等功能模 块,其重要特点之一是内部程序存储器采用f l a s h 存储器技术。f l a s h 存储器支持监控 模式和用户模式两种编程方式。为了方便用户将编译好的程序固化到f l a s h 存储器 中,反复擦写进行调试一般情况下要通过编程器来实现,此时单片机工作于监控模 式。为了满足用户对该系列芯片开发应用的需求,m o t o r o l a 公司提供了相应的开发工 具及配套编程器,但由于价格昂贵,操作界面全部为英文,导致许多用户不愿接受。 与此同时,为满足不同应用领域的需求,m o t o r o l a 公司不断推出新型号m c u 。为了 节约开发成本,一些用户就根据自己的需要,自行设计编程器每开发一种型号的 m c u ,就要设计该类型的编程器,这无疑大大增加了用户的工作量,延长了开发周 期。事实上,针对m 6 8 h c 0 8 系列的各种型号的编程器,其硬件和软件设计思路基本 一致,只是进入监控的条件、f l a s h 区的地址范围以及相关寄存器地址等稍有不同嘲。 因此,通过分析比较m 6 8 h c 0 8 系列m c u ,总结归纳出它们的相同点和不同点,就 能开发出一种具有通用性的编程器。为此,本文着重讨论了该类编程器的设计思想, 其主要特点有: ( 1 ) 具有较高的性能价格比。编程器通过u s b 接口与p c 机连接,工作电源从 u s b 接口直接获得,免去了电源模块,降低了成本。 ( 2 ) 通用性。要对不同类型的目标m c u 进行编程,只要通过p c 机设置一下该型 墨二茎! ! 室兰! ! 旦竺! 墨型坚型望塑堕堡堡墨堡室塾竺茎垄 号m c u 的相关参数即可。 ( 3 ) 可扩展性。若要对新出现的目标m c u 进行编程,只要查找该m c u 的数据资 料,根据该类型m c u 进入监控的条件,设计出适配器头。同时将相关参数添加入适配 器数据库,这样就可对该类m c u 进行编程操作了。 ( 4 ) 易操作性。p c 机软件界面有中英文两个版本,用户可根据自己的实际情况 自由选择。 1 2 本文工作与论文结构 1 2 1 本文工作 本文主要工作如下: ( 1 ) 基于m c 6 8 h c 9 0 8 j - b 8 的基板和若干适配器的硬件的设计及实现 一分析若干个目标m c u 进入监控的条件、数据传输的方式以及工作在监控状态下 的电路要求,提取公共要素。 一以带有u s b 模块的m c 6 8 h c 9 0 8 j b 8 芯片作为编程器的主控m c u ,分析其外围电 路。 一采用从特殊到一般的分析方法,设计基板和各适配器的硬件原理图。 一使用p r o t e l 9 9 绘制基板和各适配器的p c b 电路图,联系厂家制作电路板。 一壳子、元器件的选型与采购等。 一焊接、测试,完成硬件系统。 ( 2 ) 基板软件的编写和调试 一根据基板与适配器闻的通讯波特率,编写基板向适配器发送一个字节和从适配 器接收一个字节的子程序。 一利用向从适配器发送接收一个字节的子程序编写r e a d 命令、w r i t e 命令、 r u n 命令等子程序。 一基板与p c 机的通讯方式有两种:模拟串行口通讯和u s b 通讯,分别编写初始 化串行口和u s b 的子程序。 一编写基板向从p c 机发送接收数据的子程序。 一编写u s b 中断服务程序,实现u s b 设备配置。 ( 3 ) p c 机软件的编写和调试 一界面设计。考虑到功能模块不是很多,因此没有使用菜单,仅在窗体上安排了 一个t a b s t r i p 控件。 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 一 第一章引言 一适配器数据库的创建。根据适配器非共性参数,设计数据库的结构,包括字段 名称以及各字段的类型、取值范围等。 一适配器数据库的操作,包括编辑、修改、添加、查找以及向前、向后、到头、 到尾浏览。 一编写p c 机向从适配器发送接收数据的子程序。 一根据用户选择的页的大小,将s 1 9 文件进行分页存入数组中。 一实现反汇编。将用户指定的目标文件( s 1 9 文件) 翻译成源文件( a s m 文件) 。 1 2 2 论文结构 全文共六章,各章的内容安排如下: 第一章主要介绍目前编程器的研究状况及开发背景,并给出论文的结构。 第二章详细介绍通用编程嚣的硬件系统设计方案,其中包括基板的工作原理以及 几种适配器的设计方法。 第三章和第四章分剐阐述基扳和p c 机端的软件系统设计方案,并给出关键子程 序的源代码、流程图或算法描述。 第五章介绍编程器的使用方法以及新型号适配器的加入方法。 最后一章对本文的工作进行总结,并提出一些尚待改进的地方。 3 皇三皇墅墨竺堡生 坚塑! ! ! 堡墨型! 婴堕旦堕堡璺墨墼室塾丝茎叁 第二章硬件系统设计 硬件系统是实现整个系统的基础。目前,编程器的硬件实现方案主要有两种,一 种是直接采用m o t o r o l a 公司提供的技术手册中的监控模式编程电路图。此时,p c 机 通过r s 2 3 2 口直接对目标芯片进行编程。第二种方案是设计一个基板,对于不同的目 标芯片,根据进入监控的条件设计相应的适配器,p c 机通过基板实现对目标芯片的 编程。目标芯片不同,管脚数及定义则不同,进入监控的条件也不同,因此,要设计 一个通用的编程器只自& 采用第二种方案,即基板适配器方案。 2 1 基板一适配器方案 采用基板一适配器方案实现的编程器包括两个m c u :主控m c u 和目标m c u 。逻辑结 构如图2 - 1 所示。 i 基板 i 适配器 囝2 _ 1 缡程髂逻辑缩鞫 主控m c u 通过运行自身f l a s h 中的程序实现对目标m c u 的f l a s h 进行擦除、写入、 读出、效验等操作。此时,目标m c u 一般工作于监控模式状态下,等待从主控m c u 接收命令和数据,完成相应的操作。当给目标蛐c u 上电后,要使目标m c u 进入监控状 态,必须满足一定的硬件条件。在仔细分析m c 6 8 h c 9 0 8 j b 8 ( 以下简称j b 8 ) 、 m c 6 8 h c 9 0 8 g p 3 2 ( 以下简称g p 3 2 ) 、m c 6 8 h c g o s m r 8 ( 以下简称凇8 ) 、m c 6 8 h c 9 0 8 儿3 ( 以 下简称j l 3 ) 以及m c 6 8 h c 9 0 8 j l 8 ( 以下馋称j l 8 ) 进入监控的硬件条件之后,发现部 分外围电路是相同或相似的。例如,产生目标辩u 工作时钟的晶体振荡电路大同小异, 仅是晶振频率不同:为了实现对非空芯片的擦除操作,都需要9 v 电源产生模块输出 4 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 第二章硬件系统设计 的高压:因此,可以将这些相同部分与主控m c u 及其外围电路安排在一起,形成基板 电路,而目标m c u 及其剩余的外围电路形成适配器电路。基板与适配器之间通过电缆 连接,电缆中的信号包括:电源线、数据传输线、9 v 电源线、晶振输入输出线以及 地线。采用这种基板一适配器方案设计的编程器不仅节约了成本,而且具有更大的灵 活性,便于新型号m c u 适配器的加入。 下面具体讨论基板以及若干适配器的硬件设计,并总结适配器硬件设计的一般方 法。 2 2 基板的硬件设计 由图2 - 1 可以看出,基板由主控m c u 、与p c 机通讯的接口电路、高压产生电路、 电源控制电路以及分别为主控m c u 和目标m c u 提供工作时钟的晶体振荡电路等部分组 成。 ( 1 ) 主控m c u 的选择 考虑到目前u s b 技术日臻成熟,u s b 设备因其即插即用的特点而备受广大用户所 喜爱。同时综合考虑r a m 、f l a s h 的大小等其他因素,最终选择2 0 脚的j b 8 作为基板 的主控m c u 。 2 0 脚的j b 8 芯片哪的主要特性如下: 1 ) 3 m h z 内部总线频率; 2 ) 6 4 b i 0 寄存器区; 3 ) 2 5 6 b 的片内r m : 4 ) 8 1 9 2 b 的片内f l a s h 存储器,具有在线编程能力和保密功能; 5 ) 9 7 6 b 监控r 叫; 6 ) 1 6 b 用户定义矢量区; 7 ) 2 个1 6 位双通道定时器接口模块,每个通道可选择为输入捕获、输出捕获和 脉宽调制输出; 8 ) 内置u s b 模块,遵循u s b i 1 协议: 一作为低速设备,l 。b 抽p s 数据速率: 一端点0 具有8 字节发送缓冲区和8 字节接收缓冲区; 一端点1 具有8 字节发送缓冲区: 一端点2 具有8 字节发送缓冲区和8 字节接收缓冲区; 一端点0 为控制传输端点: 5 第二章硬件系统设计 m 6 8 h c 0 8 幂列m c u 通用编程器及配套软件开发 一端点1 和2 为中断传输端点; 9 ) 系统保护特性,看门狗电路,低电压检测; ( 2 ) 主控m c u 与p c 机的接口电路。 p c 机的u s b 接口含有四根线: 电源线、地线、d + 和d 一。因此,基 板可以直接从u s b 接口取电,免去 了电源模块的电路。u s b 接口电路 如图2 2 所示。其中d + 和d 一两根 线上的2 7 q 的电阻是可选的嘲。在 d _ 与v r e g ( 3 3 v ) 之间没有使用一 电源线。 i 刮i r 毯瑟羹卜_ l t - - - 一 li 2 * 2 7 q 图2 - 2u 鞠接口电路 个1 5 k q 的上拉电阻,因为在软件设计中,使用了u c r 3 ( u s b 控制寄存器3 ) 的p u l l e n , 即采用内部上拉电阻。具体参见3 5 1u s b 初始化。, j a b 的u s b 模块包括三个功能块: 低速u s b 收发器、u s b 控制逻辑和u s b 寄存器。其中,低速u s b 收发器为d + 和d 一两 根数据线提供了物理接口,由发送驱动电路和接收驱动电路组成。u s b 控制逻辑负责 c p u 与收发器之间的数据传输,在发送数据过程中,控制逻辑负责并行到串行的转换、 产生c r c 效验码、n r z i 编码以及位填充。在接收数据过程中,控制逻辑负责s y n c 检 测、包识别、e o p 检测、n r z i 解码、 c r c 效验以及串行到并行的转换。 u s b 寄存器共有3 5 个,关于各寄存 器的使用将在第三章详细介绍。 为了使得编程器具有更广泛的 适应性,也便于调试有关u s b 通讯子 程序,本文同时也设计了串行通讯接 口。由于j b 8 不包含s c i 模块,因此 选择了普通i 0 口p t a 4 和p t a 5 分别 图2 - 31 携2 3 2 接口电路 作为发送脚和接收脚,通过电平转换芯片m a x 2 3 2 同与p c 机的串行口连接。如图2 3 所示。当j b 8 向p c 机发送数据时,m a x 2 3 2 芯片将输出口p t a 4 的t t l 电平转换成r s 2 3 2 电平;而当p c 机向j b 8 发送数据时,该芯片负责将r s 2 3 2 电平转换成t t l 电平送入 输入口p t a 5 。需要说明的是,若仅通过串行口与p c 机进行通讯( 不用u s b ) ,必须要 有5 v 外接电源,为纂板提供工作电压。 ( 3 ) 高压产生电路 6 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 、第二章硬件系统设计 m a x 2 3 2 芯片不仅具有电平转换功能,因其内部含有双重电荷泵,由2 脚还可输出 1 0 v 的高压。这样,为使目标m c u 上电进入监控模式的高压可直接从 芯片m a x 2 3 2 获取,从而省去了外接 电源。 ( 4 ) 电源控制电路 目标m c u 要进入监控状态,以 及进入后要能正常工作,都需要5 v 电源供电。为了能控制电源开关, 本文使用了软件控制与硬件控制相 结合的方法。如图2 - 4 所示。定义 l 圉2 - 4 适配蕊电霹控制电路 j b 8 的p t a l 脚为输出。当p t a i = 0 ( 低电平) 时,t 1 导通,t 2 截止,输出高电平:当 p t a l = l ( 高电平) 时,t 1 截止,t 2 导通,输出低电平。将此电源输出作为适配器上 m c u 的电源输入。 连接到适配器 o s c l 0 s c 2 圈2 - 5 基扳体摄荡电路 田2 - 6 适配器体撮落电路 ( 5 ) 基板晶体振荡电路 基板晶体振荡电路如图2 - 5 所示。该电路为j a 8 提供工作时钟,在m c u 引脚o s c l 和0 s c 2 的两端接一晶体谐振器( 简称晶振) x l 和偏压电阻r b ,再分别通过固定电容 c l 和微调电容c 2 接地,电容c 2 主要用于调整起报时间,偏压电阻r b 的作用是加大 振荡电路的负载,在低压时使振荡器停振,从而使k i c u 不会发生低电压工作错误的情 7 第二章硬件系统设计 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 形。在本设计中, r b 为1 0 m o ,晶振采用6 m h z ,c 1 和c 2 皆为2 0 p f 。 ( 6 ) 适配器晶体振荡电路 适配器晶体振荡电路为适配器提供工作时钟,如图2 - 6 所示。通过四组开关分别 选择晶振x l ( 4 m h z ) 、x 2 ( 1 2 m h z ) 、x 3 ( 9 8 3 0 4 m h z ) 和x 4 ( 6 e t z ) ,以满足不同适配器的 需要。 另外,时钟电路部分会对其他电路造成干扰,在电路板布线时应该将时钟电路的 外接器件都用地线围绕起来,晶振应该采用卧式安装,将外壳焊接在地线上,最大限 度地减小对外的电磁干扰。振荡器与o s c l 和0 s c 2 引脚的连线应尽可能短,因此,基 板与适配器连接的电缆也越短越好。 2 3j b 8 适配器的硬件设计 本文中适配器的命名是根据待编程的m c u 即目标m c u 的类型而定的。m 6 8 h c 0 8 系 列芯片有上百种,其中大部分m c u 带有监控r o m 。限于时间关系,本文仅讨论了5 种 m c u 的适配器。但是,由于基板设计中已经提供了与适配器连接的通用接口,在详细 介绍了这5 种适配器的设计方案之后,本文又给出了一种设计适配器的通用方法,因 此,若想增添其他类型的适配器,可以类似进行。 不同的m c u 进入监控的具体硬件条件略有不同,就同一个m c u 而言,一般也有几 种不同的进入方式。到底选择哪一种方式,是设计者所需要考虑的问题。适配器上电 复位后,只要具备其中一种方式对应的条件,就能进入监控。一旦进入监控以后,目 标m c u 就可以通过一根( 发送线与接收线合用) 或两根( 发送线与接收线分开) 信号 线以9 6 0 0 b p s 的速率与主控m c u 进行通讯( 本文中以主控m c u 的p t a 0 作为数据线) , 表 1j b 8 进入监控方式 方式 i r q 复位矢量m 3p 陇 f 队l p i :a 0外部时钟 1 v d d 4 - v i 任意 o o113 h 珏 z 2 v d n + v m 往意 10j i l ,j 伽毪 3 v d ds f f 任意任意 任意l6 1 舭 同时,原来进入监控时所要求的各引脚的取值可以随意改变。 对于j b 8 而言,进入监控的方式有三种,表2 - i 中列出了j b 8 以不同方式进入监 控模式时的引脚条件。其中,v 加电压取值范围为4 0 v 5 5 v ,v 为0 7 x v d d ,因 此,v + 、,的电压范围为6 8 v 9 3 5 v 。方式3 局限于全空芯片进入监控,而方式l 8 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发第二章硬件系统设计 和方式2 则没有这个限制。不管采用i 哪种 方式,m c u 的内部总线频率是一样的,都 是3 m h z 。本文采用了方式2 ,硬件原理框 图如图2 7 所示。图中的圆圈表示这些引 脚线要通过插座与基板连接。j b 8 适配器 以p t a o 作为适配器与基板进行通讯的数 据通道。6 m h z 的晶振由基板上的开关选择 得到。需要说明的是,大多数m c u 芯片既 可以用集成在内部的振荡器,也可以接受 外部输入的时钟源或外接晶体振荡器。若 用外部时钟源或外接晶体振荡器,可把外 1 陌产数据线 l 暑轴唧 f 罚芦 卜_ _ 二二) 1 i婴;v c c卜- ( 二= = 卜一 卜_ 固l b 源线 卜书地线 - - - 0 晶振输入,输出 l 勺晶振输入,输出 l 轴9 v 电源线 部振荡器输出接芯片的o s c i 引脚,此时0 s c 2 引脚悬空即可。后面介绍的g p 3 2 适配 器就采用了外接晶体振荡器方式。 2 4j l 3 和j l 8 适配器的硬件设计 j l 3 芯片有2 8 引脚和2 0 引脚两种封装形式咖,此处讨论2 0 引脚形式。j l 3 进入 监控的方式也有三种,如表2 2 所示,本文采用了方式2 ,进入监控的条件与j b 8 非 常相似。将图2 7 中的p t a o p t a 3 改为p t b o p t b 3 则得到适配器硬件原理图。当然, 在使用j l 3 适配器时,通过基板上晶振选择开关,应该选择晶振x 3 ( 9 8 3 0 4 m h z ) t 此 时,总线频率为2 4 5 7 6 m h z 。另外,j l 3 把p t b o 作为数据传输线。 由于2 0 引脚的j l 8 。1 与j l 3 管脚定义一样,进入监控的条件也一样,因此这两种 表2 - 2j l 3 j l 8 进入监控方式 方式i r q复位矢量 p t b 3m 2m 1p 1 8 0外部时钟 l v d d + v m 任意 001 14 9 1 5 此 2 v d d + v m 任意 lo1l9 8 3 0 4 h m z 3 v d d $ f f任意任意任意 19 8 3 0 4 n 正i z 类型的m c u 可合用一个适配器,这里不再详述。 2 5g p 3 2 适配器的硬件设计 9 裟黧罢嚣瑚 第二章硬件系统设计 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 4 0 引脚的g p 3 2 芯片“”进入监控的方式有4 种,监控条件也比j b 8 复杂些。参见 表2 3 。其中,p t a 0 为数据传输线,v d d 为5 o 1 0 v ,v 1 耵的电压为v d d + 2 5 v 。矽 表2 - 3g p 3 2 进入监控方式 复位外部 方式l r o r e s e 玎 p l lp t c 0p t c lp t c 3p t a 0 p t a 7 矢量时钟 v d d 或 1 v t s t 任意 o f f10o104 9 1 5 2 m h z 竹耵 v d d 或 2 v t s t 任意o f f101 1 09 8 3 0 4 m h z v t 耵 3 v d dv d d l f fo f f任意 任意任意 lo9 8 3 0 4 m h z 4 g n d v d d s f fo n 任意任意 任意 1o3 2 7 6 8 黜 部时钟”一栏的含义与表2 - 2 中不同,此处表示时钟信号可以由3 2 7 6 8 k h z 的内部晶 体振荡电路产生,也可以由 4 9 1 5 2 m h z 9 8 3 0 4 m h z 的外部晶体振荡器产 生,通过o s c i 直接输入。由表可以看出,要 想使用旧芯片,只能采用方式1 和2 ,由于基 板上仅提供了内部晶体振荡电路,因此,g p 3 2 适配器板上要提供外部晶体振荡器电路。参见 9 8 3 0 4 1 1 1 1 z肇 芦硼商咿 阱畦侥坤 7 t l s 0 4 7 t l s 0 47 4 l $ 0 4 图2 - 8 外部晶体振荡器 图2 - 8 。此电路用了芯片d m 7 4 l s 0 4 “”的三个反向器,该芯片6 脚输出9 8 3 0 4 m h z 的方 波,输入到g p 3 2 的o s c i 脚,0 s c 2 脚悬空。 2 。6m r 8 适配器的硬件设计 上述四个适配器有一个共同点,那就是适配器 向基板发送数据和适配器从基板接收数据共用一根 信号线,具有2 8 个引脚的m r 8 芯片“”则不同,它是 p t b 0 引脚用作接收数据,p t b i 引脚用作发送数据。 为统一起见,可以在这两个引脚上各加一个二极管。 参见图2 - 9 。这样,对于基板来说,发送和接收仍然 圈2 9u r 8 发送接收线处理 合用一根线。当p t b i 脚发送数据时,n 1 导通;当p t b 0 脚接收数据时,n 2 导通。m r 8 进入监控的条件参见表2 4 。本文采用方式1 进入监控,4 m h z 的内部晶体振荡器产生 8 m h z 的总线频率。 i o m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 第二章硬件系统设计 表2 - 4m r 8 进入监控方式 方复位外部总线 式 i r qr e s e t p l lp t b 0m 1 波特率 矢量 时钟 频率 v d d 或 1 v n l 任意o n v d dv s s 4 o m h z8 o m h z9 6 0 0 v m 2 v d dv d d $ f fo f f任意任意4 o m h z8 o l v t h z9 6 0 0 3 v s sv d d s f fo f f任意任意 f o s cf o s c ,4 f o s c 1 0 2 4 2 7 适配器硬件设计的一般步骤 详细介绍了几种适配器的硬件设计方案后,下面给出设计适配器硬件的一般步 骤: ( 1 ) 首先查阅准备采用的m c u 的数据资料: ( 2 ) 详细了解该类型m c u 进入监控的方式和条件。根据实际情况,选择其中 一种方式: ( 3 ) 设计硬件电路图,满足所选择的方式对应的条件。 ( 4 ) 上电,测量相关引脚电压,同时配合调试软件的运行,判断m c u 是否进 入了监控状态。 2 8 本章小结 本章主要介绍了组成编程器的两大构件基扳和适配器的硬件设计思想,阐述了 基板选择i b 8 作为微控制器的原因,并详细介绍了p c 机与基板、基扳与适配器的硬 件连接,最后给出了设计适配器的一般方法和步骤。需强调的是,在设计适配器硬件 电路时,一定要严格根据目标芯片进入监控的条件进行设计,一些滤波电容应该离目 标芯片尽可能近,布线时,目标芯片的晶振输入输出脚到捅座的距离应近可能的短。 下一章将详细介绍基板的软件设计。 第三章基板的软件设计 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 3 1 概述 第三章基板的软件设计 上一章重点阐述了基板、j b 8 适配器、j l 8 适配器、j l 3 适配器、g p 3 2 适配器以 及m r 8 适配器的硬件设计,事实上,这些硬件设计并非一气呵成,而是借助测量仪器、 调试小程序反复实验而总结出来的。任何做过嵌入式系统的人都知道,在实际开发中, 硬件设计和软件设计其实是密不可分、交互进行的“。 软件设计的首要任务是确定编程语言。开发嵌入式系统既可用汇编语言,也可用 高级语言。众所周知,作为低级语言的汇编语言在代码编写和维护上效率较低,通用 性不强,可读性差,但是在编写有关数据通讯中的时间延迟程序时则比较直观,代码 执行效率高。而高级语言的优点是易于掌握,代码便于阅读和维护,但最终产生的目 标代码冗长。考虑到本设计中涉及p c 机与基板、基扳与适配器的通讯程序对时间延 迟的要求比较高,j b 8 芯片的r a m 容量也不大,再加上笔者在汇编语言的编程方面积 累了一些宝贵经验,所以最终采用了汇编语言作为基板软件的开发语言,编译工具采 用的是苏州大学m o t o r o l a 实验室研制的“m c 6 8 h c 9 0 8 g p 3 2m c u 在线编程实验开发系 统”。o “ 本系统软件设计的最终目标是要在基板m c u 即j b 8 内写入程序( 以下把此程序称 作主程序) ,该程序要与p c 机进行串行口或u s b 通讯,实现对各种目标芯片( 如上一 章介绍的j b 8 、j l 8 、j l 3 、g p 3 2 、m r s ) 内的f l a s h 进行擦除、写入等操作。具体开 发步骤如下: ( 1 ) 首先主控芯片采用g p 3 2 ,实现对目标芯片j b 8 的擦除、写入等操作,同时 通过串行口与p c 机通讯; ( 2 ) 更改主控芯片g p 3 2 中的程序,编译生成目标文件,将此目标文件写入j b 8 , 再将其作为主控芯片插到基板上运行; ( 3 ) 重复步骤2 ,直到主控芯片j b 8 对目标芯片j b 8 擦除、写入等操作成功, 并且通过串行口与p c 机通讯成功: ( 4 ) 提取参数,使主程序能对2 种目标芯片j b 8 、j l 8 操作: ( 5 ) 继续提取参数,使主程序能对3 种目标芯片j b 8 、j l 8 、j l 3 操作; ( 6 ) 继续提取参数,使主程序能对4 种目标芯片j b 8 、j l 8 、j l 3 、g p 3 2 操作; m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 第三章基板的软件设计 ( 7 ) 继续提取参数,使圭程序能对5 种目标芯片j b 8 、j l 8 、j l 3 、g p 3 2 、m r 8 操作; ( 8 ) 修改程序,使之能够通过两种方式与p c 机通讯:串行口和u s b ; 需说明的是,在步骤1 中,为什么采用g p 3 2 作为主控芯片而不直接用j b 8 呢? 原因是,在基于j b 8 的编程器调试成功之前,没有办法将程序写到j b 8 中。而借助苏 州大学m o t o r o l a 实验室开发的“s d 一1 在线编程实验仪”,以及配套软件 “m c 6 8 h c 9 0 8 g p 3 2m c u 在线编程实验开发系统”,则能很方便地在线调试程序。因此, 首先着手实现主控芯片g p 3 2 对目标芯片j b 8 的编程,在上一章介绍的j b 8 适配器电 路的基础上,加上图2 - 4 电源控制电路、图2 - 5 基板晶体振荡电路,然后与“s d _ 1 在线编程实验仪”相连接,使g p 3 2 的p t a o 作为与适配器通讯的数据线,p t a l 为适 配器电源控制线,从实验仪上的芯片m a x 2 3 2 的2 脚( 9 v ) 引出一根线连接到j b 8 的 i r q 脚,这样就可以进行软件调试了。 在步骤2 中,如果运行于g p 3 2 中的程序不作任何修改,直接写到目标芯片j b 8 中,然后再将它插到基板上并运行,其结果显然是“毫无反应”( 实验结果也如此) 。 分析其原因,主要有以下几点: ( 1 ) g p 3 2 和j 8 8 的f l a s h 开始地址不同,g p 3 2 为$ 8 0 0 0 ,j b 8 为$ d c 0 0 , ( 2 ) g p 3 2 通过s c i 模块与p c 机进行串行口通讯,而j b 8 没有s c i 模块; ( 3 ) g p 3 2 的总线频率为2 4 5 7 6 m h z ,而j 聃的总线频率为3 m h z ,调用同样的延 迟子程序,虽然执行周期一样,但实际延迟时间不同。 下面直接介绍j b 8 基板上圭程序的设计,而作为过渡设计的g p 3 2 主程序,在此 不予介绍。 3 2 基板与适配器的数据通讯 当适配器上的j 4 c u 进入监控模式“”后。开始运行监控r o m 中的程序。此程序是在 芯片生产时写入的,用户不可以改变其中的代码。虽然不同m c u 的监控r o m 程序存放 地址不同,长度也可能不同,但是所具备的功能基本相同,包括验证8 个保密字节, 执行监控命令等。j b 8 基板与适配器的数据通讯采用异步串行和n r z ( 不归零) 格式, 具体为:第一位起始位( 0 ) ,随后为8 个数据位( 低位在前,高位在后) ,最后一位为 停止位( 1 ) 。参见图3 - i 。数据传输速率为9 6 0 0 b p s 。每当适配器接收到j b 8 发送的一 飞竺艇e 延d 弘匡亟涎d 廷p 逦弘匦x 匣酒a 田3 - i 嘲z 数据传输格式 1 3 第三章基板的软件设计 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 个字节后,立即又发送该字节给j b 8 作为回应,j b 8 可根据回应的字节判断通讯是否 正常。如何发送一个字节到适配器? 又如何从适配器接收一个字节昵? 下面介绍这 两个重要的底层子程序。 3 2 1 向适配器发送一个宇节 已知j b 8 的总线频率为f = 3 m h z ,则每个周期为t = l f = o 3 3 u s ;基板与p c 机的通 讯速率为9 6 0 0 b p s ( 即9 6 0 0 b i t s ) ,因此传输l b i t 占用( 1 9 6 0 0 ) * 1 0 0 0 = 1 0 4 u s = 3 1 2 个周期,传输0 5 b i t 占用1 5 6 个周期。为此,编写了d e l a y b i t t i m e 和d e l a y h a l f b i t 两个延迟子程序,分别实现延迟l b i t 发送时间和0 5 b i t 发送时间。参见图3 2 和 图3 - 3 。不难算出,使用j s r 语句调用予程序d e l a y h a l f b i t 实际延迟周期数为: 4 + 2 + 2 + 2 6 5 + 2 + 4 = 1 4 4 ,而调用d e l a y b i t t i m e 实际延迟周期数则为: 4 + 1 4 4 + 1 4 4 + 6 + 4 = 3 0 2 。为什么比刚才计算的周期数1 5 6 和3 1 2 要小些呢? 主要是便于 在实际调用它们时再作微调。 d e l a y h a l f b i t : p s h a:2 个周期 l d a # 2 6:2 个周期 d e l a y h l : d 阢a:1 个周期 n o p:1 个周期 b n ed e l a y h l :3 个周期 p u l a:2 个周期 r t s :4 个周期 图3 - 2 延迟子程序o e l a 州a i 伟i t d e l a y b i t t i m e : j s rd e l e 【y h a l f b i t :1 4 4 个周期 j s rd e l a y h a l f b i t :1 4 4 个周期 n o p:1 个周期 n o p :1 个周期 n o p:1 个周期 n o p :1 个周期 n o p:1 个周期 n o p :1 个周期 r t s:4 个周期 田3 - 3 延迟子程序d e i a y b i t t i m e 在编写向适配器发送一个字节的子程序s e n d l b y t e 时,要精确计算发送相邻两位 之间的周期数。该子程序的代码如图3 “l 所示,入口参数为寄存器a ,发送该字节 的过程是:先定义输出口,并维持高电平差不多发送2 b i t 位时间,然后发送起始位 ( 从开始) ,随后通过循环右移a 中的内容由低到高依次发送8 个数据位,最后发 送停止位。为了确保在每两个发送位之间保持时间间隔为3 1 2 个周期,程序中加了一 些空语句作调整。例如图3 4 ( 1 ) 中,后语句的功能是发送起始位,和后语句的 功能分别是发送a 中的某一高位或低位。和之间的代码所占周期数为: 3 0 2 + 1 + 1 + 1 + l + 2 + 1 + 3 = 3 1 2 ,执行或者后语句到发送下一位时所占周期数为: 3 + 3 0 2 + 3 + 】+ 3 - 3 】2 。 1 4 m 6 8 h c 0 8 系列m c u 通用编程器及配套软件开发 第三章基板的软件设计 s e n d i b y t e : b s e t0 ,o u t p o r t s :输出q o 脚定义为输出 b s e t0 ,o u t p o r t :令输出口0 脚为高电平 j s r d e l a y b i t t i m e :3 0 2 个周期 j s rd e l a y b i t t i m e :3 0 2 个周期 :发送起始位 b c l r0 ,p t a :起始位 j s rd e l a y b i t t i m e :3 0 2 个周期 n o p :1 个周期 n o p :1 个周期 n o p :l 十周期 n o p :1 个周期 l d x# $ 0 8:2 十周期 s e n d i b y t e o : r o r a:l 十周期 b c c s e n d l b y t e l :3 个周期 :发送数据位。离电平 b s e t0 p t :4 q - 周期 b r a s e n d l b y t e 2 :3 个周期 s e n d l b y t e l : : 发送数据位,低电平 b c l r0 p t a n o p:1 4 周期 b o p :1 个周期 n o p:1 个周期 s e n d l b y t e 2 : j s rd e l a y b i t t i m e :3 0 2 个周期 舶n z xs e n d l 鼢t e o:3 个周期 璐e to ,p t :停止位 j s ri k l a y b t t t i t m :3 个罔期 r t s r e c e i v e l b y t e : b c l r0 ,o u t p o r t s:输出口0 脚定义为输入 b r s e t0 p t a ,+ :等待起始位 :等待起始位接收时问 n o p:1 个周期 n o p :1 个周期 n o p:1 个周期 n o p:1 个周期 n o p :1 个周期 n o p :1 个周期 n o p:1 个周期 l d x # ! :2 个周期 c u c :1 个周期 r e c e i v e l b y t

温馨提示

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

评论

0/150

提交评论