
案例功能:PS端通过AXI4-Lite总线控制PL端AXI UARTLite IP核进行数据收发,以此来演示评估板上RS485、RS422和RS232的串口收发功能。



工程管脚约束可查看工程文件"constrains"目录下的.adc约束文件。
工程在PL端上使用AXI UARTLite IP核,ARM Processor System IP核(PS端)通过AXI4-Lite总线控制PL端AXI UARTLite IP核进行数据收发,Design Integrator工程和地址分配如下:


IP核开发相关资料可查阅产品资料“6-开发参考资料\Anlogic官方参考文档\”目录下文档,IP核配置参数如下。
(1)ARM Processor System。
ARM Processor System IP核心配置和FSBL工程基本一致,仅修改GPIO PL(Width)的值为4,并从顶层引出,绑定管脚D15、B19、C19、D18,用于流控两个RS485及一个RS422。其他详细配置可参考位于产品资料“4-软件资料\Linux\FSBL\fsbl-[版本号]\”目录下的FSBL工程。

(2)AXI UARTLite。
本案例工程使用了4个AXI UARTLite IP核,4个AXI UARTLite IP核的配置均相同。

(3)AXI Protocol Converter。

(4)AXI Matrix。



将本案例的动态设备树镜像文件pl.dtbo和PL端.bit镜像文件拷贝至"/lib/firmware/"目录下(若该目录不存在,请新建),并将PL端可执行文件重命名为system_wrapper.bit,然后执行如下命令加载PL端镜像。
Target# mkdir -p /lib/firmware
Target# cp pl.dtbo /lib/firmware/
Target# cp axi_uart_rw_dr1m90.bit /lib/firmware/system_wrapper.bit
Target# mount -t configfs none /sys/kernel/config
Target# mkdir /sys/kernel/config/device-tree/overlays/full //创建full目录,可根据实际情况修改
Target# echo pl.dtbo > /sys/kernel/config/device-tree/overlays/full/path //dtbo文件名称请根据实际情况修改

(1)RS232测试
请通过RS232交叉串口母线、USB转RS232公头串口线,将评估板的RS232调试串口连接至PC机的USB接口,如下图所示。

执行如下命令,调整RS232串口通信参数。
Target# stty -F /dev/ttySL0 115200 cs8 -cstopb -parenb -crtscts clocal raw -echo

a)评估板接收
打开设备管理器,本次测试中调试串口USB TO UART1端口号为COM13,RS232串口的端口号为COM16,如下图所示。

打开调试串口终端,COM16波特率设为115200,8N1,无校验位。COM13波特率设为115200,8N1,无校验位,并建立串口连接。评估板调试串口终端执行如下命令,评估板等待接收上位机发送的数据。
Target# cat /dev/ttySL0

在RS232串口终端点击"View -> Command (Chat) Window",选中并打开"Command (Chat) Window"窗口。

在窗口中输入数据,例如"Tronlong",再按回车键。

评估板调试串口终端将会打印接收到的数据。

b)评估板发送
执行如下命令,评估板通过RS232串口发送数据至上位机。
Target# echo tronlong > /dev/ttySL0

RS232串口终端将会打印接收到的数据,如下图所示。

(2)RS485串口测试
使用RS232转RS485模块、USB转RS232公头串口线,将评估板RS485串口连接至PC机的USB接口,硬件连接如下图所示。
RS232转RS485模块与评估板RS485串口硬件连接关系如下表所示。


本章节以RS485串口(设备节点为:ttySL2)为例进行演示。如需测试RS485另一个串口,请将设备节点修改为ttySL3。
执行如下命令,调整RS485串口通信参数。
Target# stty -F /dev/ttySL2 115200 cs8 -cstopb -parenb -crtscts clocal raw -echo

a)评估板接收
打开设备管理器,本次测试中调试串口USB TO UART1端口号为COM13,RS485串口的端口号为COM16,如下图所示。

评估板调试串口终端执行如下命令,评估板等待接收上位机发送的数据。
Target# cat /dev/ttySL2

在RS485串口终端点击"View -> Command (Chat) Window",选中并打开"Command (Chat) Window"窗口。

在窗口中输入数据,例如"Tronlong",再按回车键。

评估板调试串口终端将会打印接收到的数据。

b)评估板发送
执行如下命令,评估板通过RS485串口发送数据至上位机。
Target# echo tronlong > /dev/ttySL2

RS485 UART3串口终端将会打印接收到的数据,如下图所示。

(3)RS422串口测试
使用RS232转RS485/RS422模块、USB转RS232公头串口线,将评估板RS422串口连接至PC机的USB接口,硬件连接如下图所示。
RS232转RS485/RS422模块与评估板RS422串口硬件连接关系如下表所示。


本章节以RS422串口(设备节点为:ttySL1)为例进行演示。执行如下命令,配置RS422端口的RE_n管脚为低电平。
Target# echo 421 > /sys/class/gpio/export
Target# echo out > /sys/class/gpio/gpio421/direction
Target# echo 0 > /sys/class/gpio/gpio421/value

执行如下命令,配置RS422端口的DE管脚为高电平。
Target# echo 420 > /sys/class/gpio/export
Target# echo out > /sys/class/gpio/gpio420/direction
Target# echo 1 > /sys/class/gpio/gpio420/value

执行如下命令,调整RS422串口通信参数。
Target# stty -F /dev/ttySL1 115200 cs8 -cstopb -parenb -crtscts clocal raw -echo

a)评估板接收
打开设备管理器,本次测试中调试串口USB TO UART1端口号为COM13,RS422串口的端口号为COM16,如下图所示。

评估板调试串口终端执行如下命令,评估板等待接收上位机发送的数据。
Target# cat /dev/ttySL1

在RS422串口终端点击"View -> Command (Chat) Window",选中并打开"Command (Chat) Window"窗口。

在窗口中输入数据,例如"Tronlong",再按回车键。

评估板调试串口终端将会打印接收到的数据。

b)评估板发送
执行如下命令,评估板通过RS422串口发送数据至上位机。
Target# echo tronlong > /dev/ttySL1

RS422串口终端将会打印接收到的数据,如下图所示。

由于篇幅过长等原因,部分内容均不逐一展示,如需获取完整版详细资料,请关注创龙科技微信公众号或官网,或者评论区留言,感谢您的支持!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。