馮劍亮

摘 要? ?隨著電子信息技術的不斷發展,我國已經逐漸的步入到了大數據時代。在這一時代背景下,諸多研究學者已經積極努力的投身于模擬信號采集器的研究當中。本文分析了通過設計一個基于C8051F320芯片的多功能模擬信號采集器,實現對模擬信號的采集,并對信號進行A/D轉換傳輸,實現USB總線傳輸利用PC機對信號進行分析、存儲、處理。
關鍵詞? ? C8051F320芯片? ? USB總線? ? 程序編寫
一、引言
現今工業生產過程中都是連續或成批的工作,需要嚴格的過程控制和安全措施,需要對一些模擬量(如電流、壓強、液體流量等)進行數據采集完成各類數據采集任務,并對數據進行處理,從而實現提供生產過程數據和動態監控等功能。在當今衛星通訊,無線通信,導航系統等設備中模擬信號采集器應用廣泛,是通信技術的基礎部件,在智能儀器、信號處理以及工業自動控制等領域中也起著重要的基礎作用。需要對生產環節的數據進行實時采集的數據采集系統,在整個生產過程中,發揮著非常重要的作用。目前,USB設備在國外的應用比較廣泛,在國內的應用處于起步階段。USB數據采集在USB工業控制等領域已經取得一定成果,尤其是在工業生產、醫用領域。各種基于USB的信號采集器必將以其高性價比,體積小,便于攜帶和使用等特點廣泛應用于各行各業。
二、USB總線的概念及優點
1、USB總線的概念
USB指的是讓計算機設備進行連接的簡單化接口,其規格主要是Intel以及NEC等共同制定的。USB總線,即“通用串行總線”,是英文Universal Serial Bus的縮寫它是應用在計算機領域中的接口技術,主要使用把USB設備與主機總線結構進行有效的連接,是對低速與中速的外設[1]。USB系統可分為USB主機、USB互連、USB設備這三個邏輯層。
2、USB總線的優點
(1)USB可以為全部的外設進行單一連接類型的提供,有效的達到數據的通用性接口,其使用起來十分便利。
(2)USB系統擁有一個中斷與端口,這在很大程度上使系統資源被節約。
(3)USB支持熱插拔(hot plug)和PNP(Plug-and-Play)。也就是說,在PC不被關閉的現象下,能夠讓USB設備被安全斷開與插上,計算機相關系統能夠對外設插拔情況進行檢測,并且是驅動程序得以加載。
(4)可連接鼠標、鍵盤、打印機、掃描儀、攝像頭等幾乎所有的外部設備。要相對不同設備要求進行適應,USB所提供的數據傳輸主要有四種類型,分別是控制、Bulk數據、中斷數據以及同步數據等傳輸類型。同步數據的傳輸能夠為視頻與音頻進行帶寬的提供。
三、USB接口
全低速USB功能控制器主要是C8051F320集成器件,進行這項工作的主要目的就是將挖外部的USB接口的功能實現。通常將2.0版串行通用串行總線作為USB功能收發控制器的主要工作規范[2]。其工作原理如圖1所示。
圖1? USB原理框圖
對USB0控制寄存器的訪問時通過兩個特殊功能寄存器來完成這項工作的。在將INDEX寄存器進行寫入目標端號之后,就能夠進行相應狀態/控制的寄存器訪問。
四、軟件應用
負責操控系統初始化操作的是主程序,其主要進行的工作是轉換啟動A/D以及對系統的應用程序運行的情況進行測試。
1、ADC數據采集
負責將傳感器里面的模擬信號轉變成數字信號的程序是ADC數據采集程序。而在這個系統里面,Timer2出現自動溢出的情況是觸發ADC的轉換的前提條件。而要想進行A/D轉換器采樣周期的界定工作需要進行C8051F320芯片上的定時器設置,并且利用這些被測數據完成測樣工作。
2、A/D轉換中斷處理
由于C8051F320內部已經集成了ADC、FIFO和USB接口,所以數據采集最為復雜的A/D轉換和傳輸問題都可以用一個芯片解決,在芯片外只需加一些控制電路,如濾波、復位電路等,即可完成對模擬數據的采集、轉換和傳輸工作。
系統運行過程中,USB通信程序以及A/D轉換這兩項工作時交替進行的,而對其運行起到決定性作用的因素是MCU,當端點1的緩沖區里面有等待讀取的數據出現的時候,MCU正式進行數據讀取工作;假如這個命令是要求啟動的,這個時候就要進行控制芯片USB的關閉工作,這個時候會USB會展開通信,并且A/D會呈現中斷狀態。而當模擬開關1這個多通道就會呈現接通的狀態,這個時候A/D轉換啟動;而A/D轉換工作正式進行的時候,這個時候會出現中斷的情況,會先對低4位以及高8位的轉換結果進行讀取,在完成這項工作之后進行下一項任務,這個時候重新將A/D轉換啟動;按順序循環進行工作,直至將8通道里面所有的數據都完成轉換為止。之后進行禁止中斷A/D操作,使用USB中斷的操作方式進行工作,并且向主機利用USB控制器芯片進行轉換結果的傳輸,并等候之后數據的來臨[3]。
五、USB通信程序
開發USB設備工作過程里面一項十分重要的任務就是進行固件編程工作。而對外設以及單片機進行初始就是固件的主要工作目標,并進行USB請求的發送,并完成相應的數據交換工作。而進行初始化編程工作主要的任務目標就是完成控制器使能、系統時鐘設置、I/O口和初始化以及初始化USB控制器的工作,在完成初始化工作之后,可以在主機里面插入USB設備,主機會根據USB協議進行初始化以及識別設備。
進行USB設計總線開發的關鍵就是進行客戶端驅動程序設計。這種采用的驅動模型是分層的WDM,利用這種方式可以不用直接和硬件進行操作,僅僅需要利用相應的驅動程序進行硬件的訪問就可以了。而一旦要對設備進行I/O操作的時候,就需要利用Windows API函數進行工作。而USB功能驅動程序進行工作的方式主要就是利用USB總線驅動程序進行USB總線接口的訪問工作,通過USB總線驅動程序可以進行所有的低層I/O的處理工作,因此,這一程序工作驅動只需要注意怎樣進行數據處理、傳輸管道、傳輸時序以及傳輸類型情況。
結語
總之,隨著科學技術的迅速發展進步,相應的USB進行數據傳輸的速度也在不斷地提升,會有更多相應USB設備的出現。但是如今數據采集系統的可拓展性比較差,安裝比較繁瑣,價格較貴,所以本文進行了一個以USB總線接口為基礎的數據采集系統設計。該系統安裝方便,電路也很簡單,可以隨時應用,能夠有效的完成采集各種數據的任務。
參考文獻
[1]馮博琴.微型計算機原理與接口技術.清華大學出版社,2002:30-69.
[2]舒劍,曾桂英.基于C8051F020的USB多路模擬信號采集器設計.吉林師范大學學報(自然科學版),2009,2(1):7-9.
[3]Silicon laboratories.USBXpress Development Kit Programmers Guide.AN169.