前言:
根据电平的不同,串口分为TTL和RS232。不管什么样的接口电平,其驱动程序都是一样的,通过外接RS485这样的芯片就可以将串口转换为RS485信号。
先了解一下linux下UART驱动框架:
1、uart_driver注册与注销
uart_driver 结构体表示 UART 驱动,uart_driver 定义在 include/linux/serial_core.h 文件中
每一个串口驱动都需要定义一个uart_driver,加载驱动的时候通过 uart_register_driver 函数向
系统注册这个 uart_driver,
int uart_register_driver(struct uart_driver *uart)
uart:要注册的 uart_driver。
返回值:0,成功;负值,失败
注销驱动的时候也需要注销掉前面注册的 uart_driver,需要用到 uart_unregister_driver 函数
void uart_unregister_driver(struct uart_driver *uart)
函数参数和返回值含义如下:
uart:要注销的 uart_driver。
返回值:无。
2、uart_port
uart_port 定义在 include/linux/serial_core.h 文件,表示一个具体的port。
每个 UART 都有一个 uart_port,通过uart_add_one_port 函数与uart_driver 结合