对芯片总线接口分类记录

来源:互联网 发布:win7注册表卸载软件 编辑:程序博客网 时间:2024/05/16 15:30

嵌入式芯片处理器与外围设备的链接接口基本上可以归纳为三种接口:GPIO接口,协议类接口,类内存类接口;
一,GPIO总线接口是最简单的接口,每个GPIO引脚通过配置寄存器和数据寄存器两个寄存器的相应位来控制;
每个GPIO引脚电平和数据寄存器相应位的值对应:数据寄存器的相应位为0,则链接的引脚为低电平,数据寄存器的相应位为1则引脚为高电平;
例如:给某个引脚链接上LED灯,然后,在使用MMU的CPU中,将数据寄存器的物理地址映射到内核虚拟地址空间,然后通过映射之后的地址(可以使用
Linux内核提供的API操作函数)给数据寄存器与LED灯链接的GPIO管脚对应的位写入0,GPIO管脚输出低电平,则LED点亮;

驱动实例:[LED Linux驱动基于S3C2440芯片](http://download.csdn.net/detail/a372048518/9807851)

二,协议类接口(每一个总线协议传输的具体规则在芯片的硬件手册都有详细的说明):UART总线接口,I2C总线接口,SPI总线接口,nand flash接口,LCD接口,
I2S总线协议(专门传输声音信号);
每一个接口都有对应的总线控制器,总线控制器与引脚相连,总线控制器将符合各种协议的高低电平信号通过与引脚相连的外部总线传输给与总线相连接的设备;
设备驱动程序需要配置相应的引脚链接到总线控制器的数据寄存器(具体配置哪一个引脚,这个需要查阅相应芯片的硬件数据手册,操作方法使用Linux内核提
供的IO内存/IO端口API操作函数);
设备驱动程序还需要通过总线控制器的相应寄存器(具体寄存器的每一位配置什么值,这个需要查阅相应芯片的硬件手册)设置总线控制器;
如果某个协议没有总线控制器,则就需要通过GPIO引脚在驱动程序里面模拟总线协议(模拟符合协议的总线控制器),例如:L3总线协议,3-wired(3线)总线协
议;

三,类内存类接口:NOR FLASH接口,网卡接口,SDRAM接口等;
这种接口是最复杂的接口,与上面所述接口的区别是地址线与数据线是分开的,通过地址总线可以同时读取多个字节,这些接口统一由内存控制器管理;
CPU将地址发给内存控制器,内存控制器将地址解析之后,生成片内地址和片选信号,通过地址线,片选信号线传输给存储芯片,然后通过数据总线数据读/写相应的
数据位;
32位存储芯片:内存控制器每次从存储芯片读取4的倍数的字节,因此地址的最后两位是0,所以ADDR0,ADDR1两条地址线是不需要的,直接将ADDR2与芯片的
第0位地址引脚相连接(例如SDRAM存储芯片);
16位存储芯片类似,内存控制器每次读取2的倍数的字节,因此地址最后一位是0,所以ADDR0地址线是不需要的,直接将ADDR1地址线与芯片的第0为地址引脚
相连接(例如NOR FLASH存储芯片);

0 0
原创粉丝点击