引言
MSP430系列單片機是由美國TI公司生產的新一代16位單片機,它具有處理能力強,運行速度快、資源豐富、開發方便等優點,具有很高的性價比,最近幾年在國內得到了很廣泛的應用。通用串行總線(USB)是現代數據傳輸的發展趨勢,它具有高速、可熱插拔、易擴展、接口通用、無需外接電源等優點在數據傳輸方面得到和廣泛的應用。數據采集在工業測試系統中是一個很重要的環節,其精確性和可靠性是至關重要的,MSP430和USB為此提供了理想的解決方案。本文以瀝青橋面防水層檢測儀為背景,闡述了基于MSP430和USB的數據采集系統。
系統硬件設計
本系統采用TI公司的MSP430F149和PHILIPS公司的USB接口芯片PDIUSBD12。PDIUSBD12符合通用串行總線USB1.1規范,是一款高性能的USB接口器件,它集成了SIE、FIFO存儲器、收發器和電壓變換器。SIE完成USB協議層,并完成高速硬件連接,無需軟件干預。此模塊功能包括:同步模式識別、并串轉換、位填充、解填充、CRC校驗/產生、地址識別和握手相應/產生等。MSP430F149芯片片內包括一個12位的A/D轉換器ADC12、采樣保持器和模擬多路器,ADC12與一般的ADC相比較,具有高速、通用的特點,適合于精密的數據采集和轉換,能夠對8個外部模擬通道和4個內部電壓通道(包括內部溫度傳感器反饋的電壓信號通道)進行A/D轉換。ADC12還提供了高性能的采樣/保持電路,為用戶提供了更多的采樣觸發方式和轉換時鐘周期的選擇。ADC12提供了4種轉換模式:單通道單次轉換,系列通道單次轉換,單通道多次轉換,多通道多次轉換。數據采集流功能框圖如圖1所示。
本系統中MSP430F149和PDIUSBD12的硬件接口電路圖如圖2所示。PDIUSBD12的8位并行數據接入MSP430的P5口,傳輸數據或者命令。MSP430的P17引腳接PDIUSBD12的A0,作為PDIUSBD12的命令或數據選擇線。當A0=0,MSP430向 PDIUSBD12發送數據,當A0=1時,向PDIUSBD12發送命令。它們之間的數據交換采取中斷查詢方式,通過查詢P14(P14接 PDIUSBD12的INT_N引腳)是否為低電平來確定是否接受到上位機的數據或命令,再結合D12_WR和D12_RD引腳實現MSP430與 PDIUSBD12的數據交換。PDIUSBD12的GL_N接LED來對其進行監控,當USB設備接入PC機時,LED亮,當在進行數據傳輸時,LED 將不斷閃爍。
MSP430的P6口為其ADC12模塊8個外部通道的輸入端,由于傳感器輸出的信號比較微弱,同時在瀝青橋面測試現場存在著很多車輛噪聲和工頻信號的干擾,傳感器采集到的數據需要經過一定的放大和低通濾波,才能被送到MSP430的ADC12模塊進行采集和轉換,信號調理電路如圖3所示。
圖3
圖3中運放U2部分組成了一個二階壓控低通有源濾波器。傳感器信號通過調節放大之后被送到濾波器的輸入端,通過濾波后將干擾部分消除。其傳遞函數為:。其中為特征角頻率。
由于傳感器測量的是拉、壓力信號,即放大濾波后輸出的電壓信號為雙極性信號,范圍約為-10V~+10V,必須將它轉換為單極性信號,即對信號進行直流偏置,在此采用簡單的電阻分壓方式,如圖3所示。所需要的+2.5V電壓基準可以由MSP430F149提供。
軟件設計
本系統的軟件設計主要包括單片機程序、USB驅動程序、PC機應用程序。單片機部分的程序也稱為固件,它包括USB設備的連接、USB協議和中斷處理等。 PDIUSBD12可以按照USB1.1協議對數據進行封裝,然后與PC機進行數據交換。MSP430根據接受到的命令通過PDIUSBD12與PC機的應用程序進行交互。
MSP430向PDIUSBD12發送數據/命令部分程序如下:
void outportb(unsigned char port, unsigned char val)
{
P1OUT&=0xBF; /使PDIUSBD12的WR引腳為低電平
P5DIR=0xFF; /P5口為輸出模式
if(port)
P1OUT|=A0; /A0為高電平,傳輸命令
else
P1OUT&=~A0; /A0為低電平,傳輸數據
P5OUT=val; /向PDIUSBD12寫數據
P1OUT|=~0xBF; /恢復PDIUSBD12的WR引腳為高電平
}
MSP430從PDIUSBD12讀取數據的部分固件程序如下:
unsigned char inportb(void)
{
unsigned char data=0x00;
P1OUT&= 0xDF; /使PDIUSBD12的RD引腳為低電平
P5DIR=0x00; / P5口為輸入模式
data=P5IN; /從PDIUSBD12讀取數據
P1OUT|=~0xDF; /恢復PDIUSBD12的RD引腳為高電平
return i;
}
MSP430中ADC12模塊提供了4種轉換模式,在此采取序列通道單次轉換模式,以方便上位機實時控制。四個通道A/D轉換只須啟動一次,最后一個通道轉換完成后設置中斷標志位。對轉換模式、轉換采樣時序以及轉換通道的設置如下:
ADC12CTL0=ADC12ON+SHT0_2+MSC; /打開ADC12并設置采樣時間
ADC12CTL1=SHP+CONSEQ_1; /序列通道單次轉換模式
ADC12MCTL0=INCH_0; /選擇通道0
ADC12MCTL1=INCH_1; /選擇通道1
ADC12MCTL2= INCH_2; /選擇通道2
ADC12MCTL3= INCH_3+EOS; /選擇通道3和序列結束標志
ADC12CTL0|=ENC; /啟動AD轉換
整個數據采集的過程都是由PC機為中心,PC機通過向MSP430發送命令來控制A/D轉換的開始和結束。對于MSP430收到的控制數據(命令),我們在此規定:
字節1:0xFF----啟動A/D轉換,0xFE----停止A/D轉換
如果MSP430收到的數據第一個字節是0xFF,先設置標志adflag=1,然后啟動A/D轉換并設置相應其他的參數,當四個通道的數據采集和轉換均完成,最后通過USB接口向PC發送采集到的數據。當MSP430收到的數據的第一個字節是0xFE,則設置adflag=0,不啟動A/D轉換。
PC機端的應用程序是VB.NET環境下開發,它主要完成對采集到的數據進行解封裝、顯示,控制整個數據采集系統的進行、停止、并設置相應的一些參數,以及最后的數據分析處理工作。上位機程序框圖如圖4所示。
圖4
結語
橋面防水層測試儀對橋面瀝青和水泥之間的防水層的測試包括拉拔、撕裂、剪切等試驗,本系統將三種試驗的電氣硬件部分通用化,通過上位機軟件的設置對不同試驗的數據進行相應的解封裝、顯示和處理分析。在瀝青橋面測試現場中,由于天氣、溫度、濕度等一些不確定的因素,對測試結果造成了一定的影響,這就要求測試周期應盡量短,試驗點應盡量多,高速、實時、便攜式、多通道測試儀的優點在此得到了充分的體現。試驗表明,該系統應用到拉拔儀、剪切儀試驗中,用戶界面友好,操作簡便,測試的精度、速度以及系統的可靠性完全滿足要求。
評論