本文档详细介绍了 Alius DCU 域控制器的所有外部接口,包括引脚定义、电气特性、连接方法和软件开发接口。通过本文档,开发者可以充分利用 DCU 丰富的 I/O 资源。
接口概览
DCU 域控制器提供了多种工业标准接口,满足机器人系统的多样化连接需求:
| 接口类型 | 数量 | 连接器类型 | 主要功能 |
|---|---|---|---|
| CAN-FD | 2 | 3-pin 接线端子 | 实时控制总线 |
| RS-485 | 2 | 3-pin 接线端子 | 工业设备通信 |
| EtherCAT | 2 | RJ45 | 实时以太网控制 |
| 千兆以太网 | 1 | RJ45 | 网络连接 |
| USB 3.0 | 2 | Type-A | 高速外设 |
| USB 2.0 | 2 | Type-A | 外设连接 |
| MIPI-CSI | 2 | FPC | 摄像头输入 |
| MIPI-DSI | 1 | FPC | 显示输出 |
| 调试串口 | 1 | Micro USB | 系统调试 |
| 电源输入 | 1 | 2-pin 接线端子 | 9-36V 电源 |
CAN-FD 接口
CAN-FD(Controller Area Network with Flexible Data-Rate)是经典 CAN 总线的升级版本,支持更高的波特率和更大的数据负载。
硬件规格
- 协议标准:ISO 11898-1:2015(CAN 2.0A/B 和 CAN-FD)
- 仲裁段波特率:最高 1 Mbps
- 数据段波特率:最高 5 Mbps
- 数据帧长度:经典 CAN 最大 8 字节,CAN-FD 最大 64 字节
- 收发器:TJA1044GT(NXP),具备总线故障保护
- 隔离电压:2500 Vrms(信号与系统地为电气隔离)
- 终端电阻:120Ω,可通过软件配置启用/禁用
引脚定义
| 引脚 | 名称 | 描述 | 颜色建议 |
|---|---|---|---|
| 1 | CANH | 高电平 CAN 信号 | 黄色 |
| 2 | CANL | 低电平 CAN 信号 | 绿色 |
| 3 | GND | 信号地(隔离地) | 黑色 |
Linux 使用方法
DCU 在 Linux 下将 CAN-FD 接口暴露为网络设备,可使用标准 SocketCAN 框架进行开发。
配置 CAN 接口
# 配置 CAN0 为 CAN-FD 模式,仲裁段 1Mbps,数据段 5Mbps
sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can0 up
# 配置 CAN1(经典 CAN 模式,1Mbps)
sudo ip link set can1 type can bitrate 1000000
sudo ip link set can1 up
发送 CAN 帧
// C 语言示例:发送 CAN-FD 帧
#include <linux/can.h>
#include <linux/can/raw.h>
int s = socket(PF_CAN, SOCK_RAW, CAN_RAW);
struct sockaddr_can addr;
struct canfd_frame frame;
// 启用 CAN-FD 帧支持
int enable_fd = 1;
setsockopt(s, SOL_CAN_RAW, CAN_RAW_FD_FRAMES, &enable_fd, sizeof(enable_fd));
frame.can_id = 0x123; // CAN ID
frame.len = 64; // CAN-FD 最大 64 字节
frame.flags = CANFD_BRS; // 使用比特率切换
// 填充数据...
write(s, &frame, sizeof(frame));
Python 示例
import can
# 创建 CAN 总线实例
bus = can.interface.Bus(channel='can0', bustype='socketcan')
# 发送消息
msg = can.Message(
arbitration_id=0x123,
data=[0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88],
is_extended_id=False,
is_fd=True,
bitrate_switch=True
)
bus.send(msg)
# 接收消息
for msg in bus:
print(f"ID: {msg.arbitration_id:X}, Data: {msg.data.hex()}")
RS-485 接口
RS-485 是一种差分信号串行通信标准,具有抗干扰能力强、传输距离远的特点,广泛应用于工业环境。
硬件规格
- 协议标准:TIA/EIA-485-A
- 最高波特率:12 Mbps
- 最大电缆长度:1200 米(低速时)
- 差分信号幅度:1.5V - 5V
- 接收器输入阻抗:≥ 12 kΩ
- 隔离电压:2500 Vrms
- 终端电阻:120Ω,板载可配置
引脚定义
| 引脚 | 名称 | 描述 | 颜色建议 |
|---|---|---|---|
| 1 | A (D+) | 正差分信号 | 黄色 |
| 2 | B (D-) | 负差分信号 | 绿色 |
| 3 | GND | 信号地 | 黑色 |
Linux 使用方法
RS-485 接口在 Linux 下映射为标准串口设备(/dev/ttyS* 或 /dev/ttyUSB*)。
配置串口参数
# 配置 RS485-0 为 115200 波特率,8 数据位,无校验,1 停止位
stty -F /dev/ttyS1 115200 cs8 -cstopb -parenb
# 启用 RS-485 方向的硬件自动切换(推荐)
echo 1 > /sys/class/tty/ttyS1/rs485/rs485_enable
Python 示例(Modbus RTU)
import serial
from pymodbus.client import ModbusSerialClient
# 创建 Modbus RTU 客户端
client = ModbusSerialClient(
port='/dev/ttyS1',
baudrate=115200,
parity='N',
stopbits=1,
bytesize=8,
timeout=1
)
# 读取保持寄存器
result = client.read_holding_registers(address=0, count=10, slave=1)
if result.isError():
print("通信错误")
else:
print(f"寄存器值: {result.registers}")
EtherCAT 接口
EtherCAT(Ethernet for Control Automation Technology)是一种高性能实时以太网协议,特别适合多轴运动控制和分布式 I/O 系统。
硬件规格
- 协议标准:ETG 1000 系列
- 物理层:100BASE-TX(100 Mbps 全双工)
- 拓扑结构:菊花链(daisy chain)、线型、树型
- 循环周期:最小 1 ms(典型应用),最小可达 100 μs
- 同步精度:< 1 μs(分布式时钟)
- 最大从站数:理论上 65535 个,推荐不超过 32 个
使用方法
DCU 支持作为 EtherCAT 主站运行。Alius 提供了基于 IgH EtherCAT Master 的软件栈。
安装 EtherCAT 主站软件
sudo apt install -y aliu-ethercat-master
sudo systemctl enable ethercat
sudo systemctl start ethercat
配置 EtherCAT 网络
# 编辑 EtherCAT 主站配置
sudo nano /etc/ethercat/master.conf
# 配置内容示例:
# MASTER0_DEVICE="eth1"
# DEVICE_MODULES="generic"
枚举 EtherCAT 从站
# 扫描总线上的从站设备
sudo ethercat slave
# 输出示例:
# 0 0:0 PREOP + Alius Joint Module v1.0
# 1 0:1 PREOP + Alius Joint Module v1.0
# 2 0:2 PREOP + Alius IMU Sensor v1.0
过程数据通信(PDO)示例
import ctypes
from aliu_ethercat import EtherCATMaster
# 创建主站实例
master = EtherCATMaster()
# 扫描并初始化从站
master.scan()
master.set_state('OPERATIONAL')
# 周期性过程数据交换
for cycle in range(1000):
# 发送目标位置(PDO 输出)
master.write_outputs(slave_id=0, data=[target_pos])
# 读取实际位置(PDO 输入)
actual_pos = master.read_inputs(slave_id=0, size=4)
# 控制周期 1 ms
master.wait_sync()
以太网接口
DCU 提供 1 路千兆以太网接口,用于网络连接、远程调试和数据传输。
硬件规格
- 速率:10/100/1000 Mbps 自适应
- 全双工支持:是
- PoE 支持:可选(需定制)
- PHY 芯片:Realtek RTL8211F
- 连接器:RJ45,带指示灯
配置示例
# 配置静态 IP
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip link set eth0 up
# 配置 VLAN(可选)
sudo ip link add link eth0 name eth0.100 type vlan id 100
sudo ip addr add 192.168.100.100/24 dev eth0.100
MIPI-CSI 摄像头接口
DCU 提供 2 路 MIPI-CSI 接口,可用于连接摄像头模块,实现视觉感知功能。
硬件规格
- 标准:MIPI CSI-2 v1.3
- 数据通道:4 lane/路
- 最大数据速率:2.5 Gbps/lane
- 支持分辨率:最高 4K@60fps
- 连接器:30-pin FPC(0.5 mm 间距)
支持摄像头模块
- Sony IMX219(树莓派 Camera v2)
- Sony IMX477(树莓派 HQ Camera)
- Alius Vision Module(定制摄像头模块)
使用方法
# 查看摄像头设备
v4l2-ctl --list-devices
# 捕获图像
ffmpeg -f v4l2 -i /dev/video0 -vframes 1 capture.jpg
# 使用 GStreamer 预览
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=1920,height=1080 ! autovideosink
MIPI-DSI 显示接口
DCU 提供 1 路 MIPI-DSI 接口,可用于连接 LCD 显示面板,实现本地 HMI。
硬件规格
- 标准:MIPI DSI v1.2
- 数据通道:4 lane
- 最大数据速率:2.5 Gbps/lane
- 支持分辨率:最高 4K@60fps
- 连接器:31-pin FPC(0.3 mm 间距)
支持显示面板
- Alius 7-inch LCD Panel(1024×600,电容触摸)
- Alius 10.1-inch LCD Panel(1280×800,电容触摸)
USB 接口
DCU 提供 4 个 USB 主机接口(2× USB 3.0 + 2× USB 2.0),可用于连接各种外设。
使用建议
- USB 3.0:推荐用于连接高速设备,如激光雷达、深度摄像头、NVMe 固态硬盘。
- USB 2.0:可用于连接键盘、鼠标、WiFi 模块等低速设备。
- 电源限制:每个端口最大输出 500 mA,连接高功耗设备时建议使用带外接电源的 USB Hub。