第 1 章 psoc 设计导论

63
第1第 PSoC 第第第第 何何 2011.12

Upload: rebecca-odom

Post on 01-Jan-2016

123 views

Category:

Documents


3 download

DESCRIPTION

第 1 章 PSoC 设计导论. 何宾 2011.12. 本章内容. Cypress 公司的可编程片上系统 (Programmable System- on-Chip, PSoC) 将微控制器、可编程逻辑阵列、模拟可编程 阵列等资源集成在单芯片上,为电子系统的设计带来了前 所未有的机遇。 本章主要介绍了微控制器基础、可编程片上系统 PSoC 概述、 PSoC3 设计流程、 PSoC3 的结构及功能和 PSoC3 器件 概述。本章的内容是对 PSoC 所涉及知识的整体概述,通过 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 1 章   PSoC 设计导论

第 1 章 PSoC 设计导论

何宾 2011.12

Page 2: 第 1 章   PSoC 设计导论

本章内容 Cypress 公司的可编程片上系统 (Programmable

System-on-Chip, PSoC) 将微控制器、可编程逻辑阵列、模拟可编程阵列等资源集成在单芯片上,为电子系统的设计带来了前所未有的机遇。 本章主要介绍了微控制器基础、可编程片上系统 PSoC概述、 PSoC3 设计流程、 PSoC3 的结构及功能和 PSoC3 器

件概述。本章的内容是对 PSoC 所涉及知识的整体概述,通过本章内容的学习,帮助读者从“系统”角度把握 PSoC 技术的本质,方便对后续内容的学习和理解。

Page 3: 第 1 章   PSoC 设计导论

微控制器基础 微控制器是指带有外设的微处理器系统,比如台式电脑的 CPU ,它是一个微处理器系统。微控制器将响应来自 I/O 引脚、定时器、通信等的输入,同时通过对信息进行操作控制来产生合适的输出信号。 I/O 引脚使的微控制器能读取来自其它设备的按钮和状态信息,同时 I/O 引脚也能够输出信号用来打开灯、运行电机和驱动显示设备。 定时器、通讯模块和数 / 模转换模块能使微控制器执行特殊的任务,比如与 PC 机进行通讯,读取温度信息等。

Page 4: 第 1 章   PSoC 设计导论

微控制器基础

从微观上说,微控制器是一个集成了成千上万电子开关的设备。正如编程的人目的是为了将复杂的操作简化为逻辑和算术运算来完成任务那样,微控制器的设计人员必须决定使用什么电子设备来完成这些任务,比如,晶体管, FET 和二极管等。 大多数的微控制器工作在二进制系统下,比如’ 1’

或’ 0’ ,逻辑高或逻辑低,开或关。

Page 5: 第 1 章   PSoC 设计导论

微控制器基础

Cypress 的微控制器系统称为可编程片上系统(Programmable System-on-Chip, PSoC) ,那是因为

在单芯片上包含了 CPU 内核、足够的模拟子系统和数字子系统资

源。因此,在实现一个系统时,几乎不需要外部的电路。

Page 6: 第 1 章   PSoC 设计导论

微控制器的涵义

如图 1.1 所示,微处理器系统的 CPU 通常需要和其它

部件相连接,这样才能使其发挥作用。微处理器系统通常会使用到的功能部件包括:

Page 7: 第 1 章   PSoC 设计导论

微控制器的涵义--CPU

中央处理单元( Central Processing Unit, CPU)是系

统的“大脑”,它知道如何和各种不同空间的存储器交换(读或写)信息。同时,也执行一些逻辑指令,最基本和最通用的有:加、减、逻辑“或”、逻辑“与”、逻辑

“异或”、移位、移动和复制。一些处理器可能执行更加复杂的操作,但这些操作都是由最基本的操作组合得到的。

Page 8: 第 1 章   PSoC 设计导论

微控制器的涵义--CPU

CPU 由一些子系统构成,在这些子系统中最重要的是程序计数器( Program Counter, PC ),指令译码器和算术逻辑单元( Arithmetic Logic Unit , ALU )部分。 PC 指向Flash 存储器指定的地址,然后返回指令和数据。 PC 用来确定送到指令译码器内的 Flash 中的字段。指令译码器包含译码逻辑,这些逻辑将对从 Flash返回的数进行“翻译”,用来确定程序将执行的指令,这些指令将“告诉” CPU 下一步所做的逻辑操作行为。

Page 9: 第 1 章   PSoC 设计导论

微控制器的涵义--CPU

CPU 不但能实现运算操作,也能修改程序运行的地址。如果在执行指令的过程中,并不是顺序的执行指令,比如遇到调转指令,那么 PC 将加载新的所要运行指令的地址,并且从指向 Flash新的地址位置的地方执行程序。如果指令需要 CPU 执行一些运算,那么相关的数将送到 ALU 单元中。 此外, CPU 也能根据所接收到的指令对外设进行控制。

Page 10: 第 1 章   PSoC 设计导论

微控制器的涵义--Cache

从位置和访问速度方面来说,高速缓存 Cache 最靠近

CPU 。有时,将 Cache直接集成在同一芯片内。但并不是

必须放在同一个硅片上,只是封装在同一个芯片内。

Page 11: 第 1 章   PSoC 设计导论

微控制器的涵义--RAM

从 CPU访问速度来说,访问随机访问存储器(Random Access Memory, RAM )比访问高速缓存

要慢。 需要说明的是,这个词语已经失去了它的原本含义,这是由于现在大部分的存储器都能够以任何顺序进行访问。

Page 12: 第 1 章   PSoC 设计导论

微控制器的涵义-- 硬件驱动

从速度来说,是系统中最慢和最大的存储部分。它用来保存程序,并且是由非易失性的存储介质构成。

Page 13: 第 1 章   PSoC 设计导论

微控制器编程语言

世界上不管是什么厂商的 CPU ,也不管它们采用什么样的结构,它们都有下面的共同特点:

都是靠程序计数器( Program Counter, PC )来控制程序的运行,正因为这个原因,它们本质上也是串行执行的;

工作在二进制状态下,也就是通常所说的在 PC 的控制下,通过运行二进制组成的机器代码,来控制 CPU 内各个功能部件的运行。

Page 14: 第 1 章   PSoC 设计导论

微控制器编程语言

对 CPU 来说,所谓的“机器语言指令”,就是通过CPU 内的控制逻辑来协调 CPU 内各个功能部件,完成

所要求的操作。机器语言的运行效率是最高的。 机器语言指令应该由:操作码和操作数两部分构成。

操作码告诉 CPU 所需要执行的操作; 操作数是执行操作所针对的对象。这些对象包括:立即数,寄存器和存储器等,通过访问这些对象来获得所需要操作的对象。比如:对 8051 来说,机器语言指令 -7D25 ,表示该指令要实现数据传输操作,“ 7D” 是操作码,“ 25“ 是操作对象”,其表示将十六进制数 #25 ,送到 R5寄存器中。

Page 15: 第 1 章   PSoC 设计导论

微控制器编程语言

但是,正如前面所说的,纯粹意义上的“机器语言

” 对程序员太难理解了,为什么?这是因为程序员是CPU 的操作者,而不是 CPU 的设计者,程序员根本不

可能从二进制代码的排列中看出“机器语言”所描述的

逻辑操作行为。

Page 16: 第 1 章   PSoC 设计导论

微控制器编程语言

为了帮助程序员理解 CPU 所执行的操作,通过汇编语言助记符指令来帮助程序员设计指令来控制 CPU 的运行

。 汇编语言助记符指令通过汇编器被翻译成机器语言指令。 用汇编助记符描述机器指令的形式为: [标号 :] 助记符 [ 操作数 ] [;注释 ]

标号用来表示一行指令 助记符表示所要执行的逻辑操作行为 操作数为逻辑操作行为所操作具体对象

Page 17: 第 1 章   PSoC 设计导论

微控制器编程语言

现在用汇编语言来描述上面的机器指令“ 7D25” : MOV R5, #25 MOV表示数据移动操作, R5表示目的操作

数, #25表示源操作数,这个助记符汇编指令所表示的是,将立即数 25 复制到 R5寄存器中。 使用助记符来描述 CPU 所要进行的操作,比使用

机器语言直接描述更加容易理解和记忆。

Page 18: 第 1 章   PSoC 设计导论

微控制器编程语言

但是,由于汇编语言下面是机器语言,所以对于使用汇编语言编程的程序员来说,他必须很清楚 CPU 的指令

集,寄存器单元和存储器映射等繁琐的硬件规则。虽然其执行效率基本上和机器语言一样,但是使用汇编语言编程效率很低。 因为很多程序员根本不了解 CPU 的具体内部结构,所以对它们来说,使用汇编语言编程并不比使用机器指令编程好到哪里去,这也是一件令他们非常痛苦的事情。

Page 19: 第 1 章   PSoC 设计导论

微控制器编程语言

值得高兴的是,在今天,厂商开发的软件平台支持使用 C、 BASIC 等高级语言对硬件进行编程; C 语言是不能直接在 CPU 上运行,它必须首先通过编译器( Compiler)转换成机器语言,才能在 CPU 上运行。使用高级语言所编写的代码其运行的效率不可能比用汇编语言编程的运行效率高,所以说,如果你想让 C 语言所编写的代码和汇编语言编写的代码有一样高的代码执行效率,你只能是绞尽脑汁的对 C 代码进行优化,或者使用 C 语言和汇编语言混合编程,来满足代码长度和运行时间的设计要求。虽然这一过程是也会让程序员耗费很多的精力,但是,值得他们高兴的是,他们再也不用和底层硬件直接打交道了。

Page 20: 第 1 章   PSoC 设计导论

微控制器编程语言

表 1.1 C语言和汇编助记符之间的对应关系

C 语言描述 汇编助记符 机器指令 功能F=C+D MOV A,

0x08E508 将数据空间地址为 0x08 的内容送给累加器 A

ADD A, 0x09

2509 将数据空间地址为 0x09 的内容和累加器 A 相加后送给累加器 A

MOV 0x0A, A

F50A 将累加器 A 的内容送到地址为 0x0A 的数据空间 现在更令程序员更高兴的事情是,越来越多的厂商提

供了硬件的应用程序接口( Application Program Interface ,API )函数,这样程序员可以根本不用知道更多的硬件实现细节,只需关心如何编写代码来使硬件工作,这样就大大提高了程序的设计效率。

Page 21: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

当今世界,嵌入式处理器无处不在。在过去三十年间:

市场要求不断地降低嵌入式系统的成本; 要求嵌入式处理器处理及控制能力不断的提高;

在这两个因素的推动下,使得嵌入式处理器的功能变得越来越复杂。 所以,当半导体市场出现越来越多的片上可编程系统,设计者就不会感到奇怪了。 这种 PSoC 其实质就是将 CPU 、模拟和数字子系统集成在单芯片上。典型的,美国 Cypress 公司,率先实现了在单芯片上实现完整的模拟和数字系统的集成,其典型的代表作即 PSoC1 、 PSoC3 和 PSoC5 。

Page 22: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

特别值得一提的是, PSoC3 和 PSoC5 片上可编程系统,由于在芯片内部分别集成了业界流行的 8051 CPU硬核和ARM Cortex-M3 CPU硬核,使其受到业界的高度关注。以PSoC 芯片和 PSoC Creator软件开发工具为代表的硬件设计平台和软件设计工具,引领着未来嵌入式系统设计的发展方向。

Page 23: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

其设计方法的核心就是,以不同的数字和模拟 IP 核“积木块”为中心的“系统级”设计,这种设计方法所体现出来的是对未来嵌入式设计者所要求的“重基础”和“宽专业

”的要求。因为,这种 PSoC具有很高的集成度,所涉及的知识内容也比较多,这就是“宽专业”,但是,要想能完成PSoC 的设计,要求设计者有非常好的基础理论知识,这就是“重基础”。 使用 PSoC 进行嵌入式系统设计具有以下几个方面的优点:

Page 24: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

1. 定制 基于 PSoC嵌入式系统的设计人员可以很灵活地选择所要连接的外设和控制器。因此,设计人员可以设计出一个独一无二的外设,这个外设可以直接和总线连接。对于一些非标准的外设,设计人员很容易的使用 PSoC 内嵌的通用数字块( Universal Digital Block , UDB )

阵列实现对非标准外设的定制。比如,设计人员很容易的在PSoC 上设计出多个 UART 接口的嵌入式系统,而这些在传统的 8051 单片机和嵌入式系统是无法实现的。因此,在 PSoC平台中,向这样类似的配置是很容易实现的。

Page 25: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

2. 降低元件成本 由于基于 PSoC平台的嵌入式系统的功能多样性,以

前需要用很多元件才能实现的系统,现在可以使用一个

PSoC芯片实现。比如,辅助 I/O 芯片或协处理器与现有的处理器之间的连接。减少在设计中所使用的元件的数量,不但可以降低元件的成本,而且可以大大缩小电路板的尺寸,提高系统的可靠性。

Page 26: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

3. 硬件加速 选择 PSoC 的一个重要的原因就是, PSoC 能在硬件

和软件之间进行权衡,使嵌入式系统达到最大的效率和性能。比如,当算法是嵌入式系统软件性能的瓶颈时,一个使用定制的协处理器引擎能用来实现算法,这个协处理器通过专用的,低延迟的通道与嵌入式处理器连接。使用现代的硬件设计工具,很容易的将软件瓶颈转向硬件处理。 下面通过表 1.2详细说明它们在软件和硬件设计上的区别。

Page 27: 第 1 章   PSoC 设计导论

可编程片上系统 PSoC 概述-PSoC 发展概述

PSoC ( 8051内核) 传统 8051

硬件 内部集成大量软件和硬件可配置的模拟模块

内部没有集成模拟模块

内部根据用户要求可定制 IP核。 无用户定制 IP核功能

端口功能丰富,可配置模拟 /数字功能、驱动能力等

端口功能单一

引脚可以和内部模块任意连接 引脚固定,不能修改引脚和内部模块的连接方式

软件 汇编, C语言编程 汇编, C语言编程

预建立 /用户定制元件驱动函数自动生成 无元件驱动函数自动生成

综合上述, PSoC 是一个 MCU ,但是是一个高度的硬件和软件可编程的 MCU 。在 PSoC 的平台上充满了设计的创意。

Page 28: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计背景

一个典型的嵌入式系统由下面三个主要模块构成: 处理器; 数字(外设和逻辑); 模拟(用于与传感器和控制器的物理接口);

系统根据硬件接口要求,由三个模块连接构成硬件平台。然后,在这个硬件设计上,“构建”软件,来执行所要求的处理和控制功能。 按照传统的设计方法,一旦定制的“软件”和“硬件”

开始运行,对这个设计需要进行修改或更新时,就成为一件令设计者异常痛苦的事情。众所周知,这是一件耗钱和耗时的工作。

Page 29: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计背景

对于嵌入式系统设计者来说,需要其设计在市场上超过其竞争对手,以快速的占领市场。 当你在市场上看到种类繁多的手机等电子产品的激烈竞争时,你就彻底明白了市场对嵌入式系统设计者是多么的重要。 为了拥有早期市场优势,在知识和投资中,尽可能的“重用”。“重用”其实就是重复使用,这种思想使得设计

成本大大降低和设计周期大大缩短,这应该是所有嵌入式系统设计者最喜欢的。当然,这种结构和设计平台是灵活的和可扩展的。

Page 30: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计背景

嵌入式系统设计者,希望支持其嵌入式系统设计的工具和元件能够支持甚至最后几分钟的重要变化。这样,使得它们能从容的面对这种变化,更加对设计充满信心。 当然设计应该充分的利用工业标准的“生态设计”,查查相关资料就知道“生态设计”对未来嵌入式系统设计

时多么的重要。 嵌入式系统设计发展到今天,设计者应该充分利用众多的嵌入式开发社区和标准的工具。充分利用这些资源可以少让你走弯路,学会站在巨人的肩膀上工作,这样你将享受到嵌入式设计带来的乐趣。

Page 31: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计背景

这些挑战其实可以归结为一个事实,即较长的设计周期,较高的市场要求变化几率和不同的需求。 众所周知,一点点设计变化,都将使得设计周期延长。缩短设计周期,不但拥有了财富上的优势,而且降低了不确定性,提供了早期消费者提供的反馈信息,当你拥有这些信息,对产品快速改进时,产品就成为市场的领导者。

Page 32: 第 1 章   PSoC 设计导论

PSoC 设计方法 --IP 核复用技术

SoC 设计,本质上就是在单芯片内部,将不同功能的 IP 核的连接在一起,以满足不同的应用要求。现在的PSoC 设计,规模巨大而且功能复杂,设计人员不可能从头开始进行设计。现在采用的方式是,在设计中尽可能使用现有的功能模块,当没有现成的模块可以使用时,设计人员才需要自己花时间和精力设计新的模块。 EDA 设计人员把这些现成的模块通常称为 IP (intellectual Property )核。 IP 核来源主要有三个方面

: 前一个设计创建的模块; SoC 生产厂商的提供 第三方 IP厂商的提供。

Page 33: 第 1 章   PSoC 设计导论

PSoC 设计方法 --IP 核复用技术

IP 核是具有知识产权核的集成电路芯核总称,是经过反复验证过的、具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中。 到了 SOC阶段, IP 核设计已成为片上可编程系统解决方案厂商中非常重要的任务,其所能提供的 IP 核的资源数目,体现了厂商的实力。对于可编程 SoC 芯片,其提供的IP 核越丰富,用户的设计就越方便,其市场占用率就越高。目前, IP 核已经成为系统设计的基本单元,并作为独立设计成果被交换、转让和销售。 从 IP 核的提供方式上,通常将其分为软核、硬核和固核这 3 类。从完成 IP 核所花费的成本来讲,硬核代价最大;从使用灵活性来讲,软核的可复用使用性最高。

Page 34: 第 1 章   PSoC 设计导论

PSoC 设计方法 --IP 核复用技术

1 .软核 软核在 EDA 设计领域指的是综合之前的寄存器传输级( RTL )模型;具体在 FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。 软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。 软核是 IP 核应用最广泛的形式。比如:可以使用 HDL语言在 PSoC 芯片内部,通过 UDB 资源生成设计者定制的外设控制器。

Page 35: 第 1 章   PSoC 设计导论

PSoC 设计方法 --IP 核复用技术

2 .固核 固核在 EDA 设计领域指的是带有平面规划信息的网表;具体在 SoC 设计中可以看做带有布局规划的软核,通常以 RTL代码和对应具体工艺网表的混合形式提供。将 RTL描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是 IP 核的主流形式之一。

Page 36: 第 1 章   PSoC 设计导论

PSoC 设计方法 --IP 核复用技术

3 .硬核 硬核指经过验证的设计版图;具体在 PSoC 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。 IP硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。比如:典型的 PSoC3 内部集成了 8051CPU硬核, PSoC5 内部集成

了ARM Cortex-M3 CPU硬核。

Page 37: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

“ 设计重用”是 PSoC 设计中一个非常重要的设计思想

,“设计重用”比“ IP 核复用”具有更高的设计灵活性。这个思想的提出,使得嵌入式系统设计方法进入到一个崭新的阶段。当然,这是众多半导体厂商的最高理想境界。

Page 38: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

设计重用的思想非常吸引人,但是目前的标准的解决方式仅仅是迫使在项目的另一部分加入“定制”的开发,这不能根本上解决问题。 使得 IP 核重用利益最大化的方法是将软件和硬件作为“ 同等地位”的“合作者”,不需要使得软件或硬件的任

何一方需要了解对方的具体实现过程。实现这个目的的方法是,在定义硬件 IP 核的时候,顺便也要考虑到软件和开发工具,这样在应用程序和硬件之间的接口就非常方便、高效,同时,彼此不需要“深入了解对方”。

Page 39: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

Cypress 的 PSoC Creator 开发平台很好的实现了设计重

用的思想,并将其变为现实,即在生成硬件 IP 时,也同时提供了相应所需要的软件 API函数,这样使得设计更容易

运行,以更快的速度完成,更加容易维护和便携。

Page 40: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

当使用 HDL语言开发 IP 核时,对其进行综合、仿真、验证、编写测试平台、编写文档。那么应该为 IP 核的使用者在 IP 核开发工具中提供相同的工具,这个工具就是当用户在他的设计中例化所需要使用的 IP 核时,为每个例化的IP 核生成相应的 API函数。

Page 41: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

PSoC3/5 由嵌入式的处理器( 8051 或Cortex-M3 )、

可编程的数字阵列和高精度的模拟资源构成。 PSoC Creator软件充分的显示出其强大的设计重用功能,即硬

件模块或者元件能通过使用 API函数进行封装,来简化软

件代码的开发,同时加速设计过程。

Page 42: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

PSoC Creator提供原理图捕获接口,在原理图界面内

,设计者通过从模拟和数字元件库中拖拽元件来创建设计。一个元件由一个在原理图界面内可见的符号或者其它原理图的实现构成。当设计者建立( build )设计时,软件就根据元件的名字产生相应的 API函数。

Page 43: 第 1 章   PSoC 设计导论

PSoC 设计方法 -- 设计重用技术

图 1.2 API 函数的定制

Page 44: 第 1 章   PSoC 设计导论

PSoC3 设计流程

PSoC 设计流程

硬件设计流程

软件设计流程

在空白的界面开始设计

从列表中,拖出元件,并将其放置到空白界面中。

用块和 / 或 RTL 定制元件

将元件连接到一起

将元件连接到时钟系统、 DMA 、中断和引脚

综合、映射、布局布线

代码生成器

源文件编辑器

C51 编译器,生成目标代码

(.obj)

LX51 链接器,生成绝对目标模块文件 (.omf)

LIBX51 库管理

器,生成库文件 (.lib)

OHX51 生成器, 生成十六进制文件 (.Hex)

下载设计到 PSoC 芯片中

建立器 (builder)

Page 45: 第 1 章   PSoC 设计导论

PSoC3 设计流程-硬件设计流程

这里的“硬件”概念,是指在 PSoC3 芯片内,利用芯片内的 CPU 、存储器、数字子系统、模拟子系统等 IP 核资源,通过数字和模拟总线将这些 IP 核连接在一起,在“硅片”上实现一个“定制”功能的数模混合嵌入式系统,这和通常的“硬件”概念是不一样的。 基于 PSoC 芯片内的硬件设计,采用的是原理图和硬件描述语言( Hardware Description Language, HDL )

的混合设计方法实现的。

Page 46: 第 1 章   PSoC 设计导论

PSoC3 设计流程-硬件设计流程

原理图设计方法是指:从空白的背景开始设计,允许设计者在这个空白的背景下,开始构建硬件系统,这个构建硬件系统的过程,实际上就是在空白背景上放置不同功能的 IP 核,然后用线连接的过程。构建硬件系统,可以使用的方法包括:

通用的外设 串行通讯模块 标准模拟模块 布尔原语 层次化的元件(比如用户根据特殊要求定制的) 用户创建的寄存器传输级描述( Register Transfer

Level , RTL )

Page 47: 第 1 章   PSoC 设计导论

PSoC3 设计流程-硬件设计流程

HDL 设计方法是指:当 PSoC 芯片所提供的 IP 核资源不能满足设计需要时,设计者需要使用硬件描述语言(Hardware Description Language , HDL )和 PSoC

Creator软件提供的相应功能来实现“定制”的要求。当这个设计在验证完后,就可以使用原理图的设计方法,将这个 IP 核添加到设计中。 当使用原理图和 HDL语言完成设计实现后,使用Creator软件提供的软件工具对硬件设计进行处理,处理过程主要包括:

Page 48: 第 1 章   PSoC 设计导论

PSoC3 设计流程-硬件设计流程

1 .综合 综合可以自动将系统直接从行为级描述综合为寄存器传输级描述。行为级综合的输入为系统的行为级描述,输出为寄存器传输级描述的数据通路。 2 .映射 将设计中的逻辑描述映射到 PSoC 内相对应的功能单

元中。

Page 49: 第 1 章   PSoC 设计导论

PSoC3 设计流程-硬件设计流程

3 .布局布线 布局布线的主要作用是调用布局布线器,根据用户约束和物理约束,对设计模块进行实际的布局,并根据设计连接,对布局后的模块进行布线。顺序是:先模拟部分,后数字部分。

4 .代码生成器 当布局布线完成后,生成用于创建配置的设置信息,写到当前设计的工程目录下的 Generated File文件夹下

。在建立整个工程时将使用这些信息。

Page 50: 第 1 章   PSoC 设计导论

PSoC3 设计流程-软件设计流程

PSoC3平台上的软件设计是在 PSoC3 内所构建的硬件平

台基础上实现的。其软件程序的设计流程包含以下几个步骤: 1 . C代码和汇编语言代码的编写 通过 PSoC Creator软件提供的 C语言编辑器和汇编语言编辑器,完成相关代码的输入。相关代码是软件设计中和C 或汇编语言有关的代码,比如: .h头文件, .c文件和 .A51汇编文件等。 2 .建立器( Builder ) 当建立工程时,将硬件设计流程中所生成的和硬件有关的代码,与源文件编辑器所输入的 C 或汇编代码放在一起使用软件流程进行处理。

Page 51: 第 1 章   PSoC 设计导论

PSoC3 设计流程-软件设计流程

3 .使用编译器对 C代码和汇编代码进行编译 对于 C代码,软件调用 Keil提供的 C51 编译器对输入代码进行编译。 C51 编译器从 C文件中产生目标文件 .obj 。目标文件可能被添加到库中或者可能和其它文件进行链接。 对于汇编代码,软件调用 Keil提供的 Ax51汇编器对代码进行编译。汇编器本质是一个程序,将助记符代码(汇编语言)翻译成可执行的目标代码。这个目标代码可以在8051兼容的微控制器上执行。 目标代码是一个特殊格式的二进制文件,包含段的定义、外部段的定义,二进制内容和调试信息。

Page 52: 第 1 章   PSoC 设计导论

PSoC3 设计流程-软件设计流程

4 .使用库管理器生成库文件 当设计中需要使用库时,软件调用 LIBX51库管理

器,允许创建一个库,或者添加目标文件到库中,或者从库文件中删除目标文件。

Page 53: 第 1 章   PSoC 设计导论

PSoC3 设计流程-软件设计流程

5 .使用链接器生成绝对目标模块文件 软件调用 Keil提供的 LX51链接器 / 定位器,通过将

前面C 编译器和汇编语言编译器创建的目标模块链接在一起,来创建一个绝对目标模块。前面编译器所创建的这些目标模块是可以重新定位的,但不可以直接的运行(即使只有一个源模块构成)。这些目标文件必须通过链接器链接在一起,并且转换成一个绝对的目标模块。 LX51链接器产生的文件包含:

Page 54: 第 1 章   PSoC 设计导论

PSoC3 设计流程-软件设计流程

1 ) OMF2文件 在这个绝对目标模块中,分配了所有的可定位的段,并且这些段有固定的地址和空间; 2 ) MAP文件 链接器列表文件,包含了链接 / 定位过程的丰富信息,该文件由很多段构成。每一段以出现在 map文件中的顺序进行了描述。 3 ) COD文件 链接器 CODE文件包含了完整的程序源代码 /汇编代码的列表。这个列表对调试是非常有用的。

Page 55: 第 1 章   PSoC 设计导论

PSoC3 设计流程-软件设计流程

6 .使用转换器将 OMF文件转换成十六进制文件 当需要将代码放到 PSoC3 内的 Flash 程序空间时,软件调用 Keil提供的 OHX51 工具,将链接器创建的绝对目标文件转换成 Intel格式的十六进制文件 .HEX 。 当上面的硬件和软件设计流程结束后,通过 JTAG 或者 SWD 下载电缆, PSoC Creator软件将 HEX文件下载到PSoC3 芯片中。其中的硬件信息用于在 PSoC3 芯片内构建硬件平台。 这个硬件平台上的 8051 中央处理单元执行软件应用程序,用来控制片内硬件平台,使得整个系统按照具体的应用要求有条不紊地运行。

Page 56: 第 1 章   PSoC 设计导论

PSoC3 的结构及功能 PSoC3 的 8051 CPU 子系统使用单周期的流水结

构的8051 微处理器,最高运行速度达到 67MHz 。 CPU 子系统包括可编程嵌套的中断控制器, DMA

控制器和 RAM 。 PSoC3 内的单周期运行的 8051 子系统比标准的

8051 处理器速度快几十倍。

Page 57: 第 1 章   PSoC 设计导论

PSoC3 的结构及功能

Page 58: 第 1 章   PSoC 设计导论

PSoC3 的结构及功能-- 数字子系统结构及功能

系统总线

数字系统

通用数字块阵列

UD

B

使用示例

I2C主 / 从

N 个定时器、计数

器、 PWM

Page 59: 第 1 章   PSoC 设计导论

PSoC3 的结构及功能-- 模拟子系统结构及功能

Page 60: 第 1 章   PSoC 设计导论
Page 61: 第 1 章   PSoC 设计导论

PSoC3 的结构及功能-- 输入 /输出引脚功能

PSoC 上提供了 3 种类型的 I/O ,其使用非常灵活。在上电复位的时候,所有的 I/O 可以设置多种驱动模式。 PSoC3 通过 Vddio 引脚,提供最多四个 I/O 电压域。每个 GPIO 都有模拟 I/O , LCD 驱动,电容感应,产生中断,抖动率控制和数字 I/O 的能力。 当作为输出时, PSoC3 上的 SIO允许独立于 Vddio 设置Voh 。当 SIO 为输入模式时,输出为高阻状态。 SIO非常适合使用 I2C总线的应用(即当总线上有其它设备,而 PSoC又没有上电的情况)。 SIO 也提供大电流驱动能力用来驱动 LCD 。 SIO 可编程的输入门槛特性能使 SIO 作为通用的模拟比较器。对于全速的 USB , USB 接口也提供了 USBIO 。

Page 62: 第 1 章   PSoC 设计导论

PSoC3 引脚分布

Page 63: 第 1 章   PSoC 设计导论

PSoC3 器件分类

器件类型 MCU 核( 8051 核) 模拟模块 ( 最大资源 ) 数字模块(最大资源)

CPU( MHz )

Flash(KB)

SRAM(KB)

EEPROM(KB)

LCD 段驱动

ADC(Δ-Σ) 位数

DAC

比较器

SC/CT模块

放大器

DFB

电容感应

UDB 定时器 /PWM

FS USB

CAN2.0B

CY8C3244 48 16 2 0.5 √ 12 1 2 0 0 - √ 16 4 √ -

CY8C3245 48 32 4 1 √ 12 1 2 0 0 - √ 20 4 √ -

CY8C3246 48 64 8 2 √ 12 1 2 0 0 - √ 24 4 √ -

CY8C3444 48 16 2 0.5 √ 12 2 4 2 2 - √ 16 4 √ -

CY8C3445 48 32 4 1 √ 12 2 4 2 2 - √ 20 4 √ -

CY8C3446 48 64 8 2 √ 12 2 4 2 2 - √ 24 4 √ -

CY8C3665 67 32 4 1 √ 12 4 4 4 4 √ √ 20 4 √ √CY8C3666 67 64 8 2 √ 12 4 4 4 4 √ √ 24 4 √ √CY8C3865 67 32 4 1 √ 20 4 4 4 4 √ √ 20 4 √ -

CY8C3866 67 64 8 2 √ 20 4 4 4 4 √ √ 24 4 √ -