当前位置:首页 > 工业控制 > 电子设计自动化

  引言

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

  为了减少实验辅助设备,降低实验成本,本文在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)

关键字:PSoC 车用单片机试验

  式中,t为定时器计一次数所需要的时间,N为周期寄存器的填充值,N加1是因为计数器是计数到0结束而不是到1结束。因此,如果要实现可调占空比和周期的输出,其硬件电路只需要两个电位计即可,而在软件编程中只要将采集到的A/D数据寄存器的值经过计算之后再赋给定时器预置周期寄存器和对应通道的输出比较寄存器中,并通过计算得出相应的频率和占空比,就可通过调节电位计输出不同周期和占空比的方波。其PWM输出原理示意图如图1所示。

  要实现可调频率和占空比并不难,但要达到一定的范围和精度,使用一般单片机就比较困难了。由于CY8C29466型PSoC芯片的定时器为8~32位,A/D转换器为6~14位可调,所以,本装置选择了12位ADCINC和24位计数器,并选择调节精度较高的电位计,因为这样可以输出较高范围和精度的PWM波形。

  在与汽车电子有关的教学和实验中,PWM波的应用范围很广,电动机控制中也广泛使用PWM,此外,在发动机电子控制中,喷油器喷射油量的控制一般也是由PWM控制的。

  1.3 UART通信和相应数据的显示

  通过UART (Universal Asynchronous Receiver/Transmitter)可实现串行通信中的异步数据传输,它是一个全双工异步收发器,采用RS232通信协议,可通过两根电缆同时接收和发送数据。PSoC中的UART用户模块是PSoC数字模块,该模块接收和发送的字符为一个数据,数据包括4部分:起始位、数据位、奇偶校验位、停止位。另外,UART数据模块也支持可编程时钟、发送和接收中断以及轮询操作。UART数字模块也可提供应用程序接口(API)程序,以给编程带来方便。它可由一个串行接收器和一个串行发送器组成,分别为RX UART和TX UART。

  (1)通用异步接收器RX-UART

  异步接收器需要有关通信类型的数字PSoC模块,它有自己的RX缓冲区寄存器、RX移位寄存器以及RX控制寄存器。可以使用UART用户模块固件中的API程序来对RX控制寄存器进行初始化和配置。本装置的RX初始化包括UART无奇偶校验、满足RX寄存器条件的中断使能。

  当检测到RX输入起始位到来时,RX模块中的除8时钟开始启动,然后开始对输人的数据位进行异步接收。而在下一个8位时钟的上升沿到来时,输入的数据将被接收并送到RX移位寄存器中。当在下一个时钟的上升沿接收到停止位以后,RX控制寄存器中的RX寄存器满的这一位被置位,同时接受中断使能,并在中断中记录异步通信所接收到的值,然后在LCD中显示。

  (2)通用异步发送器TX-UART

  异步发送器也需要一个通信类型的数字PSoC模块。它有自己的TX缓冲区寄存器、TX移位寄存器以及TX控制寄存器。可以使用UART用户模块固件API程序来对TX控制寄存器进行初始化和配置。本装置的TX初始化包括UART无奇偶校验、RX寄存器不产生中断(轮询操作发送数据)。

  当TX控制寄存器的使能位被置位时,TX模块中的除8时钟开始启动,此时在键盘中将会得到一个数据。把此数据送往LCD显示,再把此数据字节通过API函数写入到TX缓冲区寄存器中,然后清除TX控制寄存器的TX缓冲区空状态位,再在下一个时钟的上升沿到来时将缓冲区的数据发送到移位寄存器,然后将TX控制寄存器的TXBuffer Empty状态位置位,即可完成数据发送。

  2 系统软件设计

  单片机系统初始化后,首先运行UART通信并显示,然后由键盘中断进行选择。每次进入按键中断便进行了一次选择,以选择所需要执行的另一个子程序。选择完所有的子程序后系统又跳回UART通信子程序,如此循环。显示程序便可把所执行的子程序所得到的结果,用串口通信方式输出到LCD并以显示相应的值。其软件程序流程图如图2所示。

  3 实验

  将p[0]3与示波器相连接,可以观察示波器所显示的波形和LCD中显示的周期和占空比,然后调节电位计,即可观察示波器和数码管显示是否保持一致。

  把信号发生器与p[0]7和地线相连,并输入一定频率的方波,可以观察信号发生器显示的频率值与LCD显示的值,之后,可通过改变信号发生器的输出频率。来观察两个值的变化是否保持一致。

  本实验需要硬件MAX232和软件程序“串口调试助手V2.1”的支持。利用MAX232芯片可将串口通讯总线信号转换为单片机可以接收和发送的信号,从而使单片机与PC微机相连来实现串口通讯。在“串口调试助手V2.1”下边的发送框中输入任意数字或字符,然后选择自动或手动发送,即可观察LCD的接收区的显示,然后调节装置使其发送16进制数,最后就可以观察软件窗口上显示区所显示的数据。

  4 结束语

  多次实验表明:本装置中LCD的显示值均与其它实验设备的值相符,且误差很小,响应时间很短,稳定性好,可靠性强且各项工作稳定,可以达到较高的精度要求和测量范围。所以,基于PSoC教学装置的开发具有较高的实用性和可靠性,而且体积小,经济性较好,可在教学和实验中实现一机多用,故可降低实验成本。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备
关闭
关闭