<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM9處理器的智能導游儀設計

基于A(yíng)RM9處理器的智能導游儀設計

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

0 引言

本文引用地址:http://dyxdggzs.com/article/85728.htm

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

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

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

1 系統整體硬件設計

  該導游儀主要由ARM處理器、音頻處理模塊、觸摸顯示模塊、FLASH存儲模塊等組成。其硬件結構如圖1所示。

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

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

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

2 系統軟件設計

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

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

2.1 系統工作流程

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

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

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

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

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

2.3 應用程序

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

 3 結束語(yǔ)

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>