www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]無線圖像(視頻)傳輸系統(tǒng)ARM9+Atmega16+OV7620+nrf24l01(一)

很多人可能會這樣驚訝的問道,況且,直到現(xiàn)在我也不能確定能不能傳輸視頻,我本人覺得估計也有點吃力!!!不過現(xiàn)在已經(jīng)完成了圖片的傳輸,從傳輸時間來看還是漫長的讓人接受不了,一張320*240圖片的傳輸大概需要10s(后面會詳述為什么會有這么長時間和可以改進的地方),但是,一張完整圖片經(jīng)過無線發(fā)射完只需1.2s(去除發(fā)送等待時間大概只需720ms)左右的時間,大部分時間還是消耗在采集端的發(fā)送延時等待(目前還沒有用中斷,下一步改成中斷處理)以及上位機(ARM9)驅動中的數(shù)據(jù)復制(copy to usr,用mmap方式應該會快一點(引用別人的結論——用mmap方法就不會造成CPU的CACHE頻繁失效,從而大大節(jié)約時間——Ethan的《copy_to_user與mmap的工作原理》),這也是下一步的計劃),并且這些數(shù)據(jù)都是沒有經(jīng)過任何處理的原始RGB BAYER PATTERN。為什么要做這個平臺呢??原因在于目前參加了一個省競賽,關于《都市開心農場》(QQ農場的實例版),考慮到植物生長的相對靜態(tài)性,不需要實時的圖像采集,并且考慮到這個項目要和物聯(lián)網(wǎng)或是無線傳感網(wǎng)有關聯(lián),所以就采用了這個無線傳輸方案。先不說可行性了,關鍵在于學習,這20天中,也學習了不少東西,ARM驅動開發(fā)、圖像的格式,顯示以及液晶屏framebuffer的使用。下面就一步步敘述整個開發(fā)過程吧。

先來說說目前已經(jīng)達到的效果,通過Atmega16+OV7620+nrf24l01采集圖像,圖像格式可以設為YUV422,RGB RAW16,RGB8bit,前兩種目前只能顯示為灰度圖像(OV7620的UV管腳沒有用,只能通過Y通道獲取數(shù)據(jù))并且對圖像這塊也不了解,GB8bit支持彩色顯示,可以在4.3 16bpp LCD上顯示(圖像質量還可以),并且可以通過網(wǎng)絡傳到上位機(電腦),不過,這塊還沒有做好,只能接收到數(shù)據(jù),還沒有顯示出來(這也是后面的工作了)。ARM+nrf24l01作為目前的終端(這個也只是作為我一個項目中的網(wǎng)關,所以先熟悉了再說,不過到時候可不是nrf24了)。基本上已經(jīng)完成了圖像的采集、傳輸、處理(顯示)整個流程,最后要做的也是最困難的——優(yōu)化。

作為開發(fā)記錄文檔, 我想分為4個部分分別描述整個過程的關鍵之處:

nrf24l01無線射頻模塊

OV7620圖像傳感器

nrf24l01 在ARM上的驅動

圖像在lcd中顯示

首先,nrf24l01無線收發(fā)模塊之前從未接觸過,用過的也都是TI 早期的CC1000,CC1101模塊,為什么要選它呢??可能是因為它操作簡單吧(競賽有時間限制啊),也可能是因為它有兩種傳輸速率1M、2M(目前用的是1M,期待2M有所改善),而那些用于ZIGBEE的速率也都在250kbps左右,即選之則安之。微控制器采用的是Atmega16,時鐘采用外部晶振7.3728MHz(暈,為什么用這么一個頻率呢?!!)。nrf24l01通過Atmega16通用IO模擬出的SPI連接(第一個瓶頸)。那么首先來說說IO模擬SPI問題,Atmega16 SPI總線頻率最高可達到時鐘頻率的一半(主機方式),而nrf24l01 datasheet上標注了SPI 頻率可以支持到8MHz,所以當初應該選擇主頻更高的晶振。在本平臺中沒有使用SPI接口,而是用IO模擬的SPI時序(因為這樣的程序網(wǎng)上到處都是),后來才發(fā)現(xiàn),IO模擬的SPI速率是很慢的(具體慢多少我也不清楚),所以下一步打算直接用SPI接口操作好了。下面貼出部分程序段;

/*SPI 寫,返回狀態(tài)值。模擬SPI 先MSB(DORD=0) 、SCK空閑時為低電平(CPOL=0)、起始沿采樣,下降沿設置(CPHA=0)*/

char SPI_RW(char data)

{

char i,temp=0;

for(i=0;i<8;i++) // output 8-bit

{

if(data & 0x80)

{

PORTB |= (1 << PB5) ;

}

else

{

PORTB &= ~(1 << PB5);

}

data = (data << 1);

temp<<=1;

PORTB |= (1 << PB7);

if(PINB & (1 << PB5))temp++;

PORTB &= ~(1 << PB7);

}

return(temp);

}

//SPI READ

char SPI_Read(char reg)

{

char reg_val;

PORTB &= ~(1 << PB4); // CSN low, initialize SPI communication...

SPI_RW(reg); // Select register to read from..

reg_val = SPI_RW(0); // read registervalue

PORTB |= (1 << PB4); // CSN high, terminate SPI communication

return(reg_val);

}

其他的函數(shù)都可以由這兩個函數(shù)演變。還有個問題就是軟件延時的問題,這也是今天才發(fā)現(xiàn)的問題,比如在時鐘頻率為7.3728M時,循環(huán)for(i=0;i<254;i++)執(zhí)行時間大概為138us,一個for循環(huán)的執(zhí)行次數(shù)為4*N+4.下面這個毫秒級延時函數(shù)則比較經(jīng)典:

void delay_1ms(void)

{

unsigned int i;

for(i=1;i<(unsigned int)(xtal*143-2_;i++)

;

}

在上式中,xtal為晶振頻率,單位為MHz.

OK,今天就寫到這里。

此文僅作為開發(fā)記錄文檔,錯誤在所難免!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉