基于USB總線和Aduc831的數(shù)據(jù)采集系統(tǒng)的設(shè)計方案
出處:chunyang 發(fā)布于:2011-08-11 22:34:41
由于信息網(wǎng)絡(luò)化的發(fā)展,經(jīng)常需要將各種設(shè)備與主機相連,傳統(tǒng)的外設(shè)與主機的信息化代表了一種信息技術(shù)被高度應(yīng)用,信息資源被高度共享,從而使得人的智能潛力以及社會物質(zhì)資源潛力被充分發(fā)揮,個人行為、組織決策和社會運行趨于合理化的理想狀態(tài)。同時信息化也是IT產(chǎn)業(yè)發(fā)展與IT在社會經(jīng)濟各部門擴散的基礎(chǔ)之上的,不斷運用IT改造傳統(tǒng)的經(jīng)濟、社會結(jié)構(gòu)從而通往如前所述的理想狀態(tài)的一個持續(xù)的過程。通訊接口一般是基于PCI總線、ISA總線或者是RS-232C串行總線。PCI總線是一種不依附于某個具體處理器的局部總線。從結(jié)構(gòu)上看,PCI是在CPU和原來的系統(tǒng)總線之間插入的總線,具體由一個橋接電路實現(xiàn)對這一層的管理,并實現(xiàn)上下之間的接口以協(xié)調(diào)數(shù)據(jù)的傳送。管理器提供了信號緩沖,使之能支持10種外設(shè),并能在高時鐘頻率下保持高性能。PCI總線也支持總線主控技術(shù),允許智能設(shè)備在需要時取得總線控制權(quán),以加速數(shù)據(jù)傳送。
1.USB簡介
1.1USB特點
USB的英文全稱為Universal Serial Bus,它是一種快速、雙向、同步傳輸?shù)牧畠r的并可以進行熱拔插的串行接口。它的特點主要有:
1)速度快。速度性能是USB技術(shù)的突出特點之一。USB接口的傳輸率可達每秒12Mb,比串口快了整整100倍,比并口也快了十多倍。
2) 設(shè)備安裝和配置容易。安裝USB設(shè)備不必再打開機箱,加減已安裝過的設(shè)備完全不用關(guān)閉計算機。所有USB設(shè)備均支持熱插拔,且易于擴展。
3) 使用靈活。USB接口支持多個不同設(shè)備的串列連接,一個USB口理論上可以連接127個USB設(shè)備。連接的方式也十分靈活,既可以使用串行連接,也可以使用中樞轉(zhuǎn)接頭(Hub),把多個設(shè)備連接在一起,再同PC機的USB口相接。在 USB方式下,所有的外設(shè)都在機箱外連接,連接外設(shè)不必再打開機箱;允許外設(shè)熱插拔,而不必關(guān)閉主機電源。USB采用 "級聯(lián)"方式,即每個USB設(shè)備用一個USB 插頭連接到一個外設(shè)的USB插座上,而其本身又提供一個USB插座供下一個USB外設(shè)連接 用。通過這種類似菊花鏈式的連接,一個USB控制器可以連接多達127個外設(shè),而每個外 設(shè)間距離(線纜長度)可達5米。
1.2 USB總線協(xié)議
USB總線屬于一種輪訊方式總線,主機控制端口初始化所有的數(shù)據(jù)傳輸。每一總線動作多傳送三個數(shù)據(jù)包,包括令牌(Token)、數(shù)據(jù)(Data)、聯(lián)絡(luò)(HandShake)。按照傳輸前制定好的原則,在每次傳送開始時,主機送一個描述傳輸動作的種類、方向、USB設(shè)備地址和終端號的USB數(shù)據(jù)包,這個數(shù)據(jù)包通常被稱為令牌包(TokenPacket)。USB設(shè)備從解碼后的數(shù)據(jù)包的適當位置取出屬于自己的數(shù)據(jù)。數(shù)據(jù)傳輸方向不是從主機到設(shè)備就是從設(shè)備到主機。在傳輸開始時,由標志包來標志數(shù)據(jù)的傳輸方向,然后發(fā)送端開始發(fā)送包含信息的數(shù)據(jù)包或表明沒有數(shù)據(jù)傳送。接收端也要相應(yīng)發(fā)送一個握手的數(shù)據(jù)包表明是否傳送成功。
2. 硬件設(shè)計
2.1 Aduc831簡介
ADuC831 是一個完全綜合的247 k采樣保持數(shù)據(jù)采集系統(tǒng),在同一片中 結(jié)合了高性能的自校準12位 ADC 多路通道,雙12位 DAC通道和可編程8位 MCU.微處理器是 8052,提供片內(nèi) 62 kB 非易失性閃速/電擦除程序存儲器。還提供片內(nèi) 4 kB 非易失性閃速/電擦除數(shù)據(jù)存儲器、256 b RAM 和2 kB 擴展 RAM.
ADuC831 還提供額外的電源監(jiān)視器, 和一個高參考源。片內(nèi)數(shù)字外圍設(shè)備包括2個16位Σ-Δ DAC, 雙輸出16位 PWM,看門狗定時器, 定時間隔計數(shù)器,3個定時器/計數(shù)器, 定時器 3用于波特率產(chǎn)生核 串行接口 I/O (I2C, SPI 和UART) .
并且片內(nèi)提供串行和調(diào)試模式 (通過 UART), 并且通過EA引腳提供單引腳競爭模式。ADuC831 支持 QuickStart 和 QuickStart Plus 升級系統(tǒng)和低成本的軟件和硬件工具。
2.2 USBN9603簡介
USBN9603是一個集成的USB端點控制器,具有增強的DMA功能。USBN9603集成了一個帶有3.3V的調(diào)節(jié)器的收發(fā)器,1個SIE(串行接口引擎),1個8 b并行接口,1個時鐘發(fā)生器和1個MICROWIRE/PLUS接口。USBN9603可以進行7個端點的數(shù)據(jù)傳輸,除了1個端點必須為控制傳輸端點以外,其他的6個端點可以被配置成中斷傳輸端點、批量傳輸端點或者等時傳輸端點;每一個端點都有一個專門的FIFO,控制端點的FIFO長度為8B,其他的為64B.8 b并行接口可以支持多路復(fù)用或者非多路復(fù)用2種與CPU的接口方式。USBN9603的突出特點為:低EMI(電磁干擾),低等待電流,24M晶振,增強的DMA功能;可使用5V或3.3V電源;總線操作具有異步喚醒的全速靜態(tài)HALT模式;改進的3.3V電壓輸入的電壓調(diào)節(jié)器,所有非雙向端點都有64B 的FIFO;外部控制器接口簡單,編程方便。

2.3 原理圖設(shè)計
USB數(shù)據(jù)采集系統(tǒng)硬件模塊主要由Aduc831芯片、USB接口芯片USBN9603組成。硬件結(jié)構(gòu)簡單,硬件總體結(jié)構(gòu)框圖如圖1所示。
模擬輸入信號A/D轉(zhuǎn)換器,轉(zhuǎn)換結(jié)果存儲在FIFO存儲器中;一旦FIFO存滿,SIE立刻對數(shù)據(jù)進行處理,然后Aduc831系統(tǒng)將數(shù)據(jù)從FIFO存儲器中讀出,由收發(fā)器通過數(shù)據(jù)線(D+、D-)送至主機。
當USB控制器從USB總線檢測到主機啟動的某一傳輸請求后,通過中斷方式將此請求通知Aduc831系統(tǒng),Aduc831系統(tǒng)通過訪問USB控制器的狀態(tài)寄存器和數(shù)據(jù)寄存器獲得與此次傳輸有關(guān)的各種參數(shù),并根據(jù)具體的傳輸參數(shù),對USB控制器的控制寄存器和數(shù)據(jù)寄存器進行相應(yīng)的操作,以完成主機的傳輸請求。Aduc831與USBN9603接口電路如圖2所示。
3. 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件主要包括:控制程序和USB設(shè)備驅(qū)動程序。

3.1 控制程序
程序控制法即對經(jīng)常性的重復(fù)出現(xiàn)的業(yè)務(wù),要求執(zhí)行人員按規(guī)定的標準化程序來完成,以保證業(yè)務(wù)處理質(zhì)量達到控制目標和要求。程序控制要求按照牽制的原則進行程序設(shè)置,所有的主要業(yè)務(wù)活動都要建立切實可行的辦理程序。即:按生產(chǎn)流程,每道工序的終點為程序控制點, 每道工序的終點的生產(chǎn)者為質(zhì)量控制者,對不合格的加工、 不合格的配制有責任也有權(quán)提出改正, 這樣使每個人在生產(chǎn)過程都受到監(jiān)控。
既然程序也是計劃,因而程序的設(shè)計必須考慮到有助于實現(xiàn)整個組織的(而不僅僅是個別部門的)目標和提高整個組織的效率。主管人員應(yīng)當向自己提出如下的問題并作出滿意的回答:程序是否已計劃好?如果建立某一程序是必要的,那么所設(shè)計的程序能否收到預(yù)期的效果?能否有助于實現(xiàn)計劃?舉個例子,間接材料的發(fā)放程序必須起到監(jiān)督間接材料的領(lǐng)用、控制間接材料的消耗、加強成本核算、降低成本、提高企業(yè)經(jīng)濟效率的作用。
控制程序主要功能有控制A/D采樣, 控制USBN9603接受并處理USB驅(qū)動程序的請求及應(yīng)用程序的控制指令不用仿真機,不用傳統(tǒng)的方法向EEPROM中燒制程序,所以調(diào)試起來非常方便??刂瞥绦蛄鞒?、中斷處理程序如圖3、4所示。
3.2 USB設(shè)備驅(qū)動程序設(shè)計

USB設(shè)備驅(qū)動程序基于WDM.WDM
型驅(qū)動程序是內(nèi)核程序,與標準的Win32用戶態(tài)程序不同。采用了分層處理的方法, 較的USB設(shè)備驅(qū)動程序和較低級的USB函數(shù)層。其中USB函數(shù)層由兩部分組成:較的通用串行總線模塊(USBD)和較低級的主控制器驅(qū)動程序模塊(HCD)。USB設(shè)備驅(qū)動程序不必具體對硬件編程,所有的USB命令、讀寫操作通過總線驅(qū)動程序轉(zhuǎn)給USB設(shè)備。但是,USB設(shè)備驅(qū)動程序必須定義與外部設(shè)備的通訊接口和通訊的數(shù)據(jù)格式,也必須定義與應(yīng)用程序的接口。Windows環(huán)境下驅(qū)動程序共有三類,一類是VxD( Virtual Device Driver,虛擬設(shè)備驅(qū)動程序),起源于Windows 3.1 時代,用于Windows 95/98/Me操作系統(tǒng)中;一類是KMD( Kernel Mode Driver,內(nèi)核模式驅(qū)動程序),用于Windows NT下;還有一類就是WDM(Win32 Driver Mode,Win32驅(qū)動程序模型),是微軟從Windows 98開始,推出的一個新的驅(qū)動類型,它是一個跨平臺的驅(qū)動程序模型,不僅如此WDM驅(qū)動程序還可以在不修改源代碼的情況下經(jīng)過重新編譯后在非Intel平臺上運行,毫不夸張地講,WDM算得上是21世紀的驅(qū)動程序框架。另外,所有對各種IRP(I/O請求包)的處理例程都在此入口函數(shù)中作為定義。
DriverEntry(IN PDRIVER_OBJECT DriverObject,…) //驅(qū)動程序入口
{
DriverObject->DriverExtension->AddDevice=USBAddDevice;
DriverObject->DriverUnload=USBUnload;
DriverObject->MajorFunction[IRP_MJ_READ]=USBRead;
DriverObject->MajorFunction[IRP_MJ_WRITE]=USBWrite;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = USBDeviceControl;
RegisterForPnpNotification(DriverObject);
return status;
}

電源管理模塊負責設(shè)備的掛起與喚醒
I/O功能實現(xiàn)模塊完成I/O請求的大部分工作。若應(yīng)用程序想對設(shè)備進行I/O操作,它便使用Windows API函數(shù),對WIN32子系統(tǒng)進行WIN32調(diào)用。此調(diào)用由I/O系統(tǒng)服務(wù)接收并通知I/O管理器,I/O管理將此請求構(gòu)造成一個合適的I/O請求包(IRP)并把它傳遞給USB設(shè)備驅(qū)動程序。USB設(shè)備驅(qū)動程序接收到這個IRP以后,根據(jù)IRP中包含的具體操作代碼,構(gòu)造相應(yīng)的USB請求塊并把此 URB(USB請求塊)放到一個新的IRP中。然后,把此IRP傳遞到USB總線驅(qū)動程序,USB總線驅(qū)動程序根據(jù)IRP中所含的URB執(zhí)行相應(yīng)的操作(如從USB設(shè)備讀取數(shù)據(jù)等),并把操作結(jié)構(gòu)通過IRP返還給USB設(shè)備驅(qū)動程序。USB設(shè)備驅(qū)動程序接收到此IRP后,將操作結(jié)果通過IRP返還給 I/O管理器。,I/O管理器將此IRP中操作結(jié)果返還給應(yīng)用程序,至此應(yīng)用程序?qū)SB設(shè)備的I/O操作完成。
結(jié)束語:
USB為計算機外設(shè)輸入輸出提供了新的接口標準。它使設(shè)備具有熱插拔,即插即用,自動配置的能力,并標準化設(shè)備連接, 還可與MAX
485結(jié)合起來實現(xiàn)數(shù)據(jù)的遠程采集。該系統(tǒng)具有可靠性高、性價比高和多點采集等優(yōu)點。而USB2.0標準具有更高的傳輸速率,更具有美好的應(yīng)用前景。
即插即用管理模塊用來實現(xiàn)USB設(shè)備的熱插拔及動態(tài)配置。當硬件檢測到有USB設(shè)備接入時,Windows98查找響應(yīng)的驅(qū)動程序,并調(diào)用它的 DriverEntry例程。PnP(即插即用)管理器調(diào)用驅(qū)動程序的AddDevice例程,告訴它添加了一個設(shè)備。在此處理過程中,驅(qū)動程序收到一個設(shè)備啟動請求(IRP_MN_START_DEVICE)的IRP.同理,當要拔除時,PnP管理器會發(fā)出一個設(shè)備刪除請求(IRP_MN_REMOVE_DEVICE)的IRP,由驅(qū)動程序進行處理。通過對這些PnP請求的處理,可支持設(shè)備的熱插拔和即插即用
參考文獻:
[1]. PCI datasheet http://www.hbjingang.com/datasheet/PCI_1201469.html.
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52









