实验一直流步进电机综合控制系统设计.doc
《实验一直流步进电机综合控制系统设计.doc》由会员分享,可在线阅读,更多相关《实验一直流步进电机综合控制系统设计.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流实验一直流步进电机综合控制系统设计.精品文档.实验一 直流、步进电机综合控制系统设计一、实验目的通过本次实验熟悉MagicARM2410 GPIO、UART、RTC,步进电机,直流电机,IIC的工作原理;并能熟悉的编程控制。二、实验要求以MagicARM2410为实验平台,设计一个通过串口通信交互控制的综合型控制系统。具体来说,可在启动时,自动列出一些选项,通过键盘选择某个选项而实现其功能;考虑到实时性,再按某个控制键能立刻停止当前功能而回到初始的待选状态。具体功能要求如下: 1、实现四个LED灯按照十六进制的规则依次亮灭; 2、在超级终端上
2、输入两个两位数,实现两位数的加减乘除并显示运算结果; 3、显示当前的年月日、星期、时分秒; 4、实现步进电机的调速和正反转;可用旋转按钮W1或按键控制调速,在超级终端和数码管上同步显示其正反转和转速信息; 5、实现直流电机德调速和正反转;可用旋转按钮W2或按键控制调速,在超级终端和数码管上同步显示其正反转和转速信息; 6、利用IIC通信,实现EEPROM的读写;在超级终端上显示地址和数据。三 、实验原理(一)LED灯四个小灯分别接于GPE11、GPE12 GPH4、GPH6端口;控制端口“0“和“1”分别实现亮灭(端口设为输出)如下:void LED_init(void) / 初始化I/O r
3、GPECON = (rGPECON & (0x0F22) | (0x0522); / rGPECON25:22 = 0101b,设置GPE11、GPE12为GPIO输出模式 rGPHCON = (rGPHCON & (0x338) | (0x118); / rGPHCON13:8 = 01xx01b,设置GPH4、GPH6为GPIO输出模式(二)UARTUART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个
4、低位起始位开始,后面是58个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。 在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。UART作用1 发送/接收逻辑2 波特率的产生3 数据收发4 中断控制出现以下情况时,可使UART 产生中断: FIFO 溢出错误线中止错误(line-break,即Rx
5、 信号一直为0 的状态,包括校验位和停止位在内)奇偶校验错误帧错误(停止位不为1)接收超时(接收FIFO 已有数据但未满,而后续数据长时间不来)发送接收由于所有中断事件在发送到中断控制器之前会一起进行“或运算”操作,所以任意时刻 UART 只能向中断产生一个中断请求。通过查询中断状态函数UARTIntStatus( ),软件可以在同一个中断服务函数里处理多个中断事件(多个并列的if 语句)。5 回环操作6 串行红外协议UART初始化函数如下void UART_Init(void)int i;if(g_uart_sel)/ 判断是否为串口1/ I/O口设置 (GPH5,GPH4)rGPHUP =
6、 rGPHUP | (0x034);rGPHCON = (rGPHCON & (0x00000F00) | (0x00000A00);/ 串口模式设置rUFCON1 = 0x00; / 禁止FIFO功能rUMCON1 = 0x00; / AFC(流控制)禁能rULCON1 = 0x03; / 禁止IRDA,无奇偶校验,1位停止位,8位数据位rUCON1 = 0x245; / 使用PCLK来生成波特率,发送中断为电平触发模式,接收中断为边沿触发模式, / 禁止接收超时中断,使能接收错误中断,正常工作模式,中断或查询方式(非DMA)/ 串口波特率设置rUBRDIV1=(int)(PCLK/16.0
7、/UART_BPS + 0.5) -1; else/ I/O口设置 (GPH3,GPH2)rGPHUP = rGPHUP | (0x032);rGPHCON = (rGPHCON & (0x000000F0) | (0x000000A0);/ 串口模式设置rUFCON0 = 0x00; / 禁止FIFO功能rUMCON0 = 0x00; / AFC(流控制)禁能rULCON0 = 0x03; / 禁止IRDA,无奇偶校验,1位停止位,8位数据位rUCON0 = 0x245; / 使用PCLK来生成波特率,发送中断为电平触发模式,接收中断为边沿触发模式, / 禁止接收超时中断,使能接收错误中断,
8、正常工作模式,中断或查询方式(非DMA)/ 串口波特率设置rUBRDIV0=(int)(PCLK/16.0/UART_BPS + 0.5) -1; for(i=0;i100;i+);(三)RTCA 概述实时时钟(RTC)单元在系统电源关闭的情况下可以在备用电池下工作。RTC 可以使用STRB/LDRB ARM 操作传输二进制码十进制数的 8 位数据给 CPU。数据包括秒、分钟、小时、日期、天、月、年的时间信息。RTC 单元可以在 32.768KHz 的外部晶振下工作,可以可以执行报警功能。B 特点- BCD 数:秒、分钟、小时、日期、日、月、年- 闰年生成器- 报警功能:报警中断或从掉电模式中
9、唤醒- 已经解决 2000 年问题- 独立电源引脚(RTCVDD)- 支持对于实时内核时间节拍的毫秒节拍时间中断C 实时时钟操作C.1 闰年发生器闰年发生器可以基于 BCDDATE、BCDMON、BCDYEAR 的数据,从 28、29、30、31 中确定每个月的最后一天。该模块在确定某月最后一天的时候会考虑闰年的因素。一个 8 位的计数器仅能代表两个 BCD 数字,所以它不能确定是否是 00 年(该年的最后两个数字是00)。C.2读写寄存器为了写RTC模块中的BCD寄存器,RTCCON寄存器的位 0 必须置 1。为了显示秒分小时星期日月年,CPU应该分别读取在RTC模块中的BCDSEC,BCD
10、MIN,BCDHOUR,BCDDAY,BCDDATE,BCDMON,和BCDYEAR。但是,因为多寄存器读取可能存在一秒的误差。例如,当用户读BCDYEAR和BCDMON,结构假定是 2059 年 12 月 31 日 23 点 59 分。当用户读BCDSEC寄存器,值的范围是从 1 到 59(秒)就没有问题,但是如果值是 0,年月日就变成了 2060 年 1 月 1 日0 时 0 分因为有刚才提到的 1 秒误差。在这种情况下如果BCDSEC为 0,用户应该重读BCDYEAR到BCDSEC。C.3 备用电池操作RTC 逻辑可以由备用电池驱动,其通过 RCTVDD 引脚给 RTC 模块提供电源,即
11、使系统电源关闭。当系统关闭时,CPU 和 RTC 模块的接口是封闭的,备用电池仅驱动振荡电路和BCD 计数器以最小化电源消耗。C.4 报警功能RTC 在掉电模式或正常操作模式下的特定时间会发出报警信号。在正常操作模式下报警中断(INT_RTC)被激活。在掉电模式下,电源管理唤醒信号(PMWKUP)也如 INT_RTC一样被激活。RTC 报警寄存器(RTCALM)决定了报警的使能状态和报警时间设定的条。C.5 节拍时间中断RTC 节拍时间是用于中断请求。TICNT 寄存器有一个中断使能位和对于中断的计数器值当节拍时间中断出现时,计数器的值为 0。中断周期如下:Period = ( n+1 ) /
12、 128 secondn: 节拍计数器值 (1127)RTC 节拍时间可以用于实时操作系统内核时间节拍。如果时间节拍由 RTC 时间节拍生成,与实时操作系统功能相关的时间就会和实时同步。D.RTC寄存器(1)实时时钟控制寄存器(RTCCON)(2)节拍时间计数寄存器(TICNT)(3)RTC 报警控制寄存器(RTCALM)(4)报警秒数据寄存器(ALMSEC)(5)报警分钟数据寄存器(ALMMIN)(6)报警小时数据寄存器(ALMHOUR)(7)报警日期数据寄存器(ALMDATE)(8)报警月数据寄存器(ALMMON)(9)报警年数据寄存器(ALMYEAR)(10)BCD 秒寄存器(BCDSE
13、C)(11)BCD 分寄存器(BCDMIN)(12)BCD 小时寄存器(BCDHOUR)(13)BCD 日期寄存器(BCDDATE)(14)BCD 日寄存器(BCDDAY)(15)BCD 月寄存器(BCDMON)(16)BCD 年寄存器(BCDYEAR)(四)步进机与直流电机工作原理步进电机是一种将电脉冲转化为角位移的执行机构。步进电机正传,双四拍程序。 时序控制为AB-BC-CD-DA-AB,共控制运转4圈(电机步距角为18度)。 每一步的延时控制。值越大,延时越久;步进电机反转,双四拍程序时序控制为AD-DC-CB-BA-AD。步距角为18度)。每一步的延时控制。值越大,延时越久。正转模式
14、:dly为延时void MOTO_Mode1(uint32 dly) / AB相有效 GPIOSET(MOTOA); GPIOSET(MOTOB); Delay(dly); GPIOCLR(MOTOA); GPIOCLR(MOTOB); / BC相有效 GPIOSET(MOTOB); GPIOSET(MOTOC); Delay(dly); GPIOCLR(MOTOB); GPIOCLR(MOTOC); / CD相有效 GPIOSET(MOTOC); GPIOSET(MOTOD); Delay(dly); GPIOCLR(MOTOC); GPIOCLR(MOTOD); / DA相有效 GPIOS
15、ET(MOTOD); GPIOSET(MOTOA); Delay(dly); GPIOCLR(MOTOD); GPIOCLR(MOTOA);直流电机由PWM脉冲调制控制;脉冲为1是电机转动,0时停止转动。通过PWM占空比来实现加减速。参考程序:void StepMOTO_Test(void) / uint32 a = 0; / 步进电机控制口设置 rGPCCON = (rGPCCON & (0x0000FC03) | (0x00005401);/ GPC0、GPC5-7口设置为输出 rGPCUP = rGPCUP | 0x00E1; / 禁止GPC0、GPC5-7口的上拉电阻 rGPCDAT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 直流 步进 电机 综合 控制系统 设计
限制150内