VxWorks串口驱动的研究与实现

摘要: 本文以基于ARM7TDMI内核的S3C44B0X芯片的串口驱动为例,分析了 VxWorks串口驱动的层次和机理,研究了tty驱动和底层SCC驱动的工作原理。结合S3C44B0X芯片的串口驱动程序,给出了VxWorks串口驱动程序设计方法和注意事项。

关键词: VxWorks;串口驱动;tty设备

引言

VxWorks的程序开发者经常需要解决串口驱动问题,这是BSP和上层应用程序开发必不可少的基本步骤,特别是对于板级支持包(BSP)和上层应用程序的开发,掌握串口驱动的原理和开发串口驱动程序就显得尤为重要。VxWorks串口通信由串行通信控制器SCC(Serial Communication Controller)控制,和标准I/O库通信的是tty驱动,再由tty驱动和底层SCC驱动通信。本文研究VxWorks串口驱动特性,并以S3C44B0X为例,给出开发VxWorks串口驱动的步骤和实现方法。

串口设备层次与tty驱动

串口的层次

VxWorks串行设备的层次采用了3层抽象的软件结构:标准I/O库(ioLib)->tty库(ttyDrv/tyLib)—>底层SCC驱动(xxDrv),如图1所示。从图中可看出串行设备的驱动xxDrv并不是直接和I/O system交互的,中间存在一个ttyDrv(包括tyLib)。实际上,内核启动时在驱动程序表中安装的不是xxDrv的函数,而是ttyDrv/tyLib提供的函数。串口tty驱动(ttyDrv/tyLib)使I/O系统独立于具体SCC驱动,保证了代码可复用和统一界面。SCC驱动(xxDrv/yyDrv)处理和底层硬件有关的部分。因此,在编写串口驱动时需要了解串口tty驱动的原理以及串口输入输出过程。在此基础上,根据VxWorks的程序执行流程和具体的MCU芯片的特点,修改底层SCC驱动代码。

原文阅读

posted @ 2008-12-24 09:36  clara  阅读(1744)  评论(0编辑  收藏  举报