CDC Clock Domain Crossing CDC (Clock Domain Crossing) 是指在数字电路设计中,信号从一个时钟域到另一个时钟域的传输过程。这种传输可能会引发时序问题,例如时钟偏移、保持时间冲突等。本文将 CDC 分解为两部分:同步时钟域信号处理和异步时钟域信号处理。 同步时钟域信号处理 在全同步设计中,如果信号来自同一时钟域,各模块的输入不需要寄存。只要满足建立时间、保持时间的约束,可以保证在时钟上升沿到来时,输入信号已经稳定,可以采样得到正确的值。但是,如果模块需要使用输入信号的跳变沿(例如帧同步信号),千万不要直接使用。因为 begin ... end 语句段涉及到多个 D 触发器,无法保证这些触发器时钟输入的跳变沿到达的时刻处于同一时刻。 为了解决这个问题,可以使用边沿检测电路,例如: ```vhdl always @ (posedge Clk) begin inputs_reg <= inputs; if (inputs_reg == 1'b0 && inputs == 1'b1) begin ... end ... end ``` 异步时钟域信号处理 异步时钟域信号处理可以分为单一信号和总线信号处理两部分。 2.1 单一信号处理 如果输入信号来自异步时钟域(例如 FPGA 芯片外部的输入),一般采用同步器进行同步。最基本的结构是两个紧密相连的触发器,第一拍将输入信号同步化,同步化后的输出可能带来建立/保持时间的冲突,产生亚稳态。需要再寄存一拍,减少亚稳态带来的影响。这种最基本的结构叫做电平同步器。 如果需要用跳变沿而不是电平,又可以使用边沿同步器。边沿同步器在电平同步器之后再加一级触发器,用第二级触发器的输出和第三级触发器的输出来进行操作。 2.2 总线信号处理 如果简单的对异步时钟域过来的一组信号分别用同步器,那么对这一组信号整体而言,亚稳态出现的几率将大大上升。基于这一观点,对于总线信号的处理可以有两种方式。 如果这组信号只是顺序变化的话(如存储器的地址),可以将其转换为格雷码后再发送,由于格雷码相邻码字只相差一个比特,上面说的同步器可以很好的发挥作用。 但是如果信号的变化是随机的(如存储器的数据),这种方法便失效了,这时可以采用握手协议来同步总线信号。 CDC Clock Domain Crossing 是数字电路设计中一个非常重要的问题,需要根据具体情况选择合适的同步方法,避免时序问题的出现。
2026-01-28 09:04:19 505KB
1
在当今嵌入式系统开发领域,STM32微控制器家族凭借其高性能、低功耗、丰富的外设支持等特性,得到了广泛应用。为了满足特定项目需求,开发者们经常需要通过定制化的工程配置来实现所需功能。本文档详细记录了如何在STM32平台上,利用STM32CubeMX和ThreadX/USBX模块来生成一个USB CDC ACM(通用串行总线通信设备类抽象模型)虚拟串口项目,同时确保项目不包含电源分配(PD)功能。 文档描述了客户需求:客户正在使用STM32H563微控制器开发产品,需要实现一个不支持PD功能的USB CDC ACM虚拟串口工程。由于STM32CubeH5代码库中默认工程包含PD功能,这就要求开发人员在硬件和软件层面进行适当的调整。 硬件调整方面,文档详细介绍了如何通过修改NUCLEO_H563ZI开发板上的电路来实现不使用PD功能。具体操作包括更换电阻位置以将PA11、PA12连接到开发板的CN12上,从而可以直接连接USB线。同时指出USB连接线应该连接GND、D+、D-三根线,以及在客户开发板设计中,VBUS连接的重要性。 在软件配置方面,文档逐步指导如何使用STM32CubeMX软件进行工程配置,具体步骤包括: 1. 创建一个新的不带trustZone的工程。 2. 配置USB外设,并使能USB全局中断。 3. 配置ThreadX外设,并使能Core。 4. 配置USBX模块,包括启用Core System,选择Device CoreStack FS和Device Controllers FS,选择CDC ACM类,并配置USB基本参数。 5. 选择其它Platform的USB配置。 6. 配置SYS,使用TIM6作为系统滴答时钟的时钟源。 7. 使用GPIO来控制USB的断开和连接,并使能外部中断。 8. 配置系统时钟为250MHz。 文档还强调了在USB CDC ACM虚拟串口项目中,要模拟USB的断开和连接,可以使用一个GPIO引脚(GPIO_EXTI13)来控制,并使能相应的外部中断。 通过对硬件和软件的定制化调整,开发者能够创建出既符合特定项目需求又具备必要功能的USB CDC ACM虚拟串口工程,而无需电源分配(PD)功能。这对于那些需要USB通信但对电源管理有特殊要求的应用场景非常有用。 本文档内容丰富,不仅涵盖了硬件层面的电路调整,还包括了软件层面的详细配置过程,为实际项目开发提供了极其实用的指导和参考。无论是硬件工程师还是软件开发人员,都能从中获取到宝贵的信息和经验,以更好地完成USB CDC ACM虚拟串口的开发工作。
2026-01-22 21:14:08 1.38MB
1
Matlab hurst代码UCL-MSc代码存储库 该存储库包含Matthew Hurst在2018年9月提交的UCL数学建模硕士项目的相关代码。 该项目由UCL数学系的Erik Burman和Edward Johnson教授监督。 该存储库的内容以某种奇怪的方式组织起来,以保留在最初的工作中开发的引用。 该存储库是从原始工作存储库派生而来的,以删除无关的代码。 目录“图形”包含报告中引用的由作者生成的图形。 目录“ FinalCode”包含固定模型实现的代码和结果。 这仅限于探索几种不同背景速度的影响。 在此目录中,仅包括一个检查(“ 01_”)。 该研究目录的内容将在后面详细说明。 目录“ MatlabCode”包含用于后处理和生成图形的MATLAB代码。 在此目录中,需要两个其他目录链来保留MATLAB代码中使用的引用。 函数“ analyzeRun”包含大量的后处理代码,并由分析每个研究的脚本调用。 这些脚本会根据研究的名称进行标记,并自动分析该研究的所有结果。 “参考”目录包含此项目中以pdf格式使用的许多参考。 用于报告的LaTeX代码包含在根目录中,包括前导,参考书目文
2026-01-20 21:08:35 391.33MB 系统开源
1
论文提出了一种基于跨尺度动态卷积的YOLO融合网络(CDC-YOLOFusion),用于可见光-红外目标检测。该方法通过跨模态数据交换(CDS)模块生成混合模态图像,增强模型对跨模态相关性的理解。核心创新是跨尺度动态卷积融合(CDCF)模块,该模块利用跨尺度特征增强和双动态卷积融合机制,自适应地提取与数据分布相关的双模态特征。CDCF在跨模态核交互损失(KI Loss)的监督下,使卷积核同时关注模态共同特征和独特特征。实验表明,CDC-YOLOFusion在VEDAI、FLIR和LLVIP三个数据集上均达到最先进性能,mAP最高提升3%,且参数量和推理时间平衡。消融实验验证了CDS和CDCF模块的有效性,其中CDS通过局部区域交换策略提升模型鲁棒性,而CDCF的多尺度特征聚合和动态卷积机制显著改善特征融合效果。 CDC-YOLOFusion是一种先进的跨模态目标检测网络,它整合了可见光和红外图像数据,提供了更全面的检测能力。该网络的核心创新是跨尺度动态卷积融合(CDCF)模块,它通过跨尺度特征增强和动态卷积机制自适应地提取特征,这些特征与数据分布密切相关,并能够同时关注模态间的共同特征和独特特征。CDCF模块在跨模态核交互损失(KI Loss)的指导下工作,有效监督卷积核的行为,使其在特征提取时更为精确。 在数据预处理阶段,CDC-YOLOFusion采用了跨模态数据交换(CDS)模块,该模块通过生成混合模态图像来增强模型对跨模态相关性的理解,进一步提升了模型的鲁棒性。通过局部区域交换策略,CDS模块提升了模型在不同模态下的性能。 在实际应用中,CDC-YOLOFusion在网络架构上实现了mAP的最高提升3%,在性能提升的同时,它还保持了参数量和推理时间的平衡。这一点在实际应用中尤为关键,因为它保证了实时目标检测的可行性。此外,网络的消融实验详细验证了CDS和CDCF模块的有效性,显示出这些模块对于改善特征融合和提高模型性能的重要性。 CDC-YOLOFusion网络的设计理念和性能提升,证明了在跨模态数据处理领域,动态卷积技术与融合网络相结合,可以显著提高目标检测的准确性和鲁棒性。这种模型设计为解决实际中的多模态目标检测问题提供了新的视角和方法论。
2026-01-19 21:38:27 6KB
1
https://blog.csdn.net/weixin_53403301/article/details/145056430 【STM32】HAL库的USB虚拟串口(VPC、CDC)配置及数据传输,USB复位及自动重连的解决方案 STM32微控制器系列由意法半导体(STMicroelectronics)生产,广泛应用于嵌入式系统中。HAL库是ST提供的硬件抽象层库,它提供了一套标准的编程接口,使得开发者可以不必直接与硬件寄存器打交道,从而简化了开发过程。在STM32的HAL库中,实现USB虚拟串口(Virtual COM Port,VCP)和USB通信设备类(Communication Device Class,CDC)的功能,可以让开发者利用USB接口实现串口通信。 USB虚拟串口(VCP)是一个在USB和串行通信之间转换的设备,它允许数据通过USB接口发送和接收,而计算机端的应用程序可以像处理传统串口设备一样处理这些数据。CDC是USB设备的一种类别,专为通信设备设计,常见于USB调制解调器、ISDN适配器等。通过CDC实现的USB通信,可以在不安装额外驱动的情况下与PC端进行通信。 要实现STM32的USB虚拟串口和CDC通信,首先需要在硬件上确保微控制器支持USB功能,并且正确的外设时钟已经配置。之后,通过STM32CubeMX工具或者手动配置方式,在HAL库中初始化USB硬件外设。接下来,需要编写相应的USB通讯协议栈代码,实现VCP或CDC的通信协议。这通常包括USB设备的枚举过程、数据传输、端点的配置和使用等。 数据传输方面,STM32的HAL库通过中断或者轮询的方式从USB接收数据,并将其转发到指定的目的地,同时,也可以将数据从来源地发送到USB接口,通过PC端的应用程序进行接收。在数据处理过程中,开发者需要关注数据的缓冲管理和错误处理机制,以保证数据传输的稳定性和正确性。 USB复位和自动重连机制是指当USB连接出现问题时,系统能够自动执行复位操作,并尝试重新连接。这一机制可以显著提高系统的稳定性和用户体验。在STM32 HAL库中,这通常涉及到USB设备状态机的处理,以及对USB事件的监听和响应。在USB复位事件发生时,系统需要正确处理USB堆栈的清理和重初始化工作,而在检测到USB断开连接后,应该启动定时器或者轮询检测,尝试进行USB重新连接。 在实现上述功能时,开发者需要参考STM32的参考手册、数据手册以及HAL库的文档,这些文档详细描述了库函数的使用方法和USB相关的配置细节。此外,还有许多在线资源和论坛可以提供帮助,比如CSDN博客中的相关文章,它们可以为开发者遇到的问题提供解决方案和调试思路。 STM32的HAL库简化了USB虚拟串口和CDC通信的实现过程,但仍然需要开发者具备一定的USB通信和嵌入式编程的基础知识。在实际应用中,还需要考虑USB供电、通信速率、兼容性和可靠性等因素。通过仔细设计和调试,可以实现一个稳定且高效的USB通信系统。
2026-01-13 18:05:26 23.41MB stm32 USB
1
spyglass 做cdc、lint、power分析的Userguide,包含 1、spyglass cdc、lint、power分析使用流程; 2、spyglass cdc、lint、power分析的规则、methodology、goal等介绍 3、SpyGlass_Explorer_UserGuide、SpyGlass_LintRules_Reference、SpyGlass_LowPowerRules_Reference、SpyGlass_ClockResetRules_Reference、SpyGlass_ConstraintsRules_Reference、SpyGlass_AreaRules_Reference等
2025-11-27 21:26:47 153.52MB spyglass lint 功耗分析
1
一大堆官方设计方案的天线来袭,都是SI4463官方正是文件,其中包含以下型号天线: WES0071-01-APF434M-01 WES0073-01-APB434D-01 WES0077-01-APN434D-01 WES0072-01-ACM434D-01 WES0074-01-AWH434M-01 WES0078-01-APL434S-01 WES0075-01-APF434P-01 WES0076-01-APL434P-01 压缩包内包含以下文件: 1、PADS Layout 9.4 布局文件导出为PADS布局V2005.0 ASCII格式,可与其他计算机辅助设计工具一起导入 2、PADS Logic 9.4 原理图文件导出为PADS逻辑V2005.0 ASCII格式,可与其他计算机辅助设计工具一起导入 3、PADS Layout 9.4 布局文件 4、PADS Logic 9.4 原理图文件 5、布局PDF文件 6、原理图PDF文件 7、包含物料清单、组件坐标和制造说明的微软Excel文件 8、用于印刷电路板制造的gerber文件的压缩存档 还有许多SI4463的其他不同频率,不同设计方案,不同结构方案的图纸请查看我的其他资源
2025-11-24 13:53:25 1.37MB PCB天线 MSC-AMS434
1
UofG_PGT_IDSS 该存储库包含用于实践从UofG的MSc计算科学的PGT学习过程中从数据科学与系统概论课程获得的知识的代码。 请注意,该代码是根据。 注意力 可以在Visual Studio代码(如果支持)中打开和编辑IPYNB文件。 到2021年3月31日,使用代码编辑器(版本:1.55.0)看起来一切都很好。 作为一种选择,您还可以在Anaconda中使用Jupyter Notebook。 下表列出了开发中使用的主要软件包。 姓名 版本 Python 3.8.8 1.0 1.0 matplotlib 3.3.4 麻木 1.20.1 大熊猫 1.2.3 科学的 1.6.1
2025-11-10 22:36:39 122.23MB data-science python3 learning-exercise JupyterNotebook
1
**MSC.ADAMS官方初级培训教程 光盘文件详解** MSC.ADAMS,全称为Mechanical System Computer-Aided Engineering,是一款强大的多体动力学仿真软件。它由MSC Software公司开发,广泛应用于机械、汽车、航空、航天等领域,用于进行虚拟原型设计和分析。本教程将深入探讨ADAMS的基础知识和应用技巧,帮助初学者快速掌握这一专业工具。 **1. ADAMS基础概念** 在ADAMS中,用户可以构建复杂的机械系统模型,包括刚体、铰接件、弹簧、阻尼器等元素。这些元素通过连接器相连,形成一个能够模拟真实物理行为的动态系统。通过设置初始条件和边界条件,ADAMS能计算出系统的运动轨迹、速度、加速度以及内部力和力矩。 **2. 模型构建** - **实体建模**:ADAMS支持用户通过图形化界面创建实体模型,包括几何形状、质量属性和惯性特性。 - **关节定义**:关节是连接模型中不同部分的关键,如旋转关节、滑动关节等,它们定义了部件间的相对运动。 - **约束与动力源**:约束限制了模型中的自由度,动力源则为系统提供驱动力,如电机、液压或气压等。 **3. 仿真与分析** - **时间步进法**:ADAMS采用数值求解方法,如欧拉法或龙格-库塔法,对动力学方程进行迭代求解。 - **结果可视化**:ADAMS提供丰富的后处理功能,可以直观展示模型的运动轨迹、应力分布、振动特性等。 - **参数优化**:通过调整模型参数,如质量、阻尼系数等,寻找最佳设计方案。 **4. ADAMS_FSP_701培训内容** “ADAMS_FSP_701培训”包含了理论讲解、实例演示和练习题,旨在让学习者逐步熟悉ADAMS的各项功能。 - **理论部分**:深入讲解ADAMS的基本概念和工作原理,包括模型构建、仿真设定和结果分析。 - **实例演示**:通过实际案例,演示如何建立模型、设定仿真条件及解析结果。 - **练习题**:设计了一系列逐步递增难度的练习,巩固所学知识,提高实际操作能力。 **5. 教程配合使用** 配合“MSC.ADAMS官方初级培训教程”进行学习,可以帮助理解光盘文件中的内容,通过实践操作来加深理论理解,从而达到更好的学习效果。教程中可能涵盖了ADAMS的基本操作、高级特性和工程应用示例,对于初学者来说是一份宝贵的资源。 总结而言,掌握MSC.ADAMS官方初级培训教程的光盘文件内容,不仅能够理解ADAMS的核心功能,还能提升在多体动力学仿真中的实践能力。通过理论与实践的结合,你将能够在设计和分析复杂机械系统时得心应手。
2025-10-27 00:15:24 2.15MB ADAMS 培训教程
1
STM32是一款基于ARM Cortex-M内核的微控制器,由意法半导体(STMicroelectronics)生产。在本项目中,开发者使用了STM32并结合HAL(Hardware Abstraction Layer,硬件抽象层)库来实现模拟SPI(Serial Peripheral Interface)通信,以控制TF(TransFlash,也称为MicroSD)卡,并通过模拟USB Mass Storage Class(MSC)协议,使TF卡在计算机上表现为一个U盘设备,从而实现文件的读写。 我们来看看STM32与HAL库的运用。HAL库是ST公司提供的一种高级编程接口,它屏蔽了底层硬件的具体细节,使得开发者可以更专注于应用程序的逻辑,而无需深入了解底层硬件的工作方式。在这个项目中,HAL库被用来配置和操作STM32的GPIO(General Purpose Input/Output)引脚,以及SPI外设,简化了代码编写过程。 接下来,关于模拟SPI。SPI是一种同步串行通信协议,通常用于微控制器与外部设备之间的数据交换。在没有硬件SPI接口的情况下,开发者可以通过编程的方式,利用GPIO引脚模拟SPI协议中的SCK(时钟)、MISO(主设备输入,从设备输出)、MOSI(主设备输出,从设备输入)和CS(片选)信号,从而控制TF卡。在STM32中,这需要精确地控制时钟信号和其他信号的电平变化,以确保正确传输和接收数据。 然后,模拟USB MSC。USB MSC是USB规范的一部分,定义了如何通过USB接口模拟一个大容量存储设备,例如U盘。在STM32上实现这个功能,需要编写固件来模拟USB协议栈,包括枚举、命令处理和数据传输等。TF卡通过SPI接口连接到STM32后,固件会将TF卡上的数据组织成符合USB MSC规范的块设备,使得计算机能够识别并访问这个模拟的U盘。 在项目中,开发者可能使用了STM32CubeMX配置工具生成了初始的项目框架,如STM32L475VE.ioc文件所示,这是STM32CubeMX的配置文件,包含了对MCU的外设配置信息。.mxproject文件是Keil MDK的项目文件,用于编译和调试程序。 Drivers、Src、Inc目录分别存放驱动程序、源代码和头文件。MDK-ARM目录则包含的是使用MDK(RealView Microcontroller Development Kit)编译器的工程文件和设置。 这个项目展示了STM32在嵌入式系统中的强大功能,通过软件层面的创新实现了SPI通信和USB MSC协议的模拟,极大地扩展了STM32的应用场景,使得开发者可以构建自己的移动存储解决方案。这对于学习和实践STM32的开发者来说,是一个非常有价值的参考案例。
2025-10-23 21:15:45 39.37MB stm32
1