====嵌入式系统基础概念 - 嵌入式系统、微控制器、ARM==== ===什么是嵌入式系统?=== [[嵌入式系统]]来源于英文Embedded system,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。 嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。 嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。 几个重要的基本概念: * [[计算机]] - Computer * [[微控制器]] - Microprocessor * [[微处理器]] - Microcontroller * [[Von Neumann结构]] * [[Harvard结构]] * [[CISC]] * [[RISC]] ===微处理器和微控制器=== {{ :mcu_architecture.png |}} {{ :embedded_dev.png |}} 主流的微控制器: * 8位单片机 * [[8051]] * [[AVR]] * [[PIC]] * 32位微控制器 * NXP - * Freescale - * STMicroelectronics [[STM32]] * TI的[[MSP430]]和[[CC3200]] * Microchip * Silicon Labs * MIPS * Cypress的PSoC4 * ===嵌入式系统的开发过程=== ===ARM的世界=== ====Mbed介绍==== ===什么是Mbed?=== ===开始使用mbed,教程=== ===开发环境=== ====数字输入和输出==== ===开始编程=== ===电压和逻辑值=== ===mbed上的数字输出=== ===使用数字输入=== ===简单的光器件接口=== ===驱动大的直流负载=== ===小项目 - Letter计数器=== ====模拟输出==== ===介绍数据转换=== ===模拟输出端口=== ===另一种方式的模拟输出:PWM=== ===mbed上的PWM=== ====模拟输入==== ===ADC=== ===模拟输入和输出组合=== ===处理从模拟输入获得的数据=== ===一些简单的模拟传感器=== ===数据转换的时序=== ====进一步编程的技巧==== ===程序设计和结构=== ===功能=== ===编程设计=== ===采用流程图定义代码结构=== ===伪代码=== ===函数=== ===多文件=== ====串行通信==== ===介绍同步串行通信=== ===SPI总线=== ===介绍SPI=== ===板子上的SPI=== ===设置SPI主=== ===创建SPI数据链路=== ===智能仪表和SPI加速度计=== ===评估SPI=== ====I2C总线==== ===什么是I2C总线=== ===mbed上的I2C=== ===设置I2C数据链路=== ===同I2C的温度传感器通信=== ===使用SRF08超声测距=== ===评估I2C=== ====异步串行通信==== ===什么是异步串行通信=== ===mbed上的异步串行通信=== ===同主机之间的同步通信=== ====液晶显示==== ===显示技术=== ===介绍LCD技术=== ===LCD字符型显示=== ===采用PC1602F LCD=== ===介绍PC1602F显示=== ===连接PC1602F=== ===使用mbed的TextLCD库=== ===在LCD上显示模拟输入=== ===更高级的LCDs=== ===彩色的LCD=== ===控制SPI LCD手机显示屏=== ====中断、定时、任务==== ====存储器和数据管理==== ===存储器功能类型=== ===数据文件的使用=== ===C/C++库函数=== ===定义本地文件系统=== ===打开和关闭文件=== ===文件数据的读写=== ===数据文件访问示例=== ===文件访问=== ===串文件访问=== ===使用格式化数据=== ===使用外部存储器=== ===指针介绍=== ====数字信号处理==== ===什么是DSP?=== ===数字滤波举例=== ===数字数据的输入和输出=== ===信号重建=== ===数字低通滤波器=== ===按键激活=== ===数字高通滤波器=== ===延时/回声效果=== ===波表音频文件的处理=== ====高级串行通信==== ===蓝牙串行通信=== ===USB=== ===以太网=== ====控制系统==== ===闭环和开环控制===