AWU405车载AI边缘计算机采用“MCU+SOC”双系统架构,支持RK3588平台,采用Ubuntu操作系统。面向道路巡查应用场景的轻量边缘计算设备,具有高计算性能、大容量存储、配置灵活、体积小、环境适应性强、易于维护管理等特点。
AI 算力为6 TOPS(RK3588)+48TOPS(灵汐HM100-B);支持WiFi6、5G、GNSS(内置IMU,支持RTK高精定位),支持IP相机、GMSL相机等常见传感器、外设接入,结合云端应用软件,实现自动识别各类道路病害并实时判定病害类型、坐标位置。
| 序号 | 型号 | 名称 | 说明 |
|---|---|---|---|
| 1. | AWU405-E01-S01 | 车载 AI 边缘计算机 | V01,RK3588,S32K,8GB/64GB,GNSS(IMU),5G,GMSL*4,1000BASE-TX(POE)4,USB3.21,工作电压 9-36V |
| 2. | AWU405-F01-S01 | 车载 AI 边缘计算机 | V01,RK3588,S32K,8GB/64GB,GNSS(IMU),5G,GMSL*4,1000BASE-TX(POE)4,USB3.21,灵汐算力卡 48TOPS,工作电压 9-36V |
| 序号 | 项目 | 说明 |
|---|---|---|
| 1. | 计算平台 | Rockchip RK3588J |
| 2. | CPU | 八核 64 位大小核架构,4Cortex-A76+4Cortex-A55 |
| 3. | 主频 | 2.0GHz |
| 4. | GPU | ARM Mali-G610 MP4 四核 GPU |
| 5. | GPU 支持 | OpenGL ES1.1/2.0/3.1/3.2 |
| 6. | GPU 支持 | OpenCL1.1/1.2/2.0 |
| 7. | NPU | 6TOPS,支持 INT4/NT8/INT16 混合运算 |
| 8. | ISP | 集成 48MP ISP with HDR&3DNR |
| 9. | 视频解码 | 8K@60fps H.265/VP9/AVS2; 8K@30fps H.264 AVC/MVC; 4K@60fps AV1; 1080P@60fps MPEG-2/-1/VC-1/VP8 |
| 10. | 视频编码 | 8K@30fps 编码,支持 H.265 / H.264 |
| 11. | 显存 | 8GB 256 位 LPDDR4X |
| 12. | 存储 | 64GB eMMC 5.1 |
| 13. | 系统 | linux(Debian11) |
| 序号 | 项目 | 说明 |
|---|---|---|
| 1. | Module | NXP S32K144 |
| 2. | Core | ARMR Cortex™-M4F |
| 3. | Peripheral speed | up to 112 MHz (HSRUN) |
| 4. | Watchdog | 1x |
| 5. | Flash | 512 KB |
| 6. | System RAM | 64 KB |
| 7. | Operating temperature | -40 °C ~ +85°C |
| 8. | ISO 26262 | capable up to ASIL-B |
AWU405软件系统为Linux Debian11.11开发环境,包括系统镜像、库、示例、开发工具以及文档,同时支持以下关键特性:
AWU405提供交叉编译工具链。将环境配置和编译工具链打包成aarch64--glibc.tar.bz2压缩包。
解压aarch64--glibc.tar.bz压缩包。
tar -xvjf aarch64--glibc.tar.bz -C /path/to/directory
配置cmake
至此就可以进行编译了。
开机启动前,需确认以下事项:
上电成功后,POW 、RUN指示灯呈常亮状态(红色及绿色指示灯常亮)。
默认用户名:linaro,密码: linaro
LED1(红色):电源正常时常亮、电源过压/欠压时闪烁、无电压时灭;
LED2(绿色):MCU启动时慢闪,MCU收到ARM心跳正常后常亮
运行布谷鸟守护精灵,获取设备基本信息、状态信息、自检数据、报警信息和驱动信息等。
root@linaro-alip:/# AWApp_TOP
运行后,查看设备基本信息。
根据3.1给系统上电,并且确认系统正常后,进行如下步骤确认软件版本是否正确。
打开命令行终端,输入:
$uname –a #查看系统版本
Linux linaro-alip 5.10.198 #2 SMP Mon Mar 17 14:55:49 CST 2025 aarch64 GNU/Linux
注意:操作系统版本请勿升级(upgrade),如有更新需求请先和布谷鸟科技沟通确认,以免更新升级后造成异常。
root@linaro-alip:/# cat /etc/debian_version
11.11
root@linaro-alip:/# cat /sys/module/rknpu/version
0.9.3 //示例
root@linaro-alip:/# cat /etc/cookoo_version
cookoo_os:0.0.2
date:20250509 //示例
可从/var/log目录下,获取完整log文件。
在/etc/systemd/system/目录下创建一个新的服务文件,例如myprogram.service:
sudo nano /etc/systemd/system/myprogram.service
在文件中添加以下内容:
[Unit]
Description=My Custom Program
After=network.target
[Service]
ExecStart=/home/user/myapp/myprogram
WorkingDirectory=/home/user/myapp
User=user
Restart=always
[Install]
WantedBy=multi-user.target
保存并退出后,启用服务:
sudo systemctl enable myprogram.service
可以立即启动服务,而不需要重启系统:
sudo systemctl start myprogram.service
使用以下命令检查服务状态:
sudo systemctl status myprogram.service
此方式配置的开机自启动的程序执行启动操作为myprogram.service中的WorkingDirectory。若没有配置WorkingDirectory则程序启动位置为根目录。若程序存在依赖文件注意路径相关的问题。
因AWU405为上电自启动,所以需要关机时,在保存数据、退出程序后,关机。
root@linaro-alip:/# sudo poweroff
root@linaro-alip:/# sudo reboot
用户可以通过将开发电脑与AWU405设备连接到同一局域网内。再通过ssh登录到设备进行开发调试。账户名和密码见登录章节。
AWU405设备出厂设置了ETH1网口的IP地址为192.168.2.211。
AWU405支持通过ADB对ARM进行调试。使用标准的typeC充电线或者数据线将4.1章节的Debug口与电脑连接即可。
1)硬件连接方法
2)设备节点映射关系
网口对应名称如下表所示:
| 外壳丝印 | 网口名称 | 出厂配置 | 备注 |
|---|---|---|---|
| ETH1 | Eth1 | 固定 IP:192.168.2.211 | 千兆以太网 |
| ETH2 | Eth2 | DHCP 自动获取 | 千兆以太网 |
| ETH3 | Eth3 | DHCP 自动获取 | 千兆以太网 |
| ETH4 | Eth4 | DHCP 自动获取 | 千兆以太网 |
固定IP配置方法
sudo vi /etc/network/interfaces.d/Eth1
可根据需要配置。
1. 测试是否可以自动获取IP
配置为DHCP时,插入网线,使用ifconfig命令查询对应网口是否可以看到IP,或在桌面右上方网络配置处查看。
2. 测试是否可以ping通
方法一:可ping通网关,即可按ctrl +c退出。
注:测试例程的网关地址为192.168.0.1,这个需查看测试环境的网关地址。
方法二:可ping通www.baidu.com(联网状态),即可按ctrl +c退出。
使用前需安装好Wi-Fi 6天线。
在桌面右上角会出现网络连接图标,找到要连接的Wi-Fi名称并点击,然后在弹出的密码框输入密码并点击连接即可。
连接后测试是否可以ping通。
默认配置:(若不需要修改默认配置则跳过)
热点名:AIEC,密码:12345678
用户可按实际需要对热点名和密码进行配置。
sudo vim /etc/hostapd/hostapd.conf #进入热点配置文件
其中文件最后几行里ssid= AIEC_AWU202_APP为热点名选项。
wpa_passphrase=12345678为密码配置选项。
热点开启:
1.查看当前wlan0口是否存在。若不存在则重启设备直到wlan0网口出现。
sudo ifconfig –a #查看当前所有网口
2.进入/etc/setup_ap.sh修改EXT_IFACE所对应的网口到实际上网的网口
sudo vim /etc/setup_ap.sh #进入编辑脚本
将EXT_IFACE="enp1s0"中enp1s0修改到当前实际能够上网的网口
3.进行网络优先级配置,配置当前环境下实际上网的网口优先级到最高
sudo ip route #查看当前路由规则
4.执行脚本,开启设备热点
脚本执行前,请保持wlan0口没有用作wifi口进行连接,即wlan0口没有获取IP地址,若进行连接了,请断开wlan0口wifi连接
sudo /etc/setup_ap.sh #执行脚本,开启热点
看到以上脚本执行输出,则为正常。就可以搜索热点进行连接了。
AWU405支持5G。
5G模组为标配。使用前需在断电情况下,根据5.1章节,接好5G天线、插入5G Mini-SIM卡(不支持热插拔)。插卡时需要保持卡的缺口朝向机器的外侧。
5G功能出厂默认已配置完成,可直接使用连接网络。
开机自动拨号成功后,可用ifconfig命令看到enx_5g节点获取到了IP,如下图:
插了SIM卡就能获取到IP,类似“10.75.170.62”,此时可以通过指定使用enx_5g来ping baidu测试网络
定位模组为标配,出厂默认已配置完成。使用前需接好GPS天线。请参照接口示意正面接口章节。
定位模组默认没有数据输出,需要按照实际使用场景使用模块产商的AG指令对模组进行配置。
table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
| 接口 | 描述 |
|---|---|
| /dev/ttyS4 | GNSS 次串口 |
| /dev/ttyS9 |
GNSS 模组定位数据 导远可调波特率:115200~921600 bps 导远默认波特率:460800 bps
|
普通GPS模式,也可通过如下指令获取GPS数据。
更多GPS开发使用方法,可参考模块应用指南。常见配置方法见下表:
| 序号 | 指令 | 描述 |
|---|---|---|
| GNSS、RTK、Heading相关配置 | ||
| 1. | AGSETMODE,ROVER | 设置为移动站模式 |
| 2. | AGSETPPS,1,1,0,100000,0,1000000 | 打开 PPS 输出,高电平有效,脉宽 100ms,输出间隔 1s,上电即输出 |
| 3. | AGGNGGA,0,1,10 | 通过串口 0 输出定位信息,频率 10Hz |
| 4. | AGGNRMC,0,1,10 | 通过串口 0 输出位置和速度信息,频率 10Hz |
| 5. | AGGNGSA,0,1,1 | 通过串口 0 输出定位卫星信息,频率 1Hz |
| 6. | AGGNGSV,0,1,1 | 通过串口 0 输出接收卫星信息,频率 1Hz |
| 7. | AGKSXT,0,1,10 | 通过串口 0 输出位置、速度、航向信息,频率 10Hz |
| 8. | LOG COM0 BESTPOSA ONTIME 0.1 | 通过串口 0 输出兼容格式位置信息,频率 10Hz |
| 9. | LOG COM0 BESTVELA ONTIME 0.1 | 通过串口 0 输出兼容格式速度信息,频率 10Hz |
| 10. | LOG COM0 HEADINGA ONTIME 0.1 | 通过串口 0 输出兼容格式定向信息,频率 10Hz |
| 11. | AGRTCMOBS,0,4,1 | 通过串口 0 输出 MSM4 的 RTCM3 观测量数据,频率 1Hz |
| 12. | AGRTCMEPH,0,1,0 | 通过串口 0 输出 MSM4 的 RTCM3 观测量数据,频率为在星历更新时输出 |
| 13. | AGSVCFG | 保存设置 |
| INS相关配置 | ||
| 1. | AGSETMODE,INIMU | 设置为内置惯导模组工作模式 |
| 2. | AGSETINSANT1,0.45,0,-1.05 | 设置 IMU 到主天线杆臂值 |
| 3. | AGSETINSRAC,0.20,0,0.40 | 设置 IMU 到后轮轴中心杆臂值 |
| 4. | AGSETINSOFFSET,0.45,0,-1.05 | 设置融合定位的输出偏移 |
| 5. | AGBDDB0B,0,1,100 | 通过串口 0 输出 BD DB 协议组合导航定位数据,频率为 100Hz |
| 6. | AGBDDB0A,0,1,100 | 通过串口 0 输出 BD DB 协议 IMU 原始数据,频率为 100Hz |
| 7. | LOG COM0 RAWIMUA ONCHANGED | 通过串口 0 输出兼容协议 IMU 原始数据,频率为 100Hz |
| 8. | LOG COM0 INSPVAA ONTIME 0.01 | 通过串口 0 输出兼容协议组合导航定位数据,频率为 100Hz |
| 9. | AGSVCFG | 保存设置 |
| 10. | AGRESET,0 | 冷启动,INS 相关配置需要重启才可生效 |
通过组合导航的同步时间和GPS信息。配合串口接收的GPRMC信息,来达到系统授时授时。
无论是外接GPS模块,还是内置的GNSS-导远模块,接口为/dev/pps0。可用pps-tools工具
1) 安装pps-tools工具
sudo apt install pps-tools
2)获取信息
sudo ppstest /dev/pps0
正确的结果显示:
AWU405共包含2路CAN,均在MCU上。
以下为CAN接口的对照关系,其中CK_CAN为cookoo_sdk.h中定义的CAN通道号。
| 线束标识 | 所属模块 | Socket CAN | Cookoo_sdk/CK_CAN |
|---|---|---|---|
| CAN1-H/L | MCU | 不支持 | CK_CAN1 |
| CAN2-H/L | MCU | 不支持 | CK_CAN2 |
出厂的产品SDK软件中,提供CAN SDK使用方法的示例程序。布谷鸟CAN example位置:
/usr/local/cookoo/examples/example-cookoo_can(对应源码为该目录下cookoo_can.cpp),运行程序请使用root权限。线束与SDK CAN通道号对应情况见CAN接口对照章节。
相关头文件、库位置:
/usr/local/cookoo/inc/ 、/usr/local/cookoo/lib
以下为UART接口对照关系,其中CK_RS232和CK_RS485为定义在cookoo_sdk.h头文件中的UART通道号。三路UART接口的波特率为115200。
| 线束标识 | 对应模块 | 对应节点 | 串口通道号 |
|---|---|---|---|
| RS232_RX2/TX2 | ARM | /dev/ttyS0 | 0 |
| RS232_RX1/TX1 | MCU | 无 | CK_RS232 |
| RS485_A/B | MCU | 无 | CK_RS485 |
出厂的产品SDK软件中,提供串口SDK使用方法的示例程序。
由于接口所挂载的模块不同。UART接口使用两个不同的接口进行开发。
测试和使用对应ARM模块上的接口请参照示例程序/usr/local/cookoo/example-cookoo_uart(对应源码为该目录下cookoo_uart.cpp)。
测试和使用对应MCU上的接口请参照示例程序/usr/local/cookoo/example-cookoo_data(对应源码为该目录下cookoo_data.cpp)。
运行程序请使用root权限。线束与UART通道号对应情况见UART接口对照章节。
相关头文件、库位置:
/usr/local/cookoo/inc/、/usr/local/cookoo/lib
AWU405共2路IN/OUT,均与MCU直接连接。
GPIO_OUT可配置成输入输出12V/24V兼容。出厂默认配置的为输入模式。
可参照布谷鸟提供的example程序,由ARM与MCU通讯,对IO进行控制。
以下为GPIO接口对照关系,其中CK_PIN为定义在cookoo_sdk.h头文件中的GPIO通道号。
| 线束标识 | Cookoo_sdk /CK_PIN |
|---|---|
| GPIO-OUT1 | CK_PIN_IO1 |
| GPIO-OUT2 | CK_PIN_IO2 |
布谷鸟IO example位置:
/usr/local/cookoo/examples/
源码为cookoo_pin.cpp,编译后程序为example-cookoo_pin,运行程序请使用root权限。
相关头文件、库位置:
/usr/local/cookoo/inc/、/usr/local/cookoo/lib
AWU405包含1路DC与MCU直接连接。
VCC_5V_OUT输出5V/300mA。出厂配置默认打开,该接口暂未开放控制接口。
用户若选配带SSD的产品,则SSD初始配置在出厂前已经完成,用户可以直接使用。
用户若自行购买SSD(M.2接口),请先联系布谷鸟科技进行指导安装确认,再参照下列方式进行配置。
步骤一:
获取SSD名称,下列中为“nvme0n1”:
$ lsblk | grep nvme
nvme0n1 259:11 0 477G 0 disk /data
步骤二:
格式化硬盘:
fdisk /dev/nvme0n1回车
n回车
p回车
然后继续三次回车
输入:w然后回车
最后输入:
mkfs.ext4 /dev/nvme0n1回车
重启完成格式化
reboot
步骤三:
验证:
df -h
若nvme0n1显示挂载在/data下,则证明配置成功
AWU405支持双喇叭的音频输出。
可以通过如下命令播放测试音频输出:
sudo aplay /usr/local/cookoo/conf/1kz.wav
如果用户播放.mp3等压缩格式的音频可以使用ffplay进行播放。
sudo apt-get install ffmpeg //下载ffplay
ffplay -nodisp -autoexit /data/test.mp3 //播放音频
部署环境要求:保持AWU405设备网络的联通性。
安装配置docker环境:
1、sudo apt-get update 更新本地软件包列表
2、sudo apt-get install docker.io 安装docker服务
3、update-alternatives --set iptables /usr/sbin/iptables-legacy 切换iptables
4、update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy 切换ip6tables
5、systemctl restart docker 重启docker服务
6、systemctl status docker:查看 Docker 服务的运行状态
执行以上步骤后,docker服务已能正常运行。
镜像加速器配置:
开发者可以自己创建/etc/docker/daemon.json文件,并进行镜像加速器配置。注意若没有配置镜像加速器可能导致镜像拉取不成功。
示例:
{
"registry-mirrors": [
"https://registry.cn-shenzhen.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://registry.cn-beijing.aliyuncs.com",
"https://r6l3pnd8.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://reg-mirror.qiniu.com/",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
拉取Hello-world镜像
docker pull hello-world
运行Hello-world镜像
docker run hello-world
nmcli connection show //显示网络信息
sudo nmcli connection modify "Wired connection 1" ipv4.route-metric 103 //将网卡名为‘Wired connection 1’的网络,优先级调整为103
sudo nmcli connection down "Wired connection 1"
sudo nmcli connection up "Wired connection 1" //重新打开网络
可通过查看路由表信息,确认网络优先级是否配置成功。Metric数值越小,网络优先级越高。
route -n //查看网络优先级