基于ARM32位单片机的机器人设计说明_第1页
基于ARM32位单片机的机器人设计说明_第2页
基于ARM32位单片机的机器人设计说明_第3页
基于ARM32位单片机的机器人设计说明_第4页
基于ARM32位单片机的机器人设计说明_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要 2Abstract3第一章 引言 4第二章 S3C44B0X控制器介绍62.1 S3C44B0X控制器管脚62.2 Samsung S3C44B0X介绍8第三章 ARM开发工具简介 123.1 ARM开发工具综述123.2 ARM STD安装和应用13第四章 S3C44B0X部资源编程 204.1 LED显示204.2键盘控制234.3 数码管显示244.4 中断控制25第五章 机器人的设计27 5.1硬件结构 275.2软件设计31 5.3结论44第六章 展望45参考文献摘要ARMT7TDMI是通用的32位RISC微处理器成员之一,在非常低的功耗和价格下提供了很高性能。Samsun

2、g S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微处理器解决方案。它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本,该芯片集成了8KB Cache、外部存储器控制器、LCD控制器等,是一款高效的微处理器。关键词:ARMT7TDMI 32位 微处理器 Samsung S3C44B0X 66MHZAbstractThe ARM7TDMI is a member of the Advanced RISC Machines (ARM) family ofgeneral purpose 32-bit microprocessors, which offe

3、r very high performance for very lowpower consumption and price.SAMSUNG's S3C44B0X microprocessor is designed to provide a cost-effective and high performance micro-controller solution for hand-held devices and general applications. The S3C44B0X was developed using a ARM7TDMI core,up to 66MHZ。To

4、 reduce total system cost, S3C44B0X also provides the following: 8KB cache, optional internal SRAM, LCD controller and so on,which is a high performancemicroprocessors.Keywords: ARM7TDMI32-bitmicroprocessors S3C44B0X 66MHZ第一章 引言ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术与软

5、件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费、教育类、多媒体、DSP和移动式应用等。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术与服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。ARM架构是面向低预算市场设计的第一款RISC微处理器。ARM提供一系列核、体系扩展、

6、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以一样的软件可在所有产品中运行(理论上如此)。典型的产品如下。CPU核-ARM7:小型、快速、低能耗、集成式RISC核,用于移动通信。- ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝和硬盘驱动器。-ARM9TDMI:采用5阶段管道化ARM9核,同时配备Thumb扩展、调试和Harvard总线。在生产工艺一样的情况下,性能可达ARM7TD

7、MI的两倍之多。常用于连网和顶置盒。体系扩展- Thumb:以16位系统的成本,提供32位RISC性能,特别注意的是它所需的存容量非常小。嵌入式ICE调试由于集成了类似于ICE的CPU核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。微处理器-ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T:低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、存管理、写缓冲和JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。-ARM940T、920T系列:低价、低能耗、高性能系统微处理器,配有Cache、存管理和写缓冲。应用于高级引擎管理、保安系

8、统、顶置盒、便携计算机和高档打印机。-StrongARM:性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给Intel。SA110处理器、SA1100 PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。-ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM7 32位核,拥有存和I/O控制器、3个DMA通道、片上视频控制器和调色板以与立体声端口;ARM7500FE则增加了一个浮点运算单元以与对EDO DRAM的支持。特别适合电视顶置盒和网络计算机(NC)。Windows CE的Pocket PC只支持ARMWindows

9、 CE可支持多种嵌入式处理器,但基于Windows CE的Pocket PC则只支持ARM一种。微软在对SH3、MIPS、ARM等嵌入式处理器做了评估后认为,ARM是一种性价比较好的选择。由于目前ARM在手持设备市场占有90%以上的份额,只支持ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。由于ARM开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。ARM微处理器的特点ARM微处理器的特点采用RISC架构的ARM微处理器一般具有如下特点:1、体积小、低功耗、低成本、高性能;2、支持Thumb(16位)/ARM(32位)双指令集,能很

10、好的兼容8位/16位器件;3、大量使用寄存器,指令执行速度更快;4、大多数数据操作都在寄存器中完成;5、寻址方式灵活简单,执行效率高;6、指令长度固定;。ARM微处理器的应用领域到目前为止,ARM微处理器与技术的应用几乎已经深入到各个领域:1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。3、网络应用:随着

11、宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音与视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM微处理器与技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。ARM运用和机器人设计ARM作为一项刚刚发展起来的新技术,具有很强的发展力。由于是新生技术,因此在高校中只有研究生才开设这门课程,或者研究生在做研究型工作

12、。而在本科生中,由于各种原因,至今还没有开设这门课程。因此,选择这个题目,一方面是希望能够在本科的学习阶段学习这门新技术,另一方面也是为以后在本科生开设这门课程做准备开发实验系统。在现有的(实验室拥有的设备)机器人的设计中,用的是摩托罗拉公司的68HC12单片机来进行开发的。因此该设计希望将S3C44B0X运用在机器人身上,利用S3C44B0X优势,结合开放源码的UC/OS- II操作系统,开发出性能更高、可靠性更好的机器人。第二章S3C44B0X控制器介绍2.1 S3C44B0X控制器管脚om1:0输入: om1:0设置S3C44B0X在测试模式和确定nGCS0的总线宽度,逻辑电平在复位期间

13、由这些管脚的上拉下拉电阻确定.ADDR24:0输出: 地址总线输出相应段的存储器地址.DATA31:0输入输出:数据总线,总线宽度可编程为8/16/32 位.nGCS7:0输出:芯片选择,当存储器地址在相应段的地址区域时被激活.存取周期和段尺寸可编程.nWE输出 :写允许信号,指示当前的总线周期为写周期.nWBE3:0输出: 写字节允许信号.nBE3:0输出:在使用SRAM情况下字节允许信号.nOE输出 :读允许信号,指示当前的总线周期为读周期.nXBREQ输入: nXBREQ 总线控制请求信号,允许另一个总线控制器请求控制本地总线,nXBACK信号激活指示已经得到总线控制权。nXBACK输出

14、:总线应答信号。nWAIT输入:nWAIT请求延长当前的总线周期,只要nWAIT为低,当前的总线周期不能完成。ENDIAN输入:它确定数据类型是little endian还是big endian,逻辑电平在复位期间由该管脚的上拉下拉电阻确定.nRAS1:0输出:行地址选通信号。nCAS3:0输出:列地址选通信号。nSRAS输出:SDRAM行地址选通信号。nSCAS输出:SDRAM列地址选通信号。nSCS1:0输出:SDRAM芯片选择信号。DQM3:0输出:SDRAM数据屏蔽信号。SCLK输出:SDRAM时钟信号。SCKE输出:SDRAM时钟允许信号。VD7:0输出:LCD数据线,在驱动4位双扫

15、描的LCD时,VD3:0为上部显示区数据,VD7:4为下部显示区数据。VFRAME输出:LCD场信号,指示一帧的开始,在开始的第一行有效。VM输出:VM极性变换信号,变化LCD行场扫描电压的极性,可以每帧或可编程多少个VLINE信号打开。VLINE输出:LCD行信号,在一行数据左移进LCD驱动器后有效。VCLK输出:LCD点时钟信号,数据在VCLK的上升沿发送,在下降沿被LCD驱动器采样。TOUT4:0输出:定时器输出信号。TCLK输入:外部时钟信号输入。EINT7:0输入:外部中断请求信号。nXDREQ1:0输入:外部DMA请求信号。nXDACK1:0输出:外部DMA应答信号。RxD1:0输

16、入:UART接收数据输入线。TxD1:0输出:UART发送数据线。nCTS1:0输入:UART清除发送输入信号。nRTS1:0输出:UART请求发送输出信号。IICSDA输入输出:IIC总线数据线。IICSCL输入输出:IIC总线时钟线。IISLRCK输入输出:IIS总线通道时钟选择信号线。IISDO输出:IIS总线串行数据输出信号。IISDI输入:IIS总线串行数据输入信号。IISCLK输入输出:IIS总线串行时钟。CODECLK输出:CODEC系统时钟。SIORXD输入:SIO接收数据输入线。SIOTXD输出:SIO发送数据线。SIOCK输入输出:SIO时钟信号。SIORDY输入输出:当S

17、IO的DMA完成SIO操作时的握手信号。AIN7:0 : ADC模拟信号输入AREFT输入:ADC顶参考电压输入。AREFB输入:ADC底参考电压输入。AVCOM输入:ADC公共参考电压输入。P70:0输入输出:通用I/O口(一些口只有输出模式)。nRESET:复位信号,nRESET挂起程序,放S3C44B0X进复位状态。在电源打开已经稳定时,nRESET必须保持低电平至少4个MCLK周期。OM3:2输入:OM3:2确定时钟模式。EXTCLK输入:当OM3:2选择外部时钟时的外部时钟输入信号线,不用时必须接高(3.3V).XTAL0模拟输入:系统时钟部振荡线路的晶体输入脚。不用时必须接高(3.

18、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控制器

19、时钟信号,提供JTAG逻辑的时钟信号源,必须连接一个10K上拉电阻。TDI输入:TAP控制器数据输入信号,是测试指令和数据的串行输入脚,必须连接一个10K上拉电阻。TDO输出:TAP控制器数据输出信号,是测试指令和数据的串行输出脚。VDD :S3C44B0X核逻辑电压(2.5V)VSS: S3C44B0X核逻辑地.VDDIO: S3C44B0X I/O口电源(3.3V).VSSIO: S3C44B0X I/O地.RTCVDD:RTC电压(2.5V或3V,不支持3.3V).VDDADC:ADC电压(2.5V).VSSADC:ADC地.2.2Samsung S3C44B0X介绍Samsung S3

20、C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器与一个部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。S3C44B0X 体系结构:用于手持设备和通用嵌入式应用的完整系统;16/32位RISC结构和带ARM7DMICPU核的功能强大的指令集;Thumb协处理器在保证性能

21、的前提下使代码密度最大;片上ICE中断调试JTAG调试方式.32*8位硬件乘法器;S3C44B0X微处理器体系结构框图S3C44B0X控制器部资源简介系统管理:支持大/小端模式;地址空间:每个Bank32MB(一共256MB);每个Bank支持8/16/32位数据总线编程;固定的Bank起始地址和7个可编程的Bank;1个起始地址和尺寸可编程的Bank;8个存Bank::个用于ROM、SRAM;2个用于ROM/SRAM/DRAM;所有存Bank的可编程寻址周期;在能量低的情况下支持DRAM/SDRAM自动刷新模式; 支持DRAM的非对称/对称寻址; 缓冲存和部SRAM; 4路带8K字节的联合缓

22、存;不使用缓存的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中断模式减少中断响应周期;外部中断源的水平/边缘模

23、式;可编程的水平/边缘极性;对紧急中断请求支持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位FIFODM

24、A与A/DDMA控制器;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位看门狗定时器;定

25、时中断请求和系统复位;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应用软件的开发工具分别有:编译软件、汇编软件、软件、调试软件、嵌入式实时操

26、作系统、函数库、评估板、JTAG仿真器和在线仿真器等,目前世界上约有四十家公司提供以上不同类别的产品。用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本。因此一套含有编辑软件、编译软件、汇编软件、软件、调试软件、项目管理与函数库的集成开发环境(IDE)一般来说是必不可少的。至于嵌入式实时操作系统、评估板等其他开发工具,则可以根据应用软件规模和开发计划选用。使用集成开发环境开发基于ARM的应用软件,包括编辑、编译、汇编和等全部工作,在PC机上即可完成,调试工作则需要配合其他的模块或产品方可完成。目前常用的调试方法有以下几种。1、 指令集模拟器。部分集成开发环境

27、提供了指令集模拟器,可方便用户在PC机上完成一部分简单的调试工作。但是,由于指令集模拟器与真实的硬件环境相差很大,所以,即使用户使用指令集模拟器调试通过的程序,也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。2、 驻留监控软件。驻留监控软件是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口和串行端口等通信端口,与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、存储器的读写、寄存器的读写和断点的设置等。驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。ARM公司的Angel就是该类软件,大

28、部分嵌入式实时操作系统也是采用该类软件进行调试的。不同的是,在嵌入式实时操作系统中,驻留监控软件是作为操作系统的一个任务存在的。驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行应用软件的开发;同时,它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真。因此,对一些要求严格的情况,它是不适合的。3、 JTAG仿真器。JTAG仿真器也称JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器比较便宜,连接比较方便。它通过现有的JTAG边界扫描与ARM CPU核通信,属于完全非插入式(即不使用片上资源)调试;它无须目标存储器,不占用

29、目标系统的任何端口,而这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配以与电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发,是目前采用最多的一种调试方式。4、 在线仿真器。在线仿真器使用仿真头完全取代目标板的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能,但这类仿真器为了能够全速仿真时钟速度高于100MHZ的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。4.2、ARM STDARM STD的英文全称是ARM Software Devel

30、opment Kit,是ARM公司为方便用户在ARM芯片上进行软件开发而推出的一整套集成开发工具。ARM STD 经过ARM公司逐年的维护和更新,目前的最新版本是2.5.2.ARM STD由于价格适中,同时经过长期的推广和普与,目前拥有最广泛的ARM软件开发用户群体,也被相当多的ARM公司的第三方开发工具合作伙伴集成在自己的产品中,比如美国EPI公司的JEENI仿真器。3.2 ARM STD 的安装和应用。一、 安装SDT2.51点击SDT2.51安装程序中的setup.exe,出现如下安装界面:一路点击next继续,一般默认设置就行了,不需作任何修改了,最后完成安装。二、 启动SDT2.51

31、安装完毕,点击程序组中的ARM Project Manager启动主程序:之后出现主程序界面如下:三、 新建工程点击菜单File下的New,选择Project,新建一个工程:出现如下图所示的界面,在Project Name下键入工程的名字,这里采用默认模式 Project1,在Project Directory下键入工程保存的路径:设置好后,点击OK,出现如下图:四、添加自己的源码点击菜单Project下的Add File To Project,在弹出的窗口中,浏览自己的Project文件夹下面的程序代码,将代码添加到创建的项目。这时依次点击ARMExecutale Image、debug、S

32、ources前面的十字架,就会看到自己刚才添加成功的代码,双击任何一个代码文件就可以打开它进行编辑:五、 改SDT2.51设置以生成Flash代码先单击一下主程序窗口ARMExecutale Image下的Debug,然后点击如下菜单中的set:弹出如下窗口:点击Entry And Base,在Readonly下面的框里面输入0X0C000000,确认即可:六、 编译项目生成初始化目标代码(放在Flash中)现在选择菜单build或者点击快捷图标就可以编译代码,点击Force build之后就生成了二进制目标代码(*.bin),这可以在项目文件夹下面找到。在主程序窗口下面的信息框可以看到编译的

33、情况,包括警告和错误信息,最终代码生成的情况等等;七、 开启JTAG.exe后台运行通过并口JTAG进行硬件调试的,但实际上却是通过以太网的。这里面有一个转换软件JTAG.exe,它把发送到以太网的数据拦截下来,遵从JTAG协议,转换到并口上面,然后通过JTAG接口板,控制ARM板上面的CPU,进行硬件Debug。双击JTAG.exe,它就在后台运行了。八、 Debug设置使用这种方式仿真,还要进行一些设置才行。点击Debug菜单或者快捷图标,出现ARM Debugger程序窗口:然后选择菜单Options下面的Config Debugger:弹出如下窗口:在Target Environmen

34、t下面选择Remote_A,然后点击Configure:在Heartbeat前面打勾,在Ethernet后面输入你的计算机IP地址并确认。这里面肯定要你机子上面装有网卡,而且IP地址要指定了,如果是自动分配IP的话,就不太方便了,每次都要查找自己机子的IP。第四章、S3C44B0X部资源编程4.1 LED显示(1)实现功能:在开发板上实现两个LED的轮流点亮。(2)实现原理:S3C44BOX芯片上共有个多功能的输入输出管脚,他们分为组I/O端口。 两个位的输入输出口(端口和端口) 两个位的输入输出口(端口和端口) 一个位的输入输出口(端口) 一个位的输出口(端口) 一个位的输出口(端口)每组端

35、口都可以通过软件配置寄存器来满足不同系统和设计的需要。在运行主程序之前,必须先对每一个用到的管脚的功能进行设置,如果某些管脚的复用功能没有使用,可以先将该管脚设置为I/O口。(3)硬件电路:(4)参考程序:void test_led(U8 dat) /dat=9、10 ,对应开发板上的IO口 while (1) rPDATB=0x1<<dat; /点亮LED SMG_Delay(); SMG_Delay(); rPDATB=0x0<<dat; /关闭LED SMG_Delay(); SMG_Delay(); 4.2键盘控制。(1) 实现功能:使用开发板上的两个键盘来实现

36、对LED的控制显示。(2) 实现原理:由于开发板上的两个键盘连接到S3C44B0X的I/O口上,通过读取/O口的状态来检测键盘有无按下。(3) 硬件电路:(4)参考程序:int ks()int a; a=rPDATG; a=a; return(a&0x0c0); /1_key ;0_nokey /返回键值int key()int a,k=0; a=rPDATG; a=a; if(a&0x80) k=1; if(a&0x40) k=2; return(k);4.3数码管显示。(1) 实现功能:编写程序使开发板上八段数码管循环显示到9,A到F.(2) 实现原理:a.八段数码

37、管。嵌入式系统中经常使用八段数码管来显示数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长、成本低的特点,因此广泛应用于系统设计中。b.类型。八段数码管有两中不同的形式:共阴和共阳。c.工作原理。由于开发板上为共阳的数码管,所以这里以共阳的数码管为例进行说明。当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;d.显示方式有两种显示方式:静态显示和动态显示。静态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管控制信号一直保持有效。动态显示则是轮流点亮数码管的方式,由于点亮每个数码管的时间极短(约为1ms)(3) 硬

38、件电路:硬件中CS2的地址计算:A18 A17 A16CS0000 0+0x06000000=0x06000000CS1001 216+0x06000000=0x06010000CS201 0 217+0x06000000=0x06020000(4) 参考程序:#define rSMG(*(volatile unsigned char *)0x06020000)void SMG_Test(void) unsigned char i; unsigned char st10=0x12,0x9f,0x31,0x15,0x9c, 0x54,0x50,0x1f,0x10,0x14;while(1) fo

39、r(i=0;i<10;i+) rSMG = sti; SMG_Delay(); 4.4中断控制(1) 实现功能:通过按键来产生中断,控制LED的显示。(2) 实现原理:由于开发板上的两个键盘连在S3C44B0X的中断口上, 因此可以通过按键来实现中断。(3) 硬件电路:(4) 参考程序:voidMain(void) /*Vectored interrupt test*/ rINTCON=0x1; / rINTMOD=0x0<<25|0x0<<21;/*Vectored interrupt test*/ pISR_EINT4567=(int)Eint4567Isr;

40、 pISR_EINT2=(int)Eint2Isr; / rINTMSK=(BIT_GLOBAL|BIT_EINT4567); rPCONG=0xffff;/ rPUPG=0x0;/pull up enable rEXTINT=0x22222222; /Falling edge mode rINTMSK=(BIT_GLOBAL|BIT_EINT2|BIT_EINT4567);/Service available /中断服务程序void _irq Eint4567Isr(void) int i,j; count+; if(count=2) count=0; rEXTINTPND=0xf;/cle

41、ar EXTINTPND reg. rI_ISPC=BIT_EINT4567;/clear pending_bit rPDATE=0x001; for(i=0;i<200;i+) /延时 for(j=0;j<10000;j+); rPDATE=0x000; if(count%2) rPDATB=0x01<<9; /打开LED else rPDATB=0x0<<9; /关闭LED 第五章 机器人的设计5.1硬件结构1、 S3C44B0X开发板。运用S3C44B0X开发板自带的LCD控制器来驱动320*240的液晶。运用UART0来和PC机进行通信来控制伺服电机

42、。具体说明如下:S3C44B0X开发板自带的LCD控制器1、 液晶显示屏(LCD:liquid Crystal Display)液晶显示屏主要用于显示文本与图形信息。液晶显示屏(LCD)具有轻薄、体积小、低耗电量、无辐射危险、平面直角显示以与影象不稳定不闪烁等特点,因此应用在很多电子应用系统中。2、 主要类型与性能参数液晶显示屏按显示原理分为STN和TFT两种:STN(Super Twisted Nematic,超扭曲向列)液晶屏TFT(Thin Film Transistor,超薄晶体管)彩色液晶屏开发板上选用的液晶显示屏为(LRH9J515XA STN/BW)3、S3C44B0X 置的LC

43、D 控制器。 S3C44B0X 中具有置的LCD 控制器,它具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD 驱动电路的逻辑功能。S3C44B0X 中置的LCD 控制器可支持灰度LCD和彩色LCD。在灰度LCD 上,使用基于时间的抖动算法(time-based dithering algorithm)和FRC (Frame Rate Control)方法,可以支持单色、4 级灰度和16 级灰度模式的灰度LCD,在彩色LCD 上,可以支持256 级彩色。对于不同尺寸的LCD,其具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间与刷新率,而LCD 控制器可以进行编程控制相

44、应的寄存器值,以适应不同的LCD 显示板。置的LCD 控制器提供了下列外部接口信号:VFRAME: LCD 控制器和LCD 驱动器之间的帧同步信号。它通知LCD 屏新的一帧的显示,LCD 控制器在一个完整帧的显示后发出VFRAME 信号。VLINE: LCD 控制器和LCD 驱动器间的同步脉冲信号,LCD 驱动器通过它来将水平移位寄存器中的容显示到LCD 屏上。LCD 控制器在一整行数据全部传输到LCD 驱动器后发出VLINE 信号。VCLK: 此信号为LCD 控制器和LCD 驱动器之间的象素时钟信号,LCD 控制器在VCLK 的上升沿发送数据,LCD 驱动器在VCLK 的下降沿采样数据。VM

45、: LCD 驱动器所使用的交流信号。LCD 驱动器使用VM 信号改变用于打开或关闭象素的行和列电压的极性。VM 信号在每一帧触发,也在编程决定数量的VLINE 信号触发。VD3:0:LCD 象素数据输出端口。VD7:4:LCD 象素数据输出端口。图5-5 LCD 控制器逻辑框图图5-5 为S3C44B0X 中置的LCD 控制器的逻辑框图,它用于传输显示数据并产生必要的控制信号,如VFRAME,VLINE,VCLK,和VM。除了控制信号,还有显示数据的数据端口VD7:0。LCD 控制器包含REGBANK, LCDCDMA, VIDPRCS, 和TIMEGEN。REGBANK 具有18 个可编程寄

46、存器,用于配置LCD 控制器。LCDCDMA 为专用DMA,它可以自动地将显示数据从帧存中传送到LCD 驱动器中。通过专用DMA,可以实验在不需要CPU 介入的情况下显示数据。VIDPRCS 从LCDCDMA 接收数据,将相应格式(比如48 位单一扫描和4 位双扫描显示模式)的数据通TIMEGEN 包含可编程的逻辑,以支持常见的LCD 驱动器所需要的不同接口时间和速率的要求。TIMEGEN 部分产生VFRAME,VLINE, VCLK, VM 等信号。4、硬件电路:UART通信1、UARTS3C44B0X UART单元提供两个独立的异步串行通信口,皆可工作于中断和DMA模式。最高波特率达115

47、.2kbps.每个UART 单元包含一个16字节的FIFO,用于数据的接收和发送。S3C44B0X UART包含可编程波特率。红外发送/接受,一个或两个停止位,5bit/6bit/7/bit/8bit/或8bit数据宽度,和奇偶校验。波特率的设置:波特率由一个专用的UART波特率分频寄存器(UBRDIVn)控制,如下计算:UBRDIVn=(round _off)(MCLK/(bps*16)-1其中:MCLK是系统时钟,bps为波特率,round _off为数据类型。2、硬件电路纳英特机器人框架。伺服电机控制电路由两部分构成:关耦部分和驱动部分光耦电路: 运用光耦可以将主板和伺服电机驱动电路隔离

48、起来,起到保护主板的作用,当驱动电路出现问题时,不会影响到主板,具体电路如下:驱动电路:5.2软件设计液晶部分:取模方式:取模采用Delphi7 进行编程实现,由于采用了16级灰度进行显示,故先要将一幅256色的彩色图片进行转换,这里采用YGB模式进行变换Y0.299R+0587G+0.114B,然后将所得值重新赋给R 、G、 B。由于为16级灰度,因此它的值应为0-15,为此要进行变换,将其转换为0-15的数,又因采用32位编程,因此采用两个CASE嵌套,最后运用“或”操作来完成。具体如下:-320*240- Frame00 Frame01 .Frame040 Frame00 * /40*8=320 一个32位对应LCD的8个点,每个点用4位表示。*表示0或1.Frame10 Frame140Frame20Frame30 : : : : : : : : : : : :Frame2390 Frame23940-Frame00-32位 x=0 x=1 2 3 4 5 6 7 -4*8=32*c=*c=0 0000 c!=0 * | 1111 | 1111 - - 0000 *Delphi部分程序:begin /即 Y0.299R+0587G+0.114B Gray :=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论