AT90CAN128芯片CAN通信初始化及收发技术解析
版权申诉
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模块的详细指导,是进行此类开发工作的重要参考。
2020-01-23 上传
2022-09-24 上传
2021-09-30 上传
2022-09-24 上传
2021-04-14 上传
2021-05-02 上传
2008-09-02 上传
231 浏览量
2017-12-28 上传
心若悬河
- 粉丝: 60
- 资源: 3952
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍