新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的物聯(lián)網(wǎng)圖像采集系統(tǒng)應(yīng)用設(shè)計(jì)

基于單片機(jī)的物聯(lián)網(wǎng)圖像采集系統(tǒng)應(yīng)用設(shè)計(jì)

作者: 時(shí)間:2018-08-14 來(lái)源:網(wǎng)絡(luò) 收藏

導(dǎo)讀:本方案基于STM8設(shè)計(jì),與其他嵌入式圖像采集系統(tǒng)相比,具有成本低、設(shè)計(jì)新穎、系統(tǒng)體積小、結(jié)構(gòu)簡(jiǎn)單等優(yōu)勢(shì),能以非常低的成本附加到其他物聯(lián)網(wǎng)傳感節(jié)點(diǎn)上,使物聯(lián)網(wǎng)節(jié)點(diǎn)具有采集和傳輸圖像的功能,更大程度上方便用戶使用。

本文引用地址:http://www.butianyuan.cn/article/201808/386705.htm

物聯(lián)網(wǎng)具有以下特點(diǎn):

(1)物聯(lián)網(wǎng)節(jié)點(diǎn)對(duì)價(jià)格敏感。物聯(lián)網(wǎng)是信息傳感技術(shù)的大規(guī)模應(yīng)用,傳感節(jié)點(diǎn)數(shù)目成百上千,若每個(gè)節(jié)點(diǎn)的成本提高一點(diǎn),整個(gè)物聯(lián)網(wǎng)系統(tǒng)的成本就會(huì)提高很多。所以傳感節(jié)點(diǎn)圖像采集的成本應(yīng)盡量低。

(2)大部分物聯(lián)網(wǎng)應(yīng)用對(duì)圖像質(zhì)量要求不高。圖像采集主要是幫助用戶不需要到現(xiàn)場(chǎng)就可以觀察現(xiàn)場(chǎng)情況,對(duì)于大多數(shù)應(yīng)用只要能分辨出現(xiàn)場(chǎng)場(chǎng)景即可,沒(méi)必要采集很高像素的圖像。

(3)基于成本考慮,物聯(lián)網(wǎng)大多選用RS232,Zigbee,GPRS等傳輸速率不高的聯(lián)網(wǎng)方式,圖像傳輸時(shí)間較長(zhǎng)。但許多監(jiān)測(cè)節(jié)點(diǎn)安放的位置固定,采集的圖像是準(zhǔn)靜態(tài)圖像,也就是說(shuō),大部分情況下,圖像是不變的,所以對(duì)幀率要求不高。即使圖像采集的速度慢一些,也不會(huì)對(duì)現(xiàn)場(chǎng)情況的觀察有太大的影響。

基于的物聯(lián)網(wǎng)低成本CMOS圖像采集系統(tǒng)方案針對(duì)物聯(lián)網(wǎng)傳感節(jié)點(diǎn)的特性,結(jié)合現(xiàn)有的技術(shù)條件和實(shí)際應(yīng)用,提出一種用直接與CMOS圖像相連,采用Flash為圖像存儲(chǔ)器,RS232為圖像傳輸協(xié)議,并且多幀圖像拼接成一幅圖像的方法,實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控。所選器件價(jià)格低廉,硬件連接簡(jiǎn)單,從而成本非常低。該系統(tǒng)可單獨(dú)作為獨(dú)立的圖像采集系統(tǒng),又能以非常低的成本附加到其他物聯(lián)網(wǎng)節(jié)點(diǎn)上,應(yīng)用領(lǐng)域廣泛。

1 系統(tǒng)總體方案

圖像采集系統(tǒng)是根據(jù)某種特定的使用目的和應(yīng)用條件,由圖像采集、圖像存儲(chǔ)、圖像傳輸和系統(tǒng)控制等相關(guān)電子設(shè)備和傳輸介質(zhì)組成的一個(gè)有機(jī)整體。圖1是系統(tǒng)的總體框圖,系統(tǒng)主要由單片機(jī)、圖像、Flash圖像存儲(chǔ)器組成。圖像負(fù)責(zé)圖像的采集,采集的圖像數(shù)據(jù)由單片機(jī)實(shí)時(shí)讀取。圖像傳感器的分辨率為240×320,數(shù)據(jù)量為150 KB,而單片機(jī)的內(nèi)部RAM只有2K,存不下一幀圖像,所以選擇了一款Flash作為圖像存儲(chǔ)器,單片機(jī)將讀取的圖像數(shù)據(jù)轉(zhuǎn)存人Flash圖像存儲(chǔ)器。由于圖像數(shù)據(jù)轉(zhuǎn)存入Flash需要占用數(shù)據(jù)采集的時(shí)間,這就導(dǎo)致單片機(jī)會(huì)錯(cuò)過(guò)部分?jǐn)?shù)據(jù)的采集,根據(jù)所采圖像為靜態(tài)圖像這一應(yīng)用背景,錯(cuò)過(guò)的數(shù)據(jù)可通過(guò)下兩幀圖像替代,由此確定了用3幀圖像拼成一幅圖像的算法。等一幅圖像采集轉(zhuǎn)存完畢,單片機(jī)再?gòu)腇lash圖像存儲(chǔ)器中讀取圖像數(shù)據(jù),通過(guò)RS232 口傳輸?shù)缴衔粰C(jī)。

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

2.1 圖像傳感器

系統(tǒng)采用了SP0828 CMOS芯片作為圖像傳感器。SP0828是一款完整的1/13英寸QVGA格式COMS圖像傳感器芯片。它支持RGB565、YUV422、Raw Bayer、Format圖像格式,最高像素為240×320,最高幀速率為30幀/s,能夠滿足物聯(lián)網(wǎng)傳感節(jié)點(diǎn)圖像采集的要求。SP0828可工作在3種模式下:普通sensor、EMI、SPI;3種模式的選擇可通過(guò)I2C總線控制內(nèi)部可編程功能寄存器來(lái)實(shí)現(xiàn)。該系統(tǒng)采用SPI模式,RGB565格式圖像輸出。

2.2 STM8單片機(jī)

STM8單片機(jī)是系統(tǒng)的控制中心,協(xié)調(diào)著整個(gè)系統(tǒng)的運(yùn)作,所以必須要有較高的響應(yīng)速度和豐富的外設(shè)資源。系統(tǒng)選用高性能、低功耗的8位微處理器STM8S207S6。它運(yùn)行速度快,最高可以達(dá)到24 M。它的內(nèi)部資源豐富,擁有32 KB的系統(tǒng)內(nèi)可編程Flash,2 KB的內(nèi)部RAM,l024 B的EEPROM,2個(gè)可編程的串行UART接口,一個(gè)最高速度可達(dá)400 bit/s的硬件I2C接口,一個(gè)可工作在主從模式的最高速度可達(dá)10 bit/s的硬件SPI接口等。并且它的開發(fā)工具簡(jiǎn)單,易于使用,價(jià)格便宜,開發(fā)資料多。因此,選用該款單片機(jī)不僅不需要為系統(tǒng)配置額外器件,而且大大降低了整個(gè)系統(tǒng)的成本及縮短了開發(fā)時(shí)間。

2.3 Flash圖像存儲(chǔ)器

STM8S207S6內(nèi)部RAM為2 KB,一幅240×320分辨率圖像的大小為150 KB,內(nèi)部RAM不足以存下該分辨率的圖像,所以系統(tǒng)選用一款Flash存儲(chǔ)器SST25VF020作為外掛圖像存儲(chǔ)器。SST25VF020是SST25VF系列產(chǎn)品中的一員,其芯片具有以下特點(diǎn):總?cè)萘繛?56 KB;單電源讀和寫操作,工作電壓為2.7~3.3 V;低功耗,工作電流為7 mA,等待電流為3μA;SPI接口,可接受SPI時(shí)鐘頻率高達(dá)33 MHz,快速編程、快速擦除、快速讀取等,該系列特點(diǎn)滿足圖像存儲(chǔ)的要求。

2.4單片機(jī)與圖像傳感器、圖像存儲(chǔ)器的連接

STM8單片機(jī)與SP0828 COMS圖像傳感器、SST25VF020 Flash圖像存儲(chǔ)器的硬件連接如圖2所示。

STM8單片機(jī)通過(guò)硬件12C接口對(duì)圖像傳感器內(nèi)部寄存器進(jìn)行初始化,通過(guò)硬件SPI接口接收?qǐng)D像傳感器發(fā)送的數(shù)據(jù)。因?yàn)镕lash圖像存儲(chǔ)器也是SPI接口,所以圖像存儲(chǔ)器與圖像傳感器分時(shí)復(fù)用STM8單片機(jī)的硬件SPI接口。

各接口代表的意義如下:

SPI_CS:圖像傳感器SPI接口片選,低電平有效,只有該接13為低電平,圖像傳感器才能接收單片機(jī)的SPI時(shí)鐘,然后往單片機(jī)傳送數(shù)據(jù)。該引腳連接單片機(jī)的PD7普通I/O口。

ECLK:圖像傳感器的主時(shí)鐘輸入引腳,連接單片機(jī)的CLK_CCO口。單片機(jī)通過(guò)該口為圖像傳感器提供16 MHz的主時(shí)鐘。SPI_RD:圖像傳感器的圖像控制信號(hào)輸入腳,該引腳控制圖像傳感器下一幀圖像是否到來(lái),高電平有效,該13連接單片機(jī)的PB6普通I/O口。

SPI_CLK:圖像傳感器SPI數(shù)據(jù)輸出的時(shí)鐘信號(hào)輸入腳,該引腳連接單片機(jī)硬件SPI的SPI_SCK口。單片機(jī)通過(guò)該引腳為圖像傳感器提供采數(shù)時(shí)鐘,圖像傳感器根據(jù)采數(shù)時(shí)鐘向單片機(jī)傳輸數(shù)據(jù)。

SPI_SDA:圖像傳感器SPI數(shù)據(jù)輸出的數(shù)據(jù)信號(hào)輸出腳,該引腳連接單片機(jī)硬件SPI的SPI_MISO口。單片機(jī)通過(guò)該引腳采集數(shù)據(jù)。

SPI_INT:圖像傳感器的中斷申請(qǐng)信號(hào)。圖像傳感器把每幀圖像分成幾次中斷,單片機(jī)響應(yīng)中斷,在中斷服務(wù)程序里接收數(shù)據(jù)。該引腳連接單片機(jī)PIM具有外部中斷接收功能的I/O口。

SBDA、SCLK:圖像傳感器I2C接口的數(shù)據(jù)引腳和時(shí)鐘引腳,連接單片機(jī)硬件I2C接口的I2C_SDA和I2C_SCL,是單片機(jī)對(duì)圖像傳感器內(nèi)部寄存器讀寫操作的數(shù)據(jù)總線和時(shí)鐘總線。

PWDN:圖像傳感器初始化信號(hào)線,該引腳連接單片機(jī)的PC2普通I/0口。該信號(hào)線要在圖像傳感器上電的過(guò)程中拉低,只有該引腳在低電平的情況下,圖像傳感器才能正常工作。

SST_CE:Flash SPI接口的片選引腳,低電平有效,該引腳連接單片機(jī)的PD0普通I/O口。

SST_SO、SST_SI:Flash SPI接口的數(shù)據(jù)引腳,連接單片機(jī)SPI_MISO和SPI_MOSI口,與圖像傳感器的SPI_SDA分時(shí)復(fù)用SPI_MISO口。

SST_SCK:Hash SPI接口的時(shí)鐘信號(hào)輸入引腳,連接單片機(jī)的SPI_SCK口,與圖像傳感器的SPI_CLK分時(shí)復(fù)用SPI_SCK口。

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

3.1主程序的設(shè)計(jì)

系統(tǒng)軟件可分為:圖像傳感器模塊、圖像存儲(chǔ)器模塊、圖像的多幀采集和拼接模塊、串口數(shù)據(jù)傳輸模塊。其基本流程圖如圖3所示。為了盡量提高單片機(jī)的處理速度,將系統(tǒng)的時(shí)鐘頻率設(shè)置為最高,即16 MHz。

3.2 圖像傳感器模塊軟件設(shè)計(jì)

根據(jù)SP0828 CMOS數(shù)字圖像傳感器的工作原理和工作流程,圖像傳感器模塊包括了圖像傳感器上電初始化、圖像傳感器寄存器初始化、圖像數(shù)據(jù)采集3個(gè)部分。

3.2.1 圖像傳感器上電初始化

圖像傳感器上電初始化,就是圖像傳感器在上電結(jié)束但尚未開始工作的時(shí)候,對(duì)圖像傳感器芯片提供主時(shí)鐘、初始化信號(hào)線拉低等一系列的操作,以使圖像傳感器能夠正常工作或者獲得最佳的工作狀態(tài)。其主要流程如圖4所示。

DVDD28AVDD連接電源,DVDD28AVDD拉高即是上電。在上電之后,延時(shí)至少10岬,初始化信號(hào)線PWDN拉低。然后延時(shí)至少110μs,單片機(jī)為圖像傳感器提供主時(shí)鐘,為使圖像傳感器工作在最快的速度,單片機(jī)為圖像傳感器提供最高16 MHz的時(shí)鐘。最后延時(shí)至少20 clock,單片機(jī)通過(guò)I2C接口對(duì)圖像傳感器內(nèi)部寄存器進(jìn)行初始化。上電結(jié)束。

3.2.2 圖像傳感器內(nèi)部寄存器初始化

CMOS圖像傳感器采用I2C總線控制其各項(xiàng)功能,簡(jiǎn)單、快捷。I2C總線也是目前圖像傳感器采用最普遍的控制方式。用戶可以通過(guò)I2C總線改變圖像傳感器內(nèi)部可編程寄存器的缺省參數(shù)來(lái)設(shè)置圖像傳感器的工作方式,如時(shí)鐘、幀率、曝光、對(duì)比度、亮度等。I2C總線是芯片間串行數(shù)據(jù)傳輸總線,它只用一根數(shù)據(jù)線SDA和一根時(shí)鐘線SCL即可實(shí)現(xiàn)完善的雙工同步數(shù)據(jù)傳輸。I2C總線規(guī)定,主控制器發(fā)送起始信號(hào)表明一次數(shù)據(jù)傳輸?shù)拈_始,然后為尋址字節(jié),尋址字節(jié)由高7位地址位和低1位方向位組成。方向位表明主控制器與被控制器之間的數(shù)據(jù)傳輸方向,當(dāng)該位為“0”時(shí)表明主控制器對(duì)被控制器的寫操作,為“1”時(shí)表明主控制器對(duì)被控制器的讀操作。尋址字節(jié)后是按照指定地址讀寫操作的數(shù)據(jù)字節(jié)與應(yīng)答位。數(shù)據(jù)傳送完成后主控制器必須發(fā)送終止信號(hào)。I2C協(xié)議的時(shí)序如圖5所示。

STM8單片機(jī)有專門的硬件I2C接口,因此可通過(guò)該接口實(shí)現(xiàn)與圖像傳感器的通信。該系統(tǒng)中STM8單片機(jī)的I2C_SDA數(shù)據(jù)線和I2C_SCL時(shí)鐘線分別連接圖像傳感器的SBDA數(shù)據(jù)傳輸口和SCLK時(shí)鐘傳輸口。通過(guò)上述對(duì)I2C協(xié)議的分析,設(shè)計(jì)了如圖6所示的I2C總線數(shù)據(jù)傳輸流程。

I2C總線操作的典型時(shí)序信號(hào)有起始位信號(hào)、終止位信號(hào)、發(fā)送地址、發(fā)送數(shù)據(jù)、接收數(shù)據(jù),所有的時(shí)序信號(hào)都是通過(guò)對(duì)單片機(jī)硬件I2C內(nèi)部寄存器的操作實(shí)現(xiàn)的。I2C模塊主要功能函數(shù)如下:

(1)讀取圖像傳感器內(nèi)部寄存器的值

unsigned char I2C_Read(unsigned char slave—address,unsigned charreg address,unsigned char slave_read_address)

/* slave_address是圖像傳感器的地址+寫操作符“0”,reg_address是圖像傳感器內(nèi)部寄存器的地址,slave_read_address是圖像傳感器的地址+讀操作符“1”*/

{

unsigned char val;

I2C_Start();//啟動(dòng)I2C總線,I2C_CR2寄存器最低位置l

I2C_SendDAdr(slave_address);//發(fā)送圖像傳感器的地址+寫操作符“0”

I2C_SendDat(reg_address);//發(fā)送內(nèi)部寄存器的地址

I2C_Start();//啟動(dòng)I2C總線,I2C_CR2寄存器最低位置1

I2C_SendDAdr(slave_read_address);//發(fā)送圖像傳感器的地址+讀操作符“1”

vai=12C_RcvDat();//從I2C接口讀取數(shù)據(jù)

I2C_stop();//釋放I2C總線,I2C_CR2寄存器次低位置1

retunl val;

}


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 傳感器 單片機(jī)

評(píng)論


相關(guān)推薦

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

關(guān)閉