非实时采样与实时采样
16 Aug 2024
Read time: 2 minute(s)
ADC 应用模块传递给 ADCIM 的采样命令分为以下两类,用来实现非实时采样和实时采样功能:
注: 关于采样命令详细说明,可查看 采样命令接口说明。
- 低优先级命令:通常是面对非实时需求的场景。
例如,在 GPAI 的多数应用场景,以及 THS 温度传感器采样的应用场景中,没有严格的完成时间要求(时序要求),只需要在大概的时间内对某个输入量进行采样量化并返回给 ADC 应用模块即可。
- 高优先级命令:通常是面对有实时性需求的场景。
例如,RTP 模块的采样需要配合使用外部的驱动电路, 有较高的时序要求。RTP 模块需要明确知道采样的起始和结束时间,而且期望在较快的时间内完成采样,以获得更好的用户体验。
对于低优先级与高优先级命令,ADCIM 模块内部有不同的处理和响应机制:
- 高优先级命令 (PRI = 1) 的响应优先级高于低优先级命令 (PRI = 0)。
- 对于同时接收到的、优先级相同的命令,使用轮询的机制,从通道号小的先开始。
- 低优先级命令响应机制为先请求先排队先装入 FIFO 进行排队并等待响应。
- 对于同时请求的命令,使用轮询的机制,从通道号小的先开始。
- 高优先级的实时命令不会经过 FIFO,直接参与仲裁响应。
如低优先级与高优先级命令的响应机制举例所示,其中 PRI 表示优先级,CH
表示通道号,响应的优先顺序如下:
- CH6 (PRI=1)、CH7 (PRI=1)、CH15 (PRI=0) 与 CH0 (PRI=0),同时先发出采样请求。
- CH1(PRI=0) 与 CH2 (PRI=0) 发出采样请求。
- CH8 (PRI=1) 发出采样请求
根据高低优先级的响应机制,最终采样执行的先后顺序为
。采样命令接口说明
采样命令由三部分构成:
- 优先级:分为高优先级和低优先级, 由对应通道的 PRI 信号控制,可实现实时采样和非实时采样功能。
- 通道号:在模块内部产生,直接对应不同通道的端口。
- 捕获时长:以 ADC_CLK 的周期为单位的计数值,来自对应通道的 ACQx 信号:
TACQx = (ACQx+1)*TADC_CLK
注: 每个通道的捕获时长控制信号 ACQx 直接反映 ADC
应用模块对每个通道的配置值。在已经发出采样命令但未收到返回的采样数据值之前,不能改变此配置值。
以下分别展示了低优先级和高优先级命令的时序图:
低优先级采样命令时序中:
- 从 ENx 有效,到 ACKx 有效,中间会经过不确定的时钟周期数的时间,原因为:
- 多个通道同时发送采样命令,ADCIM 不能及时响应。
- 如果内部 FIFO 已经满,则会通过 ACKx 信号延迟命令接收。
- 从 ACKx 有效到 ENx 无效只需要经历一个周期。ACKx 有效意味着本采样命令已经进入命令 FIFO。
采样数据返回接口说明
采样数据返回通道包括 {DVAL, CH,DATA},多个通道的数据通过共同的 DATA 返回通道传递给不同的 ADC 应用模块,例如 RTP/ GPAI/ THS。ADC 应用模块在 DVAL 有效时接收根据 DVAL 与 CH[3:0] 值锁存与自身通道号匹配的采样值 (DATA)。
由于 ADC 采样数据是从 ADC 模拟电路串行输入,并转化为并行数据输出,所以 DVAL 信号不存在连续多个时钟周期有效的情况, 都是一个个单周期的有效信号。数据返回通道时序如下所示。
如数据返回通道时序所示:
- 当 DVAL=1,CH=1,DATA=0x123,表示 0x123 为通道 1 的有效数据。
- 当 DVAL=1,CH=3,DATA=0x078,表示 0x078 为通道 3 的有效数据。
- 当 DVAL=1,CH=14,DATA=0xABC ,表示 0xABC 为通道 14 的有效数据。