ATmega162单片机与交流电2号站平台怎么注册机调速控制研究
【主管Q:2347660】2号站平台怎么注册ATmega162单片机与交流电机调速控制研究赵炯,方皓(同济大学机械工程学院,上海200092)上位计算机进行串行通信的控制界面。给出了交流电机移相调速控制及脉宽调制在ATmega162中的编程实现过程阐述了使用C语言编写的单片机串行通信接口程序,并说明了利用Delphi编写计算机串行通信界面的方法。
ATmega162是Atmel公司生产的高性能、低功耗AVR8位微控制器,它采用RICS架构,主频为16 MHz,拥有32个8位通用寄存器以及131条指令,其中大部分属于单时钟周期指令。系统内置16 kbit可编程FlashROM,支持TAG接口,可通过CodeVisionAVR等编译器进行C语言在线实时编程,实现多种功能。ATmega162集成通用同步/异步串行通信⑴SART)它是一个全双工器件,有独立的波特率发生器、发送寄存器和接收寄存器,可以同步或以异步方式工作,支持5 ~9个数据位和1~2个停止位,硬件实现奇偶校验的生成和检查,具有数据溢出和帧错误检测。
基于ATmega162的电机调速控制中,计算机作为上位机进行编程和控制显示,与ATmega162之间通过RS232进行串行通信。计算机上输入的设定速度被传送到单片机,单片机检测到AC调速板发送来的中断信号触发移相控制,根据预设速度计算导通角及其对应的时间,然后将控制信号发送到调速板,由调速板控制电机的输入功率,从而调节电机的转速,同时单片机还将当前设定的电机转速反馈至计算机中显示,见。
1ATmega162与串行通信初始化在使用ATmega162之前,需要对其进行初始化。初始化的内容主要包括:①CPU主频初始化;②4组端口的PORT和DDR值(控制端口的功能和数据流向)③定时器/计数器初始化;④外部中断使能;⑤模拟比较器初始化。2号站代理
基于ATmega162的电机调速控制系统结构图Fig.解一些相关的寄存器,下面是编程中要用到的几个寄存器21,通过它们来实现对串口的操作:(1)波特率寄存器UBRR:SART波特率寄存器为12位,高4位在UBRRHI寄存器里,UART1占用7~4 UDR实际上是两个物理上独立的寄存器,一个用于发送,一个用于接收。读取UDR时访问的是接收数据寄存器UDR,而在写入UDR时,访问的是发送数据寄存器UDR.控制状态寄存器UCSRA:①位7RXC:USART接收结束,置位表明接收到的数据已经从接收移位寄存器传送到UDRRXC在读UDR时自动清零;②位6TXCUSART发送结束,置位表明数据已经从发送移位寄存器发送出去,且UDR中没有新的要发送的数据;③位5UDRE:USART数据寄存器空,置位表示发送器准备就绪。
USART控制操作1341 ATmega162有两个全双工的通用同步/异步收发器USART:SART0和USART1,它们主要由晶振、发送器和接收器三部分组成,分别有单独的输入输出寄存器,共用控制寄存器。由发送完成、发送数据寄存器空和接收完成3个独立的中断,支持多处理通信模式,可以方便地进行串行通信。
USART的处理过程比较明确。在把待发送的数据写入USART数据寄存器UDR就会启动数据发送。如果收发器的移位寄存器为空,则UDR中的数据将进入移位寄存器。此时控制和状态寄存器UCSRnA的UDRE标志置位,表明USART可以容纳下一个数据。当数据送入移位寄存器时,移位寄存器的起始位(0位)自动清零,而停止位(位9和10)置位。USART在TxD引脚首先送出起始位,然后是数据(低位在前),如果UDR里有新数据,则USART会在停止位发送完毕后,自动加载数据,同时将UDRE置位,并一直保持到有新数据写入UDR.如果UDR没有新数据,而停止位也已经输出预定的时间,则USCRnA的发送完成标志TXC置位。
USART接收器的前端逻辑电路对接收引脚RxD进行采样,如果在空闲状态时检测到低电平,CPU将认为这是起始位的下降沿,起始位检测序列开始。假定采样点1为第一次检测到的低电平,则CPU会在第89和10采样点对RxD进行3次连续采样,如果有2个或全部采样值为高,则认为当前信号是一个虚假的起始位并丢弃,开始等待下一次下降沿。如果检测到一个有效的起始位,CPU开始采样数据。数据位的检测同样是在第89和10采样点进行3次连续采样,如果有2个或全部采样值相同,则这个值即为当前位的值。当停止位进入接收器时,3个采样值当中必须要有两个以上为高,否则UCSRnA中的帧错误标志FE置位。
1.4串行通信子程序PWM程序流程图Fig进行PWM处理的所有程序完成之后,编译并烧入单片机中,与AC调速板连接。
AC调速板AC调速板主要由两部分组成,一部分用于检测零点,另一部分用于PWM输出调速。2号站代理
零点检测电路是将交流电通过桥式整流电路驱动光敏二极管,零点时光敏二极管不发光,放大电路断开,通过上拉电阻将输出限制在高电平,这一高电平输入AT- mega162的外部中断引脚PD3,驱动外部中断,从而实现PWM进行调速控制。
完成PWM之后,将PD2置位,输出高电平,连接到AC调速板的调速输入引脚,驱动三极管放大电路,使光敏二极管发光,接通电机的供电回路,使电机转动,从而达到调节电机转速的目的。
3计算机接口界面3.1界面的功能计算机图形界面要实现的功能主要有:①初始化与ATmega162进行串行通信的环境,设置串行通信的参数和握手信号;②设定电机转速信号并传送到单片机;③接收从单片机反馈回来的电机当前转速并显示。
串行通信控制界面3.2用Delphi实现串行通信界面Delphi没有附带串行通信组件,为了编写通信控制界面,必须设置第三方串行通信组件并进行调试。本例中使用TComm组件,这是一个运行时不可见的控件,它采用Windows API函数对串口进行操作,相关的函数可参阅有关书籍151.可以从TComm的相关属性里直接设置串行通信的握手信号和初始化设置,并调用相关的发送和接收子函数,实现通信功能。
为串行通信控制界面,在这个界面中,可以打开和关闭串口,并对打开的端口参数进行设置,包括选择串口、设置传输波特率、数据位和停止位长度以及奇偶校验方法等。在发送数据区填入设定的电机转速并通过串口发送到ATmega162,单片机对此进行处理之后调节电机转速,并将当前转速发送回来,在接收数据区显示出来。
该控制程序中需要手动进行发送和接收数据,如果需要在设定转速并发送完毕之后,能自动显示转速,就增加一个TTimer组件,在其OnTimer事件中添加接收数据的代码即可Fig.实现自动接收并显示:4结语本文主要探讨了利用ATmega162单片机通过脉宽调制方法控制交流电机的转速,以及利用Delphi来实现单片机与上位计算机进行串行通信的控制界面。主要是ATmega162的USART用法,用C语言编写单片机串行通信接口程序。
交流电机的移相调速控制及PWM在ATmega162中的程序实现。
文中主要讨论了开环控制下的电机调速,并没有检测电机转速是否按照设定速度稳定运行并进行相应的调整,今后可以在这方面作进一步的完善。
2号站平台|2号站注册|2号站代理|2号站开户 » ATmega162单片机与交流电2号站平台怎么注册机调速控制研究