君君学Linux设备驱动第二天之硬件基础

 一 处理器
1 通用处理器(GPP)
   不针对具体应用领域进行体系结构和指令的优化,具有通用性,以支持复杂的运算和添加新功能。
2 微控制器(MCU):含有CPU和一些基本外设的芯片
    微处理器(MPU):等价于CPU。
    两者都含有一个通用处理器核。
3 典型MCU结构包括时钟,定时器,看门狗,中断控制器,UART,IIC,USB,DMA,MMU以及最重要的CPU。
4 主流的嵌入式CPU:
(1)ARM:特点是低功耗
(2)MIPS:有IDT和PMC两个公司,主要用于高端路由器以及以太网交换
(3)Power PC:IBM和motorola公司,经典代表是MPC 860和MPC 8260
(4)68k/Coldfire:飞思卡尔(原来的Motorola半导体部),用作DSP核最多
5 CPU的体系架构
     (1)冯诺依曼(普林斯顿)结构:程序和数据共用一个存储器的不同物理位置,故数据宽度相同。
     (2)哈佛结构:程序总线和数据总线分开,有不同的数据结构,可独立寻址。
6 CPU的指令集
    (1)精简指令集(RISC):代码量大,指令周期短
    (2)复杂指令集(CISC):代码量小,指令周期长
7 数字信号处理器(DSP)
    (1)针对通信,语音,图形图像处理等领域的算法而设计,包含独立的硬件乘加器,且DSP的乘法指令一般在单周期完成。优化了矩阵,数字滤波,FFT等复杂的数学运算。
    (2)采用改进的哈佛结构,数据总线和程序总线可被CPU分时复用。
    (3)浮点DSP的浮点运算由硬件完成,所以比定点DSP快速。
    (4)代表产品:
        TI的TMS320DSP系列。C64X已经支持linux内核
        DI的21XX和SHARC,以及等价于MCU+DSP的blackfin平台。
8 专用处理器
    (1)网络处理器==若干微码处理器+若干硬件协处理器
    (2)专用集成电路(ASIC)
    (3)CPLD/FPGA
9 一般情况下,MCU用于多任务实时系统,图形界面操作
    DSP则用于语音,视频编解码 


二 存储器
1 分类:Flash(闪存),ROM(只读),RAM(随机存取存储器),光,磁介质
2 ROM:
    (1)可编程ROM(PROM
                可擦除可编程ROM:EPROM
                电可擦除可编程ROM:EEPROM
    (2)不可编程ROM
3 FLASH可替代ROM
    (1)NOR:可片内执行(XIP),类SRAM接口,不需要额外电路。利用EFI可以更新旧产品
                类SRAM接口的信号包括:地址线,数据线,片选,字节使能,读信号,写信号,就绪/忙信号,中断信号
    (2)NAND:不可片内执行,以块为单位,需要专用控制器。接口有:
                IO总线:供地址,数据,指令的传输,8/16位
                芯片启动(CE):未检测到CE信号则待机
                写使能(WE):负责将总线上的数据写到Nand的寄存器
                读使能(RE):允许读出数据
                指令锁存(CLE):当CLE高时,在WE的上升沿,指令被锁到nand
                地址锁存(ALE):当ALE高时,在WE的上升沿,地址被锁存到nand
                RB:低忙高空闲
        特点:容量大,价格低,擦写快,可操作次数约一百万次。
        (3)flash都会位反转,nand的几率较大
        (4)flash编程原理都只能将1写为0,不能将0写为1,所以在操作flash之前都要先擦除,使得全部为1
4 磁介质:IDE接口约等于ATA接口,链接硬盘和光驱。类SRAM接口
以上说的是NVM的flash

5 RAM  掉电丢失数据
SRAM:静态,6个晶体管,一供电就保持一个值,无刷新周期
DRAM:动态,一个晶体管加一个电容器,需要定期刷新,否则漏电丢失数据
                有SDRAM和DDR之分

6 特定类型的RAM
    (1)NVRAM:实质是借助带备用电源的SRAM或者借助NVM如EEPROM来保存并恢复信息。可避免类似对EEPROM的擦写过程。完全像SRAM一样读写,多用于存放操作系统参数信息。
    (2)DPRAM:双端口
            有两套DB,AB,CB,常用于两个CPU之间通信,通过两个端口同时访问,借助轮询或者中断,一口入,一口出。有点:快,实时性强,接口简单,甚至有多端口RAM。
    (3)CAM:内容寻址RAM,将输入数据与存储在CAM中的所有数据同时比较,找到匹配项,并输出相应信息,用于数据检索,输入的是要查询的数,输出的是地址和匹配信息

    (4)FIFO:先进先出队列。类似DPRAM,但是只能指定一个端口作为输入,另外一个作为输出。即不能双向传输,通过循环读同一个地址来读取数据。




三 接口与总线
1 串口
    RS-232
    RS-422:单向,平衡传输,单机发,多机收
    RS-485:多点,双向,扩展共模范围
    常用的是RS-232C,标准是25条线,常用9条,一般我们开发只用到3条

2 IIC(内置集成电路)
    (1)两线串行式,SDA,SCL都是双向的
    (2)MCU和外设
    (3)多主控,但任意时刻只能有一个主控。
    (4)连到总线的输出端:开漏输出或者集电极开路输出,方可实现线与。
    (5)从设备可以向SCL发出低电平可以延长总线时钟信号周期
    (6)SCL为高时,SDA下降沿对应开始位,上升沿对应停止位。开始停止位都由主控设备产生,SCL的时钟脉冲由主控发出。
    (7)选从设备,先发出1字节地址信息,前7位地址,最后一位表示读写选择。
    (8)每个字节传送完毕,在SCL的第9个上升沿到来之前从设备应有ACK信号,第8个时钟周期以后,主控应该释放SDA。

3 USB(通用串行总线)
    速率快,可扩展,即插即用,热插拔(主机控制器和设备适配器)
(1)控制传输:双向,数据量较小,用来查询,配置,给USB设备发送指令
(2)同步传输:提供确定带宽和间隔时间,流数据传输,语音业务
(3)中断传输:单向传输,对USB主机,只有输入,定时查询设备是否有输入,键盘鼠标这类。

4 以太网接口
    实际上就是MAC+PHY。
MAC:以太网媒体接入控制器,实现数据链路层,
PHY:物理接口收发器, 实现物理层。
两者之间用MII链接。
MII:媒体独立接口。一个数据接口+一个MAC和PHY之间的管理接口
数据接口:用于发送,接收两条独立信道,每条信道都有自己独立的CLK,DATA,CONTROL信号,共需16个信号
管理接口:一个时钟信号+一个数据信号,通过它,上层可以监视控制PHY。 

5 ISA(工业标准结构总线)
        20            24                32
        8              16                32(EISA)--------(IBM-PC/CAT)
(1)总线基本信号:复位,时钟,电源,地
(2)总线访问信号:AB,DB,应答信号
(3)总线控制信号:中断,DMA

6 PCI(外围部件互连)
(1)提供了一组完整的总线接口规范,其目的是描述如何将计算机系统中的外设以一种结构化和可控化的方式连接在一起,给出了外设在连接时的电气特性和行为规约。并且详细定义了计算机系统的各个不同部件之间应该如何正确的进行交互。 特点是:
                    数据总线32位,可扩展到64位
                    可进行突发模式传输(:取得总线控制权以后,连续的进行多个数据的传输。只需要给出目的地址的首地址,访问第一个数据以后,就会自动寻址和传输以后的数据。对应的是单周期方式,一个总线周期只传输一个数据)
                    总线操作与处理器--存储器子系统操作并行
                    总线时钟33MHZ或者66MHZ,最高速率528MB/S
                    采用中央集中式总线仲裁
                    支持全自动配置,资源分配,PCI卡内有设备信息寄存器组位系统提供卡的信息,即插即用
                    总线规范独立于微处理器,通用性好
                    可以完全作为主控设备控制总线

PCI卡刚加电时只有配置空间可以被访问,所以不能由驱动或者用户程序访问。这与ISA卡有本质区别,可以兼容ISA。

四 CPLD/FPGA
    如果他们完成的是特定的接口和控制功能,我们就直接把它当成ASIC。如果他作为主控制器,就当做CPU。

五 原理图分析
1 通过分析片选信号得出芯片的内存,I/O基地址,通过分析中断,DMA信号获得芯片使用的中断号和DMA通道。
2 以CPU为中心向存储器和外设辐射
            符号,网络,描述

六 时序分析
信号的先后顺序,建立时间,保持时间。
工具有Timing Diagrammer Pro

七 Data Sheet
产品综述
内存映射(存储器和外设的基地址)
用到什么找什么

八仪器使用
(1)万用表:
测电压
检查电路的连通性(二极管档)
(2)示波器
注意垂直偏转因数(VOLTS/DIV)(幅度),微调,时基(TIME/DIV)(混叠)的设置
(3)逻辑分析仪和ICD
断点,触发,跟踪调试,查看代码对应的二进制文件。
注意ICD和ICE的区别。 

你可能感兴趣的:(linux,硬件,linux内核)