PSoC是Cypress半导体生产的具有8位MCU核和数字与模拟混合信号阵列的可编程片上系统。PSoC集三种可编程能力于一体,不仅具有MCU的可编程序能力,还包含了部分可编程逻辑运算功能,同时也提供了可编程模拟阵列;通过对寄存器的配置或控制,三者之间可以相互作用、协调工作。PSoC的数字资源(如定时器、PWM、UART等)和模拟资源(如放大器、比较器、滤波器等)以数字模块和模拟模块的方式给出。不同型号的PSoC芯片的差异主要在于其拥有的数字模块和模拟模块的数量不同。用户可根据特定需求来定义这些模块。集成开发环境PSoC Designer也预先为用户定义了70多个常用的数字和模拟资源供用户选择。这些预定义的模块被称之为用户模块,如数字资源有:定时器、PWM、UART、SPI、CRC、PRS等等;模拟资源有放大器、比较器、滤波器等等;ADC则由若干数字模块和模拟模块组合而成。PSoC开发人员无需通过设置寄存器来构建这些周边设备,只需在PSoC Designer中选择和放置所需要的用户模块并进行参数设定。PSoC Designer不仅能配置用户模块,而且也为用户提供这些用户模块的API函数供用户编程时调用。
CY8C24533是专门针对电机控制而开发的一款PSoC芯片。它继承了CY8C24XXXA系列芯片的几乎所有的资源,同时针对电机控制扩展了部分的资源和功能,使得它非常适合应用在电动自行车的控制以及其他的电机控制。
CY8C24533的系统资源和周边性能
CY8C24533的内部结构如图1所示。其资源包括:
图1:CY8C24533内部系统资源框图。
系统资源
CY8C24533使用8位哈佛结构处理器内核(M8C CPU),它具有独立的程序存储器和数据存储器总线,处理器速度可达24MHz。拥有丰富的M8C架构指令,系统提供便捷的寻址方式。CY8C24533的系统资源中包括一个乘加器(MAC)。MAC系统中作为一个独立的组件,并映射到特定的寄存器地址空间,由输入寄存器和输出寄存器,能执行带符号的8×8乘法运算和32位的加法运算。只要把数据传送到输入寄存器,在下一个指令周期,输出寄存器就能得到运算结果。寄存器加速内存数据交换,大大提高了处理数据的速度。CY8C24533有两个时钟发生器:主时钟发生器和低频时钟发生器。其中主时钟发生器为24MHz作为系统时钟,可分频或不分频作为CPU时钟。系统时钟N1,N2和N3次(均可由用户设定)分频产生的时钟VC1,VC2和V3可以提供给用户作为模拟PSoC模块和数字PSoC模块的输入时钟。系统时钟也可以倍频产生48MHz的时钟作为PWM的输入,以提高PWM的分辨率。低频时钟发生器是一个32KHz内部低速振荡器,主要用于看门狗/睡眠定时器的时钟。其他的系统资源还包括可设定电压阀值的电源低电压检测(LVD/POR)、中断控制器、I2C、用于△-∑模数转换的采样抽取器(Decimator)、片内温度传感器和片内电压参考等。
片内存储器
CY8C24533有8KB的闪存用于程序存储以及256B的片内SRAM数据存储器。可以用闪存的部分空间模拟E2PROM。此外,它还具有串行在系统编程功能(ISSP)。CY8C24533对片内存储器提供多种保护加密方式。与传统的熔丝保护加密方式不同,CY8C24533是以块加密方式实施对片内存储器的加密保护,所以具有更高的安全性。
模块资源
CY8C24533有4个数字模块和4个模拟模块。片内的数字模块可以配置成各种各样的用户模块,比如时间定时器、实时时钟、脉宽调制和死区脉宽调制(DB PWM)、循环冗余校对模块、全双工UART、SPI等功能模块。片内的模拟模块可以配置多种模拟周边功能,如比较器、可编程增益放大器、差分放大器、可编程滤波器。结合数字模块和模拟模块可以实施各种模数转换,如7-14位的增量式模数转换,8和11位的△-∑模数转换等等。PSoC Designer集成开发环境也为用户提供了灵活和完善的数字模块和模拟模块的输入输出路由、模块和模块之间的路由及数字模块和模拟模块之间的路由。在这些路由中还包括了一些硬件的逻辑运算块(LUT),这些逻辑运算块可以进行16种逻辑运算。用户可以通过路由选择和路由之间的逻辑运算使模块和模块之间形成相互关联的有机的功能块,使这些功能块具有更复杂更独特更强大的功能。从而减少片外资源的使用,使系统更简洁。
图2:同步触发方式原理框图。
SAR ADC模块
在电机控制中通常需要一个高速的ADC用于检测过流信号进而实施对功率MOS管的保护。CY8C24533集成了一个专用的8位逐次逼近ADC。它的一次转换时间只有3.33μs,这对于快速的检测过流信号非常有用。另外为了能在合适的时间进行模数转换,CY8C24533还提供了多种触发方式来启动模数转换。它包括自由运行、手动单次触发和同步触发方式。同步触发方式原理框图如图2。在同步触发方式有两条通路(Low Path和High Path)可以实施触发。这两条通路分别有一个8位的寄存器与来自数字模块的的计数值进行比较,如果Low Path的比较结果相等时CMP_LO输出高电平,如果High Path的比较结果相等时CMP_HI输出高电平,CMP_LO和CMP_HI的输出在通路逻辑(Path Logic)进行逻辑运算,逻辑运算的结果为1时便触发启动模数转换。通路逻辑有“与”和“或”两种逻辑运算功能,CMP_LO和CMP_HI的值由用户设定。这个性能对电机控制非常有用。比如,当DBB0被配置成一个8位的PWM时,在一个PWM的周期里,ADC可以被触发一次或两次。当CMP_LO或CMP_HI寄存器有一个被设置,并且通路逻辑设置“或”运算时被触发一次;当CMP_LO和CMP_HI的寄存器被设置一样并且通路逻辑设置“与”运算时也被触发一次;当CMP_LO和CMP_HI的寄存器被设置不一样并且通路逻辑设置“或”运算时被触发两次。当DBB0和DBB1被配置成一个16位的PWM时,在一个PWM的周期里,模数转换可以被触发一次,这时通路逻辑设置“与”运算。在直流无刷电机的控制中,通常PWM值用于控制电机的电压或速度,每一个PWM周期中的相电流的大小是变化的,用同步触发方式可以在每一个PWM周期的固定时刻触发模数转换,采样电机的电流信号,判断电流是否异常,实施对电机和MOS管的有效保护。
电动车自行车控制器系统
图3所示是一个电动自行车控制器系统原理框图。图中,CY8C24533作为主控芯片,左边为各种输入信号:调速转把信号、刹车信号、电池电压、电机的霍尔信号和其他外设信号。右边是MOSFET的驱动电路、功率MOSFET三相桥电路以及电池电量显示电路。现在的电动自行车都使用“无刷直流电机”作为传动部件,所以CY8C24533必须通过来自电机的霍尔信号产生合适的相序信号提供给MOSFET的驱动电路,进而驱动功率MOSFET三相桥,使无刷直流电机的三相绕组得到按一定规律变化的励磁电流。
图3:电动自行车控制器系统原理框图。
PWM输出
为了通过调速转把来控制转速,必须将PWM信号叠加在相序信号上,通过调节PWM的占空比,来控制电机绕组的相电压和电流实现转速控制。通常MCU的PWM输出是从固定的管脚输出,所以传统的MCU做法是在芯片的外部加逻辑电路将6路或3路相序信号和PWM信号相“与”后输出。而CY8C24533 PSoC芯片有灵活多样的模块输入和输出的路由资源可以选择,可以将一路PWM信号在不同的时刻路由到一个或同时路由到多个I/O上。如图4所示将一个数字模块配置成双缓冲器,PWM信号的输出配合双缓冲器中的一个缓冲器便将PWM信号路由到LUT的四个输出上,进而通过数字输出总线路由到一个或多个I/O上。这样在换相且当某一相或几相需要PWM输出时,可在获得换相信号时通过中断程序将PWM输出切换到相应的I/O口上。I/O口的输出可以直接输入到MOS管的驱动电路,这样就不需要外部加逻辑电路。图5是在PSoC Designer开发环境下的PWM输出路由配置图。
图4:PWM输出路由选择和比较器输出路由选择图。
图5:PWM输出路由配置图。
峰值电流保护
电动自行车在使用过程中会有多种可能的情况导致瞬间峰值电流很大,这个电流如果超过MOS管的最大可耐受电流,MOS管将被击穿。所以峰值电流保护是非常必要的。峰值电流保护的关键是响应速度。通常采用硬件的方式来实施,如将采样的电流送到一个比较器进行比较,比较器的输出再通过逻辑电路与PWM的输入信号相“与”。在CY8C24533芯片中包含模拟模块,CT(连续时钟)的模拟模块可以作可编程的比较器和可编程的放大器。我们将CT模块作放大器用于放大电流信号,另一个CT模块作比较器,用于比较电流信号,比较器的阈值可以程序设置。放大器的输出作为比较器的输出,比较器输出到比较总线,比较总线经LUT输入到数字模块的双缓冲器中的另一个缓冲器,这个缓冲器的输出经由行输出总线的LUT与PWM信号实现“与”操作(见图4或图5)。如果峰值电流超过设定的阈值,比较器的输出将封住PWM的输出,对MOS管实施有效的保护。
平均值电流保护
平均值电流保护对保护电机和MOSFET是非常重要的,尤其在堵转时。因为长时间的堵转会产生高温而致使电机或MOSFET被烧毁。CY8C24533有高速逐次逼近ADC,因此可以利用上述的同步触发方式在每个PWM 周期的固定时刻采样电流值,以获得平均值电流。如果这个值超过设定的阈值并持续一段时间(如3s以上),控制器自动保护软件即会采取相应的措施,如减少PWM的输出或关断PWM,来对电机和MOSFET实施有效的保护。
1:1助力
CY8C24533有数字模块可以用作捕捉定时器,捕捉踏板转轴的转速信号,获得模拟的1:1助力信号,然后通过对PWM的输出的控制,实现模拟的1:1助力或1:N控制。由于CY8C24533的闪存空间高达8KB,可允许用户程序设计多种功能和保护。基于PSoC CY8C24533的电动自行车控制器还包括超静音功能、防飞车功能、短路保护功能、欠压保护功能、定速巡航、ABS刹车再生制动等功能。超静音功能减少了起步噪声;防飞车功能解决了无刷控制器由于转把或线路故障引起的飞车现象,提高了系统的安全性;短路保护功能防止电机三根相线输出端任意两端短路或三端全短路,以及控制器不会烧毁;欠压保护功能使得电池电量不足时及时通知用户更换电池。定速巡航、ABS刹车使控制器的性能更加完善。
本文小结
基于PSoC CY8C24533的电动自行车控制器,利用其模拟、数字和路由资源使整个系统只用一个PSoC芯片便实现了上述的所有控制功能,因此无需任何外围芯片,外围元件的数目也相应减少。这充分体现了SoC的优势,同时芯片的资源也得到了充分有效的利用。由于CY8C24533的模拟、数字和路由等资源也是可编程的,其使设计工程师的智慧和创意得到更多体现的同时,也使电动自行车控制器的性能得到更多的提升。