基于嵌入式PsoC的MCU选色控制器设计
摘要:阐述Cypress公司的可配置片上系统(PSoC)的功能及其实现结构;结合选色控制器开发实例,详细阐述使用PsoC开发的方法和流程。其设计方法也可用于其它控制系统或工业自动化等各种应用。
关键词:PsoC(可配置片上系统) 选色控制器MCU
引言
最近几年,随着电子技术及半导体工艺的迅猛发展,片上系统(SoC),特别是可配置片上系统PsoC(Programmable System on Chip),已逐渐成为微控制器的主流产品。因此,要求设计工程师必须迅速地掌握SoC的开发特点和要求,尽快融入SoC的开发大潮中去。但是,SoC系统设计带来了与传统系统设计全然不同的挑战,其中包括从处理器和存储器的选择到产品环境的考虑。如果设计工程师能够深入理解SoC的开发特点,并且考虑部件之间如何交互,以及各种因素带来的影响等问题,就可以直接提高产品设计的成功率和开发效率,降低系统开发的复杂性和费用,同时增强系统的可靠性和抗干扰能力。
文章根据本人的开发经历,结合选色控制器的开发过程,为设计工程师提供指导,从所有层面上帮助他们为今后的设计项目做更好的准备。
人们在各种各样的微控制器和嵌入式控制系统设计过程中发现,并非不同的设计就必须用到完全不同的外围器件;相反,这其吸大量共的部分,因此,启发了芯片设计工程师建立此种可配置微控制器。在芯片内建立一些通用的数字和模拟块(digital and analog block),把它们配置成微控制器的各种功能模块(Module)。这样,在ASIC设计过程中,应用工程师就可以根据自己的不同设计要求调用不同的功能模块,完成芯片内部的功能配置,实现使用一块芯片就可以配置成具多种不同外围器件的微控制器。
目前,市场上有Cypress MicroSystems,InC和Cygnal Integrated Products,Inc生产可配置的SOC微控制器。本控制系统选用Cypress MicroSystems,Inc生产的M8C内核PsoC微控制器作为控制核心。
javascript:window.open(this.src);" style="cursor:pointer;"/>
下面我们首先熟悉开发的任务要求。选色控制器是一个由信息采集、键盘、显示及输出驱动等部分组成的控制系统,主要用来取代进口和国产剑杆织机上的纸带输入式光电纬纱选色器。
为了便于用户根据不同的实际需要对工作方式及其它参数进行修改,要求所有的参数及组态均可通过面板睥几个操作键进行输入、检查、修改;并可在突然并机的情况下,重新开机后,自动恢复断点参数信息。
根据用户提出的技术指标,我们还必须把它进步量化,并且进一步完成功能设计方案。
1 硬件方案设计
1.1 选择微处理器
在设计任务确定后,应对控制系统所需要的硬件做出初步估计和选择。微处理器是整个控制系统的核心,它的选择将对整个控制系统产生决定性的影响。一般应从以下几个方面考虑微处理器是否符合控制系统的要求:字长、指令的种类和数量、内部寄存器的种类数量、微处理器的速度、中断处理能力以及微处理器的外围电路配套等。对于外围器件的来源、软件的运行等也是设计人员必须考虑的因素,因为其涉及到整个系统实时控制能力以及硬件和应用程序的分开。
Cypress MicroSystems,Inc生产的PsoC是新一代功能强大的8位可配置微控制器。PsoC微控制顺片内有8根独立的输入和输出总线,分别与数字和模block相连。其内部可用的block资源包含:4个基本类型和4个通信类型的数字block,各有3个CT、SCA和SCB类型模拟block。使用这些资源可以配置成不贩功能模块,用以实现微控制器标准外围器件的功能。
使用基本类型数字block可配置:
*计数器(counter);
*定时器(timer);
*脉宽调制(PWM);
*循环冗余码校验(CRC)串行接收(serial receiver)。
使用通信类型数字block可配置:
*基本数字block;
*串行发送(serial transmitter);
*串行接收(serial receiver);
*SPI主端(SPI Master);
*SPI从端(SPI Slave)。
使用模拟block可配置:
*多极滤波器(multi-pole filters);
*放大器(gain stages);
*数模转换(DACs);
*模数转换(ADCs)。
在模块功能设计方面,Cypress公司把各种常用处理器的外围器件作为设计Module的标准,把芯片内数字和模拟block资源组配成标准的功能模块(module),并把这些功能模块存储在器件库中。用户通过使用其提供的集成开发平台(IDE),调用这些功能模块、设定模块时钟输入,配置全局变量和局部变量,设定用户功能参数,完成功能模块的配置。另外,这些功能模块还可以相互连接,以完成更加复杂的功能。因此,通过合理的配置数字和模拟block就可以在片内实现大部分外围器件的工作。并且,由于设定的参数量存储在片内Flash中,因此,无论是在设计之初,还是在产品应用现场,工程师均通过软件重新配置数字和模拟block参数,从而增加/删除功能模块,定义输入/输出引脚,完成硬件升级。这就是可编程嵌入式片上系统的动态重新配置能力(Dynamic ReConfigurability)。因此,可配置片上系统(PSoC)允许用户根据自己的需求,定义整个系统所需要的功能模块的种类和数量,分配芯片的资源,完成芯片内部的功能配置。
对于本控制系统来说,可以利用其内部的多个定时器功能模块,完成各个动作之间的间隔和定时,从及复杂的逻辑关系;利用A/D、PGA模块,实现键盘输入等功能;利用液晶模块,实现参数的显示等功能;利用PsoC具有I/O多的特点,可以方便地实现对多个开关信号量的控制。因此,利用PsoC就可以实现使用一块芯片来配置多种不同外围元器件微控制器。建立一种可配置控制器,可以实现从确定系统功能开始,到软/硬件划分,并在片内完成整个选色控制器的设计过程。
本系统使用PSoC微控制器具有三个明显优势:①通过使用数字和模拟block配置不同的外围器件,大量的外围器件可以设计成SoC;②通过使用内部总线连接用户所选的功能,用户可以建立实际系统信号链,减少大量的外部线路,甚至可以重新分配输入/输出引脚,帮助优化电路板的布局;③最大的益处是它可以实时重新定义模块功能,迅速完成硬件升级,能够适应非常复杂的实时控制需求,同时增强系统的可靠性和抗干扰能力。
1.2 确定总体控制方案
选色控制方式是一种典型的顺序控制方式。顺序控制是工业自动控制系统中一种常见的控制方式,其控制系统一般具有以下一些特性:开关信号量多、定时范围大、逻辑关系复杂、可靠性要求高等。因此,在总体方案设计时必须考虑其控制特点。
PSoC微处理器的所有输入/输出引脚都可以申请中断,各个内部数字和模拟模块也可以申请中断。因此本系统可以根据要求,方便灵活地申请执行多个中断。
经过对上述各项认真分析后,就可以画出整个系统的概略框图。本选色控制系统是由存储器、输入/输出电路、液晶显示模块、键盘电路等部件构成,其系统组成如图1所示。
1.3 具体硬件设计方案
进入具体设计阶段,必须认真考虑和反复权衡硬件和软件的分工及比例。
硬件和软件设计过程必须同时进行,两者相辅相成。对于本控制系统的设计来说,由于大部分外围器件的功能是在微控制器片内实现的,因此,外部硬件的主要工作集中在输入/输出接口设计上,而输入/输出接口设计又往往和控制程序交织在一起。此外,存储器的连接和扩充也是必做的工作。
硬件设计过程中,器件应注意筛选,在布线和安排时,注意制作技术和装配技术,以克服电气干扰。下面就是具体的硬件设计:在单片配备8位液晶显示器,2×4的键盘,8KB的存储器。输入/输出都采用光电隔离,每一路输出还经过功率放大。
(1)PSoC微控制器
PSoC微控制器控制系统中最主要的部件,它完成对输入信号的判断和逻辑运算,产生时序控制信号,对PSoC微控制器的配置可以通过其系统提供的IDE集成开发平台上的图形化工具来完成。选择本控制系统所需的计时器、放大器、液晶等功能模块,配置其内部参数,指定其输入与输出关系,主、输出引脚。在全局变量部分要配置CPU的工作频率、系统时钟、中断、电荷泵以及其它特性,以此完成PSoC微控制器片内配置。
(2)存储器
存储器用来存储工作参数和用户应用程序。随机存储器有动态随机存储器DRAM和静态随机存储器SRAM两种。DRAM虽然价格低,但它需要不断刷新。PSoC单片机没有刷新功能,为了使用DRAM,不得不增加刷新电路。这样总的价格并不低,且使电路复杂化,可靠性降低,因此本系统中采用SRAM——6264。
当6264的CE1为高电平或CE2为怦时时,6264处于低功耗的保持状态,此时流过的电源电流为维持电流,只有μA级。在保持状态的情况下,VCC可降至3V左右,内部所存储数据不会丢失。由此可见,只要在掉电之后保持CE1为高,并保持VCC大于3V,就可保持RAM中所存储数据不变,且消耗VCC的电流很小。由此可以建立数据存储保护电路。
(3)液晶模块
字符型液晶显示模块是一类专用于显示字母、数字、符号等的点阵型液晶显示模块。字符型液晶显示驱动控制器广泛应用于字符型液晶显示模块上。目前PSoC微控制器内液晶模块仅支持HD44780U显示驱动控制器。
(4)输入电路
单片机只能接受0~5的逻辑电路平信号,而现场工作信号是按钮、行程开关。输入电路完成电平转换任务,同时为了系统的安全和可靠,还要考虑信号的滤波和隔离问题。
本系统采用的是光电隔离及电平转换电路。光电耦合器以光电转换原理传输信息,它不仅使信息发出端(收侧)与信息接收并输出端(二次侧)是电绝缘的,从而对地电位差干扰有很强的抑制能力,而且有很强的抑制电磁干扰能力,且速度高、价格低、接口简单,因而得到广泛的应用。光电耦合器的一次侧都是发光二极管,但是二次侧侧则有多种结构,如光敏二极管、光敏晶体管等,因而就有二极管-二极管光电耦全器、二极管一晶体管光电耦全器等多种型号的光电耦全器。本系统选用TPL521-4,它在同一个封装内4个相同而独立的光电耦合器。TPL521主要用于工业控制中,其速度不高。
(5)输出电路
输出电路主要包括两部分:一是隔离,二是功率放大。在顺序控制系统中,单片机输出的控制信号常用来控制继电器等执行机构,它们需要较大的功率,因此输出信号需要光隔离和放大后才输出到执行机构。
2 织机选色器的功能设计
织机选色控制器是一个可以编程的顺序控制器。它有两个工作状态:编程状态和运行状态。编程状态的主程序的功能为更新显示器上显示的内容、用户键入编辑相应的用户程序。键盘有MOD、TAB、INC、DEC、ENT这5个键,用于输入程序和参数。下面介绍这些键的功能。
MOD模式键:用于编程状态和运行状态之间的切换。编程状态下,用户可以完成用户程序的编辑;运行状态下,用于显示程序执行的步骤。
TAB光标移动键:用于屏幕光标的移动,随着光标处于不同的变量位置,表明此变量处于编辑状态。此变量可以编辑。
INC增加键:在编程状态下,按下此键,光标所在位置的变量加1。
DEC减少键:在编程状态下,按下此键,光标所位置的变量减1。
ENT确认键:变量改变后,按此键确认更改。
为了使织机选色器能按照用户输入的程序执行,我们设定了固定的程序格式。用户按此格式输入用户程序,织机选色器就可按程序进行工作。其格式如下:
程序号 | 段号 | 色号 | 纬数 | 最大段号 |
程序号:表示执行或编辑的程序名称。
段号:表示程序步的标号。
色号:表示此次选中的颜色。
纬数:表示打纬的次数。
最大段号:表明程序循环段数。
使用以上定义的几个键,就可以完成用户程序输入。在开机后处于运行状态中,此时执行监控中的键盘、显示器管理程序,输入信号监控。根据输入信号执行用户预先存储在存储器内的程序。
3 具体软件设计方案
用户通过键盘编写用户程序,为此在外部存储空间中预留一定的存储空间供用户存储用户程序。用户可以随时调用、查看、编辑自己的选色程序。具体做法根据程序号确定高位址,根据段号确定低位地址,然后向不同字节写入色号和纬数的信息,最大段号存放在一个固定的地址中。在工作过程中,同样根据程序号确定高位地址,根据段号确定低位地址,然后读出存放在不同字节内的色号和纬数信息。
4 MCU内部资源配置
和普通的ASIC设计相比较,PsoC的设计首先必须完成片内功能模块的设计。因此,可配置片上系统设计流程和集成开发环境上也与通用的ASIC设计流程及集成开发环境有所不同。PSoC设计必须首先完成芯片内部资源的规划,其片内资源设计流程具体为:
*确定系统需求;
*选择用户模块;
*放置用户模块;
*设置全局变量和用户模块参数;
*定义输出引脚;
*产生应用代码;
*编辑应用代码。
因此,在集成开发环境内按照设计流程完成设备编辑器参数配置。
图2