衡山派开发板UART串口全功能测试指南:从环路到RS485与流控实战

发布时间:2026/7/25 20:56:43

衡山派开发板UART串口全功能测试指南:从环路到RS485与流控实战 衡山派开发板UART串口全功能测试指南从环路到RS485与流控实战最近在用衡山派开发板做项目串口通信是嵌入式开发里最基础也最常用的功能。但很多朋友拿到板子后可能只简单测试了收发数据对于DMA传输、RS485差分通信还有硬件流控这些高级功能怎么验证心里就没底了。今天我就以一位过来人的身份手把手带你把这套UART测试用例完整跑一遍从最基础的环路测试到实战中的RS485和流控把每个环节的坑和要点都讲清楚。这篇教程适合正在使用衡山派基于ArtInChip D133系列开发板的嵌入式工程师特别是需要验证底层驱动稳定性和进行功能验收的朋友。跟着做一遍你就能对板子的UART外设能力有一个全面的把握。1. 准备工作兵马未动粮草先行在开始任何测试之前准备工作一定要做扎实不然调试过程会充满各种“灵异事件”。1.1 硬件准备你需要准备好以下两样东西测试板一块带有调试串口的衡山派开发板。确保板子已经正确上电并且能通过调试串口连接到你的电脑终端。连接线根据不同的测试场景需要不同类型的线缆。环路测试需要杜邦线或跳线帽用于短接UART的TX和RX引脚。RS485测试需要RS485转USB适配器或另一台RS485设备用于连接开发板的B和B-端子。流控测试需要额外的线连接CTS和RTS引脚可能还需要逻辑分析仪或示波器观察信号。注意硬件连接是后续所有测试的基础务必保证接触良好线序正确。一个松动的杜邦线头可能让你调试一整天。1.2 软件准备测试用例已经集成在Luban-Lite SDK中我们只需要把它配置打开就行。进入你的Luban-Lite SDK根目录。打开配置菜单scons --menuconfig在图形化配置界面中按如下路径找到选项Drivers options --- Drivers test --- [*] Enable UART driver test command用空格键选中[*] Enable UART driver test command这个选项然后保存退出。重新编译固件并烧录到开发板中。完成这一步你的系统里就包含了test_uart、uart_dma_test等测试命令了。2. 基础验证单端口环路测试这是最简单的测试目的是验证UART最基本的发送和接收功能是否正常。原理就是“自己发自己收”。2.1 测试步骤软件配置在代码或驱动中将你要测试的UART端口例如UART4配置为标准的RS232功能模式。这通常意味着设置正确的波特率、数据位、停止位和校验位例如115200-8-N-1。硬件连接找到开发板上对应UART端口的TX发送和RX接收引脚。用一根杜邦线直接把这两个引脚短接起来。这就形成了一个“环路”芯片发送的数据会立刻被自己接收。执行测试通过调试串口登录到开发板的终端运行测试命令。命令格式是test_uart [端口号] [测试模式]。例如测试UART4模式1环路测试aic/ test_uart uart4 12.2 结果分析如果一切正常你会在终端看到类似下面的输出RT_WAITING_SEM send : 1234567890ArtInChip1234567890 receive: 1234567890ArtInChip1234567890send行是测试程序发送出去的数据receive行是接收回来的数据。两者完全一致恭喜你这个UART端口的基础收发功能是完好的。如果接收的数据是乱码或者不全首先检查硬件环路连接是否可靠然后确认软件配置的波特率等参数是否正确。3. 性能提升DMA环路测试直接CPU搬运数据查询或中断方式在大量数据通信时会占用大量资源。DMA直接内存访问可以让数据在内存和串口之间自动搬运解放CPU。这个测试就是验证UART的DMA功能是否正常。3.1 测试步骤软件配置配置UART端口为RS232功能并且关键一步要启用该UART的DMA发送和接收功能。这通常需要在驱动中配置DMA通道和相关参数。硬件连接和基础环路测试一样用杜邦线短接TX和RX引脚。执行测试在终端运行专门的DMA测试命令。例如测试UART2aic/ uart_dma_test uart2 13.2 结果分析正常输出会显示发送和接收的数据内容一致send: 1234567890abcdefghijklmnopqrstuvwxyz!#$* recv: 1234567890abcdefghijklmnopqrstuvwxyz!#$*这个测试发送的数据比基础测试更长且包含了更多字符更能体现DMA处理数据流的能力。如果测试通过说明UART的DMA控制器工作正常你可以放心地在需要高速、大数据量传输的场景中使用DMA了。4. 工业现场RS485通信测试RS485是一种差分信号通信抗干扰能力强传输距离远在工业控制中广泛应用。衡山派开发板上的某些UART口可以通过配置支持RS485模式。4.1 测试步骤软件配置将UART端口配置为RS485 功能。这与RS232不同通常需要使能内部的RS485收发器控制引脚DE/RE并可能设置差分信号特性。硬件连接找到开发板上的RS485接口通常是A/B或B/B-端子。用双绞线将开发板的B连接到测试设备如USB转485适配器的BB-连接到B-。务必注意极性接反了无法通信。执行测试在开发板终端运行测试命令。注意RS485测试通常不需要环路模式参数1因为它需要与另一个设备对话。命令可能如下aic/ test_uart uart44.2 结果分析在这个测试中开发板会发送一串数据如1234567890ArtInChip1234567890到PC并等待PC回复。终端会显示RT_WAITING_SEM send : 1234567890ArtInChip1234567890 receive: This is from PC这里的receive: This is from PC表明开发板成功收到了来自PC端串口助手的数据。这个测试验证了RS485的差分发送和接收链路都是通的。如果收不到数据请检查接线极性、终端电阻120Ω是否需要匹配以及PC端串口工具的配置是否与开发板一致。5. 可靠传输RS232硬件与软件流控测试当通信双方速度不匹配时流控Flow Control就至关重要了它能防止数据丢失。硬件流控用额外的CTS/RTS线软件流控用特殊的XON/XOFF字符。5.1 硬件自动流控测试硬件流控通过CTSClear To Send和RTSRequest To Send两根信号线自动协调收发。软件配置将UART端口配置为硬件自动流控功能。硬件连接需要连接四根线TX、RX、CTS、RTS。将开发板的TX接PC的RXRX接PC的TX同时将开发板的CTS接PC的RTSRTS接PC的CTS。这是交叉连接。执行测试在开发板终端运行命令例如test_uart_flowctrl -u uart2 -n。PC端操作在PC的串口工具中将流控模式设置为“硬件流控RTS/CTS”。发送数据从PC端一次性发送一个大于256字节的数据包。信号观测使用示波器或逻辑分析仪探头点住开发板的RTS引脚。你应该能看到当接收缓冲区快满时RTS引脚会产生一个上升沿通知对方暂停发送当缓冲区有空闲时再产生一个下降沿通知对方恢复发送。这个“上升沿-下降沿”的过程是硬件流控正常工作的关键证据。5.2 软件流控测试软件流控不占用额外引脚它通过发送XON0x11和XOFF0x13字符来控制数据流。测试分为两部分输入流控控制对方发来的数据和输出流控控制自己发出的数据。A. 测试输入流控对方控制我方接收软件配置UART为软件流控功能。硬件只需连接TX和RX。开发板运行命令test_flow_control -u uart2 -r。这个命令会让开发板准备接收数据并在缓冲区快满时发送XOFF字符。PC串口工具设置为XON/XOFF模式然后开始持续发送大于2048字节的数据。观察开发板终端它会打印接收到的数据。当它发送XOFF后PC端应停止发送直到开发板发送XON。你会看到数据接收暂停又恢复的现象。一直发送直到终端不再打印“The data has been receive”为止。B. 测试输出流控我方控制对方接收开发板运行命令test_uart_flowctrl -u uart2 -n。PC串口助手同样设置为XON/XOFF模式。从PC端发送0x13XOFF字符。此时开发板会进入“只能接收不能发送”的状态。你尝试在开发板终端输入命令会发现没有反应因为发送被阻塞了。从PC端发送0x11XON字符。开发板的发送功能立即恢复终端可以正常输入命令了。这个测试非常直观地展示了软件流控是如何工作的。在实际项目中特别是通过无线模块如4G传输数据时软件流控是保证数据不丢失的常用手段。走完这一整套测试流程你对衡山派开发板的UART功能应该就有了十足的信心。每个测试都对应着实际开发中的一个典型应用场景把这些基础打牢后面做项目时就能少踩很多坑。如果在测试中遇到问题首先回头检查硬件连接和软件配置这两个地方解决了大部分疑问。

相关新闻