餐廳顧客服務(wù)終端
摘要:提出了一種基于以太網(wǎng)技術(shù)的高檔餐廳顧客服務(wù)終端的DSP解決方案,實(shí)現(xiàn)了瀏覽菜單、顧客點(diǎn)餐、預(yù)約用餐、網(wǎng)絡(luò)訂餐、終端娛樂、語音留言等服務(wù)。
關(guān)鍵詞:餐廳終端;以太網(wǎng);VDK;音視頻編解碼
引言
在高檔酒店客人坐在圓形的餐桌旁,通過觸摸面前的電腦屏幕選擇食物,不久選中的食物便通過軌道輸送到客人面前。這一自動(dòng)點(diǎn)餐系統(tǒng)避免了人工服務(wù)造成的等待、服務(wù)態(tài)度等問題,同時(shí)提供了強(qiáng)大的娛樂功能。同樣,該系統(tǒng)也適合于娛樂及辦公場所,大家可以在各自的包間或辦公室很方便地點(diǎn)餐。
系統(tǒng)功能
系統(tǒng)框圖示于圖1。Blackfin處理器是專門為滿足當(dāng)今嵌入式音頻、視頻和通信應(yīng)用計(jì)算要求和低功耗條件設(shè)計(jì)的嵌入式處理器[1]。系統(tǒng)包含有一片Blackfin系列雙核處理器ADSP-BF561[2],視頻采集解碼芯片ADV7183B,音頻編解碼芯片ADV1836A,SDRAM數(shù)據(jù)存儲(chǔ)器,F(xiàn)LASH程序存儲(chǔ)器,以太網(wǎng)芯片LAN91C111,LCD觸摸屏,SD卡、UART接口,按鍵,指示燈等。
系統(tǒng)通過擴(kuò)展了SD卡,移植了FAT文件系統(tǒng),作為照片、視頻、電子書等數(shù)據(jù)的存儲(chǔ)。通過ADSP-BF561內(nèi)部的SPI總線,從SD卡內(nèi)部將數(shù)據(jù)讀到SDRAM里,同樣,SDRAM的數(shù)據(jù)也可以通過SPI總線寫回到SD卡內(nèi)部。
從SD卡讀到SDRAM內(nèi)部的菜品的圖片,通過一些處理,轉(zhuǎn)化成適合320×240彩色LCD顯示的RGB-24Bit格式的圖像數(shù)據(jù),之后,通過并行外設(shè)接口(PPI)送給LCD控制器,進(jìn)行菜品圖片的顯示。
系統(tǒng)擴(kuò)展了LAN91C111芯片作為網(wǎng)絡(luò)主控芯片。ADSP-BF561通過外部接口擴(kuò)展總線(EBIU),與LAN91C111進(jìn)行讀寫通訊。LAN91C111的網(wǎng)絡(luò)輸出經(jīng)過網(wǎng)絡(luò)變壓器后,接到RJ-45接口上,實(shí)現(xiàn)了網(wǎng)絡(luò)的硬件連接。LAN91C111芯片通過DMA方式和中斷引腳,與ADSP-BF561進(jìn)行數(shù)據(jù)的傳輸。軟件方面,通過VDK實(shí)時(shí)內(nèi)核上移植的LWIP,進(jìn)行TCP/IP協(xié)議的開發(fā)。
視頻數(shù)據(jù)(PAL制)通過同軸電纜接入到視頻解碼器ADV7183內(nèi)部,經(jīng)過采樣,視頻解碼,輸出ITU-656格式的圖像數(shù)據(jù)。圖像數(shù)據(jù)通過PPI,以8bit的數(shù)據(jù)寬度,SCLK/2的速度,DMA方式傳輸?shù)絊DRAM中。利用PPI的同步數(shù)據(jù)口與ADV7183的幀同步、場同步、行同步等信號(hào)進(jìn)行相連,完成視頻數(shù)據(jù)的同步。對(duì)ADV7183的上電配置是通過ADSP-BF561的通用編程接口(PF)實(shí)現(xiàn)I2C協(xié)議,完成數(shù)據(jù)格式、增益控制、曝光控制等配置。
從視頻解碼器ADV7183讀到SDRAM的視頻數(shù)據(jù)是ITU-656格式的(UYVY4:2:2格式)經(jīng)過YUV到RGB的算法變換,轉(zhuǎn)變成適合彩屏LCD顯示的RGB24bit數(shù)據(jù),通過PPI傳輸給LCD控制器,實(shí)現(xiàn)視頻的采集和播放。
顧客的語音留言通過麥克風(fēng)輸入到音頻編解碼器AD1836中,經(jīng)過音頻A/D的采樣、量化、解碼后,通過DSP的Sport口傳輸?shù)絊DRAM中進(jìn)行暫時(shí)的存儲(chǔ)[3],之后,通過MDMA傳輸?shù)絊D卡中,進(jìn)行顧客意見的語音保存。AD1836通過ADSP-BF561的串行外設(shè)接口(SPI)配置成44kHz的采樣率、16bit的采樣寬度。
SD卡中的音頻數(shù)據(jù)(歌曲)通過SPI讀取到SDRAM中,由ADSP-BF561解碼后,通過串口(SPORT)以DMA方式,傳輸給AD1836音頻編碼器,再通過揚(yáng)聲器或者耳機(jī)輸出,實(shí)現(xiàn)了歌曲的播放。
此外,系統(tǒng)擴(kuò)展了NAND Flash作為大容量的數(shù)據(jù)存儲(chǔ),擴(kuò)展了4×4鍵盤和指示燈,擴(kuò)展了Flash作為程序固化,擴(kuò)展了消防信息報(bào)警的接口。
圖1 系統(tǒng)框圖
系統(tǒng)功能如下:
瀏覽菜單:菜品圖片通過SD卡,以BMP格式進(jìn)行存儲(chǔ)。當(dāng)用戶瀏覽菜單的時(shí)候,ADSP-BF561通過菜品的文件名,讀取SD卡中對(duì)應(yīng)的菜品的圖片,顯示在彩屏LCD上。顧客可以根據(jù)菜單進(jìn)行選擇菜品進(jìn)行瀏覽,菜品也可以滾動(dòng)的播放。
顧客點(diǎn)餐:顧客通過瀏覽菜單菜品的圖片,選擇自己滿意的菜品,之后選擇點(diǎn)餐按鈕,即可以實(shí)現(xiàn)點(diǎn)餐功能。此外,顧客還可以通過網(wǎng)絡(luò)進(jìn)行點(diǎn)餐和預(yù)定菜品,實(shí)現(xiàn)點(diǎn)餐的智能化和靈活化。
娛樂功能:終端提供了強(qiáng)大的娛樂功能,包括:聽音樂、閱讀電子書、觀看菜品制作過程視頻等等。顧客在等餐的過程中,可以通過觸摸屏選擇這些娛樂功能,緩解等餐過程中焦急的心情,也達(dá)到了放心愉快用餐的目的。
語音留言和播放:顧客在用餐結(jié)束后,對(duì)餐廳的反饋意見可以通過語音的形式,由麥克風(fēng)輸送給音頻解碼芯片AD1836,經(jīng)過音頻A/D采樣、量化、解碼后,存儲(chǔ)在SDRAM中,之后通過存儲(chǔ)在NAND Flash中,實(shí)現(xiàn)用戶意見的保存。餐廳經(jīng)營者可以通過菜單把用戶的語音留言播放出來,根據(jù)用戶的意見。
網(wǎng)絡(luò)功能:系統(tǒng)擴(kuò)展了LAN91C111作為網(wǎng)絡(luò)主控芯片。在軟件上,在VDK內(nèi)核的基礎(chǔ)上移植了LWIP作為網(wǎng)絡(luò)主要結(jié)構(gòu),實(shí)現(xiàn)了TCP/IP在ADSP-BF561上的移植[4],完成了C-S(客戶端-服務(wù)器)模型下的網(wǎng)絡(luò)Socket的建立、連接、傳輸、斷開等功能。并且,在標(biāo)準(zhǔn)的TCP/IP的基礎(chǔ)上,開發(fā)了應(yīng)用層協(xié)議,實(shí)現(xiàn)了點(diǎn)餐終端與上位機(jī)電腦直接的數(shù)據(jù)的傳輸。
軟件設(shè)計(jì)
ADSP-BF561上實(shí)現(xiàn)的軟件通過采用VDK創(chuàng)建線程,線程之間通過信號(hào)量(semaphore)和消息(message)來傳遞信息和完成線程的同步。利用硬件標(biāo)志(device flag)來完成外設(shè)和DSP的同步。利用中斷和中斷嵌套來處理DMA以及突發(fā)事件。通過對(duì)每個(gè)應(yīng)用程序創(chuàng)建一個(gè)線程,用線程的優(yōu)先級(jí)和消息進(jìn)行互相的調(diào)度和管理,并且,編寫ADV7183,AD1836及LAN91C111等設(shè)備的驅(qū)動(dòng),用優(yōu)先級(jí)管理中斷服務(wù)程序,調(diào)用VDK的API函數(shù)。雙核軟件結(jié)構(gòu)示于圖2。
圖2 雙核軟件結(jié)構(gòu)
程序采用了菜單結(jié)構(gòu),上電初始化后顯示主菜單,通過用戶的對(duì)觸摸屏的點(diǎn)擊,開始顯示二級(jí)子菜單,然后用戶可以返回上級(jí)菜單和跳轉(zhuǎn)到下級(jí)子菜單。程序最多有5級(jí)菜單,為用戶提供了一個(gè)良好的人機(jī)交互的界面。主程序流程示于圖3。
圖3 主程序流程
在網(wǎng)絡(luò)傳輸點(diǎn)餐信息方面,DSP端程序主要是在VDK內(nèi)核上通過LWIP移植了TCP/IP協(xié)議簇。VDK作為一個(gè)同Visual DSP++一起發(fā)售的內(nèi)核,很好地集成到了 VisualDSP++中。在VDK的基礎(chǔ)上,通過開發(fā)Socket服務(wù)器程序,實(shí)現(xiàn)了點(diǎn)餐信息的網(wǎng)絡(luò)傳輸及網(wǎng)絡(luò)點(diǎn)餐的功能。
程序的加載是指把程序固化在FLASH中,在上電后,程序能脫離開仿真器獨(dú)立的加載和運(yùn)行,這一步是任何一個(gè)產(chǎn)品開發(fā)過程中必須做到的工作。ADSP-BF561的加載過程非常的復(fù)雜,主要分為:1、簡單程序的加載;2、單核程序的加載;3、雙核程序的加載;4、復(fù)雜的程序(雙核,程序運(yùn)行在外存中)加載。VDK內(nèi)核下的LWIP程序,以及視音頻的采集、編解碼等等,巨大的程序量使程序必須在外存中運(yùn)行,而且必須采用雙核處理器來增加處理性能,本設(shè)計(jì)的程序加載屬于最復(fù)雜的第4類加載。在程序的加載過程中,我們從簡單的程序開始反復(fù)的試驗(yàn),逐步的了解ADSP-BF561的加載過程,通過閱讀大量的資料,與ADI的國內(nèi)和國外的技術(shù)支持進(jìn)行了聯(lián)系,最終解決了這個(gè)難題。
結(jié)語
系統(tǒng)充分利用雙核DSP-BF561的硬件資源,使得Blackfin系列DSP的音視頻處理性能得到充分的發(fā)揮。通過合理的設(shè)計(jì)了DSP外圍的器件,實(shí)現(xiàn)了音頻的采集與播放、視頻的采集與顯示、觸摸屏的互動(dòng)、SD卡和NAND flash等大容量存儲(chǔ)器的使用。采用了VDK內(nèi)核管理程序的進(jìn)程,在DSP上移植了TCP/IP協(xié)議簇,實(shí)現(xiàn)了點(diǎn)餐信息的網(wǎng)絡(luò)傳輸及網(wǎng)絡(luò)點(diǎn)餐的功能。存儲(chǔ)在終端的菜品的海量圖片可以動(dòng)態(tài)的瀏覽和播放。提供了強(qiáng)大的娛樂功能。顧客可以在用餐后通過終端對(duì)菜品進(jìn)行語音評(píng)價(jià)。
采用該系統(tǒng)實(shí)現(xiàn)真正意義上的“無人智能餐廳”。
參考文獻(xiàn):
[1] 高峰. ADI主打Blackfin匯聚多種處理功能[J]. 電子產(chǎn)品世界,2005,(23)
[2] ADI拓展Blackfin雙核嵌入式處理架構(gòu)[J]. 電子產(chǎn)品世界, 2005,(11)
[3] 黃存東,劉宜東. 基于Blackfin雙核處理器的音頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 中國科技信息, 2007,(05)
[4] 基于ADI Blackfin處理器的μClinux內(nèi)核[J]. 世界電子元器件, 2006,(12)
[5] 陽富民,黃涌,涂剛. 基于ADSP-BF561的雙核通信研究[J]. 計(jì)算機(jī)工程與科學(xué), 2007,(03)
評(píng)論