陳 航,嚴 帥,劉 勝,張會新
(1.中北大學(xué),儀器科學(xué)與動態(tài)測試教育部重點實驗室,山西太原 030051;2.北京宇航系統(tǒng)工程研究所,北京 100076)
在一些分布式測試系統(tǒng)中,不可避免地要對被測環(huán)境不同位置地點多種物理量(濕度、溫度、壓力等)進行精確采集和測量[1-2]。傳統(tǒng)的測試系統(tǒng)大多采用點對點連線的電纜對傳感器的模擬量信號進行傳輸,這種方式一方面容易受到周圍電磁環(huán)境的影響,降低采集精度;另一方面增加了測試系統(tǒng)中電纜的消耗量和成本,還在一定程度上影響采集系統(tǒng)的健壯性。為了提高測試系統(tǒng)的智能化程度和精確度,設(shè)計了一個基于RS485總線的分布式高精度數(shù)據(jù)采集系統(tǒng),將各地點的傳感器信號通過采樣轉(zhuǎn)換為數(shù)字信號,通過RS485總線傳至系統(tǒng)主控站點[3-5]。和現(xiàn)有的測試系統(tǒng)相比,增加了數(shù)據(jù)采集通道個數(shù)和采集精度,最多可實現(xiàn)640個測點數(shù)據(jù)的輪詢采集,提高了數(shù)據(jù)傳輸?shù)闹悄芑健?/p>
分布式數(shù)據(jù)采集系統(tǒng)主要包含上位機、RS485總線主控站點和40個RS485總線被控站點等部分,原理框圖如圖1所示。主控站點與上位機通過USB接口交換數(shù)據(jù),在上位機下傳的數(shù)據(jù)被解析后,F(xiàn)PGA將其通過主站RS485模塊發(fā)出并與配對成功的被控站點通信。根據(jù)不同的命令,可以實現(xiàn)不同速率下的固定通道和自動掃描通道數(shù)據(jù)采集功能。主控站點在接收到數(shù)據(jù)后進行打包,通過USB接口傳至上位機,實現(xiàn)了一主控站點多被控站點的高速RS485通信。
圖1 系統(tǒng)整體原理框圖
每個被控站點包含RS485總線模塊、FPGA控制模塊、A/D采集模塊等,屬于獨立的數(shù)據(jù)采集子系統(tǒng),原理設(shè)計圖如圖2所示。與主控站點下傳的站點號匹配正確后,F(xiàn)PGA首先對ADS1258相關(guān)寄存器進行配置,開始A/D采集,完成后將數(shù)據(jù)傳至主控單元。
圖2 被控站點設(shè)計示意圖
系統(tǒng)選用Spartan-6系列FPGA作為主控芯片。在主控站點的硬件電路設(shè)計中,選擇XC6SLX150芯片對RS485總線通信芯片ISO1176T和USB接口芯片F(xiàn)T2232進行控制,其電路連接示意如圖3所示。被控站點的A/D采集芯片ADS1258及RS485通信芯片通過SPI接口與FPGA連接,電路設(shè)計如圖4所示。
圖3 主控站點FPGA電路設(shè)計圖
圖4 被控站點FPGA電路設(shè)計圖
分布式數(shù)據(jù)采集系統(tǒng)具有分布范圍大、電磁環(huán)境復(fù)雜、傳輸節(jié)點要求多等特點。為滿足設(shè)計要求,選用RS485總線通過差分線的壓差傳輸數(shù)據(jù),可以極大地減少傳輸過程中的共模干擾,提高數(shù)據(jù)傳輸系統(tǒng)的健壯性[6]??偩€接口芯片ISO1176T內(nèi)部集成了變壓器驅(qū)動器,在不要外部光耦的情況下實現(xiàn)隔離式供電,該芯片最大可支持256個從節(jié)點,最大數(shù)據(jù)傳輸速率達到40 Mbps,詳細的電路連接圖如圖5所示。
圖5 RS485總線模塊電路連接圖
被控站點采用ADS1258對來自傳感器的模擬量信號進行模數(shù)轉(zhuǎn)換。ADS1258具有24位采樣分辨率,固定通道的采樣速率能達到125 KSPS,16個通道同時采集最高速率可達23.7 KSPS,同時還集成了片上溫度傳感器,可以通過讀取寄存器來讀取芯片工作溫度,它的工作溫度為-40~105 ℃,此外還有低溫漂、低噪聲等特點,非常符合系統(tǒng)的設(shè)計要求[7-8]。
FPGA和ADS1258通過SPI接口相連,CLKIO為外部時鐘輸入引腳,來自FPGA的16 MHz時鐘通過50 Ω電阻后與其相連,同時要將時鐘選擇引腳CLKSEL置高,芯片模擬供電電壓為AVDD=5 V,AVSS=AGND,參考電壓為VREF=VREFP-VREFN=5 V,數(shù)字供電電壓為DVDD=3.3 V,DVSS=DGND。ADS1258的硬件電路如圖6所示。
圖6 ADS1258接口電路設(shè)計圖
FT2232H為支持高速USB2.0通信的接口芯片,支持最高480 Mbps的通信速度。它有A、B 2個數(shù)據(jù)傳輸通道,根據(jù)設(shè)計需要可以配置成多種速度模式,具體的接口如圖3所示。芯片的工作模式為FT245異步FIFO接口模式,93LC56B為EEPROM,用于保存FT2232H配置完后的相關(guān)信息[9]。
主控站點通過USB接口實現(xiàn)和上位機的數(shù)據(jù)交換,根據(jù)不同指令實現(xiàn)數(shù)據(jù)打包傳輸和被控站點寄存器配置功能[10]。FT2232H的數(shù)據(jù)收發(fā)時序通過FPGA控制,具體的讀寫時序如圖7所示。RXF#信號為芯片輸出信號,當(dāng)緩存Buffer內(nèi)部有讀數(shù)空間時輸出為低,這時可以拉低RD#信號進行一次8位FIFO數(shù)據(jù)的讀取,然后RXF#信號被拉高,這期間不能進行讀數(shù)操作,等RXF#再次拉低時進行下一次讀數(shù)操作,寫數(shù)據(jù)過程和讀數(shù)據(jù)過程類似。
圖7 FT2232H讀寫時序圖
上位機和主控站點的通信協(xié)議如表1所示。在系統(tǒng)上電完成復(fù)位后,若接收到命令的第一個字節(jié)為25 h,再繼續(xù)判斷下一個字節(jié),若命令是55 h(查詢指令),則根據(jù)表1所示的通信協(xié)議進行RS485總線通信,主控站點從1到40依次查詢被控站點,并將收到被控站點的數(shù)據(jù)上傳至上位機進行顯示、存儲;若命令是AC h(寄存器配置指令),則對上位機的命令拆分處理,把后4個字節(jié)的數(shù)據(jù)根據(jù)總線通信協(xié)議進行打包,然后轉(zhuǎn)發(fā)至對應(yīng)的被控站點。
表1 上位機通信協(xié)議
總線數(shù)據(jù)傳輸采取CRC-4進行差錯控制,通信協(xié)議如表2所示。主控站點將校驗無誤的數(shù)據(jù)傳送給上位機顯示存儲,校驗不通過則再一次查詢該站點,如果連續(xù)3次數(shù)據(jù)校驗不通過,則將站點序號告訴上位機,然后進行下一個站點查詢,避免了因某個站點工作異常而使整個系統(tǒng)無法工作,提高了數(shù)據(jù)采集系統(tǒng)的可靠性性和抗干擾能力[11]。
表2 RS485總線通信協(xié)議
被控站點作為獨立的數(shù)據(jù)采集系統(tǒng),主要完成16路模擬量信號采集和RS485總線通信工作。根據(jù)系統(tǒng)設(shè)計要求,ADS1258默認工作模式為以23.7 KSPS采樣速率自動掃描16個模擬量輸入通道,寄存器通過SPI接口進行配置,DIN管腳為數(shù)據(jù)輸入引腳,CONFIG1寄存器主要涉及采樣速率的設(shè)置,命令字和寄存器地址為61 h,相應(yīng)的配置數(shù)據(jù)為03 h;MUXSG0和MUXSG1寄存器主要進行采樣通道選擇,命令字和寄存器地址分別為64 h和65 h,相應(yīng)的配置數(shù)據(jù)都為FF h。根據(jù)SCLK管腳的時序?qū)懭肱渲眉拇嫫鞯臄?shù)據(jù),如圖8所示,在片選信號CS拉低時,有效命令和數(shù)據(jù)在SCLK上升沿從最高位開始順序進入DIN管腳。
圖8 ADS1258寄存器配置時序圖
系統(tǒng)運行后,被控單元首先按照默認值對ADS1258的寄存器進行配置,配置完成后對相關(guān)寄存器的值進行讀取,驗證是否配置正確,隨后開始監(jiān)測RS485總線上的數(shù)據(jù),當(dāng)與總線上的站點序號驗證成功后,進行數(shù)據(jù)采集和發(fā)送數(shù)據(jù),工作軟件設(shè)計流程如圖9所示。上位機可以對各被控站點的寄存器進行重新配置,以滿足特殊測試要求。
圖9 被控站點軟件設(shè)計流程圖
ADS1258開始進行數(shù)據(jù)采集時,首先將START管腳進行拉高,程序開始檢測DRDY管腳的電平狀態(tài),當(dāng)為低電平時,表示一個通道模擬量完成轉(zhuǎn)換,讀取有效數(shù)據(jù)共計32位,高8位包含狀態(tài)信息和通道信息,低24位代表轉(zhuǎn)換的有效數(shù)據(jù)。ADS1258可以在小于700 μs的時間內(nèi)處理完16路通道的數(shù)據(jù)采集。
分布式數(shù)據(jù)采集系統(tǒng)的RS485總線上間隔1 m設(shè)置一個被控站點,總線長度共計40 m。系統(tǒng)測試時,在第一個被控站點15通道輸入2 V電壓,其余的被控站點和通道不輸入電壓,使用上位機發(fā)送查詢命令后回傳的數(shù)據(jù)見圖10。
圖10 測試數(shù)據(jù)
根據(jù)上位機的數(shù)據(jù)顯示,主控站點按順序查詢了被控站點的16路采集通道,EB 90 EB 90是子站點數(shù)據(jù)發(fā)送結(jié)束標(biāo)志,很好地完成了主控站點控制下的數(shù)據(jù)采集功能。數(shù)據(jù)“AD D0 00 01 96 2F 77 E9”中“AD D0 00 01 96”表示第一個被控站點15通道的數(shù)據(jù)采集結(jié)果,“2F 77 E9”轉(zhuǎn)變成電壓為1.977 8 V,高精度萬用表顯示實際電壓為1.978 9 V,所以系統(tǒng)的采集精度為0.6%,表明數(shù)據(jù)采集系統(tǒng)的精度很高。
分布式數(shù)據(jù)采集系統(tǒng)的設(shè)計采用24位的模數(shù)轉(zhuǎn)換芯片ADS1258,提高了模擬量數(shù)據(jù)采集精度,選用RS485總線進行數(shù)據(jù)的傳輸,增加了系統(tǒng)掛載的站點數(shù)量,總線驅(qū)動器芯片ISO1176T的使用實現(xiàn)了電源隔離,減少了周圍環(huán)境的干擾。測試表明,系統(tǒng)數(shù)據(jù)傳輸可靠,精度很高,同時還可以根據(jù)要求變換采集通道數(shù)量和采集速率,該分布式數(shù)據(jù)采集系統(tǒng)具有較好的實用價值。