C2837x入门指南(二十二)—通信系统之McBSP
Loading the player...
将在30s后自动为您播放下一课程
我们接下来再来看 多通道缓冲串行端口 McBSP 模块 McBSP 是我们 TI 公司生产的一些 录制处理芯片,比如像C2000的 2812 像C 5000,C 6000 系列那些芯片所具备的一个多通道的缓冲串行性方式 那么 McBSP 是在标准 串口接口的基础上进行 一个功能方面的这个扩展, 因此,它具有与标准 串行接口相同的一些基本 功能,比如像全双工通讯啊 数据的发送接收等, 缓冲器啊恢复啊等等 这些功能都具有之外,它其实 还具有一些自己的一些特殊功能 比如首先,它可以与IOM-2、 SPI、AC97等兼容的设备 进行直接的一个连接, 然后,其实它也支持多通道的 发送和接收,每个串行口 都最多支持 128 个通道 串行字的长度是可以被选择的,包括8位12位16位24位32位等等这些 同时,它也支持μ-律和 A-率的 一个数据的压缩和扩展等等 那也就是说我们的McBSP 是 其实它是一个串口,但只是说 它是一个功能比较丰富的 一个串口,那我们来看一下McBSP 模块基本的一个框架, 那么首先,我们看到的pin脚 它pin脚的话,就是McBSP 它包含的是两个部分 一个是数据流的端口, 还有一个是控制流的端口 那么数据流是包含的主要就是 说MDX 发送端口和一个 MDR的 接收的端口,也就是说,所有的 数据都是通过这两个功能性 端口串行地输出的, 所以因此,它也叫一个串口 那么还有除了数据口之外还有 一些控制口,控制口包括主要是 接收和发送的时钟信号 还有接收和发送的帧同步信号 它就是它跟我们传统的一些 比如说SPR帧的可能不一样 就是说它的接受和发送都有拥有自己独立的一个时钟信号和帧的同步信号 那么就是说 McBSP 的话,确切 跟外部互联的话只能是 通过这六个pin脚的一个接线, 我们再看它内部的一个架构 那么内部按照这款图中的看的话, 它主要分为两部分 上部分是发送的一些寄存器组, 下部分是记录数的寄存器组 那么发送的话,它采用的是 一个两极的一个缓冲的一个发送 它就说它里面,每一个分别 包含了自己的一个buffer,一个缓冲区 那么假如说发送的数据是小于16位的那只需要用到 DXR1这个buffer 和 XSR1 这个一位的这个就是 这些只需要用的这组 假如说是用的多于16位的话, 那会把低位放在第一组里面 高位放在第二组里面, 用两个组配合起来使用 那么 XSR1的话, 做出来就是它的一个位数 就是通过这个寄存组然后要 创建了一串芯片,那么同样的话 我们看接收的话。它是采用的这个三级的一个缓冲,它中间的话 还需要加这个DRR2,这是 一个数据接收的寄存器 它数据同样的话,也是通过MDR, 这个pin脚一路进来,假如说16位的话 或之下的话,那它用了第一组的 寄存器,它假如说高于16的话呢 需要2组来配合,它假如数据已 满移到尤其是寄存器满了之后 自动会移到我们的buffer里面, 然后buffer里面的话它会拷到 我们的DRR寄存器里面, 工作靠主 cpu 数据履行ready 然后等待 cpu 或者TMA总线将数据 拷走 那么数据流率的压缩和扩展的话 主要是在发送的时候 主要是过程是在TX buffer 就是说 数据从缓冲区拷贝到有 寄存器的地方,这个过程中会压缩 那么,这个解码的话,或转换的话 出来也是移位寄存器 往buffer拷的时候,这个过程中 确定一个扩展,那我们接下来再看 几个基本的概念,首先看到的 是字和位的一个概念 那么位是,我们串行 发送出去的时候一个最小的单位 它对这是一个clock所对应的 一个数据的一个高低电频的一个状态 这么字的话 是指我整个一个字里面就是做这么多个clock的系统里面 包含几个位,那么就是在我们的McBSP里面,它的字的所包含的位数 是可选择的 刚说的 它说它主要传统的有8位选为16位20位24位和32位 这些选择方式,那么我们从上面这个框图的时钟图里面可以看到 当我有 fx 这个帧的同步信号 过来的时候那我可以去 这些数据的一些传输 那么传输的多少位数的话 这个根据刚刚说的这个寄存器来配置 那就是说一个字里面包含的长度是 丰富的是可以编程设置的,那么根据我们 用户程序的接口的器件 不同 可以就是说去分别去 定义每一个字的长度 然后是讲的是一个字和帧的概念, 那么好几个字组合在一起就是一个帧 那么一帧数据是同样使用 FX 生成同步信号作为起始信号开始传递一个帧 那么同样的话一个帧的里面包含 几个字 是同样可以通过程序的设置 它的帧的长度来完成这 一个帧一个帧的数字的一个定义 长度的定义,那么, 最长的话,可以定义到 128 位 从上面来的,我们可以基本概念, 可以看出就是说 我们McBSP里面,它的数据的发送的 格式才是支持多种格式 多种数据结构的,因为它的 那个字的长度是可编程设置 然后每个字里面的 数据的位数也可以能编程设置 那我们在最后看一下我们的 多通道的意思,多通道这个通道的话 其实是跟前面是跟字是一个概念 就是说我对应这个时刻就是说时分 复用和对应这一个时刻所传载我们 输入输出关键上一度的串行输入 每个一个字一个字, 一个字就是一个通道 是一个 时分传输的一个概念。 那么通道,它主要是 指输入输出的一个位流,字的位流, 那么,我们C2000的芯片 它最多支持的是 128 个 输入的通道和 128 个输出的通道 那么因为我们的McBSP 可以外面 可以兼容多种的通讯的接口 可以用来支持多种的 一个窗口的一个设备,因此的话 它需要我们通道在选择的时候, 需要能够单独的独立的去控制 每一个通道的接受和发送, 例如比如像我们这个历程中 它功能控制的是使用的CH0,CH5,CH27三个通道,也就是这三个通道 能够进行接收数据。这样的 接收数据的时候才能产生 相应的中断等等。那么通道的 那个多通道在一个选择模式主要是 通过几个寄存器来控制的,比如说 MCR和能多通道的控制机之间 还有像我们括号中的 x 的 dfs 每一个 通道矢量端口,那么,我们McBSP 它其实主要这个模块主要的 特点是它的数据长度是可变的 它的时钟信号是自己的 完成就是要接受和发送 数据的发送和接收 主要是以帧的同步信号为准 而且它同时也支持没有 [听不清]的一个数据的一个扩展 我们从第一幅图中可以看到它的生产数据发生了是时钟信号这些都是独立开的 因此,我们可以完全把它 配置成SPI口工作模式 那么,所有的这些数据的发送接收 都可以通过DMA的方式操作 这样的话能够 有效地减低 cpu 的一个负担
我们接下来再来看 多通道缓冲串行端口 McBSP 模块 McBSP 是我们 TI 公司生产的一些 录制处理芯片,比如像C2000的 2812 像C 5000,C 6000 系列那些芯片所具备的一个多通道的缓冲串行性方式 那么 McBSP 是在标准 串口接口的基础上进行 一个功能方面的这个扩展, 因此,它具有与标准 串行接口相同的一些基本 功能,比如像全双工通讯啊 数据的发送接收等, 缓冲器啊恢复啊等等 这些功能都具有之外,它其实 还具有一些自己的一些特殊功能 比如首先,它可以与IOM-2、 SPI、AC97等兼容的设备 进行直接的一个连接, 然后,其实它也支持多通道的 发送和接收,每个串行口 都最多支持 128 个通道 串行字的长度是可以被选择的,包括8位12位16位24位32位等等这些 同时,它也支持μ-律和 A-率的 一个数据的压缩和扩展等等 那也就是说我们的McBSP 是 其实它是一个串口,但只是说 它是一个功能比较丰富的 一个串口,那我们来看一下McBSP 模块基本的一个框架, 那么首先,我们看到的pin脚 它pin脚的话,就是McBSP 它包含的是两个部分 一个是数据流的端口, 还有一个是控制流的端口 那么数据流是包含的主要就是 说MDX 发送端口和一个 MDR的 接收的端口,也就是说,所有的 数据都是通过这两个功能性 端口串行地输出的, 所以因此,它也叫一个串口 那么还有除了数据口之外还有 一些控制口,控制口包括主要是 接收和发送的时钟信号 还有接收和发送的帧同步信号 它就是它跟我们传统的一些 比如说SPR帧的可能不一样 就是说它的接受和发送都有拥有自己独立的一个时钟信号和帧的同步信号 那么就是说 McBSP 的话,确切 跟外部互联的话只能是 通过这六个pin脚的一个接线, 我们再看它内部的一个架构 那么内部按照这款图中的看的话, 它主要分为两部分 上部分是发送的一些寄存器组, 下部分是记录数的寄存器组 那么发送的话,它采用的是 一个两极的一个缓冲的一个发送 它就说它里面,每一个分别 包含了自己的一个buffer,一个缓冲区 那么假如说发送的数据是小于16位的那只需要用到 DXR1这个buffer 和 XSR1 这个一位的这个就是 这些只需要用的这组 假如说是用的多于16位的话, 那会把低位放在第一组里面 高位放在第二组里面, 用两个组配合起来使用 那么 XSR1的话, 做出来就是它的一个位数 就是通过这个寄存组然后要 创建了一串芯片,那么同样的话 我们看接收的话。它是采用的这个三级的一个缓冲,它中间的话 还需要加这个DRR2,这是 一个数据接收的寄存器 它数据同样的话,也是通过MDR, 这个pin脚一路进来,假如说16位的话 或之下的话,那它用了第一组的 寄存器,它假如说高于16的话呢 需要2组来配合,它假如数据已 满移到尤其是寄存器满了之后 自动会移到我们的buffer里面, 然后buffer里面的话它会拷到 我们的DRR寄存器里面, 工作靠主 cpu 数据履行ready 然后等待 cpu 或者TMA总线将数据 拷走 那么数据流率的压缩和扩展的话 主要是在发送的时候 主要是过程是在TX buffer 就是说 数据从缓冲区拷贝到有 寄存器的地方,这个过程中会压缩 那么,这个解码的话,或转换的话 出来也是移位寄存器 往buffer拷的时候,这个过程中 确定一个扩展,那我们接下来再看 几个基本的概念,首先看到的 是字和位的一个概念 那么位是,我们串行 发送出去的时候一个最小的单位 它对这是一个clock所对应的 一个数据的一个高低电频的一个状态 这么字的话 是指我整个一个字里面就是做这么多个clock的系统里面 包含几个位,那么就是在我们的McBSP里面,它的字的所包含的位数 是可选择的 刚说的 它说它主要传统的有8位选为16位20位24位和32位 这些选择方式,那么我们从上面这个框图的时钟图里面可以看到 当我有 fx 这个帧的同步信号 过来的时候那我可以去 这些数据的一些传输 那么传输的多少位数的话 这个根据刚刚说的这个寄存器来配置 那就是说一个字里面包含的长度是 丰富的是可以编程设置的,那么根据我们 用户程序的接口的器件 不同 可以就是说去分别去 定义每一个字的长度 然后是讲的是一个字和帧的概念, 那么好几个字组合在一起就是一个帧 那么一帧数据是同样使用 FX 生成同步信号作为起始信号开始传递一个帧 那么同样的话一个帧的里面包含 几个字 是同样可以通过程序的设置 它的帧的长度来完成这 一个帧一个帧的数字的一个定义 长度的定义,那么, 最长的话,可以定义到 128 位 从上面来的,我们可以基本概念, 可以看出就是说 我们McBSP里面,它的数据的发送的 格式才是支持多种格式 多种数据结构的,因为它的 那个字的长度是可编程设置 然后每个字里面的 数据的位数也可以能编程设置 那我们在最后看一下我们的 多通道的意思,多通道这个通道的话 其实是跟前面是跟字是一个概念 就是说我对应这个时刻就是说时分 复用和对应这一个时刻所传载我们 输入输出关键上一度的串行输入 每个一个字一个字, 一个字就是一个通道 是一个 时分传输的一个概念。 那么通道,它主要是 指输入输出的一个位流,字的位流, 那么,我们C2000的芯片 它最多支持的是 128 个 输入的通道和 128 个输出的通道 那么因为我们的McBSP 可以外面 可以兼容多种的通讯的接口 可以用来支持多种的 一个窗口的一个设备,因此的话 它需要我们通道在选择的时候, 需要能够单独的独立的去控制 每一个通道的接受和发送, 例如比如像我们这个历程中 它功能控制的是使用的CH0,CH5,CH27三个通道,也就是这三个通道 能够进行接收数据。这样的 接收数据的时候才能产生 相应的中断等等。那么通道的 那个多通道在一个选择模式主要是 通过几个寄存器来控制的,比如说 MCR和能多通道的控制机之间 还有像我们括号中的 x 的 dfs 每一个 通道矢量端口,那么,我们McBSP 它其实主要这个模块主要的 特点是它的数据长度是可变的 它的时钟信号是自己的 完成就是要接受和发送 数据的发送和接收 主要是以帧的同步信号为准 而且它同时也支持没有 [听不清]的一个数据的一个扩展 我们从第一幅图中可以看到它的生产数据发生了是时钟信号这些都是独立开的 因此,我们可以完全把它 配置成SPI口工作模式 那么,所有的这些数据的发送接收 都可以通过DMA的方式操作 这样的话能够 有效地减低 cpu 的一个负担
我们接下来再来看 多通道缓冲串行端口 McBSP 模块
McBSP 是我们 TI 公司生产的一些 录制处理芯片,比如像C2000的 2812
像C 5000,C 6000 系列那些芯片所具备的一个多通道的缓冲串行性方式
那么 McBSP 是在标准 串口接口的基础上进行
一个功能方面的这个扩展, 因此,它具有与标准
串行接口相同的一些基本 功能,比如像全双工通讯啊
数据的发送接收等, 缓冲器啊恢复啊等等
这些功能都具有之外,它其实 还具有一些自己的一些特殊功能
比如首先,它可以与IOM-2、 SPI、AC97等兼容的设备
进行直接的一个连接, 然后,其实它也支持多通道的
发送和接收,每个串行口 都最多支持 128 个通道
串行字的长度是可以被选择的,包括8位12位16位24位32位等等这些
同时,它也支持μ-律和 A-率的 一个数据的压缩和扩展等等
那也就是说我们的McBSP 是 其实它是一个串口,但只是说
它是一个功能比较丰富的 一个串口,那我们来看一下McBSP
模块基本的一个框架, 那么首先,我们看到的pin脚
它pin脚的话,就是McBSP 它包含的是两个部分
一个是数据流的端口, 还有一个是控制流的端口
那么数据流是包含的主要就是 说MDX 发送端口和一个 MDR的
接收的端口,也就是说,所有的 数据都是通过这两个功能性
端口串行地输出的, 所以因此,它也叫一个串口
那么还有除了数据口之外还有 一些控制口,控制口包括主要是
接收和发送的时钟信号 还有接收和发送的帧同步信号
它就是它跟我们传统的一些 比如说SPR帧的可能不一样
就是说它的接受和发送都有拥有自己独立的一个时钟信号和帧的同步信号
那么就是说 McBSP 的话,确切 跟外部互联的话只能是
通过这六个pin脚的一个接线, 我们再看它内部的一个架构
那么内部按照这款图中的看的话, 它主要分为两部分
上部分是发送的一些寄存器组, 下部分是记录数的寄存器组
那么发送的话,它采用的是 一个两极的一个缓冲的一个发送
它就说它里面,每一个分别 包含了自己的一个buffer,一个缓冲区
那么假如说发送的数据是小于16位的那只需要用到 DXR1这个buffer
和 XSR1 这个一位的这个就是 这些只需要用的这组
假如说是用的多于16位的话, 那会把低位放在第一组里面
高位放在第二组里面, 用两个组配合起来使用
那么 XSR1的话, 做出来就是它的一个位数
就是通过这个寄存组然后要 创建了一串芯片,那么同样的话
我们看接收的话。它是采用的这个三级的一个缓冲,它中间的话
还需要加这个DRR2,这是 一个数据接收的寄存器
它数据同样的话,也是通过MDR, 这个pin脚一路进来,假如说16位的话
或之下的话,那它用了第一组的 寄存器,它假如说高于16的话呢
需要2组来配合,它假如数据已 满移到尤其是寄存器满了之后
自动会移到我们的buffer里面, 然后buffer里面的话它会拷到
我们的DRR寄存器里面, 工作靠主 cpu 数据履行ready
然后等待 cpu 或者TMA总线将数据 拷走 那么数据流率的压缩和扩展的话
主要是在发送的时候 主要是过程是在TX buffer 就是说
数据从缓冲区拷贝到有 寄存器的地方,这个过程中会压缩
那么,这个解码的话,或转换的话 出来也是移位寄存器
往buffer拷的时候,这个过程中 确定一个扩展,那我们接下来再看
几个基本的概念,首先看到的 是字和位的一个概念
那么位是,我们串行 发送出去的时候一个最小的单位
它对这是一个clock所对应的 一个数据的一个高低电频的一个状态
这么字的话 是指我整个一个字里面就是做这么多个clock的系统里面
包含几个位,那么就是在我们的McBSP里面,它的字的所包含的位数
是可选择的 刚说的 它说它主要传统的有8位选为16位20位24位和32位
这些选择方式,那么我们从上面这个框图的时钟图里面可以看到
当我有 fx 这个帧的同步信号 过来的时候那我可以去
这些数据的一些传输 那么传输的多少位数的话
这个根据刚刚说的这个寄存器来配置 那就是说一个字里面包含的长度是
丰富的是可以编程设置的,那么根据我们 用户程序的接口的器件
不同 可以就是说去分别去 定义每一个字的长度
然后是讲的是一个字和帧的概念, 那么好几个字组合在一起就是一个帧
那么一帧数据是同样使用 FX 生成同步信号作为起始信号开始传递一个帧
那么同样的话一个帧的里面包含 几个字 是同样可以通过程序的设置
它的帧的长度来完成这 一个帧一个帧的数字的一个定义
长度的定义,那么, 最长的话,可以定义到 128 位
从上面来的,我们可以基本概念, 可以看出就是说
我们McBSP里面,它的数据的发送的 格式才是支持多种格式
多种数据结构的,因为它的 那个字的长度是可编程设置
然后每个字里面的 数据的位数也可以能编程设置
那我们在最后看一下我们的 多通道的意思,多通道这个通道的话
其实是跟前面是跟字是一个概念 就是说我对应这个时刻就是说时分
复用和对应这一个时刻所传载我们 输入输出关键上一度的串行输入
每个一个字一个字, 一个字就是一个通道
是一个 时分传输的一个概念。 那么通道,它主要是
指输入输出的一个位流,字的位流, 那么,我们C2000的芯片
它最多支持的是 128 个 输入的通道和 128 个输出的通道
那么因为我们的McBSP 可以外面 可以兼容多种的通讯的接口
可以用来支持多种的 一个窗口的一个设备,因此的话
它需要我们通道在选择的时候, 需要能够单独的独立的去控制
每一个通道的接受和发送, 例如比如像我们这个历程中
它功能控制的是使用的CH0,CH5,CH27三个通道,也就是这三个通道
能够进行接收数据。这样的 接收数据的时候才能产生
相应的中断等等。那么通道的 那个多通道在一个选择模式主要是
通过几个寄存器来控制的,比如说 MCR和能多通道的控制机之间
还有像我们括号中的 x 的 dfs 每一个 通道矢量端口,那么,我们McBSP
它其实主要这个模块主要的 特点是它的数据长度是可变的
它的时钟信号是自己的 完成就是要接受和发送
数据的发送和接收 主要是以帧的同步信号为准
而且它同时也支持没有 [听不清]的一个数据的一个扩展
我们从第一幅图中可以看到它的生产数据发生了是时钟信号这些都是独立开的
因此,我们可以完全把它 配置成SPI口工作模式
那么,所有的这些数据的发送接收 都可以通过DMA的方式操作
这样的话能够 有效地减低 cpu 的一个负担
我们接下来再来看 多通道缓冲串行端口 McBSP 模块 McBSP 是我们 TI 公司生产的一些 录制处理芯片,比如像C2000的 2812 像C 5000,C 6000 系列那些芯片所具备的一个多通道的缓冲串行性方式 那么 McBSP 是在标准 串口接口的基础上进行 一个功能方面的这个扩展, 因此,它具有与标准 串行接口相同的一些基本 功能,比如像全双工通讯啊 数据的发送接收等, 缓冲器啊恢复啊等等 这些功能都具有之外,它其实 还具有一些自己的一些特殊功能 比如首先,它可以与IOM-2、 SPI、AC97等兼容的设备 进行直接的一个连接, 然后,其实它也支持多通道的 发送和接收,每个串行口 都最多支持 128 个通道 串行字的长度是可以被选择的,包括8位12位16位24位32位等等这些 同时,它也支持μ-律和 A-率的 一个数据的压缩和扩展等等 那也就是说我们的McBSP 是 其实它是一个串口,但只是说 它是一个功能比较丰富的 一个串口,那我们来看一下McBSP 模块基本的一个框架, 那么首先,我们看到的pin脚 它pin脚的话,就是McBSP 它包含的是两个部分 一个是数据流的端口, 还有一个是控制流的端口 那么数据流是包含的主要就是 说MDX 发送端口和一个 MDR的 接收的端口,也就是说,所有的 数据都是通过这两个功能性 端口串行地输出的, 所以因此,它也叫一个串口 那么还有除了数据口之外还有 一些控制口,控制口包括主要是 接收和发送的时钟信号 还有接收和发送的帧同步信号 它就是它跟我们传统的一些 比如说SPR帧的可能不一样 就是说它的接受和发送都有拥有自己独立的一个时钟信号和帧的同步信号 那么就是说 McBSP 的话,确切 跟外部互联的话只能是 通过这六个pin脚的一个接线, 我们再看它内部的一个架构 那么内部按照这款图中的看的话, 它主要分为两部分 上部分是发送的一些寄存器组, 下部分是记录数的寄存器组 那么发送的话,它采用的是 一个两极的一个缓冲的一个发送 它就说它里面,每一个分别 包含了自己的一个buffer,一个缓冲区 那么假如说发送的数据是小于16位的那只需要用到 DXR1这个buffer 和 XSR1 这个一位的这个就是 这些只需要用的这组 假如说是用的多于16位的话, 那会把低位放在第一组里面 高位放在第二组里面, 用两个组配合起来使用 那么 XSR1的话, 做出来就是它的一个位数 就是通过这个寄存组然后要 创建了一串芯片,那么同样的话 我们看接收的话。它是采用的这个三级的一个缓冲,它中间的话 还需要加这个DRR2,这是 一个数据接收的寄存器 它数据同样的话,也是通过MDR, 这个pin脚一路进来,假如说16位的话 或之下的话,那它用了第一组的 寄存器,它假如说高于16的话呢 需要2组来配合,它假如数据已 满移到尤其是寄存器满了之后 自动会移到我们的buffer里面, 然后buffer里面的话它会拷到 我们的DRR寄存器里面, 工作靠主 cpu 数据履行ready 然后等待 cpu 或者TMA总线将数据 拷走 那么数据流率的压缩和扩展的话 主要是在发送的时候 主要是过程是在TX buffer 就是说 数据从缓冲区拷贝到有 寄存器的地方,这个过程中会压缩 那么,这个解码的话,或转换的话 出来也是移位寄存器 往buffer拷的时候,这个过程中 确定一个扩展,那我们接下来再看 几个基本的概念,首先看到的 是字和位的一个概念 那么位是,我们串行 发送出去的时候一个最小的单位 它对这是一个clock所对应的 一个数据的一个高低电频的一个状态 这么字的话 是指我整个一个字里面就是做这么多个clock的系统里面 包含几个位,那么就是在我们的McBSP里面,它的字的所包含的位数 是可选择的 刚说的 它说它主要传统的有8位选为16位20位24位和32位 这些选择方式,那么我们从上面这个框图的时钟图里面可以看到 当我有 fx 这个帧的同步信号 过来的时候那我可以去 这些数据的一些传输 那么传输的多少位数的话 这个根据刚刚说的这个寄存器来配置 那就是说一个字里面包含的长度是 丰富的是可以编程设置的,那么根据我们 用户程序的接口的器件 不同 可以就是说去分别去 定义每一个字的长度 然后是讲的是一个字和帧的概念, 那么好几个字组合在一起就是一个帧 那么一帧数据是同样使用 FX 生成同步信号作为起始信号开始传递一个帧 那么同样的话一个帧的里面包含 几个字 是同样可以通过程序的设置 它的帧的长度来完成这 一个帧一个帧的数字的一个定义 长度的定义,那么, 最长的话,可以定义到 128 位 从上面来的,我们可以基本概念, 可以看出就是说 我们McBSP里面,它的数据的发送的 格式才是支持多种格式 多种数据结构的,因为它的 那个字的长度是可编程设置 然后每个字里面的 数据的位数也可以能编程设置 那我们在最后看一下我们的 多通道的意思,多通道这个通道的话 其实是跟前面是跟字是一个概念 就是说我对应这个时刻就是说时分 复用和对应这一个时刻所传载我们 输入输出关键上一度的串行输入 每个一个字一个字, 一个字就是一个通道 是一个 时分传输的一个概念。 那么通道,它主要是 指输入输出的一个位流,字的位流, 那么,我们C2000的芯片 它最多支持的是 128 个 输入的通道和 128 个输出的通道 那么因为我们的McBSP 可以外面 可以兼容多种的通讯的接口 可以用来支持多种的 一个窗口的一个设备,因此的话 它需要我们通道在选择的时候, 需要能够单独的独立的去控制 每一个通道的接受和发送, 例如比如像我们这个历程中 它功能控制的是使用的CH0,CH5,CH27三个通道,也就是这三个通道 能够进行接收数据。这样的 接收数据的时候才能产生 相应的中断等等。那么通道的 那个多通道在一个选择模式主要是 通过几个寄存器来控制的,比如说 MCR和能多通道的控制机之间 还有像我们括号中的 x 的 dfs 每一个 通道矢量端口,那么,我们McBSP 它其实主要这个模块主要的 特点是它的数据长度是可变的 它的时钟信号是自己的 完成就是要接受和发送 数据的发送和接收 主要是以帧的同步信号为准 而且它同时也支持没有 [听不清]的一个数据的一个扩展 我们从第一幅图中可以看到它的生产数据发生了是时钟信号这些都是独立开的 因此,我们可以完全把它 配置成SPI口工作模式 那么,所有的这些数据的发送接收 都可以通过DMA的方式操作 这样的话能够 有效地减低 cpu 的一个负担
我们接下来再来看 多通道缓冲串行端口 McBSP 模块
McBSP 是我们 TI 公司生产的一些 录制处理芯片,比如像C2000的 2812
像C 5000,C 6000 系列那些芯片所具备的一个多通道的缓冲串行性方式
那么 McBSP 是在标准 串口接口的基础上进行
一个功能方面的这个扩展, 因此,它具有与标准
串行接口相同的一些基本 功能,比如像全双工通讯啊
数据的发送接收等, 缓冲器啊恢复啊等等
这些功能都具有之外,它其实 还具有一些自己的一些特殊功能
比如首先,它可以与IOM-2、 SPI、AC97等兼容的设备
进行直接的一个连接, 然后,其实它也支持多通道的
发送和接收,每个串行口 都最多支持 128 个通道
串行字的长度是可以被选择的,包括8位12位16位24位32位等等这些
同时,它也支持μ-律和 A-率的 一个数据的压缩和扩展等等
那也就是说我们的McBSP 是 其实它是一个串口,但只是说
它是一个功能比较丰富的 一个串口,那我们来看一下McBSP
模块基本的一个框架, 那么首先,我们看到的pin脚
它pin脚的话,就是McBSP 它包含的是两个部分
一个是数据流的端口, 还有一个是控制流的端口
那么数据流是包含的主要就是 说MDX 发送端口和一个 MDR的
接收的端口,也就是说,所有的 数据都是通过这两个功能性
端口串行地输出的, 所以因此,它也叫一个串口
那么还有除了数据口之外还有 一些控制口,控制口包括主要是
接收和发送的时钟信号 还有接收和发送的帧同步信号
它就是它跟我们传统的一些 比如说SPR帧的可能不一样
就是说它的接受和发送都有拥有自己独立的一个时钟信号和帧的同步信号
那么就是说 McBSP 的话,确切 跟外部互联的话只能是
通过这六个pin脚的一个接线, 我们再看它内部的一个架构
那么内部按照这款图中的看的话, 它主要分为两部分
上部分是发送的一些寄存器组, 下部分是记录数的寄存器组
那么发送的话,它采用的是 一个两极的一个缓冲的一个发送
它就说它里面,每一个分别 包含了自己的一个buffer,一个缓冲区
那么假如说发送的数据是小于16位的那只需要用到 DXR1这个buffer
和 XSR1 这个一位的这个就是 这些只需要用的这组
假如说是用的多于16位的话, 那会把低位放在第一组里面
高位放在第二组里面, 用两个组配合起来使用
那么 XSR1的话, 做出来就是它的一个位数
就是通过这个寄存组然后要 创建了一串芯片,那么同样的话
我们看接收的话。它是采用的这个三级的一个缓冲,它中间的话
还需要加这个DRR2,这是 一个数据接收的寄存器
它数据同样的话,也是通过MDR, 这个pin脚一路进来,假如说16位的话
或之下的话,那它用了第一组的 寄存器,它假如说高于16的话呢
需要2组来配合,它假如数据已 满移到尤其是寄存器满了之后
自动会移到我们的buffer里面, 然后buffer里面的话它会拷到
我们的DRR寄存器里面, 工作靠主 cpu 数据履行ready
然后等待 cpu 或者TMA总线将数据 拷走 那么数据流率的压缩和扩展的话
主要是在发送的时候 主要是过程是在TX buffer 就是说
数据从缓冲区拷贝到有 寄存器的地方,这个过程中会压缩
那么,这个解码的话,或转换的话 出来也是移位寄存器
往buffer拷的时候,这个过程中 确定一个扩展,那我们接下来再看
几个基本的概念,首先看到的 是字和位的一个概念
那么位是,我们串行 发送出去的时候一个最小的单位
它对这是一个clock所对应的 一个数据的一个高低电频的一个状态
这么字的话 是指我整个一个字里面就是做这么多个clock的系统里面
包含几个位,那么就是在我们的McBSP里面,它的字的所包含的位数
是可选择的 刚说的 它说它主要传统的有8位选为16位20位24位和32位
这些选择方式,那么我们从上面这个框图的时钟图里面可以看到
当我有 fx 这个帧的同步信号 过来的时候那我可以去
这些数据的一些传输 那么传输的多少位数的话
这个根据刚刚说的这个寄存器来配置 那就是说一个字里面包含的长度是
丰富的是可以编程设置的,那么根据我们 用户程序的接口的器件
不同 可以就是说去分别去 定义每一个字的长度
然后是讲的是一个字和帧的概念, 那么好几个字组合在一起就是一个帧
那么一帧数据是同样使用 FX 生成同步信号作为起始信号开始传递一个帧
那么同样的话一个帧的里面包含 几个字 是同样可以通过程序的设置
它的帧的长度来完成这 一个帧一个帧的数字的一个定义
长度的定义,那么, 最长的话,可以定义到 128 位
从上面来的,我们可以基本概念, 可以看出就是说
我们McBSP里面,它的数据的发送的 格式才是支持多种格式
多种数据结构的,因为它的 那个字的长度是可编程设置
然后每个字里面的 数据的位数也可以能编程设置
那我们在最后看一下我们的 多通道的意思,多通道这个通道的话
其实是跟前面是跟字是一个概念 就是说我对应这个时刻就是说时分
复用和对应这一个时刻所传载我们 输入输出关键上一度的串行输入
每个一个字一个字, 一个字就是一个通道
是一个 时分传输的一个概念。 那么通道,它主要是
指输入输出的一个位流,字的位流, 那么,我们C2000的芯片
它最多支持的是 128 个 输入的通道和 128 个输出的通道
那么因为我们的McBSP 可以外面 可以兼容多种的通讯的接口
可以用来支持多种的 一个窗口的一个设备,因此的话
它需要我们通道在选择的时候, 需要能够单独的独立的去控制
每一个通道的接受和发送, 例如比如像我们这个历程中
它功能控制的是使用的CH0,CH5,CH27三个通道,也就是这三个通道
能够进行接收数据。这样的 接收数据的时候才能产生
相应的中断等等。那么通道的 那个多通道在一个选择模式主要是
通过几个寄存器来控制的,比如说 MCR和能多通道的控制机之间
还有像我们括号中的 x 的 dfs 每一个 通道矢量端口,那么,我们McBSP
它其实主要这个模块主要的 特点是它的数据长度是可变的
它的时钟信号是自己的 完成就是要接受和发送
数据的发送和接收 主要是以帧的同步信号为准
而且它同时也支持没有 [听不清]的一个数据的一个扩展
我们从第一幅图中可以看到它的生产数据发生了是时钟信号这些都是独立开的
因此,我们可以完全把它 配置成SPI口工作模式
那么,所有的这些数据的发送接收 都可以通过DMA的方式操作
这样的话能够 有效地减低 cpu 的一个负担
视频报错
手机看
扫码用手机观看
收藏本课程
视频简介
C2837x入门指南(二十二)—通信系统之McBSP
所属课程:C2837x入门指南
发布时间:2016.07.12
视频集数:28
本节视频时长:00:08:21
C2837x概述;芯片架构; 开发环境;外设寄存器操作;复位和中断;系统初始化;模拟子系统 ADC DAC CMP SDFM;控制类外设PWM CAP QEP。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>