《1017@52RD_嵌入式系统原理及应用第三章.ppt》由会员分享,可在线阅读,更多相关《1017@52RD_嵌入式系统原理及应用第三章.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系统原理及设计304304教研室教研室 严迎建严迎建 电话:电话:38651 38651 办公楼:办公楼:160616063.嵌入式系统的设计方法n3.1 嵌入式系统总统结构嵌入式系统总统结构n3.2 嵌入式系统的设计方法嵌入式系统的设计方法n3.3 嵌入式系统硬件设计嵌入式系统硬件设计n3.4 嵌入式系统软件设计嵌入式系统软件设计n3.5 软硬件集成调试软硬件集成调试n3.4 目前主流的设计目前主流的设计mon3.5 软硬件协同设计软硬件协同设计3.1 嵌入式系统的总统结构n典型的嵌入式系统典型的嵌入式系统3.1 嵌入式系统的总统结构n嵌入式系统通常是由硬件和软件两个部分组成,其中硬件
2、嵌入式系统通常是由硬件和软件两个部分组成,其中硬件包括处理器、存储器、输入包括处理器、存储器、输入/输出设备。输出设备。软件软件输入输入输出输出3.1.1嵌入式系统的硬件平台n嵌入式处理器嵌入式处理器n各种类型存储器各种类型存储器n模拟电路及电源模拟电路及电源n接口控制器及接插件接口控制器及接插件n人机界面人机界面3.1.1嵌入式系统的硬件平台3.1.2嵌入式系统的软件系统n总体结构总体结构n板级支持包板级支持包 Board Support Packagen操作系统(后面专门举例介绍)操作系统(后面专门举例介绍)n应用程序(后面专门举例介绍应用程序(后面专门举例介绍)3.1.2嵌入式系统的软件
3、系统3.1.2嵌入式系统的软件系统嵌入式系统的板级支持包n板级支持包板级支持包(BSPBSP)固件固件n又称硬件抽象层又称硬件抽象层 Hardware Abstract Layer Hardware Abstract Layer HALHALn将系统软件与底层硬件隔离开,使得底层设备驱将系统软件与底层硬件隔离开,使得底层设备驱动程序和硬件无关,一般硬具备相关硬件的初始动程序和硬件无关,一般硬具备相关硬件的初始化、数据输入输出、硬件设备的配置。化、数据输入输出、硬件设备的配置。n硬件相关特性硬件相关特性,为操作系统提供操作和控制硬件为操作系统提供操作和控制硬件的方法。的方法。n操作系统相关性,界
4、于操作系统和底层硬件之间操作系统相关性,界于操作系统和底层硬件之间的软件层,包括系统中大部分于硬件相关的模块。的软件层,包括系统中大部分于硬件相关的模块。嵌入式系统的板级支持包一个完整板级支持包要完成两部分工作:一个完整板级支持包要完成两部分工作:n系统初始化系统初始化 自底向上、从硬件到软件自底向上、从硬件到软件n片级初始化片级初始化 nCPUCPU的初始化,寄存器、工作模式等,将系统代码定的初始化,寄存器、工作模式等,将系统代码定位到位到CPUCPU要跳转执行的内存入口处。要跳转执行的内存入口处。(BIOS)n板级初始化板级初始化n除除CPUCPU外的硬件初始化,某些软件数据结构和参数外的
5、硬件初始化,某些软件数据结构和参数n系统初始化系统初始化 n加载操作系统,控制权由加载操作系统,控制权由BSPBSP转交到操作系统转交到操作系统嵌入式系统的板级支持包n设备驱动设备驱动n将将BSPBSP提供的中断服务程序提供的中断服务程序(ISR),ISR),挂载到中断向量表挂载到中断向量表n提供访问硬件寄存器、端口的手段提供访问硬件寄存器、端口的手段(函数)函数)n初始化设备对象,设备描述即数据结构初始化设备对象,设备描述即数据结构n设备驱动程序不直接由设备驱动程序不直接由BSPBSP使用,而是在系统初始化使用,而是在系统初始化过程中由过程中由BSPBSP把它们与操作系统中通用的设备驱动程把
6、它们与操作系统中通用的设备驱动程序关联起来,序关联起来,n在随后的应用中由通用的设备驱动程序调用,实现对在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。硬件设备的操作。嵌入式系统的软件系统n嵌入式实时操作系统嵌入式实时操作系统nRTOSRTOS核心、文件系统、核心、文件系统、GUIGUI、网络系统网络系统n实质就是一段程序代码,系统复位后首先执行实质就是一段程序代码,系统复位后首先执行n将将CPUCPU的终端、的终端、I/OI/O、定时器等都封装起来,提定时器等都封装起来,提供给一个标准的供给一个标准的APIAPI函数接口函数接口n应用程序应用程序n控制部分、应用算法、用户界面、
7、通信程序控制部分、应用算法、用户界面、通信程序3.2 嵌入式系统的设计方法n设计流程设计流程3.2 嵌入式系统的设计方法n需求设计需求设计n确定任务、和设计目标确定任务、和设计目标n功能性功能性 输入输出信号、操作方式输入输出信号、操作方式n非功能性非功能性 性能、成本、功耗、体积、重量等性能、成本、功耗、体积、重量等n体系结构设计体系结构设计n软硬件功能划分、软硬件选型软硬件功能划分、软硬件选型n软硬件设计软硬件设计n详细的软硬件设计详细的软硬件设计n系统集成、系统测试系统集成、系统测试3.2 嵌入式系统的设计方法n一般的设计方法一般的设计方法n单片机系统的设计流程(图)单片机系统的设计流程
8、(图)n基于嵌入式操作系统的开流程(图)基于嵌入式操作系统的开流程(图)n软硬件协同设计方法(图)软硬件协同设计方法(图)软硬件协同设计方法系统级功能描述系统级功能描述软硬件划分软硬件划分软件部分软件部分硬件部分硬件部分软件综合软件综合接口综合接口综合硬件综合硬件综合系统集成系统集成协同验证协同验证软硬件协调设计流程图软硬件协调设计流程图3.3 嵌入式硬件平台的设计n硬件平台设计的主要内容硬件平台设计的主要内容n硬件平台设计的基本流程硬件平台设计的基本流程n硬件设计与测试软硬件工具硬件设计与测试软硬件工具硬件平台设计的主要内容n电路原理设计电路原理设计n处理器及其外围电路设计(核心板处理器及其
9、外围电路设计(核心板:时钟、电源时钟、电源等等)n应用接口(应用接口(A/D、D/A等)、人机接口、通信接口等)、人机接口、通信接口n电路板设计电路板设计n原理图、原理图、PCB图、电磁兼容性设计图、电磁兼容性设计n电路板制造、元件焊接、系统测试电路板制造、元件焊接、系统测试硬件平台设计的基本流程n参考设计查询参考设计查询n参考资料、网络、供应商等参考资料、网络、供应商等n芯片选择及其资料消化芯片选择及其资料消化n处理器、人机接口、通信等处理器、人机接口、通信等n芯片之间连接原理芯片之间连接原理n电压匹配、数据缓冲、时序控制逻辑等电压匹配、数据缓冲、时序控制逻辑等n各芯片外围电路设计各芯片外围
10、电路设计n时钟、电源、电容配置等时钟、电源、电容配置等n调试电路设计调试电路设计n仿真接口、电源、测试信号输入、测试点仿真接口、电源、测试信号输入、测试点硬件平台设计的基本流程n绘制原理图绘制原理图n分块和层次化设计、符号选择和创建、绘制原理图分块和层次化设计、符号选择和创建、绘制原理图nPCB 设计设计nPCB的分层、布线、添加安装孔、覆铜、注释的分层、布线、添加安装孔、覆铜、注释nPCB制造及元件焊接制造及元件焊接nPCB制造商、焊接(手动、机器)制造商、焊接(手动、机器)n系统检查及测试系统检查及测试nPCB制造及焊接情况、加电测试、系统工作测试制造及焊接情况、加电测试、系统工作测试n加
11、载软件加载软件硬件平台设计的基本流程硬件设计的常用工具nPCBPCB设计及电路仿真工具设计及电路仿真工具nProtelProtel、PADsPADs 的的Power PCB&Tool KitPower PCB&Tool KitnMentorMentor的的Expedition&Tool KitExpedition&Tool KitnOrCADOrCAD公司的公司的orCADorCADn模拟电路系统仿真工具模拟电路系统仿真工具nPSPICEPSPICE、EWBEWBn可编程逻辑器件设计工具可编程逻辑器件设计工具nMentor FPGA Advantage&Mentor FPGA Advantag
12、e&ModelSimModelSimnXilinxXilinx Foundation ISE&Tool Kit Foundation ISE&Tool Kitn各种综合和仿真第三方工具各种综合和仿真第三方工具硬件设计的常用工具n稳压电源、万用表、电烙铁、起拔器稳压电源、万用表、电烙铁、起拔器n编程器编程器 EEROM FLASHEEROM FLASHn逻辑分析仪(数字电路)逻辑分析仪(数字电路)n示波器(模拟信号)示波器(模拟信号)常用的快速方法n选定体系结构选定体系结构 处理器处理器n安装集成开发环境安装集成开发环境n分析评估分析评估板板/开发软件开发软件n电路裁减、设计应用电路电路裁减、设
13、计应用电路n绘制原理图及绘制原理图及PCBPCB、制版焊接制版焊接n驱动程序、软硬件集成驱动程序、软硬件集成3.4 嵌入式系统的软件设计n软件设计的主要内容软件设计的主要内容n嵌入式软件的特点嵌入式软件的特点n软件设计与调试方法软件设计与调试方法n常用工具常用工具n常见的软件开发步骤常见的软件开发步骤软件设计的主要内容nBIOS(or Boot Loader)BIOS(or Boot Loader)启动代码启动代码n操作系统操作系统(移植移植)n应用软件应用软件 C C汇编汇编nBSPBSP硬件硬件驱动驱动 Boot loaderBoot loader操作系统操作系统应用软件应用软件嵌入式软件
14、的特点n固化程序固化程序n非磁心存储器,非磁心存储器,EEPROMEEPROM、FlashFlashn代码质量要求高,难度大代码质量要求高,难度大n精练、高稳定性、高可靠性精练、高稳定性、高可靠性n经过裁剪的操作系统经过裁剪的操作系统 n嵌入式嵌入式linuxlinux、实时操作系统、实时操作系统VxWorksVxWorks嵌入式软件设计特点n汇编和高级语言混合编写汇编和高级语言混合编写n目标机汇编目标机汇编C C、C+C+、JAVAJAVA等等n程序的加载方式程序的加载方式n可执行文件(含操作系统)要转换为可执行文件(含操作系统)要转换为.hexhex或或.binbin等格式等格式的文件,才
15、能加载到目标系统的存储器的文件,才能加载到目标系统的存储器n代码需要优化代码需要优化n要提高软件的运行效率,必须针对处理器对高级语言描要提高软件的运行效率,必须针对处理器对高级语言描述的算法进行优化。述的算法进行优化。嵌入式软件设计特点n需要交叉开发开发环境需要交叉开发开发环境n目标机目标机 嵌入式软件的实际运行环境,资源有限嵌入式软件的实际运行环境,资源有限n宿主机宿主机(PCPC)机运行开发环境;机运行开发环境;n使用使用交叉编译器、调试器、模拟软件交叉编译器、调试器、模拟软件n需要处理器厂商提供的软件工具及开发包需要处理器厂商提供的软件工具及开发包n函数库、函数库、BSPBSP(HAL)
16、HAL)、例程例程交叉编译器n所谓交叉编译器是指运行在主机上为目标机产生代码的编所谓交叉编译器是指运行在主机上为目标机产生代码的编译器被称作交叉器,使用交叉编译器是嵌入式软件开发的译器被称作交叉器,使用交叉编译器是嵌入式软件开发的固定特征。固定特征。nGNUGNU的的C/CC/C编译器编译器gccgcc就是常见的支持多种主机和目标就是常见的支持多种主机和目标机的交叉编译器,同时机的交叉编译器,同时GNUGNU还提供相应的汇编器和链接器。还提供相应的汇编器和链接器。通常链接通常链接/定址器产生可执行文件还要转换为定址器产生可执行文件还要转换为.hexhex文件和文件和.binbin文件才能加载到
17、存储器。文件才能加载到存储器。ARMARM处理器开发环境中大多处理器开发环境中大多使用使用GCCGCC嵌入式软件的设计流程C C代码代码C C编译器编译器目标文件目标文件链接器链接器可重定位程序可重定位程序定址器定址器可执行文件可执行文件C C代码代码C C编译器编译器目标文件目标文件汇编语言汇编语言汇编编译器汇编编译器目标文件目标文件标准格式:标准格式:通用对象文件格式(通用对象文件格式(COFFFCOFFF)扩展的链接器格式(扩展的链接器格式(ELFELF)交叉编译器(交叉编译器(gccgcc)汇编器(汇编器(asas)链接器(链接器(gccgcc ld ld)合并输入文件中的合并输入文件
18、中的texttext、datadata、BssBss段。解决未定义符号问题段。解决未定义符号问题将可充定址程序转化为可将可充定址程序转化为可执行的二进制映像执行的二进制映像为每一个代码段、数据段为每一个代码段、数据段指定物理内存指定物理内存固化软件固化软件嵌入式软件调试方法串口串口并口并口USB口口嵌入式软件调试方法n在线仿真器在线仿真器(In-Circuit Emulator,ICEIn-Circuit Emulator,ICE)nICEICE取代了取代了(仿真了仿真了)目标板上的处理器目标板上的处理器n仿真器本身就是一个嵌入式系统,它有自己的目标处理仿真器本身就是一个嵌入式系统,它有自己的
19、目标处理器、器、RAMRAM、ROMROM和嵌入式软件。和嵌入式软件。n80518051仿真器仿真器 nJTAGJTAG仿真器仿真器n调试内核调试内核由处理器实现,仿真器价格比较便宜由处理器实现,仿真器价格比较便宜n通过通过JTAGJTAG接口和处理器通信完成调试接口和处理器通信完成调试nARMARM、TI DSPTI DSP嵌入式软件调试方法nJTAG接口接口n高档的处理器都提供高档的处理器都提供JTAG接口接口n只需只需5根引脚根引脚n仿真器的主要功能仿真器的主要功能n主机和目标机之间的通信,串口、并口、主机和目标机之间的通信,串口、并口、USBn调试:单步执行、设置硬件断点、截获中断调试
20、:单步执行、设置硬件断点、截获中断n查看处理器、寄存器、存储器状态查看处理器、寄存器、存储器状态指令集模拟器n指令集模拟器,运行于主机上的模拟软件指令集模拟器,运行于主机上的模拟软件n指令集模拟器指令集模拟器(Instruction Set Simulator,Instruction Set Simulator,ISS)ISS):是用来在一台计算机上模拟另外一台计算是用来在一台计算机上模拟另外一台计算机上程序运行过程的软件工具,前者被称作被称机上程序运行过程的软件工具,前者被称作被称作作宿主机宿主机,后者被称作,后者被称作目标机目标机。它通过模拟每条。它通过模拟每条指令在目标处理器上的执行效果
21、来模拟目标机程指令在目标处理器上的执行效果来模拟目标机程序,是目标处理器的软件模拟器。序,是目标处理器的软件模拟器。指令集模拟器nARMulatorn可以模拟各种可以模拟各种ARM处理器处理器n指令级:指令级:给出精确到指令边界的处理器状态给出精确到指令边界的处理器状态n周期级:给出每一周期边界的处理器状态周期级:给出每一周期边界的处理器状态n定时级模拟功能:给出一个周期内出现信号准确时间定时级模拟功能:给出一个周期内出现信号准确时间常用软件开发工具n仿真器(硬件):仿真器(硬件):n在线仿真器、在线仿真器、JTAGJTAG仿真器仿真器n集成开发环境(软件)集成开发环境(软件)n软件编辑、工程
22、管理、函数库、软件编辑、工程管理、函数库、调试软件调试软件n交叉编译器、交叉编译器、链接器链接器n目标文件转换:将编译链接后的文件转换为可以直接写目标文件转换:将编译链接后的文件转换为可以直接写入目标系统存储器的二进制文件格式。入目标系统存储器的二进制文件格式。n指令集模拟器指令集模拟器ARM处理器开发工具nSDT ARM Software Development Kit SDT ARM Software Development Kit SDT2.51SDT2.51nADS ARM Development Suit ADS ARM Development Suit ADS 1.2 ADS 1.
23、2 取代取代SDTSDTn代码生成工具编译、汇编、链接,支持代码生成工具编译、汇编、链接,支持 C C、C+C+。n集成环境集成环境Code WarriorCode Warriorn调试器调试器;ARM ARM eXtended eXtended DebuggerDebuggern指令集模拟器指令集模拟器nARM ARM 开发包开发包:启动代码、串口驱动程序、中断处理程序启动代码、串口驱动程序、中断处理程序n应用库应用库:函数库及其源代码函数库及其源代码8051单片机开发工具 KeilKeil C51 C51nKeilKeil C51 C51是美国是美国KeilKeil Software So
24、ftware公司出品的公司出品的5151系列兼容单系列兼容单片机片机C C语言软件开发系统。语言软件开发系统。n与汇编相比,与汇编相比,C C语言在功能上、结构性、可读性、可维护语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。性上有明显的优势,因而易学易用。n用过汇编语言后再使用用过汇编语言后再使用C C来开发,体会更加深刻。来开发,体会更加深刻。nKeilKeil C51 C51软件提供丰富的库函数和功能强大的集成开发调软件提供丰富的库函数和功能强大的集成开发调试工具,全试工具,全WindowsWindows界面。界面。n编译后生成的汇编代码,生成的目标代码效率非常高,多
25、编译后生成的汇编代码,生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。数语句生成的汇编代码很紧凑,容易理解。8051单片机开发工具 KeilKeil C51 C518051单片机开发工具 KeilKeil C51 C51nuVisionuVision与与IshellIshell分别是分别是C51 for WindowsC51 for Windows和和for Dosfor Dos的集的集成开发环境成开发环境(IDE)IDE),可以完成编辑、编译、连接、调试、可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用仿真等整个开发流程。开发人员可用IDEIDE本身或其它编
26、辑本身或其它编辑器编辑器编辑C C或汇编源文件。或汇编源文件。n然后分别由然后分别由C51C51及及A51A51编译器编译生成目标文件编译器编译生成目标文件(.(.OBJ)OBJ)。n目标文件可由目标文件可由LIB51LIB51创建生成库文件,也可以与库文件一创建生成库文件,也可以与库文件一起经起经L51L51连接定位生成绝对目标文件连接定位生成绝对目标文件(.(.ABS)ABS)。nABSABS文件由文件由OH51OH51转换成标准的转换成标准的HexHex文件,以供调试器文件,以供调试器dScope51dScope51或或tScope51tScope51使用进行源代码级调试,也可由仿真使用
27、进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器使用直接对目标板进行调试,也可以直接写入程序存贮器如器如EPROMEPROM中。中。常见的软件开发步骤n与硬件无关的软件开发与调试与硬件无关的软件开发与调试n用指令集模拟器用指令集模拟器n硬件有关的驱动开发硬件有关的驱动开发n基于开发板、目标板开发基于开发板、目标板开发n集成调试集成调试n测试软件性能、改进算法测试软件性能、改进算法常见的软件开发步骤要点:要点:n硬件无关的代码尽量用高级语言开发,提高可移硬件无关的代码尽量用高级语言开发,提高可移植性。植性。n模块化,提供可重用性。模块化,提供可重用性。n针对处理器进行代码优化针对处理器进行代码优化