tag 标签: 总线

相关帖子
相关博文
  • 热度 4
    2023-7-17 13:50
    552 次阅读|
    0 个评论
    梳理一下STM32单片机的内部总线
    STM32 单片机内部有很多总线,各个总线负责的功能不同。 今天以 STM32 单片机为例,梳理一下 ARM Cortex-M3 架构 MCU 的总线内容。 聊一聊 在介绍各个总线之前,先看一下系统框图( STM32F1xxx 类型单片机) Cortex-M3 处理器总线接口是基于 AHB-Lite 和 APB 协议的。 STM32 单片机内部有以下几种总线接口: I-Code 总线 D-Code 总线 系统总线 DMA 总线 总线矩阵 AHB/APB 桥 下边分别进行讲解 ( 1 ) I-Code 总线 指令总线。 I-Code 总线是一条基于 AHB-Lite 总线协议的 32 位总线。 该总线将 Cortex ™ -M3 内核的指令总线与闪存指令接口相连接。指令预取在此总线上完成。 负责在存储器地址 0x0000_0000 – 0x1FFF_FFFF 之 间的取指操作。取指以字的长度执行,即使是对于 16 位指令也如此。因此 CPU 内核可以一次取出两条 16 位 Thumb 指令。 ( 2 ) D-Code 总线 数据总线。是一条基于 AHB-Lite 总线协议的 32 位总线。 该总线将 Cortex ™ -M3 内核的 DCode 总线与闪存存储器的数据接口相连接,加载数据常量和调试访问。 负责在存储器地址 0x0000_0000 – 0x1FFF_FFFF 之间的数据访问操作 。连接到 D-Code 总线上的任何设备都只需支持 AHB-Lite 的对齐访问,不支持非对齐访问。 ( 3 )系统总线 此总线连接 Cortex ™ -M3 内核的系统总线 ( 外设总线 ) 到总线矩阵,总线矩阵协调着内核和 DMA 间的访问。 负责在 0x2000_0000 – 0xDFFF_FFFF 和 0xE010_0000 – 0xFFFF_FFFF 之间的所有数据传送,取指和数据访问都算上。和 D-Code 总线一样,所有的数据传送都是对齐。 ( 4 ) DMA 总线 此总线将 DMA 的 AHB 主控接口与总线矩阵相联,总线矩阵协调着 CPU 的 DCode 和 DMA 到 SRAM 、闪存和外设的访问。 ( 5 )总线矩阵 总线矩阵协调内核系统总线和 DMA 主控总线之间的访问仲裁,仲裁利用轮换算法。 总线矩阵包含 4 个驱动部件( CPU 的 DCode 、系统总线、 DMA1 总线 和 DMA2 总线 ) 和 4 个被动部件 ( 闪存存储器接口 (FLITF) 、 SRAM 、 FSMC 和 AHB2APB 桥)。 AHB 外设通过总线矩阵与系统总线相连,允许 DMA 访问。 ( 6 ) AHB/APB 桥 (APB) 两个 AHB/APB 桥在 AHB 和 2 个 APB 总线间提供同步连接。 APB1 操作速度限于 36MHz , APB2 操作于全速 ( 最高 72MHz) 。 当对 APB 寄存器进行 8 位或者 16 位访问时,该访问会被自动转换成 32 位的访问:桥会自动将 8 位或者 32 位的数据扩展以配合 32 位的向量。 接下来说一说从 Flash 中读取指令和数据的流程。 闪存的指令和数据访问是通过 AHB 总线完成的。预取模块是用于通过 ICode 总线读取指令的。仲裁是作用在闪存接口,并且 DCode 总线上的数据访问优先。 预取缓冲区有 2 个,每个缓冲区大小位 64 位。在每一次复位以后被自动打开,由于每个缓冲区的大小 (64 位 ) 与闪存的带宽相同,因此只通过需一次读闪存的操作即可更新整个缓冲区的内容。 由于预取缓冲区的存在, CPU 可以工作在更高的主频。 CPU 每次取指最多为 32 位的字,取一条指令时,下一条指令已经在缓冲区中等待。这样提高了 CPU 获取指令的效率和执行指令的速度。 这也就是说,对于 STM32 单片机来说,会读取 Flash 中的指令到缓存。不是直接在 Flash 中执行。 关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。
  • 热度 8
    2023-7-10 00:43
    1203 次阅读|
    0 个评论
    接上一篇, https://mbb.eet-china.com/forum/topic/130276_1_1.html 《GD32 MCU原理及固件库开发指南》+试读心得(1) 谢谢 兆易创新高工、芯片综合服务商映时科技。 谢谢面包板论坛。 谢谢 机械工业出版社。 非常感谢面包版社区论坛给的这一次试读机会,GD32 MCU原理及固件库开发指南,映时科技 董晓 任保宏著,机械工业出版社。 上一篇给大家拆了这本书,现在翻开进行阅读,我挑第8章GD32MCU高级通信外设,因为咱们平常在实际应用当中,汽车用应用最多的还是CAN总线,这一章就是着重讲了CAD总线的设计和他以前的发展历史。 这还有就是USB虚拟串口,串口应用比较广泛一些,比较简单的一种协议,在咱们嵌入式开发当中,一开始就用串口调试,应用相当广泛。谢谢!
  • 热度 20
    2014-11-15 21:43
    1068 次阅读|
    0 个评论
    本文总结了通信行业几种常用总线的规范,有问题的地方请大家指正。 名称 速率 电平 通道数 编码方式 传输距离 位置 XAUI 10G 1 CML 4 8/10B 50cm 板内 10GBASE-KR 10G CML 1 64/66B 1m 背板 40GBASE-KR4 40G CML 1 64/66B 1m 背板 Interlaken 10/20/40G CML N 64/67B   板内 I2C 100k/400k/3.4M CMOS -     板内 MDIO 0~25M CMOS -     板内 Local Bus 33M~100M CMOS/TTL -     板内 PCIE 2.5G LVDS 1/2/4/8/16/32 8/10B   板内  
  • 热度 18
    2014-10-16 15:48
    1875 次阅读|
    0 个评论
        广州创龙 提供了大量的开发资料,是业内TMS320C6748开发资料最完善企业,提供视频教程,创造了TMS320C6748平台开发的新局面,引领C674x处理器学习热潮,已成为TMS320C6748开发者的首选合作企业。     广州创龙C6748/L138 视频教程 :http://pan.baidu.com/s/1pJCzlbl。  以下为提供的开发例程: 基于StarterWare的Demo例程演示 (1)GPIO_LED——GPIO输出(LED灯)  (2)GPIO_KEY——GPIO输入(按键中断) (3)TIMER——定时器 (4)UART0_INT——UART0串口中断收发 (5)UART1_POLL——UART1串口查询收发 (6)UART2_INT——UART2串口中断收发 (7)RS485——RS485串口查询收发 (8)IIC_EEPROM——IIC EEPROM读写 (9)SPI_FLASH——SPI FLASH读写 (10)WatchDog——看门狗 (11)NMI——不可屏蔽中断 (12)PWM——高精度脉冲宽度调制器PWM输出 (13)ECAP_APWM——增强型捕获模块ECAP辅助输出 (14)PWM_ECAP——增强型捕获模块ECAP捕获 (15)RTC——RTC时钟 (16)LCD——LCD显示 (17)VGA——VGA显示 (18)TOUCH——触摸屏 (19)MMCSD——SD卡读写 (20)USB_DEV_BULK——USB OTG从方式(USB BULK管道通信) (21)USB_DEV_MSC——USB OTG从方式(虚拟存储设备) (22)USB_DEV_SERIAL——USB OTG从方式(USB虚拟串口) (23)USB_HOST_KEYBOARD——USB OTG主方式(USB键盘) (24)USB_HOST_MOUSE——USB OTG主方式(USB鼠标) (25)USB_HOST_MSC——USB OTG主方式(U盘内容查看) (26)ENET_HTTPD——网络Web服务器 (27)ENET_ECHO——网络Socket通信 (28)AUDIO_LINE_OUT——Line Out音频输出 (29)AUDIO_MIC_IN——Mic In音频输入 (30)AUDIO_LINE_IN——Line In音频输入 (31)McBSP——McBSP总线数据收发 (32)VPIF_OV2640——VPIF总线CMOS摄像头数据采集 (33)ImageProcess——数字识别 (34)Memory_Benchmark——内存读写速度测试 (35)NandFlash——Nand Flash读写测试 (36)EMIF_AD7606——EMIF总线8通道并口AD数据采集 (37)EMIF_FPGA——EMIF总线FPGA读写测试 (38)EDMA3——EDMA3一维数据传输 (39)EDMA3_TRANSPOSE——EDMA3二维数据传输 (40)uPP_B_TO_A——uPP总线FPGA读写测试 (41)FFT——快速傅里叶变换/逆变换 (42)FFT_Benchmark——快速傅里叶变换/逆变换(打开/关闭缓存速度对比) (43)FFT_DIT2——基2时间抽取快速傅里叶变换/逆变换(原址计算) (44)FIR——有限长单位冲激响应滤波器 (45)IIR——无限脉冲响应数字滤波器 (46)Matrix——矩阵运算 (47)DCT——图像离散余弦变换 (48)RGB2Gray——RGB24图像转灰度 (49)HIST——灰度图像直方图 (50)MATH——数学函数库 (51)其他新增例程 基于SYS/BIOS的Demo例程演示 (1)GPIO_LED——任务 (2)GPIO_KEY_HWI——硬件中断(HWI) (3)GPIO_LED_CLOCK——时钟 (4)GPIO_LED_MUTEX——抢占式多任务 (5)GPIO_LED_STATIC——静态创建任务 (6)GPIO_LED_SWI——软件中断(SWI) (7)MEMORY——内存分配 (8)MMCSD——SD卡RAW模式 (9)MMCSD_FatFs——SD卡FAT文件系统 (10)UART1——UART1串口查询收发 (11)TCP——TCP客户端 (12)TCP——TCP服务器 (13)UDP——UDP 通信 (14)TCP_Benchmark——TCP发送/接收速度测试 (15)Telnet——Telnet 协议 (16)TFTP ——TFTP 协议 (17)WebServer——Web服务器 (18)其他新增例程     广州创龙的提供全部例程源码均有详细的中文注释,和开发51单片机一样简单。同时,广州创龙的核心板、开发板均为工业级,核心板经过工业级温度、振动测试认证!     广州创龙可提供主板、底板、核心板定制、驱动开发服务,欢迎联系洽谈! 更多帮助: 创龙官网:www.tronlong.com DSP论坛:www.51dsp.net TMS320C6748学习QQ群:162594183、385134684 OMAPL138学习QQ群:227961486、324023586       
  • 热度 17
    2013-3-22 14:05
    2735 次阅读|
    0 个评论
      在很多应用领域都需要提高W5100与其它网络设备(如PC机)的通信速度。理论上讲,W5100的最大通信速度可以达到25Mbps,实际应用中,由于网络的原因、CPU与W5100之间通信速度的原因等等,使W5100的网络传输速度远远低于25Mbps。     这里抛开网络速度的影响,谈谈如何提高W5100的网络通信速度。     影响W5100的网络通信速度的最大因素是CPU与W5100之间的通信速度。因此要提高W5100的网络通信速度,必须提高CPU与W5100之间的通信速度。CPU与W5100之间的通信方式对W5100的网络通信速度影响很大。直接总线的速度最快,间接总线的速度次之,SPI总线的速度最慢。     W5100发送数据的速度直接受CPU与W5100之间的通信速度影响。因此提高CPU与W5100之间的速度是提高W5100网络发送数据的关键。     W5100接收数据的速度除了受CPU与W5100之间的通信速度影响外,还可以通过下面的方法提高数据的传输速度。     1. 在TCP方式(不管是客户端还是服务器),将Sn_MR寄存器设置为:S_MR_TCP|S_MR_MC。选择S_MR_MC的目的是当W5100接收到一个数据包后无延迟地回送一个ACK相应。在UDP模式下无效。     2. 将Socket的数据缓冲区扩大到4k或8k(这样允许2个Socket工作或1个Socket工作),这样接收到数据后,先读取Sn_RX_RSR和Sn_RX_RR,重新计算Sn_RX_RR,然后发送对Sn_CR寄存器S_CR_RECV命令。完成上面的操作后再读取数据。注意使用这种方法必须快速读取W5100接收缓冲区的数据,否则W5100接收缓冲区的数据就可能被覆盖。     通过以上方法的改进,我们在EVB-W5100/Cortex评估板上测试,极限通信速度可以达到23Mbps。(评估板上Cortex与W5100的接口采用间接总线,软件模拟总线的访问时序)。如果采用其它更快的CPU,这个速度还可以提高。   www.bitconn.com tel:021-61557649  15902174197 email:jacen_dianzi@163.com
相关资源