项目简介
本项目是基于NXP LPC54018微控制器的多串口扩展系统,借助通用MCU扩展多个串口和GPIO接口,适用于工业应用场景。项目包含Linux内核驱动、MCU固件下载工具和用户空间测试程序,可扩展多达10个串口,还提供了详细的硬件和软件架构说明。
项目的主要特性和功能
- 多串口扩展:利用LPC54018微控制器,最多可扩展10个串口,满足工业场景大量串口通信需求。
- Linux内核驱动:提供Linux内核驱动,支持在Linux系统使用扩展的串口设备。
- MCU固件下载工具:基于DFU协议的固件下载工具,可将固件下载到LPC54018微控制器。
- 用户空间测试程序:用于测试和演示多串口扩展功能。
- 硬件支持:支持LPCXpresso54S018M - EVK和LPC546xx - EVK开发板,并提供详细硬件连接和配置说明。
安装使用步骤
1. 环境准备
- 硬件:LPCXpresso54S018M - EVK或LPC546xx - EVK开发板。
- 操作系统:Linux系统。
- 工具链:GCC编译器。
2. 编译Linux内核驱动
- 把
kernel_driver/lpc54xxx.c
文件复制到Linux内核源码目录的drivers/usb/serial/
目录。 - 在
drivers/usb/serial/Makefile
文件添加:makefile obj - $(CONFIG_USB_SERIAL_LPC54XXX) += lpc54xxx.o
- 在
drivers/usb/serial/Kconfig
文件添加:makefile config USB_SERIAL_LPC54XXX tristate "USB LPC54XXX USB Serial Driver" help Say Y here if you want to use a LPC54XXX 10 port USB to serial converter device. To compile this driver as a module, choose M here.
- 在Linux内核源码目录运行
make menuconfig
,选USB_SERIAL_LPC54XXX
为内置驱动,然后编译内核。
3. 下载MCU固件
- 将
LPC_firmware_download_tool/dfu - utils
目录复制到/usr/bin/
目录。 - 用USB线连接开发板的USB1端口到Linux主机。
- 在Linux终端进入
LPC_firmware_download_tool/
目录,运行./download.sh
下载固件。 - 下载完成,系统自动识别并创建多个
ttyUSB
设备文件。
4. 测试多串口功能
- 使用
user_space_test_program/
目录下的用户空间测试程序进行功能测试。 - 可通过
/sys/class/tty/ttyUSBx/device/
目录下的send_bytes
、recv_bytes
和loopback
属性调试和监控。
5. 调试与监控
- 查看发送和接收字节数:通过
send_bytes
和recv_bytes
属性查看各串口的发送和接收字节数。 - 回环测试:通过
loopback
属性控制回环测试开关。
结果验证
短接开发板上的TX和RX引脚,进行串口回环测试,验证数据传输正确性。使用stty
命令设置波特率,通过cat
和echo
命令进行数据传输测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】