基于ARMCortexM處理器圖像無線傳輸?shù)膽卯厴I(yè)論文_第1頁
基于ARMCortexM處理器圖像無線傳輸?shù)膽卯厴I(yè)論文_第2頁
基于ARMCortexM處理器圖像無線傳輸?shù)膽卯厴I(yè)論文_第3頁
基于ARMCortexM處理器圖像無線傳輸?shù)膽卯厴I(yè)論文_第4頁
基于ARMCortexM處理器圖像無線傳輸?shù)膽卯厴I(yè)論文_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于ARM_Cortex-M處理器圖像無線傳輸?shù)膽谜?要本論文主要闡述設計一款以ARM Cortex-M系列微處理器為核心的圖像無線傳輸系統(tǒng)的設計方法和實現(xiàn)細節(jié)。論文主要針對未來對于智能家居以與安防設備的日益需求,采用迄今最為流行性能卓越的ARM Cortex-M系列嵌入式微處理器作為嵌入式智能設備的處理核心,并搭載使用Micrium公司的嵌入式實時操作系統(tǒng)uC/OSII。本論文開篇通過對智能家居和安防設備的需求分析與圖像無線傳輸?shù)陌l(fā)展現(xiàn)狀,說明了現(xiàn)今以與未來人們希望圖像監(jiān)控能夠無線獲取,靈活操作和存取。接下來系統(tǒng)硬件設計,將介紹了圖像無線傳輸系統(tǒng)的硬件組成與基本理論。然后進行系統(tǒng)軟件設計,

2、講介紹了圖像無線傳輸系統(tǒng)各硬件的驅動程序設計。最后實現(xiàn)實時操作系統(tǒng)應用,介紹了uC/OSII在圖像無線傳輸系統(tǒng)的使用。展示了系統(tǒng)完成后運行效果,并指出該系統(tǒng)的不足與以后改進的方向。該智能設備實現(xiàn)了圖形界面觸摸操控、驅動攝像頭圖像的采集、對圖像的無線傳輸、接收和存儲等功能,并測試表明該設備達到了預期的穩(wěn)定要求。關鍵字 ARM Cortex-M uC/OSII 無線圖像傳輸AbstractThis thesisdescribesthe design of acoreARM Cortex-Mseriesmicroprocessorsmart homesystem design methodsand

3、implementation details. Focused onthefutureistheincreasing demandforsmart homeandsecurity equipment, by far the mostpopularhigh performanceARM Cortex-Mfamily of embeddedmicroprocessorasaprocessing coreforembeddedintelligent devices, and equipped with Micrium's embedded real-timeoperating systemu

4、C/OS-II. The first part of the system analysis, the demand for smart home and security equipment and the development status of the wireless transmission of the image, indicating the present and future image monitoring to wireless access, flexible operation and access.The second part of the system ha

5、rdware design, wireless image transmission system hardware components.The third part of the system software design, wireless image transmission system hardware driver design.The fourth part of the real-time operating system design of real-time operating system uC/OS-II transplantation in the ARM cor

6、tex-M series processors.The smart devicesto achievethegraphical interfacetouch control, drivercameraimage acquisition, wirelessimagetransmission, receiving and storage, andtests show thattheequipmentto achieve the desiredstability requirements.AlphaKeywordsARMCortex-M uC/OSII wireless image transmis

7、sion37 / 42目 錄第1章緒論11.1 課題背景11.2 圖像無線傳輸發(fā)展現(xiàn)狀2第2章系統(tǒng)硬件設計32.1 系統(tǒng)框圖32.2 系統(tǒng)硬件實現(xiàn)3第3章系統(tǒng)軟件設計143.1 無線模塊驅動程序設計143.2 攝像頭驅動程序設計173.3 LCD顯示驅動程序設計193.4 文件系統(tǒng)21第4章實時操作系統(tǒng)應用234.1 uC/OSII實時操作系統(tǒng)介紹234.2 在uC/OSII運行程序24第5章系統(tǒng)實現(xiàn)315.1 圖像無線傳輸系統(tǒng)最終運行結果315.2 圖像無線傳輸系統(tǒng)不足以與改進33結束語34參考文獻35附錄1 各模塊驅動程序一覽36附錄2 電路原理圖39第1章 緒 論本章通過對智能家居和安防

8、設備的需求分析與圖像無線傳輸?shù)陌l(fā)展現(xiàn)狀,說明了現(xiàn)今以與未來人們希望圖像監(jiān)控能夠無線獲取,靈活操作和存取。1.1 課題背景如今攝像頭監(jiān)控、圖像顯示、無線數(shù)據(jù)傳送和無線控制已經(jīng)廣泛地應用在人類生活與生產(chǎn)各個領域當中。如家電、汽車、交通安全、工業(yè)生產(chǎn)、電子電力等。在半導體集成電路芯片和數(shù)字技術沒有廣泛運用的過去,人類只能依賴超聲波、紅外傳感、電磁等手段進行監(jiān)控。對距離稍微遠的場景使用來說,開發(fā)起來很麻煩,費工費,使用起來也不是很方便。目前,國際先進的實時監(jiān)控系統(tǒng)都實現(xiàn)了圖像采集,并且有部分設備實現(xiàn)無線收發(fā)并顯示的功能。以前在安防監(jiān)控系統(tǒng)當中需要密密麻麻的裝上一大堆傳感器,如今已被一個拇指般大小的、毫

9、不起眼的數(shù)字攝像頭所替代了。OV系列的數(shù)字攝像頭已經(jīng)根據(jù)不同應用領域的不同需求推出了多款產(chǎn)品,性能良好、價格低廉。使得我們對圖像傳感器有了足夠的選擇。本課題研究的是圖像采集系統(tǒng)中的無線傳輸和顯示。在翻閱了大量資料后,決定以CMOS攝像頭應用技術和嵌入式應用技術為核心進行開發(fā)。其中,涉與到了一些嵌入式實時操作系統(tǒng)應用開發(fā)、ARM技術開發(fā)應用、圖像采集、TFT顯示、2.4G無線傳送模塊的應用等。在對上述技術問題進行充分深入地分析之后,制定了簡便可行的技術方案。并且以理論分析和該技術方案為基礎,在不斷地實驗和方案調整代碼調試中,終于完成了一個可以應用在一般智能家居的圖像無線傳輸系統(tǒng)的設計。完成系統(tǒng)設

10、計之后,還通過一系列測試,測試結果證明,設計的圖像無線傳輸系統(tǒng),完全達到了課題預期制定的各項指標,成功地完成了課題的最終目標實現(xiàn)基于ARM cortex-M系列處理器的圖像無線傳輸系統(tǒng)。1.2 圖像無線傳輸發(fā)展現(xiàn)狀圖像無線傳輸具有十分廣闊的應用前景,在軍事、國防、工農(nóng)業(yè)、城市管理、生物醫(yī)療、環(huán)境監(jiān)測、危險區(qū)域等許多領域都有重要的科研價值和潛在的實用價值, 已經(jīng)引起了人們廣泛的關注。美國技術評論雜志把圖像無線傳感器視為未來新興十大技術的首位。美國早在上個世紀90年代就著手對無線傳感器網(wǎng)絡展開了先期研究,并在軍方應用與推廣。美國軍方的遠景研究計劃局(DARPA)陸續(xù)支持了Wins、SmartDus

11、t等一系列重要的圖像無線傳感器項目。進入21世紀,隨著傳感器網(wǎng)絡研究的深入發(fā)展,美國一些大型的IT企業(yè)(如Microsoft,Intel等)也通過與高校合作的方式加入到圖像無線傳感器的研究隊列中來。當前美國許多著名的大學在進行無線傳感器方面的研究工作,如哈佛大學專注于無線傳感器通信理論的研究;加州大學伯克利分校致力于傳感器節(jié)點的研究與開發(fā),目前市面上比較流行的mica系列節(jié)點平臺就是該分校的研究成果。在歐洲的一些國家,如英國、意大利也在開展該領域的研究工作。相對而言,國對無線傳感器的研究起步較晚,但是我國對無線傳感器的發(fā)展也非常重視。從2002年開始,國家自然科學基金委員會已經(jīng)批準了和無線傳感

12、器相關的多個課題,在國家發(fā)展改革委員會的下一代互聯(lián)網(wǎng)示工程中,也部署了和無線傳感器相關的課題。除此以外,中科院、清華大學、郵電大學、大學和中國科技大學等眾多高等院校也積極開展對無線傳感器網(wǎng)絡的研究。由于在很多領域有廣闊的應用前景,無線傳感器的研究開發(fā)工作眾多。當前,對WSN的研究主要集中在通信協(xié)議、能耗管理、定位算法等方面。通信協(xié)議的研究約占研究點的35;其次是能耗管理,約占16;再次是定位算法、體系結構設計和可靠性研究,三者共占研究點的24,然而在無線傳感器的操作系統(tǒng)方面的研究相對較少。其實,WSN操作系統(tǒng)實現(xiàn)對硬件資源的抽象,并負責管理處理器、有限的存等資源,它直接影響到系統(tǒng)的性能,因此研

13、究WSN上的操作系統(tǒng)是很有必要的。此外,無線圖像傳輸?shù)难芯窟€處于起步階段,屬于無線傳感器領域的一個新興的研究課題,目前國航天航空大學開始了這方面的研究。第2章 系統(tǒng)硬件設計本章介紹了圖像無線傳輸系統(tǒng)的硬件組成與基本理論。2.1 系統(tǒng)框圖攝像頭模塊發(fā)送端處理器ILI9325顯示屏SD卡存儲單元2.4G無線模塊接受端處理器ILI9325顯示屏SD卡存儲單元2.4G無線模塊能源供應部分能源供應部分圖2-1 圖像無線傳輸工作原理框圖處理器模塊是整個傳感器節(jié)點的核心部分,包括處理單元和存儲單元,它負責控制整個節(jié)點的操作,處理所有相關數(shù)據(jù);傳感器模塊是外圍的設備的真正接口,負責監(jiān)測區(qū)域數(shù)據(jù)的采集和轉換;無

14、線通信模塊負責與其他傳感器節(jié)點進行無線通信,并傳遞數(shù)據(jù);能量供應模塊也就是傳感器節(jié)點運行所需的電源,一般直接供電不太實際,通常采用微型電池。此外,還提供與用戶的通信接口,方便與用戶進行交互。圖像無線傳輸工作原理框圖見圖2-1.2.2 系統(tǒng)硬件實現(xiàn)2.2.1 ARM處理器系統(tǒng)核心部分采用ARM處理器。ARM公司在經(jīng)典處理器ARM11以后的產(chǎn)品改用Cortex命名,并分成A、R和M三類,旨在為各種不同的市場提供服務。Cortex系列屬于ARMv7架構,這是ARM公司最新的指令集架構。ARMv7架構定義了三大分工明確的系列:“A”(Application)系列面向尖端的基于虛擬存的操作系統(tǒng)和用戶應用

15、,處理性能越來越接近于電腦,典型的產(chǎn)品有平板電腦、iphone、安卓手機和windows phone8;“R”(Realtime)系列針面向實時系統(tǒng);“M”(Microcontroller)系列面向微控制器。由于應用領域不同,基于v7架構的Cortex處理器系列所采用的技術也不一樣,基于v7A的稱為Cortex-A系列,基于v7R的稱為Cortex-R系列,基于v7M的稱為Cortex-M系列。本系統(tǒng)設計便使用了Cortex-M系列的處理器。ARM Cortex-M 處理器系列是一系列可向上兼容的高能效、易于使用的處理器,這些處理器旨在幫助開發(fā)人員滿足將來的嵌入式應用的需要。這些需要包括以更低

16、的成本提供更多功能、不斷增加連接、改善代碼重用和提高能效。 Cortex-M 系列針對成本和功耗敏感的 MCU 和終端應用(如智能測量、人機接口設備、汽車和工業(yè)控制系統(tǒng)、大型家用電器、消費性產(chǎn)品和醫(yī)療器械)的混合信號設備進行過優(yōu)化。以更低的 MHz 或更短的活動時段運行基于架構的睡眠模式支持比 8/16 位設備的工作方式更智能、睡眠時間更長。多個供應商之間的全球標準代碼兼容性統(tǒng)一的工具和操作系統(tǒng)支持。每 MHz 提供更高的性能能夠以更低的功耗實現(xiàn)更豐富的功能?,F(xiàn)在的面世的Cortex-M 系列產(chǎn)品有Cortex-M0、M0+、M1、M3、M4。2.2.2發(fā)射端核心部分發(fā)射端核心部分采用STM3

17、2F407VGT6處理器,STM32F407VGT6屬于先進的Cortex-M4F核,F(xiàn)PU浮點運算能力,增強的DSP處理指令;更多的存儲空間,高達1M字節(jié)的片上閃存高達196K字節(jié)的嵌SRAM;靈活的外部存儲器接口;極致的運行速度,以168MHz高速運行時可達到1.25DMIPS/MHz的處理能力。該處理器是由ARM專門開發(fā)的最新嵌入式處理器,用以滿足需要有效且易于使用的控制和信號處理功能混合的數(shù)字信號控制市場。高效的信號處理功能與Cortex-M處理器系列的低功耗、低成本和易于使用的優(yōu)點的組合,旨在滿足專門面向電動機控制、汽車、電源管理、嵌入式音頻和工業(yè)自動化市場的新興類別的靈活解決方案。

18、片上資源有LCD并行接口,8080/6800模式;時鐘,復位和電源管理1.8 V至3.6 V供電和I / O的POR,PDR,PVD和BOR4至26 MHz晶體振蕩器部16 MHz工廠調整的RC(精度為1)32 kHz振蕩器作為RTC與校準部32 kHz RC與校準睡眠,停機和待機模式VBAT供應RTC,20×32位的備份寄存器+可選的4 KB備份SRAM;3個12位,2.4MSPS一個A/D轉換器:多達24通道,三重交叉模式下的性能高達7.2 MSPS;2個12位D / A轉換器;通用DMA:具有FIFO和突發(fā)支持的16路DMA控制器;多達17個定時器:12個16位定時器,和2個頻

19、率高達168MHz的32位定時器,每個定時器都帶有4個輸入捕獲/輸出比較/PWM,或脈沖計數(shù)器與正交(增量)編碼器輸入;高級連接功能USB 2.0全速器件/主機/ OTG控制器,帶有片上物理層USB的2.0 high-speed/full-speed設備/主機/ OTG控制器的專用DMA,片上全速PHY和ULPI10/100以太網(wǎng)MAC專用DMA:支持IEEE 1588v2的硬件,MII/RMII;14位parallel-照相機接口:速度高達54MB/S。通用DMA:具有F?6?7?6?7IFO和突發(fā)支持的16路DMA控制器2個12位D / A轉換器.LCD并行接口,8080/6800模式該處

20、理器是由ARM專門開發(fā)的最新嵌入式處理器,用以滿足需要有效且易于使用的控制和信號處理功能混合的數(shù)字信號控制市場。高效的信號處理功能與 Cortex-M 處理器系列的低功耗、低成本和易于使用的優(yōu)點的組合,旨在滿足專門面向電動機控制、汽車、電源管理、嵌入式音頻和工業(yè)自動化市場的新興類別的靈活解決方案。該處理器是由ARM專門開發(fā)的最新嵌入式處理器,用以滿足需要有效且易于使用的控制和信號處理功能混合的數(shù)字信號控制市場。高效的信號處理功能與 Cortex-M 處理器系列的低功耗、低成本和易于使用的優(yōu)點的組合,旨在滿足專門面向電動機控制、汽車、電源管理、嵌入式音頻和工業(yè)自動化市場的新興類別的靈活解決方案。

21、該處理器是由ARM專門開發(fā)的最新嵌入式處理器,用以滿足需要有效且易于使用的控制和信號處理功能混合的數(shù)字信號控制市場。高效的信號處理功能與 Cortex-M 處理器系列的低功耗、低成本和易于使用的優(yōu)點的組合,旨在滿足專門面向電動機控制、汽車、電源管理、嵌入式音頻和工業(yè)自動化市場的新興類別的靈活解決方案。2.2.3 接收端核心部分接收端核心部分使用STM32F103ZET6處理器,STM32F103ZET6處理器增強型系列使用高性能的ARM Cortex-M3 32位的RISC核,ARM的Cortex-M3處理器是最新一代的嵌入式ARM處理器,以72MHz主頻運行時可達到1.20 DMIPS/MH

22、z的處理能力,它為實現(xiàn)MCU的需要提供了低成本的平臺、縮減的管腳數(shù)目、降低的系統(tǒng)功耗,同時提供卓越的計算性能和先進的中斷系統(tǒng)響應。 ARM的Cortex-M3是32位的RISC處理器,提供額外的代碼效率,在通常8和16位系統(tǒng)的存儲空間上發(fā)揮了ARM核的高性能。片上資源有LQFP144腳LQFP144腳,512K 片F(xiàn)LASH(相當于硬盤),64K片RAM(相當于存),片F(xiàn)LASH 支持在線編程(IAP);片雙RC晶振,提供8M和32K的頻率;3路共16通道的12位AD輸入,2路共2通道的12位DA輸出;支持片外獨立電壓基準;8個定時器;3個SPI接口;2個IIC接口;2個IIS接口;5個USA

23、RT通信接口;1個SDIO接口;1個USB微控制器;1個CAN微控制器。所有的I/O口都可作為外部中斷觸發(fā)端。這些豐富的外設配置,使得STM32F103xx增強型微控制器適合于多種應用場合:電機驅動和應用控制;醫(yī)療和手持設備;PC外設和GPS平臺;工業(yè)應用,可編程控制器、變頻器、打印機和掃描儀;警報系統(tǒng),視頻對講,和暖氣通風空調系統(tǒng)2.2.4 無線模塊圖2-2 NRF24L01+無線模塊原理圖發(fā)送端和接收端的無線模塊硬件原理均一致。NRF24L01+是NORDIC公司最近生產(chǎn)的一款工作在2.4GHz2.5GHz的ISM 頻段的單片無線收發(fā)器,采用FSK調制,部集成NORDIC自己的Enhanc

24、ed Short Burst協(xié)議??梢詫崿F(xiàn)點對點或是1對6的無線通信。無線通信速度可以達到2M(bps)。無線收發(fā)器包括:頻率發(fā)生器、增強型“SchockBurst”模式控制器、功率放大器、晶體振蕩器、調制器和解調器。輸出功率頻道選擇和協(xié)議的設置可以通過SPI接口進行設置。幾乎可以連接到各種單片機芯片,并完成無線數(shù)據(jù)傳送工作。從驅動控制的角度來看,只需關注NRF24L01+對處理器的六個控制信號,分別為CE、CSN、SCK、MISO、MOSI、IRQ。CE: 芯片的模式控制線。在CSN為低的情況下,CE協(xié)同NRF24L01的CONFIG 寄存器共同決定NRF24L01的狀態(tài)。CSN: 芯片的片

25、選線,CSN 為低電平芯片工作。SCK: 芯片控制的時鐘線(SPI 時鐘)MISO:芯片控制數(shù)據(jù)線(Master input slave output)MOSI:芯片控制數(shù)據(jù)線(Master output slave input)IRQ: 中斷信號。無線通信過程中MCU 主要是通過IRQ 與NRF24L01 進行通信。2.2.5 發(fā)送端圖像采集部分圖2-3 OV7670攝像頭圖2-7是OV7670攝像頭與處理器的連接圖。OV7670圖像傳感器,體積小、工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。通過SCCB 總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8位影響數(shù)據(jù)。該產(chǎn)

26、品VGA圖像最高達到30幀/秒。OV7670/7171共有656x488即320128個像素,其中640x480個有效(即307200)。SDA:SCCB數(shù)據(jù)口;SCL:SCCB始終輸出口;RESET:初始化所有寄存器到默認值 0:RESET 模式 1:一般模式;VSYNC:幀同步;PWDN:POWER DOWN模式選擇 0:工作 1:POWER DOWN;HSYNC:行同步;MCLCK:系統(tǒng)時鐘輸入;PCLK:像素時鐘;D0D7:數(shù)據(jù)位07;使用攝像頭,尤其是采用CMOS芯片的產(chǎn)品時就更應該注重技巧:A. 不要在逆光環(huán)境下使用(這點CCD同),尤其不要直接指向太陽,否則“放大鏡燒螞蟻”的慘劇

27、就會發(fā)生在您的攝像頭上。B. 環(huán)境光線不要太弱,否則直接影響成像質量??朔@種困難有兩種辦法,一是加強周圍亮度,二是選擇要求最小照明度小的產(chǎn)品,現(xiàn)在有些攝像頭已經(jīng)可以達到5lux。C. 要注意的是合理使用鏡頭變焦,不要小瞧這點,通過正確的調整,攝像頭也同樣可以擁有拍攝芯片的功能。受市場情況與市場發(fā)展等情況的限制,攝像頭采用CCD圖像傳感器的廠商為數(shù)不多,主要原因是采用CCD圖像傳感器成本高的影響。在MOBILE PHONE上使用的CAMREA還是以CMOS為主,不僅是價格而且體積也是影響在MOBILE PHONE上使用CCD CAMERA的另一原因。SCCB總線:SCCB是歐姆尼圖像技術公司(

28、OmniVision)開發(fā)的一種總線,并廣泛的應用于OV系列圖像傳感器上。SCCB是一種3線的總線,它由SCCB_E、SIO_C、SIO_D組成。在為了減少引腳的芯片上縮減為2根線,SIO_C和SIO_D。2線的SCCB總線只能是一個主器件對一個從器件控制,但3線SCCB接口可以對多個從器件控制。2線的SCCB總線需要主機具備如下條件中的一個或多個:一、主機必須能夠使SIO_D處于第三態(tài),即高阻態(tài)。二、主機必須能夠驅動SIO_D比正常識別電壓更高或更低。圖2-4 SCCB時序圖SIO_E:輸出(主機發(fā)出,單向),低電平有效,總線空閑時主機驅動此引腳為1,驅動為0時表示開始傳輸或者掛起模式(在表

29、面沒有該引腳的芯片中,該引腳默認為可用的,并且保持高電平)。它標志這數(shù)據(jù)傳輸?shù)拈_始和結束,高電平向低電平轉變表示開始傳輸,低電平向高電平轉變表示結束傳輸。在數(shù)據(jù)傳輸過程中,SIO_E必須保持為0。SIO_C:輸出(主機發(fā)出,單向),總線空閑時主機驅動此引腳為1;當驅動SIO_E為0時,主機驅動此引腳為0或1;當掛起時主機驅動SIO_C為0; 它表明每一個傳輸位;SIO_C為1時表示一個傳輸位;SIO_D只能在SIO_C為0時發(fā)生變化。 SIO_D:I/O口,雙向傳輸線,既可以由主機驅動也可以由從機驅動。當總線空閑時保持浮動,狀態(tài)不固定(0、1或三態(tài)高阻)。當系統(tǒng)掛起時驅動該引腳為0。為了不讓該

30、引腳產(chǎn)生未知的狀態(tài),主機和從機有職責保持該引腳的電平。SIO_C為1表示傳輸一位數(shù)據(jù),SIO_D只能在SIO_C為0時發(fā)生變化。然而,在開始傳輸和結束傳輸時卻可以存在例外。當SIO_E有效且SIO_C變?yōu)?之前,SIO_D可以被驅動為0。在SIO_E失效前,SIO_C轉為1時,SIO_D也能被驅動為0。攝像頭工作時序:圖2-5 攝像頭工作時序圖當圖像當中一行的數(shù)據(jù)來臨之際,行中斷引腳HREF=0,tPHL過后HREF=1,表示像素數(shù)據(jù)開始輸出,在像素時鐘引腳PLCK=0時改變輸出數(shù)據(jù),PLCK=1是通知處理器數(shù)據(jù)輸出穩(wěn)定,以此反復輸出一行數(shù)據(jù)。2.2.6 LCD顯示部分圖2-6 發(fā)送端TFT屏

31、電路原理圖圖2-7 接受端TFT屏電路原理圖發(fā)送端和接收端的顯示屏均使用ILI9325芯片驅動的顯示屏。在ARM cortex-M系列處理器部,是通過FSMC(靜態(tài)存儲器控制器)來控制ILI9325,ARM cortex-M系列處理器把TFT模塊當做一塊NOR FLASH來操作。使用FSMC控制器后,可以把FSMC提供的FSMC_A25:0作為地址線,而把FSMC提供的FSMC_D15:0作為數(shù)據(jù)總線。當存儲數(shù)據(jù)設為16位時,地址各位對應FSMC_A24:0,數(shù)據(jù)位對應FSMC_D15:0。FSMC 包括4個模塊:(1)AHB接口(包括FSMC配置寄存器)(2)NOR閃存和PSRAM控制器(驅

32、動LCD的時候LCD就好像一個PSRAM的里面只有2個16位的存儲空間,一個是DATA RAM 一個是CMD RAM)(3)NAND閃存和PC卡控制器(4)外部設備接口注:FSMC可以請求AHB進行數(shù)據(jù)寬度的操作。如果AHB操作的數(shù)據(jù)寬度大于外部設備(NOR或NAND或LCD)的寬度,此時FSMC將AHB操作分割成幾個連續(xù)的較小的數(shù)據(jù)寬度,以適應外部設備的數(shù)據(jù)寬度。FSMC對外部設備的地址映像從0x6000 0000開始,到0x9FFF FFFF結束,共分4個地址塊,每個地址塊256M字節(jié)??梢钥闯?,每個地址塊又分為4個分地址塊,大小64M。對NOR的地址映像來說,我們可以通過選擇HADDR2

33、7:26來確定當前使用的是哪個64M的分地址塊,如下頁表格。而這四個分存儲塊的片選,則使用NE4:1來選擇。數(shù)據(jù)線/地址線/控制線是共享的。FSMC提供了所有的LCD控制器的信號:FSMC_D16:0: 16bit的數(shù)據(jù)總線;FSMC NEx:分配給NOR的256M,再分為4個區(qū),每個區(qū)用來分配一個外設,這四個外設的片選分為是NE1-NE4,對應的引腳為:PD7NE1,PG9NE2,PG10-NE3,PG12NE4;FSMC NOE:輸出使能,連接LCD的RD腳;FSMC NWE:寫使能,連接LCD的RW腳;FSMC Ax:用在LCD顯示RAM和寄存器之間進行選擇的地址線,即該線用于選擇LCD

34、的RS腳,該線可用地址線的任意一根線,圍:FSMC_A25:0。注:RS = 0時,表示讀寫寄存器;RS = 1,表示讀寫數(shù)據(jù)RAM。2.2.7 片存儲部分圖2-8 SD卡存儲部分存儲部分使用SD卡,SD存儲介質是一種非易失性外部存儲器,可滿足許多應用場合的要求。SD格式是“多媒體卡”(MMC)格式的繼承產(chǎn)品。SD卡存儲器一般工作于3.3V電壓,具有適度的電流要求。SD卡的容量從幾百兆節(jié)到最高的幾十GB不等。容量圍如此之寬,可為眾多應用提供充足的外部存儲空間。SD 總線有6 根通信線和三根電源供應線:CMD: 命令線是雙向信號線。主機和卡通過push pull 模式工作。DAT0-3: 數(shù)據(jù)線

35、是雙向信號線。主機和卡通過push pull 模式工作。CLK: 時鐘是從主機到卡的信號。CLK 通過push pull 模式操作。VDD: 是所有卡的電源供應線。VSS1:2:2根地線。SD 卡可以通過單數(shù)據(jù)線(DAT0)或四根數(shù)據(jù)線(DAT0-DAT3)進行數(shù)據(jù)傳輸。單根數(shù)據(jù)線傳輸最大傳輸速率為25 Mbit/s,四根數(shù)據(jù)線最大傳輸速率為100 Mbit/s。本次課題設計的系統(tǒng)使用四根數(shù)據(jù)線。第3章 系統(tǒng)軟件設計本章介紹了圖像無線傳輸系統(tǒng)各硬件的驅動程序的設計。3.1 無線模塊驅動程序設計發(fā)送端和接收端的無線模塊驅動代碼均由以上兩個文件組成。對nrf24l01的操作方法見圖3-1。對nrf

36、24l01傳送SPI數(shù)據(jù)設置nrf24l01為發(fā)送模式,指定發(fā)送速率和發(fā)送個數(shù)初始化處理器SPI接口發(fā)送指定數(shù)據(jù)發(fā)送函數(shù)是否返回0NOYES對nrf24l01傳送SPI數(shù)據(jù)設置nrf24l01為接收模式,指定接收速率和接收個數(shù)初始化處理器SPI接口接收數(shù)據(jù)接收函數(shù)是否返回0NOYES圖3-1-1 nrf24l01發(fā)送數(shù)據(jù)操作流程圖圖3-1-2 nrf24l01接收數(shù)據(jù)操作流程圖圖3-1 nrf24l01工作在發(fā)送和接收的操作流程圖對nrf24l01的操作很簡單,不論是發(fā)送還是接收基本步驟都是先初始化處理器SPI接口,然后傳送參數(shù)對nrf24l01進行設置,接下來便可以使用nrf24l01進行發(fā)

37、送數(shù)據(jù)(或接收數(shù)據(jù))。為了確保不發(fā)漏(或接漏)數(shù)據(jù),每次發(fā)送(或接收)都通過while()循環(huán)檢查是否發(fā)送(或接收)成功,發(fā)送(或接收)函數(shù)返回0表示無誤,返回1表示還沒成功或還沒完成發(fā)送(或接收)。nrf24l01.c提供用戶使用的函數(shù)有(完整形式參見附錄1 nrf24l01.h文件的用戶函數(shù))NRF24L01_Init()NRF24L01_Detach()NRF24L01_TxMode()NRF24L01_RxMode()NRF24L01_TxPacket()NRF24L01_RxPacket()NRF24L01_Init()函數(shù)初始化ARM處理器的SPI接口,完成SPI初始化后檢測接口上

38、是否連接好nrf24l01無線模塊。NRF24L01_Detach()函數(shù)用于解除nrf24l01無線模塊對ARM處理器的SPI接口的占用,也有減低系統(tǒng)功耗功能。NRF24L01_TxMode()設置nrf24l01無線模塊為發(fā)送模式,包括設置通訊速率,通訊字節(jié)個數(shù),本地地址和接收地址,頻道的自動答應允許是否使能,允許接受的頻道號和頻道個數(shù),自動重發(fā)時間和次數(shù),輸出功率頻道選擇。NRF24L01_RxMode()設置nrf24l01無線模塊為接收模式,包括設置通訊速率,通訊字節(jié)個數(shù),本地地址和接收地址,頻道的自動答應允許是否使能,允許接受的頻道號和頻道個數(shù),自動重發(fā)時間和次數(shù),輸出功率頻道選擇

39、。NRF24L01_TxPacket()發(fā)送具體數(shù)據(jù)包。具體實現(xiàn)代碼:unsigned char NRF24L01_TxPacket(unsigned char* tx_buf, unsigned char len)unsigned char status = 0x00;NRF24L01_CE_LOW();NRF24L01_Write_Buf(RF_WRITE_REG + RX_ADDR_P0, NRF24L01_ADDRESS, NRF24L01_ADR_WIDTH_5B); / 裝載接收端地址NRF24L01_Write_Buf(WR_TX_PLOAD, tx_buf, len);/ 裝載

40、數(shù)據(jù)NRF24L01_CE_HIGH();while(NRF24L01_IRQ() != 0);status = NRF24L01_Read_Reg(RF_READ_REG + STATUS);NRF24L01_Write_Reg(RF_WRITE_REG + STATUS, status);if(status & MAX_TX)NRF24L01_Write_Reg(FLUSH_TX, 0x00);return MAX_TX;if(status & TX_OK)return TX_OK;return 0xff;/其他原因發(fā)送失敗NRF24L01_RxPacket()接收具體數(shù)據(jù)

41、包。具體實現(xiàn)代碼:unsigned char NRF24L01_RxPacket(unsigned char* rx_buf, unsigned char len)unsigned char revale = 0;unsigned char sta = 0;while(NRF24L01_IRQ() != 0);sta = NRF24L01_Read_Reg(RF_READ_REG+STATUS);/ 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況NRF24L01_Write_Reg(RF_WRITE_REG+STATUS, sta); /接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來

42、清楚中斷標志if(sta & RX_OK) / 判斷是否接收到數(shù)據(jù)NRF24L01_Read_Buf(RD_RX_PLOAD, rx_buf, len);/ read receive payload from RX_FIFO bufferNRF24L01_Write_Reg(FLUSH_RX, 0x00);revale = RX_OK; /讀取數(shù)據(jù)完成標志return revale;3.2 攝像頭驅動程序設計圖像采集端的攝像頭驅動代碼由以上兩個文件組成。OV7670的操作流程如圖3-2。初始化處理器SCCB接口和攝像頭接口通過SCCB總線對OV7670寫設置參數(shù)SCCB傳送的數(shù)據(jù)書否完

43、全到達OV7670啟動OV7670OV7670采集圖像NOYES圖3-2 對OV7670操作流程圖ov7670.c提供用戶使用的函數(shù)有(完整形式參見附錄1ov7670.h文件的用戶函數(shù))OV7670_Init()OV7670_Start()OV7670_Detach()OV7670_ISR()OV7670_Init()初始化ARM處理器攝像頭接口和OV7670模塊,并檢測OV7670模塊是否連接在ARM處理器攝像頭接口上。具體實現(xiàn)代碼:unsigned char OV7670_Init(void)unsigned char i;DCMI_NVIC_Init();DCIM_GPIO_Init()

44、;SCCB_Init();OV7670_Reset();delay_ms(5);for(i = 0; i < OV7670_REG_NUM; i+)if(0 = OV7670_WriteReg(OV7670_regi0, OV7670_regi1)return 1; return 0;OV7670_Start()函數(shù)啟動OV7670模塊。此函數(shù)跟具體的硬件操作有關,具體實現(xiàn)代碼:void OV7670_Start(void)LCD_WriteReg(0x0003, 0x1008);LCD_SetCursor(0, 319);LCD_WriteRAM_Prepare();RCC_AHB2P

45、eriphClockCmd(RCC_AHB2Periph_DCMI, ENABLE);DCMI_ITConfig(DCMI_IT_FRAME, ENABLE);/DCMI中斷DMA_Cmd(DMA2_Stream1, ENABLE);DCMI_Cmd(ENABLE);DCMI_CaptureCmd(ENABLE);LCD_REG = 0x22;OV7670_Detach()用于解除OV7670模塊對ARM處理器的攝像頭接口的占用,也有減低系統(tǒng)功耗功能。OV7670_ISR()函數(shù)是OV7670模塊中斷服務函數(shù),每當OV7670模塊采集完一幅圖像后便進入此函數(shù)進行關中斷。此函數(shù)跟具體的硬件操作有

46、很大關聯(lián),具體操作步驟和選用處理器有關,具體實現(xiàn)代碼:void OV7670_ISR(void)if(DCMI_GetITStatus(DCMI_IT_FRAME) != RESET)DCMI_ClearITPendingBit(DCMI_IT_FRAME);LCD_SetCursor(0, 319); LCD_WriteRAM_Prepare();3.3 LCD顯示驅動程序設計發(fā)送端和接受端LCD顯示驅動代碼由以上兩個文件組成。ili9325的操作流程如圖3-3。通過FSMC初始化ili9325初始化處理器FSMC接口寫ili9325的寄存器地址寫ili9325的寄存器數(shù)據(jù)圖3-3 ili9

47、325操作流程圖ili932x.c提供用戶使用的函數(shù)有(完整形式參見附錄1ili932x.h文件的用戶函數(shù))LCD_Initializtion()LCD_SetCursor()LCD_SetWindows()LCD_Clear()LCD_Font()LCD_Dispmd()LCD_GetPoint()LCD_SetPoint()LCD_Initializtion()用于初始化ARM處理器的FSMC接口和LCD模塊,有幾個重要的參數(shù)需要注意:(0x0000,0x0001)開啟部時鐘(0x0002,0x0700)電源開啟(0x0050,0x0000)水平GRAM起始位置(0x0051,0x00ef

48、)水平GRAM終止位置(0x0052,0x0000)垂直GRAM起始位置(0x0053,0x013f)垂直GRAM終止位置第一個參數(shù)是LCD的寄存器地址,第二個值是給對應的寄存器寫進對應的數(shù)值。LCD_SetCursor()函數(shù)是設置LCD的坐標。LCD_SetWindows()函數(shù)是設置LCD顯示得窗口大小。LCD_Clear()函數(shù)是清除LCD并顯示全屏為一種單一顏色。LCD_Clear()函數(shù)設置LCD顯示文字的字體。LCD_Dispmd()函數(shù)設置LCD刷屏的方式。LCD_GetPoint()函數(shù)讀取LCD屏指定像素的RGB值。LCD_SetPoint()函數(shù)是在LCD指定的像素設置其

49、RGB值。3.4 文件系統(tǒng)發(fā)送端和接受端SD存儲底層驅動代碼由以上兩個文件組成。sdio_sd.c提供用戶使用的函數(shù)有SD_Error SD_InitializeCards(void);SD_Error SD_GetCardInfo(SD_CardInfo *cardinfo);SD_Error SD_GetCardStatus(SD_CardStatus *cardstatus);SD_Error SD_EnableWideBusOperation(uint32_t WideMode);SD_Error SD_SelectDeselect(uint32_t addr);SD_Error SD

50、_ReadBlock(uint8_t *readbuff, uint32_t ReadAddr, uint16_t BlockSize);SD_Error SD_ReadMultiBlocks(uint8_t *readbuff, uint32_t ReadAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);SD_Error SD_WaitReadOperation(void);SD_Error SD_WriteBlock(uint8_t *writebuff, uint32_t WriteAddr, uint16_t BlockSize);S

51、D_Error SD_WriteMultiBlocks(uint8_t *writebuff, uint32_t WriteAddr, uint16_t BlockSize, uint32_t NumberOfBlocks);SD_Error SD_WaitWriteOperation(void);SDTransferState SD_GetTransferState(void);SD_Error SD_StopTransfer(void);SD_Error SD_Erase(uint32_t startaddr, uint32_t endaddr);SD_Error SD_SendStatu

52、s(uint32_t *pcardstatus);SD_Error SD_SendSDStatus(uint32_t *psdstatus);SD_Error SD_ProcessIRQSrc(void);void SD_ProcessDMAIRQ(void);由于直接操作SD卡存儲數(shù)據(jù)十分復雜,因此移植了FAT文件系統(tǒng)來對SD卡進行管理操作。FAT文件系統(tǒng)是一種由微軟發(fā)明并擁有部分專利的文檔系統(tǒng),供MS-DOS使用,也是所有非NT核的微軟窗口使用的文件系統(tǒng)。cc936.c文件是拓展了FAT文件系統(tǒng)對中文的支持。diskio.c文件是FAT文件系統(tǒng)調用底層SD卡驅動代碼的中間層。ff.c文件是

53、FAT文件系統(tǒng)的核心部分。ffconf.h文件是FAT文件系統(tǒng)的配置文件。fsearch.c文件是FAT文件系統(tǒng)的路徑搜索功能文件。integer.c文件定義了FAT文件系統(tǒng)自己的數(shù)據(jù)類型。第4章 實時操作系統(tǒng)應用本章介紹了uC/OSII實時操作系統(tǒng)在圖像無線傳輸系統(tǒng)中的應用。4.1 uC/OSII實時操作系統(tǒng)介紹uC/OS是一種免費公開源代碼、結構小巧、具有可剝奪實時核的實時操作系統(tǒng)。uC/OS-II的前身是uC/OS,最早出自于1992 年美國嵌入式系統(tǒng)專家Jean J.Labrosse 在嵌入式系統(tǒng)編程雜志的5 月和6 月刊上刊登的文章連載,并把uC/OS 的源碼發(fā)布在該雜志的BBS上。

54、uC/OS和C/OS-II是專門為計算機的嵌入式應用設計的,絕大部分代碼是用C語言編寫的。CPU硬件相關部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。用戶只要有標準的ANSI的C交叉編譯器,有匯編器、連接器等軟件工具,就可以將uC/OS-II嵌人到開發(fā)的產(chǎn)品中。uC/OS-II 具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點, 最小核可編譯至 2KB 。uC/OS-II 已經(jīng)移植到了幾乎所有知名的CPU 上。其252版本通過了美國航天航空管理局的安全認證,可靠性非常高。uC/OS-II目標是實現(xiàn)一個基于優(yōu)先級調度的搶

55、占式的實時核,并在這個核之上提供最基本的系統(tǒng)服務,如信號量,消息隊列,存管理,中斷管理等。本課題選用uC/OS-II里最新的2.91版本,該版本最多可以支持256個任務,分別對應優(yōu)先級0255,其中0為最高優(yōu)先級。255為最低級,系統(tǒng)保留了4個最高優(yōu)先級的任務和4個最頂優(yōu)先級的任務,用戶可以使用其他優(yōu)先級。uC/OS-II提供了任務管理的各種函數(shù)調用,包括創(chuàng)建任務,刪除任務,改變任務的優(yōu)先級,任務掛起和恢復等。系統(tǒng)初始化時會自動產(chǎn)生兩個任務:一個是空閑任務,它的優(yōu)先級最低,該任務僅給一個整形變量做累加運算;另一個是系統(tǒng)任務,它的優(yōu)先級為次低,該任務負責統(tǒng)計當前CPU的利用率。由于uC/OS-II實時性能優(yōu)異,本課題我選用了該操作系統(tǒng)。4.2 在uC/OSII運行程序運行任務0是否完整采集一幅圖像任務1把一幅完整圖像保存到SD卡任務2驅動無線模塊發(fā)送圖像數(shù)據(jù)系統(tǒng)啟動建立任務0,1,2NONOYESYES驅動攝像頭采集圖像發(fā)郵箱通0知任務1圖像是否發(fā)送完成返回任務0發(fā)郵箱通1知任務2圖4-1 發(fā)送端程序流程圖見圖4-1,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論