迅为IMX6ULL开发板Linux RS232/485驱动实验(上)
在 arm 设备中串口是很常用的一个外设,不仅可以用来打印信息,还可以用于外接设备和其他 传感器 通信。根据不同的电平,串口分为 TTL 和 RS232,但是在 Linux 内核中的驱动程序是一样的,在串口上外接RS485 类似的芯片就可以把 RS232 信号转换为 RS485 信号,非常方便。在 i.MX6UL 终结者开发板上,RS232、 RS485 和 GPS 模块都接到了 UART3 接口上,内核驱动都是一样的。在本章来学习一下串口驱动。 53.1 Linux 下的 UART 驱动框架 53.1.1 uart_driver 结构体 在 Linux 中 uart 和 I2C、SPI 一样,提供了串口驱动框架,只需要按照提供的串口框架函数编译驱动即可。一般来说串口驱动都已经实现好了,我们需要做的就是在设备树文件中,添加相应的设备节点。当设备和驱动匹配成功后,串口就能够正常工作。 在 Linux 中,用 uart_driver 结构体来描述串口,uart_driver 定义在 include/linux/serial_core.h 文件中,内容如下: 295 struct uart_driver { 296 struct module *owner; /* 模块所属者 */ 297 const char *driver_name; /* 驱动名字 */ 298 const