Edit online

非实时采样与实时采样

16 Aug 2024
Read time: 2 minute(s)
ADC 应用模块传递给 ADCIM 的采样命令分为以下两类,用来实现非实时采样和实时采样功能:
注: 关于采样命令详细说明,可查看 采样命令接口说明
  • 低优先级命令:通常是面对非实时需求的场景。

    例如,在 GPAI 的多数应用场景,以及 THS 温度传感器采样的应用场景中,没有严格的完成时间要求(时序要求),只需要在大概的时间内对某个输入量进行采样量化并返回给 ADC 应用模块即可。

  • 高优先级命令:通常是面对有实时性需求的场景。

    例如,RTP 模块的采样需要配合使用外部的驱动电路, 有较高的时序要求。RTP 模块需要明确知道采样的起始和结束时间,而且期望在较快的时间内完成采样,以获得更好的用户体验。

对于低优先级与高优先级命令,ADCIM 模块内部有不同的处理和响应机制:
  • 高优先级命令 (PRI = 1) 的响应优先级高于低优先级命令 (PRI = 0)。
  • 对于同时接收到的、优先级相同的命令,使用轮询的机制,从通道号小的先开始。
  • 低优先级命令响应机制为先请求先排队先装入 FIFO 进行排队并等待响应。
    • 对于同时请求的命令,使用轮询的机制,从通道号小的先开始。
  • 高优先级的实时命令不会经过 FIFO,直接参与仲裁响应。
低优先级与高优先级命令的响应机制举例所示,其中 PRI 表示优先级,CH 表示通道号,响应的优先顺序如下:
  1. CH6 (PRI=1)、CH7 (PRI=1)、CH15 (PRI=0) 与 CH0 (PRI=0),同时先发出采样请求。
  2. CH1(PRI=0) 与 CH2 (PRI=0) 发出采样请求。
  3. CH8 (PRI=1) 发出采样请求

根据高低优先级的响应机制,最终采样执行的先后顺序为 CH6(最先) > CH7 > CH0 > CH8 > CH15 > CH1 > CH2(最后)



1. 低优先级与高优先级命令的响应机制举例

采样命令接口说明

采样命令由三部分构成:
  • 优先级:分为高优先级和低优先级, 由对应通道的 PRI 信号控制,可实现实时采样和非实时采样功能。
  • 通道号:在模块内部产生,直接对应不同通道的端口。
  • 捕获时长:以 ADC_CLK 的周期为单位的计数值,来自对应通道的 ACQx 信号:

    TACQx = (ACQx+1)*TADC_CLK

注: 每个通道的捕获时长控制信号 ACQx 直接反映 ADC 应用模块对每个通道的配置值。在已经发出采样命令但未收到返回的采样数据值之前,不能改变此配置值。

以下分别展示了低优先级和高优先级命令的时序图:



2. 低优先级命令时序
低优先级采样命令时序中:
  • 从 ENx 有效,到 ACKx 有效,中间会经过不确定的时钟周期数的时间,原因为:
    1. 多个通道同时发送采样命令,ADCIM 不能及时响应。
    2. 如果内部 FIFO 已经满,则会通过 ACKx 信号延迟命令接收。
  • 从 ACKx 有效到 ENx 无效只需要经历一个周期。ACKx 有效意味着本采样命令已经进入命令 FIFO。


3. 高优先级命令时序
实时采样命令时序中:
  • 从 ENx 有效,到 ACKx 有效,与低优先级命令时序一样,中间会经过不确定的时钟周期数, 原因是:
    1. 正在处理的低优先级非实时命令,需要先处理完这一个命令。
    2. 有其他的同样是高优先级命令正在处理。
  • 从 ACKx 有效到 ENx 无效只需要一个时钟周期。ACKx 有效意味着本采样命令已经处理完成。

采样数据返回接口说明

采样数据返回通道包括 {DVAL, CH,DATA},多个通道的数据通过共同的 DATA 返回通道传递给不同的 ADC 应用模块,例如 RTP/ GPAI/ THS。ADC 应用模块在 DVAL 有效时接收根据 DVAL 与 CH[3:0] 值锁存与自身通道号匹配的采样值 (DATA)。

由于 ADC 采样数据是从 ADC 模拟电路串行输入,并转化为并行数据输出,所以 DVAL 信号不存在连续多个时钟周期有效的情况, 都是一个个单周期的有效信号。数据返回通道时序如下所示。



4. 数据返回通道时序
数据返回通道时序所示:
  • 当 DVAL=1,CH=1,DATA=0x123,表示 0x123 为通道 1 的有效数据。
  • 当 DVAL=1,CH=3,DATA=0x078,表示 0x078 为通道 3 的有效数据。
  • 当 DVAL=1,CH=14,DATA=0xABC ,表示 0xABC 为通道 14 的有效数据。