基于ARM32位单片机的机器人设计毕业设计.docx
《基于ARM32位单片机的机器人设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于ARM32位单片机的机器人设计毕业设计.docx(65页珍藏版)》请在冰点文库上搜索。
基于ARM32位单片机的机器人设计毕业设计
摘要…………………………………………………………………2
Abstract………………………………………………………………3
第一章引言………………………………………………………4
第二章S3C44B0X控制器介绍………………………………………6
2.1S3C44B0X控制器管脚………………………………………6
2.2SamsungS3C44B0X介绍……………………………………8
第三章ARM开发工具简介………………………………………12
3.1ARM开发工具综述…………………………………………12
3.2ARMSTD安装和应用………………………………………13
第四章S3C44B0X内部资源编程…………………………………20
4.1LED显示……………………………………………………20
4.2键盘控制……………………………………………………23
4.3数码管显示…………………………………………………24
4.4中断控制……………………………………………………25
第五章机器人的设计………………………………………………27
5.1硬件结构……………………………………………………27
5.2软件设计……………………………………………………31
5.3结论…………………………………………………………44
第六章展望…………………………………………………………45
参考文献
摘要
ARMT7TDMI是通用的32位RISC微处理器成员之一,在非常低的功耗和价格下提供了很高性能。
SamsungS3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微处理器解决方案。
它使用ARM7TDMI核,工作在66MHZ。
为了降低系统总成本,该芯片集成了8KBCache、外部存储器控制器、LCD控制器等,是一款高效的微处理器。
关键词:
ARMT7TDMI32位微处理器SamsungS3C44B0X66MHZ
Abstract
TheARM7TDMIisamemberoftheAdvancedRISCMachines(ARM)familyofgeneralpurpose32-bitmicroprocessors,whichofferveryhighperformanceforverylowpowerconsumptionandprice.
SAMSUNG'sS3C44B0Xmicroprocessorisdesignedtoprovideacost-effectiveandhighperformancemicro-controllersolutionforhand-helddevicesandgeneralapplications.TheS3C44B0XwasdevelopedusingaARM7TDMIcore,upto66MHZ。
Toreducetotalsystemcost,S3C44B0Xalsoprovidesthefollowing:
8KBcache,optionalinternalSRAM,LCDcontrollerandsoon,whichisahighperformancemicroprocessors.
Keywords:
ARM7TDMI32-bitmicroprocessorsS3C44B0X66MHZ
第一章引言
ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。
技术具有性能高、成本低和能耗省的特点。
适用于多种领域,比如嵌入控制、消费、教育类、多媒体、DSP和移动式应用等。
ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。
利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。
目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。
至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。
ARM架构是面向低预算市场设计的第一款RISC微处理器。
ARM提供一系列内核、体系扩展、微处理器和系统芯片方案。
由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。
典型的产品如下。
①CPU内核
--ARM7:
小型、快速、低能耗、集成式RISC内核,用于移动通信。
--ARM7TDMI(Thumb):
这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。
同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。
该产品的典型用途是数字蜂窝电话和硬盘驱动器。
--ARM9TDMI:
采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。
在生产工艺相同的情况下,性能可达ARM7TDMI的两倍之多。
常用于连网和顶置盒。
②体系扩展
--Thumb:
以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小。
③嵌入式ICE调试
由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。
④微处理器
--ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:
低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG。
广泛应用于手持式计算、数据通信和消费类多媒体。
--ARM940T、920T系列:
低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。
应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。
--StrongARM:
性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给Intel。
SA110处理器、SA1100PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。
--ARM7500和ARM7500FE:
高度集成的单芯片RISC计算机,基于一个缓存式ARM732位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE则增加了一个浮点运算单元以及对EDODRAM的支持。
特别适合电视顶置盒和网络计算机(NC)。
WindowsCE的PocketPC只支持ARMWindowsCE可支持多种嵌入式处理器,但基于WindowsCE的PocketPC则只支持ARM一种。
微软在对SH3、MIPS、ARM等嵌入式处理器做了评估后认为,ARM是一种性价比较好的选择。
由于目前ARM在手持设备市场占有90%以上的份额,只支持ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。
由于ARM开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。
ARM微处理器的特点
ARM微处理器的特点
采用RISC架构的ARM微处理器一般具有如下特点:
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵活简单,执行效率高;
6、指令长度固定;。
ARM微处理器的应用领域
到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:
1、工业控制领域:
作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。
2、无线通讯领域:
目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。
3、网络应用:
随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。
此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
4、消费类电子产品:
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。
5、成像和安全产品:
现在流行的数码相机和打印机中绝大部分采用ARM技术。
手机中的32位SIM智能卡也采用了ARM技术。
除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。
ARM运用和机器人设计
ARM作为一项刚刚发展起来的新技术,具有很强的发展力。
由于是新生技术,因此在高校中只有研究生才开设这门课程,或者研究生在做研究型工作。
而在本科生中,由于各种原因,至今还没有开设这门课程。
因此,选择这个题目,一方面是希望能够在本科的学习阶段学习这门新技术,另一方面也是为以后在本科生开设这门课程做准备——开发实验系统。
在现有的(实验室拥有的设备)机器人的设计中,用的是摩托罗拉公司的68HC12单片机来进行开发的。
因此该设计希望将S3C44B0X运用在机器人身上,利用S3C44B0X优势,结合开放源码的UC/OS-II操作系统,开发出性能更高、可靠性更好的机器人。
第二章S3C44B0X控制器介绍
2.1S3C44B0X控制器管脚
om[1:
0]输入:
om[1:
0]设置S3C44B0X在测试模式和确定nGCS0的总线宽度,逻辑电平在复位期间由这些管脚的上拉下拉电阻确定.
ADDR[24:
0]输出:
地址总线输出相应段的存储器地址.
DATA[31:
0]输入输出:
数据总线,总线宽度可编程为8/16/32位.
nGCS[7:
0]输出:
芯片选择,当存储器地址在相应段的地址区域时被激活.存取周期和段尺寸可编程.
nWE输出:
写允许信号,指示当前的总线周期为写周期.
nWBE[3:
0]输出:
写字节允许信号.
nBE[3:
0]输出:
在使用SRAM情况下字节允许信号.
nOE输出:
读允许信号,指示当前的总线周期为读周期.
nXBREQ输入:
nXBREQ总线控制请求信号,允许另一个总线控制器请求控制本地总线,nXBACK信号激活指示已经得到总线控制权。
nXBACK输出:
总线应答信号。
nWAIT输入:
nWAIT请求延长当前的总线周期,只要nWAIT为低,当前的总线周期不能完成。
ENDIAN输入:
它确定数据类型是littleendian还是bigendian,逻辑电平在复位期间由该管脚的上拉下拉电阻确定.
nRAS[1:
0]输出:
行地址选通信号。
nCAS[3:
0]输出:
列地址选通信号。
nSRAS输出:
SDRAM行地址选通信号。
nSCAS输出:
SDRAM列地址选通信号。
nSCS[1:
0]输出:
SDRAM芯片选择信号。
DQM[3:
0]输出:
SDRAM数据屏蔽信号。
SCLK输出:
SDRAM时钟信号。
SCKE输出:
SDRAM时钟允许信号。
VD[7:
0]输出:
LCD数据线,在驱动4位双扫描的LCD时,VD[3:
0]为上部显示区数据,VD[7:
4]为下部显示区数据。
VFRAME输出:
LCD场信号,指示一帧的开始,在开始的第一行有效。
VM输出:
VM极性变换信号,变化LCD行场扫描电压的极性,可以每帧或可编程多少个VLINE信号打开。
VLINE输出:
LCD行信号,在一行数据左移进LCD驱动器后有效。
VCLK输出:
LCD点时钟信号,数据在VCLK的上升沿发送,在下降沿被LCD驱动器采样。
TOUT[4:
0]输出:
定时器输出信号。
TCLK输入:
外部时钟信号输入。
EINT[7:
0]输入:
外部中断请求信号。
nXDREQ[1:
0]输入:
外部DMA请求信号。
nXDACK[1:
0]输出:
外部DMA应答信号。
RxD[1:
0]输入:
UART接收数据输入线。
TxD[1:
0]输出:
UART发送数据线。
nCTS[1:
0]输入:
UART清除发送输入信号。
nRTS[1:
0]输出:
UART请求发送输出信号。
IICSDA输入输出:
IIC总线数据线。
IICSCL输入输出:
IIC总线时钟线。
IISLRCK输入输出:
IIS总线通道时钟选择信号线。
IISDO输出:
IIS总线串行数据输出信号。
IISDI输入:
IIS总线串行数据输入信号。
IISCLK输入输出:
IIS总线串行时钟。
CODECLK输出:
CODEC系统时钟。
SIORXD输入:
SIO接收数据输入线。
SIOTXD输出:
SIO发送数据线。
SIOCK输入输出:
SIO时钟信号。
SIORDY输入输出:
当SIO的DMA完成SIO操作时的握手信号。
AIN[7:
0]:
ADC模拟信号输入
AREFT输入:
ADC顶参考电压输入。
AREFB输入:
ADC底参考电压输入。
AVCOM输入:
ADC公共参考电压输入。
P[70:
0]输入输出:
通用I/O口(一些口只有输出模式)。
nRESET:
复位信号,nRESET挂起程序,放S3C44B0X进复位状态。
在电源打开已经稳定时,nRESET必须保持低电平至少4个MCLK周期。
OM[3:
2]输入:
OM[3:
2]确定时钟模式。
EXTCLK输入:
当OM[3:
2]选择外部时钟时的外部时钟输入信号线,不用时必须接高(3.3V).
XTAL0模拟输入:
系统时钟内部振荡线路的晶体输入脚。
不用时必须接高(3.3V).
EXTAL0模拟输出:
系统时钟内部振荡线路的晶体输出脚,它是XTAL0的反转输出信号。
不用时必须悬空。
PLLCAP模拟输入:
接系统时钟的环路滤波电容(700PF)。
XTAL1模拟输入:
RTC时钟的晶体输入脚。
EXTAL1模拟输出:
RTC时钟的晶体输出脚。
它是XTAL1的反转输出信号。
CLKout输出:
时钟输出信号.
nTRST输入:
TAP控制器复位信号,nTRST在TAP启动时复位TAP控制器。
若使用debugger,必须连接一个10K上拉电阻,否则nTRST必须为低电平。
TMS输入:
TAP控制器模式选择信号,控制TAP控制器的状态次序,必须连接一个10K上拉电阻。
TCK输入:
TAP控制器时钟信号,提供JTAG逻辑的时钟信号源,必须连接一个10K上拉电阻。
TDI输入:
TAP控制器数据输入信号,是测试指令和数据的串行输入脚,必须连接一个10K上拉电阻。
TDO输出:
TAP控制器数据输出信号,是测试指令和数据的串行输出脚。
VDD:
S3C44B0X内核逻辑电压(2.5V)
VSS:
S3C44B0X内核逻辑地.
VDDIO:
S3C44B0XI/O口电源(3.3V).
VSSIO:
S3C44B0XI/O地.
RTCVDD:
RTC电压(2.5V或3V,不支持3.3V).
VDDADC:
ADC电压(2.5V).
VSSADC:
ADC地.
2.2SamsungS3C44B0X介绍
SamsungS3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHZ。
为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:
8KBCache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。
S3C44B0X体系结构:
用于手持设备和通用嵌入式应用的完整系统;
16/32位RISC结构和带ARM7DMICPU核的功能强大的指令集;
Thumb协处理器在保证性能的前提下使代码密度最大;
片上ICE中断调试JTAG调试方式.
32*8位硬件乘法器;
S3C44B0X控制器内部资源简介
系统管理:
支持大/小端模式;
地址空间:
每个Bank32MB(一共256MB);
每个Bank支持8/16/32位数据总线编程;
固定的Bank起始地址和7个可编程的Bank;
1个起始地址和尺寸可编程的Bank;
8个内存Bank:
:
6个用于ROM、SRAM;2个用于ROM/SRAM/DRAM;
所有内存Bank的可编程寻址周期;
在能量低的情况下支持DRAM/SDRAM自动刷新模式;
支持DRAM的非对称/对称寻址;
缓冲内存和内部SRAM;
4路带8K字节的联合缓存;
不使用缓存的0/4/8K内容SRAM;
伪LRU(最近最少使用)的替代算法;
通过在主内存和缓冲区内容之间保持一致的方式写内存;
当缓冲区出错时,请求数据填充技术;
时钟和能量管理
低能耗;
时钟可以通过软件选择性地反馈回每个功能块;
能量模式:
正常模式:
正常运行模式;
低能模式:
不带PLL的底频时钟;
休眠模式:
只使CPU的时钟停止;
停止模式:
所有时钟都停止;
用EINT或RTC警告中断从停止模式唤醒;
中断控制器
30个中断源(看门狗定时器,6个定时器,6个UART,8个外部中断,4个DMA,2个RTC,1个ADC,1个I2C,1个SIO;
矢量IRQ中断模式减少中断响应周期;
外部中断源的水平/边缘模式;
可编程的水平/边缘极性;
对紧急中断请求支持FIQ(快速中断请求);
带PWM的定时器
5个16位带PWM的定时器/1个16位基于DMA或基于中断的定时器;
可编程的工作循环,频率和极性;
死区产生;
支持外部时钟源;
实时时钟
全时钟特点:
毫秒、秒、分、小时、天、星期、月、年;
32.768KHz运行;
CPU唤醒的警告中断;
时钟记号中断;
通用输入输出端口
8个外部中断端口;
71个多路输入输出口;
2个带DMA和中断的UART;
支持5位,6位,7位,8位串行数据传送/接收;
当传送/接收时支持双向握手;
可编程波特率;
支持IrDA1.0(115.2KBPS);
测试的循环返回模式;
每个通道有2个内部32位FIFO
DMA与A/D
DMA控制器;
2路通用无需要CPU干涉的DMA控制器;
2路桥式DMA控制器;
采用6种DMA请求的桥式DMA支持IO到内存,内存到IO,IO到IO:
软件,4个内部功能块(UART,SIO,实时器,IIS),外部管脚;
DMA之间可编程优先级次序;
突发传送模式提高到FPDRAM、EDODRAM和SDRAM的传送率;
A/D转换;
10位多路ADC;
最大500KSPS/10位;
LCD控制器
支持彩色/单色/灰度LCD;
支持单扫描和双扫描显示;
支持虚拟显示功能;
系统内存作为显示内存;
专用DMA用于从系统内存中提取图象数据;
可编程屏幕尺寸;
灰度:
16级;
256色;
看门狗定时器与I2C总线接口
16位看门狗定时器;
定时中断请求和系统复位;
1个带中断的多主机I2C总线;
串行,8位,双向数据传送器能够以100KB/S的标准模式和400KB/S的快速模式传送;
IIS总线接口
1个I带DMA的音频IS总线接口;
串行,每路8/16位数据传送器;
支持MSB数据格式;SIO(同步串行I/O)
1个带DMA和中断的SIO;
可编程波特率;
支持8位串行数据传送/接收操作;
操作电压范围
内核:
2.5V;I/O:
3.0V到3.6V;
运行频率
最高到75MHz;
封装
160LQFP/160FBGA;
第三章ARM开发工具简介
3.1、ARM开发工具综述
根据功能不同,ARM应用软件的开发工具分别有:
编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器和在线仿真器等,目前世界上约有四十家公司提供以上不同类别的产品。
用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本。
因此一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、项目管理及函数库的集成开发环境(IDE)一般来说是必不可少的。
至于嵌入式实时操作系统、评估板等其他开发工具,则可以根据应用软件规模和开发计划选用。
使用集成开发环境开发基于ARM的应用软件,包括编辑、编译、汇编和链接等全部工作,在PC机上即可完成,调试工作则需要配合其他的模块或产品方可完成。
目前常用的调试方法有以下几种。
1、指令集模拟器。
部分集成开发环境提供了指令集模拟器,可方便用户在PC机上完成一部分简单的调试工作。
但是,由于指令集模拟器与真实的硬件环境相差很大,所以,即使用户使用指令集模拟器调试通过的程序,也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。
2、驻留监控软件。
驻留监控软件是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口和串行端口等通信端口,与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、存储器的读写、寄存器的读写和断点的设置等。
驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。
ARM公司的Angel就是该类软件,大部分嵌入式实时操作系统也是采用该类软件进行调试的。
不同的是,在嵌入式实时操作系统中,驻留监控软件是作为操作系统的一个任务存在的。
驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行应用软件的开发;同时,它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真。
因此,对一些要求严格的情况,它是不适合的。
3、JTAG仿真器。
JTAG仿真器也称JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。
JTAG仿真器比较便宜,连接比较方便。
它通过现有的JTAG边界扫描与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试;它无须目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。
另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配以及电线长度的限制等被最小化了。
使用集成开发环境配合JTAG仿真器进行开发,是目前采用最多的一种调试方式。
4、在线仿真器。
在线仿真器使用仿真头完全取代目标板的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能,但这类仿真器为了能够全速仿真时钟速度高于100MHZ的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。
4.2、ARMSTD
ARMSTD的英文全称是ARMSoftwareDevelopmentKit,是ARM公司为方便用户在ARM芯片上进行软件开发而推出的一整套集成开发工具。
ARMSTD经过ARM公司逐年的维护和更新,目前的最新版本是2.5.2.
ARMSTD由于价格适中,同时经过长期的推广和普及,目前拥有最广泛的ARM软件开发用户群体,也被相当多的ARM公司的第三方开发工具合作伙伴集成在自己的产品中,比如美国EPI公司的JEENI仿真器。
3.2ARMSTD的安装和应用。
一、安装SDT2.51
点击SDT2.51安装程序中的setup.exe,出现如下安装界面:
一路点击next继续,一般默认设