- 本课程为精品课,您可以登录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