您的位置 首页 制造

深化了解PSoC®4A :根据SCB的串行通讯规划

摘要:本文首先简要介绍了PSoC®4A的片内外设子系统架构及SCB模块的功能。然后概括了当前最常用的三种串行通信协议,UART,I2C和SPI。并详细论述了如何在PSoC®4A片内

  摘要:本文首要扼要介绍了PSoC®4A的片内外设子体系架构及SCB模块的功用。然后归纳了当时最常用的三种串行通讯协议,UART,I2C和SPI。并具体论说了如安在PSoC®4A片内的SCB模块渠道上,装备并完结这三种串行通讯

  关键字PSoC®4,SCB,UART,I2C,SPI

  Abstract: This paper first briefly introduces the architecture of on-chip peripheral subsystem and the function of SCB module. Then generalizes the currently common used 3 serial communication protocol, UART, I2C and SPI. And detailed illustrates how to configure and realize the 3 serial communication on SCB module in PSoC®4A.

  Keywords: PSoC®4,SCB,UART,I2C,SPI

  1. 导言

  PSoC®4A是Cypress可编程片上体系PSoC®(Programmable System on Chip)宗族中的最新成员,选用ARM Cortex®-M0作为处理中心,因而也是PSoC®宗族中性价比最高的成员。PSoC®4彻底承继了PSoC®芯片宗族自身的高度可编程的灵活性,并交融了Cortex® M0高性价比的处理器核架构,使得PSoC®4 系列产品成为一个具有高度可扩展性的处理器渠道,在性价比、功耗等方面优势明显。在针对电机操控等需求实时调试的嵌入式使用中,串行通讯显得尤为重要,PSoC®4将常用的多种串行通讯接口(UART,I2C和 SPI)集成到一个SCB(Serial Communication Block)外设模块上,且每个片内都含有两个SCB外设。因而用户能够十分便利的在SCB外设上规划出自己的串行通讯体系。

  PSoC®4A产品系列现在推出的是CY8C4100和CY8C4200两个入门级产品系列。本文即以CY8C4200为例,介绍怎么使用PSoC®4A片内的SCB外设模块进行UART,I2C和 SPI串行通讯规划。

  2. PSoC®4A架构及SCB外设模块简介

  PSoC® 4A 是根据ARM Cortex®-M0 CPU(处理器)的可编程嵌入式体系操控器宗族,为嵌入式使用供给了强壮的可编程渠道。它调集了可编程模仿资源、可编程内部互联、用户可编程数字逻辑、通用的固定功用外规划以及高性能的ARM Cortex-M0 CPU子体系。

  图 1是PSoC®4的体系框图。限于篇幅,本文将首要归纳与串行通讯相关的片内资源特性,具体内容您能够参阅Cypress网站上的PSoC®4的数据手册。

  ■ 高达48MHz,43 DMIPS 的32位Cortex-M0 CPU,支撑单周期乘法

  ■ 多达 32 KB Flash 及 4KB SRAM内存

  ■ 两个可工作为SPI/UART/I2C 串行通讯接口的串行通讯模块(SCB)

  ■ 四个可编程数字逻辑模块(UDB)

  ■ CapSense® 及 LCD 驱动

  ■ SWD 编程及调试单元

  ■ 全面支撑PSoC Creator IDE 东西

  图 1: PSoC®4芯片体系框图

  PSoC®4在开发环境方面与PSoC®宗族的上一代产品坚持一致,依然为PSoC® Creator,连续了将片内资源笼统为模块化Component的开发办法,操控体系架构明晰具体,简略方便。用户能够更多重视产品的功用开发,而较少的留意芯片的硬件结构细节。PSoC® Creator的具体信息能够在Cypress网站上取得。

  SCB串行通讯模块支撑三种通讯协议:UART,I2C 和SPI。由图1能够看出PSoC®4供给了两个SCB模块,每个SCB模块在同一时间只能用于完结一种串行通讯协议。假如在规划中需求一起完结三个及以上串行通讯协议,用户能够凭借UDB来规划。

  在PSoC® Creator 3.0中将SCB模块放入schematic编辑器中,双击翻开装备界面能够看出,SCB共有5个装备选项。

  ■ “Unconfigured SCB”: 保存SCB为未装备状况,需在运行时实时装备。

  ■ “I2C”: 规范I2C形式。

  ■ “EZI2C”: EZI2C形式。

  ■ “SPI”: SPI形式

  ■ “UART”: UART形式

  本文将首要论说最常用的UART,I2C和SPI三种通讯协议在SCB模块上的完结办法。

  图 2: SCB模块及装备界面

  3. 根据SCB模块的UART串行通讯完结

  ① UART串行通讯简介

  通用异步收发协议(UART)界说了一种全双工的串行异步接口。其拓扑一般是点到点的结构,首要有TX(发送)和RX(接纳)两个信号。由所以异步方法,没有同步时钟信号,需求两边约好一个相同的波特率,且每发送一个字节后进行一次数据同步,因而UART的数据传输速率相对较低(常用为115200bps, 最高可达1Mbps)。UART没有固定的通讯协议,因而用户能够自在界说。所以UART特别适合于比如电机操控等需求施行监控体系参数的使用场合,用于在上位机和下位机之间双向传递数据。图3归纳了一个UART通讯的示例。关于UART通讯协议的具体界说,您能够参阅相关的理论文献。

  图 3:UART通讯的示例

  UART 协议中一个典型的数据帧由开端位,数据位,奇偶校验位和中止位组成。开端位的逻辑值为0,它标志一个数据帧的开端;数据位是需求传输的信息;奇偶校验位是可选的,它的值取决于一切数据位逻辑值求和成果的奇偶性;中止位的逻辑值为1,它的长度可装备。当UART 总线处于闲暇态时,其逻辑值为1,好像中止位。

  ② 根据SCB的UART通讯完结

  在图2所示的装备框中,将SCB装备为UART形式,点开呈现的”UART Basic”菜单,装备根本的UART通讯参数,如图4所示;”UART Advanced”菜单下的TX Buffer 和RX Buffer参数坚持默许的8个即可。

  图 4:UART通讯参数装备

  UART支撑全双工通讯,因而数据发送和接纳能够一起被处理。数据的发送和接纳都能够用中止与轮询两种方法来完结。中止方法是在每次数据发送/接纳完结后发生一个中止,在中止服务程序中进行下一次数据发送/接纳的设置。轮询方法是在主循环中不断查询当时数据接纳/发送使命是否完结,然后决议何时开端下一次接纳/发送使命。在类似于电机操控的实时使命处理中,中止一般用来处理实时性要求严厉的使命,关于用于数据监控和调试意图的UART通讯,一般用轮询的方法来完结。

  PSoC Creator 3.0 开发东西自身带有UART全双工数据处理的Example Project;点击菜单File->Example Project,挑选PSoC 4 Architecture,然后挑选”SCB_UartTxRxComm”即可翻开UART通讯例程,如图5所示。

  图 5:翻开UART通讯示例程序

  UART的数据发送/接纳进程很简略,以数据接纳为例,程序代码如下:

  if(0u != UART_SpiUartGetRxBufferSize())

  {

  rxData = UART_SpiUartReadRxData();

  }

  return(rxData);

  在主循环程序中轮询数据接纳寄存器RxBuffer的状况,假如数据接纳完结则读取该寄存器中的值作为接纳到的数据即可。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/117866.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部