基于FPGA-NIOS的多功能留言機(jī)設(shè)計(jì)
摘要:隨著科技的進(jìn)步,人們生活中對(duì)于聯(lián)絡(luò)的需求越來(lái)越高,而傳統(tǒng)基于電話的留言機(jī)在沒(méi)有手機(jī)或電話的情況下具有諸多不便。針對(duì)上述需求,設(shè)計(jì)了一款應(yīng)用于家庭用戶中的多功能留言機(jī)??紤]到FPGA的諸多特點(diǎn),采用可編程邏輯器件(FPGA)和嵌入式軟核NIOS II處理器完成系統(tǒng)設(shè)計(jì)。設(shè)計(jì)基于50MHz的系統(tǒng)時(shí)鐘,利用SOPC定制用戶系統(tǒng),采用軟硬件協(xié)同設(shè)計(jì)的方案,可于2分鐘之內(nèi)完成圖像的采集和JPEG壓縮,通過(guò)觸摸屏方便與用戶間的交互,支持語(yǔ)音留言、留言提示、電子鑰匙、用戶管理、電子時(shí)鐘、語(yǔ)音報(bào)時(shí)、自動(dòng)待機(jī)和屏保等功能。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列;NIOSII;留言機(jī):JPEG
隨著科學(xué)技術(shù)的進(jìn)步,當(dāng)下人們生活中對(duì)于聯(lián)絡(luò)的需求越來(lái)越高。傳統(tǒng)的留言機(jī)設(shè)計(jì)功能單一,靈活性和可靠性受到一定限制。為此考慮設(shè)計(jì)一款應(yīng)用于家庭用戶的多功能留言機(jī),當(dāng)來(lái)訪者留下信息時(shí),主人可以在第一時(shí)間獲知,并可以回家時(shí)查看或者進(jìn)行遠(yuǎn)程控制。FPGA由于其具有靈活的可配置性、成本低、速度快、體積小和擁有豐富的寄存器資源等特點(diǎn)而獲得了廣泛的應(yīng)用。Altera公司為用戶提供了創(chuàng)新的SOPC設(shè)計(jì)理念,其系統(tǒng)設(shè)計(jì)工具SOPC Builder,集成內(nèi)嵌的NIOSII處理器,方便用戶根據(jù)應(yīng)用需求對(duì)NIOSII進(jìn)行裁剪、定制。本設(shè)計(jì)采用基于FPGA的SOPC系統(tǒng),充分利用軟件設(shè)計(jì)的靈活性和硬件設(shè)計(jì)的高效性,具有以下功能:
(1)留言提示:按下采集鍵時(shí),可采集來(lái)訪者的圖像和語(yǔ)音留言,并把圖片以彩信的方式發(fā)送。
(2)時(shí)鐘及手機(jī)號(hào)設(shè)定。
(3)用戶管理。
(4)備忘留言。
(5)真人語(yǔ)音報(bào)時(shí)。
(6)自動(dòng)待機(jī)及屏保。
(7)Windows兼容的存儲(chǔ)文件格式。
1 系統(tǒng)設(shè)計(jì)概述
系統(tǒng)分為語(yǔ)音采集存儲(chǔ)播放、圖像采集存儲(chǔ)、圖像壓縮、彩信傳輸、觸摸屏驅(qū)動(dòng)及顯示等幾大部分。整體系統(tǒng)在架構(gòu)上又可以分為軟件及硬件設(shè)計(jì)兩大部分。系統(tǒng)功能框圖如圖1所示。
設(shè)計(jì)基于Terasic公司的DE2—70平臺(tái),采用Altera公司的Cyclone II系列的FPGA器件和Terasic公司提供的130萬(wàn)像素的CMOS攝像頭、800 400分辨率的觸摸屏以及PTW73型GPRS MODEM。圖像采集采用純硬件實(shí)現(xiàn),以SDRAM作為緩存。NIOSII處理器從SDRAM中讀取采集到的圖像并進(jìn)行JPEG壓縮后由串口通過(guò)彩信貓發(fā)送出去。語(yǔ)音的采集存儲(chǔ)播放由軟件實(shí)現(xiàn),使用Altera公司大學(xué)計(jì)劃的IP核完成對(duì)音頻芯片WM8731的配置。觸摸屏利用用IP核進(jìn)行圖片和字符的顯示控制。系統(tǒng)設(shè)計(jì)中的語(yǔ)音和圖片等信息都存放于SD卡中。對(duì)以上功能采用了如下的一些處理技術(shù)或特點(diǎn):
(1)設(shè)計(jì)基于Avalon總線架構(gòu),充分利用現(xiàn)有的Altera公司提供的IP核資源,包括音頻芯片的配置、VGA控制顯示、存儲(chǔ)器的控制等,并設(shè)計(jì)添加了針對(duì)系統(tǒng)時(shí)鐘、采集端口、觸摸屏端口的IP核。
(2)對(duì)語(yǔ)音信息的采集和播放進(jìn)行速度上的優(yōu)化。由于CPU對(duì)SD卡的讀寫速度較SDRAM慢,故在采集和播放音頻信息時(shí),在SDRAM中單獨(dú)開辟一個(gè)緩存區(qū)用以存放音頻信息。
(3)由于采集到的bmp圖像容量較大,設(shè)計(jì)中采用靜態(tài)圖像壓縮標(biāo)準(zhǔn)JPEG對(duì)圖像進(jìn)行壓縮,以便于圖片進(jìn)行彩信傳輸。
(4)彩信傳輸基于GPRS傳輸協(xié)議和AT指令集,通過(guò)RS232串口與主機(jī)進(jìn)行連接。
(5)系統(tǒng)中的實(shí)時(shí)時(shí)鐘采用硬件方式實(shí)現(xiàn),為CPU提供更多的時(shí)間做其他處理,提高了處理性能。
(6)系統(tǒng)與用戶的交互主要通過(guò)觸摸屏實(shí)現(xiàn)。
(7)設(shè)計(jì)中對(duì)一些耗時(shí)的部分算法進(jìn)行了自定義指令加速,在一定程度上縮短了系統(tǒng)的處理時(shí)間。
2 系統(tǒng)設(shè)計(jì)架構(gòu)及流程
系統(tǒng)基于Avalon總線,采用軟硬件協(xié)同設(shè)計(jì)的方式。圖像采集、對(duì)觸摸屏的配置和系統(tǒng)時(shí)鐘等采用硬件方式實(shí)現(xiàn),其他模塊利用SOPC進(jìn)行定制,完成整個(gè)系統(tǒng)的搭建。系統(tǒng)架構(gòu)圖如圖2所示。
設(shè)計(jì)基于NIOSⅡ處理器,軟件采集發(fā)送功能設(shè)計(jì)流程如圖3所示??傮w設(shè)計(jì)上,軟件可以分為采集發(fā)送部分和系統(tǒng)主菜單,并且設(shè)計(jì)上充分考慮了用戶的需求,增加了諸如語(yǔ)音報(bào)時(shí)、電子時(shí)鐘、定時(shí)播放等功能。
3 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)的功能模塊主要包括以下四個(gè)部分:圖像采集與壓縮;音頻采集和播放;彩信傳輸;觸摸屏驅(qū)動(dòng)及顯示。
3.1 圖像采集與壓縮
圖像采集采用硬件方式實(shí)現(xiàn),基于130萬(wàn)像素的CMOS攝像頭,采集系統(tǒng)結(jié)構(gòu)框圖如圖4所示。采用I2C總線對(duì)攝像頭進(jìn)行配置,SDRAM作為圖像緩存器。由于CMOS攝像頭輸出數(shù)據(jù)格式為Bayer pattern,故需要把其轉(zhuǎn)換為RGB三顏色以便于圖像的顯示、存儲(chǔ)與壓縮。存于SDRAM中的圖像通過(guò)一個(gè)讀取端口與avalon總線連接。采集芯片以25MHz的主時(shí)鐘工作,輸出640 480像素大小的圖像數(shù)據(jù)。雙端口SDRAM控制器工作于100MHz的時(shí)鐘頻率。
當(dāng)完成圖像的采集后,NIOSⅡ處理器通過(guò)avalon總線從SDRAM中讀取圖像像素值并加入bmp格式頭文件以bmp圖片方式存儲(chǔ)于SD卡中。每隔一個(gè)像素點(diǎn)讀取一個(gè)像素值,把bmp以及壓縮后的jpg圖片大小存為320 240。在把圖像從RGB轉(zhuǎn)換為bmp圖片的過(guò)程中,采用了自定義指令的方式縮短了轉(zhuǎn)換的時(shí)間。為了便于圖像以彩信的方式傳輸?shù)接脩羰謾C(jī)上,采甩JPEG標(biāo)準(zhǔn)對(duì)圖像進(jìn)行壓縮,JPEG壓縮采用軟件方式實(shí)現(xiàn)。
3.2 音頻采集播放
音頻部分使用了Altera自帶的IP核完成對(duì)音頻芯片的配置。首先從音頻芯片F(xiàn)IFO中讀取音頻信息存入SDRAM中,加入wav頭文件把采集到的音頻信息以wav的格式存入SD卡中,這樣做的好處是方便在PC機(jī)上對(duì)音頻進(jìn)行操作和移植。
3.3 彩信傳輸
彩信傳輸通過(guò)串口RS232與PTW735奎接。PTW73支持語(yǔ)音及彩信功能的傳輸,并且內(nèi)嵌TCP/IP協(xié)議,支持完整的AT指令集。彩信傳輸流程如圖5所示。
3.4 觸摸屏驅(qū)動(dòng)及顯示
觸摸屏采用友晶公司提供的TRDB-LTM款800 400像素點(diǎn)24位真彩色的液晶屏。觸摸屏的主要功能是完成用戶與系統(tǒng)的交互,包括各種按鍵的控制、圖像的顯示及實(shí)時(shí)時(shí)鐘的顯示。觸摸屏的配置基于純硬件的方式,對(duì)觸摸屏的驅(qū)動(dòng)采用Altera自帶的IP核。由于觸摸屏的掃描
方向?yàn)橛疑辖侵磷笙陆?,因此在顯示圖片或字符串的時(shí)候需要進(jìn)行倒像。
4 系統(tǒng)驗(yàn)證
設(shè)計(jì)采用SOPC Builder進(jìn)行用戶系統(tǒng)的定制,定制好各個(gè)模塊后在QuartusⅡ9.0下進(jìn)行了綜合,利用NIOSⅡ9.0IDE設(shè)計(jì)工具在DE2-70開發(fā)平臺(tái)上進(jìn)行了系統(tǒng)的測(cè)試。系統(tǒng)經(jīng)過(guò)調(diào)試后達(dá)到了預(yù)期的目的,各項(xiàng)功能及其子系統(tǒng)能夠正常地工作?;?0MHz的系統(tǒng)頻率,綜合結(jié)果該設(shè)計(jì)消耗了9915個(gè)邏輯資源。對(duì)系統(tǒng)功能模塊或各個(gè)子模塊分別進(jìn)行了驗(yàn)證,結(jié)果如下:電子時(shí)鐘模塊采用硬件方式實(shí)現(xiàn),其Modelsim SE 6.2b仿真結(jié)果如圖6所示,完整地實(shí)現(xiàn)了包括年、月、日、時(shí)、分、秒的電子時(shí)鐘功能。
圖像采集及壓縮部分的驗(yàn)證結(jié)果如圖7所示。其中圖7(a)為系統(tǒng)采集并轉(zhuǎn)換生成的bmp格式圖片,圖7(b)為系統(tǒng)壓縮后生成的相應(yīng)jpg格式圖片。
5 總結(jié)
設(shè)計(jì)基于DE2-70平臺(tái),利用Quartus II 9.0、NIOS II9.0 IDE、Modelsim SE 6.2b等設(shè)計(jì)工具,采用軟硬件協(xié)同設(shè)計(jì)、自定義指令加速等設(shè)計(jì)技術(shù),實(shí)現(xiàn)了聲音圖像采集播放等功能,并且支持用戶的管理功能。設(shè)計(jì)針對(duì)家庭用戶不僅實(shí)現(xiàn)了用戶留言功能,并且具有近乎實(shí)時(shí)的留言提醒和電子鑰匙等功能,具有實(shí)用價(jià)值。