博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPI总线+CAN笔记
阅读量:4228 次
发布时间:2019-05-26

本文共 1105 字,大约阅读时间需要 3 分钟。

CAN总线(Controller Area Network)控制局域网,1Mbps速率,抗电磁干扰能力.

特点:
1,每个节点都可以做主.
2,帧带优先级,帧小,实时性好.
3,物理层和链路层设计独特,抗干扰性好,错误检测能力强.
4, 1Mbps
5,帧带CRC校验和其它校验,出错率低.
6,节点可自动断开总线,不影响总线.

S3c2410->MCP2510(CAN控制器)->PCA82C251(收发器)

SPI(Serial Peripheral Interface)同步串口,4线.

MISO:主收从发
MOSI:主发从收
SCK:同步
SS:低有效使能,发1对多,收多对1.
SPI的4种模式,     CPOL,CPHA: 0-0 上升沿 查询模式
MCP2510支持这4种模式.     0-1 下降沿 中断模式
       1-0 下降沿 DMA模式
        1-1 上升沿 保留
SPCON: 控制寄存器 0x59000000
SPSTA: 状态寄存器 0x59000004
SPPIN: 引脚寄存器 0x59000008
SPPRE: 波特率寄存器 0x5900000c
SPTDAT:发送数据寄存器 0x59000010
SPRDAT:接收数据寄存器 0x59000014
SPI程序流程:
设置波特率SPPRE -> 设置SPCON 模式polling查询 -> SPTDAT 10个FF 初始化MCP2510 -> SPPIN低选SS(MCP2510) -> REDY为1就写SPTDAT
-> TAGD 0 普通模式,SPTDAT FF,REDY,SPRDAT;TAGD 1只读;REDY;读数据,自动发送. -> SPPIN 1停止SS

PCA82C251驱动芯片

MCP2510 CAN控制器

CAN协议引擎:  控制寄存器(还有SPI,引脚来发送),发送缓冲区,状态寄存器进行侦错,和用户定义的滤波器匹配来决定是否接收.
  TXCAN,RXCAN
控制逻辑: 3个pin对应控制3个发送buffer.
  OSC1,OSC2,Vss,INT,RESET,Vdd
SPI接口: 标准SPI读写,一个专用多用途中断,各接收buffer中断,状态寄存器.
  SCL,SI,SO,CS
CAN协议
1,标准数据帧
SOF起始帧 仲裁字(11位识别,1位RTR远程发送请求,数据/请求) 控制字(IDE识别扩展,RB0零保留位,DLC数据长度码4bit) 数据字 
CRC(15bit) CRC定界位 确认字(2bit) 

2,扩展数据帧

3,报文发送
4,报文接收
5,位定时
6,中断
7,时钟震荡器
8,工作模式
9,SPI接口

 

转载地址:http://pucqi.baihongyu.com/

你可能感兴趣的文章
C++递归算法案例
查看>>
C++算法——异或运算解决出现次数问题
查看>>
C++数据结构——顺序栈(基本代码实现与案例)
查看>>
C++数据结构——链队列(基本代码实现与案例)
查看>>
C++数据结构——顺序表的查找(简单顺序查找、有序表的二分查找、索引顺序的查找)
查看>>
Hive 常用统计查询语句
查看>>
对象存储产生背景、发展历史、原理架构、优缺点、应用场景及开源项目对比
查看>>
Apache Ozone 分布式对象存储系统相关文档汇总
查看>>
Ozone 与 HDDS 的区别与联系
查看>>
maven失败测试用例rerun插件使用方法
查看>>
Python基础(三)
查看>>
Python入门NLP(二)
查看>>
四行Python代码,你也能从图片上识别文字!
查看>>
内网映射外网工具-ngrok
查看>>
Python带你朗读网页
查看>>
关于python,这些知识点你学会了吗?
查看>>
利用selenium爬取《西虹市首富影评》
查看>>
Python验证码识别
查看>>
机器学习、NLP和Python教程分享
查看>>
AWS Serverless培训分享
查看>>