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