公務(wù)員期刊網(wǎng) 精選范文 嵌入式電路設(shè)計(jì)教程范文

嵌入式電路設(shè)計(jì)教程精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的嵌入式電路設(shè)計(jì)教程主題范文,僅供參考,歡迎閱讀并收藏。

嵌入式電路設(shè)計(jì)教程

第1篇:嵌入式電路設(shè)計(jì)教程范文

關(guān)鍵詞:PC104;CPLD;多周期同步測(cè)頻;VHDL

中圖分類(lèi)號(hào):TP391;TP368.1文獻(xiàn)標(biāo)識(shí)碼:B

文章編號(hào):1004-373X(2010)02-086-04

Design of Frequency Measuring Module Based on PC104 and CPLD

LIU Guohua1,HE Huafeng1,TIAN Pengfei1,WANG Lin2

(1.The Second Artillery Engineering College,Xi′an,710025,China;

2.The Second Artillery Military Representative Office in the Area of Xiaogan,Xiaogan,432100,China)

Abstract:According to the need of some test system,a high_accuracy frequency measuring module is designed based on PC104 and CPLD.A method of synchronous multi_period frequency measurement is used to achieve the equal precision measure to the tested frequency channel.The hardware circuit of the frequency measuring module is designed.And the detailed VHDL source code to achieve digital frequency using CPLD is given.The interface logic of PC104 bus is compiled using the way of schematic diagram,and the emulation is done by the software of MAXPLUSⅡ.The digital frequency and the interface logic are accurately working showed by the result.This frequency measuring module has been proved to be high_accurate,stable and reliable in the practical application.

Keywords:PC104;CPLD;synchronous multi_period frequency measurement;VHDL

隨著科學(xué)技術(shù)的發(fā)展,嵌入式產(chǎn)品在軍事領(lǐng)域的應(yīng)用日益廣泛,特別是在各種系統(tǒng)的自動(dòng)化測(cè)試領(lǐng)域[1]。頻率測(cè)試是測(cè)試系統(tǒng)中的重要測(cè)試項(xiàng)目,在此設(shè)計(jì)一種基于PC104嵌入式計(jì)算機(jī)和CPLD的高精度測(cè)頻模件,以滿(mǎn)足對(duì)頻率量的測(cè)試。

1 測(cè)頻原理

傳統(tǒng)的頻率測(cè)量方法有兩種[2]:直接測(cè)頻法和測(cè)周期法。直接測(cè)頻法就是在給定的閘門(mén)信號(hào)中填入被測(cè)脈沖,通過(guò)必要的計(jì)數(shù)線路,得到填充脈沖的個(gè)數(shù),從而算出待測(cè)信號(hào)的周期。它的主要缺點(diǎn)是存在被測(cè)脈沖的±1個(gè)誤差,難以兼顧低頻和高頻實(shí)現(xiàn)等精度測(cè)量,所以測(cè)量準(zhǔn)確度較低。測(cè)周期法[3]是在一個(gè)信號(hào)周期內(nèi)記錄下基準(zhǔn)定時(shí)脈沖的個(gè)數(shù),然后換算成頻率f。主要缺點(diǎn)是存在基準(zhǔn)脈沖的±1個(gè)誤差,適用于較低頻率的測(cè)量。

多周期同步測(cè)頻方法[4]是在直接測(cè)頻的基礎(chǔ)上發(fā)展而來(lái)的,其特點(diǎn)在于測(cè)量過(guò)程中實(shí)際閘門(mén)時(shí)間不是固定值,而是被測(cè)信號(hào)周期的整數(shù)倍,即與被測(cè)信號(hào)是同步的,因此消除了對(duì)被測(cè)信號(hào)計(jì)數(shù)產(chǎn)生的±1個(gè)誤差,測(cè)量精度大大提高,而且達(dá)到了在整個(gè)測(cè)量頻段的等精度測(cè)量。多周期同步測(cè)頻法的原理[5,6],如圖1所示。

圖1 多周期同步測(cè)頻法原理

如圖1所示,首先,由控制線路給出閘門(mén)開(kāi)啟信號(hào),計(jì)數(shù)器等到被測(cè)信號(hào)的上升沿到來(lái)時(shí),真正開(kāi)始計(jì)數(shù);然后,兩組計(jì)數(shù)器分別對(duì)被測(cè)信號(hào)和標(biāo)準(zhǔn)頻率信號(hào)計(jì)數(shù)。當(dāng)控制線路給出閘門(mén)關(guān)閉信號(hào)后,計(jì)數(shù)器等到被測(cè)信號(hào)下降沿到來(lái)時(shí)結(jié)束計(jì)數(shù),完成一次測(cè)量過(guò)程??梢钥闯?實(shí)際閘門(mén)與設(shè)定閘門(mén)并不嚴(yán)格相等,但最大差值不超過(guò)被測(cè)信號(hào)的一個(gè)周期。被測(cè)頻率的計(jì)算方法為:

fx=(Nx/N0)f0(1)

式中:Nx為被測(cè)信號(hào)的計(jì)數(shù)值;N0為標(biāo)準(zhǔn)頻率信號(hào)的計(jì)數(shù)值;f0為標(biāo)準(zhǔn)頻率信號(hào)的頻率;τ為閘門(mén)時(shí)間,計(jì)數(shù)器的開(kāi)閉與被測(cè)信號(hào)完全同步,即在實(shí)際閘門(mén)中包含整數(shù)個(gè)被測(cè)信號(hào)的周期,因而不存在對(duì)被測(cè)信號(hào)計(jì)數(shù)的±1個(gè)誤差。

2 硬件電路設(shè)計(jì)

如圖2所示,該模件硬件主要包括PC104控制處理模塊、CPLD測(cè)試模塊、信號(hào)調(diào)理模塊、繼電器驅(qū)動(dòng)模塊和高精度20 MHz晶振。在該系統(tǒng)中為了實(shí)現(xiàn)對(duì)多路頻率信號(hào)的測(cè)量,采用了通過(guò)繼電器控制來(lái)選擇信號(hào)的方案。通過(guò)CPLD控制繼電器的動(dòng)作,接通不同的繼電器開(kāi)關(guān),被測(cè)信號(hào)通過(guò)繼電器之后,由6N137高速光電隔離器隔離、電平轉(zhuǎn)換之后送入CPLD進(jìn)行測(cè)頻。由于CPLD的I/O口驅(qū)動(dòng)電流較小,所以加了一級(jí)ULN2803驅(qū)動(dòng)器來(lái)驅(qū)動(dòng)繼電器的線包。CPLD主要完成的功能是實(shí)現(xiàn)數(shù)字頻率計(jì),采用多周期同步測(cè)頻法完成對(duì)輸入信號(hào)頻率的測(cè)量,并通過(guò)與PC104的接口邏輯,將測(cè)量結(jié)果送給PC104主機(jī),由主機(jī)進(jìn)行頻率值的計(jì)算及顯示,從而完成整個(gè)測(cè)頻模件的功能,CPLD選用Altera公司的EPM7128SQC100芯片。

圖2 模件硬件電路設(shè)計(jì)

3 軟件設(shè)計(jì)

3.1 測(cè)頻電路程序設(shè)計(jì)

對(duì)于CPLD的編程,一般有通過(guò)電路原理圖的方式和通過(guò)硬件描述語(yǔ)言即VHDL語(yǔ)言?xún)煞N方式\。第一種方式直觀性強(qiáng),較好理解,適用于小規(guī)模數(shù)字電路的設(shè)計(jì);第二種方式具有多層次描述系統(tǒng)硬件功能的能力,可讀性強(qiáng),適用于時(shí)序電路及大規(guī)模電路的設(shè)計(jì)。本文采用兩者相結(jié)合的方式,用VHDL語(yǔ)言實(shí)現(xiàn)數(shù)字頻率計(jì)的設(shè)計(jì),用原理圖的方式實(shí)現(xiàn)了PC104主機(jī)的接口邏輯,并進(jìn)行仿真。結(jié)果表明完全可以滿(mǎn)足功能需求,編譯環(huán)境為Max+PlusⅡ。

以下為數(shù)字頻率計(jì)的VHDL語(yǔ)言源代碼[8-10]。設(shè)計(jì)了兩個(gè)32位計(jì)數(shù)器,一個(gè)8位數(shù)據(jù)選擇器及一個(gè)觸發(fā)器控制閘門(mén)信號(hào)。

LIBRARY IEEE;

USE IEEE.STD_LOGIC-1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY frequency IS

PORT (BCLK,TCLK:IN STD_LOGIC;

CLR,CL:IN STD_LOGIC;

SEL:IN STD_LOGIC_VECTOR

(2 DOWNTO 0);

START,EEND:OUT STD_LOGIC;

DATA: OUT STD_LOGIC_VECTOR

(7 DOWNTO 0));

END ENTITY frequency;

ARCHITUCTURE behavior OF frequency IS

SIGNAL BC:STD_LOGIC_VECTOR

(31 DOWNTO 0);

SIGNAL TC:STD_LOGIC_VECTOR

(31 DOWNTO 0);

SIGNAL ENA: STD_LOGIC;

BEGIN

START

CH:PROCESS (SEL)

BEGINCASE SEL IS

WHEN "000"=>DATA

WHEN "001"=>DATA

WHEN "010"=>DATA

WHEN "011"=>DATA

WHEN "100"=>DATA

WHEN "101"=>DATA

WHEN "110"=>DATA

WHEN "111"=>DATA

WHEN OTHERS =>

DATA

END CASE;END PROCESS;

BF:PROCESS (BCLK,CLR)

BEGIN IF CLR=′1′ THEN

BC 0);

ELSIF (BCLK′EVENT AND BCLK=′1′) THEN

IF ENA = ′1′ THEN

BC

END IF;END IF;END PROCESS;

TF:PROCESS (BCLK,CLR)

BEGIN IF CLR=′1′ THEN

TC 0);

ELSIF (BCLK′EVENT AND BCLK=′1′) THEN

IF ENA = ′1′ THEN

TC

END IF;END IF;END PROCESS;

TR:PROCESS (TCLK,CLR)

BEGIN

IF (TCLK′EVENT AND TCLK=′1′) THEN

ENA

END IF;END PROCESS;

EN:PROCESS (ENA)

BEGIN

IF (ENA′EVENT AND ENA=′0′) THEN

EEND

END IF;END PROCESS;

END ARCHITUCTURE behavior;

以上程序通過(guò)軟件編譯后生成數(shù)字頻率計(jì)的邏輯功能模塊圖如圖3所示。

以下是程序的仿真波形(見(jiàn)圖4),標(biāo)準(zhǔn)頻率為20 MHz,被測(cè)信號(hào)頻率為0.1 MHz,仿真時(shí)間設(shè)為120 μs。

圖3 數(shù)字頻率計(jì)邏輯功能模塊圖

圖4 數(shù)字頻率計(jì)仿真結(jié)果

從仿真的結(jié)果可以看出,在定時(shí)脈沖CL到來(lái)時(shí),計(jì)數(shù)器并沒(méi)有開(kāi)始計(jì)數(shù),而是等到被測(cè)信號(hào)的上升沿到來(lái)時(shí),START信號(hào)才開(kāi)啟,計(jì)數(shù)器開(kāi)始計(jì)數(shù),定時(shí)脈沖結(jié)束時(shí),計(jì)數(shù)器也是等到被測(cè)信號(hào)的上升沿到來(lái)時(shí)才結(jié)束計(jì)數(shù),實(shí)現(xiàn)了多周期同步測(cè)頻。圖4中被測(cè)信號(hào)頻率的計(jì)算方法如式(1)所示。與系統(tǒng)預(yù)設(shè)值相同,可以實(shí)現(xiàn)所需的功能。

3.2 PC104接口電路實(shí)現(xiàn)

該設(shè)計(jì)中PC104接口電路部分在Max+PlusⅡ中用原理圖的方式實(shí)現(xiàn)。使用的PC104總線信號(hào)有地址線A0~A9、數(shù)據(jù)線D0~D7、讀寫(xiě)信號(hào)線IOR/IOW、復(fù)位信號(hào)RESET、中斷信號(hào)IRQ3、地址允許線AEN。在PC104總線的接口電路部分遵循一個(gè)原則:就是輸出加鎖存,輸入加緩沖驅(qū)動(dòng)。該接口電路示意如圖5所示,首先地址線的A3~A9位與外部波段開(kāi)關(guān)設(shè)置地址及AEN信號(hào)通過(guò)譯碼電路中的比較器進(jìn)行比較,若相同,則說(shuō)明該模塊被選中,然后根據(jù)A0~A2的譯碼結(jié)果,結(jié)合讀寫(xiě)信號(hào)線產(chǎn)生輸出鎖存器74HC273及輸入緩沖器74HC244的脈沖信號(hào)或使能信號(hào),完成對(duì)數(shù)字頻率計(jì)及外部電路的讀寫(xiě)及控制。在總線工作方式上采用中斷方式。設(shè)計(jì)中,將計(jì)數(shù)器的實(shí)際計(jì)數(shù)結(jié)束信號(hào)EEND作為總線的中斷觸發(fā)信號(hào)IRQ3,以此來(lái)提高PC104總線的工作效率。該接口邏輯的仿真結(jié)果如圖6所示。

從仿真結(jié)果可以看出,接口邏輯可以很好地控制外部繼電器的接通,產(chǎn)生清零及定時(shí)脈沖,并能正確地讀取數(shù)字頻率計(jì)的計(jì)數(shù)結(jié)果,實(shí)現(xiàn)模塊預(yù)定的功能。該接口邏輯已在實(shí)驗(yàn)中得到了驗(yàn)證。

3.3 PC104應(yīng)用程序設(shè)計(jì)

在調(diào)試該模件時(shí)系統(tǒng)采用Windows Me操作系統(tǒng),編譯環(huán)境采用TC 3.0。主程序包括系統(tǒng)初始化、中斷初始化、接通繼電器及產(chǎn)生清零和定時(shí)脈沖模塊。在中斷服務(wù)程序中主要完成了讀取計(jì)數(shù)值、計(jì)算頻率值及顯示打印功能。它的程序流程圖如圖7所示,在此不再列出具體代碼列。

圖5 PC104總線接口邏輯

圖6 PC104總線接口邏輯仿真結(jié)果

圖7 PC104應(yīng)用程序流程圖

4 實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)采用的方法是將板載的20 MHz的晶振在CPLD內(nèi)部分別進(jìn)行2分頻和20分頻,得到10 MHz和1 MHz的信號(hào),然后再將這兩個(gè)頻率信號(hào)分別進(jìn)行2,4,6,8分頻,得到共9個(gè)被測(cè)信號(hào),閘門(mén)時(shí)間為1 s,測(cè)試結(jié)果如表1所示。

表1 測(cè)試結(jié)果

被測(cè)頻率值實(shí)測(cè)值誤差

1 MHz1.000 000 MHz0

5 MHz5.000 000 MHz0

2.5 MHz2.500 000 MHz0

1.25 MHz1.250 000 MHz0

0.625 MHz0.625 000 MHz0

500 kHz500.000 000 kHz0

250 kHz250.000 000 kHz0

125 kHz125.000 000 kHz0

62.5 kHz62.498 295 kHz2.7×10-5

由測(cè)試結(jié)果可以看出,模件的測(cè)頻精度較高,完全能夠滿(mǎn)足一般性測(cè)試系統(tǒng)的需要。

5 結(jié) 語(yǔ)

采用多周期同步測(cè)頻技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了基于PC104總線和CPLD的測(cè)頻模件。給出硬件設(shè)計(jì)原理圖和數(shù)字頻率計(jì)的VHDL程序源代碼,PC104總線的接口邏輯電路,最后得出仿真結(jié)果,編制了PC104總線應(yīng)用程序。實(shí)際應(yīng)用表明,該模件精度高,穩(wěn)定性好,能夠很好地完成對(duì)頻率量測(cè)試的任務(wù)。

參考文獻(xiàn)

[1]黃家彬,訾向勇,劉愛(ài)蘭.基于PC104的脈沖信號(hào)的產(chǎn)生及測(cè)量方法[J].國(guó)外電子測(cè)量技術(shù),2004(6):23-25.

[2]魏鐘記,劉峰,汪銘東.數(shù)字測(cè)頻方法及實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2006(4):28-29.

[3]王宏利,程旭德,徐兵,等.基于AT89C51的智能測(cè)頻儀設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(3):410-412.

[4]章軍,張平,于剛.多周期同步測(cè)頻測(cè)量精度的提高[J].電測(cè)與儀表,2003(6):16-17.

[5]柳義利,周渭,劉海霞.一種高速連續(xù)頻率測(cè)量方法[J].2000(1):32-33.

[6]董婧,陳昊.基于嵌入式微處理器和FPGA的高精度測(cè)頻設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,30(20):160-162.

[7]刑建平,曾繁泰.VHDL程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2005.

[8]雷伏容.VHDL電路設(shè)計(jì)[M].北京:清華大學(xué)出版社,2006.

[9]張亦華,延明.數(shù)字電路EDA入門(mén)――VHDL程序?qū)嵗痆M].北京:北京郵電大學(xué)出版社,2003.

[10]侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1999.

第2篇:嵌入式電路設(shè)計(jì)教程范文

【關(guān)鍵詞】OV7670;NIOS II;圖像數(shù)據(jù);USB傳輸

系統(tǒng)設(shè)計(jì)智能IC卡刷卡拍照考勤系統(tǒng),在用IC卡刷卡考勤的同時(shí),自動(dòng)拍攝刷卡人員的圖像信息并記錄在案,管理員通過(guò)后臺(tái)管理軟件可以查看,對(duì)比每一筆刷卡記錄人員的圖像,從而有效杜絕考勤中的替刷卡的現(xiàn)象,既有指紋考勤機(jī)的防替打卡特性,又有感應(yīng)考勤機(jī)的優(yōu)點(diǎn),實(shí)現(xiàn)現(xiàn)代化的信息化考勤系統(tǒng)。并且解決了生物身份識(shí)別考勤對(duì)環(huán)境和使用人群的限制,可有效適應(yīng)于工廠、工礦企業(yè)等復(fù)雜環(huán)境的應(yīng)用。

1.系統(tǒng)設(shè)計(jì)

本系統(tǒng)采用Altera公司的FPGA進(jìn)行設(shè)計(jì),型號(hào)為Cyclone II系列的EP2C5Q208,其內(nèi)部資源滿(mǎn)足設(shè)計(jì)要求。由FPGA來(lái)控制OV7670傳感器數(shù)據(jù)的采集和傳輸,為快速讀取圖像數(shù)據(jù)及傳輸數(shù)據(jù)提供硬件資源支持。系統(tǒng)機(jī)構(gòu)框圖如圖1-1所示。

OV7670圖像傳感器模塊,體積小、工作電壓低,且提供VGA攝像頭與攝像處理器所有功能的圖像傳感器模組,帶有3Mbit的AL422B存儲(chǔ)器,顯示采用帶有觸摸功能的TFT液晶模塊,SD存儲(chǔ)卡用于存儲(chǔ)照片、圖片等信息。OV7670圖像傳感器輸出的8位RGB數(shù)據(jù)放在AL422B存儲(chǔ)器,再由AL422B讀出來(lái)的數(shù)據(jù)直接驅(qū)動(dòng)彩屏顯示。首先讀取數(shù)據(jù),再分為8位發(fā)送,這樣基本看不到刷圖的痕跡,直接顯示圖像。從拍攝到查看圖像,只需用手觸摸液晶屏操作即可完成,方便了人機(jī)交流。

射頻卡刷卡模塊可以識(shí)別射頻IC卡,刷卡時(shí)可以把刷卡人的圖像拍攝下來(lái),圖像以.BMP格式保存,通過(guò)SPI總線傳送到SD卡存儲(chǔ),或者通過(guò)USB接口傳輸?shù)接?jì)算機(jī)中存儲(chǔ)。USB圖像傳輸采用CY7C68013A芯片實(shí)現(xiàn),傳輸速率達(dá)到USB2.0水平,可實(shí)現(xiàn)圖像高速可靠傳輸,把圖像等相關(guān)考勤數(shù)據(jù)傳輸?shù)接?jì)算機(jī)由相應(yīng)的考勤軟件進(jìn)行識(shí)別處理,方便管理者查詢(xún)單位員工出勤情況。

2.硬件電路設(shè)計(jì)

2.1 電源模塊

電源是電子設(shè)備中必不可少的一部分,電源模塊電路如圖2-1所示。系統(tǒng)電源采用鋰電池供電,J1為鋰電池接口,類(lèi)似移動(dòng)電源供電,而且用萬(wàn)能充之類(lèi)即可充電,使用方便。電路中的電容起耦合作用,AMS1117是3.3V和1.2V穩(wěn)壓芯片,給整個(gè)系統(tǒng)供電穩(wěn)定的工作電壓。

2.2 OV7670模塊

OV7670圖像傳感器的有效像素達(dá)到30萬(wàn),其VGA圖像最高達(dá)到30幀/秒,它靈敏度高適合低照度應(yīng)用及低電壓嵌入式應(yīng)用。傳感器通過(guò)SCCB總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率8位影響數(shù)據(jù)。用戶(hù)可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式。所有圖像處理功能過(guò)程包括伽瑪曲線、白平衡、飽和度、色度等都可以通過(guò)SCCB接口編程。該圖像傳感器應(yīng)用獨(dú)有的傳感器技術(shù),通過(guò)減少或消除光學(xué)或電子缺陷如固定圖案噪聲、托尾、浮散等,提高了圖像質(zhì)量,得到了清晰、穩(wěn)定的彩色圖像。

本模塊是由OV7670與AL422B存儲(chǔ)器組合而成,模塊電路如圖2-2所示。AL422B存儲(chǔ)器有3Mbit內(nèi)存,并配置393216字節(jié)和8位先進(jìn)先出數(shù)據(jù)的存儲(chǔ)器。內(nèi)置的地址和指針控制電路提供簡(jiǎn)單的串行接口總線讀/寫(xiě)存儲(chǔ)器,從而減少芯片間的設(shè)計(jì)工作。WE是寫(xiě)信號(hào),低電平有效,當(dāng)WE為低電平時(shí),AL422B接收到OV7670的8位RGB數(shù)據(jù);當(dāng)WE為高電平時(shí),AL422B再輸出8位數(shù)據(jù)給TFT,從而驅(qū)動(dòng)TFT顯示圖像。WRST是寫(xiě)復(fù)位信號(hào),低電平有效,很多情況下因?yàn)閷?xiě)復(fù)位沒(méi)寫(xiě)好,會(huì)造成顯示圖像的畸形。PCLK是OV7670的像素時(shí)鐘,作為AL422B的寫(xiě)時(shí)鐘。OE是使能信號(hào),低電平有效。RRST是讀復(fù)位信號(hào),低電平有效。RSC是讀時(shí)鐘信號(hào),由系統(tǒng)提供。圖中的DI0-DI7的8位數(shù)據(jù)分別由OV7670輸出的8位數(shù)據(jù)來(lái)提供,DO0-DO7是AL422B的輸出的數(shù)據(jù),驅(qū)動(dòng)TFT顯示圖像,每刷一幀圖像需刷屏320*240個(gè)像素。

2.3 射頻讀卡模塊

射頻讀卡模塊采用FM1702SL射頻基站芯片設(shè)計(jì),如圖2-3所示。設(shè)計(jì)者不必關(guān)心模塊內(nèi)部的設(shè)計(jì),只需要通過(guò)模擬SPI接口發(fā)送命令就可以對(duì)IC卡進(jìn)行讀寫(xiě)等操作。模塊檢測(cè)感應(yīng)到IC卡時(shí)通過(guò)信號(hào)線通知FPGA主控系統(tǒng),系統(tǒng)發(fā)送讀取卡號(hào)命令給模塊,模塊通過(guò)規(guī)定協(xié)議把卡號(hào)的信息上傳到主控系統(tǒng),這樣主控系統(tǒng)就不需要實(shí)時(shí)檢測(cè)是否有卡感應(yīng),節(jié)約系統(tǒng)資源,提高系統(tǒng)工作效率。

3.攝像頭驅(qū)動(dòng)程序設(shè)計(jì)及圖像顯示存儲(chǔ)

3.1 OV7670與FIFO間的數(shù)據(jù)操作

OV7670與FIFO的數(shù)據(jù)傳輸需要一定的時(shí)序:OV7670的場(chǎng)同步接入MCU的外部中斷(上升沿觸發(fā)),這樣當(dāng)一個(gè)場(chǎng)同步到來(lái)時(shí)開(kāi)啟FIFO的寫(xiě)使能,這樣數(shù)據(jù)就在行同步與MCU的控制下按照像素時(shí)鐘依次寫(xiě)入FIFO。當(dāng)一場(chǎng)圖像數(shù)據(jù)進(jìn)入了FIFO以后,也標(biāo)志著下一場(chǎng)數(shù)據(jù)將要來(lái)到,也即下一個(gè)場(chǎng)同步的上升沿即將到來(lái),當(dāng)下一個(gè)上升沿觸發(fā)并進(jìn)入中斷后,MCU應(yīng)該關(guān)掉FIFO的寫(xiě)使能,然后開(kāi)始讀FIFO的數(shù)據(jù),直到數(shù)據(jù)讀完以后再開(kāi)始下一次的數(shù)據(jù)采集。所以調(diào)試的第一步是一個(gè)攝像頭正常工作時(shí)的外中斷。主要注意剛進(jìn)外中斷時(shí)應(yīng)該先清中斷標(biāo)志再進(jìn)行中斷操作,否則系統(tǒng)可能一直處于中斷嵌套中,OV7670與FIFO間的數(shù)據(jù)讀寫(xiě)流程如圖3-1所示。

程序上是通過(guò)捕獲VSYNC場(chǎng)同步實(shí)現(xiàn)前后臺(tái)同步的,場(chǎng)同步是上升沿有效,當(dāng)一個(gè)場(chǎng)同步觸發(fā)MCU中斷以后,在中斷程序中首先開(kāi)啟FIFO的寫(xiě)使能,這時(shí)圖像數(shù)據(jù)便在PCLK像素時(shí)鐘的同步下依次寫(xiě)入FIFO,當(dāng)下一個(gè)場(chǎng)同步到的時(shí)候中斷會(huì)再次觸發(fā),這時(shí)便要關(guān)閉寫(xiě)使能,因?yàn)镕IFO中已經(jīng)緩存了一幀待處理的數(shù)據(jù)。main()函數(shù)中會(huì)一直查詢(xún)FIFO中是否有一幀數(shù)據(jù)的標(biāo)志,具體是通過(guò)判斷VsyncCnt是否等于2實(shí)現(xiàn)的。當(dāng)VsyncCnt等于2時(shí),說(shuō)明FIFO中已經(jīng)緩存了一幀圖片,MCU便從FIFO中取出數(shù)據(jù)進(jìn)行處理(如顯示到LCD或者進(jìn)行顏色識(shí)別等)。當(dāng)處理完一幀數(shù)據(jù)后,MCU會(huì)清零VsyncCnt,并復(fù)位讀寫(xiě)指針,開(kāi)始下一次采集處理。

3.2 圖像存儲(chǔ)顯示與傳輸

本設(shè)計(jì)采用2.8寸的TFT為顯示器。該TFT采用ILI9325/9328作為驅(qū)動(dòng)芯片。該TFT主要用來(lái)顯示系統(tǒng)操作界面、BMP圖片等,其中BMP圖片主要包括拍照得來(lái)的照片和SD卡存的圖片。FPGA通過(guò)操作顯示數(shù)據(jù)RAM和配置TFT的相關(guān)寄存器,即可實(shí)現(xiàn)TFT的顯示。

當(dāng)一幀數(shù)據(jù)緩存進(jìn)入FIFO以后,MCU關(guān)掉FIFO的寫(xiě)使能,轉(zhuǎn)而從FIFO中讀取數(shù)據(jù)進(jìn)行處理,這時(shí)的處理可以是將數(shù)據(jù)寫(xiě)入TFT進(jìn)行顯示或者存入SD卡完成拍照功能。數(shù)據(jù)存儲(chǔ)較簡(jiǎn)單的一種格式是BMP,它只用給每一幀數(shù)據(jù)加上合適的BMP文件頭,然后依次填入圖像數(shù)據(jù)即可。OV7670采集的數(shù)據(jù)經(jīng)過(guò)FPGA做處理后寫(xiě)到CY7C68013的從FIFO,由CY7C68013將數(shù)據(jù)打包發(fā)送到上位機(jī),通過(guò)USB接口實(shí)現(xiàn)圖像數(shù)據(jù)的傳輸。

4.系統(tǒng)調(diào)試結(jié)果與總結(jié)

本系統(tǒng)初步實(shí)現(xiàn)了刷卡拍照考勤系統(tǒng)的設(shè)計(jì),硬件實(shí)物如圖4-1所示。顯示是2.8寸帶有觸摸的TFT液晶屏。在液晶屏右邊就是高速高存儲(chǔ)量的SD卡,可支持的容量為4GB以上。硬件設(shè)備還有USB通信接口,F(xiàn)PGA系統(tǒng)板,OV7670圖像采集傳感器模塊,射頻讀卡模塊。系統(tǒng)工作時(shí)可以把刷卡拍下的照片存于SD卡中,液晶屏可以實(shí)時(shí)顯示采集的畫(huà)面,通過(guò)按鍵操作可以選擇查看存在SD卡中的照片。

系統(tǒng)實(shí)現(xiàn)通過(guò)USB通信芯片把圖像畫(huà)面?zhèn)鬏數(shù)接?jì)算機(jī)中,在拍照考勤系統(tǒng)軟件中實(shí)時(shí)顯示采集的畫(huà)面,如圖4-2所示。軟件操作功能有開(kāi)始、停止圖像傳輸,拍照功能,保存拍下的圖像畫(huà)面,打開(kāi)存在的BMP圖片,設(shè)置照片存儲(chǔ)路徑,還可以進(jìn)行視頻監(jiān)控,把監(jiān)控畫(huà)面保存為AVI視頻文件格式。軟件左邊為動(dòng)態(tài)信息顯示內(nèi)容,軟件右邊為圖像顯示區(qū)域,實(shí)時(shí)顯示采集的圖像信息,圖像是320*240像素,每秒可以更新10幀,畫(huà)面顯示還是比較流暢的。圖像中文字信息清晰可見(jiàn),由圖可知圖像畫(huà)質(zhì)還是比較清晰,可以滿(mǎn)足一般應(yīng)用需要。

參考文獻(xiàn)

[1]夏宇聞.Verilog HDL數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京航空航天大學(xué)出版社,2003,7.

[2]周立功.單片機(jī)與CPLD綜合應(yīng)用技術(shù)[M].北京航空航天大學(xué)出版社,2003,7.

[3]周立功.EDA實(shí)驗(yàn)與實(shí)踐[M].北京航空航天大學(xué)出版社,2007,9.

[4]江國(guó)強(qiáng).EDA技術(shù)與應(yīng)用[M].電子工業(yè)出版社,2006,7.

相關(guān)熱門(mén)標(biāo)簽