- 4
- 0
- 约8.86千字
- 约 54页
- 2017-11-26 发布于湖北
- 举报
第7章 第2部分 CAN总线
第七章之第4节CAN总线 原理及实验 主要内容: 了解SPI总线的原理,掌握通过SPI总线访问器件的方法 掌握CAN总线通讯原理 学习CAN总线控制器MCP2510驱动的开发 实验部分内容 1、添加CAN总线驱动的write操作,实现CAN数据自回环模式的收发。 2、修改应用程序,实现两台CAN总线之间数据的收发。 SPI ( Serial Peripheral Interface) SPI总线概述 SPI 总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于CPU与各种外围器件进行全双工、同步串行通讯。 SPI主要特点有: 可以同时发出和接收串行数据; 可以当作主机或从机工作; 提供频率可编程时钟; 发送结束中断标志; 写冲突保护; 总线竞争保护等。 SPI ( Serial Peripheral Interface) SPI的四种传输数据的四种模式: 根据时钟的极性和相位的不同工作于四种模式 CPOL: 时钟极性, 表示 SPI 在空闲时, 时钟信号是高电平还是低电平。 若 CPOL 被设为 1, 那么该设备在空闲时 SCK 管脚下的时钟信号为高电平. 当 CPOL 被设为 0 时则正好相反。 CPHA: 时钟相位, 表示 SPI 设备是在 SCK 管脚上的时钟信号变为上升沿时触发数据采样, 还是在时钟信号变为下降沿时触发数据采样。 若 CPHA 被设置为 1, 则 SPI 设备在时钟信号变为下降沿时触发数据采样, 在上升沿时发送数据。 当 CPHA 被设为 0 时也正好相反。 SPI ( Serial Peripheral Interface) SPI工作模式 查询模式 中断模式 DMA模式 SPI ( Serial Peripheral Interface) S3C2410x 的SPI模块 SPI相关的寄存器功能介绍; SPCON0 --SMOD//选择SPI的工作模式:查询、中断、DMA --ENSCK//输出CLK使能控制位 --MSTR//主从方式选择 --CPOL//时钟极性选择 --CPHA//相位选择 --TAGD//(?) SPSTA0 --DCOL//数据冲突检测 --MULF//多主模式检测 --REDY//发送或接受准备就绪标志位,SPTDATn可以读写标志位 SPPIN0//SPI管脚控制寄存器 SPPRE0//SPI传输速率控制寄存器 SPTDAT0//从模式下发送数据寄存器 主模式下反 SPRDAT0//从模式下接受数据寄存器 .. SPI ( Serial Peripheral Interface) 设置SPI接口参考以下步骤: 1、设置SPI的波特率(对应的波特率控制寄存器SPPREn) 2、设置SPI控制寄存器(SPCONn),配置SPI的工作模式 3、如果要初始化MMC或者SD CARD,则要写入数据OxFF到寄存器SPIDATn十次 4、启动MMC或者SD CARD,要设置nSS对应的GPIO为低电平 5、发送数据时,首先检测REDY是否为1,然后在写数据到SPTDATn 6、读数据方式一:SPCONn的控制位TAGD = 0//normal mode时,先写数据0xFF到寄存器SPTDATn, 然后再检测传输就标志位REDY是否为1,在读取数据到本地缓存; 7、读数据方式二:SPCONn的控制位TAGD = 1//Tx Auto Garbage Data mode时 检测传输就标志位REDY是否为1,在读取数据到本地缓存 8、设置nSS对应的GPIO为高电平,关闭MMC或者SD CARD; SPI ( Serial Peripheral Interface) SPI读写数据的检测 当写入数据时:REDY时钟是零,写入完成之后赋值为1 例: SPTDAT0 = val; //写数据到发送数据寄存器 while (!(SPSTA0 1)); //等待发送全部完成 SPI ( Serial Peripheral Interface) SPI初始化 初始化SPI连接外部设备的端口 //初始化与SPI相关的三个GPIO //PIMISO SPIMOSI SPICLK set_gpio_ctrl (GPIO_TC_SPIMISO); set_gpio_ctrl (GPIO_TC_SPIMOSI); set_gpio_ctrl (GPIO_TC_SPICLK); 注:关于GPIO的设置在后面详细介绍 SPI ( Seria
原创力文档

文档评论(0)