首页 > 代码库 > linux设备驱动(三)

linux设备驱动(三)

驱动设计的硬件基础

处理器的分类如下图:

技术分享

  1、通用处理器(GPP)并不针对特定的应用领域进行体系结构和指令集的优化,它们具有一般化的通用体系结构和指令集,以求支持复杂的运算并易于添加新开发的功能。一般而言,在嵌入式微控制器(MCU)和微处理器(MPU)中会包含一个通用处理器核。

  MPU 通常代表一个CPU(中央处理器),而MCP则强调把中央处理器、存储器和外围电路集成在一个芯片中。下图是典型的MCU内部结构

技术分享

2、数字信号处理器(DSP)针对通信、图像、语音和视频处理等领域的算法二设计的。它包含了独立的硬件乘法器。DSP的乘法指令一般在单个周期内完成,且优化了卷积、数字滤波、FFT(快速傅里叶转换)、相关、矩阵运算等算法中的大量重复乘法。

  DSP分为两类:一类是定点DSP,一类是浮点DSP。浮点DSP的浮点运算用硬件来实现,可以在单周期内完成,因而其浮点运算处理速度高于定点DSP。而定点DSP只能用定点运算模拟浮点运算。

3、专用处理器(ASP)及ASIC(专用集成电路)

4、中央处理器的体系架构可以分为两类:一类为冯 诺依曼结构,一类为哈佛结构

  冯诺依曼结构也成为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。而哈佛结构将程序总线和数据总线分开存储,指令和数据可以有不同的数据宽度。此外哈佛结构还采用了独立的程序总线和数据总线,分别作为CPU和每个存储器之间的专用通信路径,具有较高的执行效率。

  下图描述了冯诺依曼结构和哈佛结构的区别:

技术分享

5、从指令集的角度来讲,中央处理器也可以分为两类,即RISC(精简指令集)和CISC(复杂指令集)。CSIC强调增强指令的能力、减少目标代码的数量,但是指令复杂,指令周期长;而CSIC强调尽可能减少指令集、指令单周期执行,但目标代码会更大。

存储器的分类:如下图描述:

技术分享

  存储器主要可分类为只读存储器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光、磁介质储存器。

  ROM还可再细分为不可编程ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、和电可擦除可编程ROM(EEPROM),EEPROM完全可以用软件来擦写。

串口与总线:

  1969年发布的RS-232修改版RS-232是嵌入式系统应用最广泛的串行接口,他为连接DTE(数据终端设备)与DCE(数据通讯设备)而制定。RS-232规标准接口有25条接口(4条数据线、11条控制线、3条定时线、7条备用和未定义线),常用的只有9根,它们是RTS/CTS(请求发送/清除发送流控制)、RxD/TxD(数据收发)、DSR/DTR(数据终端就绪/数据设置就绪流控制)、DCD(数据载波检测,也称RLSD,即接收线信号检出)、Ringing-RI(振铃指示)、SG(信号地)信号。

  IIC(内置集成电路)总线:组成IIc总线的两个信号为数据线SDA和时钟SCL。

  USB(通用串行总线),它具有数据传输率高、易扩展、支持即插即用和热插拔的优点。

 

linux设备驱动(三)