日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]無(wú)線圖像(視頻)傳輸系統(tǒng)ARM9+Atmega16+OV7620+nrf24l01(二)

下面就介紹下nrf24l01的寄存器配置問(wèn)題。這里我采用了增強(qiáng)型ShockBurst模式,具有自動(dòng)前導(dǎo)碼生成、CRC校驗(yàn),并配置為自動(dòng)應(yīng)答ACK,這樣的好處是可以減輕MCU的負(fù)擔(dān),減少開(kāi)發(fā)難度。目前還沒(méi)有實(shí)現(xiàn)組網(wǎng),所以只用了其中的一個(gè)通道0,為了更簡(jiǎn)單的傳輸,把發(fā)送端和接收端的地址都設(shè)為同一個(gè)。需要注意的就是在啟動(dòng)發(fā)送和接收時(shí)的延時(shí)問(wèn)題,以及發(fā)送完和接收完緩存的清除。在其Datasheet上標(biāo)注的很清楚,在進(jìn)入發(fā)射模式,CE置高的持續(xù)時(shí)間至少是10us,而在進(jìn)入接收模式,CE置高后160us后才會(huì)檢測(cè)空中信號(hào)。所以,在編程時(shí)要多加注意。我覺(jué)得主要的還是發(fā)送和接收緩存的清除問(wèn)題,因?yàn)槲议_(kāi)始時(shí)在發(fā)送語(yǔ)句的下一句就寫(xiě)了清除發(fā)送緩存的語(yǔ)句,結(jié)果。。。一看便知,接收一個(gè)數(shù)據(jù)包后戛然而止。這里的延時(shí)也影響整個(gè)圖像數(shù)據(jù)發(fā)送的時(shí)長(zhǎng),我在程序中的延時(shí)是0.2ms,所以在發(fā)送所有數(shù)據(jù)時(shí)的總延時(shí)一算便知,(320*240/32)*0.2ms=480ms,而在ARM端的驅(qū)動(dòng)中使用時(shí)鐘滴答數(shù)jiffies記錄了兩個(gè)中斷(接收100個(gè)數(shù)據(jù)包,也就是中端了100次,為了方便顯示,100次打印一次)到來(lái)時(shí)的時(shí)刻,差值為50ms左右,這樣可以算出一幀圖像傳輸?shù)臅r(shí)間為24*50ms=1.2s,如果再減去采集端發(fā)送延時(shí)等待的時(shí)間便可算出一幀圖像數(shù)據(jù)實(shí)際的空中傳輸時(shí)間為720ms,所以在最理想的情況下可以達(dá)到1幀/s的傳輸速率——這個(gè)速率對(duì)于我這個(gè)項(xiàng)目來(lái)說(shuō)還算可以(后面希望優(yōu)化得到2幀/s)??纯?strong>nrf24l01的數(shù)據(jù)手冊(cè),它支持兩種傳輸速率1M和2M,按照理論一幀圖像320*240=76800,傳輸?shù)臅r(shí)間應(yīng)為76.8ms,差距還是蠻大的(一個(gè)數(shù)量級(jí)啊)。

在采集板上還有一個(gè)比較重要的部分,那就是DRAM FIFO模塊——攝像頭采集速率太快,而且數(shù)據(jù)量又太大,要是直接傳給弱不禁風(fēng)的單片機(jī),不知道最后能得到幾個(gè)數(shù)據(jù)——有待驗(yàn)證,呵呵。所以需要有一個(gè)高速緩存(沖)器來(lái)解決這個(gè)問(wèn)題,本次采用的是AL422B(別人好像也都是這么用的,Why),3Mbit容量——對(duì)本次應(yīng)用來(lái)說(shuō)足矣。AL422B操作很簡(jiǎn)單,要特別注意的也就是讀寫(xiě)的時(shí)序、讀寫(xiě)reset、讀寫(xiě)使能位的控制。寫(xiě)端/WE由OV7620的HREF和MCU的一個(gè)引腳PD4通過(guò)與非門(mén)控制,而讀端直接接地,隨時(shí)可以讀取,而其寫(xiě)時(shí)序是由OV7620的PCLK引腳提供時(shí)鐘,這樣就可以保證每個(gè)像素值都可以按照順序?qū)懭?。?dāng)OV7620的VSYNC引腳拉高時(shí)表明已經(jīng)開(kāi)始采集一幀圖像,MCU判斷到此值后拉高PD4,之后HREF也會(huì)被拉高,這樣AL422B的寫(xiě)使能已經(jīng)有效,在PCLK的時(shí)鐘下源源不斷的寫(xiě)入數(shù)據(jù)。下面貼出本段相關(guān)的代碼:

/**************************************/

while( !( PIND & (1<

PORTD |=(1<

enable_int0(); //檢測(cè)到下降沿表明,一幀圖像采集完畢,采用中斷方式停止數(shù)據(jù)寫(xiě)入

delay_ms(20);

/*****************irq ISP****************/

#pragma interrupt_handler int0_isr:iv_INT0

void int0_isr(void)

{

PORTD &=~(1<

disable_int0();

}

最后還要注意一點(diǎn),AL422B的讀寫(xiě)時(shí)鐘支持的頻率范圍在1MHz-500MHz(20-2000ns),所以非常好的兼容

PCLK的時(shí)鐘(將在OV7620章節(jié)詳述)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉