<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9處理器的智能導(dǎo)游儀設(shè)計(jì)

          基于ARM9處理器的智能導(dǎo)游儀設(shè)計(jì)

          作者:張倫,蔡立娜 時(shí)間:2008-07-15 來源: 收藏

          0 引言

          本文引用地址:http://www.ex-cimer.com/article/85728.htm

            隨著技術(shù)和超大規(guī)模的發(fā)展,嵌入式微技術(shù)已日趨成熟。嵌入式技術(shù)不但在工控系統(tǒng)、智能儀表、檢測系統(tǒng)、測控單元等工業(yè)應(yīng)用中有杰出表現(xiàn),而且越來越深入地應(yīng)用于各種消費(fèi)類電子產(chǎn)品中。

            智能導(dǎo)游講解系統(tǒng)主要分為兩個(gè)模塊:第一個(gè)模塊是定位端,第二個(gè)模塊是手持導(dǎo)游儀。定位端安裝在各景區(qū)和各景點(diǎn),可以發(fā)射所處景點(diǎn)的代碼。手持導(dǎo)游儀則可接收定位端發(fā)射的代碼,然后通過解碼獲得景點(diǎn)的位置信息。以便根據(jù)景點(diǎn)位置信息為游客顯示、播放該景點(diǎn)位置的導(dǎo)游影音文件。

            本文主要介紹一種基于的新型的設(shè)計(jì)方案。這種導(dǎo)游儀是基于ARM強(qiáng)大的處理能力和豐富的外設(shè)設(shè)計(jì)來實(shí)現(xiàn)的。游客可以通過觸摸屏操作來獲得自己所需的信息,而且也可利用設(shè)備端與PC機(jī)的USB接口來完成導(dǎo)游影音文件的隨時(shí)更新,其附加的多媒體播放功能還可以開拓ARM處理器在多媒體數(shù)碼系統(tǒng)中的應(yīng)用功能。

          1 系統(tǒng)整體硬件設(shè)計(jì)

            該導(dǎo)游儀主要由ARM處理器、音頻處理模塊、觸摸顯示模塊、FLASH存儲(chǔ)模塊等組成。其硬件結(jié)構(gòu)如圖1所示。

            本設(shè)計(jì)中的核心處理器和操作系統(tǒng)分別選定三星公司基于內(nèi)核的S3C2410X01處理器和目前比較流行的嵌入式操作系統(tǒng)Linux操作系統(tǒng)。S3C2410X01處理器是一種基于20T內(nèi)核的16/32-bit RISC CPU,擁有獨(dú)立的16KB指令和16KB數(shù)據(jù)CACHE、MMU虛擬內(nèi)存管理單元、NAND Flash boot loader、系統(tǒng)管理單元(SDRAM處理器等)、3通道UART、4通道DMA、4通道具備PWM功能的定時(shí)器、IO口、RTC(實(shí)時(shí)時(shí)鐘)、8通道10 bit精度ADC和觸摸屏處理器、IIC總線接口、IIS數(shù)字音頻總線接口、USB HOST、USBDEVICE、SD/MMC卡處理器、集成LCD處理器(支持STN和TFT)、2通道SPI和PLL數(shù)字鎖相環(huán)等。該處理器集成度高、功能強(qiáng)大,適用于便攜設(shè)備和其它工控設(shè)備,如指紋識(shí)別器、車載系統(tǒng)等。

            本導(dǎo)游儀中的接收模塊主要用于接收IDCode。出于小體積、低功耗、有效范圍可控、便于跳頻的角度考慮,本設(shè)計(jì)選用Nordic公司的nRF401單片UHF無線收發(fā)芯片,并讓其工作在433 MHz ISM (Industrial,Scientific and Medical)頻段。由于采用了FSK調(diào)制解調(diào)技術(shù),因而其抗干擾能力很強(qiáng)。而采用PLL頻率合成技術(shù),可使其頻率穩(wěn)定性更好,該系統(tǒng)的發(fā)射功率最大可達(dá)10dBm,接收靈敏度最大為-105 dBm,數(shù)據(jù)傳輸速率可達(dá)20 kbps,工作電壓在+3~5 V之間,同時(shí)nRF401無線收發(fā)芯片所需的外圍元件也較少。nRF401芯片內(nèi)包含有發(fā)射功率放大器(PA)、低噪聲接收放大器(LNA)、晶體振蕩器(OSC)、鎖相環(huán)(PLL)、壓控振蕩器(VCO)、混頻器(MIXFR)、解調(diào)器(DEM)等電路。在接收模式中,nRF401被配置成傳統(tǒng)的外差式接收機(jī),所接收的射頻調(diào)制數(shù)字信號(hào)被低噪聲放大器放大后,再經(jīng)混頻器變換成中頻,放大、濾波后進(jìn)入解調(diào)器,解調(diào)后將其變換成數(shù)字信號(hào)輸出(DOUT端)。而在發(fā)射模式中,數(shù)字信號(hào)則經(jīng)DIN端輸入,然后經(jīng)鎖相環(huán)和壓控振蕩器處理后進(jìn)入發(fā)射功率放大器的射頻輸出。由于采用了晶體振蕩和PLL合成技術(shù),故其頻率穩(wěn)定性極好;而采用FSK調(diào)制和解調(diào)技術(shù)則可使抗干擾能力更強(qiáng)。

            本系統(tǒng)中的USB通信子系統(tǒng)的設(shè)計(jì)目標(biāo)是通過USB接口。并利用USB協(xié)議來實(shí)現(xiàn)與PC機(jī)及USB設(shè)備的數(shù)據(jù)交換和數(shù)據(jù)傳輸。即設(shè)備端通過USB接口載入導(dǎo)游影音文件并將其保存在Flash存儲(chǔ)單元中,再由ARM處理器完成影音數(shù)據(jù)向音頻處理模塊和LCD顯示模塊的傳送。音頻處理模塊和LCD顯示模塊可以實(shí)時(shí)處理并播放影音數(shù)據(jù),從而完成對各旅游景點(diǎn)的綜合描述。

          2 系統(tǒng)軟件設(shè)計(jì)

            導(dǎo)游儀的軟件要負(fù)責(zé)處理nRF401的接收數(shù)據(jù),同時(shí)要調(diào)用和處理相應(yīng)的導(dǎo)游文字、圖片、語音信息,還要及時(shí)響應(yīng)用戶的觸摸操作,并管理圖形用戶界面(GUI)、用戶時(shí)鐘和存儲(chǔ)景點(diǎn)信息,此外,還要與各外圍器件進(jìn)行通信和接口。若采用傳統(tǒng)MCU的前后臺(tái)系統(tǒng)編寫程序,其復(fù)雜性可想而知。因此,采用體積小、速度快、具有較好裁減性、擴(kuò)展性和可移植性的實(shí)時(shí)嵌入式操作系統(tǒng)(RTOS)則成為必然選擇。考慮到Linux操作系統(tǒng)可以完全開放源代碼。且硬件兼容性較好,可以移植到不同處理器上,本系統(tǒng)選用Linux操作系統(tǒng)并通過ARM處理器來完成設(shè)計(jì)。

            嵌入式系統(tǒng)軟件設(shè)計(jì)主要包括操作系統(tǒng)、驅(qū)動(dòng)程序和應(yīng)用程序。本系統(tǒng)對基于2.6.9版本的Linux內(nèi)核進(jìn)行了定制裁減,其驅(qū)動(dòng)程序主要是觸摸屏的驅(qū)動(dòng),應(yīng)用程序則用于多媒體播放。這些軟件應(yīng)根據(jù)嵌入式開發(fā)流程來建立開發(fā)環(huán)境。

          2.1 系統(tǒng)工作流程

            系統(tǒng)開始工作時(shí),其程序流程如圖2所示。系統(tǒng)首先通過供電單元提供的電源給系統(tǒng)上電,并啟動(dòng)加載Boot loader,然后開始加載Linux的系統(tǒng)內(nèi)核,接下來進(jìn)行外設(shè)模塊的初始化。當(dāng)存儲(chǔ)單元準(zhǔn)備就緒后,系統(tǒng)將先后初始化顯示單元(觸摸屏/TFT/LCD)和GPIO(通用輸入輸出口)。如果外設(shè)未初始化成功,則將重新進(jìn)行初始化,成功后再運(yùn)行應(yīng)用程序。運(yùn)行結(jié)束后再關(guān)閉主程序,系統(tǒng)程序執(zhí)行結(jié)束。

          2.2 觸摸屏驅(qū)動(dòng)程序

            觸摸屏是用于嵌入式系統(tǒng)中最基本的用戶交互設(shè)備之一。觸摸屏的主要功能是隨時(shí)報(bào)告用戶的觸摸操作并標(biāo)識(shí)觸摸位置的坐標(biāo)。這通常在每次發(fā)生觸摸操作時(shí)可通過生成一個(gè)中斷來實(shí)現(xiàn)。然后,該觸摸屏的設(shè)備驅(qū)動(dòng)程序開始查詢觸摸屏處理器,并請求處理器發(fā)送觸摸坐標(biāo)。一旦驅(qū)動(dòng)程序接收到坐標(biāo),它就將有關(guān)觸摸和所有可用數(shù)據(jù)信號(hào)發(fā)送給用戶應(yīng)用程序,同時(shí)將數(shù)據(jù)也發(fā)送給應(yīng)用程序,然后由用戶應(yīng)用程序根據(jù)它的需要處理數(shù)據(jù)。

            ADS7846電阻觸摸屏數(shù)字轉(zhuǎn)換器可以專門用于對電池供電的設(shè)備進(jìn)行優(yōu)化,非常適用于觸摸屏設(shè)備(如PDA、手持設(shè)備、監(jiān)視器、POS終端和傳呼機(jī)等)。此觸摸屏驅(qū)動(dòng)芯片是一款12位A/D轉(zhuǎn)換芯片,適合于4線制觸摸屏中使用,可通過標(biāo)準(zhǔn)的SPI協(xié)議和CPU進(jìn)行通信,而且操作簡單、可靠性高。由于S3C2410X01芯片集成有同步串行外部SPI接口.故可將ADS7846與ARM芯片S3C2410X01相連。

            此觸摸屏驅(qū)動(dòng)程序的設(shè)計(jì)主要是進(jìn)行初始化、數(shù)據(jù)采集與處理及中斷處理函數(shù)的編寫。而觸摸屏驅(qū)動(dòng)程序的核心是中斷處理程序,因?yàn)樵谥袛喾?wù)程序結(jié)束之前,來自同一個(gè)設(shè)備的后續(xù)中斷都將丟失,所以,中斷服務(wù)程序應(yīng)該盡快執(zhí)行完,否則就有可能丟失來自設(shè)備的另一個(gè)中斷。由于整個(gè)觸摸屏的驅(qū)動(dòng)程序處理比較復(fù)雜,而且耗時(shí)較長(大約幾十毫秒),因此,觸摸屏驅(qū)動(dòng)程序不可能在中斷服務(wù)程序中完成。在Linux操作系統(tǒng)中,中斷處理程序可以分為上半部(tophalf)和下半部(bottom half)。上半部是一般的中斷服務(wù)程序,它由硬件中斷觸發(fā),應(yīng)當(dāng)盡可能短小,處理應(yīng)盡可能地快;而下半部是單獨(dú)的一段處理程序,一般將其放人立即隊(duì)列中快速執(zhí)行。但是在此系統(tǒng)中,按觸摸屏?xí)r,從ADS7846輸出的數(shù)值有一個(gè)抖動(dòng)的過程,即從ADS7846輸出的A/D轉(zhuǎn)換值有一個(gè)不穩(wěn)定時(shí)期,這個(gè)過程大約會(huì)持續(xù)10 ms。所以,中斷處理程序的下半部處理沒有采用立即隊(duì)列,而是采用定時(shí)器,來使下半部在中斷發(fā)生10 ms后再作處理,這樣就可有效地避開ADS7846輸出值的不穩(wěn)定時(shí)期。事實(shí)上,使中斷服務(wù)程序和中斷處理任務(wù)串行化,可以很好的完成那些需要長時(shí)間處理的觸摸操作。

          2.3 應(yīng)用程序

            應(yīng)用程序的開發(fā)主要是多媒體功能的實(shí)現(xiàn)。這實(shí)際是基于音頻處理子系統(tǒng)、觸摸顯示子系統(tǒng)、RAM單元、Flash單元等硬件資源的特點(diǎn)編寫的應(yīng)用函數(shù)模塊的集合。此集合的編寫源于對各個(gè)硬件模塊的深入了解,以及對硬件資源的充分利用和挖掘、對時(shí)序的嚴(yán)格控制,同時(shí)包括精確的軟件流程,合理分配存儲(chǔ)資源,協(xié)調(diào)ARM處理能力等,從而完成音頻播放、靜態(tài)圖片顯示、影像播放、音頻錄制等多媒體所對應(yīng)的函數(shù)集合。各函數(shù)集合包括方便的應(yīng)用程序接口。通過這些接口可為調(diào)用這些函數(shù)的主函數(shù)提供便利。

           3 結(jié)束語

            本文介紹的基于ARM9處理器的由于采用性能完善、價(jià)位合理的硬件模塊,因而具有人機(jī)界面良好,操作方便、功能強(qiáng)大等優(yōu)點(diǎn)。作為一種新型消費(fèi)類電子解決方案,這種智能化導(dǎo)游儀十分適用于各種展覽會(huì)場和旅游場所,而且應(yīng)用前景十分看好。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();