浙江大學(xué)軟件學(xué)院 趙 斌 付建雙 葉 威 趙棟棟
目前,我國(guó)的精加工產(chǎn)業(yè)發(fā)展比較落后,資金無(wú)法跟上,關(guān)鍵技術(shù)嚴(yán)重依賴國(guó)外公 司。八音盒音片的精加工技術(shù),涉及到音頻信號(hào)采集、噪聲濾除、電解加工等技術(shù),是多領(lǐng)域系統(tǒng)化的工程,尤其是工廠復(fù)雜環(huán)境下的音頻信號(hào)采集方式、抗電磁干擾技術(shù)、信號(hào)差分傳輸機(jī)制、噪聲抑制機(jī)制以及電路板抗干擾機(jī)制。
為此,采用STM32為處理器,運(yùn)用已有的電磁效應(yīng)采集技術(shù),可以實(shí)現(xiàn)面向工廠復(fù)雜環(huán)境的音頻采集系統(tǒng)。音頻采集系統(tǒng)采用音頻信號(hào)轉(zhuǎn)換、FFT算法、抗干擾設(shè)計(jì)等技術(shù),從而為電解精加工產(chǎn)業(yè)提供高效、可靠、智能的算法和設(shè)備,提高電解精加工生產(chǎn)的效率,增強(qiáng)電解精加工的穩(wěn)定性,從而為八音盒機(jī)芯加工系統(tǒng)提供一套完整的音頻信號(hào)采集方案。
音片精加工系統(tǒng)以stm32為處理器控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)來(lái)對(duì)八音盒機(jī)芯音片的18根音鍵進(jìn)行依次撥動(dòng),讓其切割磁力線,產(chǎn)生感應(yīng)電流來(lái)進(jìn)行采樣。處理器對(duì)采集的數(shù)據(jù)進(jìn)行FFT運(yùn)算,濾除環(huán)境噪聲,可以得到音頻信號(hào)的頻率。然后將音頻頻率通過(guò)Modbus協(xié)議發(fā)送到PLC中。PLC將收到的頻率輸出到觸摸屏顯示,并與用戶預(yù)先輸入的標(biāo)準(zhǔn)頻率進(jìn)行比較,計(jì)算出音頻差值得出電解脈沖數(shù),進(jìn)而控制電解系統(tǒng)進(jìn)行加工,使音片的振動(dòng)頻率與標(biāo)準(zhǔn)頻率相同(如圖1所示)。
(1)STM32核心板
根據(jù)用戶現(xiàn)有的音鍵撥動(dòng)系統(tǒng)采集音頻,并進(jìn)行快速頻率分析,得出基頻頻率,與標(biāo)頻對(duì)比,得出差頻,進(jìn)而控制電解系統(tǒng)進(jìn)行加工。
(2)電解板
其工作原理是通過(guò)放電,加快電解液與目標(biāo)音片的反應(yīng)速度。通過(guò)控制放電時(shí)間,可以控制音片的腐蝕速度,從而調(diào)整音片的頻率。
(3)PLC
通過(guò)改變PLC寄存器的內(nèi)容可以控制音頻測(cè)試、電解系統(tǒng)工作及模式步進(jìn)電機(jī)
(4)機(jī)械平臺(tái)
負(fù)責(zé)對(duì)音片的取料,放料。
(5)觸摸屏
根據(jù)需要輸入標(biāo)準(zhǔn)的音頻頻率,顯示采集到的實(shí)際頻率。
八音盒音片有18根音鍵且排列緊密,因此對(duì)于每一個(gè)音片的加工,需要把18根音鍵分成3組,每組六根。音鍵分組時(shí),中間隔2根分為1組,即1、4、7、10、13、16根為一組,2、5、8、11、14、17根為一組,3、6、9、12、15、18根為一組,以方便電機(jī)拔齒拔到音鍵產(chǎn)生振動(dòng)。
系統(tǒng)正常工作時(shí),電機(jī)轉(zhuǎn)動(dòng)會(huì)撥動(dòng)音鍵。電機(jī)轉(zhuǎn)動(dòng)一圈可測(cè)出一組6根音鍵頻率并進(jìn)行相應(yīng)電解,該過(guò)程作為一個(gè)工作周期,每一組音鍵至多需要四個(gè)工作周期完成加工。如果中間發(fā)現(xiàn)已經(jīng)電解到合格片要求范圍,系統(tǒng)會(huì)跳過(guò)后面幾個(gè)工作周期。對(duì)一組音鍵加工完成后,PLC會(huì)控制平臺(tái)移動(dòng)到下一個(gè)位置,使得撥片能夠撥到下一組對(duì)應(yīng)的音鍵,對(duì)下一組音鍵進(jìn)行加工。
整個(gè)系統(tǒng)分為正常工作模式、連續(xù)測(cè)試模式、電解模式等。系統(tǒng)上電后,處理器從PLC讀取工作參數(shù)并完成初始化,然后讀取工作模式。以正常工作模式為例,處理器獲取工作模式后,即開始進(jìn)行第一組的采頻和電解。采頻完成后,在電解的同時(shí),處理器會(huì)把采頻的結(jié)果發(fā)送給PLC,而PLC把結(jié)果發(fā)到觸摸屏上進(jìn)行顯示。對(duì)三組音鍵加工完后,處理器會(huì)把音片是否合格的結(jié)果發(fā)送回PLC,PLC控制平臺(tái)把不合格片分揀出來(lái),再手動(dòng)進(jìn)行加工。
系統(tǒng)的實(shí)現(xiàn)如圖2所示。
系統(tǒng)硬件的設(shè)計(jì)主要包括以下幾個(gè)模塊:傳感器信號(hào)的放大和過(guò)濾模塊、AD采樣模塊、數(shù)據(jù)處理模塊、步進(jìn)電機(jī)控制模塊和通信模塊。整個(gè)系統(tǒng)的體系結(jié)構(gòu)是一個(gè)典型的集中控制結(jié)構(gòu),硬件連接圖如圖3所示。
根據(jù)總體系統(tǒng)設(shè)計(jì)圖,分別設(shè)計(jì)各個(gè)模塊的硬件電路,主要包括放大電路的設(shè)計(jì)、濾波電路的設(shè)計(jì)、AD采樣電路的設(shè)計(jì)、LCD顯示電路的設(shè)計(jì)和步進(jìn)電機(jī)控制電路的設(shè)計(jì)。
在微電子方面,一般傳感器采集到的信號(hào)都是十分微弱的,不足以達(dá)到AD采樣電路所能識(shí)別的電平,所以必須對(duì)傳感器采集到的信號(hào)進(jìn)行放大處理。此外,還要進(jìn)行濾波處理,濾除掉信號(hào)中的噪聲,保留有用的信號(hào),但是這個(gè)電路必須放在放大電路之后,原因有兩點(diǎn):
①濾波電路對(duì)微弱信號(hào)的濾波效果不好,這樣就會(huì)導(dǎo)致無(wú)法濾除噪音;
②如果信號(hào)剛開始就先進(jìn)入濾波電路可能會(huì)導(dǎo)致把有用信號(hào)濾除掉,導(dǎo)致后面的放大電路無(wú)法起作用,使得AD采樣電路無(wú)法采樣到信號(hào)。這里的放大電路采用的是兩級(jí)反相放大器電路,通過(guò)兩級(jí)的放大電路,可以使得信號(hào)低噪聲放大到所需要的電平,運(yùn)算放大器采用通用的LM324芯片,這是個(gè)通用運(yùn)算放大器,內(nèi)部集成4個(gè)功放管。放大電路圖如圖4所示。
濾波器是一種選頻裝置,可以使信號(hào)中特定的頻率成分通過(guò),而極大地衰減其它頻率成分。根據(jù)濾波器的選頻作用分類,濾波器可以分為:低通濾波器、高通濾波器、帶通濾波器、帶阻濾波器。根據(jù)最佳逼近特性分類,可以分為:巴斯沃特濾波器、切比雪夫?yàn)V波器、貝塞爾濾波器。本設(shè)計(jì)采用八階的巴斯沃特低通濾波器,因?yàn)橛行У念l率范圍在200Hz~5000Hz之間,所以設(shè)置其截至頻率為5kHz,采用filter軟件,濾波器的特性圖,具體如圖5所示。
根據(jù)圖5所得出來(lái)的電路原理圖,如圖6所示。
系統(tǒng)數(shù)據(jù)處理的核心是STM32F103ZET微控制器,它采用ARMv7內(nèi)核,cortex-m3系列處理器。
軟件設(shè)計(jì)的主要目標(biāo)是實(shí)現(xiàn)音片頻率的測(cè)定和電解控制。音片頻率的測(cè)定是通過(guò)控制電機(jī)轉(zhuǎn)動(dòng)撥動(dòng)音鍵并采集傳感器電壓,然后進(jìn)行快速傅里葉變換計(jì)算、去除干擾和頻率計(jì)算來(lái)完成的。電解控制在軟件部分的實(shí)現(xiàn)相對(duì)簡(jiǎn)單,只需按照實(shí)際采集到的頻率與標(biāo)準(zhǔn)頻率之差計(jì)算出電解脈沖數(shù),然后通過(guò)定時(shí)器發(fā)送給電解板。
系統(tǒng)在運(yùn)行的過(guò)程中需要通過(guò)Modbus協(xié)議不斷與PLC通信,獲取工作方式,并傳遞頻率信息。
下面以全工作模式(其它的工作模式是全工作模式的一部分,用于機(jī)器的調(diào)試或手動(dòng)控制)為例介紹該系統(tǒng)的工作流程:由于每個(gè)分組有6根音鍵,所以系統(tǒng)在讀到工作模式為全工作模式后,先轉(zhuǎn)動(dòng)6次,期間每次轉(zhuǎn)完都進(jìn)行FFT計(jì)算,最后把頻率計(jì)算出來(lái),如圖7所示。
軟件體系的具體實(shí)現(xiàn)包括Modbus協(xié)議、FFT算法、去干擾算法和脈沖控制,下面進(jìn)行詳細(xì)說(shuō)明。
Modbus是由Modicon在1979年發(fā)明的,全球第一個(gè)用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議。Modbus協(xié)議是應(yīng)用于電子控制器設(shè)備上的一種通信協(xié)議。通過(guò)此協(xié)議,控制器之間或經(jīng)由網(wǎng)絡(luò)與其它設(shè)備之間可以通信。Modbus協(xié)議已經(jīng)成為一種通用的工業(yè)標(biāo)準(zhǔn)。
本系統(tǒng)采用的是ASCII編碼模式,該模式將一個(gè)信息中的每8位字節(jié)作為2個(gè)ASCII字符傳輸,這種模式的主要優(yōu)點(diǎn)是允許字符之間的時(shí)間間隔長(zhǎng)達(dá)1S,而且不會(huì)出現(xiàn)錯(cuò)誤。
在ASCII編碼模式中,以“:”表示信息開始,以換行表示信息結(jié)束。信息幀結(jié)構(gòu)如表1所示。
例如:系統(tǒng)讀取工作參數(shù)的時(shí)候,會(huì)向PLC發(fā)送讀取寄存器幀,功能碼為01,數(shù)據(jù)包格式如圖8。
對(duì)應(yīng)代碼如下:
表1 ASCII編碼模式信息幀結(jié)構(gòu)
圖1 總體結(jié)構(gòu)概述
圖2 音片加工系統(tǒng)實(shí)際圖
圖3 硬件連接流程圖
圖4 放大電路圖原理圖
圖5 濾波器的特性圖
圖6 濾波器的原理圖
圖7
圖8
然后把pucFrame交給發(fā)送函數(shù),并在定時(shí)器的控制下按字節(jié)發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)的過(guò)程可以與程序的主控制過(guò)程異步進(jìn)行,不過(guò)由于初始化部分必須先結(jié)束才能進(jìn)行正常工作,所以此處用軟定時(shí)器延時(shí)等待PLC發(fā)送的結(jié)果,代碼如下:
FFT(Fast Fourier Transformation),即快速傅里葉變換,是離散傅里葉變換的快速算法,它是根據(jù)離散傅里葉變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅里葉變換的算法進(jìn)行改進(jìn)獲得的。
為了提高效率,F(xiàn)FT算法采集匯編語(yǔ)言實(shí)現(xiàn),最終可以在250ms時(shí)間內(nèi)完成對(duì)1024個(gè)點(diǎn)的FFT計(jì)算,并達(dá)到4Hz的精度要求。
實(shí)際開發(fā)過(guò)程中,發(fā)現(xiàn)干擾分為兩種:一種是固定某一頻率的干擾,一種是先拔的一根由于振蕩比較久對(duì)后面的一根產(chǎn)生的干擾。
由于每個(gè)分組有6根音鍵,而且這6根音鍵的頻率呈遞減趨勢(shì),所以對(duì)于第一種干擾,可以通過(guò)分析每一組音鍵中前兩根和后兩根中每根音鍵出現(xiàn)的一個(gè)頻率,去計(jì)算其它5根中前后12Hz以內(nèi)有沒(méi)有出現(xiàn)過(guò)相同的頻率,如果出現(xiàn)的次數(shù)大于3(不包括基準(zhǔn)的這一根)就認(rèn)為有一個(gè)固定的外界干擾。
對(duì)于第二種干擾,只需要把先拔的一根中出現(xiàn)的頻率在后拔的那根里面去掉即可。
對(duì)步進(jìn)電機(jī)和電解的控制是通過(guò)定時(shí)器實(shí)現(xiàn)的,其中步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)可用Systick(即系統(tǒng)心跳)來(lái)控制,即每次進(jìn)入中斷時(shí)把一個(gè)計(jì)數(shù)器加1,并根據(jù)奇偶性控制引腳輸出高低電平從而形成穩(wěn)定的矩形波。電解控制是由一個(gè)單獨(dú)的定時(shí)器實(shí)現(xiàn)的,在主流程中只需開啟或關(guān)閉定時(shí)器即可。
在面向工廠的復(fù)雜工作環(huán)境下,音頻采集首先需要解決各種噪聲的干擾問(wèn)題,該系統(tǒng)在硬件以及軟件方面都進(jìn)行了相關(guān)處理,最終可以實(shí)現(xiàn)音頻信號(hào)的精確采集。對(duì)音片的電解精加工也達(dá)到了工廠規(guī)定,簡(jiǎn)化了人工挑選加工音片的工作流程,大大提高了工廠工作效率。該系統(tǒng)對(duì)音頻信號(hào)的處理方式也可用于其他對(duì)音頻信號(hào)采集要求較高的系統(tǒng)中,從而得到更廣泛的應(yīng)用。
[1]J.W.Cooley,J.W.Tukey,An algorithm for the machine computation of complex Fourier series.Mathematics of Computation,1965,19(4):297-301.
[2]XILINX.Fast Fourier Transform.v3.2.XILINX product spec ifi cation,august,2005.
[3]U.M.Baese.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.178-215.
[4]Brian W.Kernighan,Dennis M.Ritchie,The C Programming Language.Prentice hall,1989.
[5]ST Microelectronics STM32F10xx 6 8 B Datasheet(EN).2008.
[6]Joseph Yiu,ARM Cortex-M3權(quán)威指南[M].北京:北京航空航天大學(xué)出版社,2009.