PXD10微控制器CAN采样器与时钟模块协同实现超低功耗CAN监听
1. 项目概述与核心价值在汽车电子和工业控制领域工程师们常常面临一个经典难题如何在保证系统极低功耗的同时又能对CAN总线上的关键消息保持“监听”状态传统的做法是让微控制器MCU在低功耗模式下完全“沉睡”等待外部中断或特定硬件事件唤醒。但对于CAN网络这通常意味着需要一颗额外的、始终供电的CAN收发器或监控芯片这不仅增加了BOM成本和PCB面积也让系统设计变得复杂。PXD10微控制器给出的答案是将其内置的**CAN采样器CAN Sampler与高度灵活的时钟生成模块MC_CGM**进行深度协同设计从而在芯片内部优雅地解决了这一矛盾。这个组合方案的精妙之处在于它允许主CPU核心在进入STOP、HALT甚至STANDBY这类深度休眠模式时仅依靠一个低精度的16MHz内部RC振荡器IRC就能对CAN总线进行采样捕捉到特定的唤醒帧标识符。这就像给沉睡的MCU装上了一只“电子耳朵”它不需要消耗太多能量IRC本身功耗极低却能分辨出总线上的“敲门声”。而这一切得以实现的基础是MC_CGM模块对系统内外各种时钟源的精细化管理与路由它确保了在需要的时候正确的时钟能被送到正确的外设无论是高性能运行还是极致省电。本文将深入拆解PXD10的CAN采样器和时钟模块。我不会仅仅复述数据手册的寄存器描述而是结合我过去在车身控制器和电池管理系统BMS中的实际调试经验带你理解这两个模块联动的设计哲学、配置时的关键陷阱以及如何编写可靠的底层驱动代码。无论你是正在评估PXD10用于新项目还是试图优化现有设计的功耗相信这些从实践中得来的细节都能让你少走弯路。2. CAN采样器在深度休眠中捕捉CAN消息的“守夜人”2.1 设计初衷与工作原理CAN采样器本质上是一个高度专用化的数字状态机其设计目标非常明确在系统主时钟通常来自外部晶振或PLL关闭的极端低功耗场景下依然能够识别CAN总线上的消息起始并采集足够的信息以便软件在MCU被唤醒后能重建出消息的标识符Identifier。为什么是标识符因为在许多CAN网络应用中唤醒整个系统的往往不是数据本身而是具有特定ID的“唤醒帧”或“诊断请求帧”。只要识别出这个ID系统就知道该“起床”干活了。采样器不需要完整解析整个数据帧这大大简化了硬件设计也降低了功耗。它的工作原理可以类比为一个简易的数字录音机待命在进入低功耗模式前软件配置好采样器选择Rx端口、设置波特率预分频等并使其使能。触发当所选CAN Rx线上检测到下降沿代表CAN帧的起始位SOF采样器被触发。如果此时IRC振荡器处于关闭状态如STANDBY模式它会先请求启动IRC。采样采样器以固定的频率由16MHz IRC和预分频器BRP决定对Rx线进行采样并将采样值0或1存入一组12个32位的采样寄存器中总共可存储384个采样点。完成当预设数量的采样点对应48个CAN位即一个标准或扩展帧的标识符段存储完毕后硬件置位完成标志。处理MCU被唤醒后软件读取这些原始的采样数据通过算法通常是多数判决或边沿检测还原出原始的48位标识符数据。这里的关键在于“8 samples/bit”。CAN总线的一个位时间Nominal Bit Time被均匀地采样8次。这个数字是权衡后的结果太少则抗噪声和容错能力差太多则对IRC的精度和稳定性要求过高且需要更大的存储空间。8次采样是一个在可靠性和实现成本之间很好的平衡点。2.2 两种工作模式FF_MODE与SF_MODE这是CAN采样器最核心的配置之一选择错误会导致完全无法捕捉到帧。模式的选择不取决于你的软件偏好而取决于目标低功耗模式下16MHz IRC振荡器是否可用。FF_MODE (First Frame Mode模式位1)采样并存储第一个CAN帧。适用场景STOP或HALT模式。在这些模式下虽然主系统时钟可能关闭但16MHz IRC振荡器仍然保持运行。因此采样器可以立即响应CAN Rx线上的下降沿从第一个帧的SOF位开始采样。工作原理检测到SOF下降沿后立即启动采样连续采集384个样本48位 * 8样本/位。SF_MODE (Second Frame Mode模式位0)跳过第一个CAN帧采样并存储第二个CAN帧。适用场景STANDBY模式。在此模式下为了达到最低功耗16MHz IRC振荡器会被完全关闭。当CAN Rx线出现活动时采样器需要先请求启动IRC。从电压调节器稳定到IRC起振稳定需要大约10µs的启动时间。关键问题如果CAN波特率是500kbps位时间为2µs10µs的启动延迟意味着会错过前5个位根本无法捕捉第一个帧。因此硬件设计为主动忽略第一个完整的帧。工作原理检测到活动后先启动IRC。采样并计数等待连续11个显性位即总线空闲状态这标识着第一个帧的结束。随后继续监视Rx线等待下一个下降沿第二个帧的SOF。从这个下降沿开始对第二个帧进行384个样本的采样。实操心得模式选择是第一个大坑我曾在一个电池包管理单元的项目中将MCU配置为STANDBY模式以追求最低静态电流却将CAN采样器错误地配置为FF_MODE。结果系统永远无法被CAN消息唤醒。排查了很久才发现在STANDBY下IRC是关闭的必须使用SF_MODE。一个简单的记忆方法是只要进入的Low Power模式会关闭IRC就必须用SF_MODE。在数据手册的功耗章节通常会明确列出各模式下IRC的状态。2.3 寄存器详解与配置流程参考手册给出了控制寄存器CR和12个采样寄存器SR0-SR11的详细定义。我们不仅要看懂每个位更要理解配置它们的先后顺序和相互影响。控制寄存器CR关键字段解析位域名称功能描述配置要点与避坑指南31CAN_SMPLR_EN采样器使能位。1使能采样器接管采样寄存器控制权。最重要的位也是时序关键位。必须在进入低功耗模式前置1。读取采样数据前必须清0。26-30BRP波特率预分频器。范围1-32。计算公式BRP (1 / (8 * CAN_Baudrate)) / 62.5ns。例如125kbps时BRP16。必须精确计算并设置否则采样点错位软件无法正确解码。22MODE模式选择。0SF_MODE, 1FF_MODE。根据目标低功耗模式中IRC的状态决定见上文分析。23-25CAN_RX_SELCAN Rx端口选择。000-111对应不同的物理引脚。必须与硬件原理图上CAN收发器连接的MCU引脚严格对应。PXD10通常只有Rx0-Rx4有效。17BUSY忙标志。1采样进行中。只读位。用于软件查询状态。在CAN_SMPLR_EN使能后可监控此位确认采样器已就绪。16RX_COMPLETE接收完成标志。1一帧数据已存入采样寄存器。唤醒后的首要检查位。如果为1说明成功捕捉到帧可以读取数据如果为0则可能是触发条件未满足或配置错误。18Active_CK当前时钟指示。1RC_CLK0ipg_clk_s。安全访问采样寄存器的关键。在软件需要读取采样数据而将CAN_SMPLR_EN清0后必须轮询此位直到变为0确保寄存器控制权已交还给系统总线此时读取的数据才是稳定的。配置与使用流程代码逻辑// 假设使用CAN0_RX (PB1)波特率125kbps目标模式为STOPIRC开启故用FF_MODE void CAN_Sampler_Init(void) { // 1. 确保采样器禁用以便配置寄存器 CAN_SMPLR-CR ~(1 31); // 清 CAN_SMPLR_EN // 2. 配置采样参数 uint32_t temp_reg 0; // 设置BRP: 125kbps - T_bit 8us, T_sample 1us, BRP 1us / 62.5ns 16 temp_reg | (16 26); // BRP 16 (二进制01111) temp_reg | (1 22); // MODE 1, FF_MODE temp_reg | (0 23); // CAN_RX_SEL 000, 选择Rx0 (PB1) // RX_COMPLETE和BUSY是状态位无需配置 // Active_CK是只读状态位无需配置 // 3. 将配置写入CR寄存器注意此时EN位仍为0 CAN_SMPLR-CR temp_reg; // 4. 可选清除采样寄存器区域便于调试观察 for(int i0; i12; i) { CAN_SMPLR-SAMPLE[i] 0x00000000; } // 5. 使能采样器使其进入待命状态 CAN_SMPLR-CR | (1 31); // 置位 CAN_SMPLR_EN // 6. 检查BUSY位确认采样器已就绪非必须但建议 while((CAN_SMPLR-CR (1 17)) ! 0); // 等待BUSY变0 } // 在低功耗模式被唤醒后例如由CAN采样器中断唤醒 void CAN_Sampler_Wakeup_Handler(void) { // 1. 首先检查是否真的是CAN采样器完成了采样 if((CAN_SMPLR-CR (1 16)) 0) { // RX_COMPLETE 不为1 // 不是CAN采样器触发的中断或采样未完成应检查其他唤醒源 return; } // 2. 禁用采样器夺回寄存器控制权 CAN_SMPLR-CR ~(1 31); // 清 CAN_SMPLR_EN // 3. 等待Active_CK切换回系统时钟确保读取稳定 while((CAN_SMPLR-CR (1 18)) ! 0); // 等待Active_CK变0 // 4. 现在可以安全地读取12个采样寄存器 uint32_t sample_data[12]; for(int i0; i12; i) { sample_data[i] CAN_SMPLR-SAMPLE[i]; } // 5. 软件处理采样数据还原CAN ID此处为算法示例非完整代码 uint64_t recovered_id 0; recover_can_id_from_samples(sample_data, recovered_id); // 6. 判断是否为预期的唤醒ID并进行后续处理 if(recovered_id TARGET_WAKEUP_ID) { // 执行唤醒后的初始化如开启主时钟、初始化CAN控制器等 System_Exit_LowPower(); // ... 其他应用逻辑 } // 7. 清理标志位为下一次采样做准备可选重新初始化时会覆盖 // 注意重新使能采样器前可能需要重新配置CR根据手册某些位在EN1时可能只读 // 最稳妥的方式是重新调用初始化流程。 CAN_Sampler_Init(); }2.4 软件解码从384个采样点到CAN ID硬件完成了粗粒度的数据采集而将384个0/1采样序列还原为11位或29位的CAN标识符则是软件的任务。这个过程比想象中要复杂一些因为IRC的时钟精度有限通常有±1%或更差的误差且总线可能存在毛刺。基本解码步骤定位SOF帧起始在采样数据中搜索一个从隐性1到显性0的下降沿。在FF_MODE下这应该是数组的起始位置。在SF_MODE下需要跳过第一个帧的采样区域这需要结合波特率和采样率计算偏移量。位定时同步以一个下降沿为参考点根据预设的“8 samples/bit”和已知的波特率在理论上计算出每个位周期的采样点索引。例如SOF下降沿发生在样本索引0那么第一个数据位ID10的采样点应该在索引8-15。位值判决对于每个位周期对应的8个采样点采用“多数判决”原则。统计这8个点中显性0和隐性1的数量数量多的即为该位的最终值。为了提高鲁棒性通常会舍弃第一个和最后一个采样点容易受到边沿抖动影响只用中间的6个点进行判决。位填充规则检查CAN协议有“位填充”机制每5个相同极性的位后会插入一个反极性位。解码软件需要识别并剔除这些填充位才能得到真实的ID位流。这是解码正确与否的关键验证步骤。组装ID将判决出的位流按顺序组装得到11位标准ID或29位扩展ID。注意事项解码算法的容错性在实际环境中由于IRC频率漂移和总线噪声采样点可能会发生偏移或出现错误采样。一个健壮的解码算法应该包含动态同步不仅仅依赖SOF还可以利用后续的位边沿如从显性到隐性的上升沿来微调位定时中心。错误容忍允许每个位周期内有少数如1-2个采样点与判决结果不符。CRC校验可选如果采样器配置为采集更多位超出ID字段可以尝试对数据段进行CRC校验但这会显著增加软件复杂度和唤醒后的处理时间通常不用于纯粹的唤醒场景。3. 时钟生成模块系统节奏的总指挥如果说CAN采样器是特种兵那么时钟生成模块MC_CGM就是整个芯片的指挥中枢。它管理着所有时钟源的分配、切换和分频直接决定了系统性能、外设功能以及功耗水平。理解MC_CGM是优化PXD10系统设计的基础。3.1 时钟架构全景图PXD10的时钟源非常丰富为不同场景提供了灵活性主时钟源FXOSC外部晶振4-16 MHz提供高精度时钟基准。FIRC高速内部RC振荡器16 MHz精度较低但启动快用于快速启动或作为备份时钟。FMPLL0主锁相环以FXOSC或FIRC为参考产生更高的系统时钟如64 MHz。低功耗时钟源SIRC低速内部RC振荡器128 kHz用于低功耗运行或看门狗。SXOSC低速外部晶振32.768 kHz用于实时时钟RTC或精确计时。辅助时钟源FMPLL1辅助锁相环专为特定外设如eMIOS, QuadSPI, DCU提供独立时钟。MC_CGM的核心任务就是通过一系列多路选择器MUX和分频器将这些源时钟组合、分配生成以下几类时钟系统时钟sys_clk供给CPU内核、平台总线和大部分外设。外设组时钟Peripheral Set Clocks通过CGM_SC_DC0...2寄存器分频得到的时钟供给LINFlex、FlexCAN、ADC等外设组。辅助时钟Auxiliary Clocks通过CGM_ACx_SC和CGM_ACx_DC0寄存器独立选择和分频的时钟专供DCU、eMIOS、QuadSPI等高性能或特殊时序要求的外设。3.2 关键寄存器配置与实战解析配置时钟不是简单地写几个寄存器值而是一个需要遵循严格顺序、考虑时钟稳定性和无毛刺切换的过程。1. 系统时钟源切换由MC_ME主导MC_CGM配合系统时钟的切换通常由模式控制器MC_ME模块管理但MC_CGM的CGM_SC_SS寄存器可以让我们读取当前系统时钟的来源。切换时钟源例如从FIRC切换到PLL0的一般流程是使能目标时钟源如启动PLL0并等待锁定。通过MC_ME寄存配置目标时钟源和切换模式。执行特定的切换指令或等待MC_ME完成切换。通过读取CGM_SC_SS确认切换成功。2. 外设组时钟分频配置CGM_SC_DC0...2这三个寄存器结构相同分别控制三组外设的时钟分频。以CGM_SC_DC1制FlexCAN和CAN采样器所在的外设组2为例DE1分频器使能。必须先使能分频器再设置分频值否则写DIV1可能被忽略。DIV1分频值。实际分频系数 DIV1 1。例如DIV13则外设组2的时钟频率 sys_clk / 4。// 配置外设组2包含FlexCAN的时钟为系统时钟的1/2 // 假设系统时钟sys_clk 64MHz我们希望FlexCAN模块时钟为32MHz void Configure_Peripheral_Set2_Clock(void) { // 地址定义需参考数据手册内存映射 volatile uint32_t* CGM_SC_DC1 (volatile uint32_t*)0xC3FE037D; // 1. 使能分频器1 *CGM_SC_DC1 | (1 12); // 设置DE1位 (假设位12是DE1需查表确认) // 2. 设置分频值 DIV1 1 (因为 1/(11) 1/2) // 先清除DIV1字段再写入新值。假设DIV1在bit4-7。 *CGM_SC_DC1 ~(0xF 4); // 清除DIV1位域 *CGM_SC_DC1 | (1 4); // 设置DIV1 1 }重要提示时钟安全在修改任何时钟配置寄存器尤其是分频器和多路选择器时必须确保目标外设处于复位或不活动状态。突然改变一个正在运行的外设的时钟可能导致其内部状态机错乱或数据丢失。最佳实践是在系统初始化阶段所有外设禁用时统一配置时钟树。3. 辅助时钟配置以eMIOS为例eMIOS增强型模块化IO子系统常用于产生PWM或输入捕获对时钟精度和独立性要求高。PXD10为其提供了独立的辅助时钟通道。选择时钟源通过CGM_AC1_SCeMIOS0或CGM_AC2_SCeMIOS1的SELCTL字段可以选择分频后的FXOSC、FIRC、FMPLL0或FMPLL1。二次分频通过CGM_AC1_DC0或CGM_AC2_DC0寄存器可以对已选择的辅助时钟进行再次分频分频系数DIV01。// 配置eMIOS0的时钟为FMPLL1假设为64MHz的1/4即16MHz void Configure_eMIOS0_Clock(void) { volatile uint32_t* CGM_AC1_SC (volatile uint32_t*)0xC3FE0388; volatile uint32_t* CGM_AC1_DC0 (volatile uint32_t*)0xC3FE038C; // 1. 选择时钟源FMPLL1 (根据手册SELCTL0010) *CGM_AC1_SC ~(0xF 4); // 清除SELCTL字段 *CGM_AC1_SC | (0x2 4); // 选择FMPLL1 // 2. 配置分频器DIV0 3 (1/(31)1/4) *CGM_AC1_DC0 | (1 7); // 使能分频器DE0 (假设位7是DE0) *CGM_AC1_DC0 ~(0x1F 0); // 清除DIV0字段假设在bit0-4 *CGM_AC1_DC0 | (3 0); // 设置DIV0 3 }3.3 输出时钟CLKOUT功能MC_CGM还提供了一个非常实用的调试功能将内部任何一个时钟通过特定的引脚如PH[4]输出。这在硬件调试阶段至关重要你可以用示波器直接测量系统时钟、PLL输出或外设时钟的实际频率验证配置是否正确。配置主要通过两个寄存器CGM_OC_EN输出时钟使能寄存器。CGM_OCDS_SC输出时钟分频与源选择寄存器。SELCTL选择时钟源IRC、FXOSC、PLL等SELDIV选择分频系数1, 2, 4, 8。// 将系统主时钟假设来自FMPLL064MHz进行4分频后从CLKOUT引脚输出16MHz方波 void Enable_CLKOUT(void) { volatile uint32_t* CGM_OC_EN (volatile uint32_t*)0xC3FE0370; volatile uint32_t* CGM_OCDS_SC (volatile uint32_t*)0xC3FE0374; // 1. 配置时钟源和分频 // SELCTL: 010 Primary FMPLL (FMPLL0) // SELDIV: 10 Divide by 4 *CGM_OCDS_SC (0x2 2) | (0x2 4); // 位域位置需根据手册调整 // 2. 使能输出 *CGM_OC_EN | (1 31); // 设置EN位 }4. 低功耗模式下的协同工作CAN采样器与时钟的联动这是整个设计最精妙的部分。我们来看一个典型的低功耗唤醒场景系统进入STOP模式CAN采样器被配置为FF_MODE用于监听总线上的特定ID。进入低功耗前时钟配置MC_ME将系统时钟切换到低功耗源如SIRC 128kHz或直接关闭系统时钟。但16MHz FIRC必须保持开启STOP模式支持因为CAN采样器需要它。CAN采样器配置如前所述配置Rx端口、波特率BRP、FF_MODE并使能CAN_SMPLR_EN。此时采样器开始监视选定的Rx线。外设时钟门控通过MC_CGM或MC_ME关闭所有不必要外设的时钟包括主FlexCAN控制器进一步降低功耗。低功耗运行中系统主时钟可能已降至极低或关闭CPU停止。但16MHz FIRC和CAN采样器仍在运行功耗极低通常几十到几百微安。当总线上出现符合SOF条件的下降沿时采样器被触发开始以16MHz / BRP的频率采样Rx线。唤醒与恢复采样完成后RX_COMPLETE标志置位。这个事件可以连接到MCU的唤醒中断控制器。MCU被唤醒首先执行启动代码将系统时钟切换回高速时钟如FXOSCPLL。软件在中断服务程序中按照前述流程禁用采样器、读取数据、解码ID。如果ID匹配则进行完整的系统初始化初始化主FlexCAN控制器、恢复外设等并进入正常工作模式。如果不匹配可以重新配置采样器并再次进入低功耗模式。功耗估算示例 假设在STOP模式下核心逻辑电源域静态电流5 µA16MHz FIRC运行电流50 µACAN采样器静态电流10 µA总计约 65 µA。相比之下如果让整个MCU运行在低频监听模式或者使用外部CAN监控芯片功耗很可能在毫安级。PXD10的方案将待机功耗降低了1-2个数量级对于电池供电设备意义重大。5. 常见问题排查与调试技巧在实际项目中让CAN采样器稳定工作可能会遇到一些挑战。以下是我总结的常见问题与排查思路问题1系统无法被CAN消息唤醒。检查清单模式MODE是否正确确认低功耗模式与IRC状态匹配STOP/HALT用FF_MODESTANDBY用SF_MODE。CAN_SMPLR_EN是否在进入低功耗前已置位在调用进入低功耗的函数如__WFI()前单步调试或打印寄存器确认该位为1。波特率BRP计算是否正确用示波器测量CAN总线实际波特率重新计算BRP值。IRC频率有误差公式BRP (1 / (8 * Baudrate)) / (1/16MHz)中的16MHz是理想值实际可能有偏差可能需要微调。Rx引脚配置是否正确确保GPIO复用功能已正确配置为CAN RX并且上拉/下拉电阻配置与总线空闲状态一致CAN总线空闲时为隐性通常需要上拉。物理连接是否正常检查CAN收发器、终端电阻、线缆。问题2唤醒后读取的采样数据全是0或全是1解码不出有效ID。检查清单读取时序是否正确务必遵循“先清CAN_SMPLR_EN再等Active_CK变0最后读数据”的流程。过早读取会得到不稳定数据。采样寄存器是否在使能前被意外清零在初始化时可以给采样寄存器写入一个特定的魔数如0xAA55AA55唤醒后检查是否被覆盖以确认采样确实发生。总线是否有真实的符合波特率的CAN帧使用CAN分析仪或另一个正常节点发送确切的唤醒帧。软件解码算法是否有bug编写一个测试函数用模拟的理想采样数据例如手动构造一个标准ID帧的采样序列输入解码算法验证其正确性。问题3系统唤醒后运行不稳定或外设工作异常。检查清单时钟切换是否完整唤醒后是否将所有需要的时钟系统时钟、外设总线时钟、外设模块时钟都正确恢复到了工作频率检查MC_ME和MC_CGM的相关状态寄存器。外是否重新初始化在低功耗模式下许多外设如FlexCAN、ADC的寄存器状态可能丢失或无效。唤醒后必须对这些外设进行完整的重新初始化而不是简单地恢复时钟。中断向量表是否重定位有些低功耗模式会复位部分内核确保中断向量表在唤醒后仍然有效。调试技巧善用CLKOUT将CAN采样器使用的时钟如16MHz IRC或系统时钟输出到CLKOUT引脚用示波器观察其频率和稳定性。GPIO辅助调试在关键代码段如进入低功耗前、唤醒中断入口、采样数据读取前后翻转一个GPIO引脚用逻辑分析仪观察时间序列可以清晰看到程序执行流程和耗时。寄存器级调试不要依赖高级API。在调试阶段直接读写MC_CGM和CAN采样器的寄存器并打印其值是定位配置错误最直接的方法。6. 项目实战构建一个低功耗CAN网关节点让我们将这些知识整合到一个假设的项目中设计一个车载低功耗CAN网关节点平时处于STOP模式当收到特定ID0x123的CAN帧时唤醒将消息转发到另一个CAN网络然后继续休眠。硬件设计要点使用PXD10作为主控。使用两路独立的CAN收发器如TJA1050连接两个不同的CAN网络。为PXD10提供稳定的外部晶振如8MHz和32.768kHz RTC晶振。预留CLKOUT测试点。软件架构初始化配置时钟树FXOSC - PLL0 - 64MHz系统时钟。配置外设组时钟。初始化GPIO、两个FlexCAN控制器正常工作时用。初始化CAN采样器连接到网络一的Rx配置125kbpsFF_MODE因为用STOP模式。配置唤醒中断源为CAN采样器完成事件。主循环完成启动任务后配置所有外设进入低功耗状态。设置CAN采样器CAN_SMPLR_EN1。执行__WFI()指令进入STOP模式。唤醒中断服务程序禁用采样器读取并解码ID。如果ID 0x123恢复系统时钟到64MHz。重新初始化FlexCAN控制器1监听网络。接收完整的CAN帧此时总线可能还有后续数据。初始化FlexCAN控制器2转发网络。将消息转发到网络二。跳转到主循环重新准备休眠。如果ID不匹配直接重新使能采样器并再次进入休眠。功耗优化进阶在STOP模式下可以尝试关闭所有未使用的模拟模块ADC、比较器的电源。如果唤醒帧的间隔较长可以考虑使用STANDBY模式功耗更低但需将CAN采样器改为SF_MODE并处理好IRC的启动延迟。精细配置MC_CGM在正常工作模式下只为需要的外设提供时钟关闭其他所有外设组的时钟门控。通过这样的设计这个网关节点在绝大部分时间可以维持在百微安级的电流只有在需要转发消息时才短暂消耗数十毫安的工作电流非常适合对功耗敏感的车载常电设备。PXD10的CAN采样器与时钟模块的深度结合为这类应用提供了芯片级的、高集成度的解决方案省去了外部监控芯片提高了可靠性降低了总体成本。