S5PV210平台wk21xx_UART驱动详解

需积分: 0 1 下载量 102 浏览量 更新于2024-08-05 收藏 48KB PDF 举报
"该文档是关于wk21xx系列设备UART驱动的说明,主要讨论了在友善之臂tiny210开发平台上的移植与使用,涉及S5PV210处理器,Linux-3.0.8内核,以及波特率配置和设备命名规则。" 在嵌入式系统中,UART(通用异步收发传输器)是一种常见的串行通信接口,用于设备间的低速数据传输。在 wk21xx 系列设备中,UART 驱动直接操作 CPU 的相关寄存器来实现通信。对于开发环境,该文档指出是在基于三星 S5PV210 处理器的友善之臂tiny210开发板上进行,内核版本为 Linux-3.0.8。 驱动移植需要注意以下几点: 1. 主 UART 驱动直接操作 CPU 寄存器,这意味着驱动需要对底层硬件有深入理解,以正确配置和控制 UART 功能。 2. 函数 `wk_s5pv210uart_InitIO(void)` 关键在于初始化 CPU 的 IO 和内存映射,这部分内容可能因硬件实现的不同而有所变化。若已有 UART 驱动,可以考虑复用或调整以适应新环境。 3. UART 波特率自适应是 wk21xx 设备的一个特性,用户只需在芯片复位后发送特定字符(如0x55),设备会自动锁定与 CPU 相同的波特率。若需更改波特率,必须硬件复位。因此,在硬件设计时应考虑对 wk21xx 的复位引脚进行控制,以方便波特率切换。 4. 驱动成功注册后的设备名称以 "ttysWK" 开头,后跟数字表示不同的 UART 口,例如 ttysWK0 至 ttysWK3。 波特率设置是 UART 配置中的关键部分,因为不同晶振会导致不同的波特率。在 wk21xx 的驱动中,`wk2xxx_termios()` 函数负责根据 `ktermios` 结构体的参数来配置波特率。这个函数会计算并设置 `baud1`, `baud0`, `pres` 这三个寄存器以匹配所需的波特率。在调试时,假设使用的是11.0592MHz 的波特率,但实际应用中可能需要根据所用的晶振频率进行相应调整。 总结来说,这篇文档详细介绍了 wk21xx 系列设备 UART 驱动在 tiny210 平台上的移植和使用方法,包括驱动结构、波特率自适应机制以及波特率的动态配置。这对于在类似平台上开发 UART 相关功能的工程师具有重要的参考价值。