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