电机控制器中PSoC的探究与应用

描述

引言

控制工业的发展使得在很多场合下需要使用体积小、功能强的控制器。例如在电动自行车上,为了不在外观上对车身产生重大的影响(这实际上是行业标准的要求之一),电机作为后轮的一部分,电池(虽然体积不小)也尽量安装在不甚瞩目的地方。这样的总体要求使得电机控制器也必须在完成所需功能的前提下,尽可能地小巧。这样的要求归结到电路的层次就要求选取尽量少和尽量小的元件来实现控制功能。幸运的是,大规模集成电路的发展使得这样的实现成为可能。Cypress Microsystems, Inc.的PSoC系列就是一种新型的功能强大的控制器优选IC,利用它可以极大程度地减少外围电路。

1 PSoC 及其特点

PSoC 即可编程片上系统(Programmable System on Chip)。Cypress Microsystems, Inc.的PSoC Cy8c24xxx 系列片内有一个高速内核、Flash 快速闪存和SRAM 数据内存,以及设计者可配置的模拟和数字模块。其主要特征如下:

■ 功能强大的 Harvard 结构处理器:M8C 处理器速度可达24MHz;8×8 乘法,32 位加法。

■ 先进的外围电路(PSoC Blocks):6 个模拟PSoC Block 提供多至14 位ADC、多至8 位DAC、可编程放大器、可编程滤波器和比较器;4 个数字PSoC Block 提供8-32 位定时器、计数器和PWM、可连至所有GPIO 引脚、可组合成复杂的外围电路。

■ 灵活的片上存储器:4K 字节Flash 程序存储,50,000 次擦写;256 字节SRAM 数据存储;在系统编程。

■ 可编程的引脚配置:所有GPIO 25mA 驱动;上拉、下拉、高阻、强力及开路驱动模式。

■ 其他系统资源:看门狗和睡眠定时器等。

■ 完善的开发工具:免费的开发软件 PSoC Designer;全功能在线仿真器和编程器。

PSoC 将传统的单片机系统集成在一颗芯片里,用户模拟和数字阵列的可配置性是其最大特点,可供开发者随需配置。

2 控制器需要实现的功能

设计的控制器用于电动自行车上直流电机的控制,具有如下一些功能:

(1) 根据电动手柄或脚踏传感器的输入,输出相应脉宽的PWM 值,改变驱动电流,从而达到改变电机转速的功能;

(2) 定时巡航功能:若手柄或脚踏输出在一段时间内不变,则不再响应新的输入而保持固定的PWM 脉宽输出,直到输出超过10%;

(3) 安全方面的考虑。限速:限速开关闭合则控制电机最大速度不超过某定值;刹车:检测到刹车信号,则停止所有输出,刹车信号取消后系统重新启动;

(4) 车速输出指示:通过测量Hall 传感器信号检测车速,送车速指示表盘;

(5) 产生一个50kHz 的时钟信号,送驱动电路。

另外,为保证系统的健壮性(Robustness),对于一些偶然的误操作或外部条件的突然改变应有一定的容错功能。

(1) 过流保护:电流过大会损坏电路中的元器件,从而影响系统的正常工作。因此,过流保护是一项重要的措施;

(2) 电池欠压保护:电池的电压过低时继续工作会严重影响电池的寿命。因此,需要欠压保护来提示用户;

(3) 温度保护:电路中温度过高会影响元器件的正常工作,所以对此也要采取适当的措施。

3 控制器设计和实现

3.1 PSoC 设置

根据设计要求,选用CY8C24423,首先考虑对PSoC 进行设置,如图1。系统中选用了多种内部模块。如表1。内部模块设置完成后,对相应的管脚进行配置,包括I/O 设定和中断方式设定等。另外,对全局资源进行设置。本系统中主要的参数有: CPU 时钟24MHz、工作电压5V、睡眠定时512Hz(供看门狗定时用)。

PSoC

PSoC
图1 控制器中PSoC设置

3.2 控制电路设计

如 3.1 所述,由于大部分功能都可以通过PSoC 实现,因此硬件电路的设计相对简单。图2 给出了系统中电路框图。

PSoC
图2 控制器电路框图

控制电路对输入的电流、电池电压、手柄电压和温度电压送入A/D 采样;脚踏电压采用中断方式,根据脉冲宽度判断车速和施加在脚踏传感器上的力的大小,送出相应的PWM,实现助力;刹车中断作为一个独立的中断源,具有最高的优先级。PWM 输出对于电机的上臂和下臂采用不同的处理。上臂信号直接输出,而下臂信号在与Hall 传感信号“与”后输出。

3.3 控制软件设计

系统的核心部分是软件的设计。图3 给出了系统运行的总体流程。

PSoC
图3 控制器软件流程

其中,SA、SB 和SC 分别为Hall 传感器输入的电机位置信号,根据他们来确定送往电机控制上臂(AT/BT/CT)和下臂(AB/BB/CB)的驱动信号。主程序根据优先级对可能出现异常的参数进行轮询。若一切正常,则所需操作就是取得手柄或脚踏输入转换为PWM 输出驱动电机转动。对于手柄电压和电流保护采样,放在PWM 中断中实现,将在下文说明。使用PSoC 进行程序设计,可有两种选择——汇编或C 语言实现。即使在汇编程序中,也可以定义所需要的常数和变量,这无疑大大减小了程序的复杂程度,在现有单片机中是很有特色的。

以下是汇编程序中关于电流保护的一段。

PSoC

其中定义了若干变量,使得程序的可读性大大增强。

3.4 系统设计中的关键技术

前文已经提到,本系统中使用最频繁的是手柄/脚踏采样然后送PWM 输出;最高优先级的是电流保护。因此,在PWM 中断程序(pwmint.asm)中实现这两个功能。

PWM 相关设置

PWM 输出频率选择15kHz/25kHz 两种,主要的考虑是避开可听声的频率范围(20Hz~20kHz,到15kHz 时人耳已经不甚敏感),同时及时响应可能的电流异常。

手柄/脚踏信号采样及处理

为了操作的简便,该设计中省去了一般电动车上的脚踏开关。因此,对于同时进入的采样信号,既要保证都能够检测到,又要采用合理的处理方法送PWM 输出。

图4 给出了系统中手柄采样/电流保护一体化处理的流程。其中中断执行5 次(时间间隔:5/15000=0.33ms)分别进行一次手柄电压采样,并和脚踏采样比较,大者送PWM 输出。图4 手柄采样/电流保护一体化处理过流保护的实现。

PSoC
图4 手柄采样/电流保护一体化处理

我们知道,瞬间的电流冲击对于电子元器件有很强的损耗,甚至毁坏。特别对于直流电机来说,在启动瞬间或者突然的堵转,将产生电流冲击。因此,在这种情况下,必须立即减小PWM 输出脉宽,以防意外。系统中,对于过流保护是一个重点,而其难点在于迅速对过流作出响应。若采用PSoC 中的A/D 模块进行采样,即使使用响应较快的6 位A/D 模块SAR6(已经牺牲掉了一定的精度),其转换时间20μ s,经测试,后续的处理难以起到限流作用。另外一个问题就是对于冲击毛刺的处理。由于电流(系统中通过一个5mΩ 的电阻变换为电压信号)在上升沿处容易产生毛刺,因此需要一定的延时再进行处理。这样,上述模块更加难以胜任。经过仔细分析遴选,最终确定选用CMPPRG 比较器模块。

该模块响应时间(在HighPower模式下)响应时间仅为1.2μ s,加上为剔除毛刺所需要的10μ s延时,仍能够满足限流需求。需要指出的是,系统设计中巧妙利用PWM 输出过程进行限流处理,使得限流更加可靠。图5给出了限流处理的时序。在第一个PWM 周期内,没有检测到过流,因此PWM 输出脉宽在第二周期内保持不变。在第二个周期内检测到了过流,立即从下一周期开始减小PWM 输出脉宽,从而电流得到了限制。

PSoC
图5 限流处理时序图

结语

本文介绍了一款电动自行车控制器的设计。该设计基于功能强大的PSoC 单片机,外围电路简单可靠,程序设计中利用PWM 输出高电平时间检测电流过载,取得的很好的效果。目前,该控制器已经量产,用户反响良好。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分