1、 串行总线
SPI
IIC
UART
Fsmc
(串行总线本文不再赘述,可以参考作者其他文章)
总线简介:
AMBA常用的系统总线:AHB,ASB,APB,AXI总线,一个Soc和外部的外设不可能每一个外设都和Soc建立一个地址线和数据线,总线可以理解成一种高速公路,Soc只需要定义一下接口,所有的外设都可以使用这条总线接口,添加外设的时候不需要和Soc添加地址线和数据线,当外设使用总线和Soc传输数据的时候,其对总线在这个时间段有占用期。
2、APB高级外设总线
高级外设总线(APB)是高级微控制器总线体系(AMBA)的总线层次的一部分,并且为降低功率消耗和接口复杂性做了优化。可以被用来连接任何一种低带宽且不需要高性能通道总线接口的外设。
优点:
在高频操作时性能得到提高;
性能独立于时钟的占空比;
静态通过使用单时钟边沿简化了静态时序分析:
自动测试插件无需特别考虑因素;
许多特定用途集成电路(ASIC)库有较好的上升沿寄存器选择;“
便于与基于周期的仿真器集成;
APB·的这些改变也使得它简化了到新的高级高性能总线(AHB)的接口
2.1 总线的Master和Slave
主机提供时钟,从机接受时钟
外部提供时钟,主机和从机均接收时钟
主机(Master)/ 从机(Slave)
Master:
主机是传输过程中的掌控者(不管是读传输还是写传输)
在时钟下,写数据传输过程中,主机向从机发送地址和数据,直到从机返回ack信号为止。写传输结束。
在时钟下,读数据传输过程中,主机向从机发送一个读取的请求,待接收到从从机返回的读数据之后传输结束。
Slave:
从机是传输的受控者(不管是读传输还是写传输);
在时钟下,写数据传输过程中,从机接收主机发送过来的写数据,并且返回ack信号至主句后,写传输过程中从机的任务完成。
在时钟下,读数据传输过程中,等待主机发送过来的读取请求,然后返回需要的读数据至主机后,读传输过程中从机的任务完成。
总结:
APB传输的过程都是由主主机发起的,从机相对而言仅用于配合。
对于同一套APB传输过程中,APB主机一般只有一个,但是APB的从机可以支持单个从机,也可以支持多个从机(通过PSELx信号控制);
无论是读传输还是写传输,APB主机需要知道传输是否完全结束。
APB主机通过Pwrite信号区分读写传输。
APB主机结构:
APB从机结构:
3、AHB高级高速总线
AHB总线:
(1)最多支持16个总线主设备,AHB接入的都是高速总线。支持突发传输
(2)上升沿触发(电容充电快,上升沿触发的时候建立时间和保持时间好控制)
(3)主机可以有多个设备(CPU、DMA、DSP),但不能同时访问总线
(4)高速存储器、AHB APB桥是最常见的AHB丛机
APB总线:(慢速总线)
(1)搭载低速外设(UART、SPI、IIC、Timer),接口很简单,不支持突发传输
(2)上升沿触发,原理和AHB总线一致,低功耗,作为AHB总线的二级总线
(3)APB只有丛机(UART、SPI、IIC、Timer),主机都是AHB的桥接器
AHB总线总体结构
1)主机的高4bit数据,反应的AHB主机的ID号,最大支持16个AHB主机
2)使用仲裁器处理不同主机的请求,当某一个主机被授予权重之后,数据选择器选择对应的AHB主机地址和AHB主机数据。选择到的地址与数据,同时传输给所有的AHB从机。
(持续更新。。。)