1、西安欧亚学院本科毕业论文(设计) 目录 1 绪论 . 1 1.1 嵌入式系统开发的背景及意义 . 1 1.1.1 本课题的研究方法和理论依据 . 1 1.1.2 嵌入式系统当前国内外发展情况 . 2 1.1.3 嵌入式系统的发展前景及相关问题。 . 3 1.2 选题意义 . 4 1.3 本课题的设计思路 . 4 2 系统组成原理 . 5 2.1 LPC2103 的引脚功能 . 5 2.2 SPI 总线 . 5 2.3 SD 模块的构成 . 6 2.4 SPI 中断应用 . 8 2.5 看门狗的组成原理 . 8 2.5.1 看门狗的工作原理 . 8 2.5.2 看门特的特性 . 8 2.6 12
2、864 液晶 . 10 3 程序设计 . 12 3.1 SPI 总线及其中断 . 12 3.2 基于 SPI 总线的 SD 卡程序设计方案 . 14 3.2.1 SD 初始化 . 14 3.2.2 SD 卡读一个扇区函数 . 14 3.2.3 SD 卡写一个扇区函数 . 15 3.2.2 基于 SPI 总线的 SD 卡设计的流程图 . 15 3.2.2 SD 卡程序流程图 . 16 3.2.4 基于 SPI 总线的 SD 卡程序设计的扩展 . 19 3.3.1 看门狗的程序流程图 . 20 3.3.2 看门狗的程序清单 . 21 3.4.2 12864 液晶的程序流程图 . 22 3.4.3
3、12864 液晶的程序设计清单 . 22 3.4.4 12864 液晶的程序设计扩展 . 24 ( 1) 12864 的 GUI 建立 . 24 4 程序调试和功能分析 . 26 4.1 使用仪器 . 26 4.2 调试前准备工作 . 26 西安欧亚学院本科毕业论文(设计) 4.3 系统调试 . 26 5 问题处理 . 27 致谢 . 错误 !未定义书签。 参考文献 . 28 西安欧亚学院本科毕业论文(设计) 1 1 绪论 1.1 嵌入式系统开发 的背景及意义 嵌入式计算机系统的出现,是现代计算机发展史上的里程碑。嵌入式系统诞生于微型计算机时代,于通用计算机的发展道路完全不同,形成了独立的单芯
4、片的技术发展道路。由于嵌入式系统的诞生,现代计算机领域出现了通用计算机与嵌入式计算机两大分支。不可兼顾的技术发展道路,形成了两大分支的独立发展;通用计算机按照高速、海量的技术发展;嵌入式计算机系统则为满足对象系统按照嵌入式智能化控制要求发展。由于独 立的分工发展, 20 实际末,现代计算机的两大分支 都得到了迅猛的发展。 经过几十年的发展,嵌入式系统已经在很大程度上改变了人们的生活、工作和娱乐方式,而且这些改变还在加速。嵌入式系统具有无数的种类,每种都具有自己独特的个性。例如, MP3,数码相机与打印机就有很大的不同。汽车中更是具有多个嵌入式系统,是汽车更轻快、更干净、更容易驾驶。 即使不可见
5、,嵌入式系统也无处不在。嵌入式系统在很多产业中得到了广泛的应用并逐步改变着这些产业,包括工业自动化、国防、运输和航天领域。例如神州飞船和长征火箭中有很多嵌入式系统,导弹的 制导系统也是嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活中,人们使用各种嵌入式系统,但未必知道他们,事实上,几乎所有的带有智能的家电都有嵌入式系统。嵌入式系统广泛的适应能力和多样性,使得视听,工作场所甚至健身设备中到处都有嵌入式系统。 1.1.1 本课题的研究方法和理论依据 本课题采用 C 语言进行程序的开发和编写, C 语言具有如下特点: ( 1)语言简洁 .紧凑 .使用方便 .灵活。 ( 2)运算符丰富。
6、( 3)数据结构丰富,具有现代化语言的各种数据结构。 ( 4)具有现代化的控制语句(如 if.else 语句 while 语句 .do.while 语句 switch语句 .for 语句)。 ( 5)语法限制不太严格,程序设计自由度大。 ( 6) C 语言能进行位( bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 ( 7)生成目标代码质量高,程序执行效率高。 ( 8)程序可移植性好 开发平台 为 IAR EWARM; IAR Embedded Workbench for ARM 是 IAR Systerms 公司为 ARM 微处理器开发的一个集成开发环境,比较其他的 ARM
7、 开发环境, IAR EWARM 具有入门容易、使用方便和代码紧凑 等特点。 西安欧亚学院本科毕业论文(设计) 2 为了能够在真实的目标板上进行代码运行和调试,专门购买了 IAR 公司的 JTAG仿真器 J-Link。 J-Link 是 SEGGER 公司为支持仿真 ARM 内核芯片推出的 JTAG 仿真器。配合 IAR EWARM, ADS, KEIL, WINARM, RealView 等集成开发环境支持所有 ARM7/ARM9 内核芯片的仿真,通过 RDI 接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发 ARM 最好最实用的开发工具。 J-Link ARM 的主要
8、特点 IAR EWARM 集成开发环境无缝连接的 JTAG 仿真器 支持所 有 ARM7/ARM9 内核的芯片,以及 cortex M3,包括 Thumb 模式 支持 ADS, IAR, KEIL, WINARM,REALVIEW 等几乎所有的开发环境 下载速度高达 ARM7:600KB/s,ARM9:550kB/s,通过 DCC 最高可 达 800kB/s 最高 JTAG 速度 12MHz 目标板电压范围 1.2V-3.3V 自动速度识别功能 检测所有的 JTAG 信号和目标板电压 完全即插即用 使用 USB 电源 带 USB 连接线和 20 芯扁平电缆 支持多 JTAG 器件串行连接 标准
9、 20 芯 JTAG 仿真插头 选配 14 芯 JTAG 仿 真插头 选配用于 5V 目标板的适配器 带 J-Link TCP/IP server,允许通过 TCP/IP 网路使用 J-Link 1.1.2 嵌入式系统 当前国内外发展情况 ARM 公司自 1990 年正式成立以来,在 32 位 RISCCPU 开发领域不断取得突破,其结构已经从 V3 发展到 V6。由于 ARM 公司自成立以来,直以 IP 提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在 32 位嵌入式应用领
10、域获得了巨大的 成功,目前已经占有 75%以上 32 位 RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。现在设计、生产 ARM 芯片的国际大公司已经超过 50 多家,国中兴通讯和华为通讯等公司已经购买 ARM 公司芯核用于通讯专用芯片的设计。 目前非常流行的 ARM 芯核有 ARM7TDMI, StrongARM, ARM720T, ARM9TDMI,ARM922T, ARM940T, RM946T, ARM966T, ARM10TDMI 等。自 V5 以且, ARM公司提供 Piccolo DSP 的芯核给芯片设计得,用于设计 ARMDSP 的 SOC 结构芯片
11、。西安欧亚学院本科毕业论文(设计) 3 此外, ARM 芯片还获得了许多实时操作系统供应商的支持,比较知名的有: Windows CE、 Linux、 pSOS、 VxWorks、 Nucleus、 EPOC、 uCOS、 BeOS 等。目前可以提供ARM 芯片的著名欧美半导体公司有:英特尔、德洲仪器、三星半导体、摩托罗拉、飞利浦半导体、意法半导体、亿恒半导体、科胜讯、 ADI 公司、安捷伦、高通公司,我国台湾地区可以提供 ARM 芯片的公司台积电、台联电、华帮电子等。其它已购买ARM 芯核,正在设计自主版板权专用芯片的大陆公司会为通讯中兴通讯等 。 嵌入式系统的发展 非常的迅速,国内的研发水
12、平却处于起步阶段,但是嵌入式系统的应用是无处不在的,所以今后还有相当长的路要走。 1.1.3 嵌入式系统的发展前景及相关问题。 由于网络与通信技术的发展,嵌入式系统在经历了近 20 年的法杖历程后,有进入了一个新的历史发展阶段,即从普遍的低端应用进入到一个高端、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来 32 位 MCU 的发展。 32 位MCU 的应用不会走 8 位机百花齐放、百余种型号系列齐上阵的道路,这是因为在 8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前 32 位 MCU的少数型号系列上。 在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很
13、早就有许多 8 位嵌入式 MCU 厂家实施了 8 位, 16 位和 32 位机的发展计划。后来, 8 位和 32 位机的技术扩展侵占了 16 位机的发展空间。传统电子系统智能化对 8 位机的需求是这些厂家将主要精力放在 8 位机的发展上,形成了 32 位机发展迟迟不签的局面。当网络、通信和多媒体信息家电业兴起后, ARM 公司适时地推出了 32 位 ARM 系列嵌入式微处理器,以至于使不少传统嵌入式系统厂家放弃了自己的 32 位发展计划,转而使用ARM 内核来发展自己的 32 位 MCU。甚至 在嵌入式系统发展上 做 出卓越贡献的 Intel公司以及将单片机微型计算机发展到微控制器的 PHIL
14、IPS 公司,在发展 32 位嵌入式系统时都不另起炉灶,而是转而使用 ARM 共识的嵌入式系统内核来发展自己的 32位 MCU。 网路、通信、多媒体和信息家电时代的到来,无疑为 32 位嵌入式系统高端应用提供了空前巨大的发展空间;同时。也为力不从心的 8 位机向高端发展起到了竭力作用。一般来说,嵌入式系统的高低端应用模糊的定界位:高端用于具有海量数据处理的网络、通信和多媒体领域,低端则用于对象系统的控制领域。然而,控制系统的网络化、智能化 的发展趋势要求在这些 8 位机的应用中提升海量数据处理能力。当 8 位机无法满足这些提升要求时,便会转而求助 32 位机的解决办法。因此, 32 位机的市场
15、需求发展由两方面所致:一方面是高端新兴领域的拓展;另一方面是低端控制领域应用在数据处理能力的提升要求。 后 PC 时代的到来以及 32 位嵌入式系统的高端应用吸引了大量计算机人士,加之嵌入式系统的软 /硬件技术的发展,导致了嵌入式系统应用模式的巨大变化,即使嵌西安欧亚学院本科毕业论文(设计) 4 入式系统工业进入到一个基于软 /硬件平台,集成开发环境的应用系统开发时代,并带动了 SoC 技术的发展。 1.2 选题意义 嵌入 式系统无疑是当前最热门最有发展前途的应用领域之一,嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源非常有限,并且对成本很敏感,有时对实时响应要求很高等。嵌入式产品主
16、要分布在移动通讯,消费电子,无限网络,医疗,安全,工业控制和军事国防等社会生活的哥哥领域。由于社会对掌握嵌入式技术人才的大量需求,是嵌入式软硬件工程师成为未来几年最为热门的职业之一。 作为一名即将毕业走入社会的大学生,就业是我们首先要面临的问题。而 近几年嵌入式软件行业迅猛发展,嵌入式产品渗入各个行业, 像 常见到的手机、 PDA、机顶盒、高清电 视 (HDTV)、路由器、汽车电子、数码相机、医疗仪器、航天航空设备等等都是典型的嵌入式系统,嵌入式开发已经成为当前最热门最有发展前途的行业之一。业内人士认为,目前嵌入式行业至少存在 30-50 万的人才缺口,仅 西安 市场嵌入式软件开发人员的需求就
17、已经超过了 5 万人,而且还在持续增加,这主要有两方面的原因:一是与目前我们高校的专业设置有关,我国高校的计算机教育普遍以应用软件为主,很少涉及嵌入式软件的课程,因此企业很难招聘到马上可以投入嵌入式软件开发的实战型人才;二是嵌入式领域门槛相对较高,知识要求比较全面,而且需要一 定的实验环境(开发板和工具软件 )和有经验的人进行指导 . 毕业设计是对我们所学知识的综合应用,考察我们专业知识的广度 和 深度, 而系统化的设计是我们平时所 欠缺的,毕业设计既是对我们所学知识的补充强化,也是对我们专业知识的考察和学习、动手能力的体现。 所以学好嵌入式系统开发不仅是学习上的需要更是今后工作的主要方向。
18、1.3 本课题的设计思路 本课题主要侧重于 SPI 接口的 SD 卡, SPI 中断,看门狗应用, LCD 显示这四个模块 。要对这四个,模块进行驱动程序的编写,首先要熟练掌握 ARM7 系列的体系结构和 ARM 指令集。掌握 ARM 的电路结构,以便进行端口的初始化,锁相环的设定,和相关寄存器的初始化设定。 其次是了解这些功能模块的接口电路,从而完成相关寄存器的设定,驱动设备正常的运行。 然 后是对已经模块化,系统化的 C 语言函数代码进行优化,提高运行的速度和效率。 最后是进行一个综合上述模块的实例开发,以检验各个模块是否可以独立而又兼容无干扰的工作。 西安欧亚学院本科毕业论文(设计) 5
19、 2 系统组成原理 2.1 LPC2103 的引脚功能 16/32 位 ARM7TDMI-S 处理器,极小型 LQFP48 封装。 10 位 A/D 转换, 8 个模拟输入,最低 2.44 微妙。 2 个 32 位的定时器 /外 部事件计数器,具有 7 路捕获、比较通道。低功耗实时时钟等。如图 2.1 所示。 图 2.1 LPC2103 管脚图 2.2 SPI 总线 SPI 总线: SPI 总线系统是一种同步串行外设接口,允许 MCU 与各种外围设备以串行方式进行通信,数据交换。外围设备包括 Flash、 RAM、 A/D 换器、网络控制器、MCU 等。 SPI 系统可直接与各个厂家生产的多种
20、标准外围器件直接接口。一个 SPI总线可以连接多个主机和多个从机,但是在同一时刻之允许有一个主机操作总线。在数据传输过程中,总线上只能有一 个从机通信。在一次数据传输中,主机总是向从机发送一个字节的数据,而从机也总是向主机发送一个字节的数据。 SPI 总线时钟是有主机产生的。 如图 2.2 所示。 主机输入 /从机输出数据线 MISO 主机输出 /从机输入数据线 MOSI 时钟信号,有主器件产生 SCLK 从器件使能信号,有主器件产生 /SS 西安欧亚学院本科毕业论文(设计) 6 图 2.2 SPI 总线配置 2.3 SD 模块的构成 图 2.3-1 SD 卡的实物图和引脚分布 表 2.3-1
21、 SD 卡的引脚功能说明 针脚 名称 类型 描述 1 CD DAT3 I/O/PP 卡检测数据位 3 2 CMD PP 命令 /回复 3 Vss S 地 4 Vcc S 供电电压 5 CLK I 时钟 6 Css2 S 地 7 DAT0 I/O/PP 数据位 0 8 DAT1 I/O/PP 数据位 1 9 DAT2 I/O/PP 数据位 2 西安欧亚学院本科毕业论文(设计) 7 SD 卡的接口规范 ( 1) 容量 32MB-4GB ( 2) 两个可选的通信协议: SD 模式和 SPI 模式 ( 3) 可变时钟频率 0-25MHz ( 4) 通信电 压和工作电压范围: 2.0-3.6V ( 5)
22、 低电压消耗:自动断电及自动睡醒,智能电源管理 ( 6) 无需额外编程电压 ( 7) 卡片带电插拔保护 ( 8) 兼容 MMC 卡 ( 9) 高速串行接口带随机存取 ( 10) 数据寿命: 10 万次编程 /擦除 ( 11) PIP 封装技术 ( 12) 尺寸: 24mm x 32mm x 1.44mm 图 2.3-2 SD 卡的硬件连接原理 表 2.3-2 SD 卡的 SPI 模式 针脚 名称 类型 描述 1 CS I 片选 2 DI I 数据输入 3 Vss S 地 4 Vcc S 供电电压 5 CLK I 时钟 6 Vss2 S 地 7 DO O 数据输出 8 RSV - - 9 RSV
23、 - - 西安欧亚学院本科毕业论文(设计) 8 2.4 SPI 中断应用 LPC2000 系列 ARM SPI 接口具有中断功能,当传输完成或者发生模式错误时, SPI接口就会触发中断, SPI 接口中断与向量中断控制器( VIC)的关系如图 2.1.3 所示。 SPI 接口处于 VIC 的通道 10,中断使能寄存器 VICIntEnable 用来控制 VIC 通道的中断使能。当 VICInEnable10=1 时,通道 10 中断使能,即: SPI 中断使能。中断选择寄存器 VICintSelect 用来分配 VIC 通道的中断。当某一位为 1 时,对应的通道中断分配为 FIQ;当某一位为
24、0 时,对应的通道中断分配为 IRQ。 VICintSelect10用来控制通道 10 图 2.4 SPI 中断示意图 2.5 看门狗的组成原理 2.5.1 看门狗的工作原理: 在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断 ,造车系统复位。所以在使用看门狗的时候要注意清看门狗。一个输入,叫喂狗,一个输出到 MCU 的 RST 端, MCU 正常工作的时候们每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,就可能是程序跑飞时, WDT 定时超过,就会给出一个复位信号到 MCU,是 MCU 复位。 防止 MCU 死机,看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 2.5.2 看门特的 特性 如果没有周期性重装,则产生片内复位 , 支持调试模式 , 有软件使能,但要求禁止硬件复位或看门后复位 /中断 , 错误 /不完整的喂狗时序会导致复位 /中 断(如果使能) , 具有标志位以知识看门后复位 , 带内部预分频器的 32 位可编程定时器 可选择时间周期:( t*256*4) (t*232*4),可选值为 t(pclk)*4 的倍数。