This document provides detailed information about all external interfaces of the Alius DCU Controller, including pin definitions, electrical characteristics, connection methods, and software development interfaces. Through this document, developers can fully utilize the DCU’s rich I/O resources.
Interface Overview
The DCU Controller provides a variety of industry-standard interfaces to meet the diverse connectivity requirements of robotic systems:
| Interface Type | Quantity | Connector Type | Main Function |
|---|---|---|---|
| CAN-FD | 2 | 3-pin terminal block | Real-time control bus |
| RS-485 | 2 | 3-pin terminal block | Industrial device communication |
| EtherCAT | 2 | RJ45 | Real-time Ethernet control |
| Gigabit Ethernet | 1 | RJ45 | Network connection |
| USB 3.0 | 2 | Type-A | High-speed peripherals |
| USB 2.0 | 2 | Type-A | Peripheral connection |
| MIPI-CSI | 2 | FPC | Camera input |
| MIPI-DSI | 1 | FPC | Display output |
| Debug Serial | 1 | Micro USB | System debugging |
| Power Input | 1 | 2-pin terminal block | 9-36V power supply |
CAN-FD Interface
CAN-FD (Controller Area Network with Flexible Data-Rate) is an upgraded version of the classic CAN bus, supporting higher baud rates and larger data payloads.
Hardware Specifications
- Protocol Standard: ISO 11898-1:2015 (CAN 2.0A/B and CAN-FD)
- Arbitration Phase Baud Rate: Up to 1 Mbps
- Data Phase Baud Rate: Up to 5 Mbps
- Data Frame Length: Classic CAN maximum 8 bytes, CAN-FD maximum 64 bytes
- Transceiver: TJA1044GT (NXP), with bus fault protection
- Isolation Voltage: 2500 Vrms (electrical isolation between signal and system ground)
- Termination Resistor: 120Ω, configurable via software
Pin Definition
| Pin | Name | Description | Suggested Color |
|---|---|---|---|
| 1 | CANH | High-level CAN signal | Yellow |
| 2 | CANL | Low-level CAN signal | Green |
| 3 | GND | Signal ground (isolated ground) | Black |
Linux Usage
The DCU exposes CAN-FD interfaces as network devices in Linux, and standard SocketCAN framework can be used for development.
Configure CAN Interface
# Configure CAN0 for CAN-FD mode, 1Mbps arbitration, 5Mbps data phase
sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can0 up
# Configure CAN1 (classic CAN mode, 1Mbps)
sudo ip link set can1 type can bitrate 1000000
sudo ip link set can1 up
Send CAN Frame
// C example: Send CAN-FD frame
#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;
// Enable CAN-FD frame support
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 maximum 64 bytes
frame.flags = CANFD_BRS; // Use bit rate switching
// Fill data...
write(s, &frame, sizeof(frame));
Python Example
import can
# Create CAN bus instance
bus = can.interface.Bus(channel='can0', bustype='socketcan')
# Send message
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)
# Receive message
for msg in bus:
print(f"ID: {msg.arbitration_id:X}, Data: {msg.data.hex()}")
RS-485 Interface
RS-485 is a differential signal serial communication standard with strong anti-interference capability and long transmission distance, widely used in industrial environments.
Hardware Specifications
- Protocol Standard: TIA/EIA-485-A
- Maximum Baud Rate: 12 Mbps
- Maximum Cable Length: 1200 meters (at low speed)
- Differential Signal Amplitude: 1.5V - 5V
- Receiver Input Impedance: ≥ 12 kΩ
- Isolation Voltage: 2500 Vrms
- Termination Resistor: 120Ω, onboard configurable
Pin Definition
| Pin | Name | Description | Suggested Color |
|---|---|---|---|
| 1 | A (D+) | Positive differential signal | Yellow |
| 2 | B (D-) | Negative differential signal | Green |
| 3 | GND | Signal ground | Black |
Linux Usage
The RS-485 interface is mapped to standard serial devices in Linux (/dev/ttyS* or /dev/ttyUSB*).
Configure Serial Parameters
# Configure RS485-0 for 115200 baud rate, 8 data bits, no parity, 1 stop bit
stty -F /dev/ttyS1 115200 cs8 -cstopb -parenb
# Enable hardware auto-direction control for RS-485 (recommended)
echo 1 > /sys/class/tty/ttyS1/rs485/rs485_enable
Python Example (Modbus RTU)
import serial
from pymodbus.client import ModbusSerialClient
# Create Modbus RTU client
client = ModbusSerialClient(
port='/dev/ttyS1',
baudrate=115200,
parity='N',
stopbits=1,
bytesize=8,
timeout=1
)
# Read holding registers
result = client.read_holding_registers(address=0, count=10, slave=1)
if result.isError():
print("Communication error")
else:
print(f"Register values: {result.registers}")
EtherCAT Interface
EtherCAT (Ethernet for Control Automation Technology) is a high-performance real-time Ethernet protocol, especially suitable for multi-axis motion control and distributed I/O systems.
Hardware Specifications
- Protocol Standard: ETG 1000 series
- Physical Layer: 100BASE-TX (100 Mbps full duplex)
- Topology: Daisy chain, line, tree
- Cycle Time: Minimum 1 ms (typical application), minimum up to 100 μs
- Synchronization Accuracy: < 1 μs (distributed clock)
- Maximum Number of Slaves: Theoretically 65535, recommended not to exceed 32
Usage
The DCU supports running as an EtherCAT master. Alius provides a software stack based on the IgH EtherCAT Master.
Install EtherCAT Master Software
sudo apt install -y aliu-ethercat-master
sudo systemctl enable ethercat
sudo systemctl start ethercat
Configure EtherCAT Network
# Edit EtherCAT master configuration
sudo nano /etc/ethercat/master.conf
# Configuration example:
# MASTER0_DEVICE="eth1"
# DEVICE_MODULES="generic"
Enumerate EtherCAT Slaves
# Scan slave devices on the bus
sudo ethercat slave
# Output example:
# 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
Process Data Communication (PDO) Example
import ctypes
from aliu_ethercat import EtherCATMaster
# Create master instance
master = EtherCATMaster()
# Scan and initialize slaves
master.scan()
master.set_state('OPERATIONAL')
# Periodic process data exchange
for cycle in range(1000):
# Send target position (PDO output)
master.write_outputs(slave_id=0, data=[target_pos])
# Read actual position (PDO input)
actual_pos = master.read_inputs(slave_id=0, size=4)
# Control cycle 1 ms
master.wait_sync()
Ethernet Interface
The DCU provides 1 Gigabit Ethernet interface for network connection, remote debugging, and data transfer.
Hardware Specifications
- Speed: 10/100/1000 Mbps auto-negotiation
- Full Duplex Support: Yes
- PoE Support: Optional (requires customization)
- PHY Chip: Realtek RTL8211F
- Connector: RJ45 with indicator lights
Configuration Example
# Configure static IP
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip link set eth0 up
# Configure VLAN (optional)
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 Camera Interface
The DCU provides 2 MIPI-CSI interfaces that can be used to connect camera modules for visual perception.
Hardware Specifications
- Standard: MIPI CSI-2 v1.3
- Data Lanes: 4 lanes/channel
- Maximum Data Rate: 2.5 Gbps/lane
- Supported Resolution: Up to 4K@60fps
- Connector: 30-pin FPC (0.5 mm pitch)
Supported Camera Modules
- Sony IMX219 (Raspberry Pi Camera v2)
- Sony IMX477 (Raspberry Pi HQ Camera)
- Alius Vision Module (custom camera module)
Usage
# List camera devices
v4l2-ctl --list-devices
# Capture image
ffmpeg -f v4l2 -i /dev/video0 -vframes 1 capture.jpg
# Preview with GStreamer
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=1920,height=1080 ! autovideosink
MIPI-DSI Display Interface
The DCU provides 1 MIPI-DSI interface that can be used to connect LCD display panels for local HMI.
Hardware Specifications
- Standard: MIPI DSI v1.2
- Data Lanes: 4 lanes
- Maximum Data Rate: 2.5 Gbps/lane
- Supported Resolution: Up to 4K@60fps
- Connector: 31-pin FPC (0.3 mm pitch)
Supported Display Panels
- Alius 7-inch LCD Panel (1024×600, capacitive touch)
- Alius 10.1-inch LCD Panel (1280×800, capacitive touch)
USB Interfaces
The DCU provides 4 USB host interfaces (2× USB 3.0 + 2× USB 2.0) that can be used to connect various peripherals.
Usage Recommendations
- USB 3.0: Recommended for connecting high-speed devices such as LiDAR, depth cameras, and NVMe SSDs.
- USB 2.0: Can be used to connect low-speed devices such as keyboards, mice, and WiFi modules.
- Power Limitation: Each port has a maximum output of 500 mA. When connecting high-power devices, it is recommended to use a USB Hub with an external power supply.