PSoCCreator软件及设计流程.ppt_第1页
PSoCCreator软件及设计流程.ppt_第2页
PSoCCreator软件及设计流程.ppt_第3页
PSoCCreator软件及设计流程.ppt_第4页
PSoCCreator软件及设计流程.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章 PSoC Creator软件及设计流程 Chapter 8 PSoC Creator Software & Design Proess,何宾 2010.10,PSoC Creator软件及设计流程 -前言,本章主要介绍PSoC Creator软件及设计流程,其内 容主要包括: 基于PSoC3工程的简单流程; 基于PSoC5工程的简单流程; 基于PLD的自定义元件设计流程。,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,PSoC Creator 是最先进的集成开发环境(Integrated Development Environment,IDE),带有创新性的图形设 计编辑器,构成独特而强大的硬件/软件协同设计环境。 图形化的设计入口简化了配置一个特殊元件的任 务。设计者可以从元件库内选择所要求的功能,并且将 其放置在设计中。所有的参数化元件都有一个编辑器对 话框,允许设计者根据需要对功能进行裁减(定制)。,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,PSoC Creator软件平台自动的配置和布线I/O到所 选择的引脚,并且为给定的应用产生应用程序接口函 数API,通过这些接口函数对硬件进行控制。 修改PSoC的配置是非常简单的,比如添加一个新 元件,设置它的参数和重新建立(rebuilding)工程等。,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,在开发的任何阶段,设计人员都能很自由的修改 硬件配置,甚至是目标处理器。设计者可以将应用修 改到新的目标上(硬件和软件),甚至是从8位平台移 植到32位平台上(只需要选择新的设备,并进行重新 的建立)。 设计者也可以修改C编译器和进行性能评估。 下图给出了PSoC Creator软件的主界面。,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,图 PSoC Creator软件平台主界面,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,PSoC Creator软件平台的特点主要有: 集成了原理图捕获功能用于设备配置; 可供选择的丰富的元件IP核资源; 集成了源代码编辑器; 内置调试器; 支持自定义元件创建(设计重用)功能; PSoC 3 编译器 - Keil CA51(无代码大小限制); PSoC 5 编译器 - CodeSourcery 的 Sourcery G Lite 版本,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,主界面的后侧是元件的库的分类列表,库中的元件 用于满足设计者的不同要求。 主界面的右侧是元件的库的分类列表,库中的元件 用于满足设计者的不同要求。元件的范围从最简单的元 件,比如逻辑门和寄存器,到数字定时器,计数器和 PWM,其它模拟元件,比如:ADC,DAC,滤波器和各 种通信协议,比如:I2C,USB,CAN等。,PSoC Creator软件及设计流程 -PSoC Creator的主要功能,符号编辑器使设计者能开发可重用的元件,这样 可以显著的减少将来的设计时间。编辑器仅仅画一个 符号和相关的设计关联符号。PSoC Creator允许放置新 的符号。设计者可以在任何时间和任何工程中“重用”自 己的设计(不需要知道实现的具体细节)。 锚定工具(Anchoring tool)是一个现代的,高 级可定值的用户接口。它包含一个项目管理器和用于 源代码的集成C编辑器和汇编器,以及设计入口工具。,PSoC3/5基本编程模型 -位变量的使用,使用bit关键字声明位操作。下面给出C语言对位的 声明和操作: bit myVar; myVar = myVar; if (!myVar) . ,PSoC3/5基本编程模型 -位变量的使用,此外,为了保证代码容易移植到PSoC5上,可以使用 CYBIT关键字替换bit关键字。例如: CYBIT myVar; PSoC Creator软件工具中提供了完整的宏定义集,用 来将PSoC3的代码移植到PSoC5上。更详细的说明,请参 考cyboot文件夹中自动生成的文件cytypes.h。,PSoC3/5基本编程模型 -避免从中断句柄调用函数,当编译用于中断服务程序ISR的C代码时,Keil编译器 将试图认为在ISR中可能修改的寄存器入栈操作。如果ISR 包含一个函数调用,编译器并不知道函数调用将修改哪个 寄存器,这样就会将所有寄存器内容入栈。比如:改函数 调用:,PSoC3/5基本编程模型 -避免从中断句柄调用函数,CY_ISR(myISR) UART_1_ReadRxStatus(); 为: CYBIT flag; CY_ISR(myISR) flag = 1; ,PSoC3/5基本编程模型 -避免从中断句柄调用函数,void main() /*等待ISR设置flag标志 if (flag) flag = 0; UART_1_ReadRxStatus(); . . .,PSoC3/5基本编程模型 -将变量放在合适的存储空间,当变量放在8051内部的存储空间时,具有最好的 CPU访问效率,根据访问效率,定义变量类型的顺序 依次为: data,idata,pdata和xdata. 由于堆栈空间有限,Keil编译器不在堆栈中保存 本地变量,而是将其保存在固定的存储空间,并且和 其它函数调用的变量共享存储空间。,PSoC3/5基本编程模型 -将变量放在合适的存储空间,此外,尽量使循环变量递减而不是递增操作,这是由 于测试等于0操作比测试等于常数的操作要快。比如使用 下面的代码: void main() data uint8 i; /* 循环10次*/ for (i = 10; i != 0; i-) . ,PSoC3/5基本编程模型 -将变量放在合适的存储空间,在C代码中,为了测试某些位,经常使用下面的代 码风格: uint8 x; x |= 0x10; /* set bit 4 */ x /* toggle bit 4 */ if (x & 0x10) /* test bit 4 */ . . . ,PSoC3/5基本编程模型 -将变量放在合适的存储空间,使用8051比特级的汇编指令,实现C中的按位操 作,使用sbit关键字和特殊的操作符(不是C语言 中的按位操作)。 通过下面两种方式实现: 1)将变量放到位可寻址的区域20-2F,使用bdata 关键字。然后用sbit和定义感兴趣的比特位。,PSoC3/5基本编程模型 -将变量放在合适的存储空间,/* This places myVar in the 8051 * internal data space, in 202F. */ bdata uint8 myVar; /*放置myVar到8051内部空间20-2F sbit mybit4 = myVar4; /*myVar变量的第4位 */ mybit4 = 1; /*设置myVar 变量的第4位*/ mybit4 = 0; /*清除myVar变量的第4位 */ mybit4 = mybit4; /*切换myVar的第4位 */ if (mybit4) /*测试myVar的第4位 */ . . . 这个方法也可以对32和16位变量其中的某些位进行操作。注意 bdata和sbit定义为全局的,而不是本地的。,PSoC3/5基本编程模型 -将变量放在合适的存储空间,2)将所感兴趣的比特位暂时放到感兴趣的SFR中。查 看cy_boot文件夹下由PSoC Creator生成的PSoC3_8051.h文 件。了解sbit和sfr关键字用于支持位访问的SFR。 sfr PSW = 0xD0; sbit P = PSW0; sbit F1 = PSW1; sbit OV = PSW2; sbit RS0 = PSW3; sbit RS1 = PSW4; sbit F0 = PSW5; sbit AC = PSW6; sbit CY = PSW7;,PSoC3/5基本编程模型 -使用B寄存器用于暂存数据,在8051结构中,B寄存器用来方便汇编指令MUL和 DIV的操作。除此以外,它只是一个辅助的寄存器。下 面给出使用B寄存器实现两个8位变量的交换: uint8 x, y; B = x; x = y; y = B;,PSoC3/5基本编程模型 -编写汇编代码的方法,1创建一个单独的汇编源文件 1)在PSoC Creator主界面的Project Explorer子窗口下, 用鼠标右键点击工程名字,并选择“Add new item”。 2) 选择“8051 Keil Assemby Assembly File”,然后输入文 件名。 3)将创建一个汇编文件,该文件在整个工程中的扩展 名为.a51。 4)在文件中添加汇编代码; 5) 可以在主界面的主菜单下选择Helpdocumentation KeilAX51 Assembler User Guide for help on instruction, template等。查看相关的汇编语言指令。,PSoC3/5基本编程模型 -编写汇编代码的方法,2在C文件中使用内嵌汇编代码 1)在C源文件中,将汇编代码写在指令“#pragma asm”和“Pragma endasm”中间。 2)在主界面下的Project Explorer子窗口下,鼠标右 键点击源文件,出现Build Settings界面。 3)在Compiler选项界面下,将Inline Assembly设置 为True,即使能在C文件中内嵌汇编语言。,PSoC3/5基本编程模型 -PSoC3中断编程模型(设置全局中断),1)使用PSoC Creator软件中CyLib.h文件中提供的 CYGlobalIntEnable 宏定义来全局中断使能功能。 2)使用PSoC Creator软件中CyLib.h文件中提供的 CYGlobalIntDisable 宏定义来禁止中断使能功能。 使用宏定义,将来可以很方便的进行代码的移植。,PSoC3/5基本编程模型 -PSoC3中断编程模型(定制中断服务程序),可以在main.c或者其它.c文件中编写中断服务程序。用 设计中具体使用的中断元件的例化名字代替下面程序中的 isr_1名字(isr_1为默认的中断原件例化名字)。可以在希 望编写定制中断服务程序的地方编写自己的中断服务程 序,使用下面的方式定义: CY_ISR(MyOwn_Interrupt) /* 以下为定制的中断服务程序代码 */ ,PSoC3/5基本编程模型 -PSoC3中断编程模型,并使用isr_1_StartEx或者isr_1_SetVector API函数来更 新中断向量表(根据具体设计将isr_1名字修改为具体的中 断元件的例化名字)。 main() - /* 主程序代码 */ - /* 修改向量地址到定制的中断服务程序MyOwn_Interrupt, 然后从cydwr文件中修改优先级,然后使能中断 */ isr_1_StartEx(MyOwn_Interrupt); - - ,PSoC3/5基本编程模型 -PSoC3中代码重入,若一个程序或子程序可以安全的被并行执行,则称其 为可重入(reentrant或re-entrant)的;即,当该子程序正 在运行时,可以再次进入并执行它。 若一个函数是可重入的,则该函数: 不能含有静态(全局)非常量数据。 不能返回静态(全局)非常量数据的地址。 只能处理由调用者提供的数据。 不能依赖于单实例模式资源的锁。 不能调用不可重入的函数。 多用户/对象/进程优先级以及多进程一般会使得对可 重入代码的控制变得复杂。同时,IO代码通常不是可重入 的,因为他们依赖于像磁盘这样共享的、单独的资源。,PSoC3/5基本编程模型 -PSoC3中代码重入,需要代码重入,在函数声明和函数定义的名字后面添 加 CYPEENTRANT宏定义声明,比如: uint8 increment(uint8) CYREENTRANT; uint8 increment(uint8 value) CYREENTRANT uint8 iCount1; uint32 iDelay1; value+; for(iCount1=0; iCount12; iCount1+) for(iDelay1=0; iDelay165000; iDelay1+) 关于这部分更详细的内容参考Cypress提供的应用文档 AN54460Interrupt Handling in PSoC3和相关的例子。,PSoC3/5基本编程模型 -PSoC3/5 DMA编程模型,PSoC内的控制器完成下面的数据传输: 存储器到存储器 存储器到外设 外设到存储器 外设到外设 关于DMA控制器更详细的信息,在本书前面章节已 经进行了详细的说明。,PSoC3/5 DMA编程模型 -DMA应用程序API接口函数,PSoC3/5 DMA编程模型 -DMA配置向导,当设计中添加DMA控制器元件后,可以使用PSoC Creator的DMA向导完成对DMA通道的相关参数配置。 DMA配置向导是一个图形化的配置界面,使得设计者 能实现DMA和TD配置选择,而不需要知道底层的API。 当完成DMA和TD配置后,向导产生API能被复制到工程 中,其方法是: 在PSoC Creator软件主界面下的主菜单下选择Tools-DMA Wiazrd,打开配置向导对DMA通道进行参数配置。 在配置向导结束后,将配置向导生成的DMA配置API函数模板,复制并粘贴到main.c文件或者希望的.c文件中。,PSoC3/5 DMA编程模型 -DMA配置向导,注:选中配置向导中的参数TERMOUT时,数据传输完成后, TD在DMA的NRQ触发一个脉冲。这个脉冲触发其它元件,比如:其它中断DMA、中断等。 关于DMA配置向导更详细的使用可以参考Cypress 公司提供的AN52705Using DMA on PSoc3/PSoC5 应用文档。,PSoC Creator软件及设计流程 -基于PSoC3工程的简单设计流程,本工程使用PSoC3内的PWM可编程外设来控制 两个不同的LCD灯的闪烁频率。,基于PSoC3工程的简单设计流程 -加载PSoC3工程,加载PSoC3工程的步骤包括: 1打开PSoC Creator软件; 2如下图,在 Start Page页面中的 Start Page Topic下面 展开Kits and Solutions。,图 Kit and Solution界面,基于PSoC3工程的简单设计流程 -加载PSoC3工程,3在Kits and Solutions下,展开PSoC CY8C38 Family Processor Module Kit。 4点击Ex1_LED_with_PWM.cywrk打开工程。 5选择保存工程的路径; 6工程打开后,如下图所示, 可以在Workspce Explorer下面 看到打开的工程。,图 Workspace Explorer界面,基于PSoC3工程的简单设计流程 -建立PSoC3工程,1如下图所示,在PSoC Creator的主界面下选择 Build-Build Ex1_LED_with_PWM。,图 Build窗口界面,基于PSoC3工程的简单设计流程 -建立PSoC3工程,2PSoC Creator建立工程,如下图,并且在Output窗 口显示建立过程的信息。当output窗口显示“Build Successed”信息后,就可以准备编程了(注意其编译器为 DP8051-Keil)。,图 Output 窗口界面,基于PSoC3工程的简单设计流程 -编程PSoC3工程,下面给出将程序下载到CY8C38开发板上的步骤,这 些步骤包括: 1连接MiniProg3到CY8C38的开发板上。 2在PSoC Creator主菜单下选择Tools-Options,打开Options窗口。 3如下图所示,选择Programmer/Debugger,并展开该选项,然后选择MiniProg3。进行如下设置:,基于PSoC3工程的简单设计流程 -编程PSoC3工程,图 MiniProg参数设置界面,基于PSoC3工程的简单设计流程 -编程PSoC3工程,设置Applied Voltage:3.3V; 设置Transfer Mode:SWD; 设置Active Port:10 Pin; 设置Acquire Mode:Reset; 设置Debug Clock Speed:3.2MHz; 点击“OK”按钮。 4在PSoC Creator主菜单下选择Debug-Select Debug Target。出现如下图所示的界面。,基于PSoC3工程的简单设计流程 -编程PSoC3工程,图 Select Debug Target界面,基于PSoC3工程的简单设计流程 -编程PSoC3工程,5在PSoC Creator主界面下选择Debug-Program, 在PSoC Creator输出窗口显示如下图所示的信息,表示正 在编程和编程成功的信息。 6一直等待编程成功为止。,图 编程Flash信息,基于PSoC3工程的简单设计流程 -运行PSoC3工程并调试,1在提供的CYPRESS开发套件上,用导线将面包板旁的P16接口连 接到LED1;将面包板旁的P17接口连接到LED2; 2给板子再次上电,观察LED等的闪烁频率。 3如下图所示,按键F9,在此行设置断点,并按 键F5,让程序运行。观察灯的变化情况。,基于PSoC3工程的简单设计流程 -运行PSoC3工程并调试,图 断点调试界面,PSoC Creator软件及设计流程 -基于PSoC5工程的简单设计流程,本工程使用PSoC5内的PWM可编程外设来控制两 个不同的LCD灯的闪烁频率。,基于PSoC5工程的简单设计流程 -加载PSoC5工程,1打开PSoC Creator软件; 2如下图,在Start Page页面中的Start Page Topic下面 展开Kits and Solutions。 3在Kits and Solutions下,展开PSoC CY8C55 Family Processor Module Kit。 4点击Ex1_LED_with_PWM.cywrk打开工程。,基于PSoC5工程的简单设计流程 -加载PSoC5工程,图 Kit and Solution界面,基于PSoC5工程的简单设计流程 -加载PSoC5工程,5选择保存工程的路径; 6工程打开后,如下图所示,可以在Workspce Explorer下面看到打开的工程。,图 Workspace Explorer界面,基于PSoC5工程的简单设计流程 -建立PSoC5工程,1如下图所示,在PSoC Creator的主界面下选择 Build-Build Ex1_LED_with_PWM。,图 Build窗口界面,基于PSoC5工程的简单设计流程 -建立PSoC5工程,2PSoC Creator建立工程,如下图,并且在Output 窗口显示建立过程的信息。当output窗口显示“Build Successed”信息后,就可以准备编程了(注意其编译器为 ARM CM3-GCC 4.2.1)。,基于PSoC5工程的简单设计流程 -建立PSoC5工程,图 Output 窗口界面,基于PSoC5工程的简单设计流程 -编程PSoC5工程,下面给出将程序下载到CY8C55开发板上的步骤,这些步骤包括: 1连接MiniProg3到CY8C55的开发板上。 2在PSoC Creator主菜单下选择Tools-Options,打开Options窗口。 3如下图所示,选择Programmer/Debugger,并展开该选项,然后选择MiniProg3。进行如下设置:,基于PSoC5工程的简单设计流程 -编程PSoC5工程,图 MiniProg参数设置界面,基于PSoC5工程的简单设计流程 -编程PSoC5工程,设置Applied Voltage:3.3V; 设置Transfer Mode:SWD; 设置Active Port:10 Pin; 设置Acquire Mode:Reset; 设置Debug Clock Speed:3.2MHz; 点击“OK”按钮。 4在PSoC Creator主菜单下选择Debug-Select Debug Target。出现如下图所示的界面。,基于PSoC5工程的简单设计流程 -编程PSoC5工程,图 Select Debug Target界面,基于PSoC5工程的简单设计流程 -编程PSoC5工程,5在PSoC Creator主界面下选择Debug-Program, 在PSoC Creator输出窗口显示如下图所示的信息,表示 正在编程和编程成功的信息。 6一直等待编程成功为止,图 编程Flash信息,。,基于PSoC5工程的简单设计流程 -运行PSoC5工程并调试,1在开发板上,用导线将面包板旁的P16接口连接 到LED1;将面包板旁的P17接口连接到LED2; 2给板子再次上电,观察LED等的闪烁频率。 3如下图所示,按键F9,在此行设置断点,并按键 F5,让程序运行。观察灯的变化情况。,基于PSoC5工程的简单设计流程 -运行PSoC5工程并调试,图 断点调试界面,基于PSoC5工程的简单设计流程 -基于PLD的自定义元件设计流程,自定义元件是PSoC Creator所提供了一个非常强大 的功能,设计人员可以充分利用软件强大的自定义元件 功能实现特定元件的设计和复用。 下面将通过一个设计详细的介绍自定义元件的设计 流程,并进行验证。,基于PSoC5工程的简单设计流程 -基于PLD的自定义元件设计流程,该工程将使用基于Verilog HDL设计Count4ByN带 有异步复位的递增计数器元件。该元件的接口包括: 2个输入信号:clock,reset; 4个输出信号:Count3:0; 参数N(规定了每个始终计数器递增N);,基于PLD的自定义元件设计流程 -建立工程,下面给出建立PSoC工程的步骤,其步骤包括: 1打开PSoC Creator软件; 2如下图所示,在主菜单下选择File-New-Project,图 新建工程选项,基于PLD的自定义元件设计流程 -建立工程,3如下图所示,在Name域内输入counter,并确定 该工程的路径。,然后点击“OK”按钮。,图 创建新工程界面,基于PLD的自定义元件设计流程 -添加自定义元件,1如下图 (a)所示,并切换标签栏到Components, 出现下图(b)的界面。,基于PLD的自定义元件设计流程 -添加自定义元件,2在上图(b)界面下,选中Projectcounter,并点击 鼠标右键,出现下图的界面,选择Add Component Item 选项。,图 选择Add Component Item选项,基于PLD的自定义元件设计流程 -添加自定义元件,3出现如下图的界面,选择“Symbol Wizard”选项, 并在Component Name域中输入:counter4b。并点击“Create New”按钮。,基于PLD的自定义元件设计流程 -添加自定义元件,5出现下图的界面,并按照该界面分别输入reset, clock,和count 3:0名字及其相关参数,点击“OK”按 钮。,图 Symbol Creation Wizard,基于PLD的自定义元件设计流程 -添加自定义元件,6出现左图界面,并在该界面,点击鼠标右键, 出现右图界面,选择Symbol Parameters。,图 选择Symbol Parameters选项,图 创建的符号,基于PLD的自定义元件设计流程 -添加自定义元件,7出现下图的界面,输入N参数,类型为int, Value为1。在Misc栏中选择Description,,图 Parameters Definition界面,基于PLD的自定义元件设计流程 -添加自定义元件,出现下图的界面,并输入描述语句“Amount to increment count by one each clock”。点击 “OK”按钮,返回 上图的界面。,图 Text Editor界面,基于PLD的自定义元件设计流程 -添加自定义元件,修改Hardware设置为:True;修改Validators设置。 8出现下图的界面,输入条件,即当N超过该范围 时,会报错。点击“Ok”按钮。回到前面图界面,并点击 “OK”按钮,退出该界面。,基于PLD的自定义元件设计流程 -添加自定义元件,图 Parameter Validators界面,基于PLD的自定义元件设计流程 -添加自定义元件,8图界面下,选择“Generate Verilog”选项,打开 counter4b.v文件。在该文件中进行代码添加。,图 选择Symbol Parameters选项,基于PLD的自定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论