欢迎来到EDA中国!
当前位置:网站首页 >资源共享 > 嵌入式

ARM7的智能小车设计

  • 1M
  • doc
  •  
  •  
  • 下载
  • 2013-06-08
  • 软件简介

ARM7的智能小车设计

目录:

1、  引言…………………………………….…………………………….………….……………3

2、  设计要求………………………………….………………………….….……………………3

         2.1功能概述………………………….…………………………….….………………….....3

         2.2功能实现具体方案………………………………….……….……….………………….3

3、  ARM7芯片介绍…………………….………………….……….……………………………4

         3.1特点………………………….………………….…………….………………………….5

         3.2描述………………………….………………….………….…………………………….6

4、  硬件系统的设计………………….……………….………………….………………………6

         4.1  “cpu and jtag”部分………………….…………………………………………6

         4.2  USB供电部分………………………………………………….………………………7

         4.3  模数转换(AD)部分………………….………………..…….………………………7

         4.4  液晶部分………………….……………………..…………….………………………7

         4.5  数码管显示及按键部分………………….……..…………….………………………8

         4.6  无线模块部分………………….…………………..………….………………………8

         4.7  寻迹部分………………….…………………………..……….………………………9 

         4.8  蜂鸣器部分………………….……………………..………….………………………10

         4.9  外部扩展接口………………….……………………..……….………………………10

         4.10 电机驱动控制部分………………….…………………..…….………………………10

         4.11 步进电机部分………………….………………………..…….………………………12

         4.12 电源部分………………….……………………………..…….………………………12

         4.13 复位部分………………….……………………………..…….………………………13

         4.14 温度传感器部分………………….……………………………………………...……13

5、  软件系统的设计……………….………………………………………..……………………3

         5.1 基本功能实现程序……………………….……………………………………..………3

         5.2三米范围实现小车加减速及前进后退程序……………………………………..….…3

         5.3 扩展功能——串口通信程序………………………………………………..…….……3

6、  结语…………………….………………………………………..……………………………3

 

 

 

 

 

 

 

一、引言:

 

ARM处理器是世界上最流行的嵌入式处理器,广泛应用于个人通信等嵌入式领域。

在嵌入式领域,8位处理器已经不再胜任一些复杂的应用,比如GUITCP/IPFILESYSTEM等,而ARM芯片凭借强大的处理能力和极低的功耗,非常适合这些场合。所以现在越来越多的公司在产品选型的时候考虑到使用ARM处理器,从这个角度来说,对于在校大学生来说,掌握ARM开发技术,利于寻找一份好的工作。这也就促使我们在第七学期末课程设计的题目定为ARM7智能小车设计及开发。

 

 

二、设计要求

 

2.1 功能概述

2.1.1  小车必学具备的基本功能:

小车的正常行进;加减速;行进状态显示;按键控制,LED显示;蜂鸣器控制;小车在3米范围内实现自动加速前进、后退停止。

2.1.2  可扩展功能:

串口通信;USB通信;温度测量;LCD显示;无线遥控;自动寻迹、避障;步进电机控制(选一种)。

2.1.3  备注

我们组完成了小车的基本功能,扩展功能完成了串口通信。

2.2  功能实现具体方案

2.2.1  基本功能实现:

(1)小车的正常行进:

使用ARM7的4个可输出16mA电流的IO口控制小车8个方向的正常行进。

 

前后控制、左右控制需注意:不能同时出现一对IO口都输出1的情况,否则大电流直接从三极管流走,带来很大的功耗。在CPU上电复位时,应立即将4个IO口均置0。

(2)小车的加减速:

使用arm7内部的PWM控制器,通过软件调节其输出信号的占空比,即可实现小车加减速度的控制制。AT91SAM7S64的PA0、PA1具有PWM外设功能,可控制小车前进及后退的加减速。

(3)行进状态显示:

小车行进过程中,通过4个发光二极管显示小车的行进状态:前进:D3亮;后退:D4亮;左转:D2亮;右转:D1亮。

(4)按键控制,LED显示:

小车由4节干电池供电(6V),在干电池使用一段时间后电压会降到5V以下。所以从电压及功耗的角度考虑,系统控制部分应尽量工作在3.3V电压下。使用低压差的稳压芯片MIC5209-3.3V,在输入电压大于3.5V时,就能稳定输出3.3V电压,并且功率消耗很低。HD7279A,作为数码管键盘控制芯片。它的工作电压为5V,显然不能用于小车的设计。因此,选用了ZLG7289B控制4位数码管及8个按键,其工作电压为+2.7—6V,仍然为SPI总线通信,并且其指令与HD7279A完全兼容。

(5)蜂鸣器控制:

1个IO口输出高低电平控制蜂鸣器

2.2.2  扩展功能:

(1)串口通信:

用MAX3232转换为232电平,可直接与电脑连接或者与其他标准串口通信设备连接。

(2)USB通信:

(3)温度测量:

使用单总线DS18B20温度传感器,检测周围环境温度。低功耗,体积小,并且只占用CPU一个IO口资源。

(4)LCD显示:

HD7920主控芯片的液晶,内置8000多个汉字字模。支持串行通信。

(5)无线遥控:

板子上带有315M无线接收模块:没有专门的解码芯片,需要用CPU模拟通信时序自解码。遥控器可以自己利用无线发射模块设计。也可以加上单片机控制,实现更多数据的发送。同时:系统提供多个数字量的输入输出接口,可以外接无线发射模块。

(6)自动寻迹,避障:

通过数字量输入接口接入光电开关,其工作电压为2—6v,满足小车行进过程中的电量消耗。光电开关具有一个红外发射探头,和一个红外接收头,当发射出去的红外光被反射回来接收到时,输出低电平,否则输出高电平。其距离可调(3cm-80cm)。利用它可以检测到黑线,或前方障碍物,即实现寻迹及避障功能。

(7)步进电机控制:

两相四线步进电机:一路电源输入,4路控制输入。可用来带动光电开关,检测360度范围内的障碍物。

 (更多的拓展功能:GPRS通信;GPS卫星定位;外接其他数字量/模拟量的传感器(如湿度,二氧化碳浓度等);太阳能供电)

 

 

三、ARM7芯片简单介绍:

 

3.1  特点
1、
集成了ARM7TDMI ARM Thumb 处理器;-高性能的32位RISC架构;-高密度的16位指令集;-性能/功耗(MIPS/Watt)的领先者;-嵌入式ICE电路仿真,支持调试通讯.
2、64K字节的片内高速Flash存储器,共512页,每页128字节;-在最坏的条件下可以30MHz的速度进行单时钟周期访问, ;预取(Prefetch)缓冲器可以实现Thumb指令的优化,使处理器以最快的速度执行指令;-页编程时间为4 ms,包括页自动擦除,全片擦除时间为10 ms;- 10,000次的写寿命,10年数据保持能力,扇区锁定功能,Flash安全锁定位;-适合量产的快速Flash编程接口
3、16K字节的片内高速SRAM,可以在最高时钟速度下进行单时钟周期访问操作
4、存储器控制器(MC);-嵌入式Flash控制器,异常中断(Abort)状态及未对齐(Misalignment)检测
5、复位控制器 (RSTC);-上电复位和经过工厂标定的掉电检测;-提供复位源信息以及给外部电路使用的复位信号
6、时钟发生器(CKGR);-低供耗RC振荡器,3到20MHz的片上振荡器和一个PLL
7、电源管理控制器(PMC);-可以通过软件进行电源优化,包括慢速时钟模式(低至500 Hz)和空闲(Idle)模式;-三个可编程的外部时钟信号
8、先进的中断控制器(AIC);-可以单独屏蔽的,具有8个优先级的向量式中断源;-两个外部中断源和一个快速中断源,可以防止虚假(spurious)中断

9、调试单元(DBGU);-2线UART,支持调试通讯通道中断;可通过程序来禁止通过ICE进行访问
10、周期性间隔定时器(PIT);-20位可编程的计数器,加上12位的间隔计数器
11、时间窗看门狗(WDT);-12位受预设值(key)保护的可编程计数器;-为系统提供复位或中断信号;-当处理器处于调试状态或空闲模式时可以停止计数器
12、实时定时器(RTT);-32位自由运行的具有报警功能的计数器;-时钟来源于片内RC振荡器
13、一个并行输入/输出控制器(PIOA) ;-32个可编程的复用I/O,每个I/O最多可以支持两个外设功能;-输入电平改变时,每个I/O都可以产生中断;-可以独立编程为开漏输出,使能上拉电阻以及同步输出
14、11个外设数据控制器(PDC)通道

15、一个USB 2.0全速(12 Mbps)设备端口;-片上收发器,328字节可编程的FIFO
16、一个同步串行控制器(SSC);-每个接收器和发送器都具有独立的时钟和帧同步信号;-支持I S,支持时分多址;-支持32位数据传输的高速连续数据流功能
17、两个通用的同步/异步收发器(USART);-独立的波特率发生器,IrDA红外调制/解调;-支持ISO7816 T0/T1智能卡,硬件握手信号,支持RS485;-USART1支持全功能的调制解调器信号
18、主/从串行外设接口(SPI);-8到16位可编程的数据长度,4个片选线
19、一个3通道的16位定时器/计数器(TC);-3个外部时钟输入端,每个通道有两个多功能I/O引脚
-倍速PWM发生功能,捕捉/波形模式,递增/递减计数

20、一个4通道的16位PWM控制器(PWMC)
21、一个两线接口(TWI);-只支持主机模式,支持所有的Atmel两线EEPROM
22、一个8通道的10位模数转换器,其中4个通道与数字I/O复用
23、IEEE 1149.1 JTAG边界扫描支持所有的数字引脚
24、5V兼容的I/O,包括4个高达16 mA的大电流驱动I/O
25、电源;-片上1.8V电压调节器,可以为内核及外部元件提供高达100 mA的电流;-为I/O口线提供电源的3.3VVDDIO,以及独立的为Flash供电的3.3VVDDFLASH;-内核电源为1.8V VDDCORE,并具有掉电检测(BoD)功能
26、全静态操作:极限条件下(1.65V,85°C )高达55 MHz
27、封装为64脚的LQFP

3.2  描述

AT91SAM7S64是Atmel 32位ARM RISC 处理器小引脚数Flash微处理器家族的一员.它拥有64K字节的高速Flash和16K字节的SRAM,丰富的外设资源,包括一个USB 2.0设备,使外部器件数目减至最低的完整系统功能集.这个芯片是那些正在寻求额外处理能力和更大存储器的8 位处理器用户的理想选择.Flash存储器可以通过JTAG-ICE进行编程,或者是在贴装之前利用编程器的并行接口进行编程.锁定位可以防止固件不小心被改写,而安全锁定位则可以保护固件的安全.
    AT91SAM7S64的复位控制器可以管理芯片的上电顺序以及整个系统.BOD和看门狗则可以监控器件是否正确工作.
    AT91SAM7S64是一个通用处理器.它集成了USB设备端口,使得它成为连接PC或手机的外设应用的理想芯片.极具竞争力的性价比进一步拓展了它在低成本,大产量的消费类产品中的应用.

 

 

四、硬件系统设计

 

 

4.1  “cpu and jtag”部分

(本板所采用CPU为AT91SAM7S64)

其接法说明:

CPU第49, 51, 53号管脚,分别为TDO, TMS,TCK.TMS、TDI和TCK都是施密特触发器型的输入引脚。TMS和TCK与5V兼容,TDI则不是。TMS、TDI和TCK都没有上拉电阻。TDO为输出引脚,输出电平为VDDIO,没有上拉电阻。这三个引脚接至10针下载部分。JTAG接口参照AT91SAM7S64评估版20针通用JTAG接口连接,小车原理图中设计为10针,因此需另制作一个20—10的转接板(转接板的制作详情请参照焊接顺序文档)。CPU第50号管脚“JTAGSEL”,接短路块JP2接3.3V电压,可以启用边界扫描模式。其具体介绍摘自cpu的pdf文档如下:

CPU第40号管脚“TST”接法同“JTAGSEL”,它和“PA0”,“PA1”同时为高时,可启用快速编程模式。因为“PA0”,“PA1”接直流电机驱动时已接上拉电阻(参见驱动部分电路图“powerand drive.Sch”)。所以这样接符合要求。TST为高时,若PA0或PA1为0将导致不可预测的结果,接端子J4和地。其具体介绍摘自cpu的pdf文档如下:

4.2  USB供电部分:

可直接与PC机通信,以及通过USB直接给芯片供电。其原理图如下:

4.3  模数转换(AD)部分

CPU第3号至6号管脚为ADC模数转换端口,接外部端子J11,将J19、J20、J21、J22四个短路块短路,即可通过外接模拟量并通过cpu进行AD转换(参见io.Sch)。AT91SAM7S256片内集成了ADC控制器,无需外接AD转换芯片。在io.sch中U7、U8为OP291,此部分作用为将微小输入的模拟量放大后再输入到cpu的IO口,其中R96至R103需根据实际放大倍数再确定阻值。

4.4   液晶部分

CPU第9、10号管脚为通用I/O口,PA17在此用做LCD的时钟输入端。PA18作为液晶的串行通讯端,接到液晶串行通信端WR。可通过此液晶屏显示小车运行状态等信息。

4.5  数码管显示及按键部分:

CPU第1号管脚为I/O口,接到zlg7289B的片选端。第14,15号管脚为I/O口,分别接到zlg7289B的时钟输入CLK端和数据传输端。第16号管脚为外部中断0(IRQ0)端口,由于zlg7289B的KEY为 按键有效输出,平时为高电平,当检测到有效按键时,此引脚变为低电平,所以要接CPU的外部中断端口。Zlg7289B的工作性能与HD7279A的工作性能基本一致,但考虑到小车的电池耗电问题,由于ZLG7289B的电源电压为+2.7—6v,因此本设计采用ZLG7289B作为数码显示及按键控制芯片。具体请参考ZLG7289B说明书。

Zlg7289B的严格时序如下:

纯指令:

带数据指令:

4.6  无线模块部分:

      CPU第13号管脚为通用IO口(PA19),其连接extend.Sch部分的J15,即无线模块。此无线模块采用软解码方法,即CPU模拟解码芯片对接收到的12位码值进行解码,前8位为地址码,后4位为数据码。在此我们所用的一般的编码芯片为PT2262、HS2262等,解码芯片为PT2272,HS2272等。注意在需用解码芯片的同时,须将编解码电路的振荡电阻对应好。详见相应芯片说明书。

无线模块实物如图:。

无线发射模块即遥控器如图:.

关键字 : 智能小车 ARM7 设计 
获取帮助