引 言
在工業(yè)控制現(xiàn)場,常常需要采集多路的現(xiàn)場數(shù)據(jù),,如電壓,、電流、溫度,、濕度,、氣壓等。數(shù)據(jù)采集器將現(xiàn)場的模擬量經(jīng)過A/D轉(zhuǎn)換后變成數(shù)字量并傳輸?shù)街鳈C進行處理,,由主機根據(jù)處理的結(jié)果,,將控制信號傳輸給現(xiàn)場執(zhí)行模塊進行各種操作。由于有些工業(yè)現(xiàn)場需要對現(xiàn)場的模擬量進行高速A/D數(shù)據(jù)采集,,目前常用的數(shù)據(jù)傳輸網(wǎng)絡(如RS232/RS485,,CAN等)已經(jīng)不能滿足大量采集數(shù)據(jù)和高速實時數(shù)據(jù)傳輸?shù)囊蟆6?a class="innerlink" href="http://forexkbc.com/tags/USB" title="USB" target="_blank">USB傳輸具有高速可靠傳輸?shù)膬?yōu)勢,,具有成本低,、可靠性高、維護方便等優(yōu)點,。本文介紹一個基于C8051F060的USB高速A/D數(shù)據(jù)采集器,。通過本系統(tǒng),不僅能了解數(shù)據(jù)采集的一般過程以及一般數(shù)據(jù)采集系統(tǒng)的構(gòu)成,,還能了解C8051F060單片機,、USBl00模塊的功能。該系統(tǒng)最高傳輸速度可達8 Mbps,。
1 系統(tǒng)原理
該系統(tǒng)由工控機,、USBl00、C805lF060單片機,、多路模擬切換開關、四路模擬運算放大器,、可反復充放電的鋰離子電池等構(gòu)成,。系統(tǒng)電路原理框圖如圖1所示,。
1.1 C8051F060單片機
C8051F060是Silicon Laboratories公司推出的完全集成的混合信號片上系統(tǒng)型MCU。具有59個數(shù)字I/0引腳,,片內(nèi)集成了2個16位,、1 Msps的ADC;有與高速流水線結(jié)構(gòu)的8051兼容的CIP一51內(nèi)核(可達25MIPS),,有DMA控制器和局域網(wǎng)(CAN2.OB)控制器,;32個消息對象,每個消息對象有自己的標識屏蔽,;具有全速,、非侵入式的在系統(tǒng)調(diào)試接口(片內(nèi)),10位,、200 ksps的ADC,,帶8通道模擬多路開關,2個12位DAC,;具有可編程數(shù)據(jù)更新方式,;64 KB可在系統(tǒng)編程的Flash內(nèi)存,4352(4K+256)字節(jié)的片內(nèi)RAM,,可尋址64 KB地址空間的外部數(shù)據(jù)存儲器接口,,硬件實現(xiàn)的SPI、SMBus/I2C和2個UART串行接口,;5個通用的16位定時器,,6個捕捉/比較模塊的可編程計數(shù)器/定時器數(shù)組,片內(nèi)看門狗定時器,、VDD監(jiān)視器,、時鐘振蕩器和溫度傳感器。
關鍵字:C8051F060 USB AD數(shù)據(jù)采集器
C8051F060是真正能獨立工作的片上系統(tǒng),。所有模擬和數(shù)字外設均可由用戶固件使能/禁止和配置,。Flash存儲器還具有在系統(tǒng)重新編程能力,可用于非易失性數(shù)據(jù)存儲,,并允許現(xiàn)場更新8051固件,。
C8051F060單片機的P0.O配置為外部中斷源(INT0)。P0.1配置為外部中斷源(INTl),,下降沿觸發(fā)輸入,,當USBl00模塊接收到工控機數(shù)據(jù)時觸發(fā)INTl中斷。PO.2配置為通用I/0,,當電池電壓低到一定程度時被MCU檢測到并做低電壓處理,。P3.0~P3.7配置為通用I/0,P3.0用于驅(qū)動發(fā)光二極管,,P3.1用作USBl00的寫控制線,,P3.2用作USBl00的讀控制線,,P3.3、P3.4用作模擬控制開關的控制線,,P3.5用于控制傳感器的供電(當不需要采集數(shù)據(jù)時關掉傳感器電源以減少系統(tǒng)功耗),,P3.6、P3.7用作電平轉(zhuǎn)換芯片74ALVCl64245的數(shù)據(jù)方向選擇控制線,。P1配置為通用I/O,,作為8位并行數(shù)據(jù)線。P5配置為通用I/O,,作為8位撥碼開關的輸入,,用8位撥碼開關設定MCU的數(shù)據(jù)采集速度。C8051F060接線圖如圖2所示,。
1.2 USBl00通用串行總線模塊
USBlOO是基于ASIC設計的,,內(nèi)部封裝了USBl.1全部協(xié)議以及300位元組的內(nèi)部FIF0,8位并行數(shù)據(jù)接口,,對USB的操作類似于對外部內(nèi)存的操作,,由USBl00模塊完成全部協(xié)議的轉(zhuǎn)換和封裝,使開發(fā)的過程變得簡單,。注意:由于USBlOO輸出TTL電平的數(shù)據(jù),,可以與5V的單片機很好地連接,而C8051F060是3.3 V的系統(tǒng),,為了系統(tǒng)的穩(wěn)定性,,中間需要增加3~5 V電平轉(zhuǎn)換電路。
DO~D7:數(shù)據(jù)口是一個8位雙向I/0口,。它是一個8位并口,,C8051F060通過它和USBlOO交換數(shù)據(jù)。
RD:允許內(nèi)部接收緩沖區(qū)數(shù)據(jù)通過8位并行總線讀出,。
WR:將8位并行總線上的數(shù)據(jù)鎖存入內(nèi)部緩沖區(qū),。
TXE:高表示模塊發(fā)送緩沖區(qū)已滿;低表示發(fā)送緩沖區(qū)為空,,可以發(fā)送數(shù)據(jù),。
RXF:高表示模塊沒有數(shù)據(jù)輸出;低表示模塊有數(shù)據(jù)輸出,,可以讀數(shù)據(jù),。
LISBVCC:USB界面的電源腳。
D+:USB數(shù)據(jù)腳,。
D一:USB數(shù)據(jù)腳,。
GND:電源地。
0UTVCC:+5V輸出,可以提供給外部MCU使用,,最大為400 mA,。
NC:空引腳。
USBl00模塊的控制時序:
發(fā)送時序如圖3所示,。當單片機檢測到USBl00模塊TXE為低時,表示內(nèi)部發(fā)送緩沖區(qū)允許發(fā)送數(shù)據(jù),,可以將數(shù)據(jù)通過8位數(shù)據(jù)總線DO~D7發(fā)給USBl00模塊,,發(fā)送數(shù)據(jù)鎖存由WR控制;USBl00模塊TXE為高時,,禁止發(fā)送數(shù)據(jù),。
接收時序如圖4所示,當單片機檢測到USBl00模塊RXF為低時,,表示內(nèi)部接收緩沖區(qū)有數(shù)據(jù),,可以通過8位數(shù)據(jù)總線DO~D7發(fā)給C8051F060單片機,接收數(shù)據(jù)鎖存由RD控制,。
1.3 多路模擬切換開關
因為C8051F060只有2路高速A/D轉(zhuǎn)換器,,而實際上有4路模擬量需要采集,故需要一個多路模擬切換開關,。NLAS4684是兩路單刀雙執(zhí)CMOS模擬切換開關,,具有很低的導通電阻。當ADO_CON,、ADl_CON為高電平時,運放的輸出OUT2進入ADO進行A/D轉(zhuǎn)換,,運放的輸出OUT4進入ADl進行A/D轉(zhuǎn)換,;當ADO_CON、ADl_CON為低電平時,,運放的輸出OUTl進入ADO進行A/D轉(zhuǎn)換,,運放的輸出OUT3進入AD1進行A/D轉(zhuǎn)換,如圖5所示,。
1.4 模擬運算放大電路
LM134,、R1、R2,、D1構(gòu)成恒流源電路,,對橋式電路傳感器提供恒流源。橋式電路傳感器輸出信號INl+,、INl一經(jīng)INA326EA放大后送入多路模擬切換開關,,然后由C805lF060的A/D電路進行A/D轉(zhuǎn)換。INA326EA是一款單電壓供電、高性能,、低功耗,、滿幅度輸入輸出的儀表運算放大器。運算放大器電路放大倍數(shù)G=2K1/R3,??偣灿?路模擬運算放大電路。圖6為其中一路模擬運算放大電路,。
1.5 供電電路
為了符合工業(yè)現(xiàn)場便攜式的需要,,選用上海捷士電池制品有限公司的JS一7.4V一1.2Ah可反復充放電的鋰離子電池。電池采用鋰離子083448電芯,,組合方式為兩串,,電池容量1.2 Ah,電池電壓7.4 V,,外形尺寸50 mm×37mm×17 mm,,重量55 g。該電池具有電池過充保護,、過放保護,、短路保護、過流保護功能(這些功能已經(jīng)集成在電池內(nèi)部,,便于使用),。TPS76650[)是具有250 mA輸出能力的LDO芯片,電池電壓通過該芯片的5,、6腳輸入,7腳輸出穩(wěn)定的+5 V電壓供系統(tǒng)使用,;2腳是對TPS76650D是否工作正常的指示輸出,,當芯片工作正常時,2腳輸出高電平,,當芯片輸出電壓在4.6~4.9 V時,2腳輸出低電
平,,R1為外部上拉電阻,。TPSll00為大電流驅(qū)動能力、低導通電阻的電源分配開關,;輸出5 V電壓為傳感器電路提供恒流源,,通過SPXlll7穩(wěn)壓成3.3 V為傳感器放大電路供電,。為了節(jié)省耗電,,C8051F060可以通過TPSll00的4腳關掉傳感器電路的恒流源和放大電路,。
另外,當采集器和計算機通過USB相接時,,因為USB提供+5 V/500 mA電源,采集器可以通過USB連接線對采集器供電,。供電電路如圖7所示,。
2 采集系統(tǒng)的編程
2.1 單片機編程
采用Silicon公司的Silicon Laboratories IDE集成編輯、編譯,、仿真,、下載軟件包,用C語言進行軟件編寫,。系統(tǒng)通電后,,首先要對單片機進行初始化,,包括單片機的I/0端口和交叉開關、定時器的初始化,,A/D轉(zhuǎn)換器的初始化以及A/D參考電壓的初始化等,。工控機通過USB口對便攜式數(shù)據(jù)采集器發(fā)送0x41、0x42,、0x43,、0x4_4,便攜式數(shù)據(jù)采集器分別回送傳感器1,、2,、2、4的200個A/D采集數(shù)據(jù),,高位在前,,低位在后。(部分源代碼程序略——編者注)
2.2 工控機編程
在工控機上安裝好USBlOO模塊的專用驅(qū)動程序后,,USBl00即可作為一個標準的設備,,按照與串口完全一樣的方法進行編程。本次設計采用了VB編程,。在VB中采用MSComm控件,,將USB接口作為一個標準的串口使用。程序分為兩部分:一部分是USB接口程序,;另一部分是應用程序,。將由C8051F060采集到的數(shù)據(jù)用直觀的圖像方法顯示出來。
結(jié) 語
C8051F060作為新一代8051單片機,,具有功能強大,、體積小、工作穩(wěn)定等特點,適用于復雜控制系統(tǒng),。本文只介紹了基于C8051F060的USB高速A/D數(shù)據(jù)采集器,。數(shù)據(jù)采集器已經(jīng)成功運用于某工程中,。對其他相類似的數(shù)據(jù)采集,、USB數(shù)據(jù)傳輸應用具有一定的參考價值。