SmallRTOS下的SJA1000 CAN驱动程序实现与测试

需积分: 20 11 下载量 43 浏览量 更新于2024-09-08 1 收藏 36KB DOC 举报
"SJA1000 CAN驱动程序演示实验旨在展示如何在SmallRTOS操作系统中为SJA1000 CAN控制器编写驱动程序。实验使用SJA1000_PEI.LIB库来初始化CAN节点并进行数据的收发测试。实验设备包括PC机、DP-51PROC实验仪、CANPARK模块和CAN连接线。通过特定的硬件连接,两台DP-51PROC可以组成简单的CAN网络。驱动程序的关键部分是`PELIRTOS.c`,采用KEILC51编译器和SmallRTOS系统。" 在SJA1000 CAN驱动程序演示实验中,我们重点关注以下几个知识点: 1. **SJA1000 CAN控制器**: SJA1000是一款高性能的CAN(Controller Area Network)控制器,由Philips(现NXP)公司生产,广泛用于汽车电子、工业自动化等领域。它支持CAN 2.0A/B协议,提供灵活的配置选项和高可靠性。 2. **SmallRTOS操作系统**: SmallRTOS是一个实时操作系统,特别适合嵌入式系统,具有轻量级、可裁剪和易于移植的特点。在这个实验中,SJA1000的驱动程序是在SmallRTOS环境中编写的,这意味着驱动程序需要符合实时操作系统的调度和中断处理机制。 3. **CAN程序库SJA1000_PEI.LIB**: 这个库提供了与SJA1000控制器交互的函数接口,比如初始化、发送和接收CAN消息等。开发者通过调用这些函数来实现CAN通信功能。 4. **实验步骤**: 实验中涉及的硬件连接和配置,包括将CANPARK模块连接到实验仪,设置中断引脚,以及通过CAN连接线构建两个节点的网络。这些步骤确保了硬件层面的CAN通信准备就绪。 5. **中断方式响应SJA1000中断**: 为了实时处理CAN数据传输,驱动程序使用中断处理SJA1000的中断事件,这提高了系统的响应速度和效率。 6. **程序主要部分`:PELIRTOS.c`**: 这个文件包含了驱动程序的核心代码,使用了SmallRTOS系统和SJA1000的库函数。`#include`语句导入了必要的头文件,`sfr`和`sbit`定义了寄存器和位地址,便于访问和操作硬件。 7. **程序下载与运行**: 实验中提到的`CAN.hex`文件是编译后的程序,下载到DP-51PROC中执行,实现CAN节点的数据收发功能。用户可以根据需要修改输出文件路径。 通过这个实验,学习者可以掌握SJA1000 CAN控制器的驱动编写,了解在实时操作系统中的中断处理,以及实际的CAN网络组建方法,这对于理解和应用CAN总线技术至关重要。