STM32L5x系列是ST新出的MCU,去年的时候才刚听说ST出了M33架构的MCU。
这款MCU自带硬件TrustZone
ARM TrustZone® 技术是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付、数字版权管理 (DRM)、企业服务和基于 Web 的服务。
TrustZone 技术与 Cortex™-A 处理器紧密集成,并通过 AMBA® AXI 总线和特定的 TrustZone 系统 IP 块在系统中进行扩展。此系统方法意味着可以保护安全内存、加密块、键盘和屏幕等外设,从而可确保它们免遭软件攻击。
按照 TrustZone Ready Program 建议开发并利用 TrustZone 技术的设备提供了能够支持完全可信执行环境 (TEE) 以及安全感知应用程序和安全服务的平台。
在介绍TrustZone前有必要简单回顾下目前的一些安全手段。
CPU通过内存映射手段给每个进程营造一个单独的地址空间来隔离多个进程的代码和数据,通过内核空间和用户空间不同的特权级来隔离操作系统和用户进程的代码和数据。但由于内存中的代码和数据都是明文,容易被同处于内存中的其它应用偷窥,因此出现了扩展的安全模块,应用将加密数据送往安全模块,由安全模块处理完后再返回结果给相应的应用。
很多消费电子设备都使用扩展的安全模块来确保数据安全,目前常见的方式有:
-
外部挂接硬件安全模块
数据的处理交由外部的安全模块实现,这些模块能够保护自己的资源和密钥等数据的安全,如SIM卡、各种智能卡或连接到外部的硬件加解密模块等,但其同主芯片的通信线路暴露在外部,容易被监听破解。另外,通信的速率比较低。
-
内部集成硬件安全模块
将外部安全模块的功能集成到芯片内,因此一个芯片上至少有两个核:一个普通核和一个安全核。优点是核与核之间的通信在芯片内部实现,不再暴露在外面。缺点是核之间的通信速度仍然较低,而且单独的安全核性能有限,还会会占用SoC面积,成本较高.
由此看见此功能主要应用于设别硬件安全这一方向。
当然我们的小小的设计与TrustZone无关哈。
下面主要介绍我们使用STM32L552驱动WS2812
WS2812驱动原理如下:
● IC控制电路与LED点光源共用一个电源。
● 控制电路与RGB芯片集成在一个5mm直径的圆头四脚直插封装的灯珠中, 构成一个完整的外控像素点。
● 内置信号整形电路, 任何一个像素点收到信号后经过波形整形再输出, 保证线路波形畸变不会累加。
● 内置上电复位和掉电复位电路。
● 每个像素点的三基色颜色可实现256级亮度显示, 完成16777216种颜色的全真色彩显示。
● 扫描频率 2kHz/s。
● 串行级联接口, 能通过一根信号线完成数据的接收与解码。
● 任意两点传传输距离在不超过 2 米时无需增加任何电路。
● 当刷新速率 30 帧/秒时。
● 数据发送速度可达 800Kbps
数据协议采用单线归零码的通讯方式, 像素点在上电复位以后, DIN端接受从控制器传输过来的数据, 首先送过来的24bit数据被第一个像素点提取后, 送到像素点内部的数据锁存器, 剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点, 每经过一个像素点的传输, 信号减少24bit。 像素点采用自动整形转发技术, 使得该像素点的级联个数不受信号传送的限制, 仅仅受限信号传输速度要求。
灯珠之间采用串联的方式进行连接。
以上的模具为光敏树脂材料打印的,我的PLA的打印机达不到这个精度,不然就用我自己的打印机打印了,当然光敏树脂材料也会贵一些,这个花了80大洋。
代码我采用的是DMA搬运+timer的方式进行实现,具体的代码就不放出来了,在最后会给大家贴出来,目前写的只是一个简单的测试代码。下面给大家看下具体的效果图:
这个就是焊接半个小时的劳动成果。后面会给大家继续更新。