VxWorks环境下CAN控制器驱动程序设计与实现

需积分: 14 1 下载量 78 浏览量 更新于2024-08-15 收藏 397KB PDF 举报
"实时操作系统VxWorks环境下CAN控制器驱动程序的设计 (2005年)" 在铁路交通领域,列车运行控制系统扮演着至关重要的角色,尤其是ATP(Automatic Train Protection)系统,它通过实时监控列车速度来确保行车安全。随着国内铁路和城市轨道交通的快速发展,对这类系统的依赖日益增强。在这种背景下,软件的安全性成为了关注的重点,特别是在实时操作系统如VxWorks下设计的CAN(Controller Area Network)控制器驱动程序。 VxWorks是一款广泛应用的实时操作系统,以其高效、可靠和确定性的特性,特别适合于对时间敏感和可靠性要求极高的环境,如轨道交通的ATP系统。CAN总线作为一种串行通信协议,因其容错能力强、实时性能好而广泛应用于汽车和工业自动化领域,包括列车通信网络。 在VxWorks环境下设计CAN控制器驱动程序,通常有两种实现方式。第一种是直接驱动方式,驱动程序直接操作硬件寄存器,与硬件接口紧密耦合,这种方式能够实现最小的延迟,但对硬件的依赖性强,不利于移植和维护。第二种是间接驱动或中间层驱动方式,通过一个抽象层与硬件交互,增加了灵活性,降低了对硬件细节的依赖,但可能会增加一定的系统开销,影响实时性。 文章作者谢火明和唐涛首先分析了ATP车载设备的三取二(Triple Modular Redundancy,TMR)硬件结构,这是一种常用的提高系统可靠性的方法,通过三个独立的模块进行表决,确保在单点故障情况下仍能正确工作。然后,他们详细探讨了在VxWorks下设计CAN控制器驱动的步骤和策略,包括初始化、数据收发、错误处理等关键环节。 在驱动程序的具体实现中,作者可能涉及了中断服务例程的编写,中断处理的优化,以及如何在VxWorks的任务调度机制下确保数据传输的实时性。他们还对比了直接驱动和中间层驱动在实时性、可移植性、复杂度等方面的优缺点,为实际项目选择合适的驱动实现提供了依据。 这篇文章深入探讨了在VxWorks实时操作系统下,如何设计和实现CAN控制器驱动,以满足ATP系统对高可靠性和实时性的需求。这不仅对于铁路交通领域的工程师有很高的参考价值,同时也为其他需要开发实时嵌入式系统的人士提供了宝贵的实践经验。