tag 标签: ST

相关博文
  • 2025-3-7 14:08
    238 次阅读|
    0 个评论
    一、系统概述 MYD-LD25X搭载的Debian系统包含以太网、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI显示和摄像头等功能,同时也集成了XFCE轻量化桌面、VNC远程操控、SWITCH网络交换和TSN时间敏感网络功能,为工业设备赋予“超强算力+实时响应+极简运维”的体验! 类别 名称 描述 源码 TF-A Arm Trusted Firmware2.8 OP-TEE OP-TEE 3.19 Bootloader U-boot 2022.10 Kernel Linux Kernel 6.1.82 文件系统 myir-image-debian Debian12文件系统 工具 烧录工具 STM32CubeProgrammer 文档 MYD-LD25X_Debian系统开发指南 包含源码编译,烧录等 注:目前Debian系统只适配了高配置开发板型号:MYD-LD257-8E2D-150-I 图:MYC-LD25X核心板及开发板 二、亮点功能介绍 1、Xfce桌面 Xfce是一款轻量级的开源桌面环境,旨在提供高效、稳定和易于使用的桌面体验。 轻量级:Xfce以资源效率为目标,注重在低资源消耗下提供快速响应和流畅的用户体验。它适用于各种硬件配置,包括旧式计算机和嵌入式设备。 简洁和直观:Xfce遵循简洁和直观的设计原则,提供了直观易用的用户界面,使用户能够快速上手和自定义桌面环境。 模块化:Xfce采用模块化的设计,桌面环境由多个独立的组件(如面板、窗口管理器、文件管理器等)组成,用户可以根据自己的需求进行定制和配置。 1.1 .启动Xfce myir-image-debian系统默认已经包含xfce显示界面,开发板启动进入系统后,接上屏幕会显示如下界面,说明成功启动Xfce,需输入设置的账户进入系统界面。 图1.1 xfce显示界面 2、 VNC远程控制 2.1. vnc简介 VNC(Virtual Network Computing,虚拟网络计算)是一种远程桌面控制技术,允许用户通过互联网或局域网远程访问和控制另一台计算机的桌面环境。系统默认安装了TigerVNC。以下是其核心特点和应用: 协议基础:基于RFB协议(Remote Framebuffer Protocol),通过传输屏幕图像的更新部分和用户输入指令实现交互。 客户端-服务端架构: 服务端:运行在MYD-LD25X上,负责分享屏幕并接收客户端指令。 客户端:用户通过客户端连接到服务端,查看并操作远程桌面。 网络传输:默认使用TCP端口5900+N(N为显示器编号,如:1对应5901)。 2.2.启动VNC服务 Debian系统默认上电就开启VNC服务端,使用下面命令查看vnc服务: root@myd-ld25x:~# ps -ef | grep vnc root 2348 1 0 15 :14 ? 00 :00:00 /usr/bin/perl /usr/bin/vncserver -geometry 1280x720 -depth 24 -localhost no :1 root 2349 2348 0 15 :14 ? 00 :00:01 /usr/bin/Xtigervnc :1 -localhost=0 -desktop myd-ld25x:1 (root) -rfbport 5901 -PasswordFile /tmp/tigervnc.QQW419/passwd -SecurityTypes VncAuth,TLSVnc -auth /root/.Xauthority -geometry 1280x720 -depth 24 root 2350 2348 0 15 :14 ? 00 :00:00 /bin/sh /etc/X11/Xtigervnc-session root 2356 2350 0 15 :14 ? 00 :00:00 tigervncconfig -iconic root 4836 3480 0 16 :48 ttySTM0 00 :00:00 grep vnc 2.3客户端连接测试 下载客户端 Windows下载并安装客户端软件(如 RealVNC Viewer ),如下图所示: 图2.1客户端VNC界面 获取连接信息 通过myd-ld25x开发板获取目标设备的IP地址或主机名 (如192.168.40.198或myd-ld25x): root @myd-ld 25 x :~# cat /etc/hosts 127.0 . 0.1 myd-ld25x root @myd-ld 25 x :~# ifconfig end1: flags= 4099 UP,BROADCAST,MULTICAST mtu 1500 ether 38 :d5: 47 : 00 : 29 : 62 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 ( 0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 ( 0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 65 base 0 xc000 end2: flags= 4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 192.168 . 40.198 netmask 255.255 . 255.0 broadcast 192.168 . 40.255 inet6 fe80::bd6: 742 b :ef7 e :ee6f prefixlen 64 scopeid 0 x20link ether 5 e : 08 : 0 d : 0 e : 83 :b6 txqueuelen 1000 (Ethernet) RX packets 12454 bytes 2524533 ( 2.4 MiB) RX errors 0 dropped 129 overruns 0 frame 0 TX packets 476 bytes 41087 ( 40.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 68 base 0 x8000 通过VNC服务器的log,获取端口/显示编号,如:1(对应端口5901)或直接指定端口号5901: root @myd-ld 25 x :~# cat .vnc/myd-ld25 x : 1 .log Xvnc TigerVNC 1.12 . 0 - built 2023 - 01 - 06 16 : 01 Copyright (C) 1999 - 2021 TigerVNC Team and many others (see README.rst) See https ://www.tigervnc.org for information on TigerVNC. Underlying X server release 12101006 , X.Org Mon Mar 3 18 : 02 : 44 2025 vncext : VNC extension running! vncext : Listening for VNC connections on all interface(s), port 5901 vncext : created VNC server for screen 0 3 NI3X0 New Xtigervnc server 'myd-ld25x:1 (root)' on port 5901 for display : 1 . 3 NI3X0 Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.otB4Rd/passwd myd-ld25 x : 1 to connect to the VNC server. mieq : warning : overriding existing handler (nil) with 0 xaaaae7efad10 for event 2 mieq : warning : overriding existing handler (nil) with 0 xaaaae7efad10 for event 3 .................................................. 输入连接地址 依次点击VNC客户端界面“File-New connection”输入服务器和主机名,格式如下: 格式:目标地址:显示编号或目标地址::端口号 示例1(主机名+显示编号):myd-ld25x:1 示例2(IP+端口):192.168.40.198:5901 以主机名为例子,配置完成后,点击”OK”按钮,如下图所示: 图2.2客户端VNC配置 成功连接 连接成功后,客户端窗口将显示远程设备的桌面,可进行交互操作。 图2.3 VNC连接成功界面 3、 交换机功能 3.1.交换机简介 以太网交换机是一种硬件设备,用于连接局域网(LAN)上的设备,并在这些设备之间转发数据包。它在OSI模型的数据链路层(第2层)运行,并使用MAC地址来确定每个数据包的目的地。以太网交换机可以通过减少冲突和拥塞来提高网络性能,同时还可以提供如虚拟局域网(VLAN)和基于端口的访问控制等安全功能。与以太网桥接器相比,以太网交换机在CPU使用率方面更为高效。由于硬件以太网交换机负责数据转发、过滤和优先级排序,因此减轻了CPU的工作负担。这样一来,CPU可以专注于处理其他任务,从而进一步提升网络性能。本节主要介绍myd-ld25x作为交换机进行双网段转发功能。 3.2.网络拓扑介绍 STM32MP257有两个以太网控制器,MYD-LD25X以太网控制器1支持交换机功能。其网络拓扑如下图: 图3.1网络拓扑图 根据上图很容易了解网络拓扑结构: ( 169.254.1.2 ) │ ├── end2 接口 │ │ ├── end2 接口: 169.254.1.1 (连接 Device1) ├── sw0p2 接口: 192.168.0.20 (连接 Device2 end2) │ └── IP 转发已启用 (`echo 1 /proc/sys/net/ipv4/ip_forward`) ( 192.168.0.11 ) 3.3.关键拓扑配置解析 myd-ld25x的配置 从网络拓扑图可知,myd-ld25x被当作为交换机/网关,连接不同的子网络, 子网1配置169.254.1.0/24(通过end2接口);子网2:配置192.168.0.0/24(通过sw0p2接口)。启用ip_forward后,myd-ld25x可将来自子网1的流量转发到子网2,反之亦然。 Device1配置 设置IP为169.254.1.2,默认网关指向myd-ld25x的end2接口(169.254.1.1)。使得所有非本子网的流量(如访问192.168.0.11)通过网关myd-ld25x转发。 Device2配置 设置IP为192.168.0.11,默认网关指向myd-ld25x的sw0p2接口(192.168.0.20)。使所有非本子网的流量(如访问169.254.1.2)通过网关myd-ld25x转发。 3.4.转发功能配置与测试 切换交换机设备树 启动开发板,在uboot阶段选择交换机设备树,如下图所示: 图3.2选择交换机设备树 转发功能配置 根据拓扑结构对myd-ld25x开发板板进行配置,启动设备并设置 end1/sw0ep 接口,同时启用IP转发功能,使设备能够充当路由器,转发网络流量。 root @myd - ld25x : ~ # ifconfig end2 169.254.1.1 up root @myd - ld25x : ~ # ifconfig sw0p2 192.168.0.20 up root @myd - ld25x : ~ # echo 1 /proc/sys/net/ipv4/ip_forward 配置设备1(开发板或者PC)网络接口IP和路由,这里Device1使用一块MYD-LD25X开发板: Board $ ifconfig end2 169.254.1.2 up Board $ ip route add default via 169.254.1.1 配置设备2(开发板或者PC)网络IP和路由,这里Device2也使用一块MYD-LD25X开发板: Board $ ifconfig end2 192.168.0.11 up Board $ ip route add default via 192.168.0.10 3.5.连通性验证 从Device1-Device2,当执行ping 192.168.0.11时, 数据包从Device1发送到默认网关MYD-LD25X (169.254.1.1),MYD-LD25X根据路由表将数据包转发到sw0p2接口(192.168.0.20)。Device2收到数据包并回复,路径反向同理。 Board $ ping 192.168 .0 .11 PING 192.168 .0 .11 ( 192.168 .0 .11 ) 56 ( 84 ) bytes of data. 64 bytes from 192.168 .0 .11 : icmp_seq= 1 ttl= 63 time= 0.959 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 2 ttl= 63 time= 0.618 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 3 ttl= 63 time= 0.649 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 4 ttl= 63 time= 0.669 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 5 ttl= 63 time= 0.625 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 6 ttl= 63 time= 0.624 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 7 ttl= 63 time= 0.630 ms 64 bytes from 192.168 .0 .11 : icmp_seq= 8 ttl= 63 time= 0.669 ms 从Device2-Device1,过程一样: Board $ ping 169.254 .1 .2 PING 169.254 .1 .2 ( 169.254 .1 .2 ) 56 ( 84 ) bytes of data. 64 bytes from 169.254 .1 .2 : icmp_seq= 1 ttl= 63 time= 0.761 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 2 ttl= 63 time= 0.688 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 3 ttl= 63 time= 0.678 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 4 ttl= 63 time= 0.640 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 5 ttl= 63 time= 0.676 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 6 ttl= 63 time= 0.614 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 7 ttl= 63 time= 0.608 ms 64 bytes from 169.254 .1 .2 : icmp_seq= 8 ttl= 63 time= 0.543 ms 通过MYD-LD25X板作为路由中转,成功实现了两个不同子网(169.254.1.0/24和192.168.0.0/24)间的通信。 4、 TSN 4.1.TSN简介 TSN代表时间敏感网络(Time-Sensitive Networking),它是由电气和电子工程师协会(IEEE)开发的一系列标准,旨在通过以太网网络提供确定性和低延迟的通信。TSN旨在支持实时应用,如工业自动化、汽车以及音频/视频流传输。 TSN通过在网络中的所有设备之间提供时间同步,并使用流量整形和调度机制为时间关键型流量分配优先级和网络资源,从而实现确定性通信。TSN还支持冗余和容错机制,以确保高可用性和可靠性。此处列出了IEEE定义的TSN标准的完整清单。TSN的关键特性包括: 时间同步:TSN使用精确时间协议(PTP)来同步网络中所有设备的时钟,精度可达亚微秒级。IEEE 802.1AS-Rev 流量整形和调度:TSN使用服务质量(QoS)机制为时间关键型流量分配优先级和网络资源,并防止拥塞和数据包丢失。IEEE 802.1Qav和IEEE 802.1Qbv 互操作性:TSN设计为与现有以太网网络兼容,并支持不同供应商和设备之间的互操作性。 总体而言,TSN为以太网网络上的实时通信提供了一个标准化且可靠的解决方案,有助于在各行各业启用新的应用和用例。802.1Qav和802.1Qbv之间的选择取决于应用的特定需求。802.1Qav通常用于带宽需求可变且不可预测的应用,而802.1Qbv则通常用于带宽需求固定且可预测的应用。MYD-LD25X独立网口end2和switch都支持TSN功能。本节将以myd-ld25x开发板独立以太网为例,展示TSN 802.1Qav如何提升流量整形效果。 4.2.网络拓扑介绍 通过预留4个带宽序列,给每个序列分别不同的优先级,如下网络拓扑图所示: 图4.1 QAV例子 如上图所示,配置网口如下: 使用4个队列(Q0-Q3)。每个队列在硬件中都有预留的带宽。最多支持4个队列。 队列0无带宽限制,用于通用流量。 队列1预留了最大带宽的10%(100Mbps) 队列2预留了最大带宽的20%(200Mbps) 队列3预留了最大带宽的30%(300Mbps) Q3是最高优先级队列,而Q0是最低优先级队列。 4.3.网络流量控制 创建vlan端口 在MYD-LD25X开发板发送端执行下面命令创建vlan端口,并建立端口映射: root @myd - ld25x : ~ # ip link add link end2 name end2.200 type vlan id 200 root @myd - ld25x : ~ # ip link set end2.200 type vlan egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7 root @myd - ld25x : ~ # ifconfig end2.200 192.168.200.60 netmask 255.255.255.0 在接受端(PC或者其他开发板)接收端创建vlan端口: root @localhost :~ # ip link add link eno0 name eno0.200 type vlan id 200 root @localhost :~ # ip link set eno0.200 up root @localhost :~ # ip addr add 192.168.200.30/24 dev eno0.200 配置网络流量 CBS用于通过限制流量类别的数据速率来强制实施服务质量;为了将数据包划分为不同的流量类别,用户可以选择使用mqprio。 root @myd -ld25x:~ # tc qdisc add dev end0 clsact root @myd -ld25x:~ # tc qdisc add dev end0 handle 100: parent rootmqprio num_tc 4 map 0 0 1 1 2 2 3 3 3 3 3 3 3 3 3 3 queues 1 @0 1 @1 1 @2 1 @3 hw 0 为每个队列分配不同的带宽 // Set bandwidth of queue 1 to be 100 Mbps root @myd - ld25x : ~ # tc qdisc replace dev end0 parent 100:2 cbs idleslope 100000 sendslope - 900000 hicredit 150 locredit - 1350 offload 1 // Set bandwidth of queue 2 to be 200 Mbps root @myd - ld25x : ~ # tc qdisc replace dev end0 parent 100:3 cbs idleslope 200000 sendslope - 800000 hicredit 300 locredit - 1200 offload 1 // Set bandwidth of queue 3 to be 300 Mbps root @myd - ld25x : ~ # tc qdisc replace dev end0 parent 100:4 cbs idleslope 300000 sendslope - 700000 hicredit 450 locredit - 1050 offload 1 流量测试 在连接到端点end2且IP地址为192.168.200.30的远程PC或其他设备上运行4个iperf会话,以生成具有不同优先级的多个数据流。 root @localhost :~ # iperf3 -s -p 5003 root @localhost :~ # iperf3 -s -p 5002 root @localhost :~ # iperf3 -s -p 5001 root @localhost :~ # iperf3 -s -p 5000 在MYD-LD25X开发板,使用iperf3开始传输数据流: //Stream with SKB priority 6 : TOS=0x14 == SO_PRIORITY=6 // https:man7.org/linux/man-pages/man8/tc-prio.8.html root @myd-ld 25 x :~# iperf3 -c 192.168 . 200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0 x14 //Stream with SKB priority 4 root @myd-ld 25 x :~# iperf3 -c 192.168 . 200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0 x1a //Stream with SKB priority 2 root @myd-ld 25 x :~# iperf3 -c 192.168 . 200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0 xa //Stream with SKB priority 0 (Best effort) root @myd-ld 25 x :~# iperf3 -c 192.168 . 200.30 -u -b 0 -p 5000 -l1472 -t60 测试结果 对于优先级为6且带宽为300Mbps的队列3,使用TC规则后: root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0 x14 5238 root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448 , may result in fragmentation / drops Connecting to host 192.168.200.30 , port 5003 local 192.168.200.60 port 56663 connected to 192.168.200.30 port 5003 Interval Transfer Bitrate Total Datagrams 0.00-1.00 sec 34 . 7 MBytes 291 Mbits/sec 24720 1.00-2.00 sec 34 . 7 MBytes 291 Mbits/sec 24710 2.00-3.00 sec 34 . 7 MBytes 291 Mbits/sec 24730 3.00-4.00 sec 34 . 6 MBytes 291 Mbits/sec 24680 4.00-5.00 sec 34 . 6 MBytes 290 Mbits/sec 24670 对于优先级为4且带宽为200Mbps的队列2,使用TC规则后: root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0 x1a 5335 root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448 , may result in fragmentation / drops Connecting to host 192.168.200.30 , port 5002 local 192.168.200.60 port 33494 connected to 192.168.200.30 port 5002 Interval Transfer Bitrate Total Datagrams 0.00-1.00 sec 23 . 3 MBytes 195 Mbits/sec 16600 1.00-2.00 sec 23 . 2 MBytes 195 Mbits/sec 16550 2.00-3.00 sec 23 . 2 MBytes 195 Mbits/sec 16550 3.00-4.00 sec 23 . 2 MBytes 195 Mbits/sec 16550 4.00-5.00 sec 23 . 2 MBytes 195 Mbits/sec 16550 5.00-6.00 sec 23 . 2 MBytes 195 Mbits/sec 16550 对于优先级为2且带宽为100Mbps的队列1,使用TC规则后: root@myd-ld25x:~# iperf3 -c 192.168 .200 .30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa 5376 warning: UDP block size 1472 exceeds TCP MSS 1448 , may result in fragmentation / drops root@myd-ld25x:~# Connecting to host 192.168 .200 .30 , port 5001 local 192.168 .200 .60 port 40923 connected to 192.168 .200 .30 port 5001 Interval Transfer Bitrate Total Datagrams 0.00 -1.00 sec 11.7 MBytes 98.3 Mbits/sec 8350 1.00 -2.00 sec 11.7 MBytes 97.9 Mbits/sec 8310 2.00 -3.00 sec 11.7 MBytes 97.7 Mbits/sec 8300 3.00 -4.00 sec 11.7 MBytes 97.9 Mbits/sec 8310 4.00 -5.00 sec 11.7 MBytes 97.8 Mbits/sec 8310 5.00 -6.00 sec 11.7 MBytes 97.8 Mbits/sec 8300 6.00 -7.00 sec 11.7 MBytes 97.9 Mbits/sec 8310 对应优先级为0且带宽无限制的流量,使用TC规则后: root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60 5426 root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448 , may result in fragmentation / drops Connecting to host 192.168.200.30 , port 5000 local 192.168.200.60 port 47330 connected to 192.168.200.30 port 5000 Interval Transfer Bitrate Total Datagrams 0.00-1.00 sec 101 MBytes 845 Mbits/sec 71800 1.00-2.00 sec 104 MBytes 875 Mbits/sec 74300 2.00-3.00 sec 105 MBytes 880 Mbits/sec 74750 3.00-4.00 sec 105 MBytes 880 Mbits/sec 74700 4.00-5.00 sec 105 MBytes 881 Mbits/sec 74790 5.00-6.00 sec 105 MBytes 878 Mbits/sec 74560
  • 热度 8
    2023-10-8 14:00
    347 次阅读|
    0 个评论
    意法 | ST机器学习解决方案助力车企探索汽车AI可能性 意法半导体的首款车规机器学习解决方案SL-AIAID012401V1由AEKD-AICAR1评估套件、AI人工智能插件和AutoDevKit车规开发板组成,能够识别驻车、正常路况、崎岖道路、车轮侧滑或突然转向四种汽车状态。 意法半导体的首款车规机器学习解决方案 SL-AIAID012401V1 由 AEKD-AICAR1 评估套件、 AI 人工智能插件和 AutoDevKit 车规开发板组成,能够识别驻车、正常路况、崎岖道路、车轮侧滑或突然转向四种汽车状态。 这是一个难得的机会,可以通过测试和开发汽车人工智能应用,以确定该技术是否适合这个市场。事实上,许多车企还在探索在行业现阶段,机器学习对他们是否有意义。从头开始创建算法需要投入大量的人力和资金。把评估解决方案导入我们的AutoDevKit平台,可以让开发人员更轻松地探索车规人工智能的可行性。 将机器学习引入汽车的挑战 在 寻找正确的应用 ▲ 汽车状态识别系统的整体架构 虽然机器学习的热度在消费市场上稳步上升,但是,汽车行业仍在探究机器学习技术可以为汽车带来什么。几十年来,人工智能一直是汽车行业的一个热门话题,研究人员早在2001年就已经在探索如何在导航系统中应用机器学习。然而,人工智能趋向于用在几种应用场景,例如,自动驾驶或事故检测。此外,出于安全性和可靠性考虑,汽车行业几十年来一直依赖启发式方法。简而言之,汽车制造商在不需要训练神经网络的情况下就已经擅长提供先进的功能。 因此,开发平台必须降低汽车机器学习的技术门槛,同时又不影响设计者构想较为传统的应用。 找到正确的工具 为了帮助开发人员创建他们的杀手级应用程序,无论它是否使用机器学习算法,AEKD-AICAR1都配备了一个带有4mb闪存的MCU,以及 AEK-LCD-DT028V1 显示屏,用于UIs和更一般的应用程序。主板还提供两个CAN FD收发器和两个电位器,用于测试模数转换器的性能。 因此,这个电路板可以连接执行器板驱动电机,处理无线通信功能,或者管理LED等设备。 因此,这块板子的灵活性足以帮助开发团队用其他的系统开发应用。然而,顾名思义,我们的开发团队用AEKD-AICAR1开发应用,因为汽车行业要求降低机器学习的技术门槛。 AEKD-AICAR1:让机器学习变得更好用的解决方案 在 指引开发者 ▲ AEKD-AICAR1套件 AEKD-AICAR1配有 AEK-CON-SENSOR1 连接器板和 AIS2DW12 三轴加速度计。开发人员可以获取MEMS数据,并使用长短期记忆( LSTM )递归神经网络(RNN)确定汽车的四种状态。 该套件还旨在简化演示应用的开发,因为AEKD-AICAR1在MCU闪存内预装了提前训练好的神经网络。 LSTM RNN当前版本是在Google Colab环境中使用TensorFlow 2.4.0框架开发的神经网络,然后,我们使用意法半导体的工具将提前训练好的神经网络转换为适合在STM32上运行的C代码库。 为了进一步指导和培训开发者,我们为用户提供了一份Google Colab环境、模型训练、数据采集等工具的 用户入门指南 。 用户可以使用TensorFlow等众多热门机器学习框架创建、训练和验证神经网络,从而使团队能够借用许多现有的 社区项目 。然后,我们还展示了意法半导体神经网络所用人工智能插件是如何优化算法,使其适合在微控制器上运行。简而言之,我们分享我们的知识经验和实用工具,以便开发人员可以更轻松地测试项目,确定机器学习是否适合汽车应用。 使用真实环境 最终,工程师将获得一个程序,这个程序可以让他们尝试用传感器开发新应用,评估自己的需求,并更好地了解从头开始需要付出的成本的一小部分内是可行的需求。在AEKD-AICAR1捆绑包中有连接器板,这意味着用户可以轻松换用另一个传感器,做进一步的评测。汽车行业固有的安全性和可靠性限制要求让开发者无法用市面上可以买到的消费级电路板测试汽车产品概念。 AEKD-AICAR1通过在许多人用于开发实际应用的汽车级平台上进行实验,从而解决了这个问题。 构想原创应用 由于汽车行业的机器学习仍处于起步阶段,用户经常寻找具有最大灵活性的平台。事实上,用一个系统开发多个项目有助于节省时间和资源,例如,有一位客户对LSTM节点稍加改动,即可分析车辆悬架的响应性能,确定弹簧补偿程度,从而改善驾驶体验。同样,开发人员可以用传感器开发新应用,例如,预测电池的充电状态,或将传感器安装在方向盘上,用于检查驾驶员的心率。 简而言之,AEKD-AICAR1灵活多变,应用不限于传统的汽车应用及状态检测。
  • 热度 7
    2023-10-8 08:13
    1553 次阅读|
    1 个评论
    电子听诊器是一款集成了现代电子技术与便携式设计的医疗设备,有效克服了声学材料噪声高的问题,将 声的声波转换为电信号,然后经过放大和处理,以获得最佳聆听。本次拆解的是一款可视电子听诊器, 采用手握式设计以及电路和芯片的精心搭配使得其具有高效、准确、便捷的特性,这次将详细解析这款设备的工作原理,以及各部分组成和关键器件的作用。 产品正面图: 设备正面有三个按键,可实现开关机、高亮键、存储等功能,其中高亮键可用来调节屏幕背光亮度。屏幕采用断码屏显示,可以清晰地显示出脉搏跳动信息。 产品背面图: 产品背面可以看出来可拆卸的的电池仓盖与拾音结构,拾音头选用的是 老式听诊器的振膜头部分。 产品侧方图: 侧方可以i看到一个旋转开关可以看出产品的整体手持方式,拾音头的角度都是很适合手握检测的。 开始拆解 一、打开拾音头 拾音头的固定与安装是通过卡扣+螺钉的方式进行固定,其中传感元件是单独在一个板子上然后通过线材连接的主控板上,传感器板通过螺钉固定在拾音头。 二、拆卸传感器板卡 振膜头部分以及传感器板与外壳之间不是完全固定在一起的,这样应该可以增加一定抗干扰能力,该款传感器应该为 CM-01B接触式麦克风,这种麦克风具有高灵敏度、低噪音的特性,能够准确捕捉到患者的心跳声,在医用领域应用很广。 三、拆解主体 取下电池仓盖: 可以看到该设备使用两节7号干电池供电; 打开外壳: 卸下四个螺钉就可以打开外壳看到主控板卡了。 四、重点来了,板卡分析 主控芯片: F041丝印芯片是设备的主控芯片,它负责处理拾取的声音信号,并对信号进行处理和分析; 电源部分: 本设备使用的是2节7号锂电池供电,基本电压为3V左右,所以通过ST的6920升压芯片进行升压处理,再经过TLV70033进行LDO稳压,以确保设备各部分稳定工作; 显示和按键: 设备的按键采用轻触按键,可调音量采用旋转按键,断码液晶显示; 滤波与放大: 在声音信号采集后,使用6004、LM393等运放器件进行滤波及多级放大操作。这些运放器件能够对声音信号进行高效、稳定的处理,确保声音信号的真实性和准确性; 声源选择: 电子听诊器可以通过NXP的HEF4052BT进行耳机声源的选择。HEF4052BT是一款四路复用器/多路复用器开关,通过它可以将声音信号传输到耳机插孔或扬声器输出端口,使医生可以根据实际需求进行选择。 声音输出: 可视电子听诊器可以通过耳机插孔连接耳机,使医生能够更清晰地听到患者的心跳声。这部分使用了8002B功放芯片进行声音的放大和输出。 总结: 可视电子听诊器是一款集成了现代电子技术与便携式设计的医疗设备,采用手握式设计,使得其具有高效、准确、便捷的特性。通过对其工作原理以及各部分组成和关键器件的作用的分析,我们可以更好地理解这款设备的性能和功能。还是老物件好,用料非常的扎实,那时候应该进口的器件还没有那么贵吧。
  • 热度 4
    2023-9-19 13:20
    549 次阅读|
    0 个评论
    意法 | ST机器学习解决方案助力车企探索汽车AI可能性 意法半导体的首款车规机器学习解决方案SL-AIAID012401V1由AEKD-AICAR1评估套件、AI人工智能插件和AutoDevKit车规开发板组成,能够识别驻车、正常路况、崎岖道路、车轮侧滑或突然转向四种汽车状态。 意法半导体的首款车规机器学习解决方案 SL-AIAID012401V1 由 AEKD-AICAR1 评估套件、 AI 人工智能插件和 AutoDevKit 车规开发板组成,能够识别驻车、正常路况、崎岖道路、车轮侧滑或突然转向四种汽车状态。 这是一个难得的机会,可以通过测试和开发汽车人工智能应用,以确定该技术是否适合这个市场。事实上,许多车企还在探索在行业现阶段,机器学习对他们是否有意义。从头开始创建算法需要投入大量的人力和资金。把评估解决方案导入我们的AutoDevKit平台,可以让开发人员更轻松地探索车规人工智能的可行性。 将机器学习引入汽车的挑战 在 寻找正确的应用 ▲ 汽车状态识别系统的整体架构 虽然机器学习的热度在消费市场上稳步上升,但是,汽车行业仍在探究机器学习技术可以为汽车带来什么。几十年来,人工智能一直是汽车行业的一个热门话题,研究人员早在2001年就已经在探索如何在导航系统中应用机器学习。然而,人工智能趋向于用在几种应用场景,例如,自动驾驶或事故检测。此外,出于安全性和可靠性考虑,汽车行业几十年来一直依赖启发式方法。简而言之,汽车制造商在不需要训练神经网络的情况下就已经擅长提供先进的功能。 因此,开发平台必须降低汽车机器学习的技术门槛,同时又不影响设计者构想较为传统的应用。 找到正确的工具 为了帮助开发人员创建他们的杀手级应用程序,无论它是否使用机器学习算法,AEKD-AICAR1都配备了一个带有4mb闪存的MCU,以及 AEK-LCD-DT028V1 显示屏,用于UIs和更一般的应用程序。主板还提供两个CAN FD收发器和两个电位器,用于测试模数转换器的性能。 因此,这个电路板可以连接执行器板驱动电机,处理无线通信功能,或者管理LED等设备。 因此,这块板子的灵活性足以帮助开发团队用其他的系统开发应用。然而,顾名思义,我们的开发团队用AEKD-AICAR1开发应用,因为汽车行业要求降低机器学习的技术门槛。 AEKD-AICAR1:让机器学习变得更好用的解决方案 在 指引开发者 ▲ AEKD-AICAR1套件 AEKD-AICAR1配有 AEK-CON-SENSOR1 连接器板和 AIS2DW12 三轴加速度计。开发人员可以获取MEMS数据,并使用长短期记忆( LSTM )递归神经网络(RNN)确定汽车的四种状态。 该套件还旨在简化演示应用的开发,因为AEKD-AICAR1在MCU闪存内预装了提前训练好的神经网络。 LSTM RNN当前版本是在Google Colab环境中使用TensorFlow 2.4.0框架开发的神经网络,然后,我们使用意法半导体的工具将提前训练好的神经网络转换为适合在STM32上运行的C代码库。 为了进一步指导和培训开发者,我们为用户提供了一份Google Colab环境、模型训练、数据采集等工具的 用户入门指南 。 用户可以使用TensorFlow等众多热门机器学习框架创建、训练和验证神经网络,从而使团队能够借用许多现有的 社区项目 。然后,我们还展示了意法半导体神经网络所用人工智能插件是如何优化算法,使其适合在微控制器上运行。简而言之,我们分享我们的知识经验和实用工具,以便开发人员可以更轻松地测试项目,确定机器学习是否适合汽车应用。 使用真实环境 最终,工程师将获得一个程序,这个程序可以让他们尝试用传感器开发新应用,评估自己的需求,并更好地了解从头开始需要付出的成本的一小部分内是可行的需求。在AEKD-AICAR1捆绑包中有连接器板,这意味着用户可以轻松换用另一个传感器,做进一步的评测。汽车行业固有的安全性和可靠性限制要求让开发者无法用市面上可以买到的消费级电路板测试汽车产品概念。 AEKD-AICAR1通过在许多人用于开发实际应用的汽车级平台上进行实验,从而解决了这个问题。 构想原创应用 由于汽车行业的机器学习仍处于起步阶段,用户经常寻找具有最大灵活性的平台。事实上,用一个系统开发多个项目有助于节省时间和资源,例如,有一位客户对LSTM节点稍加改动,即可分析车辆悬架的响应性能,确定弹簧补偿程度,从而改善驾驶体验。同样,开发人员可以用传感器开发新应用,例如,预测电池的充电状态,或将传感器安装在方向盘上,用于检查驾驶员的心率。 简而言之,AEKD-AICAR1灵活多变,应用不限于传统的汽车应用及状态检测。
  • 热度 6
    2023-9-3 19:10
    366 次阅读|
    0 个评论
    意法 | 传感器的智能之路和实现之道(上) 传感器为什么需要智能?这是一个很好的问题!设想一下,MEMS传感器可以测量如加速度、角速度、压力、温度和湿度等物理量并转化为数字信号,但如果我们的传感器只能简单地采集和传递数据,那它就像一个静默的观察者、被动的上报者,无法主动参与到系统中。 然而,当我们赋予传感器智能时,在算法的加持下,它可以主动地在器件上基于所采集的数据进行融合、分类和预测,从而更加智能地应对各种情况,协助决策,优化产品。 ST作为在MEMS传感器和执行器领域拥有丰富经验和成熟专业知识的公司,其传感器产品是怎么一步步走向智能之路的呢? 上图是ST的传感器智慧功能路线图。最早我们推出基于MLC ( Machine Learning Core,机器学习核心 ) 跟FSM(Finite States Machine,有限状态机)的1.0版本的智慧功能 — ST所有带嵌入式MLC功能的MEMS产品,在产品编号末尾均带有X标记,方便工程师进行识别。在消费级应用上,我们有LSM6DSOX — 针对手机穿戴设备光学防抖应用的器件;LSM6DSRX — 针对虚拟现实跟正常现实无人机应用的器件。工业级应用上我们有ISM330DHCX以及倾角仪IIS2ICLX。 ST MEMS传感器内置的机器学习核心(MLC)基于决策树分类器,可以在传感器中以极低的功耗执行程序化决策树,检测运动数据的同时运行不同任务。具体的机器学习模型设计过程可以参考之前的推文 《 AI技术专题之二:机器学习模型设计过程和MEMS MLC 》 或 《 DT0139设计建议:决策树生成》 MLC与FSM有什么差别? MLC主要用于活动跟踪,即在做一些周期性长时间的运动时,对活动场景进行检测,例如检测人是在走路、跑步、骑车还是乘车;FSM则主要针对短时间一次性动作的手势或姿态识别。 MLC与FSM两者的差异包括 : 1)输入数据源差异 — MLC的输入数据源是非原始数据,而是基于原始数据进行标记并计算的特征值。而FSM基于原始的加速度或陀螺仪的样本数据。 2)逻辑方面的差异 — MLC基于机器学习决策树的逻辑;而FSM基于阀值/计时器的事件触发器的逻辑,进行判断和比较。 3)输出方面的差异 — MLC基于决策树逻辑进行模式匹配,再输出不同的分类结果;FSM则是基于命令和条件进行判断,再输出事件检测的结果。 进入MLC和FSM 2.0阶段后,以LSM6DSV16X/LSM6DSV16BX/LIS2DUX12为代表的器件引入2.0功能并集成了SFLP低功耗融合算法。 SFLP(Sensor Fusion Low Power)是6轴低功耗传感器融合的缩写。ST 6DSV系列IMU中均配置了SFLP功能。 其主要特点包括 : 1)基于加速度及陀螺仪数据进行融合的算法,可以输出游戏旋转矢量,相当于表现在空间姿态的一个四元数。这个四元数也可通过一个算法转换成欧拉角,展现成空间姿态,即从A点移动到B点时,在空间中的运动轨迹。同时这个数据还可以保存在FIFO中。 2)可以输出重力矢量,用来表示重力方向的三维向量。 3)可以提供陀螺仪的bias,相当于陀螺仪一个零偏支持静态校准。同时也集成动态零偏校准算法,实时计算陀螺仪的零偏,减少积分误差。 SFLP低功耗传感器融合在消费电子领域有广泛的应用场景;例如游戏手柄、赛车、AR/VR/MR的游戏装备空间姿态检测;在可穿戴领域,如手表中的运动实时检测和手势识别、耳机TWS的3D空间音效,即当用户移动头部时,音频能够跟随头部运动播放;在手机导航和无人机中,也可以使用SFLP进行3D空间姿态检测。毕竟,SFLP具有卓越的性能 — 不仅可以输出6轴游戏旋转矢量,而且无论静止精度、低动态精度还是高动态精度都非常高。校准时间即达到稳定状态所需要的校准时间仅为0.8秒,姿态稳定时间为0.7秒。功耗方面,在15Hz下仅需3.5µA,120Hz时功耗也只有28µA。 为了方便开发者使用,我们在 GitHub上提供了详细的参考代码 。通过参考代码,开发者可以了解如何实现软件复位,配置加速度陀螺仪量程和ODR,配置FIFO buffer触发中断,设置SFLP数据保存到FIFO中,配置FIFO模式,设置FIFO为stream模式,使能sensor及SFLP算,设置Gbias,陀螺仪零偏动态获取,提高算法的精准度等等细节。 基于专业的MEMS评估母板加上适用于各种工业级、消费级、汽车级传感器的适配板,然后连接电脑,进入Unico-GUI功能界面,通过搜索选择传感器,点击Fusion功能,然后您就可以看见下面视频中的茶壶会跟随板子的移动进行旋转或者说空中姿态检测。 随着SFLP的功能演示,本次ST MEMS的智能传感器之路先告一段落。 在下篇中,我们将呈现另一条智能路径 — ISPU 。
相关资源