630 likes | 899 Views
第 1 章 PSoC 设计导论. 何宾 2011.12. 本章内容. Cypress 公司的可编程片上系统 (Programmable System- on-Chip, PSoC) 将微控制器、可编程逻辑阵列、模拟可编程 阵列等资源集成在单芯片上,为电子系统的设计带来了前 所未有的机遇。 本章主要介绍了微控制器基础、可编程片上系统 PSoC 概述、 PSoC3 设计流程、 PSoC3 的结构及功能和 PSoC3 器件 概述。本章的内容是对 PSoC 所涉及知识的整体概述,通过
E N D
第1章 PSoC设计导论 何宾 2011.12
本章内容 Cypress公司的可编程片上系统(Programmable System- on-Chip, PSoC)将微控制器、可编程逻辑阵列、模拟可编程 阵列等资源集成在单芯片上,为电子系统的设计带来了前 所未有的机遇。 本章主要介绍了微控制器基础、可编程片上系统PSoC 概述、PSoC3设计流程、PSoC3的结构及功能和PSoC3器件 概述。本章的内容是对PSoC所涉及知识的整体概述,通过 本章内容的学习,帮助读者从“系统”角度把握PSoC技术的 本质,方便对后续内容的学习和理解。
微控制器基础 微控制器是指带有外设的微处理器系统,比如台式 电脑的CPU,它是一个微处理器系统。微控制器将响应 来自I/O引脚、定时器、通信等的输入,同时通过对信息 进行操作控制来产生合适的输出信号。 I/O引脚使的微控制器能读取来自其它设备的按钮和 状态信息,同时I/O引脚也能够输出信号用来打开灯、运 行电机和驱动显示设备。 定时器、通讯模块和数/模转换模块能使微控制器执 行特殊的任务,比如与PC机进行通讯,读取温度信息等 。
微控制器基础 从微观上说,微控制器是一个集成了成千上万电子 开关的设备。正如编程的人目的是为了将复杂的操作简 化为逻辑和算术运算来完成任务那样,微控制器的设计 人员必须决定使用什么电子设备来完成这些任务,比如 ,晶体管,FET和二极管等。 大多数的微控制器工作在二进制系统下,比如’1’或 ’0’,逻辑高或逻辑低,开或关。
微控制器基础 Cypress的微控制器系统称为可编程片上系统 (Programmable System-on-Chip, PSoC),那是因为在单芯片 上包含了CPU内核、足够的模拟子系统和数字子系统资源 。因此,在实现一个系统时,几乎不需要外部的电路。
微控制器的涵义 如图1.1所示,微处理器系统的CPU通常需要和其它 部件相连接,这样才能使其发挥作用。微处理器系统通 常会使用到的功能部件包括:
微控制器的涵义--CPU 中央处理单元(Central Processing Unit, CPU)是系 统的“大脑”,它知道如何和各种不同空间的存储器交换 (读或写)信息。同时,也执行一些逻辑指令,最基本 和最通用的有:加、减、逻辑“或”、逻辑“与”、逻辑“异 或”、移位、移动和复制。一些处理器可能执行更加复杂 的操作,但这些操作都是由最基本的操作组合得到的。
微控制器的涵义--CPU CPU由一些子系统构成,在这些子系统中最重要的 是程序计数器(Program Counter, PC),指令译码器和算 术逻辑单元(Arithmetic Logic Unit,ALU)部分。 PC指向Flash存储器指定的地址,然后返回指令和数 据。PC用来确定送到指令译码器内的Flash中的字段。指 令译码器包含译码逻辑,这些逻辑将对从Flash返回的数 进行“翻译”,用来确定程序将执行的指令,这些指令将“ 告诉”CPU下一步所做的逻辑操作行为。
微控制器的涵义--CPU CPU不但能实现运算操作,也能修改程序运行的地 址。如果在执行指令的过程中,并不是顺序的执行指 令,比如遇到调转指令,那么PC将加载新的所要运行 指令的地址,并且从指向Flash新的地址位置的地方执 行程序。如果指令需要CPU执行一些运算,那么相关的 数将送到ALU单元中。 此外,CPU也能根据所接收到的指令对外设进行控 制。
微控制器的涵义--Cache 从位置和访问速度方面来说,高速缓存Cache最靠近 CPU。有时,将Cache直接集成在同一芯片内。但并不是 必须放在同一个硅片上,只是封装在同一个芯片内。
微控制器的涵义--RAM 从CPU访问速度来说,访问随机访问存储器( Random Access Memory, RAM)比访问高速缓存要慢。 需要说明的是,这个词语已经失去了它的原本含义 ,这是由于现在大部分的存储器都能够以任何顺序进行 访问。
微控制器的涵义--硬件驱动 从速度来说,是系统中最慢和最大的存储部分。它 用来保存程序,并且是由非易失性的存储介质构成。
微控制器编程语言 世界上不管是什么厂商的CPU,也不管它们采用什 么样的结构,它们都有下面的共同特点: • 都是靠程序计数器(Program Counter, PC)来控制程序的运行,正因为这个原因,它们本质上也是串行执行的; • 工作在二进制状态下,也就是通常所说的在PC的控制下,通过运行二进制组成的机器代码,来控制CPU内各个功能部件的运行。
微控制器编程语言 对CPU来说,所谓的“机器语言指令”,就是通过 CPU内的控制逻辑来协调CPU内各个功能部件,完成所 要求的操作。机器语言的运行效率是最高的。 机器语言指令应该由:操作码和操作数两部分构成。 • 操作码告诉CPU所需要执行的操作; • 操作数是执行操作所针对的对象。这些对象包括:立即数,寄存器和存储器等,通过访问这些对象来获得所需要操作的对象。比如:对8051来说,机器语言指令-7D25,表示该指令要实现数据传输操作,“7D”是操作码,“25“是操作对象”,其表示将十六进制数#25,送到R5寄存器中。
微控制器编程语言 但是,正如前面所说的,纯粹意义上的“机器语言 ”对程序员太难理解了,为什么?这是因为程序员是 CPU的操作者,而不是CPU的设计者,程序员根本不可 能从二进制代码的排列中看出“机器语言”所描述的逻辑 操作行为。
微控制器编程语言 为了帮助程序员理解CPU所执行的操作,通过汇编语 言助记符指令来帮助程序员设计指令来控制CPU的运行。 汇编语言助记符指令通过汇编器被翻译成机器语言指 令。 用汇编助记符描述机器指令的形式为: [标号:] 助记符 [操作数] [;注释] • 标号用来表示一行指令 • 助记符表示所要执行的逻辑操作行为 • 操作数为逻辑操作行为所操作具体对象
微控制器编程语言 现在用汇编语言来描述上面的机器指令“7D25”: MOV R5, #25 MOV表示数据移动操作,R5表示目的操作数,#25 表示源操作数,这个助记符汇编指令所表示的是,将立 即数25复制到R5寄存器中。 使用助记符来描述CPU所要进行的操作,比使用机 器语言直接描述更加容易理解和记忆。
微控制器编程语言 但是,由于汇编语言下面是机器语言,所以对于使用 汇编语言编程的程序员来说,他必须很清楚CPU的指令集 ,寄存器单元和存储器映射等繁琐的硬件规则。虽然其执 行效率基本上和机器语言一样,但是使用汇编语言编程效 率很低。 因为很多程序员根本不了解CPU的具体内部结构, 所以对它们来说,使用汇编语言编程并不比使用机器指令 编程好到哪里去,这也是一件令他们非常痛苦的事情。
微控制器编程语言 • 值得高兴的是,在今天,厂商开发的软件平台支持使用C、BASIC等高级语言对硬件进行编程;C语言是不能直接在CPU上运行,它必须首先通过编译器(Compiler)转换成机器语言,才能在CPU上运行。使用高级语言所编写的代码其运行的效率不可能比用汇编语言编程的运行效率高,所以说,如果你想让C语言所编写的代码和汇编语言编写的代码有一样高的代码执行效率,你只能是绞尽脑汁的对C代码进行优化,或者使用C语言和汇编语言混合编程,来满足代码长度和运行时间的设计要求。虽然这一过程是也会让程序员耗费很多的精力,但是,值得他们高兴的是,他们再也不用和底层硬件直接打交道了。
微控制器编程语言 表1.1 C语言和汇编助记符之间的对应关系 现在更令程序员更高兴的事情是,越来越多的厂商提 供了硬件的应用程序接口(Application Program Interface, API)函数,这样程序员可以根本不用知道更多的硬件实 现细节,只需关心如何编写代码来使硬件工作,这样就 大大提高了程序的设计效率。
可编程片上系统PSoC概述-PSoC发展概述 当今世界,嵌入式处理器无处不在。在过去三十年 间: • 市场要求不断地降低嵌入式系统的成本; • 要求嵌入式处理器处理及控制能力不断的提高; 在这两个因素的推动下,使得嵌入式处理器的功能 变得越来越复杂。 所以,当半导体市场出现越来越多的片上可编程系 统,设计者就不会感到奇怪了。 这种PSoC其实质就是将CPU、模拟和数字子系统集 成在单芯片上。典型的,美国Cypress公司,率先实现了 在单芯片上实现完整的模拟和数字系统的集成,其典型 的代表作即PSoC1、PSoC3和PSoC5。
可编程片上系统PSoC概述-PSoC发展概述 特别值得一提的是,PSoC3和PSoC5片上可编程系统 ,由于在芯片内部分别集成了业界流行的8051 CPU硬核和 ARM Cortex-M3 CPU硬核,使其受到业界的高度关注。以 PSoC芯片和PSoC Creator软件开发工具为代表的硬件设计 平台和软件设计工具,引领着未来嵌入式系统设计的发展 方向。
可编程片上系统PSoC概述-PSoC发展概述 其设计方法的核心就是,以不同的数字和模拟IP核“ 积木块”为中心的“系统级”设计,这种设计方法所体现出 来的是对未来嵌入式设计者所要求的“重基础”和“宽专业” 的要求。因为,这种PSoC具有很高的集成度,所涉及的知 识内容也比较多,这就是“宽专业”,但是,要想能完成 PSoC的设计,要求设计者有非常好的基础理论知识,这就 是“重基础”。 使用PSoC进行嵌入式系统设计具有以下几个方面的优 点:
可编程片上系统PSoC概述-PSoC发展概述 1. 定制 基于PSoC嵌入式系统的设计人员可以很灵活地选择 所要连接的外设和控制器。因此,设计人员可以设计出 一个独一无二的外设,这个外设可以直接和总线连接。 对于一些非标准的外设,设计人员很容易的使用PSoC内 嵌的通用数字块(Universal Digital Block,UDB)阵列实 现对非标准外设的定制。比如,设计人员很容易的在 PSoC上设计出多个UART接口的嵌入式系统,而这些在 传统的8051单片机和嵌入式系统是无法实现的。因此, 在PSoC平台中,向这样类似的配置是很容易实现的。
可编程片上系统PSoC概述-PSoC发展概述 2. 降低元件成本 由于基于PSoC平台的嵌入式系统的功能多样性,以前 需要用很多元件才能实现的系统,现在可以使用一个PSoC 芯片实现。比如,辅助I/O芯片或协处理器与现有的处理 器之间的连接。减少在设计中所使用的元件的数量,不但 可以降低元件的成本,而且可以大大缩小电路板的尺寸, 提高系统的可靠性。
可编程片上系统PSoC概述-PSoC发展概述 3. 硬件加速 选择PSoC的一个重要的原因就是,PSoC能在硬件和软 件之间进行权衡,使嵌入式系统达到最大的效率和性能。 比如,当算法是嵌入式系统软件性能的瓶颈时,一个使用 定制的协处理器引擎能用来实现算法,这个协处理器通过 专用的,低延迟的通道与嵌入式处理器连接。使用现代的 硬件设计工具,很容易的将软件瓶颈转向硬件处理。 下面通过表1.2详细说明它们在软件和硬件设计上的区 别。
可编程片上系统PSoC概述-PSoC发展概述 综合上述,PSoC是一个MCU,但是是一个高度的硬件和软件可编程的MCU。在PSoC的平台上充满了设计的创意。
PSoC设计方法 --设计背景 一个典型的嵌入式系统由下面三个主要模块构成: • 处理器; • 数字(外设和逻辑); • 模拟(用于与传感器和控制器的物理接口); 系统根据硬件接口要求,由三个模块连接构成硬件平 台。然后,在这个硬件设计上,“构建”软件,来执行所要 求的处理和控制功能。 按照传统的设计方法,一旦定制的“软件”和“硬件”开 始运行,对这个设计需要进行修改或更新时,就成为一件 令设计者异常痛苦的事情。众所周知,这是一件耗钱和耗 时的工作。
PSoC设计方法 --设计背景 对于嵌入式系统设计者来说,需要其设计在市场上超 过其竞争对手,以快速的占领市场。 当你在市场上看到种类繁多的手机等电子产品的激烈 竞争时,你就彻底明白了市场对嵌入式系统设计者是多么 的重要。 为了拥有早期市场优势,在知识和投资中,尽可能的“ 重用”。“重用”其实就是重复使用,这种思想使得设计成 本大大降低和设计周期大大缩短,这应该是所有嵌入式系 统设计者最喜欢的。当然,这种结构和设计平台是灵活的 和可扩展的。
PSoC设计方法 --设计背景 嵌入式系统设计者,希望支持其嵌入式系统设计的 工具和元件能够支持甚至最后几分钟的重要变化。这样, 使得它们能从容的面对这种变化,更加对设计充满信心。 当然设计应该充分的利用工业标准的“生态设计”, 查查相关资料就知道“生态设计”对未来嵌入式系统设计时 多么的重要。 嵌入式系统设计发展到今天,设计者应该充分利用众 多的嵌入式开发社区和标准的工具。充分利用这些资源可 以少让你走弯路,学会站在巨人的肩膀上工作,这样你将 享受到嵌入式设计带来的乐趣。
PSoC设计方法 --设计背景 这些挑战其实可以归结为一个事实,即较长的设计 周期,较高的市场要求变化几率和不同的需求。 众所周知,一点点设计变化,都将使得设计周期延 长。缩短设计周期,不但拥有了财富上的优势,而且降 低了不确定性,提供了早期消费者提供的反馈信息,当 你拥有这些信息,对产品快速改进时,产品就成为市场 的领导者。
PSoC设计方法 --IP核复用技术 SoC设计,本质上就是在单芯片内部,将不同功能 的IP核的连接在一起,以满足不同的应用要求。现在的 PSoC设计,规模巨大而且功能复杂,设计人员不可能从 头开始进行设计。现在采用的方式是,在设计中尽可能 使用现有的功能模块,当没有现成的模块可以使用时, 设计人员才需要自己花时间和精力设计新的模块。 EDA设计人员把这些现成的模块通常称为IP( intellectual Property)核。IP核来源主要有三个方面: • 前一个设计创建的模块; • SoC生产厂商的提供 • 第三方IP厂商的提供。
PSoC设计方法 --IP核复用技术 IP核是具有知识产权核的集成电路芯核总称,是经过 反复验证过的、具有特定功能的宏模块,与芯片制造工艺 无关,可以移植到不同的半导体工艺中。 到了SOC阶段,IP核设计已成为片上可编程系统解决 方案厂商中非常重要的任务,其所能提供的IP核的资源数 目,体现了厂商的实力。对于可编程SoC芯片,其提供的 IP核越丰富,用户的设计就越方便,其市场占用率就越高 。目前,IP核已经成为系统设计的基本单元,并作为独立 设计成果被交换、转让和销售。 从IP核的提供方式上,通常将其分为软核、硬核和固 核这3类。从完成IP核所花费的成本来讲,硬核代价最大 ;从使用灵活性来讲,软核的可复用使用性最高。
PSoC设计方法 --IP核复用技术 1.软核 软核在EDA设计领域指的是综合之前的寄存器传输级 (RTL)模型;具体在FPGA设计中指的是对电路的硬件 语言描述,包括逻辑描述、网表和帮助文档等。 软核只经过功能仿真,需要经过综合以及布局布线才 能使用。其优点是灵活性高、可移植性强,允许用户自配 置;缺点是对模块的预测性较低,在后续设计中存在发生 错误的可能性,有一定的设计风险。 软核是IP核应用最广泛的形式。比如:可以使用HDL 语言在PSoC芯片内部,通过UDB资源生成设计者定制的 外设控制器。
PSoC设计方法 --IP核复用技术 2.固核 固核在EDA设计领域指的是带有平面规划信息的网 表;具体在SoC设计中可以看做带有布局规划的软核, 通常以RTL代码和对应具体工艺网表的混合形式提供。 将RTL描述结合具体标准单元库进行综合优化设计,形 成门级网表,再通过布局布线工具即可使用。和软核相 比,固核的设计灵活性稍差,但在可靠性上有较大提高 。目前,固核也是IP核的主流形式之一。
PSoC设计方法 --IP核复用技术 3.硬核 硬核指经过验证的设计版图;具体在PSoC设计中指布 局和工艺固定、经过前端和后端验证的设计,设计人员不 能对其修改。不能修改的原因有两个:首先是系统设计对 各个模块的时序要求很严格,不允许打乱已有的物理版图 ;其次是保护知识产权的要求,不允许设计人员对其有任 何改动。IP硬核的不许修改特点使其复用有一定的困难, 因此只能用于某些特定应用,使用范围较窄。比如:典型 的PSoC3内部集成了8051CPU硬核,PSoC5内部集成了 ARM Cortex-M3 CPU硬核。
PSoC设计方法 --设计重用技术 “设计重用”是PSoC设计中一个非常重要的设计思想 ,“设计重用”比“IP核复用”具有更高的设计灵活性。这个 思想的提出,使得嵌入式系统设计方法进入到一个崭新的 阶段。当然,这是众多半导体厂商的最高理想境界。
PSoC设计方法 --设计重用技术 设计重用的思想非常吸引人,但是目前的标准的解 决方式仅仅是迫使在项目的另一部分加入“定制”的开发, 这不能根本上解决问题。 使得IP核重用利益最大化的方法是将软件和硬件作为 “同等地位”的“合作者”,不需要使得软件或硬件的任何一 方需要了解对方的具体实现过程。实现这个目的的方法是 ,在定义硬件IP核的时候,顺便也要考虑到软件和开发工 具,这样在应用程序和硬件之间的接口就非常方便、高效 ,同时,彼此不需要“深入了解对方”。
PSoC设计方法 --设计重用技术 Cypress的PSoC Creator开发平台很好的实现了设计重 用的思想,并将其变为现实,即在生成硬件IP时,也同时 提供了相应所需要的软件API函数,这样使得设计更容易 运行,以更快的速度完成,更加容易维护和便携。
PSoC设计方法 --设计重用技术 当使用HDL语言开发IP核时,对其进行综合、仿真、 验证、编写测试平台、编写文档。那么应该为IP核的使用 者在IP核开发工具中提供相同的工具,这个工具就是当用 户在他的设计中例化所需要使用的IP核时,为每个例化的 IP核生成相应的API函数。
PSoC设计方法 --设计重用技术 PSoC3/5由嵌入式的处理器(8051或Cortex-M3)、 可编程的数字阵列和高精度的模拟资源构成。PSoC Creator软件充分的显示出其强大的设计重用功能,即硬 件模块或者元件能通过使用API函数进行封装,来简化软 件代码的开发,同时加速设计过程。
PSoC设计方法 --设计重用技术 • PSoC Creator提供原理图捕获接口,在原理图界面内 ,设计者通过从模拟和数字元件库中拖拽元件来创建设计 。一个元件由一个在原理图界面内可见的符号或者其它原 理图的实现构成。当设计者建立(build)设计时,软件就 根据元件的名字产生相应的API函数。
图1.2 API函数的定制 PSoC设计方法 --设计重用技术
PSoC3设计流程 硬 件 设 计 流 程 软 件 设 计 流 程 在空白的界面开始设计 源文件编辑器 从列表中,拖出元件,并将其放置到空白界面中。 建立器(builder) 用块和/或RTL定制元件 C51编译器,生成目标代码(.obj) 将元件连接到一起 LIBX51库管理 器,生成库文件(.lib) 将元件连接到时钟系统、DMA、中断和引脚 LX51链接器,生成绝对目标模块文件(.omf) 综合、映射、布局布线 OHX51生成器, 生成十六进制文件(.Hex) 代码生成器 下载设计到PSoC芯片中 PSoC设计流程
PSoC3设计流程-硬件设计流程 这里的“硬件”概念,是指在PSoC3芯片内,利用芯片 内的CPU、存储器、数字子系统、模拟子系统等IP核资源 ,通过数字和模拟总线将这些IP核连接在一起,在“硅片” 上实现一个“定制”功能的数模混合嵌入式系统,这和通常 的“硬件”概念是不一样的。 基于PSoC芯片内的硬件设计,采用的是原理图和硬件 描述语言(Hardware Description Language, HDL)的混合设 计方法实现的。
PSoC3设计流程-硬件设计流程 原理图设计方法是指:从空白的背景开始设计,允 许设计者在这个空白的背景下,开始构建硬件系统,这个 构建硬件系统的过程,实际上就是在空白背景上放置不同 功能的IP核,然后用线连接的过程。构建硬件系统,可以 使用的方法包括: • 通用的外设 • 串行通讯模块 • 标准模拟模块 • 布尔原语 • 层次化的元件(比如用户根据特殊要求定制的) • 用户创建的寄存器传输级描述(Register Transfer Level,RTL)
PSoC3设计流程-硬件设计流程 HDL设计方法是指:当PSoC芯片所提供的IP核资源 不能满足设计需要时,设计者需要使用硬件描述语言( Hardware Description Language,HDL)和PSoC Creator软件 提供的相应功能来实现“定制”的要求。当这个设计在验证 完后,就可以使用原理图的设计方法,将这个IP核添加到 设计中。 当使用原理图和HDL语言完成设计实现后,使用 Creator软件提供的软件工具对硬件设计进行处理,处理过 程主要包括:
PSoC3设计流程-硬件设计流程 1.综合 综合可以自动将系统直接从行为级描述综合为寄存器 传输级描述。行为级综合的输入为系统的行为级描述,输 出为寄存器传输级描述的数据通路。 2.映射 将设计中的逻辑描述映射到PSoC内相对应的功能单元 中。
PSoC3设计流程-硬件设计流程 3.布局布线 布局布线的主要作用是调用布局布线器,根据用户约 束和物理约束,对设计模块进行实际的布局,并根据设计 连接,对布局后的模块进行布线。顺序是:先模拟部分, 后数字部分。 4.代码生成器 当布局布线完成后,生成用于创建配置的设置信息, 写到当前设计的工程目录下的Generated File文件夹下。在 建立整个工程时将使用这些信息。
PSoC3设计流程-软件设计流程 PSoC3平台上的软件设计是在PSoC3内所构建的硬件平 台基础上实现的。其软件程序的设计流程包含以下几个步 骤: 1.C代码和汇编语言代码的编写 通过PSoC Creator软件提供的C语言编辑器和汇编语言 编辑器,完成相关代码的输入。相关代码是软件设计中和 C或汇编语言有关的代码,比如:.h头文件,.c文件和.A51 汇编文件等。 2.建立器(Builder) 当建立工程时,将硬件设计流程中所生成的和硬件有 关的代码,与源文件编辑器所输入的C或汇编代码放在一 起使用软件流程进行处理。