LPC独家秘笈之SGPIO
SGPIO是干哈的? SGPIO是为了解决,在攻城狮开发中,遇到串行接口在数量和功能上不易满足要求的情况。例如,工程师在项目开发中需要提升音频数据的传输速率、设计带滤波功能的串口、通过I/O口作数据的搬运时占用过多的CPU带宽、软件模拟并/串行通讯协议时由于比特搬运而使MCU性能变低等情况。类似于老飞思卡尔的FlexIO。相比用过FlexIO的宝宝们已经知道其功能是多么强大了
SGPIO模块是一个非常灵活和强大的外设,可以用于实现几乎所有标准的和自定义的串行通信接口,比如,SPI,I2C,I2S,SDMMC及摄像头接口等。SGPIO还可以和其它外设联动,如,SCT、ADC、TIMER。在模拟通信接口方面,传统的方法是通过数据的比特搬运,该方法的弊端是:每个比特搬移匀需要CPU参与、最大频率受到限制、大量的软件循环、需要周期性的工作;SGPIO模块可简单理解为可编程逻辑器件,通过配置少量寄存器就能够使SGPIO模块实现高度自动化操作、大量吞吐数据,能有较的克服传统方法的弊端。SGPIO模块由标准的通用输入输出端口(GPIO)与带定时器功能移位片组成。
SGPIO模块特性
1.每个移位片匀带双缓冲区;
2.特定移位片相连接,增加FIFO的深度;
3.每个移位片带一个32位的模式匹配滤波器;
4.每个移位片都能实现串行到并行或并行到串的数据流转换;
5.中断产生方式有:移位时钟中断、数据匹配中断、输入比特中断、双缓冲交换中断;
6.16个移位片匀带内部的32位FIFO,实现在每个移位时钟下从引脚移入数据或移出数据;
|