基于PSoC的车用单片机试验装置设计

分享到:

        引言

  汽车单片机教学实验通常需要信号发生器、示波器等很多辅助设备,这不但给实验及教学带来很多的麻烦,而且造价昂贵。

        为了减少实验辅助设备,降低实验成本,本文在PSoC CY8C29466芯片的基础上,开发了一套集成有PWM输出、不同频率采集、UATR通信并可通过液晶LCD显示相应数据的装置。该装置在汽车电子单片机教学中可代替现行的大多数实验辅助设备,并可简化实验的操作步骤、降低实验成本,从而给实验及教学带来很大方便。

  1 系统组成结构

  SoC(System on Chip)是将整个电子系统集成在同一芯片上的片上系统,或称为系统级芯片。2000年,Cypress公司推出了完全基于通用IP核,由可编程选择来构成产品的SoC。这种可编程选择的SoC取名为PSoC,它是由多种数字和模拟器件、微处理器、处理器外围单元、外围接口电路构成的,在周围集成的模拟和数字外围器件阵列都是动态可配置,而且利用芯片内部的可编程互联阵列,还可以有效地配置片上模拟和数字资源,从而构成可编程片上系统。该装置主要由PSoC CY8C29466芯片并扩展以简单的外围接口电路构成。可通过PSoC芯片的开发工具PSoC Designer4.3软件来测量未知方波的频率(0~200kHz)、输出可调频率和占空比的方波(0~500kHz)、进行UART通信并显示相应的数据(00H~FFH)等功能。

  本装置的特点是将测量频率、PWM输出和UART通信集成到了一起,而且测量频率的范围比较大,且输出的PWM精度高,最重要的是可在硬件上节省一部份外围设备,因而缩减了印刷板的空间和功耗。

  1.1 未知方波信号频率的测量

  该功能可用来监测外部的事件和输入信号。当外部事件发生或信号发生变化时,将在指定的输入捕捉引脚上发生一个指定的沿跳变(上升沿),定时器捕捉到该特定的沿跳变后,捕获事件将会把计数器当前的数值传输到数据寄存器中,这样,捕获值就可以直接从数据读出。然后,通过记录输入信号的跳变沿,就可用该软件算出输入信号的周期。

  在其他的单片机上测量方波信号的频率也可运用定时器的输入捕捉功能,由于定时器都是固化好的。且一般为8~16位,而PSoC芯片内置8~32位的定时器和计数器,并且时钟最高可达24MHz,故可任意调用以达到较高的测量范围。

  若定时器的系统时钟SYSCLOCK为24 MHz,分频之后为FCLOCK=SYSCLOCK/368.3,而周期寄存器的值PERIOD为65536.0;那么,采样的数值将为:FSAMPLE=FCLOCK/PERIOD。这样,当定时器有溢出时,频率fFreqValue的计算公式如下:

  f=(NFlow×65535+NTick)FSAMPLE;

  而定时器没有溢出时的计算公式为:

  f=NTickFCLOCK/NCount;

  式中,NFlow是定时器溢出的次数,NTick是定时器当前计数值,NCount是计数器当前计数值。

  整个系统选用的是数字模块中的16位定时器和24位计数器,以及模拟模块中的比较器。定时器的捕捉使能端与比较器相连,计数器的主要作用是为定时器提供一个采样频率。比较器的作用是将一个模拟量电压信号与一个参考电压相比较,并在二者幅度相等的附近输出一个电压的跃变信号,然后再相应输出高电平或低电平。比较器的应用既节省了外围设备,又提高了测量的准确性,同时也给测量带来了很大的方便。

  1.2 输出可调频率和占空比的方波

  脉宽调制波(PWM)的输出是利用定时器的比较功能。通过更改比较寄存器(CompareValue)值在0到周期(Period)寄存器填充值之间变化,定时器就可以输出一定占空比的方波。当比较条件满足后,定时器输出高电平;而在Period寄存器自动装入预置数的后一个周期,定时器将输出低电平。所以,定时器输出波形的占空比可用下式表示:

  Duty=n/(N+1)

  式中,Duty为输出波形的占空比,n为比较寄存器的填充值,N为周期寄存器的填充值。

  在计算定时时间时,可设置定时器应用程序接口以修改计数器Period值,其输出周期值与填充周期的值之间的关系如下式所示:

  T=t(N+1)

精彩活动