CF3310 是基于RISC-V 32位高性能低功耗内核E20的安全微控制器,可用于信息安全、物联网智能家居、小家电等应用,其工作频率为 30MHz。采用 40nm 先进工艺,具有极高的集成度及成本竞争力。CF3310 可以工作在 1.62~5.5V,具有多种功耗模式,电流最小低至 nA 级别;硬件固化多种国际密码算法及国密算法,并可以抵御多种侧信道攻击,支持防御物理破解。支持多种通信接口如 SPI、I2C、UART、ISO7816、SWI等,所有管脚均可作为GPIO。
快速上手及手把手指导点灯
CF3310开发板这块小版做工不错,板子上的用于扩展的接口有好几个,不过没有都焊上针,好在已经焊针的,足够一般的测试使用了。开发板上,有一些预留的芯片位置。
官方提供的资料包,非常丰富,包含了开发板、芯片、开发工具、例程等的详细材料。
详细阅读 CF3310客户开发包/1 快速入门/CCore RISC-V IDE快速入门.pdf ,按照说明步骤安装好开发工具 C*Core IDE Suite RISC-V,以及使用 zadig安装好JTAG驱动,就能开始开发了。
仿真调试体验
作为MCU开发,仿真调试是必不可少的过程。具备方便高效的仿真调试工具的MCU平台,更有利于产品的开发,也更容易被客户接收。所以本文章对CF3310的仿真进行测试。
CF3310官方提供的是基于eclipse的ide,基于gcc+gdb工具链,硬件的仿真器基于FT232的cJtag。搭建好开发环境后,我们可以进行仿真。
总之仿真环境还是基本是基本能用,离好用,高效,健壮还有较大差距,希望国产risc-v芯片开花的前提下,能提高下相应的生态和开发环境。
32 位可编程中断计时器模块PIT32基础使用
在微五科技CF3310开发板上,提供了两个32 位可编程中断计时器模块:
其具体的处理逻辑如下:
通过对官方提供的pit32_demo的学习,了解到该定时器的基础使用方式。
要使用开发板上的定时器,有两个概念,我们需要先了解:
-
分频:为了得到准确的计时时间,通常使用开发板运行频率,取其2的整数次方 之一,得到一个合适的频率值,然后根据该频率值进行计数;否则,频率值过大,导致计数值增长太快,计数器溢出。
-
计数:在上述分频的基础上,进行计数,累积到预先设定的数值,就触发定时器进行具体的操作。
CF3310开发板的串口使用
CF3310开发板提供了UART功能,详细信息可以查看官方文档:
系统处理的实际逻辑为:
在官方提供的演示代码,关闭其他demo定义,开启#define UART_DEMO_EN,就能启用UART测试,其具体对应的代码为:src/demo/uart_demo.c
在CF3310开发板上,有两种方式,可以连接到开发板的UART接口,与其他设备通信。
方式1:Type-C串口调试
将开发板用Type-C线连接到电脑,并在电脑上安装好对应的驱动,就能看到对应的串口设备。
方式2:直连芯片的GINT1和GINT0引脚
使用USB2TTL,GITN1-TX连USB2TTL的RX引脚,GINT0-RX连USB2TTL的TX引脚,然后将USB2TTL的GND与开发板的GND相连即可。
利用硬件加密功能,搞定串口加密通讯
CF3310开发板是国产首创RISC-V安全微控制器,从官方资料可以了解到其所支持的安全功能:
其在硬件上,对加密功能进行了针对性的加强:
并在硬件级别提供了多种加密算法:
在经过学习官方资料包中提供的demo,以及经过官方技术人员手把手的指导,结合自己所了解的Python加密知识,实现了串口加密通信。
这篇分享中,演示的是从开发板发送经过加密处理的数据;
然后在上位机上,接收并解密对应的数据。
在开始之前,请先阅读我的上一篇分享 【CF3310开发板的串口使用】 ,了解串口的使用。
可以直接使用跳线帽,按照如图所示短接对应的引脚,这样Type-C口连接到电脑后,就能直接使用串口工具连接其对应的串口进行调试了:
安全算法小盘点
微五科技CF3310开发板有一个很大特点就是安全算法的无缝嵌入,这也是吸引我很大兴趣的一个地方,今天就一起来盘点,共同增益知识及使用方式。
目前官方DEMO里整合了6种算法:SM4,DES,AES,HASH,RSA,SM2,如果有不清楚请度娘一下