在emfi测试中需要精确的控制脉冲时间。控制器产生的脉冲信号会经过控压的MOS管,这些组件会造成很严重的延时,但是尽管如此,控制系统的高精度也是必须的,因为控制系统的误差会逐级下延,引起更大的误差。
人们有很多方法尝试获得高精度的脉冲信号,包括fpga,逻辑电路等,但是fpga的开发环境太重,难度也不低,逻辑电路功能附加很困难,实际上还是使用SOC是最好的。
如果使用GPIO的反转去控制,又会有很多的问题,汇编调用的时候,会有指令上的延时,导致GPIO最快反转速度都不快。中间层会降低开发难度,但是也会造成很大的延时,例如STM32H7在ST官方库的GPIO反转之后最高13Mhz,而且对于高阶注入,误差会更大。
今天在一个阿里巴巴达摩院的朋友指导下,尝试了使用SPI的数据输出线作为控制信号,效果很好。
设置的输出时钟直接决定着精度。
例如:输入数据为 x00x00xFFx00 则数据流在MSB情况下是0000 0000 0000 0000 1111 1111 0000 0000
xAAxAAxAAxAA 则为 1010 1010 1010 1010 1010 1010 1010 1010
x0fxffxa0 0
0000 1111 1111 1111 1010 0000
勘智 k210芯片 在有python中间层的情况下,依然很好
缺点就是占用的引脚有点多
但是可以作时钟同步的注入,很有趣