当前位置:文档之家› CAN总线接口通讯实验

CAN总线接口通讯实验


通讯函数
➢ S3C2410X 带有高速SPI 接口,可以直接 和MCP2510 通讯。通过如下两个函数:
➢ SPISend ()//向同步串口发送数据(spi.c) ➢ SPIRecv ()//从同步串口读取数据(spi.c)
MCP2510 的初始化
➢ MCP2510 的初始化如下步骤: ➢ 1、软件复位,进入配置模式 ➢ 2、设置CAN 总线波特率 ➢ 3、关闭中断 ➢ 4、设置ID 过滤器 ➢ 5、切换MCP2510 到正常状态(Normal) ➢ 6、清空接受和发送缓冲区 ➢ 7、开启接收缓冲区,开启中断(可选)
MCP2510
➢ 通过定义如下宏实现MCP2510 的片选: ➢ #define MCP2510_Enable()
GPHDAT=GPHDAT&0x7fe ➢ #define MCP2510_Disable()
GPHDAT=GPHDAT|0x01 ➢ 上述的两个宏定义就是对GPH0 端口的置1
和清0 操作。
来判断是否接收到(或者发送出)数据。
MCP2510控制字
程序框图
实验步骤
➢ 1.新建工程,将“Exp7 CAN 总线通讯实验”中 的文件添加到工程。
➢ 2.编写MCP2510 驱动函数(MCP2510.c),包 括:CAN 初始化(init_MCP2510)、发送数据 (canWrite)、接收数据(canRead)、查询数 据(canPoll)。
➢ 3.在主函数中实现将从串口0 接收到的数据发送 到CAN 总线,将从CAN 接收到的数据,发送到 串口0(Main.c)
CAN总线接口通讯实验
CAN 总线控制器MCP2510
➢ ◆ 支持标准格式和扩展格式的CAN 数据帧结构 ➢ ◆ 0-8 字节的有效数据长度,支持远程帧 ➢ ◆ 最大1Mbps 的可编程波特率 ➢ ◆ 两个支持过滤器(Fliter、Mask)的接收缓冲
区,三个发送缓冲区 ➢ ◆ 支持回环(Loop Back)模式 ➢ ◆ SPI 高速串行总线,最大5MHz(4.5V 供电) ➢ ◆ 3V 到CP2510 中有3 个发送缓冲区,可以循环使用。也可以 只使用一个发送缓冲区,但是,
➢ 必须保证在发送的时候,前一次的数据已经发送结束。 ➢ MCP2510 中有2 个接收缓冲区,可以循环使用。 ➢ 数据的发送和接收均可使用查询或者中断模式,这里,为
编程简单,收发数据都采用查 ➢ 询模式。通过状态读取命令(Read Status Instruction)
相关主题