| 基于MSP430和USB的數(shù)據(jù)采集系統(tǒng) | |
|
引言
MSP430系列單片機(jī)是由美國TI公司生產(chǎn)的新一代16位單片機(jī),它具有處理能力強(qiáng),運行速度快、資源豐富、開發(fā)方便等優(yōu)點,具有很高的性價比,最近幾年在國內(nèi)得到了很廣泛的應(yīng)用。通用串行總線(USB)是現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢,它具有高速、可熱插拔、易擴(kuò)展、接口通用、無需外接電源等優(yōu)點在數(shù)據(jù)傳輸方面得到和廣泛的應(yīng)用。數(shù)據(jù)采集在工業(yè)測試系統(tǒng)中是一個很重要的環(huán)節(jié),其精確性和可靠性是至關(guān)重要的,MSP430和USB為此提供了理想的解決方案。本文以瀝青橋面防水層檢測儀為背景,闡述了基于MSP430和USB的數(shù)據(jù)采集系統(tǒng)。
系統(tǒng)硬件設(shè)計
本系統(tǒng)采用TI公司的MSP430F149和PHILIPS公司的USB接口芯片PDIUSBD12。PDIUSBD12符合通用串行總線USB1.1規(guī)范,是一款高性能的USB接口器件,它集成了SIE、FIFO存儲器、收發(fā)器和電壓變換器。SIE完成USB協(xié)議層,并完成高速硬件連接,無需軟件干預(yù)。此模塊功能包括:同步模式識別、并串轉(zhuǎn)換、位填充、解填充、CRC校驗/產(chǎn)生、地址識別和握手相應(yīng)/產(chǎn)生等。MSP430F149芯片片內(nèi)包括一個12位的A/D轉(zhuǎn)換器ADC12、采樣保持器和模擬多路器,ADC12與一般的ADC相比較,具有高速、通用的特點,適合于精密的數(shù)據(jù)采集和轉(zhuǎn)換,能夠?qū)?個外部模擬通道和4個內(nèi)部電壓通道(包括內(nèi)部溫度傳感器反饋的電壓信號通道)進(jìn)行A/D轉(zhuǎn)換。ADC12還提供了高性能的采樣/保持電路,為用戶提供了更多的采樣觸發(fā)方式和轉(zhuǎn)換時鐘周期的選擇。ADC12提供了4種轉(zhuǎn)換模式:單通道單次轉(zhuǎn)換,系列通道單次轉(zhuǎn)換,單通道多次轉(zhuǎn)換,多通道多次轉(zhuǎn)換。數(shù)據(jù)采集流功能框圖如圖1所示。

圖1 數(shù)據(jù)采集功能框圖
本系統(tǒng)中MSP430F149和PDIUSBD12的硬件接口電路圖如圖2所示。PDIUSBD12的8位并行數(shù)據(jù)接入MSP430的P5口,傳輸數(shù)據(jù)或者命令。MSP430的P17引腳接PDIUSBD12的A0,作為PDIUSBD12的命令或數(shù)據(jù)選擇線。當(dāng)A0=0,MSP430向PDIUSBD12發(fā)送數(shù)據(jù),當(dāng)A0=1時,向PDIUSBD12發(fā)送命令。它們之間的數(shù)據(jù)交換采取中斷查詢方式,通過查詢P14(P14接PDIUSBD12的INT_N引腳)是否為低電平來確定是否接受到上位機(jī)的數(shù)據(jù)或命令,再結(jié)合D12_WR和D12_RD引腳實現(xiàn)MSP430與PDIUSBD12的數(shù)據(jù)交換。PDIUSBD12的GL_N接LED來對其進(jìn)行監(jiān)控,當(dāng)USB設(shè)備接入PC機(jī)時,LED亮,當(dāng)在進(jìn)行數(shù)據(jù)傳輸時,LED將不斷閃爍。

圖2 MSP430F149與PDIUSBD12接口電路圖
MSP430的P6口為其ADC12模塊8個外部通道的輸入端,由于傳感器輸出的信號比較微弱,同時在瀝青橋面測試現(xiàn)場存在著很多車輛噪聲和工頻信號的干擾,傳感器采集到的數(shù)據(jù)需要經(jīng)過一定的放大和低通濾波,才能被送到MSP430的ADC12模塊進(jìn)行采集和轉(zhuǎn)換,信號調(diào)理電路如圖3所示。

圖3 信號調(diào)理電路
主放大器我們選用美國ADI公司的精密儀表放大器AD620。
圖3中運放U2部分組成了一個二階壓控低通有源濾波器。傳感器信號通過調(diào)節(jié)放大之后被送到濾波器的輸入端,通過濾波后將干擾部分消除。其傳遞函數(shù)為:。其中為特征角頻率。
由于傳感器測量的是拉、壓力信號,即放大濾波后輸出的電壓信號為雙極性信號,范圍約為-10V~+10V,必須將它轉(zhuǎn)換為單極性信號,即對信號進(jìn)行直流偏置,在此采用簡單的電阻分壓方式,如圖3所示。所需要的+2.5V電壓基準(zhǔn)可以由MSP430F149提供。
軟件設(shè)計
本系統(tǒng)的軟件設(shè)計主要包括單片機(jī)程序、USB驅(qū)動程序、PC機(jī)應(yīng)用程序。單片機(jī)部分的程序也稱為固件,它包括USB設(shè)備的連接、USB協(xié)議和中斷處理等。PDIUSBD12可以按照USB1.1協(xié)議對數(shù)據(jù)進(jìn)行封裝,然后與PC機(jī)進(jìn)行數(shù)據(jù)交換。MSP430根據(jù)接受到的命令通過PDIUSBD12與PC機(jī)的應(yīng)用程序進(jìn)行交互。
MSP430向PDIUSBD12發(fā)送數(shù)據(jù)/命令部分程序如下:
void outportb(unsigned char port, unsigned char val)
{
P1OUT&=0xBF; /使PDIUSBD12的WR引腳為低電平
P5DIR=0xFF; /P5口為輸出模式
if(port)
P1OUT =A0; /A0為高電平,傳輸命令
else
P1OUT&=~A0; /A0為低電平,傳輸數(shù)據(jù) <!-- adcode -->





