摘要:利用臺灣凌陽公司新一代16 位單片機SPCE061A的快速數(shù)據(jù)處理能力和具有語音功能的特點,結(jié)合糧食的介電特性,設(shè)計出智能化的糧食水分測試儀。該測試儀采用電容測量法,對測量信號的非線性和溫度漂移進行了數(shù)字化的修正和補償。并根據(jù)測試結(jié)果判斷是否與標準值一致,進行語音提示。
 關(guān)鍵詞:語音提示; 介電特性; SPCE061A 單片機
 中圖分類號:TP93412 文獻標識碼: B 文章編號: 100327241 (2004) 1120067203
 1 引言
 糧食中的水分按物理性質(zhì)可分為結(jié)合水(結(jié)晶水) 和游離水(自由水)。結(jié)合水是在糧粒生長過程中自然形成的,存在于糧食細胞內(nèi)與糧粒內(nèi)親水物質(zhì)結(jié)合得很牢固,性質(zhì)很穩(wěn)定,難以解吸,結(jié)合水不參加導電;游離水是通過物理吸附作用凝聚在糧食內(nèi)部的毛細管內(nèi)和分子間隙中的水分,它具有普通水的導電性質(zhì),平時檢測指示的水分指的是游離水。如果不加選擇地購進和儲藏糧食,必然會影響糧食的儲藏周期,導致糧食的過早發(fā)霉、變質(zhì)、腐爛,因此必須時刻在意糧食的水分含量,本文根據(jù)糧食的介電特性,利用凌陽科技公司的SPCE061A單片機的快速運算與處理數(shù)據(jù)的能力和語音功能的特點,設(shè)計了完整的測試方案,它具有低功耗、便于攜帶、具有語音提示功能、操作方便、人機界面友好等特點,可廣泛地應(yīng)用于糧食的調(diào)撥、征購、儲藏、加工等環(huán)節(jié)中。
 2 SPCE061A 單片機簡介
 SPCE061A 是臺灣凌陽科技公司推出的一款以μ nSPTM為核心的基于SOC(System On Chip) 技術(shù)的16位單片機。SPCE061A中包括2K字節(jié)的SRAM和32K字節(jié)的閃存ROM; 32 位可編程的多功能I/ O 端口;兩個16位可編程定時器/ 計數(shù)器;14 個中斷源,兩級優(yōu)先級,三種中斷類型;32768Hz實時時鐘;低電壓復位/監(jiān)測功能;可編程的看門狗功能;7 通道10 位A/ D 輸入和單通道內(nèi)置麥克風放大器和自動增益控制AGC功能的聲音A/ D 轉(zhuǎn)換器;雙通道10 位D/ A 音頻轉(zhuǎn)換器;具有ICE( In Circuit Emula2tion)接口,能夠方便的實現(xiàn)在線??真和程序的下載; SPCE061A在2. 6~3. 6V 工作電壓范圍內(nèi)的工作頻率范圍為0.32~49.152MHz ,較高的數(shù)據(jù)處理速度使SPCE061A 能夠非常容易地、快速地處理復雜的數(shù)字信號, SPCE061A能夠?qū)崿F(xiàn)用于處理數(shù)字信號的16 位3 16位的內(nèi)積運算,因此非常適合于數(shù)字語音識別和應(yīng)用領(lǐng)域。凌陽的指令系統(tǒng)采用精簡指令集,它以字為單位,從而格式緊湊、靈活;執(zhí)行時間短。由此可見,SPCE061A是一款以單片機的價格獲得DSP 處理速度的具有高性價比的單片機。
 3 系統(tǒng)軟硬件設(shè)計
 3. 1 系統(tǒng)的硬件設(shè)計
 系統(tǒng)的硬件結(jié)構(gòu)圖如圖1 所示:  
 
圖1 硬件結(jié)構(gòu)圖數(shù)字溫度傳感器采用DALLAS 公司的單總線器件DS18B20   ,用于補償環(huán)境溫度對糧食內(nèi)部水分的影響,環(huán)境溫度直接以“一線總線”的數(shù)字方式傳輸,省去了溫度傳感器的放大處理等環(huán)節(jié),大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量。同時它只占用單片機的一個端口,節(jié)約了系統(tǒng)的硬件資源,因此具有較高的性價比。
 糧食水分的測試通常采用電阻法和電容法,由于非金屬干燥物質(zhì)的電阻很大,通常能達到幾十到幾百兆歐,要使這樣大的電阻流過電流必須在檢測電極兩端加上高電壓,即使這樣獲得的電流也只是微安級的,必須要經(jīng)過放大等處理措施,因此用電阻法檢測獲得的測量信號微弱,影響測量精度。本電路采用電容法進行測量,經(jīng)過實驗的反復驗證,水分傳感器采用圓柱形容器測量糧食的含水量比平板式容器要準確些,操作也較方便,測量值受邊緣效應(yīng)影響較小。信號調(diào)理電路采用555芯片構(gòu)成的非重復觸發(fā)的單穩(wěn)觸發(fā)電路,如圖2 所示: 
 
 
圖2 信號調(diào)理電路糧食中的水分含量越大,糧食的介電常數(shù)就越大,電容值就越大。電容與水分存在一定的函數(shù)關(guān)系,同時在單穩(wěn)觸發(fā)電路中,輸出的脈沖寬度Tpo= RCln3 ,其中C就是要測的電容值,因此水分與脈沖寬度存在函數(shù)關(guān)系,只要測出脈沖寬度就可獲得糧食水分的含量。信號的采樣波形如圖3所示。脈寬的測量由單片機的外中斷和定時中斷來完成,由于SPCE061A 的EXT1 和EXT2 均為負跳沿觸發(fā)中斷, 因此在555的輸出端加**反相器,EXT1 中斷采樣輸出信號的上跳沿,然后再經(jīng)過**反相器,EXT2采樣輸出信號的下跳沿。兩者采樣的時間差就是脈沖寬度。時間差的計算可由單片機的定時中斷來實現(xiàn),在EXT1的中斷程序里開啟定時中斷,在EXT2的中斷程序里關(guān)閉定時中斷。電路中的同步觸發(fā)信號來自單片機的輸出控制端口使采樣和計時保持同步,提高系統(tǒng)的測量精度。 
 
 
圖3 信號采樣波形為了降低功耗,系統(tǒng)采用圖形點陣式LCD顯示。相應(yīng)的數(shù)據(jù)線和控制線與SPCE061A 的16 位并行A口連接,用來顯示測量的糧食的種類、每次測量的數(shù)值、次數(shù)、平均值,以及測量的修正值。整個人機界面清晰、明確。
 按鍵輸入部分由品種選擇鍵、修正值輸入鍵、保存鍵、測試鍵、平均鍵、**鍵等組成,根據(jù)需要,可測量大米、小麥、高粱等不同種類的糧食。
 SPCE061A 的音頻輸出采用雙通道的DAC 方式,即數(shù)字信號通過10 位DAC 轉(zhuǎn)換成3mA驅(qū)動電流的模擬輸出,語音提示信號輸出經(jīng)過驅(qū)動放大以后,通過揚聲器輸出。
 3. 2 系統(tǒng)軟件設(shè)計
 糧食水分測試儀是具有區(qū)域特色的產(chǎn)品,它對不同地區(qū)的糧食作物具有不同的測量基準值,因此在測試之前,需要根據(jù)不同的糧食種類,在不同的狀態(tài)下建立起標準的數(shù)據(jù)庫,這些數(shù)據(jù)可以預先存入系統(tǒng)中,也可以由用戶根據(jù)標準現(xiàn)場設(shè)定。這樣在測試時就與標準值進行比較,判斷是否合乎標準。
 軟件采用模塊化設(shè)計,包括初始化程序、鍵盤掃描、溫度采樣、水分采樣中斷處理、測量數(shù)據(jù)線性化和溫度漂移的補償?shù)臄?shù)據(jù)處理、語音提示等模塊。主程序負責整個系統(tǒng)的協(xié)調(diào)與控制工作,通過調(diào)用不同的模塊完成相應(yīng)的工作。本測試儀以每個品種10次隨機采樣的算術(shù)平均值作為測量結(jié)果,有效地提高了測量的準確性和重復性。在測試完成后就輸出語音提示,判斷所測試的水分為多少并且是否合格。主程序的流程圖如圖4所示: 
 
 
圖4 主程序流程圖4 語音提示系統(tǒng)工作原理
 SPCE061A的音頻輸出有兩種方式,一種是音調(diào)輸出方式,另一種是語音輸出方式,兩者的區(qū)別在于輸出的控制機理不同。前者是通過控制定時器溢出所產(chǎn)生的不同頻率來決定聲波振動次數(shù)的多少,從而決定發(fā)出的聲音音調(diào)的高低;后者是用與聲音數(shù)據(jù)采樣率相同的速率將聲音數(shù)據(jù)通過數(shù)模轉(zhuǎn)換通道還原成音頻電壓或電流輸出,其中聲音數(shù)據(jù)采樣率決定了聲音音質(zhì)的好壞,并決定了聲音數(shù)據(jù)所需要占據(jù)的存儲空間[3] 。提示語音的輸入可以采用兩種方式:一是通過PC 機的聲卡,用麥克風采集語音的3 .wav 文件;二是用SPCE061A系統(tǒng)采集語音信號,通過通信模塊將語音信號傳送到PC機上保存。**種方式*好,因為它能保證語音特征的一致性,從而減少硬件系統(tǒng)不一致帶來的誤差。不管采用哪種方式, 3 . wav文件占用的存儲空間很大,對于微控制器來說想要存儲大量的語音信息顯然是不可能的,必須將音頻文件壓縮。為了方便用戶使用,凌陽公司的SPCE061A 提供了各種音頻壓縮編碼的算法和API 函數(shù)庫,即SACM-LIB。用戶只須了解每個模塊所要實現(xiàn)的功能及參數(shù)的內(nèi)容,然后調(diào)用該API函數(shù)即可實現(xiàn)該功能。凌陽科技公司提供三種不同壓縮率的語音提示的算法,表1 是各種壓縮算法名稱及編碼率類型。 
表1 SPCE061A的語音壓縮算法及編碼率類型
  這三種壓縮算法的區(qū)別在于壓縮率不同、音質(zhì)也不同。SACM A2000     壓縮率相對較小,音質(zhì)較好,相應(yīng)的資源占用較多。SACM S240 的壓縮率*大,音質(zhì)相對較差。SACM     S480介于這兩者之間。本系統(tǒng)在沒有擴展存儲器的情況下,采用SACM S240 方式,它可容納210     秒的語音數(shù)據(jù)。語音播放子程序包括語音播放程序和服務(wù)中斷程序,語音播放程序主要完成D/ A 轉(zhuǎn)換器、TIMERA     定時器和音量的初始化,從ROM里取出預先壓縮好的語音數(shù)據(jù),解壓縮后存放在播放隊列中,中斷服務(wù)程序定時地從播放隊列中讀取數(shù)據(jù),從D/     A 轉(zhuǎn)換器轉(zhuǎn)換后送揚聲器發(fā)出聲音。播放程序如下:
這三種壓縮算法的區(qū)別在于壓縮率不同、音質(zhì)也不同。SACM A2000     壓縮率相對較小,音質(zhì)較好,相應(yīng)的資源占用較多。SACM S240 的壓縮率*大,音質(zhì)相對較差。SACM     S480介于這兩者之間。本系統(tǒng)在沒有擴展存儲器的情況下,采用SACM S240 方式,它可容納210     秒的語音數(shù)據(jù)。語音播放子程序包括語音播放程序和服務(wù)中斷程序,語音播放程序主要完成D/ A 轉(zhuǎn)換器、TIMERA     定時器和音量的初始化,從ROM里取出預先壓縮好的語音數(shù)據(jù),解壓縮后存放在播放隊列中,中斷服務(wù)程序定時地從播放隊列中讀取數(shù)據(jù),從D/     A 轉(zhuǎn)換器轉(zhuǎn)換后送揚聲器發(fā)出聲音。播放程序如下:
 Sound :_proc ;
 r1 = 1 ;
 call F_SACM_S240_Initial ;
 r1 = 8 ;
 call F_SACM_S240_Volume ;
 r1 = [ Speech_1 ] ;
 r2 = dac1 ;
 r3 = Ramp_UpDn_On ;
 call F_SACM_S240_Play ;
 LOOP;
 call F_SACM_S240_ServiceLoop[ syg1 ] ;
 call F_SACM_S240_Status ;
 test r1 ,0x0001 ;
 jz Sound_End ;
 jmp LOOP;
 Sound_End ;
 retf ;
 endp ;
 5 實驗測試結(jié)果
 本測試儀采用浮動三點定標法對各種不同種類的糧食預先定標,用戶在使用時可直接測量,以小麥為例,在不同的水分情況下,實測值與標準值的數(shù)據(jù)比對如表2所示: 
表2實測值與標準值的比對
  經(jīng)過非線性補償和誤差修正,本測試儀的測量誤差≤±0.5 %     ,測量的水分范圍為3~35 % ,重復誤差≤0. 1 % ,使用的溫度范圍為0~40     ℃?;旧线_到國內(nèi)外同類先進產(chǎn)品的技術(shù)指標??蛇m用于多種種類的糧食水分測量,具有比較廣闊的市場前景。
經(jīng)過非線性補償和誤差修正,本測試儀的測量誤差≤±0.5 %     ,測量的水分范圍為3~35 % ,重復誤差≤0. 1 % ,使用的溫度范圍為0~40     ℃?;旧线_到國內(nèi)外同類先進產(chǎn)品的技術(shù)指標??蛇m用于多種種類的糧食水分測量,具有比較廣闊的市場前景。
 參考文獻
 [1 ] 薛鈞義,等. 凌陽十六位單片機原理及應(yīng)用[M] . 北京:北京航空航天大學出版社,2003 ,2
 [2 ] 張永林,等. 糧食水分在線測量技術(shù)評述[J ] . 武漢工業(yè)學院學報,2003 , (12) :36 - 40
 [3 ] 李晶姣. 嵌入式語音技術(shù)及凌陽16 位單片機應(yīng)用[M] . 北京:北京航空航天大學出版社,2003 ,11