五、上位机串口通信:硬件连接+问题
今年使用的上位机设备为NVIDIA Jetson AGX Xavier,是一款适合边缘计算的英伟达低功耗工控机
32TOPS的算力、存储空间为32GB,具有比较丰富的接口。
本文会提供一些相应的设备参数,但主要还是以串口通信的内容为主。
设备参数介绍
NVIDIA Jetson AGX Xavier


具体性能参数如下⬇:
https://www.nvidia.cn/autonomous-machines/embedded-systems/jetson-agx-xavier/
串口引脚图


【40-Pin扩展口中的UART】
40-Pin扩展口中引出的是UART1, 对应引脚为 8 -- UART1_TX, 10--UART1_RX.
Xavier打开终端, 输入 ls /dev/tty*, 其中的 /dev/ttyTHS0 就是这个UART1.
相关资料:
https://blog.csdn.net/weifengdq/article/details/103015638#UART_163
【实物连接】
使用USB-TTL, 电压选择3.3V, 连接如下:
| CH340 | Xavier 40-Pin扩展口 |
|---|---|
| RXD | Pin8(UART1_TX) |
| TXD | Pin10(UART1_RX) |
| GND | GND |
如图所示:

推荐串口助手安装
大多数情况下在Ubuntu系统上很多人使用minicom, 安装:
sudo apt install minicom也有图形界面的 cutecom, 安装:
sudo apt install cutecom今年调试使用的是cutecom,下面也将使用cutecom进行讲解。
串口通信测试
【工控机端】
USB-TTL连接到PC端上,工控机端 ls dev/tty*, 会发现多出一个/dev/ttyUSB0的设备;
工控机打开终端输入:
sudo cutecom这里Device选择/dev/ttyUSB0, 点击Open:

【PC端】
打开主机端的串口助手(VOFA+)
找到USB-TTL的物理端口并连接,双方互相发送信息,观察是否接收到信息,信息是否正确。
(PC端图像不再展示)
串口通信配置and使用中的问题
在插拔杜邦线的时候GND线采取先插后拔的原则:在往工控机上插拔串口线的时候,要保证先插GND线,再插RX或TX线,保证主控板和工控机是同一个地;在拔线时保证最后拔GND线,保证使用安全;
工控机外接设备接电注意安全!可能造成电源保护自动关机,也可能烧板。今年单片机和工控机引脚连接出错,将下位机主控板芯片烧穿。
串口初次(连续)收发数据不对:在使用工控机串口时,无论是 ”工控机串口--PC机“ or ”工控机串口--单片机串口“ 在首次收发数据时数据经常收发不完整,数据也不一定对,一直不对,直到手动用串口助手疏通一次工控机串口,让工控机串口died一次,往后就都是正常的。(这里的首次是针对于开机)。
解决方法(没有找到具体原因彻底解决):每次工控机开机,连接好USB-TTL,打开PC和工控的串口助手,PC向工控机连续发送信息,直到cutecom显示,串口died死掉后,再重新open,后续就不会有这个问题了。
**使用带有串口通信的程序时要开sudo权限:**对于运行在工控机的程序,如果工程中有需要使用串口通信的代码,请在程序编译完成后,运行代码时,终端指令加上sudo权限,不然串口将无法调用,程序会崩溃


