示差分关关度法的原理干洗是什么原理?为什么它能提高测定准确度?

主管药师模拟试题题库
本试题来自:(2007年主管药师模拟试题,)单项选择:一、A1型题
每一道考试题下面有A、B、C、D、E五个备选答案。请从中选择一个最佳答案。关于药品检测方法准确度的叙述,正确的是A.在仪器分析中.可用信噪比为10:1时的注入量表示B.准确度是表示某方法能够定量测定的最低量C.准确度是表示响应信号或观察指标(如吸收度)与被测物浓度成正比关系的程度D.准确度是表示用某方法测定的结果与参考值接近的程度E.在原料药和制剂的含量测定中,其范围为80%~120%正确答案:有, 或者
您可能感兴趣的试题
单项选择题:()药学信息服务作为医院药学工作的组成部分,其服务对象包括A.医师、护士、药师和患者B.药师、患者、回答来自其他医院及社会药房的电话咨询C.医师、护士、药师、患者、回答来自其他医院及社会药房的电话咨询D.回答来自其他医院及社会药房的电话咨询E.用药患者答案:有,单项选择题:()受理药学信息咨询的一般步骤是A.明确提出的问题-----写出调查提纲-----查阅文献-----写出文献报告-----回答提问B.明确提出问题-----问题归类-----获取附加信息-----查阅文献-----回答提问-----随访咨询者C.明确问题-----查阅文献-----回答提问-----做好记录D.明确提出问题-----查阅文献-----回答提问E.明确提出问题-----问题归类-----获取附加信息-----写出调查提纲-----查阅文献-----回答提问-----做好记录答案:有,
主管药师模拟试题最新试卷
主管药师模拟试题热门试卷第一章&概述
1.1&什么是SOC?
把微处理器、存储器、高密度逻辑电路、模拟和混合电路,以及其他电路集成到一个芯片上,构成一个具有信号采集、转换、存储和I/O处理功能的系统,称为片上系统(SoC-System&
on&Chip)。SoC采用超深亚微米加工工艺、IP(intellectual&Property)内核复用和软硬件协同设计技术,是超大规模集成电路的发展趋势。
SOC又称为系统级芯片,它的设计称为集成系统的设计。集成系统和集成电路的关系相当于集成电路和分立元件的关系。在设计过程中,设计者面对的不再是电路芯片,而是能实现设计功能的IP核库。设计者不必要在众多的模块电路中搜索所需要的电路芯片,只需要根据设计功能和固件特性选择相应的IP核。这些IP核将被集成系统复用。这种设计方法从传统的集成电路设计转向集成系统设计,从整个系统的角度出发,把处理机制、模型算法、芯片结构、各层次电路直至器件的设计紧密地结合在一起,在单个芯片上完成整个系统的功能,设计的重心也从逻辑综合、布局布线转向系统的设计、软硬件的设计以及仿真,它的设计必须是从系统行为级开始的自上向下的设计方法。采用集成系统的设计方法完成同样功能所需的晶体管的数目可以降低很多。集成电路设计方法向集成系统设计方法的转变,不仅是一种概念上的突破,同时也是信息技术发展的必然结果。
从应用的角度划分,SoC包括专用型、可编程型(PSoC-)和OEM(Original&Equipment&Manufacturer&原始设备生产商)型。可编程型基于IP内核,通过编程来选择构成产品,是SoC主要形式和重要应用方向,也是下面介绍的重点。
1.2&PSOC与单片机相比的特点
PsoC与传统微控制器相比具有如下特点:
1、PSoc基于IP内核,通过编程来选择构成产品,具有无与伦比的灵活性,是SoC主要形式和重要应用方向。例如:某一种型号的单片机具有一个16位定时器和一个8位的定时器,那么在用户使用的过程中,只能用这两个定时器;PSoc则不同,以Cypress公司的CY8C29466为例,它里面提供了四种分别是8位、16位、24位和32的定时器,用户在使用的过程中可以根据需要在一定范围内灵活的选择自己需要的定时器,可以使用多个同一种定时器,也可以使用多种定时器,具有很大的灵活性。
&&&&2、数字模块、模拟模块和MCU集成在一起。如图
1.1所示PSoc不仅包含了一般的单片机具有的常用的数字模块,它还包含了多种放大器、电压比较器、模数转换、数模转换、滤波器和用来测量自身微控制器温度的&模块。高度的集成化使得用户的设计快速高效且节省元器件。&&
&&&&3、强大但简单易用的工具
用户模块。用户模块是PSoC中预先定义和配置好的数字和模拟模块,并已对寄存器参数初始化。用户在使用的过程中只需要选择用户模块并对一些必要进行简单的配置即可。
4、强大而高效的开发工具。Cypress公司提供的两种开发软件PSoc&Designer和PSoc&express可以使用户的开发周期大大缩短。实践证明,一个以前从来都没学习过单片机的人学习PSoc要比学习其他单片机用的时间短。
1.3&PSOC发展过程
PSoc的发展与单片机技术的发展密不可分,实际上就是单片机技术在半导体工业不断发展,超大规模集成电路工艺水平的不断提高,深亚微米工艺已经走向成熟,以及EDA软件工具不断升级的今天发展的必然产物,它能极大地满足人们对电子系统的诸如缩小体积、减轻重量、降低功耗、提高可靠性、提高性能、增强保密性、降低系统成本等等多方面的要求。PSoc始于20世纪90年代中期,它的发展主要经历了以下几个阶段:
1.1994年Motorola公司发布了Flex&Core系统,这个系统是用来制作基于68000和Power&PC的定制微CPU。
2.1995年,LSI&Logic公司采用SOC为SONY公司进行设计。以上两者是基于IP&核完成SOC设计的最早报道。
3.1999年Atmel公司开发出首个基于RISC的现场可编程系统级集成电路FPSLIC-AT40K&FPGA。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
4.之前推出的SOC均是数字逻辑系统。2000年Cypress公司首次推出了以CY8C25&&&和CY8C26&&&&系列为代表混合信号SOC。混合信号SOC就是该片上系统既有数字逻辑系统,还有模拟功能,甚至还应该包括数模混合信号模块块、RF电路模块等众多功能模块。
5.后来Cypress公司又相继推出了CY8C29&&&/27&&&/24&&&/22&&&/21&&&等包含少量混合信号处理电路的PSoc.
21世纪集成电路将进入SoC时代。SOC能够将越来越复杂的功能集成到芯片上,这使得集成电路发展成为集成系统,电子整机的功能将可以集成到一个芯片中。SOC将引领新一代嵌入式CPU的技术发展,将不断满足日益增长的功能密度、灵活的网络连接、轻便的移动应用、多媒体的信息处理等要求。&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
第二章&PSoC的结构与特点
&&&作为一种新型的、适合时代要求的智能器件,PSoc具有与普通单片机不同的结构和特点,本章将从整体上予以介绍。
2.1&PSOC的总体结构
PSoc的整体结构如图2.1所示,包括PSoc内核(PSoc&Core)、数字系统(Digital&System)、模拟系统(Analog&System)、系统资源(System&Resource)四部分组成。这四个主要部分通过系统总线通信网络联系在一起。
图2.1&PSoc的整体结构
2.1.1&PSoC内核
PSoC内核是一个功能强大的处理器,支持丰富的指令设置。它包含CPU内核、用于数据存储的静态存储器SRAM、用于控制程序在一个新地址中短暂执行的中断控制器、睡眠和看门狗定时器和一组包括锁相环、内部主振荡器、内部低速振荡器和外部晶振的时钟源。这些时钟和系统资源中的可编程时钟分频因子一起使得把几乎所有的定时需求集成到PSoc设备中成为了可能。
CPU内核,也称为M8C,是一个工作频率可以达到24MHz的强大的处理器。M8C是一个4MIPS的8位哈佛结构的微处理器。在CPU内核的内部静态包含有RAM(SRAM)和FLASH存储器。最小的PSoc设备之间有差别很小的模拟结构。
PSoc的通用输入输出(GPI/O)把器件的CPU、数字和模拟资源与外部引脚进行了连接。每一个引脚有八种不同的驱动模式,不同的驱动模式为外部接口提供了很大的灵活性。每一个引脚都可以因高电平、低电平或者电平的变化而产生一个系统中断。
2.1.2数字系统
PSoc的数字系统由数字PSoc模块、行内数字模块互连(RDI)、行间数字阵列互连(ADI)、全局数字系统互连(GDI)组成。数字模块最多有四行16个。数字模块的个数因设备的不同而不同,具体的各种设备所含的数字模块的数目参见表2-1。
表2-1&不同PSoc的模块数目表
数字模块可以通过一系列的全局总线连接到任何通用的I/O口,全局总线可以把任何信号发送到任何引脚上。全局总线还允许信号多路技术和进行逻辑操作。这一配置使得你的设计从一个外围设备固定的控制器中解脱出来了。
2.1.3模拟系统
PSoc的模拟系统包括全局模拟互连(GAI),基本模拟PSoc模块阵列、&模拟信号基准电压发生器、模拟信号输入多路选择器等几部分组成。模拟系统模块最多包括四个模拟列,12个模拟模块,不同的设备具有的模拟模块的数目不同,参见表2-1。每一个可配置的模块都是由一个拓扑电路组成,该拓扑电路允许用户创造复杂的模拟信号流。
每一个模拟列包括一个B类连续时间模块(ACB)、一个C类开关电容模块(ASC)、一个D类开关电容模块(ASD)。
2.1.4系统资源
系统资源提供了额外的可编程片上系统功能,这些功能取决于你的PSoc设备的特征。参见表2-2。
CY8C系列器件提供的系统资源包括:数字时钟(SYSCLK&2、SYSCLK、CPUCLK、VC1、VC2、VC3、SLEEP等时钟);乘法/加法器(MACs);两种类型(Type1、Type2)的采样抽取器;主从及多主模式的I2&C接口(通信速率:400kbps);用户可设定电压阀值的电源电压检测模块及上电复位模块;片上开关模式升压泵(Switch&Mode&&Pump);片上精密参考电压;USB功能模块;I/O模拟多路选择器。
2.2与传统单片机系统设计方案的比较
PSoc作为一种新型器件,能在更大的程度上满足设计需求,采用PSoc的设计方案与采用传统单片机的系统设计方案相比有很多优点。
1.从开发系统来看,Cypress公司提供的两种开发软件PSoc&Designer和PSoc&Express可以根据硬件电路的构造自动生成高质量的可供调用的API函数,编程者无须像以前那样在底层驱动程序上劳神费力而可将精力更多地放在应用层程序的编制上,提高了开发效率。例如:PSoc中提供了LCD和八段LED的驱动程序,如图2.2所示。用户在使用时,只需要选择该模块后进行简单的参数配置,写2到3句程序即可。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2.PSoc的开发基于成熟而又丰富的用户模块,极大地减少甚至免除了设计者在成千上万外围元件中选择的烦恼,节省了模拟量处理电路调试及修改的精力和时间,提高了成功率、灵活性和可靠性。
3.PSoc采用了一种新的构架,通过可配置的数字及模拟区块灵活地构造适用的用户模块,这是传统的单片机所不具备的。
4.PSoc可以动态重构,即在应用中通过程序改变存储在闪存中设定的参数,重新定义系统所需要的功能模块的种类和数量,动态地完成片上资源的重新分配,实现新的外围元器件的功能,这一点保证了系统资源的最大化,最合理化和最经济化应用。
5.与传统意义上的单片机系统相比,PSoc最大程度地实现了系统单片化的目标,也减少了PCB的面积。和其他架构的SoC相比,PSoc在保证以更简便方式实现更多更灵活功能和具备较高性能的前提下,达到了迄今为止最高的性价比。图2.3中左边的PCB板是采用传统单片机的设计方案,右边的PCB板是在实现与左图相同的功能的前提下采用PSoc的设计方案,从图中明显的可以看出采用PSoc的设计方案节省了大量的元器件,PCB板的面积也相应的小了很多。
图2.3&PSoC与采用传统单片机的设计方案对比
第三章&PSoC集成开发环境
PSoC&Designer是Cypress公司用于PSoC芯片开发的集成开发环境。该软件支持C语言、汇编语言及二者混合编程。
3.1.1软件安装步骤
&(1):将Cypress公司的光盘放入电脑,就出现下面的安装界面:
(2):单击Install&&PSoC&Designer&4.3,出现下面的对话框:
(3):单击Next进入下面的对话框:
(4):单击YES为接受协议,进入选择路径对话框:
(5):单击Browse可以选择安装路径,单击Next进入下一步安装:
(6):单击Next进入安装确认对话框:
(7):单击Next开始安装:
(8):安装完毕后出现下面界面:
(9):单击Finish,重启计算机完成安装。
&&安装完PSoC&Designer&4.3后还需要安装PSoC&Programmer,用来烧写芯片。安装时,只须在第一步时单击Install&&PSoC&Programmer&2.20,其他步骤和前面一致。如下:
3.1.2&激活PSoC&C语言编译器
使用PSoC&Designer&4.3前需要激活PSoC&C语言编译器,按照以下步骤激活:
(1):打开PSoC&Designer&4.3;
(2):执行Tools&&O
&&&&&(3):&单击Compiler选项;
(4):输入PSoC&C语言编译器的授权码;
(5):阅读授权协议,单击OK完成激活。
3.&2.&1&&PSOC&IDE的结构&
&&PSOC&IDE的结构如下图所示:
PSOC&IDE的结构
3.2.2&&文件类型和扩展名
当我们创建好自己的工程后,系统会相应的创建一个以该工程名字命名的文件夹。该文件夹包括下面三个文件夹:lib&(库文件夹)、obj&(目标文件夹)、output(编译输出文件夹)。
ib文件夹存放系统的库文件;obj文件夹存放编译c或汇编源文件时生成的中间文件;
utput文件夹存放调试使用的.hex文件、清单文件及其他调试信息。我们可以在应用程序编辑器子系统下的资源树中浏览文件信息,如下图所示:
&部分文件类型对应的扩展名、存放位置和描述信息如下表所示:
一个由ilibw.exe创建的档案文件
汇编源文件
可编辑的汇编语言源文件
C语言源文件
可添加到工程的C语言
工程输出文件夹
Intel格式的HEX文件
汇编语言包含文件
汇编包含文件夹
可编辑的汇编语言包含文件
包含了由编译器生成的地址信息
定制对工程build/make的流程
工程数据文件
双击该文件打开一个工程
IDE安装路径
模板用来生成文件
3.2.3工程管理器&
PSOC&IDE包括3个子系统:器件编辑器子系统、应用程序子系统、调试器子系统。
如左图所示单击第一个即可进入器件编辑器子系统;单击第二个图标进入应用程序编辑器子系统;单击第三个图标进入调试器子系统。
器件编辑器子系统通常包括:一个用户模块窗口、一个用户模块选择窗口、一个资源管理器窗口、两个用户模块信息窗口。如下图所示:
应用程序编辑器子系统包括:资源树窗口、源文件编辑器窗口、用来显示编译/连接时提示信息的状态栏窗口。如下图所示:
3.2.4&创建一个工程
(1)单击&Start&new&project新建文件;
(2)c:点击&Creat&New&Project&;
(3)填写自己的文件名称,点击&Browse&可以选择存储位置,填好后点击&下一步&并点击&是&;
(4)选择编辑语言的种类,选择C语言,点击&完成&即可;
3.3器件编程器
器件编程器主要用来:选择用户模块、放置用户模块、连接用户模块、配置管脚、跟踪资源、生成应用程序框架等。
3.3.1&选择用户模块
用户模块是一个预先配置的功能,在放置和配置后可以像外围部件一样工作。用户可以在器件编辑器子系统中选择用户模块。窗口左边是用户模块集合子窗口。单击用来查看具体的用户模块,双击用来选定所用的用户模块。
3.3.2&放置用户模块
单击工具栏的Interconnect&View图标即可进入放置用户模块窗口:
左图最后一个即为Interconnect&View图标;下图为放置用户模块窗口:
单击右键,选择&Place&即可放置已选择的用户模块如下图所示:
3.3.3配置用户模块
通过配置用户模块,可以使用户模块与外部引脚或其他用户模块关联起来。通过配置PSoC模块的输入输出参数来完成用户模块的连接。通过以下步骤可以完成用户模块的配置:
(1):单击放置好的用户模块就可以看到用户模块参数。单击参数内容框出现下拉箭头,选择合适的参数:如下图所示:
(2):重复以上步骤即可完成所有模块参数的配置。
3.3.4全局资源的选择:
&&&&&全局资源决定运行的硬件环境,会影响到整个设计。要改变全局资源,单击参数内容框的下拉箭头,选择合适的参数值。如下图所示:
&&&配置好模块后,可以进行用户模块之间的连接。用户模块连接使得PSoC模块之间可以通讯。通过配置PSoC模块的输入输出参数来完成用户模块的互连。互连总线提供了一个外部引脚连接到其他数字用户模块的路径。连接用户模块可以在器件编辑器下的Interconnect&View模式中完成。
&&PSoC模拟模块和管脚之间通过模拟输入多路选择器和输出总线连接,该多路选择器和管脚直接相连,另外在模拟模块和输出管脚之间只有一级输出总线。当管脚和连线一起使用来表示它们目前的连接状态时,这些管脚将被高亮显示。连接到某管脚的连线说明了该管脚已经被使用。
&&&用户模块互连包括连接到周围的PSoC模块、输出总线、输入总线、内部系统时钟、参考电压、外部管脚以及模拟输出缓冲。PSoC数字模块通过全局输入总线和全局输出总线连接到外部引脚和其他的PSoC数字模块。PSoC有8条全局输入总线和全局输出总线,分别对应数字0~7。
&&在配置输出参数以连接到全局输出总线时要注意,一个PSoC模块只能驱动全局输出总线中的一条。被某个用户模块使用的某条全局输出总线不能再作为其他用户模块的输出。
将鼠标移动到所要连接的线,然后左键单击即可出现对话框,选择自己所要连接的输入输出总线及管脚,选中后关闭对话框即可完成连接。如下图所示:
用户把某个PSoC模块指定到某个管脚时,便建立了一个软件配置到硬件的物理连接。管脚互连可以在器件编辑器下的Interconnect&View模式中完成。管脚的设置既可以在与管脚相关的元素里被修改,又可以在管脚处直接修改。直接设置管脚可以把管脚连接到合适的元素并同时断开与其他元素的连接。若多个连接需要连接到一个管脚,这些连接必须直接从元素那里配置到管脚。以下三个位置、都可以配置管脚:
3.5.1连接管脚
管脚连接在器件编辑器下的Interconnect&View模式下完成,具体步骤如下:&
(1):单击Port_X_X;
(2):单击Port_X_X所对应的Select栏;
(3):从出现的菜单中即可以选择所需的模式;如下图所示:
3.5.2断口驱动模式
&&端口的驱动模式同样在器件编辑器下的Interconnect&View模式下完成,CY8C29466提供以下断口驱动模式:&High&Z&、High&Z&Analog、Open&Drain&High、Open&Drain&Low、Pull&Down、Pull&Up、Strong&、Strong&Slow。按照以下步骤可以修改PSoC器件的断口驱动模式:
(1):单击Port_X_X;
(2):单击Port_X_X所对应的Drive栏;
(3):从出现的菜单中选择合适的断口驱动模式。如下图所示:
3.5.3&断口中断模式
&断口中断模式同样在器件编辑器下的Interconnect&View模式下完成。包括四种断口中断模式:ChangeFromRead&、DisableInt、FallingEdge、RisingEdge。具体配置步骤如下:
(1):单击Port_X_X;
(2):单击Port_X_X所对应的Interrupt栏;
(3):从出现的菜单中选择合适的断口中断模式。如下图所示:
PSoC&Designer的应用程序编辑器子系统可以帮助用户管理工程下的文件、编辑源文件、增加和删除文件等。
3.6.1文件介绍
生成应用文件后,便可以使用应用程序编辑器来编写程序。下面对关键的系统文件进行介绍:
(1):boot&.asm&&是一个关键的启动文件,定义启动顺序。器件编辑器利用boot.tpl模板来生成boot.asm文件。以下是系统启动的主要组成部分:
:系统上电之后代码的执行起点;
:中断发生后使用的中断服务表;
C:调用系统初始化程序在复位后对器件进行快速初始化;
D:为使用C语言创建环境;
E:调用main或者_main开始运行可执行程序。
(2):&main.asm
&包含在执行boot&.asm时被引用的_main标记
(3):PSoCConfig.asm
该文件包含了进入系统时的设置
3.6.2添加文件
添加一个文件按照下面的步骤完成:
(1):单击添加文件图标或者在菜单中选择File&&New&,出现田加文件对话框;
(2):在该对话框中选择文件类型栏选择文件类型;
(3):在该对话框中的文件名栏填入文件名;
(4):单击完成即可。如下图所示:
3.6.3删除文件
在资源树里选中要删除的文件,然后执行Project&&Remove&from&project&或者单击右键选择删除即可。
编写好应用程序后,需要把程序下载到相应的硬件进行调试验证。Cypress公司提供了ICE通过USB连接到PSoC&Designer,通过PSoC&Designer调试器子系统上简单的几个图标,便可以进行系统的调试工作。
左图第三个即为调试程序图标,程序编写完成后点击该图标即可以完成调试。将自己的程序中出现的错误改正之后继续Debug自己的程序直到准确无误即可以将程序下载到硬件当中。
3.6.1调试策略
&&在调试程序时,用户可以选择多种调试策略,下面简单介绍:
(1):跟踪
执行Debug&&Trace&就可以进行跟踪。PSoC&Designer&的跟踪功能使得用户可以跟踪和记录器件的活动细节,包括寄存器和数据存储器。跟踪窗口连续显示从最后一个断点开始的字符和操作。程序开始运行时跟踪缓存将被清空;若跟踪缓存已满,则其中旧的内容将被新的内容覆盖。
(2):断点
PSoC&Designer&允许用户在预先定义的地址暂停程序。当遇到断点时程序暂停在断点对应的地址,断点发生后,用户可以通过菜单继续运行程序。执行Debug&&&Breakpoints即可以打开断点对话框,如下所示:
(3):查看寄存器
在调试阶段有5个可以读写的查看窗口:CPU寄存器、寄存器页0和1、RAM、FLASH。
(4):查看变量
执行命令Debug&&Watch&Variables打开变量查看窗口,如下所示:
&&&&在ASM变量查看对话框内,用户可以指定想要查看的地址、数据类型、变量的位置、数据格式。
3.6.2烧写芯片
当调试结束时,可以进行芯片的烧写。通过PSoC&Programmer来完成芯片的烧写,烧写步骤如下:
(1):将PSoC芯片放入烧写插座;
(2):单击烧写芯片图标,从弹出的对话框中选择正确的型号和端口,确认连接好之后,点击Program即可烧写芯片。如下图所示:
第四章&PsoC程序设计示例
4.1&A/D采集与LED显示
实验目的:实现A/D采集和LED显示,即在参考电压为5V的情况下,从外部输入0~5V电压&&&,经过芯片处理后使LED逐个点亮。
实验步骤:
1):打开PSOC&Designer,进入模块选择界面,选择12位的A/D转换器&&ADCINC12,选择4个PWM8模块,以及一个PGA模块;
2):进入连接模块界面,将所有的模块安放,并将4个PWM8依次连接P20~P23四个I/O口;
3):配置模块参数,以及总资源参数;
4):所有配置及连接图如下所示:&&&&&&&&&&&&
(图一)总资源配置,其他的都不变只是将VC1,VC2,VC3&以及VC3Divider配置为图中所示即可;
图(二)ADCINC12资源配置;
图(三)PGA_1资源配置;
图(四)PWM8_1资源配置;
PWM8_2,PWM8_3,PWM8_4和PWM8_1的其他配置一样,只有CompareOut输出不同,依次选择Row_0_Output_0,&Row_0_Output_1,&Row_1_Output_2,&Row_1_Output_3;
5):按照上述配置好资源后,即可以编写程序了,进入编写程序界面,输入下面程序:
&&&&//所有的LED都灭
&&&&&&&&&&&&&&&&//点亮一个LED&
&&&&&&&&&&&&&&&&&&&&&&&//点亮两个LED
&&&&&&&&&&&//点亮三个LED
&&&&&&&&&&//点亮四个LED&
输入程序后调试好后即可以运行程序;在连接开发板和电脑后需要对软件进行设置:在project里选择setting,选择US&B如下图:
在tools里的option里选择如下图:
当旋转电位器时可以看到四个LED将逐个被点亮或者熄灭。
4.2&数字脉宽调制PWM模块实验
PSoC器件集成了8位和16位的通用可编程脉宽调制模块,脉宽调制模块通常要占用1~2个PSoC数字模块资源,这主要取决于要使用的PWM模块的位宽。它具有周期和脉宽编程实时修改的特点,模块的时钟和使能信号具有多个信号源,方便用户使用。
实验目的:通过本实验实现用PWM来控制,使LED闪烁;
实验步骤:
1):打开PSOC&Designer,进入模块选择界面,选择四个PWM8模块;
2)::进入连接模块界面,安放模块,并将4个PWM8依次连接P20~P23四个I/O口;
3):配置模块参数,以及总资源参数;
4):所有配置及连接图如下所示:&
(图一)总资源配置,其他的都不变只是将VC1,VC2,VC3&以及VC3Divider配置为图中所示即可;
图(二)PWM资源配置;
PWM8_2,PWM8_3,PWM8_4和PWM8_1的其他配置一样,只有CompareOut输出不同,依次选择Row_0_Output_0,&Row_0_Output_1,&Row_0_Output_2,&Row_0_Output_3;
5):按照上述配置好资源后,即可以编写程序了,进入编写程序界面,输入下面程序:
实验结果:
输入程序并调试,即可下载到芯片运行,当程序运行时,四个LED将闪烁。
4.3键盘中断和定时器溢出中断实验
实验目的:通过本实验了解CY8C29466的键盘中断和定时器溢出中断的实现方法。
实验中用到的寄存器:
INT_MSKx寄存器
该寄存器的作用是使能各个中断源,使其能够产生未决中断。本例中要将INT_MSK0中的GPIO位初始化为1。
(2)INT_CLRx寄存器
该寄存器的作用是使能各个中断源,使其清除已产生的未决中断。本例中将INT_CLR0中的GPIO初始化为1。
(3)PRTxIE寄存器
端口中断使能寄存器,用来使能GPIO模块的中断。本例中将PRT1IE的Bit4初始化为1。
实验步骤:
(1)打开PSoc&Designer新建一个名为Timer_Keyboard_Int的工程。
(2)在Device&Editor界面选择并放置一个8位定时器。分别设置Global&Resources、Timer8_1和引脚P1[4]、P2[0]、P2[1]、P2[2]、P2[3]的相关参数如下图三个图所示。
&&&&&&&&&&&&
(3)点击如下图所示的Generate&Application按钮,生成与配置相应的代码。
(4)点击ApplicationEditor按钮,进入如下图所示的界面。打开main.c将下面的程序输入
打开psocgpioint.asm文件,在后添加;打开timer8_1int.asm文件,在后添加。
(5)点击Execute&the&Program按钮,运行程序。该按钮如下图中的绿色箭头按钮所示。
实验结果:
程序开始运行,按下实验板上的键盘按钮,实验班上与P2[0]、P2[1]、P2[2]、P2[3]引脚相连的四个发光二极管开始闪烁;再按一下键盘按钮,四个发光二级管停止闪烁。
4.4&&AD、DA和LED显示实验
实验目的:通过本实验了解CY8C29466的数模和模数功能及其实现方法。
实验中用到的模块及其作用:
(1)增益可编程放大器PGA,将P0[1]引脚输入的模拟量输出到AD模块的输入端;
(2)12位AD模块,将输入的模拟量转换为-的数字;
(3)DA转换模块,将AD转换得出的数字转换为与AD的输入对应的电压值,通过P0[5]引脚输出。
实验步骤:
(1)新建一个名为:AD_LED_DA的工程。
(2)放置一个PGA、一个12位AD模块、一个9位DA模块。
(3)按照下面的几个图设置各个参数。
(4)生成应用程序。
(5)打开main.c输入下面的代码:
(6)运行程序
实验结果:
旋转实验板上的电位计,可以看到实验板上与P2[0]、P2[1]、P2[2]、P2[3]相连的四个发光二极管显示的值会随着输入的电压值变化,用万用表测量P0[5]引脚的电压,会发现P0[5]引脚的电压基本上与输入的电压值相等,随输入的电压值的变化而变化。
4.5电压比较器模块的使用&&正弦信号到方波信号的转换
实验目的:通过本实验,初步了解PSoc器件中电压比较器的模块的使用方法。
实验中用到的模块及其作用:
(1)增益可编程放大器,它的作用是将一个从P0[1]引脚输入的模拟量(电压值)输出到电压比较器的参考端,通过改变P0[1]引脚输入的电压值的大小来改变输出的方波信号的占空比;
(2)电压比较器,以P0[1]脚的输入为参考,从输入端输入一个正弦或者三角波信号,输出一个与输入信号频率相同的方波,但其占空比可以改变。
实验步骤:
(1)打开PSoc&Designer,新建一个名为COMPARATOR的工程。
(2)进入后放置一个PGA模块和一个COMPRG模块。
(3)配置相关的参数,配置好的结果如下面几个图所示。本例中,Global&Resoureces一栏不需要配置。
(4)打开main.c文件,将下面的程序输入:
(5)将信号发生器的输出连接到P0[0]脚,将示波器的输入连接到P0[5]脚。
(6)运行程序。
实验结果:
程序开始运行后,可以看到示波器上着与信号发生器的正弦或者三角波信号频率相同的的方波信号,旋转实验板上的电位计,会发现方波的占空比在改变。
4.6动态重配置实验
实验目的:动态重配置是PSoc的最重要的特色之一,使PSoc的资源利用率超过了120%。通过本实验初步了解PSoc动态重配置的基本概念和实现方法。
实验步骤:
(1)打开PSoc&Designer,新建一个名为Dynamic的工程。
(2)在构造dynamic中放置一个增益可编程放大器和一个12位AD转换模块,放置的位置下图所示:
(3)按如下图方法新建一个名为PWM8的配置:
点击图中所示的New,在弹出的对话框中输入PWM8。进入到该构造的界面后放置一个PWM8模块,放置的位置和相关的参数配置如下面几个图所示:
(4)按照与上一步相同的方法新建一个名为PWM16的配置。然后在其中放置一个PWM16模块,放置的位置和相关的参数配置如下图所示:
(5)生成以上配置的应用程序。打开main.c文件,将下面的程序输入:
#include&&m8c.h&&&&&&&&&//&part&specific&constants&and&macros
#include&&PSoCAPI.h&&&&&//&PSoC&API&definitions&for&all&User&Modules
void&main()
&&&&LoadConfig_dynamic();
&&&&PGA_1_Start(PGA_1_MEDPOWER);
&&&&M8C_EnableGI&&&&&&&&&&&&&&&&&&&&&&&&&&&//&Enable&Global&Interrupts&&
&&&&ADCINC12_1_Start(ADCINC12_1_HIGHPOWER);&&&//&Apply&power&to&the&SC&Block&&
&&&&ADCINC12_1_GetSamples(0);&&&&&&&&&&&&&&&&&//&Have&ADC&run&continuously&&
&&&&for(;;){&&
&&&&&&&while(ADCINC12_1_fIsDataAvailable()&==&0);&&&//&Loop&until&value&ready&&
&&&&&&&ADCINC12_1_ClearFlag();&&&&&&&&&&&&&&&&&&&&&&//&Clear&ADC&flag&&
&&&&&&&i=ADCINC12_1_iGetData();&&&&&&&&&&&&&&&&&//&Get&ADC&result&&
&&&&&&&LoadConfig_PWM8();
&&&&&&&PWM8_1_WritePeriod((i+2048)/14);&&&&
&&&&&&&PWM8_1_WritePulseWidth((i+2048)/28);&&
&&&&&&&PWM8_1_DisableInt();&&&&
&&&&&&&PWM8_1_Start();
&&&&&&&for(j=0;j&=30000;j++);
&&&&&&&PWM8_1_Stop();
&&&&&&&UnloadConfig_PWM8();
&&&&&&&for(j=0;j&=30000;j++);
&&&&&&&LoadConfig_PWM16();
&&&&&&&PWM16_1_WritePeriod((i+2048)/8);&&&
&&&&&&&PWM16_1_WritePulseWidth((i+2048)/16);&&
&&&&&&&PWM16_1_DisableInt();&&&&
&&&&&&&PWM16_1_Start();
&&&&&&&for(j=0;j&=30000;j++);
&&&&&&&PWM16_1_Stop();
&&&&&&&UnloadConfig_PWM8();
&&&&&&&for(j=0;j&=30000;j++);&
(6)将示波器的输入与P0[0]引脚相连,打开示波器。
(7)运行程序。
实验结果:
程序开始运行后,可以在示波器上看到两个占空比均为50%,但频率不同的方波交替出现,旋转实验板上的电位计旋钮,可以同时改变两种方波的频率。
附录&&PSoC功能描述
1&PSOC内核
PSoc内核是PSoc系统中最核心的部分,其总体结构如图1所示。它包括:CPU内核(M8C)、SROM、SRAM、Flash存储器、中断控制器、通用输入输出、模拟输出驱动、多个时钟源、睡眠和看门狗。由于模拟输出驱动是PSoc内核的输入输出信号的一部分,所以在这一部分对它进行了描述,而不是在模拟系统部分对它进行描述。
图1&&PSoc内核总体结构图
1.1&CPU内核(M8C)
M8C是一个4MPIS的8位哈佛结构处理器,处理的时钟频率可以从93.7H~24MHz,如此大的频率范围可以使M8C适应于不同的应用要求。M8C所支持的指令集非常丰富,为汇编语言的高效性提供了强有力的支持。
M8C有三个地址空间:ROM、RAM、寄存器。ROM的地址空间包括了监控ROM和Flash寄存器。Flash存储器是由多块容量为64字节的存储块组成,ROM的地址空间可以通过它本身的地址与数据总线来访问,用户不必担心代码存储时的页边界问题,M8C的16位指令计数器(Program&Counter)在每次读取指令时会自动增加寄存器里的值,并转到相应的地址,因此Flash的页边界对用户代码来说是不可见的。在256字节Flash存储块的页边界发生的指令将会产生一个额外的M8C始终周期,作为PC高8位增加的时钟周期。
寄存器的地址空间可以用来设置PSoc微处理器的可编程模块,这个地址空间有两组,每一组都有256&字节的空间。通过设置CPU_F及寄存器的XIO位可以实现对两组寄存区的选择,当XIO置1时选择Bank1,置0时选择Bank0。在默认情况下选择的是Bank0,但在必要的时候可以选择Bank1,再换回Bank0。
1.2&SROM(Supervisory&ROM)
SROM中存储着的代码用来引导PSoc器件和校准电路,也可用来执行Flash操作。存储在Flash中的代码或者器件的设计人员可以调用SROM提供的函数。
SROM可以引导元件的启动,并向Flash组提供一些借口函数,通过执行监控系统调用这些指令可以访问的函数,如图表1所示。函数ProtectBlock和EraseALL并没有在这个表中,
因为这两个函数的执行依赖于外部编程。在执行监控系统调用之前,被执行的函数代码必须先调到累加器中。如果尝试去调用表1中没有的函数将引起死机。SROM函数是通过调用来执行代码的,因此这些函数在执行时需要堆栈。除了Reset函数外,其他的函数在RAM中都有一个参数块,并且在执行监控系统调用之前,必须配置这个参数块。表2列出了所有可能的参数变量。由于监控系统调用指令清除了CPU_F寄存器里的PgMode位,因此所有的参数块变量地址都是在SRAM的0页中。在SROM函数执行到结束时,CPU_F的值将自动还原。
对于那些SRAM大于256字节的PSoc器件来说,当CPU_F寄存器的PgMode位被清除时,MVR_PP和MVW_PP指针还是可以用的。在监控操作执行时,POINT参数就会被当作是MVI页指针所指页中的一个地址,操作中所要用到的数据缓存器可以存在于SRAM的任何页中。
返回值的目的是判断一个特殊函数执行是否成功。这个返回值所存放的位置就是参数块中KEY1的位置。函数CheckSum和TableRead并没有返回值,因为参数块中KEY1的位置是用于返回其他的一些数据的。表3所示是返回值的意义。
函数被禁用,因为参数上有保护
在没有硬件复位的情况下,软件复位
致命错误,SROM停止运行
如果目标块上有读写保护,那么读、写和擦除操作都无法执行。在器件的编程过程中可以对模块进行保护设置,这个保护设置不能通过PSoc器件里的代码来改变。
SROM里各函数的功能如下:
(1)SWBootReset函数的功能是将器件从复位状态转换到执行用户代码的状态。
(2)ReadBlock函数会从Flash中连续读取64字节的内容,也就是一块的内容。块的个数是Flash的总字节数除以64得到的。
(3)WriteBlock函数的功能是将数据写入到Flash中。
(4)EraseBlock函数的功能是擦除Flash里一块连续64字节的数据。
(5)ProtectBlock函数为Flash提供了块保护。
(6)TableRead函数允许用户访问一些特定的数据,这些数据在器件生产期间存储到Flash的第0组中一个叫做Flash表的存储区域里。
(7)EraseAll函数的功能是擦除Flash组里的用户数据,并将每个Flash组里的块保护恢复到无保护的状态。
(8)CheckSum函数的功能是计算用户能指定的从一个Flash的Bank0&开始的模块数目的一个16位校检和。
(9)Calibrate0函数的功能是将存储在Flash某特殊区域的校准值传送到合适的寄存器里,该函数可以在任何时候执行,并将全部校准值重新设置为5V。
(10)Calibrate1函数与Calibrate0函数无关,但它们所执行的功能是一样的。
M8C有8位地址总线用于RAM的寻址,因此寻址范围可达到256字节。SRAM容量大于256字节的PSoc器件的SRAM都是采用分页存储结构的,如图2所示。
表4列出了PSoc器件的可用SRAM。
为了充分利用PSoc器件的分页存储结构,需要用到几个存储器与CPU_F寄存器里的两位。上电复位后,全部分页寄存器还有CPU_F里的两位值都是0,在这种情况下,PSoc器件只有256字节的SRAM空间是可用的。
表4&&PSoc器件中的可用SRAM
存储器分页的体系结构有5部分组成:堆栈操作、中断、MVI指令、当前页指针、索引存储器页指针,其中前3部分与CPU_F寄存器的PgMode位是无关的,后2个部分是与PgMode有关的。
1.4中断控制器
中断控制器为PSoc混合信号阵列提供了一种机制,这种机制可以停止当前任务的执行,而使程序的执行转向另外一个地址。
图3是PSoc中断控制器原理图,图中说明了被提交中断和挂起中断的流程。下面列出了中断处理过程中的事件顺序:
图3&PSoc中断控制器原理图
(1)一个中断产生可以有三个原因:中断条件的发生,比如:执行时间的终止;通过更新一个中断屏蔽寄存器,使能一个先前被提交的中断;一个中断处于挂起的状态,同时CPU_F中的GIE值从0变为1;
(2)完成当前执行的指令;
(3)内部中断执行,并耗时13个周期。在这段时间里,会发生下列事件:
&&1)将PCH、PCL和CPU_F压栈;
&&2)将CPU_F清除,于是GIE就被置位0,因此其他中断被禁止;
&&3)将PCH清0;
(4)程序执行中断向量。典型的就是LJMP指令跳转到用户的ISR;
(5)执行ISR。在ISR中,通过设置GIE=1重新使能中断,要注意避免堆栈的溢出;
(6)执行中断返回指令RETI结束ISR。将PCH、PCL和CPU_F从堆栈中弹出,恢复这些寄存器原来的值,&CPU_F中的GIE重新置为1,中断再次使能;
(7)继续执行接下来的指令,当前执行指令也就是中断发生前指令的下一条。如果有多个挂起中断,程序继续执行这些中断。
PSoc的中断设计时应考虑下面3个问题:
(1)中断延迟。
从确定一个中断到ISR开始执行的时间称为中断延迟,用下面的公式就可以算出这个延迟时间。
延迟时间=当前指令完成所需时间+M8C将中断地址调到指令计数器的时间+LJMP指令跳转到中断向量表执行ISR的时间。
比如,当一个中断发生时,正有一个需5个周期的JMP指令在执行。则在ISR开始前,所需的总CPU时钟周期是:
1~5个周期用于JMP指令的完成+13个周期用于中断程序+7个周期用于LJMP=21~25个周期。
在上面的这个例子中,如果CPU的工作频率是24MHz,则25个时钟周期所需的时间是1.042&s。
(2)中断优先级。
在同一个指令周期内,如果有多个待决中断发生,那么就要考虑中断的优先级,中断优先级译码器就会给优先级最高的请求中断产生一个中断向量,表5列出了全部PSoc器件的中断及其优先级。
(3)被提交中断与挂起中断的比较
当中断条件发生时,一个中断就会被提交,如图2所示触发器的时钟控制器1。这个中断仍然会处于被提交后的状态直到这个中断被捕获或者通过写入到寄存器INT_CLRx相应位而被消除。
如果不使能被提交中断的相应屏蔽位,则这个被提交的中断不能进入挂起状态。&一个中断的屏蔽位存在于寄存器INT_MSKx中某一具体位。如果在寄存器CPU_F中的全局中断已经被使能,优先级译码器会决定出所有中断中优先级最高的中断。这个优先级最高的中断就会获得M8C资源并运行,通过这样的方式,所有的中断都会被处理。
通过清除一个中断的屏蔽位可以关闭相应的中断,这并不清除相应得被提交中断,也不阻碍相应中断的提交,它只阻碍了一个被提交中断成为一个挂起中断。
当应用程序改变PSoc器件的配置时,理解清除被提交中断的功能是非常重要的。举个例子,如果一个数字模块被配置成一个串行通信接收器,这种情况下,原来计数器提交的中断仍然存在着。如果在配置一个数字模块作为一个串口通信接收器之后,将此数字模块的屏蔽位置位,则一个数字模块的挂起中断就立即产生了,为了防止这种被提交中断的继续,应该在使能这个数字模块之前,用寄存器INT_CLRx来清除被提交中断。
1.5通用输入输出
通用输入输出负责将CPU、数字系统和模拟系统与I/O引脚进行连接。GPI/O模块为M8C内核与外界提供了接口,为数字和模拟系统提供了很多配置来支持不同类型的I/O操作。I/O端口由每个是8位的端口组成,每个端口包含8个同样的GPI/O结构,每个GPI/O结构可以用于以下类型的I/O:数字I/O;全局I/O;模拟I/O。&
(1)数字I/O
GPI/O的基本操作之一是允许M8C向外部设备发送或从外部设备接收信息。这种信息传送是通过端口数据寄存器PRTxDR来完成的。
M8C可以通过度PRTxDR来读取一个端口的值。当M8C读寄存器PRTxDR的地址时,当前引脚电压值会被转化为一个逻辑值并将这个逻辑值返回给M8C。需要指出的是:引脚电压可能会重新表现出一个逻辑值,而这个值与上次已经写在PRTxDRDE&值可能是不同的。
(2)全局I/O
GPI/O端口作为全局输入输出连接着PSoc数字模块间信号的出入。每个GPI/O的全局I/O特征在默认的情况下是处于关闭状态。为了配置一个GPI/O作为一个全局输入,必须用寄存器PRTxGS设置目标GPI/O端口的全局选择位,同时还要将GPI/O的驱动方式必须设置成高阻抗模拟驱动方式(High-Z)状态。要配置一个GPI/O作为一个全局输出,也必须设置全局选择位,但此时GPI/O的驱动方式不能设置成High-Z模式。
(3)模拟输入
可以通过模块的AOUT引脚将模拟信号从PSoc器件的引脚上传送到内核。这个模拟连接直接通过GPI/O模块产生一个300欧的阻抗。对于模拟模式,GPI/O模块被配置成High-Z驱动模式,High-Z驱动模式在输入线路上关闭了施密特触发器,这将会减少电能的损耗,同时也会减少内部转换的噪声。
(4)GPI/O中断
图4是GPI/O中断逻辑图。在多个引脚上使能中断时,用户的ISR必须提供一个机制来决定哪个引脚是中断源。
每个GPI/O中断有以下几个步骤:
1)在GPI/O引脚模块中设置中断模式;
2)在GPI/O模块中使能中断位;
3)为GPI/O中断来设置全局屏蔽位;
4)确定全部全局中断使能。
前两个步骤,位中断使能和中断模式设置是通过配置GPI/O寄存器完成的;最后两步对全部的中断来说是必须的。
1.6模拟输出驱动
不同的PSoc器件,最多有四个用来输出引脚上模拟值的驱动,图5说明了这些驱动以及它们在模拟阵列里的关系。每个驱动对全部模拟模块来说都是一个可用的资源,因此模拟输出驱动的数量与器件中模拟列的列数相等。用模拟输出驱动寄存器ABF_CR0可以对每列模拟输出驱动的输出结果进行使能或者禁止。如果模拟输出驱动被使能,则该模拟驱动必须有一个驱动ABUS(Analog&Bus)的模拟模块,否则模拟输出驱动将会进入一个高功耗的工作模式。
各个型号的PSoc器件所具有的模拟输出口的个数如表6所示。
(1)内部主振荡器
内部主振荡器是会产生一个24MHz和48MHz的时钟信号的振荡器。它可以输出两种时钟:SYSCLK和2倍SYSCLK。前者可作为一个内部24MHz的时钟或者一个外部时钟。后者是前者的两倍。在没有32.768KHz晶振的高精度输入源时,内部24/48MHz的准确度将会是&2.5%。有一个选择可以使内部主振荡器与外部晶体振荡器的相位同步。晶体振荡器的选择与它本身的精确度将决定全部振荡器的精度,外部晶体振荡器必须以它自己作为参考源优先锁定内部主振荡器的频率。
当用一个外部时钟源时,可以禁止内部主振荡器的使用,同时也可以禁止使用产生SYSCLK&2的倍频率电路,从而可以降低功耗。当需要一个外部时钟和SYSCLK&2时,就不能禁止内部主振荡器。
在部分PSoc器件里,通过设置CPU_SCR1寄存器中的慢内部主振荡器位就可以产生低频率的SYSCLK,这样就可以有效降低功耗。
(2)内部低速振荡器
内部低速振荡器是一个会产生32KHz频率的振荡器,它用于产生睡眠与唤醒中断和看门狗复位,这个振荡器也可以作为数字PSoc模块的一个时钟控制源。
振荡器的工作模式有三种:正常电压、低电压、电源关闭。正常电压模式下为了产生一个精度较高的频率需要较大的电流;低电压模式经常在有部分部件处于睡眠状态使用,当器件不处于睡眠状态时,可以选择低电压模式,但是振荡器的输出频率精确度较低;电源关闭模式也就是关闭了振荡器的工作。
(3)外部晶体振荡器
外部晶体振荡器是工作在低电压下,功耗小,精度高的振荡器。用户可以用32.768KHz的外部晶体振荡器来代替内部低速振荡器。由图6可知外部晶体振荡电路由一个廉价的晶振和两个小容量的负载电容组成XTALIn(P1[1])与XTALOut(P1[0])两个引脚连接着晶振,Vdd连接着电容,电路的时钟输出可以连接到PSoc器件的其他元件。
为了能够使用这个外部晶体振荡器,OSC_CR0里的第7位必须要被置位,该位默认状态是0。在PLL模式时,外部晶体振荡器通过配置可以为内部主振荡器提供一个参考频率,其目的是为了产生一个24MHz的系统时钟。
寄存器CPU_SCR1中的第2位ECO&EX(ECO&Exists)可以控制系统时钟在ECO与ILO间进行切换,当该位是&1&时,系统用外部晶体振荡器作为时钟源,当该位是&0&时,系统用内部低速振荡器作为时钟源。
(4)锁相环
锁相环的功能是用晶体振荡器的精确度产生系统时钟。虽然锁相环会追踪晶体振荡器的精确度,但是在第一启动时它需要时间来锁定参考频率,时间的长度依赖于OSC_CR2寄存器的第7位PLLGAIN。当PLLGAIN是&0&时,则锁定时间小于10当PLLGAIN是&1&时,则锁定时间近视于50ms。当锁定动作完成后,要保持改为处于高电位状态,以减少输出的抖动。
在选择和使能了32.768KHz的外部晶体振荡器后,接下来的过程就是使能PLL和考虑适当频率的锁定。
1)选择一个频率是3MHz或者更低的CPU;
2)使能PLL;
3)等待10~50ms,等待时间取决于OSC_CR2寄存器的第7位;
4)如果需要的话,可以将CPU设置成一个更快的频率。为了实现这个过程,要写OSC_CR0寄存器的0~2位,当该3位有新值写入后,CPU的频率会立即改变。
1.8睡眠和看门狗
睡眠操作的目的是尽量减少功耗。系统由一个睡眠状态,在固件控制下可以对这个状态进行初始化。在这个状态下,CPU在指令结束时就停止,24/48MHz的振荡器(IMO),Flash存储模块和间隙参考电压将会断电,工作的只有内部或外部的32KHz振荡器和时钟源是32KHz振荡器的PSoc模块和供应电压监控电路。只有当一个中断或者复位事件发生时,系统才会从睡眠状态下醒来。
看门狗计时器电路会对器件产生一个硬件中断。当程序&跑飞&或者死机的时候,WDT的功能就可以使系统重新启动,一旦使能了WDT,只有外部复位和POR才能禁用WDT,一个WDT复位将保持WDT的使能状态。&&
2&PSOC可编程数字系统
PSoc数字系统总体体系结构如图7所示。
PSoc的数字系统由如下4个部分组成:数字PSoc模块、行内数字模块互联、行间数字模块互联、全局数字系统互联。
如图7所示,每个数字行资源由4个数字模块组成,4个模块之间通过行内数字模块互连,PSoc数字系统最多支持4个数字行,行间的信号传输是由行间数字阵列互连总线完成的,各个数字行与外部的信号传输通过全局数字系统互连总线来实现。由于PSoc&Designer为功能模块的配置提供了图形化的接口,这种配置无需繁琐地写各个寄存器,要做的仅仅为在图形界面下简单的鼠标拖动和点击,开发环境就会实现所需要配置,因此本节和下节都不对各个数字或者模拟模块进行详细的介绍,读者可以在PSoc&Designer中看到各个模块的详细介绍,使用起来也非常方便。
各个PSoc器件所具有的数字模块的数目如表7所示。
2.1全局数字系统互连(GDI)
全局数字系统互连总线由4组8位数据线组成。其中,2组用作输入总线,芯片外部端口引脚上的输入信号通过它传输到PSoc核内,输入总线被分为全局输入奇总线(GIO[7:0])和全局输入偶总线(GIE[7:0])。另外2组总线用作输出总线,他的信号是由PSoc核传输到芯片外部端口引脚。输出总线也分为全局输出奇总线(GOO[7:0])和全局输出偶总线(GOE[7:0])。&奇&和&偶&在这里指的是连接到的端口序号。奇总线只能连接到序号为奇数的端口上,而偶总线只能连接到序号为偶数的端口上。
全局数字互连总线有两个端:连接核心信号端和连接端口引脚端。每个端均可以配置成源端或目的端。GDI总线上的信号是不能循环的。例如,不能将两种都来自核心的信号都连接到GDI总线上。各个基本数字模块都可以作为GDI总线的源端或者目的端,系统时钟只能用来驱动GDI而不能作为他的一个端。
每个输入总线和输出总线都有一个保持器。当系统重启动时,保持器将会置全局总线为1。当全局总线转为空闲时,保持器会保存上次的驱动值。
图8为28引脚封装的PSoc器件的全局数字互连框图。
2.2行间数字阵列互连(ADI)
行间数字阵列互连结构框图如图9所示,ADI是不可以配置的,ADI为全局数字互连和行内数字模块互连两种总线之间的互联提供了标准的互连结构。ADI和数字PSoc行资源一个重要的特征就是所有的行资源与全局输入输出总线都有相同的连接方式。这种连接方式决定了每个资源的位置都是固定的。采用这种连接方式的内在原因是:
(1)行内的数字模块快的寄存器需要专用寄存器地址;
(2)不同的数字功能模块拥有不同的中断优先级和中断向量。行资源的位置决定了它内部的数字功能模块的中断优先级。行序号越小表示行内的数字功能模块的中断优先级越高,中断向量地址越低。
(3)PSoc行资源有一个内部的广播网络,他可以通过行内的4个数字模块驱动,也可以通过外部驱动。当广播网络是通过外部驱动时,驱动源可能是其他任意一个行。因此,行位置的不同就会有不同的驱动广播网络的驱动形式。
(4)数字模块阵列中的行组成了一长度为行的数目乘以4的数字模块串。第一行中的第一个数字模块和最后一行中最后一个数字模块之间是没有连接的;数字模块阵列不能组成一个环。所以行与行级联是与行的位置有关的。
2.3行内数字模块互连(RDI)
PSoc数字系统中,各个独立的数字PSoc模块之间大部分的信号传输都是通过行数字PSoc模块的行传递的,只有少数一部分信号是通过可配置的硬件电路传递的。可配置的硬件电路主要是用于数字模块与全局总线之间较为复杂的连接。由图3.10可以看到,前两个数字模块是基本的数字模块,后两个为数字通信模块。
2.4数字PSoc基本模块内部结构体系
PSoc的数字模块资源分为数字基本模块和数字通信模块,它们都具有如图11所示的相同的结构体系。从图11中可以看出每个数字模块主要都是由以下部分组成的:数据路径、输入多路选择器、输出多路选择器、配置寄存器以及一些相关的级联信号组成。
2.5&PSoc器件中包含的数字模块的种类
PSoc中的数字模块有:定时器、计数器、PWM、SPI、串行通信端口UART、EEPROM等等。在PSoc的开发软件PSoc&Designer&中有详细的介绍。这里不再介绍。在使用的时候主要看各个模块的parameters、API和samplecode。PSoc&Designer中的页面如图12所示。选择了一个模块后就会相应看到它的所有的说明。
3&PSOC可编程模拟系统
图13为PSoc模拟体系的总体体系结构。从图中可以看到PSoc模拟系统包括全局模拟互连(GAI)、基本模拟PSoc模块阵列、模拟信号基准点压发生器、模拟信号输入多路选择器等几部分组成。各种PSoc器件所具有的模拟模块的数目见表7。
图13&PSoc模拟体系的总体体系结构
3.1全局模拟互连(GAI)
全局模拟互连是基本模拟PSoc模块阵列与PSoc内核的互连及其内部的互连,模拟系统中用于全局模拟互连的信号总线主要有:
1.模拟系统数据总线
模拟系统数据总线使模拟模块阵列及模拟系统寄存器与CPU系统数据总线相隔离,减轻了系统数据总线的负载。
2.模拟系统比较器总线
每个模拟模块列都配有一根比较起总线,每个基本模拟PSoc模块内部的比较器的输出可以驱动这个总线;但是每列同时只有一个模拟模块可以有效驱动该列的比较器总线。比较器总线的输出可作为数字模块的输入信号,或抽取器的输入,或中断触发信号。其结构如图3.14所示。
3.模拟模块
每个模拟模块列有一个列时钟信号发生器,通过列时钟信号总线为该列中模块提供时钟控制信号。这个发生器的输入时钟源可选,既可以是全局系统时钟V1、V2,也可以是与数字模块输出相连的ACLK0、ACLK1。选定一个输入时钟源后,时钟发生器生成的时钟信号频率为输入时钟信号频率的俄1/4,且整列模块都只能使用该时钟信号。
3.2基本模拟PSoc模块阵列
模拟PSoc模块阵列如图15所示。模拟PSoc模块阵列列数有器件型号各异而不同,每个模拟模块列有3个模拟PSoc模块,其中1个为连续时间模拟模块,2个为开关电容模拟模块。
图15模拟PSoc模块阵列图
3.3模拟系统输入信号选择器
由于不同的PSoc器件有不同数量的模拟模块列,相应得模拟系统中所需的模拟输入信号选择器数量也有所不同。如图16所示。
输入信号选择器将器件引脚的输入信号引到模拟模块列。从图16种可以看到,每个基本模拟PSoc模块列能引入的输入信号是不完全相同的,比如4列模拟PSoc模块阵列的边上2列只有1个4选1选择器的信号流入,而中间2列都是有2个4选1选择器的信号流入,因此,在放置功能模块时,应注意输入信号引脚与功能模块放置位置的连接情况。
3.4模拟信号基准电压发生器
PSoc模拟系统有一个模拟信号基准点压发生器,这个发生器设定了三个内部固定的基准电压,分别为AGND、&RefHi、RefLo,其结构如图17所示。
其中AGND等于Vdd/2,它连到所有的基本模拟PSoc模块。RefHi和RefLo连到模拟模块,用来设置模数转换器及数模转换器所能转换的信号电压范围;也可用作4列或2列PSoc器件中比较器的阀值电压。
3.5模拟PSoc模块内部体系结构
1.连续时间模拟模块内部结构
连续时间模拟模块式围绕一个低偏移、低噪音的运算放大器构建的。有多个由控制寄存器控制的模拟信号多路选择器,它们决定了连续时间模拟模块的内部拓扑结构。在运放的反馈通道上有一组高精度的电阻,其阻值也由寄存器位设定。
连续时间模拟模块还包含一个低功耗的比较器,其输入输出与主放大器相同,它是用来在低功耗休眠模式下,主放大器停用时提供一个比较输出数字信号。
连续时间模块有三个独立的输出,它们分别连到相应总线:模拟信号输出总线、比较器总线和局部输出总线。
2.开关电容模拟模块内部结构
与连续时间模拟模块类似,开关电容模拟模块也是围绕一个低偏移、低噪音的运算放大器构建的。它的内部拓扑结构也由模拟信号多路选择器确定,有所不同的是,在开关电容模拟模块的内部有4组容值由用户设定的电容器组与运放相连。在这4组电容器中,其中3组(Acap、Bcap、Ccap)是输入组,第4组Fcap在反馈通道上。每组的容值在用户设置功能模块相关参数时自动设定。模块内部还有一个比较器将运放输出的模拟信号转换为数字信号。开关电容模拟模块可分为C型,D型两类,它们最大的区别在CCap的连接及双极点滤波器部分模块的位置。D类开关电容模拟模块的BCap切换也比C类灵活。
同连续时间模拟模块相似,开关电容模拟模块也有3个分立输出:模拟信号输出总线、比较器总线、局部输出总线。
3.6&PSoc器件所具有的模拟模块的种类
常见的模拟模块有:模数转换器、数模转换器、放大器、电压比较器、滤波器器等。相关的内容请参看PSoc&Designer。&
4&PSOC系统资源
PSoc的系统资源包括:(1)数字时钟;(2)乘法加法器;(3)采样抽取器;(4)I2C通信模块;(5)内部参考电压;(6)系统复位;(7)开关式升压泵;(8)上电复位和低电压检测;(9)I/O模拟多路复用器;(10)全速USB。PSoc系统资源总体结构参见图18。
图18&PSoc系统资源总体结构图
表8为各PSoc器件具有的系统资源的清单
4.1数字时钟
PSoc&M8C有大量的时钟资源,如图19所示。
这些时钟资源增加了PSoc混合信号阵列的灵活性,表9列出了这些时钟信号及它们的含义
SYSCLK频率的2倍
在外部定时模式下,是内部主振荡器的直接输出或者是EXTCLK引脚的直接输入
内部主振荡器经过分频器输出,可得到8级用户可选的分频值,产生CPUCLK,CPUCLK决定了M8C的速度
SYSCLK时钟信号经过用户可选的1~16分频后得到的输出时钟
VC1时钟信号经过用户可选的1~16分频后得到的输出时钟
SYSCLK,VC1,VC2或者SYSCLK&2时钟信号经过用户可选的1~256分频后得到的输出时钟
从内部低速振荡器或从外部晶体振荡器输出
内部主振荡器直接产生24MHz
系统时钟信号经过4级用户可选的分频后输出,得到的周期为1.95ms~1s的信号
(1)内部主振荡器
内部主振荡器是PSoc混合信号阵列里的大部分时钟资源的基础。在默认模式下,IMO产生24MHz的参考时钟;在锁相环模式下,IMO也可配置。PSoc器件可以用外部提供的时钟去代替IMO,使得这个外部时钟作为IMO通常服务的时钟基础。内部基本时钟是SYSCLK,它由IMO或外部时钟形成。
不管选择IMO还是外部时钟,所有PSoc器件的操作与SYSCLK或者SYSCLK的分频信号同步。
(2)内部低速振荡器
内部低速振荡器,可作为普通时钟使用,也可作为睡眠和看门狗定时器时钟源。
(3)32.768KHz晶体振荡器
PSoc也可配制成使用一个外部晶振的晶体振荡器。
(4)外部时钟
由外部提供的系统时钟代替24MHz内部主振荡器,使PSoc混合信号的一个特性。引脚P1[4]是外部时钟的输入引脚,P1[4]没有与任何特殊的特性相联系,比如模拟I/O,晶振或系统串行编程,而且在物理上与引脚P1[0]和P1[1]靠得不近。如果选择P1[4]引脚作为外部时钟源,该引脚的驱动模式必须设置为高阻抗状态。
因为EXTCLKEN位的复位状态是0,所以器件总是在内部主振荡器的控制下启动。当置位EXTCLKEN位时,外部时钟就成为内部系统时钟源SYSCLK。所有外部和内部的信号包括32KHz时钟,都与外部时钟同步。
(5)时钟倍频器
系统时钟驱动的其中一个模块式时钟倍频器,时钟倍频器的输出是SYSCLK&2,SYSCLK&2可作为PSoc数字模块的时钟源。
SYSCLK&2产生于输入时钟的良侧边缘,不管输入频率怎样,SYSCLK&2的高电平时间固定为21ns,SYSCLK&2的占空比同频率的倒数是成比例的。
SYSCLK时钟可在同步于内部主振荡器与同步于外部时钟之间进行切换,这种切换对用户是透明的。当进行切换时,能够立即中断模拟功能和数字功能。从SYSCLK时钟同步于IMO切换为SYSCLK时钟同步于外部时钟时,IMO关掉以节省电源。这个切换通过设置IMODIS位或者通过设置EXTCLKEN&位的指令;但是从SYSCLK时钟同步于外部时钟切换为SYSCLK时钟同步于IMO时,要先清除IMODIS位,然后执行一个固件延迟,这样就在EXTCLKEN位清除之前,给IMO提供了足够的启动时间。
4.2乘法加法器
乘法加法器(MAC)是一个快速的8位乘法器或者是一个带有32位加法器的8位乘法器。MAC是一个基于寄存器的系统资源。他仅有的一个接口是系统总线,没有特殊的时钟或来自PSoc数字和模拟模块的使能。在超过一个MAC模块的器件中,每个MAC之间都是相互独立的。图20位MAC模块图。
表9为各PSoc器件所具有的MAC的数目。
4.3采样抽取器
采样抽取器模块是数字信号处理应用程序的硬件辅助电路,采样抽取器可用于△-&模数转换器和增量式模数转换器。PSoc器件有两种采样抽取器模块:类型1采样抽取器模块、类型2采样抽取器模块。如表10所示。
(1)类型1采样抽取器
类型1采样抽取器可以划分为两个主要功能单元:一个由标准逻辑单元组成的逻辑模块;一个用户数据路径模块,如图21所示。
逻辑模块式除了数据总线以外所有采样抽取器模块引脚的接口,逻辑模块接受采样抽取器的输入,产生用户模块的必要的控制输入。用户模块是增加和存储累加值的地方,用户模块也是与数据总线的接口。
(2)类型2采样抽取器
仅在CY8C29&66里有类型2采样抽取器模块,与类型1不同,类型2模块完全是Sinc的平方滤波器的硬件实现,在此模块里完成积分和差分,这样大大减少了CPU模拟到数字转换功能的额外要求。
同类型1采样抽取器模块一样,类型2采样抽取器模块也可划分成两个主要功能单元:一个由标准逻辑单元组成的逻辑模块;一个用户数据路径模块,如图22所示,。
4.4&I2C通信模块
I2C通信模块是一个串行处理器,这个处理器是为实现一个完整的I2C从模式或主模式而设计的。
I2C通信模块是PSoc器件与双线I2C串行通信总线的接口。为了减少M8C的额外开销,该模块对状态检测和成帧位的产生提供了I2C硬件支持。硬件和固件结合,为实现I2C函数提供了高度灵活性。I2C模块支持一套基本操作和一组I2C协议的状态条件。在固件水平上联合这些基本操作和条件,去支持所需的数据传输模式。CPU设置控制选项,通过I/O写入,发布命令给部件;通过I/O读取和中断,获取状态。
通过连接两个专用的GPI/O引脚,I2C模块直接控制到外部I2C接口的数据(SDA)和时钟(SCL)信号。通过时钟寄存器读和写操作,PSoc器件固件影响时钟;通过轮询和中断实现与固件同步。
1)主模式/从模式,发送/接收操作;
2)CPU低开销的字节处理;
3)中断或轮询CPU接口;
4)主设备时钟频率:50K,100K,400K;
5)多主设备时钟同步;
6)多主设备模式仲裁支持;
7)7或10位地址(通过固件支持);
8)SMBus操作(通过固件支持);
I2C的硬件限制:
1)对自动地址比较没有硬件支持。在从模式下,每个从地址引起PSoc器件中断和总线延迟。
2)因为接收和发送数据没有缓冲,所以不支持自动接收确认。M8C微控制器必须在每个字节的边界干涉,发送一个字节或确认接收的字节。
该模块有从模式、&主模式,或者主从模式3种执行模式。在从模式下,部件总是侦听开始状态,或者发送和接收数据;主模式可以联合从模式工作。该主设备,支持产生START或者STOP,判断是否有其他主设备在总线上。&
图23&为数据传输在I2C总线上的基本形式。
一个Start条件(由主设备产生)后跟一个字节的数据,有一个7位从地址(也有10位的地址模式)和一个读/写位组成。读/写位设置了数据传输的方向。编址的从设备要求在第9个位时间拉低数据线去确认(ACK)总线。如果接收到ACK,传输可以继续进行下去,主设备可以发送和接收不确定的字节数目。不管什么原因,如果从设备没有回应ACK,主设备产生一个Stop条件去终止传输或者是产生一个Restart条件再尝试一次传输。
4.5内部参考电压
该模块为PSoc&器件中各子系统提供1.30V参考电压。它是由两个模块组成:误差放大器、采样保持缓冲器。缓冲器的输出值是VBG+K&VT。在这个模块同样产生与温度成比例的电压,可以在温度敏感的地方使用。图24是一个内部参考电压简图。
4.6系统复位
PSoc器件支持多种复位类型。在任何电压斜坡的上电期间,各种复位设计成提供无误差操作,这样就允许用户提供外部复位和错误码恢复操作。
PScoc器件中有以下几种复位源,启动复位时,所有的寄存器恢复到默认状态。
1)上电复位;
2)外部复位。PSoc器件的XRES引脚高电平;
3)看门狗复位。看门狗定时器溢出;
4)内部复位。SROM检测到Flash读取无效。
复位状态记录在CPU_SCR0寄存器或者在CPU_SCR1寄存器。
4.7开关式升压泵
只需要使用少数的外部元件,开关式升压泵(SMP)就可以使电池电压泵到克配置的稳定操作电压。
使用SMP线路可以从一个蓄电池组电压产生典型操作电源电压。在Vdd从0V到VPPOR(2.91V)期间,PSoc操作被POR线路停止,然后SMP线路就强制打开。通过连接在Vbat和SMP引脚之间的外部电感器和从SMP引脚到Vdd引脚的外部二极管来实现这个泵。在Vdd和Vss之间必须连接一个大于0.1&F旁路电容。当SMP内部开关开通时,对电感器充电,当SMP内部开关关断时,产生反激,释放电感器能量到旁路电容器,以周期性方式(1.3MHz)完成电容充电,直到关掉SMP。Vdd泵到VLT_CR寄存器规定的电压水平。如图25所示为20引脚PSoc器件开关式升压泵。在操作期间,SMP支持Vbat值降到1.0V,但是启动时,蓄电池电压低于1.1V,就不能启动。在上电和引导时序后,一旦PSoc器件使能,固件可以通过向VLT_CR&寄存器第7位写入1,使SMP功能无效。
4.8上电复位和低电压检测
POR与LVD线路提供保护,防止低电压。POR的功能是检测Vdd,是系统复位,直到Vdd值达到规定的值;LVD的功能是检测Vdd,当Vdd降到低于选择的阀值时,给系统提供中断,并输出状态位
4.9&I/O模拟多路复用器
CY8C21&34和CY8C24&94PSoc器件包含了增强的模拟多路复用功能,如图26所示,这个功能允许多个I/O引脚连接到内部模拟总线。在CY8C21&34,所有的I/O引脚都可以连接到总线;在CY8C24&94,所有的I/O引脚,除了端口7以外,都可以连接到总线。
在CY8C24&94PSoc器件,模拟多路复用器总线可以分成两个独立的网络,这两个模拟多路复用器可以连接到不同的模拟阵列,同时进行信号处理。
在每一个引脚,如图27所示,多路复用功能并行于正常的GPI/0,并使GPI/O引脚进入高阻抗状态。
通过设置MUX_CRx寄存器相应的位,引脚独立地连接到内部总线。可以同时使能任何数目的引脚。在PSoc复位期间,所有这些多路复用器连接都是断开的。
4.9全速USB
PSoc&USB系统资源遵守USB2.0&规范,全速设备的速率高达12Mb/s,使用一个端口和一个USB地址。如图28所示,PSoc&USB由以下部分组成:
(1)串行接口引擎(Serial&Interface&Engine,SIE模块);
(2)PSoc内存仲裁器(PSoc&Memory&Arbiter,PMA模块);
(3)256字节的专用SRAM;
(4)一个全速的带内部调节器的USB收发器和两个专用的USB引脚。
在PSoc系统级,通过M8C的寄存器存取指令,全速USB系统资源连接到PSoc的剩余资源;通过2个USB引脚,连接到外部世界。
SIE支持5个端点,包括1个控制端点和4个数据端点。控制端点可以配置用来支持SETUP、IN和OUT请求。数据端点可以独立配置用来回应中断传输、批传输,或者同步传输。
旗下网站:
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号

我要回帖

更多关于 干洗是什么原理 的文章

 

随机推荐