CYPRESS PSOC3/5培训课程 CYPRESS PSoC3/5 Training

第1章 PSoC设计导论
何宾
2011.12
本章内容
Cypress公司的可编程片上系统(Programmable Systemon-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语言和汇编助记符之间的对应关系
C语言描述
汇编助记符
机器指令
功能
F=C+D
MOV A, 0x08
E508
将数据空间地址为0x08的内容送给累加器A
ADD A, 0x09
2509
将数据空间地址为0x09的内容和累加器A相加后
送给累加器A
MOV 0x0A, A
F50A
将累加器A的内容送到地址为0x0A的数据空间
现在更令程序员更高兴的事情是,越来越多的厂商提
供了硬件的应用程序接口(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(8051内核)
硬件 内部集成大量软件和硬件可配置的模拟
模块
传统8051
内部没有集成模拟模块
内部根据用户要求可定制IP核。
无用户定制IP核功能
端口功能丰富,可配置模拟/数字功能、
驱动能力等
端口功能单一
引脚可以和内部模块任意连接
引脚固定,不能修改引脚和内部模
块的连接方式
软件 汇编,C语言编程
预建立/用户定制元件驱动函数自动生成
汇编,C语言编程
无元件驱动函数自动生成
综合上述,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函数。

PSoC设计方法
--设计重用技术
图1.2 API函数的定制
PSoC3设计流程
软
件
设
计
流
程
源文件编辑器
建立器(builder)
C51编译器,生
成目标代码(.obj)
LIBX51库管理
器,生成库文
件(.lib)
LX51链接器,生成绝
对目标模块文件(.omf)
硬
件
设
计
流
程
在空白的界面开始设计
从 列表 中 , 拖 出元 件 ,并
将其放置到空白界面中。
用块和/或RTL定制元件
将元件连接到一起
将元件连接到时钟系统、
DMA、中断和引脚
综合、映射、布局布线
OHX51生成器,
生成十六进制文件(.Hex)
下载设计到PSoC芯片中
PSoC设计流程
代码生成器
PSoC3设计流程
-硬件设计流程
这里的“硬件”概念,是指在PSoC3芯片内,利用芯
片
内的CPU、存储器、数字子系统、模拟子系统等IP核资源
,通过数字和模拟总线将这些IP核连接在一起,在“硅片
”
上实现一个“定制”功能的数模混合嵌入式系统,这和通
常
的“硬件”概念是不一样的。
基于PSoC芯片内的硬件设计,采用的是原理图和硬件
描述语言(Hardware Description Language, HDL)的混合设
计方法实现的。
PSoC3设计流程
-硬件设计流程
原理图设计方法是指:从空白的背景开始设计,允
许设计者在这个空白的背景下,开始构建硬件系统,这个
构建硬件系统的过程,实际上就是在空白背景上放置不同
功能的IP核,然后用线连接的过程。构建硬件系统,可以
使用的方法包括:






通用的外设
串行通讯模块
标准模拟模块
布尔原语
层次化的元件(比如用户根据特殊要求定制的)
用户创建的寄存器传输级描述(Register Transfer Level,
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或汇编代码放在一
起使用软件流程进行处理。
PSoC3设计流程
-软件设计流程
3.使用编译器对C代码和汇编代码进行编译
对于C代码,软件调用Keil提供的C51编译器对输入代
码进行编译。C51编译器从C文件中产生目标文件.obj。目
标文件可能被添加到库中或者可能和其它文件进行链接。
对于汇编代码,软件调用Keil提供的Ax51汇编器对代
码进行编译。汇编器本质是一个程序,将助记符代码(汇
编语言)翻译成可执行的目标代码。这个目标代码可以在
8051兼容的微控制器上执行。
目标代码是一个特殊格式的二进制文件,包含段的定
义、外部段的定义,二进制内容和调试信息。
PSoC3设计流程
-软件设计流程
4.使用库管理器生成库文件
当设计中需要使用库时,软件调用LIBX51库管理器
,允许创建一个库,或者添加目标文件到库中,或者
从库文件中删除目标文件。
PSoC3设计流程
-软件设计流程
5.使用链接器生成绝对目标模块文件
软件调用Keil提供的LX51链接器/定位器,通过将前面
C编译器和汇编语言编译器创建的目标模块链接在一起,
来创建一个绝对目标模块。前面编译器所创建的这些目标
模块是可以重新定位的,但不可以直接的运行(即使只有
一个源模块构成)。这些目标文件必须通过链接器链接在
一起,并且转换成一个绝对的目标模块。LX51链接器产
生的文件包含:
PSoC3设计流程
-软件设计流程
1)OMF2文件
在这个绝对目标模块中,分配了所有的可定位的段,
并且这些段有固定的地址和空间;
2)MAP文件
链接器列表文件,包含了链接/定位过程的丰富信息,
该文件由很多段构成。每一段以出现在map文件中的顺序
进行了描述。
3)COD文件
链接器CODE文件包含了完整的程序源代码/汇编代码
的列表。这个列表对调试是非常有用的。
PSoC3设计流程
-软件设计流程
6.使用转换器将OMF文件转换成十六进制文件
当需要将代码放到PSoC3内的Flash程序空间时,软件
调用Keil提供的OHX51工具,将链接器创建的绝对目标文
件转换成Intel格式的十六进制文件.HEX。
当上面的硬件和软件设计流程结束后,通过JTAG或
者SWD下载电缆,PSoC Creator软件将HEX文件下载到
PSoC3芯片中。其中的硬件信息用于在PSoC3芯片内构建
硬件平台。
这个硬件平台上的8051中央处理单元执行软件应用程
序,用来控制片内硬件平台,使得整个系统按照具体的应
用要求有条不紊地运行。
PSoC3的结构及功能
PSoC3的8051 CPU子系统使用单周期的流水结构的
8051微处理器,最高运行速度达到67MHz。
CPU子系统包括可编程嵌套的中断控制器,DMA控
制器和RAM。
PSoC3内的单周期运行的8051子系统比标准的8051处
理器速度快几十倍。
PSoC3的结构及功能
PSoC3的结构及功能
--数字子系统结构及功能
系统总线
数字系统
通用数字块阵列
I2C
主/从
UDB
使
用
示
例
N个
定时器、计数
器、PWM
PSoC3的结构及功能
--模拟子系统结构及功能
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。
PSoC3引脚分布
PSoC3器件分类
器件类型
模拟模块(最大资源)
MCU核(8051核)
数字模块(最大资源)
CPU
(
MHz
)
Flash
(KB)
SRAM
(KB)
EEPR
OM
(KB)
LCD段
驱动
ADC
(Δ-Σ)位
数
D
A
C
比
较
器
SC/
CT
模
块
放
大
器
D
F
B
电
容
感
应
UDB
定时器
/PWM
FS
USB
CA
N2.
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
√
-