LPC2131嵌入式系统μCOS-II下的CAN通信实现

需积分: 0 0 下载量 138 浏览量 更新于2024-08-31 收藏 139KB PDF 举报
"基于LPC2131嵌入式系统μCOS-II实现CAN通信,设计了通用CAN接口模块,通过外扩CAN控制器SJA1000实现通信。LPC2131是一款32位RISC微控制器,具有丰富的片上资源,但无内置CAN控制器。硬件电路设计中,LPC2131的3.3V TTL电平与SJA1000的5V TTL电平兼容,两者可以直接连接。" 在嵌入式系统领域,CAN(Controller Area Network)总线因其高可靠性、实时性和抗干扰能力,被广泛应用于汽车电子、工业自动化等多个领域。LPC2131是一款基于ARM7TDMI-S内核的微控制器,由Philips(现NXP Semiconductors)生产,具备32KB Flash和8KB RAM,以及多个串行接口和定时器等丰富的外设。然而,该处理器并未集成CAN控制器,因此在需要CAN通信的场合,必须通过外部扩展来实现。 在硬件设计部分,文章提到采用SJA1000作为独立CAN控制器。SJA1000是一款经典的CAN控制器,能够处理CAN协议的物理层和数据链路层,与LPC2131的IO引脚兼容,无需额外电平转换。连接时,LPC2131的P0.8到P0.15引脚与SJA1000的AD0到AD7对应连接,实现数据传输。 软件设计上,文章提到了μCOS-II,这是一个流行的嵌入式实时操作系统(RTOS)。通过μCOS-II,开发者可以创建多任务环境,管理系统的并发性和实时响应。在μCOS-II中实现CAN通信,通常需要编写设备驱动程序,将SJA1000的硬件操作抽象成操作系统可调用的函数,然后在应用程序中通过这些函数发送和接收CAN消息。 为了确保CAN总线的可靠性,除了硬件层面的兼容性设计,还需要考虑以下几点: 1. 电气特性:确保线路符合CAN总线标准,如差分电压、终端电阻等。 2. 物理隔离:在必要时使用隔离器件,防止电气噪声干扰或设备损坏。 3. 错误检测与处理:SJA1000支持错误帧检测和错误标志,需在软件中处理这些异常情况。 4. 位仲裁与错误控制:在多节点网络中,需要正确处理位仲裁,确保数据传输的顺序和准确性。 通过这样的设计,即使LPC2131没有内置CAN控制器,也能通过外扩实现CAN通信,并在μCOS-II的调度下保证通信的实时性和可靠性。实际验证表明,这种方案在不改变原有硬件结构的前提下,有效地满足了嵌入式系统中对CAN通信的需求。