AT90CAN128芯片CAN通信初始化及收发技术解析

版权申诉
0 下载量 75 浏览量 更新于2024-11-08 收藏 1KB ZIP 举报
资源摘要信息:"关于AT90CAN128芯片的CAN通信初始化及收发程序" AT90CAN128是一款由Atmel公司生产的高性能8位微控制器,具备先进的CAN (Controller Area Network) 控制器。该芯片主要用于需要可靠通信网络的嵌入式系统,如汽车、工业自动化、医疗设备等领域。本文档将详细介绍如何对AT90CAN128芯片进行CAN通信初始化以及如何实现数据的收发。 一、CAN通信基础 1. CAN协议简介 CAN是一种被广泛应用于汽车和工业环境中的多主机、面向消息的串行通信协议。它允许节点间在没有主机的情况下进行通信,并能够检测并自动重发错误帧,具有非常强的实时性和鲁棒性。 2. CAN控制器结构 AT90CAN128中的CAN控制器包含几个主要功能模块:CAN消息处理器、消息缓冲区、位定时器、错误处理逻辑、接收过滤器等。这些模块协同工作,确保了CAN网络中的数据可靠传输。 3. CAN帧结构 CAN数据帧由标识符、控制段、数据段和帧尾组成。标识符用于识别信息的优先级,数据段可包含0到8个字节的数据,而帧尾包含用于帧校验的循环冗余检查(CRC)码。 二、AT90CAN128 CAN初始化 1. 时钟配置 在进行CAN初始化前,需要配置微控制器的时钟系统。AT90CAN128支持多种时钟源,包括内部振荡器、外部晶振和外部时钟源,具体配置需根据实际需求进行。 2. CAN模块初始化 CAN模块初始化涉及设置波特率、验收过滤器、工作模式等。波特率的设置与CAN网络的速度要求相关,决定着数据传输的速率。验收过滤器用于确定哪些CAN帧可以被接收,工作模式的配置则决定了CAN模块是工作在正常模式、监听模式还是静默模式。 3. 中断配置 CAN通信可能需要处理各种事件,如数据接收、错误事件、唤醒事件等。因此,需要正确配置CAN模块的中断,确保在事件发生时能及时响应。 三、CAN收发程序实现 1. 数据发送 发送程序需要编写时首先需要将待发送的数据打包成CAN帧格式,然后将其写入到发送缓冲区中。同时,还需要配置发送请求,等待CAN总线空闲后发送数据帧。 2. 数据接收 接收程序通常涉及到接收缓冲区的读取。当CAN模块检测到符合过滤条件的帧并成功接收到帧后,需通过中断服务程序或轮询方式来读取接收到的数据。 3. 错误处理 在通信过程中可能会出现错误,如帧格式错误、仲裁丢失、应答错误等。因此,编写错误处理程序是确保通信可靠性的关键部分。错误处理通常涉及重试发送、记录错误事件、重新配置CAN模块等操作。 四、CAN相关的编程接口 在压缩包文件中,"can.h"文件是一个包含CAN通信初始化及收发程序所需的函数声明、宏定义和数据类型定义的头文件。通过这个头文件,开发者可以方便地进行CAN相关的编程。 总结:在深入理解CAN协议和AT90CAN128的硬件特性基础上,通过正确的初始化、配置以及收发程序的实现,可以有效地使用AT90CAN128芯片进行可靠的数据通信。本资源文档为开发者提供了关于如何操作AT90CAN128 CAN模块的详细指导,是进行此类开发工作的重要参考。