基于ARM9处理器的智能导游仪设计

[复制链接]
2573|1
 楼主| man16181 发表于 2008-8-27 14:13 | 显示全部楼层 |阅读模式
<br /> 0&nbsp;引言<br /><br />  随着微电子技术和超大规模集成电路的发展,嵌入式微处理器技术已日趋成熟。嵌入式技术不但在<br /><br />工控系统、智能仪表、检测系统、测控单元等工业应用中有杰出表现,而且越来越深入地应用于各种消<br /><br />费类电子产品中。<br /><br />  智能导游讲解系统主要分为两个模块:第一个模块是定位端,第二个模块是手持导游仪。定位端安<br /><br />装在各景区和各景点,可以发射所处景点的代码。手持导游仪则可接收定位端发射的代码,然后通过解<br /><br />码获得景点的位置信息。以便根据景点位置信息为游客显示、播放该景点位置的导游影音文件。<br /><br />  本文主要介绍一种基于ARM9处理器的新型智能导游仪的设计方案。这种导游仪是基于ARM处理器强大<br /><br />的处理能力和丰富的外设设计来实现的。游客可以通过触摸屏操作来获得自己所需的信息,而且也可利<br /><br />用设备端与PC机的USB接口来完成导游影音文件的随时更新,其附加的多媒体播放功能还可以开拓ARM处<br /><br />理器在多媒体数码系统中的应用功能。<br /><br />  1&nbsp;系统整体硬件设计<br /><br />  该导游仪主要由ARM处理器、音频处理模块、触摸显示模块、FLASH存储模块等组成。<br /><br />  本设计中的核心处理器和操作系统分别选定三星公司基于ARM9内核的S3C2410X01处理器和目前比较<br /><br />流行的嵌入式操作系统Linux操作系统。S3C2410X01处理器是一种基于ARM920T内核的16/32-bit&nbsp;RISC&nbsp;<br /><br />CPU,拥有独立的16KB指令和16KB数据CACHE、MMU虚拟内存管理单元、NAND&nbsp;Flash&nbsp;boot&nbsp;loader、系统管<br /><br />理单元(SDRAM处理器等)、3通道UART、4通道DMA、4通道具备PWM功能的定时器、IO口、RTC(实时时钟)、<br /><br />8通道10&nbsp;bit精度ADC和触摸屏处理器、IIC总线接口、IIS数字音频总线接口、USB&nbsp;HOST、USBDEVICE、SD<br /><br />/MMC卡处理器、集成LCD处理器(支持STN和TFT)、2通道SPI和PLL数字锁相环等。该处理器集成度高、功<br /><br />能强大,适用于便携设备和其它工控设备,如指纹识别器、车载系统等。<br /><br />  本导游仪中的接收模块主要用于接收IDCode。出于小体积、低功耗、有效范围可控、便于跳频的角<br /><br />度考虑,本设计选用Nordic公司的nRF401单片UHF无线收发芯片,并让其工作在433&nbsp;MHz&nbsp;ISM&nbsp;<br /><br />(Industrial,Scientific&nbsp;and&nbsp;Medical)频段。由于采用了FSK调制解调技术,因而其抗干扰能力很强。<br /><br />而采用PLL频率合成技术,可使其频率稳定性更好,该系统的发射功率最大可达10dBm,接收灵敏度最大<br /><br />为-105&nbsp;dBm,数据传输速率可达20&nbsp;kbps,工作电压在+3~5&nbsp;V之间,同时nRF401无线收发芯片所需的外<br /><br />围元件也较少。nRF401芯片内包含有发射功率放大器(PA)、低噪声接收放大器(LNA)、晶体振荡器(OSC)<br /><br />、锁相环(PLL)、压控振荡器(VCO)、混频器(MIXFR)、解调器(DEM)等电路。在接收模式中,nRF401被配<br /><br />置成传统的外差式接收机,所接收的射频调制数字信号被低噪声放大器放大后,再经混频器变换成中频<br /><br />,放大、滤波后进入解调器,解调后将其变换成数字信号输出(DOUT端)。而在发射模式中,数字信号则<br /><br />经DIN端输入,然后经锁相环和压控振荡器处理后进入发射功率放大器的射频输出。由于采用了晶体振荡<br /><br />和PLL合成技术,故其频率稳定性极好;而采用FSK调制和解调技术则可使抗干扰能力更强。<br /><br />  本系统中的USB通信子系统的设计目标是通过USB接口。并利用USB协议来实现与PC机及USB设备的数<br /><br />据交换和数据传输。即设备端通过USB接口载入导游影音文件并将其保存在Flash存储单元中,再由ARM处<br /><br />理器完成影音数据向音频处理模块和LCD显示模块的传送。音频处理模块和LCD显示模块可以实时处理并<br /><br />播放影音数据,从而完成对各旅游景点的综合描述。<br /><br />  2&nbsp;系统软件设计<br /><br />  导游仪的软件要负责处理nRF401的接收数据,同时要调用和处理相应的导游文字、图片、语音信息<br /><br />,还要及时响应用户的触摸操作,并管理图形用户界面(GUI)、用户时钟和存储景点信息,此外,还要与<br /><br />各外围器件进行通信和接口。若采用传统MCU的前后台系统编写程序,其复杂性可想而知。因此,采用体<br /><br />积小、速度快、具有较好裁减性、扩展性和可移植性的实时嵌入式操作系统(RTOS)则成为必然选择。考<br /><br />虑到Linux操作系统可以完全开放源代码。且硬件兼容性较好,可以移植到不同处理器上,本系统选用<br /><br />Linux操作系统并通过ARM处理器来完成设计。<br /><br />  嵌入式系统软件设计主要包括操作系统、驱动程序和应用程序。本系统对基于2.6.9版本的Linux内<br /><br />核进行了定制裁减,其驱动程序主要是触摸屏的驱动,应用程序则用于多媒体播放。这些软件应根据嵌<br /><br />入式开发流程来建立开发环境。<br /><br />  2.1&nbsp;系统工作流程<br /><br />  系统开始工作时,其程序流程如图2所示。系统首先通过供电单元提供的电源给系统上电,并启动加<br /><br />载Boot&nbsp;loader,然后开始加载Linux的系统内核,接下来进行外设模块的初始化。当存储单元准备就绪<br /><br />后,系统将先后初始化显示单元(触摸屏/TFT/LCD)和GPIO(通用输入输出口)。如果外设未初始化成功<br /><br />,则将重新进行初始化,成功后再运行应用程序。运行结束后再关闭主程序,系统程序执行结束。<br /><br /><br /><br />  2.2&nbsp;触摸屏驱动程序<br /><br />  触摸屏是用于嵌入式系统中最基本的用户交互设备之一。触摸屏的主要功能是随时报告用户的触摸<br /><br />操作并标识触摸位置的坐标。这通常在每次发生触摸操作时可通过生成一个中断来实现。然后,该触摸<br /><br />屏的设备驱动程序开始查询触摸屏处理器,并请求处理器发送触摸坐标。一旦驱动程序接收到坐标,它<br /><br />就将有关触摸和所有可用数据信号发送给用户应用程序,同时将数据也发送给应用程序,然后由用户应<br /><br />用程序根据它的需要处理数据。<br /><br />  ADS7846电阻触摸屏数字转换器可以专门用于对电池供电的设备进行优化,非常适用于触摸屏设备(<br /><br />如PDA、手持设备、监视器、POS终端和传呼机等)。此触摸屏驱动芯片是一款12位A/D转换芯片,适合于<br /><br />4线制触摸屏中使用,可通过标准的SPI协议和CPU进行通信,而且操作简单、可靠性高。由于S3C2410X01<br /><br />芯片集成有同步串行外部SPI接口.故可将ADS7846与ARM芯片S3C2410X01相连。<br /><br />  此触摸屏驱动程序的设计主要是进行初始化、数据采集与处理及中断处理函数的编写。而触摸屏驱<br /><br />动程序的核心是中断处理程序,因为在中断服务程序结束之前,来自同一个设备的后续中断都将丢失,<br /><br />所以,中断服务程序应该尽快执行完,否则就有可能丢失来自设备的另一个中断。由于整个触摸屏的驱<br /><br />动程序处理比较复杂,而且耗时较长(大约几十毫秒),因此,触摸屏驱动程序不可能在中断服务程序中<br /><br />完成。在Linux操作系统中,中断处理程序可以分为上半部(tophalf)和下半部(bottom&nbsp;half)。上半部是<br /><br />一般的中断服务程序,它由硬件中断触发,应当尽可能短小,处理应尽可能地快;而下半部是单独的一<br /><br />段处理程序,一般将其放人立即队列中快速执行。但是在此系统中,按触摸屏时,从ADS7846输出的数值<br /><br />有一个抖动的过程,即从ADS7846输出的A/D转换值有一个不稳定时期,这个过程大约会持续10&nbsp;ms。所<br /><br />以,中断处理程序的下半部处理没有采用立即队列,而是采用定时器,来使下半部在中断发生10&nbsp;ms后再<br /><br />作处理,这样就可有效地避开ADS7846输出值的不稳定时期。事实上,使中断服务程序和中断处理任务串<br /><br />行化,可以很好的完成那些需要长时间处理的触摸操作。<br /><br />  2.3&nbsp;应用程序<br /><br />  应用程序的开发主要是多媒体功能的实现。这实际是基于音频处理子系统、触摸显示子系统、RAM单<br /><br />元、Flash单元等硬件资源的特点编写的应用函数模块的集合。此集合的编写源于对各个硬件模块的深入<br /><br />了解,以及对硬件资源的充分利用和挖掘、对时序的严格控制,同时包括精确的软件流程,合理分配存<br /><br />储资源,协调ARM处理能力等,从而完成音频播放、静态图片显示、影像播放、音频录制等多媒体所对应<br /><br />的函数集合。各函数集合包括方便的应用程序接口。通过这些接口可为调用这些函数的主函数提供便利<br /><br />。<br />  3&nbsp;结束语<br /><br />  本文介绍的基于ARM9处理器的智能导游仪由于采用性能完善、价位合理的硬件模块,因而具有人机<br /><br />界面良好,操作方便、功能强大等优点。作为一种新型消费类电子解决方案,这种智能化导游仪十分适<br /><br />用于各种展览会场和旅游场所,而且应用前景十分看好。<br />本**来自中国IT实验室<a href="http://embed.chinaitlab.com/" target=_blank>http://embed.chinaitlab.com/</a>
神鹰侍者 发表于 2008-8-28 14:39 | 显示全部楼层

基于ARM9处理器的智能导游仪设计

我是搞软件测试的,这篇**真的很好,我在中国IT实验室有很多朋友,他们都是这方面的高手,有空我们可以切磋切磋~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

20

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部