RTEMS管理机制与USB驱动程序设计
引 言
在航空航天和工业控制等一些嵌入式应用领域,要求控制系统具有严格的实时性,能够为任务提供一个可预见的响应时间。一些实时操作系统的引入可以有效地满足任务的实时性要求,如RTEMS和VxWorks。在这样的系统中,如果系统通信模块的通信速度不高,或者通信质量不可靠,就会影响整个系统的实时性能。通用串行总线(USB)由于其高带宽、高可靠性的特点,必将越来越多地应用到这类系统中。然而由于多数实时操作系统目前并未提供USB主机和设备的驱动,而且USB协议相对于其他串行通信协议(RS232、SPI等)复杂度较高,使得USB驱动程序的开发难度较大。
1 RTEMS及其设备管理机制
1.1 RTEMS简介
RTEMS(Real—Time Executive for MultiprocessorSystem)是一个为嵌入式应用系统提供高性能支持环境的实时操作系统内核,早期用于美国军方的导弹系统。RTEMS的实时性能高于RTLinux,与VxWorks相比也毫不逊色。
RTEMS具有如下特点:支持多任务;支持同构或异构多处理器系统;支持事件驱动、基于优先级、占先的调度算法,具有单调速率调度算法;支持任务间的通信和同步;支持优先级继承算法,快速响应的中断管理;支持动态存储器分配,具有用户配置的能力。
RTEMS是微内核抢占式的实时操作系统,具有实时性能好、运行速度快和可靠性高等优点,在通信、航空航天、工业控制等领域有着非常广泛的应用。
1.2 设备管理机制
操作系统的一个重要功能就是为应用程序提供一个统一的I/O设备的虚拟接口,使用户程序能够按照相同的模式对设备进行操作,无需关心每个设备的具体特性。
RTEMS系统提出了一种设备抽象模型,使用这种模型,应用程序通过相同的I/O系统调用埘没备进行操作,而不必关心实现细节。RTEMS的I/O管理器提供的系统调用包括:
◆rIems_io_initialize,初始化一个设备驱动程序;
◆rtems_io_register_name,注册一个设备名;
◆rIems_io_lookup_name,根据设备名查找主/副设备号;
◆rterns_io_open,打开一个设备;
◆rteros_io_close,关闭一个设备;
◆rtems_io_read,从一个设备中执行读操作;
◆rtems_io_write,向一个设备中执行写操作;
◆rteros_io_control,特殊的设备服务。
RTEMS系统使用设备驱动程序地址表来提供这种抽象,在这个表中提供了每个标准I/O请求处理函数的入口地址。RTEMS使用设备的主设备号和副设备号来定位它的驱动程序。主设备号是设备驱动程序地址表中相应设备表项的索引,用于选择某个设备驱动程序;副设备号的用途则依赖于具体的设备驱动程序,通常用于在相同设备驱动程序所控制的若干设备中指定特定的设备。在RTEMS系统中,每个特定的设备都有与之相关联的设备名称。RTEMS系统内核中包含了一个“设备驱动程序文件名表”。这个表将设备文件名与设备的主、副设备号联系起来,应用程序可以使用注册设备名查找与一个设备相关联的主设备号/副设备号,进而通过标准I/0系统调用和主设备号/副设备号在设备驱动程序地址表中找到该设备的驱动程序的入口函数地址,对设备进行操作。
相关文章
- 2022-05-18有关汽车动力性的检测
- 2023-03-08基于动态加权的光电经纬仪航迹测量
- 2024-02-08基于柔性解耦梁和显微视觉的精密同轴定位系统
- 2022-09-27PLC应用在热工保护中
- 2023-12-15基于COSMOSMotion的机械臂三维虚拟仿真



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。