(20) -通信系统之SPI

+荐课 提问/讨论 评论 收藏
  • 本课程为精品课,您可以登录eeworld继续观看:
  • (20) -通信系统之SPI
  • 登录
大家好 接下来我们进入第12章 C2000的通讯 本章介绍一些经常用到的日常的通讯方式 比如SPI SCI I2C USB CAN等等 本模块的目的并不是 通讯外设的设计器件 而是快速介绍 这些设备的特性和功能 了解了特性和功能后 可以根据需要从相关文档的各种资源 获取其他信息 本模块将介绍通讯模块的基本操作 基本的数字和工作原理 这跟我们学习的F28X7X系列的 我们支持多达3个的SPI通讯模块 4个SCI模块 两个MCBSP模块 两个I2C模块 一个USB模块 两个CAN通讯模块等等 由此看出 我们的通讯方式是丰富多样的 具体设计中选择哪种通讯方式的话 有一个基本的设计原则 就是高性价比 就是以最低成本 达到所需的数据 有两点 第一最低的成本 这是成本方面的要求 第二是所需的数据 速率 这是性能方面的要求 因此 高性价比的通讯方式是我们的首选 在这里 我们也知道 串口通信是一种性价比比较高的方式 有很多优点 我们进入串口通讯 可以在器件之间实现简单的效率较高的通讯 与GPIO口引脚类似 串行端口可以用在独立的端口 或者多个系统中 在多台设备上 如果两个设备都有可用的串行端口 对数据的速率要求较低 串行端口是一个廉价的选择 如果器件的物理地址相距较远 使用串行接口更适合 因为这种方式 接入的数据少 固有的特性 可用简化器件互联的成本的 串行端口需要实施的单独的线路不会对器件处理器的数据 和数据地址产生任何干扰 唯一的开销是接受和发送每个字的时候 需要对端口读写数据 这个过程可在中断服务程序里面 非常短的时间 几个周期来维持 所以对软件或者芯片资源的开销相对低 因此串口具有低成本 对系统的要求比较低这几个优点 串口通讯分为同步和异步通讯 接下来我们介绍两者的区别 同步和异步通讯的场合不同 同步是一些短载的短距离的通讯 比如在同一个PCB板子上的 异步通讯是一些长距离的通讯 比如两个板子之间 两个设备之间 距离是几十米 上百米等等 因此 同步通讯 它的特点是 我的通讯速率要求高 因为在同一个板子上 传一些实时的数据 它的速率要求高 缺点是有一个显性的时钟 需要时钟的控制 那么反过来 异步通讯对速率要求是比较低的 其实只有20PI 同步通讯的八分之一左右 但它的优点是不需要一个显性的时钟 时钟和数据信号不能杂合的 所以异步通讯适合于长距离的 性价比较高的通讯 我们接下来详细介绍SPI SPI模块是同步串行IO的端口 在28X和其他外设间移动长度和数据速率可变的串行数据流 数据传输之间 必须有一个SPI器件配置为主机 其他器件配置为从机 主机提供时钟信号 根据工作方式的不同 SPI用的器件 一般处在三个不同的通讯模式下 一个是主机发送 从机发送虚拟数据 第二个主机发送数据 一个从机发送数据 第三个是主机发送虚拟数据 一个从机发送数据 最简单的情况是可加SPI通讯 是一个可编程的移位寄存器 数据通过SPI data 也就是SPI的发送寄存器 移入和移出 数据 发送的数据直接写入SPI 数据寄存器 接受到的数据存入我们的接收缓存器 SPIbuffer里面 提供给CPU读取 这样可以实现双缓冲的接受过程 在此期间 CPU无需从SPI Buffer里面读取已经读取到的数据 即可开始新操作 但是在新操作完成前 SPI必须将数据从SPI buffer里面读取出来 为什么 因为在接收过程中 在完毕以后 我的数据会从SPI数据里面 拷贝到我的buffer 我的缓存器里面 因此 它接受完之前 必须把它从我的缓存器里面 拷贝出来 要不然有数据溢出的错误 还要注意 我们的SPI不支持双缓存发射的 必须先完成当前发射 然后再进入下一个数据写入 否则会破坏当前发射的过程 由于主机控制SPI的实现 因此主机可随时发出数据的传输 接下来我们看看SPI模块的框图 从中看出 我们的SPI主要的寄存器是SPI数据 针对主机来说 它的数据是从高位移出来 我接受数据是从低位移入的 因此我们总结一下 SPI接受和发送的区别是 首先是从机将发送数据写入自己的移位寄存器 然后将主机将要发送的数据 写入主机自己的移位寄存器 完成两个数据的装载后 主机启动发送 启动SPI clock时钟信号 来启动数据发送 启动后 主机将要发送到数据 一位一位的移出 从机发送的数据 一位一位移入 整个过程重复直到我的数据发送完成后 进入我们的接受 接受数据从SPI数据里面拷贝到我的 buffer里面 索存 这些接触的数据 整个过程完成 我的SPI的中断响应位将复位 如果它允许被使能的话 就触发中断 进入SPI的接受或发送中断 这个过程是比较简单的 启动时钟之后 数据从高位移出 接受数据从低位移入 等发送完成后 我进入中断 然后下一个数据发送 重复这个过程 接下来我们看看SPI数据的数据格式 刚才也提到了 SPI的通讯 它的数据位数 和我的数据都是可编程的 因此对数据对齐有要求 针对发送端来说 由于从高位移出 针对发送数据来说 必须左对齐 也就是数据往左移 针对我接受来说 我从低位开始的 所以接受数据是右对齐 针对不用的位的话 我必须在用户程序中屏蔽掉 接下来 我们总结一下 SPI通讯的 一些要点 SPI是一个同步的串口通讯 工作方式有两种 一个是两线 一个是三线的通讯方式 针对两线制的通讯方式 它的优点是硬件的线数少 只能工作在half duplex 三线制的 速率要求高 是边收边发的 是双功能的通讯方式 我们可以通过软件来配置 主机和从机 非常简单 只需要我的寄存器 设置成主机从机模式就好了 我们要注意 在整个SPI通讯网络中 只有一个主机 其他的都是作为从机 主机提供通讯的时机 和时序 然后我们的数据位是可以变化的 是可以编程设置的 那么针对F2837X或者F28X7X的话 我们的SPI有一些增强的功能 比如我们支持16位的 多缓存 还支持延迟的发送 我可以设定我的发送是上升沿 下降沿 延迟90度 半个相位等等 还有我们的SPI 是支持DMA模式的 无线访问的 DMA支持的话 有非常好的一点是 我在数据的发送和接收时 不需要CPU直接的参与 我直接从DMA从我要发送的数据的寄存器中 或者RAM中 把数据拷贝过来 放在我的SPI的发送寄存器里面 然后将接受数据通过DMA 移到我的目标RAM中 或者我的flash中 这个过程无需CPU参与 减少对CPU开支的需求 好 这块是我们的SPI 接下来我们讲SCI 串行通讯接口
课程介绍 共计28课时,4小时27分22秒

C2837x入门指南

TI C2000 MCU PWM F2837xD ADC DAC DMA CLA C2837x CMP SDFM CAP QEP c28x

F2837x系列的最新 C2000™ Delfino™ 32 位 F2837xD 微控制器 (MCU),为工业实时控制实现最新创新,并设定了全新性能标准。这些最新 MCU 支持双核 C28x 处理功能与双实时控制加速器(也称为控制律加速器或 CLA),可提供 800 MIPS 浮点性能,从而可帮助设计人员为计算要求严格的控制应用开发低时延系统。此外,设计人员还可通过将多个嵌入式处理器整合在单个 MCU 中以降低复杂性,充分满足高级伺服驱动器、太阳能中央逆变器以及工业不间断电源 (UPS) 等需要实时信号分析的应用需求。

推荐帖子

CC2640问题疑惑
问:CC2640是否支持蓝牙版本4.2或Mesh Networks 具有BLE-Stack v2.2.1的CC2640/CC2650/CC1350和具有BLE-Stack v3.0.1的CC2640R2F支持蓝牙核心规范版本4.2,包括所有新的LE功能(LE安全连接、LE数据长度扩展、LE Privacy 1.2)。此外,还支持所有蓝牙版本4.1核心规范LE功能,包括用于多达8个设...
Jacktang 无线连接
【TI原创】LM3S以太网远程升级带加密解决方案
第一步:程序发布 第二步:下载升级 第三步,程序内部的加密算法,我是将设备的MAC地址加一个随机数通过MD5算法加自己写的一个算法加密生成一个注册码,将注册码烧写进FLASH中,每次程序启动来检测这个注册码是否正确决定程序是否执行,因为MAC地址是唯一的,别人如果要读取你的程序只能用同一个MAC地址,但是我还有随机码,相当于别人读我一个设备的程序只有256分之一可能烧写出一个正确运行的...
fengzhang2002 微控制器 MCU
EMIF接口的DSP控制系统设计
1 引言   随着信息技术的发展,数字信号处理技术成为数字化社会最重要的技术之一。由于数字信号处理器(DSP)速度快,稳定性高,功耗小,近些年来在通信、图像处理、自动控制等领域中得到了广泛的应用。其中,美国德州仪器公司(TI)的TMS320 系列DSP 占据了世界DSP 市场的主要份额,TI 也因此成为了世界上最大的DSP 制造商。本系统采用了TMS320C6722 浮点型DSP芯片。   E...
Jacktang 微控制器 MCU
F28069如何下手去学习?
我是一名研究生,目前在一家公司实习,主要是对PMSM进行控制,公司里面所用的DSP控制芯片是DSP TMS320F28069.我想请问下我作为新手该怎么去学习DSP? ...
liulin 微控制器 MCU

luck_gfb

电机驱动的软件还是很复杂的。也就是说 你用我们的技术 你不需要做很多的操作调整 重新标定啊等等这些工作 只需要将我们的板子连接到电机 在10分钟内 可以让我们的电机转起来 而且这是无传感的技术 InstaSPIN TM motion是有传感的 会带给编码器的 我们会将速度网和[听不清]结合成一个环路 用IDC控制起来做 它的性能比较高端 而且只需要调整一个参数就可以了。

2020年09月02日 17:07:38

hawkier

哈哈哈,学完这章要点时间啊

2019年11月21日 16:12:10

大明58

学习C2837x入门指南

2019年08月22日 12:32:36

zhangleiat185

好好学习天天向上。。

2019年07月12日 16:34:47

hellokt43

好好学习天天向上。。

2019年06月09日 11:05:30

dingxilindy

学习C2000开发所需软件工具

2019年05月16日 14:51:31

zx1988ZX

终于看完了,不错的!

2019年04月25日 06:53:06

wudianjun2001

不错的视频资料。。。。。。

2019年03月04日 10:15:26

59477cq

学习了

2019年01月21日 20:28:50

凤凰息梧桐

学习一下

2019年01月21日 17:28:12

分享到X
微博
QQ
QQ空间
微信

EEWorld订阅号

EEWorld服务号

汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved