SBC-T113S产品特性:
- 采用Allwinner公司Cortex-A7双核T113-S3/S4处理器,运行最高速度为1.2GHZ;
- 内置64-bit XuanTie C906 RISC-V协处理器(仅T113-S4支持);
- 支持JPEG/MJPEG视频编码,最大分辨率1080p@60fps;支持多格式1080P@60fps视频解码 (H.265,H.264, MPEG-1/2/4);
- 支持RGB666/LVDS/MIPI-DSI,分辨率最高1920x1080;
- 支持128-256M Bytes DDR3 SDRAM,其中T113-S3内置128MB;T113-S4内置256MB;
- 支持SPI NAND存储和启动(默认:256MB)或者EMMC启动(默认:4GB,最大32GB);
- 支持一路USB2.0 OTG(设计为TYPE-A接口);支持二路USB2.0 HOST;
- 支持七路RS232通信或者6路RS232和1路RS485(非隔离);
- 支持一路CAN BUS通信(非隔离);
- 支持一路10/100M以太网;
- 稳定的操作系统的支持,可预装LINUX 5.4(Preempt)或者OpenWRT;
- 经典尺寸主板,尺寸为120*100MM;
SBC-T113S产品功能评估图:
CAN 测试
SBC-T113S主板有1路非隔离的CAN BUS,主板位号是CN13,见下图:
CN13引脚定义如下表:
脚位 | 定义 | 说明 |
1 | RS485_A | RS485的A信号 |
2 | RS485_B | RS485的B信号 |
3 | CAN1_L | CAN1的CANL信号 |
4 | CAN1_H | CAN1的CANH信号 |
CAN总线设备号在Tina Linux是awlink0。可以通过如下指令查看是否已经支持CAN BUS:
Target# ifconfig -a
awlink0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:1
设备号与硬件的实际对应关系以及设置指令如下:
CAN接口 | 设备号 | 开启及设置指令 |
CN13(3CANL-4CANH) | awlink0 | ifconfig awlink0 down ip link set awlink0 type can bitrate 20000 ip link set awlink0 up |
注1:CN13(3CANL-4CANH)表示CN13的3脚是CANL信号,4脚是CANH信号。
2:ip link set awlink0 type can bitrate 20000是设置波特率,这个指令设置的波特率是20K,最高是100000;另外两个具有CAN总线的设备要通信,务必设置同样的波特率。
Linux系统中常用的can测试程序有cansend、candump命令,其中cansend发送数据指令;candump是接收数据指令。SBC-T113S只有一路CAN BUS,本次测试采用一个主板的CAN BUS(can0)发数据,另外一个主板的CAN BUS(can0)收数据,如果收发数据一致表示通信成功。
- 连接硬件:把两个主板的CAN BUS信号CANH、CANL信号对应相连。
- 初始化 CAN 网络接口
设置CAN波特率,使用can需要先设置波特率,并开启CAN网络接口。参考下面命令分别将两块主板的数据波特率设置为20KHz,并开启can功能:(最高测试过1M)
主板1操作如下:
root@TinaLinux:/# ifconfig awlink0 down
root@TinaLinux:/# ip link set awlink0 type can bitrate 20000
root@TinaLinux:/# ip link set awlink0 up
主板2操作如下:
root@TinaLinux:/# ifconfig awlink0 down
root@TinaLinux:/# ip link set awlink0 type can bitrate 20000
root@TinaLinux:/# ip link set awlink0 up
至此,两个can都正常开启,并设置相同的波特率。
- 接收数据
主板1的can0接收,使用candump来查看CAN的接收数据:
root@TinaLinux:/# candump awlink0&
(0000000274.962878) awlink0 123#1122334455667788
(0000000275.568764) awlink0 123#1122334455667788
(0000000276.088995) awlink0 123#1122334455667788
(0000000276.578937) awlink0 123#1122334455667788
(0000000277.069075) awlink0 123#1122334455667788
- 发送数据
主板2 采用can发送数据,使用cansend发送数据:
root@TinaLinux:/# cansend awlink0 123#1122334455667788
- 统计can0信息
CAN数据收发之后显示CAN设备的详情和收发统计信息,其中“clock”的值代表 can的时钟,”drop”的值代表丢包,”overrun”的值代表溢出,”error”代表总线错误。
root@TinaLinux:/# ip -details -statistics link show can0
2: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mod
e DEFAULT group default qlen 10
link/can promiscuity 0 minmtu 0 maxmtu 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 20000 sample-point 0.850
tq 2500 prop-seg 8 phase-seg1 8 phase-seg2 3 sjw 1
sun8i-can: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1
clock 24000000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 3 0 1 1 0 nu
mtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
72 9 3 0 0 0
TX: bytes packets errors dropped carrier collsns
32 4 0 0 0 0