基于雙DSP及VI技術(shù)的無線測(cè)控系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
現(xiàn)代化的測(cè)控系統(tǒng)中,對(duì)可靠性、測(cè)量精度、速度以及系統(tǒng)設(shè)計(jì)的微型化和輕型化的要求愈來愈高,傳統(tǒng)的模擬式測(cè)量?jī)x表已很難滿足這些要求,必須實(shí)現(xiàn)參數(shù)采集系統(tǒng)以及整個(gè)系統(tǒng)的數(shù)字化和智能化。隨著計(jì)算機(jī)技術(shù)和虛擬儀器(VIrtual Instrument,VI)技術(shù)的發(fā)展,用戶只能使用制造商提供的儀器功能的傳統(tǒng)觀念正在改變?;赪eb的虛擬儀器就是虛擬儀器技術(shù)的延伸與擴(kuò)展。把DSP技術(shù)應(yīng)用到虛擬儀器中將彌補(bǔ)虛擬儀器與傳統(tǒng)硬件儀器在實(shí)時(shí)性與精確性方面的差距。
同時(shí),為了提高測(cè)控系統(tǒng)的可靠性和數(shù)據(jù)處理速度及效率,將雙DSP引入測(cè)控系統(tǒng),提出并行FFT算法,并對(duì)其運(yùn)算效率進(jìn)行了分析。
在有線通信系統(tǒng)中,不論是基于RS 232/RS 485,還是基于現(xiàn)場(chǎng)總線結(jié)構(gòu),其潛在的缺陷是必須進(jìn)行布線工作和通信線路的維護(hù),通信線路容易損壞工程周期的增長(zhǎng),而且在電磁干擾(EMI)嚴(yán)重的工業(yè)環(huán)境中,將會(huì)不可避免地造成傳輸數(shù)據(jù)的丟失和錯(cuò)誤。在此種情況下,采取通過無線鏈路進(jìn)行通信的系統(tǒng),因其高頻部分超出了EMI的頻率范圍,故能有效地解決上述難題。
將基于Web的VI技術(shù)與DSP測(cè)試及無線通信理論和ODBC數(shù)據(jù)庫技術(shù)相結(jié)合的新型測(cè)控系統(tǒng)在工業(yè)測(cè)控領(lǐng)域必將有著強(qiáng)大的生命力,對(duì)其關(guān)鍵技術(shù)的研究具有重要的意義。
1 系統(tǒng)構(gòu)成
如圖1所示,雙DSP作為下位機(jī)實(shí)現(xiàn)雙余度A/D采樣轉(zhuǎn)換,并可提高數(shù)據(jù)處理效率。通過RS 485通信接口標(biāo)準(zhǔn)以無線通信方式與上位機(jī)進(jìn)行通信,上位機(jī)基于VI技術(shù)和可編程數(shù)據(jù)庫SQL Server技術(shù),實(shí)現(xiàn)信號(hào)的進(jìn)一步分析處理或故障診斷、控制功能等,并可進(jìn)一步擴(kuò)展測(cè)控系統(tǒng),將虛擬儀器技術(shù)和面向Internet的Web技術(shù)有機(jī)結(jié)合起來,可以滿足監(jiān)測(cè)系統(tǒng)的互聯(lián)和資源共享的需求。
2 系統(tǒng)硬件測(cè)試關(guān)鍵技術(shù)
2.1 系統(tǒng)關(guān)鍵硬件電路設(shè)計(jì)
系統(tǒng)下位機(jī)中的一個(gè)DSP用于實(shí)現(xiàn)A/D采樣,其無線通信的硬件電路如圖2所示。微處理器TMS320LF2407A芯片用于完成現(xiàn)場(chǎng)多傳感器信號(hào)采集及A/D轉(zhuǎn)換、數(shù)據(jù)的初步處理及與上位機(jī)通信的功能。MAX485芯片完成TTL電平向RS 485電平的轉(zhuǎn)換,而后送到無線數(shù)傳設(shè)備SRWF-1進(jìn)行調(diào)制發(fā)射。上位機(jī)通信電路圖如圖3所示,通過SRWF-1可直接與RS 232串口連接,根據(jù)約定協(xié)議接收及發(fā)送數(shù)據(jù)。
2.2 DSP的A/D及SCI接口無線通信設(shè)計(jì)關(guān)鍵技術(shù)
在無線通信設(shè)計(jì)中,考慮現(xiàn)場(chǎng)一般的工業(yè)接口標(biāo)準(zhǔn)及要求和RS 485特點(diǎn),采取基于RS 485無線通信的方案。
因DSP的SCI端口輸出的是TTL電平,與RS 485電平不匹配,因此選擇MAX485芯片將DSP的TTL電平轉(zhuǎn)換為RS 485電平。MAX485是用于RS485通信的低功耗收發(fā)器。如圖2所示,其引腳1,2,3,4分別為RO,,DE,DI。R0為接收器輸出;為接收器輸出使能;DE為驅(qū)動(dòng)器輸出使能;DI為驅(qū)動(dòng)器輸入。DI和RO分別接DSP的SCITXD和SCIRXD引腳,通過DSP的I/O端口來使能RO和DI。無線通信模塊選擇SRWF-1可提供ISM頻段的工作頻率,無需申請(qǐng)頻點(diǎn),且基于FSK調(diào)制,采用高效無線通信協(xié)議,標(biāo)準(zhǔn)配置可提供8個(gè)信道。提供2個(gè)串口,3種接口方式,支持有無校驗(yàn)兩種數(shù)據(jù)結(jié)構(gòu)。
在軟件設(shè)計(jì)時(shí)的初始化及主程序中,需對(duì)SRWF-1的SLEEP,RESET和MAX485的和DE引腳進(jìn)行相應(yīng)配置,控制引腳電平,消除系統(tǒng)中發(fā)送部分存在的總線懸浮現(xiàn)象,控制數(shù)傳模塊的工作狀態(tài)。
3 系統(tǒng)軟件設(shè)計(jì)關(guān)鍵技術(shù)
系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵技術(shù)包括對(duì)下位機(jī)DSP的A/D采樣和無線串口通信協(xié)議的制定;虛擬儀器與SQL Server數(shù)據(jù)庫的接口設(shè)計(jì)和基于Web的虛擬儀器的實(shí)現(xiàn)。
3.1 通信協(xié)議
在無線發(fā)送和接收通信中,通信協(xié)議是上下位機(jī)進(jìn)行準(zhǔn)確通信的有效保證。在DSP實(shí)現(xiàn)的雙余度下位機(jī)和上位機(jī)通信中,如何根據(jù)下位機(jī)所設(shè)置波特率設(shè)定數(shù)據(jù)幀傳輸格式,上位機(jī)如何識(shí)別信息來源,如何控制雙DSP及根據(jù)A/D轉(zhuǎn)換精度如何正確傳輸數(shù)據(jù),這些是要解決的關(guān)鍵問題。
雙DSP采用并行工作模式,定義一DSP的ID為00,另一DSP的ID為01,定義每個(gè)DSP的通道ID為0000~1111,又由于TMS320LF2407系列DSP的A/D轉(zhuǎn)換精度為10位,因此定義通信協(xié)議如下:
每個(gè)A/D轉(zhuǎn)換的采樣數(shù)據(jù)由兩個(gè)數(shù)據(jù)幀發(fā)送,這樣具有ID號(hào)的數(shù)據(jù)被上位機(jī)接收后即可判別數(shù)據(jù)來自于哪個(gè)DSP的哪個(gè)通道。同樣,上位機(jī)控制DSP的控制信號(hào)也通過ID號(hào)反饋到下位機(jī)中需要控制的DSP。
3.2 DSP軟件設(shè)計(jì)
DSP2407包括串行通信(SCI)模塊,支持CPU與其他使用標(biāo)準(zhǔn)格式的異步外設(shè)之間數(shù)據(jù)通信。SCI模塊有兩個(gè)外部引腳,即發(fā)送數(shù)據(jù)引腳SCITXD和接收數(shù)據(jù)引腳SCIRXD。通過一個(gè)16位的波特率選擇寄存器(SCIHBAUD和SCILBAUD)可設(shè)置串口通信波特率。
SCI異步波特率=SYSCLK/[(BRR+1)×8],DSP系統(tǒng)時(shí)鐘為20 MHz,若希望設(shè)置波特率為9 600 b/s,則BRR=20×106/(9 600×8)-1=259 ≈103H,所以SClHBAUD與SCILBAUD寄存器分別寫入01H與03H。
基于DSP功能模塊化的特點(diǎn),其程序中有關(guān)串行通信的是:初始化設(shè)置時(shí)鐘源模塊,得到所需的CPU-CLK和SYSCLK;設(shè)置SCI模塊,初始化各SCI控制寄存器;編寫串行通信中斷服務(wù)子程序,即可完成DSP與PC之間的串行通信。其中,時(shí)鐘源設(shè)置和SCI控制寄存器設(shè)置都在主程序的初始化部分完成。SCI中斷服務(wù)子程序流程圖如圖4所示。
3.3 上位機(jī)軟件設(shè)計(jì)
3.3.1 LabVIEW與數(shù)據(jù)庫接口的設(shè)計(jì)
以數(shù)據(jù)庫為中心,構(gòu)建基于數(shù)據(jù)庫的虛擬儀器系統(tǒng)已成為現(xiàn)代測(cè)試測(cè)量系統(tǒng)的發(fā)展趨勢(shì)。
SQL工具包是利用開放數(shù)據(jù)庫互連(Open Database ConnecTIvity,ODBC)接口訪問數(shù)據(jù)庫的。0DBC是微軟公司開放服務(wù)結(jié)構(gòu)(Windows Open Services Architecture,WOSA)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)應(yīng)用程序編程接口(Application Program InteRFace,API)函數(shù),這些API函數(shù)利用SQL語言來完成其大部分任務(wù)。利用SQL工具包中的動(dòng)態(tài)SQL語句執(zhí)行工具,實(shí)現(xiàn)了數(shù)據(jù)庫的訪問。用LabVIEW實(shí)現(xiàn)數(shù)據(jù)庫的訪問一般包括7個(gè)環(huán)節(jié),如數(shù)據(jù)庫聯(lián)接、SQL準(zhǔn)備、參數(shù)個(gè)數(shù)獲取、參數(shù)類型設(shè)置、SQL語句執(zhí)行、執(zhí)行完畢、斷開聯(lián)接。圖5示出將一個(gè)浮點(diǎn)數(shù)據(jù)插入數(shù)據(jù)庫的功能程序,說明了LabVIEW中開發(fā)SQL Server數(shù)據(jù)庫的方法。
3.3.2 基于Web的虛擬儀器軟件技術(shù)
一般解決方法是在客戶端的瀏覽器上運(yùn)行某種插件,如ActiveX或Java的Applet,利用網(wǎng)上傳輸過來的現(xiàn)場(chǎng)數(shù)據(jù)重現(xiàn)現(xiàn)場(chǎng)的虛擬儀器,這種方法將需要大量的網(wǎng)絡(luò)編程工作量。為此,采用NI的DataSocket技術(shù)解決網(wǎng)絡(luò)編程問題。DataSocket建立在TCP/IP協(xié)議的基礎(chǔ)之上,可以通過計(jì)算機(jī)網(wǎng)絡(luò)向多個(gè)遠(yuǎn)端的終端同時(shí)廣播現(xiàn)場(chǎng)數(shù)據(jù)。
National Instruments DataSocket包括兩個(gè)組件DataSocket Server Manager和DataSocket Server。利用DS(DataSocket Server)技術(shù)傳輸數(shù)據(jù)則必須在發(fā)布數(shù)據(jù)的機(jī)器上打開DataSocket Server,發(fā)布數(shù)據(jù)的程序通過它進(jìn)行數(shù)據(jù)傳輸,輸入數(shù)據(jù)的程序找到它接收數(shù)據(jù)。
DS函數(shù)與DS服務(wù)器的通訊采用自己的傳輸協(xié)議DSTP(DataSocket Transfer Protocol)。使用這個(gè)協(xié)議時(shí)用與WWW瀏覽器相似的統(tǒng)一資源定位符URL(Uniform Resotlrce Loeator)連接數(shù)據(jù)資源,這些數(shù)據(jù)資源可以是位于DS,HTTP和FTP服務(wù)器中的數(shù)據(jù)文件,或是本機(jī)的數(shù)據(jù)文件。
如對(duì)圖6所示曲線數(shù)據(jù)進(jìn)行傳輸,其DataSocketConnection設(shè)置如圖7所示。
運(yùn)行服務(wù)器程序和客戶端程序可看到,隨著服務(wù)器波形數(shù)據(jù)的變化,客戶端界面的波形數(shù)據(jù)也隨之變化。同樣地將客戶端的控制按鈕值賦予服務(wù)器的控制按鈕,則可以控制服務(wù)器采集工作的進(jìn)行。圖8即為圖6數(shù)據(jù)曲線在遠(yuǎn)程瀏覽器上顯示的結(jié)果。
利用網(wǎng)絡(luò)技術(shù)將分散在不同地理位置的虛擬測(cè)量分析儀器相聯(lián)系,使測(cè)量、分析數(shù)據(jù)在網(wǎng)絡(luò)內(nèi)得以共享,減少了設(shè)備重復(fù)投資,提高了效率。重要的數(shù)據(jù)實(shí)行多機(jī)備份,提高了系統(tǒng)的可靠性。
4 雙DSP的FFT并行算法
在數(shù)字信號(hào)處理領(lǐng)域中,高效的時(shí)一頻域變換關(guān)鍵是快速傅里葉算法(FFT算法)。FFT算法是進(jìn)行高速卷積、數(shù)字濾波、相關(guān)處理、功率譜運(yùn)算的核心算法,許多復(fù)雜算法都基于FFT算法。盡管現(xiàn)代的DSP處理器的核心運(yùn)算單元支持單周期的乘加運(yùn)算,可以快速實(shí)現(xiàn)FFT運(yùn)算,但在許多實(shí)時(shí)性要求高,精度高,運(yùn)算數(shù)據(jù)長(zhǎng)度長(zhǎng)的應(yīng)用場(chǎng)合,單個(gè)DSP處理器己經(jīng)不能滿足要求,因此根據(jù)需要提出采用兩個(gè)DSP進(jìn)行并行FFT運(yùn)算。
一維離散時(shí)間序列的傅里葉變換為:
式中:yk,xk均屬長(zhǎng)度為N的復(fù)雜序列;為旋轉(zhuǎn)因子。如果進(jìn)行直接運(yùn)算,運(yùn)算量為0(N2),任務(wù)量非常繁重。
FFT算法大大減小了離散傅里葉變換的運(yùn)算量,如基2FFT算法,運(yùn)算分log2N=n步完成,每個(gè)運(yùn)算步進(jìn)行N/2個(gè)蝶形運(yùn)算,則運(yùn)算量降低為O(nN/2)。
當(dāng)在單個(gè)處理器上進(jìn)行FFT運(yùn)算時(shí),設(shè)每個(gè)蝶形運(yùn)算的時(shí)間為tcomp,則N長(zhǎng)度FFT運(yùn)算的時(shí)間為:
當(dāng)在2個(gè)處理器上進(jìn)行并行FFT運(yùn)算,采用循環(huán)分配方式把N個(gè)數(shù)據(jù)分配到這兩個(gè)處理器上,即先把2個(gè)數(shù)據(jù)依次分配給2個(gè)處理器;然后再將接下來的2個(gè)數(shù)據(jù)依次分配給2個(gè)處理器,…,依次下去,直至數(shù)據(jù)分配完畢為止,則第i個(gè)處理器上分配到的數(shù)據(jù)為2i處理器存放的數(shù)據(jù)x(i+2r)(r=O,1,…,N/2-1;i=0,1)。在這種分配模式下,前l(fā)og2(N/2)=n-m個(gè)運(yùn)算僅要求局部數(shù)據(jù),而后m個(gè)運(yùn)算步要求訪問遠(yuǎn)程數(shù)據(jù),共要進(jìn)行m次處理器間的數(shù)據(jù)通訊,且后m個(gè)運(yùn)算步的通訊距離不一。每次數(shù)據(jù)互換的內(nèi)容是一個(gè)處理器的偶數(shù)序數(shù)據(jù)與另一個(gè)處理器的奇數(shù)序數(shù)據(jù)進(jìn)行互換,數(shù)據(jù)通訊量為N/4。若處理器間具有雙向的全連接網(wǎng)絡(luò),而且每個(gè)處理器上有足夠的存儲(chǔ)空間,允許后m個(gè)運(yùn)算步的數(shù)據(jù)交換同時(shí)進(jìn)行。兩個(gè)處理器進(jìn)行直接數(shù)據(jù)傳輸時(shí),傳輸單位數(shù)據(jù)所花費(fèi)的時(shí)間為tcomp,每步數(shù)據(jù)交換要花費(fèi)的時(shí)間為(N/4)tcomp。FFT并行運(yùn)算的運(yùn)行時(shí)間為:
5 結(jié)語
針對(duì)工業(yè)測(cè)控的現(xiàn)狀和需求,提出新型測(cè)控方案,并對(duì)其中關(guān)鍵技術(shù)進(jìn)行了深入研究和開發(fā)。采用雙DSP工作模式,實(shí)現(xiàn)雙余度數(shù)據(jù)采集及處理,提出雙DSF,并行FFT算法,并對(duì)其運(yùn)算效率進(jìn)行了分析。利用RS 485無線通信方式實(shí)現(xiàn)數(shù)據(jù)和控制信號(hào)的發(fā)送、接收。在上位機(jī)中用LabVIEW開發(fā)平臺(tái)實(shí)現(xiàn)信號(hào)的接收與發(fā)送,在平臺(tái)之上開發(fā)ODBC數(shù)據(jù)庫接口,還可進(jìn)一步建立專家知識(shí)庫,開發(fā)故障診斷專家系統(tǒng)等。同時(shí)將虛擬儀器技術(shù)和面向Internet的Web技術(shù)有機(jī)結(jié)合起來,利用有效的網(wǎng)絡(luò)資源與技術(shù),滿足監(jiān)測(cè)系統(tǒng)的互聯(lián)和資源共享的需求。