Cracker-S1
Cracker-S1是一款专门针对嵌入式芯片的侧信道采集工具,单台设备即可实现高质量侧信道信号采集。支持UART、SPI、I2C、CAN(开发中)等常用通信协议,板载12bit高精度ADC芯片,采样率最高可达65MSamples/S,支持同步采样功能。设备采用网络接口方便组网和远程控制,设备支持PoE(Power over Ethernet)方式供电。
主要指标
-
Nut Socket
:- UART、SPI、I2C、CAN
- 时钟信号,4MHz、8MHz、12MHz、24MHz
- 复位信号
- 供电电压2.0V至4.1V,步进0.1V
-
信号采集
- 板载12bit高精度双通道ADC芯片
- 采样率:65MHz、48MHz、24MHz、12MHz、8MHz,可同
Nut Socket
时钟匹配实现同步采样 - 采样时钟相位调节:0°至360°,可同
Nut Socket
时钟匹配实现精细化同步采样 - 通道A可外接电磁探头,用于采集电磁信号
- 通道B连接板载功耗采集电路,用于采集Nut功耗
-
触发
- Nut触发,通过Nut GPIO信号确定触发时刻
- 通信协议触发,在最后一个字节传输时触发
- 电平触发
-
千兆以太网控制接口
-
OLED显示
-
供电方式
- POE供电(推荐)
- 12V适配器供电
供电
Cracker-S1
支持2种供电方式:
- 通过POE交换机供电。
- 通过DC接口插入12V 2A直流电源。
Nut Socket
Nut Socket用于接入待测芯片测试板,定义了各个接口功能。
标识 | 功能 |
---|---|
VCC | 连接DUT芯片VCC管脚,用于向DUT芯片供电,同时可采集DUT芯片的功耗变化。 供电电压变化范围2V至4.1V,步进0.1V。 |
VCC | 同上 |
VCC | 同上 |
VCC | 同上 |
NC | 未使用 |
NC | 同上 |
NC | 同上 |
NC | 同上 |
GND | 连接DUT芯片GND管脚 |
GND | 同上 |
GND | 同上 |
GND | 同上 |
RFU | 未使用 |
CLK | 连接DUT芯片CLK管脚,用于向DUT提供时钟信号。 |
RSTN | 连接DUT芯片RSTN管脚,用于复 位DUT芯片。 |
GP8 | 用户自定义管脚。 |
GP7 | 同上 |
GP6 | 同上 |
GP5 | 同上 |
GP4 | 同上 |
GP3 | 同上 |
GP2 | 同上 |
GP1 | 同上 |
RFU | 未定义 |
U_TX | UART协议TX管脚,向DUT芯片发送数据。 |
U_RX | UART协议RX管脚,接收DUT芯片发送数据。 |
SPI_CS | SPI协议CS管脚,片选功能。 |
SCK | SPI协议SCK管脚,通信时钟。 |
MISO | SPI协议MISO管脚,接收DUT发送数据。 |
MOSI | SPI协议MOSI管脚,向DUT芯片发送数据。 |
SDA | I2C协议SDA管脚,同DUT芯片交互数据。 |
SCL | I2C协议SCL管脚,通信时钟。 |
CAN_L | CAN协议L管脚。 |
CAN_H | CAN协议H管脚。 |
RFU | 未定义 |
信号采集
Cracker-S1支持功耗信号、电磁信号采集功能,板载高精度ADC芯片支持2路信号输入:
- 通道A可连接电磁探头用于采集Nuts电磁信号。
- 通道B可采集Nuts功耗信号。
电磁信号采集
通道A用于采集电磁信号,电磁探头经信号放大器后接入通道A,通道A输入信号经可变增益放大电路进入ADC芯片,电磁探头可配合三轴定位台使用。
功耗信号采集
通道B用于采集功耗信号,Nut
电源VCC上的电压变化由功耗测量电路捕获,功耗信号经由固定增益放大电路和可变增益放大电路后进入ADC芯片。
通信
UART
uart_enable()
(status, none) = uart_enable(enable=False)
功能:
配置UART接口是否使能,如关闭,相应管脚配置为三态输入状态。
参数
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
enable | False | 是否使能UART接口。 True:使能UART接口; False:关闭UART接口,相应管脚配置为三态输入状态。 |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
注意
- 使能UART通信功能,需确保UART使能和对Nut芯片供电同时开启。
uart_reset()
(status, none) = uart_reset()
功能:
复位UART硬件。
参数
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
none |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
uart_config()
(status, none) = uart_config(baudrate=115200, bytesize=uart.EIGHTBITS, parity=uart.PARITY_NONE, stopbits=uart.STOPBITS_ONE)
功能:
配置UART接口参数。
参数
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
baudrate | 115200 | 串口通信波特率,支持速率:9600/ 19200/ 38400/ 57600/ 115200 | |
bytesize | 8 | 串口通信数据位。 8 uart.FIVEBITS: 5 uart.SIXBITS: 6 uart.SEVENBITS: 7 uart.EIGHTBITS: 8 | |
parity | uart.PARITY_NONE | 校验位 uart.PARITY_NONE: 0 uart.PARITY_EVEN: 1 uart.PARITY_ODD: 2 uart.PARITY_MARK: 3 uart.PARITY_SPACE: 4 | |
stopbits | uart.STOPBITS_ONE | 停止位 uart.STOPBITS_ONE: 0 uart.STOPBITS_ONE_POINT_FIVE: 1 uart.STOPBITS_TWO: 2 |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
uart_transmit_receive()
rxData = uart_transmit_receive(txData, rxCount, isTrigger=False, timeOutMs=10000)
功能:
通过UART接口发送数据,等待一段时间后,接收数据,根据用户配置决定是否产生Trigger信号。
参数:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
txData | none | 要发送数据,bytes或十六进制字符串。 | |
rxCount | 0 | 要接收数据长度。 | |
isTrigger | False | 接收完成时是否产生触发信号。 True:接收完成时,Trigger信号拉高 False:接收完成时,Trigger信号不变。 | |
timeOutMs | 10000 | 超时时间,单位毫秒。 |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 | |
rxData | none | 接收到的数据。 |
uart_receive_fifo_remained()
(status, size) = uart_receive_fifo_remained()
功能:
返回UART接收FIFO剩余未读字节数。
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 | |
size | 0 | 当前UART接收FIFO中剩余未读的字节数。 |
uart_receive_fifo_dump()
(status, payload) = uart_receive_fifo_dump()
功能:
读取UART接收FIFO中剩余的所有数据。
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 | |
payload | 0 | UART接收FIFO中剩余的所有数据。 |
uart_receive_fifo_clear()
(status, none) = uart_receive_fifo_clear()
功能:
清除UART接收FIFO中剩余的所有数据。
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
SPI
spi_enable()
(status, none) = spi_enable(enable=False)
功能:
配置SPI接口是否使能,如关闭,相应管脚配置为三态输入状态。
参数
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
enable | False | 是否使能SPI接口。 True:使能SPI接口; False:关闭SPI接口,相应管脚配置为三态输入状态。 |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
注意
- 使能SPI通信功能,需确保SPI使能和对Nut芯片供电同时开启。
spi_reset()
(status, none) = spi_reset()
功能:
复位SPI硬件。
参数
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
none |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
spi_config()
(status, none) = spi_config(speed=10000, cpol=spi.CPOL_LOW, cpha=spi.CPHA_LOW)
功能:
配置SPI接口参数。CPOL(时钟极性)和CPHA(时钟相位)与实际采样数据时刻如下图所示,其中蓝色线为采样数据的时刻,橙色线为SCK时钟信号。
参数
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
speed | 10,000 | 通信速率,默认10kHz,同CFG_PROTOCOL 寄存器中PSC 关系为:speed=(100×10^6)/(2*PSC) | |
cpol | spi.CPOL_LOW | 时钟极性。 spi.CPHA_LOW: 0 spi.CPHA_HIGH: 1 | |
cpha | spi.CPHA_LOW | 时钟相位 spi.CPHA_LOW: 0 spi.CPHA_HIGH: 1 |
返回:
参数 | 默认值 | 描述 | 备注 |
---|---|---|---|
status | 0 | 执行状态。 |
spi_transmit()
(status, none) = spi_transmit(txData, isTrigger = False)
功能:
通过SPI接口发送bytes型数据txData