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