ARM课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ARM嵌入式系统综合设计专业班级:学生姓名:课程设计单位:课程设计起止日期:指导老师:ARM嵌入式系统综合设计一、设计目的培养学生分析问题,设计程序的能力,了解嵌入式技术应用,熟悉掌握ARM7内部资源基本应用,通过设计简单的程序实现自己想要的功能,能够综合运用所学的知识。1、熟悉LPC2000系列ARM硬件结构;2、学会LPC2000系列ARMGPIO,PLL,定时器,外部中断,ADC,PWM,UART的简单应用。3、利用Keil开发工具对程序进行设计、调试并修改程序;4、通过收集信息并运用信息解决问题的能力;5、具备自主学习的能力;6、具备制定计划和实施计划的能力。二、设计任务1.硬件方面,学习并掌握NXP_ARM7系列32位单片机的硬件应用电路设计及制作,锻练并掌握电路板的布局,焊接,硬件调试等工艺方法。硬件部分基本要求:以LPC213x为核心,设计最小系统,在此基础上添加工作指示灯,四位数码管显示器,四个按键的键盘,RS-232接口(使用UART1),用于ADC实验的电压取样电位器,声音提示的蜂鸣器,JTAG接口,CAN总线接口(选作),亦可根据自己的想法在上述的基础上,添加内容(选作,添加的部分必须具备可行性)。硬件的原理图每人独立完成,选择设计合理的原理图设计其PCB,PCB同样是每人独立完成,选择优者送厂家制作。PCB的焊接工作每人自己完成,要求保证质量,能够正常工作,不能正常工作的板子将影响最终成绩。2.软件方面,软件基础部分设计,包括以下部分:(必须完成)(1)设计一段程序能够控制LED的闪烁,闪烁频率自定义。(2)设计四个数码管的显示控制程序,使其能够按要求显示相应的数字(3)设计键盘控制程序,一个键定义为“++”键,即按一次此键,变量的值自加1;另一个键定义为“--”键,功能与“++”键相反;第三个键定义为“确定”键,按一次,调整的变量的值生效。键盘的调整数据的过程能够在数码管上显示,便于观察调整。第四个键定义为“放弃”键,按一次,调整无效,CPU继续工作。(4)对(1)的应用程序进行扩展,即利用键盘的功能调整LED的闪烁周期。(5)设计ADC控制程序,ADC的结果能够在数码管上正确显示,并且能显示小数,即小数点根据实际显示情况可以浮动。(6)设计定时器的控制程序,利用定时器控制LED的闪烁周期。(7)UART通信应用程序设计,通过上位机发一个数字给实验板,实验能够将这个数字返回给上位机。(中断或查询的方法均可)软件扩展部分设计,包括以下部分:(选择完成,加分项)(1)设计UART通信应用程序,通过上位机控制LED的亮与灭或闪烁频率。(2)设计UART通信应用程序,通过上位机发一个数据给实验板,在实验板的数码管上显示该数据。(3)设计UART通信应用程序,将ADC的结果发送给上位机。三、设计内容1、硬件设计1)LPC2132微控制器的内核和I/O使用同一电源电压,只需单电源3.3V供电。电源电路如图1所示,C6用于滤波,然后通过SPX1117M3-3.3将电源稳压至3.3V,C4用于提高电源稳定性。图1电源电路2)显示部分采用8段共阳数码管,段码采用ULN28018个NPN型达林顿管驱动,位选采用4个9012PNP型晶体管驱动,逻辑上与共阴极数码管控制方式一样,段码给高电平,位码给低电平。四个按键都接上拉电阻(LPC2000系列内部没有上拉电阻),AD采集电压通过电位器采集,端口与LPC213x核心板引出端子一致。显示部分原理图如图2。图2数码管显示电路2)本设计采用LPC2132ARM处理器。LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-STMCPU的微控制器,并带有64kB的嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。其特性如下:1.小型LQFP64封装的16/32位ARM7TDMI-S微控制器。8/16/32kB片内静态RAM。2.片内Boot装载软件实现在系统/在应用中编程(ISP/IAP)。3.扇区擦除或整片擦除的时间为400ms,1ms可编程256字节。4.EmbeddedICE®RT和嵌入式跟踪接口可实时调试(利用片内RealMonitor软件)和高速跟踪执行代码。5.1个(LPC2132/2132)或2个(LPC2138)8路10位A/D转换器共包含16个模拟输入,每个通道的转换时间低至2.44us。6.1个10位D/A转换器,可提供不同的模拟输出(LPC2132/2138)。7.2个32位定时器/计数器(带4路捕获和4路比较通道),PWM单元(6路输出)和看门狗。实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。8.多个串行接口,包括2个16C550工业标准UART、2个高速I2C接口(400kbit/s),SPITM和SSP。(具有缓冲功能,数据长度可变)。9.向量中断控制器。可配置优先级和向量地址。10.多达47个5V的通用I/O口(LQFP64封装)。11.9个边沿或电平触发的外部中断引脚。12.通过片内PLL可实现最大为60MHz的CPU操作频率,PLL的稳定时间为100us。13.片内晶振频率范围:1~30MHz。14.2个低功耗模式:空闲和掉电。15,可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。16.通过外部中断将处理器从掉电模式中唤醒。17.单个电源供电,含有上电复位(POR)和掉电检测(BOD)电路:-CPU操作电压范围:3.0~3.6V(3.3V+/-10%),I/O口可承受5V的最大电压。图3LPC2132管脚分布3)复位电路原理图如图4,当复位按键S1按下时,RESET引脚立即输出复位信号,使LPC21312芯片复位。图4复位电路4)系统时钟电路如图5所示,LPC2100系列ARM7微控制器可使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快(CPU最大操作时钟为60MHz)。倘若不使用片内PLL功能及ISP下载功能,则外部晶振频率范围1MHz~30MHz,外部时钟频率范围是1MHz~50MHz;若使用了片内PLL功能或ISP下载功能,则外部晶振频率范是10MHz~25MHz,外部时钟频率范围是10MHz~25MHz。ARM2132使用了外部11.0592MHz晶振,用11.0592MHz晶振的原因是使串口波特率更精确,同时能够支持LPC2132微控制器芯片内部PLL功能及ISP功能。图5系统时钟电路5)JTAG接口电路采用ARM公司提出的标准20脚JTAG仿真调试接口,JTAG信号的定义及与LPC2132的连接如图6所示。根据LPC2132的应用手册说明,在RTCK引脚接一个4.7KΩ的下拉电阻,使系统复位后LPC2131内部JTAG接口使能,这样就可以直接进行JTAG仿真调试了。如果用户需要使用P1.26~P1.31作I/O,不进行JTAG仿真调试,则可以在用户程序中通过设置PINSEL2寄存器来使LPC21312内部JTAG接口禁能。图6JTAG接口电路6)串口及Modem接口电路如图7,由于系统是3.3V系统,所以使用了SP3232E进行RS232电平转换,SP3232E是3V工作电源的RS232转换芯片。如图7所示,当要使用ISP功能时,将PC的串口与开发板的U3相连,使用UART1进行通讯。同时还要把N1短接,使ISP的硬件条件得到满足。由LPC2100系列ARM7微控制器的UART1控制MODEM拔号、通讯等等。需要注意的是,LPC2100系列ARM7微控制器的ISP使能引脚(P0.14口)与DCD1功能脚复用,在系统复位时若P0.14口为低电平,则进入ISP状态;同样,在程序仿真调试过程中,若把JP1短接,则DCD1保持为低电平,影响MODEM接口正常使用。P0.11和P0.14为什么要接上拉电阻呢?因为P0.11、P0.14与I2C接口SCL1、SDA1功能复用,这两个口是开漏口,所以要接上拉电阻。另外,P0.14口在复位时用于检测是否使能ISP,此时P0.14为输入状态,倘若管脚悬空则会引起误动作(使能ISP)。图7串口及Modem接口电路7)键盘电路如图8,有4个独立按键,分别为KEY1~KEY4,如图8所示。由于P0口作为输入时,内部无上拉电阻,所以要使用R10~R13等4个上拉电阻,当没有按键时,口线值为1,当按键按下时为0;其中,KEY1所连接的口线为P0.16,这个口与外部中断EINT0复用,所以可用这个按键进行外部中断的实验、唤醒掉电CPU的实验。KEY2、KEY3、KEY4所连的口线为P0.17、P0.18、P0.19,可用作定时器的捕获输入。图8键盘电路8)蜂鸣器控制电路如图9所示,蜂鸣器使用PNP三极管Q1进行驱动控制,当P0.2控制电平输出0时,Q1导通,蜂鸣器蜂鸣;当P0.2控制电平输出1时,Q1截止,蜂鸣器停止蜂鸣。由于P0.2口与SPI部件的SSEL0复用,所以此管脚上接一上拉电阻R4,防止在使用硬件SPI总线时由于SSEL0引脚悬空导致SPI操作出错。图9蜂鸣器控制电路9)直流电压测量电路图10直流电压测量电路2、软件设计1)数码管动态扫描显示电路控制软件设计要求显示电路能正常显示数据,数码管无闪烁、明亮,可随时刷新显示的数据,参考流程图见图11。图11显示数据流程图2)键盘识别软件设计嵌入式控制系统一般的是配备简易键盘,即根据需要设4按键基本能满足使用要求,因此键盘控制软件也是必须的,参考如图10。图10按键扫描流程图3、锁相环配置(PLL)1)确定PLL设定的过程如果一个特定的应用使用PLL,它的配置必须依照下面的原则:1选择处理器的操作频率(cclk)。这可以根据处理器的整体要求、UART波特率的支持等因素来决定。记住外围器件的时钟频率可以低于处理器频率(见VPB分频器描述)。2选择振荡器频率(FOSC)。cclk一定是FOSC的整数(非小数)倍。3计算M值以配置MSEL位。M=cclk/FOSC,M的取值范围为1~32。写入MSEL位的值为M-1。4选择P值以配置PSEL位,使FCCO在定义的频率限制范围内,FCCO可通过前面的等式计算。P必须是1,2,4或8其中的一个。写入PSEL位的值00表示P=1;01表示P=2;10表示P=4;11表示P=8。2)PLL频率计算PLL等式使用下列参数:FOSC晶振频率FCCOPLL电流控制振荡器的频率cclkPLL输出频率(也是处理器的时钟频率)M--PLLCFG寄存器中MSEL位的倍增器值P--PLLCFG寄存器中PSEL位的分频器值PLL输出频率(当PLL激活并连接时)由下式得到:cclk=M*FOSC或cclk=FCCO/(2*P)CCO频率可由下式得到:FCCO=cclk*2*P或FCCO=FOSC*M*2*PPLL输入和设定必须满足下面的条件:FOSC的范围:10MHz~25MHzcclk的范围:10MHz~Fmax(LPC2131/2132/2138的最大允许频率)FCCO的范围:156MHz~320MHz3)VPB分频器图11VPB分频器连接4)LPC2132启动代码内配置PLL4、GPIO配置LPC2132有2个32位的通用I/O口。P0口的32个管脚中共有30个输入/输出管脚,1个管脚仅用作输出。P1口有多达16个管脚可用作GPIO功能。各寄存器配置举例如下:1)、IOxPIN(GPIO引脚值寄存器);GPIO当前引脚电平的状态,处理一组数据方便,不常用2)、IOxDIR(GPIO方向寄存器);IO0DIR=0x000000FF;//P0.0~P0.7设置为输出3)、IOxSET&IOxCLR(GPIO输出置位清零寄存器);IO0SET=0x00000080;//P0.7输出高电平IO0CLR=0x00000080;//P0.7输出低电平4)、PINSEL0&PINSEL1&PINSEL2(引脚功能选

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功