《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于USB總線和Aduc831單片機(jī)的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
基于USB總線和Aduc831單片機(jī)的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
摘要: 由于信息網(wǎng)絡(luò)化的發(fā)展,經(jīng)常需要將各種設(shè)備與主機(jī)相連,傳統(tǒng)的外設(shè)與主機(jī)的通訊接口一般是基于PCI總線、ISA總線或者是RS-232C串行總線。 PCI總線雖具有高的傳輸速度(132Mbps)С即插即用"功能,但其缺點(diǎn)是插拔麻煩,且擴(kuò)展槽有限(一般為5~6個)。ISA總線顯然存在著同樣的問題。RS-232C串行總線雖然連接簡單,但其缺點(diǎn)是傳輸速度慢(56kbps). 而通用串行總線(Universal Serial Bus,簡稱USB)的出現(xiàn)能很好地解決以上這些沖突。我們利用新型高性能單片機(jī)Aduc831設(shè)
Abstract:
Key words :

  由于信息網(wǎng)絡(luò)化的發(fā)展,經(jīng)常需要將各種設(shè)備與主機(jī)相連,傳統(tǒng)的外設(shè)與主機(jī)的通訊接口一般是基于PCI總線、ISA總線或者是RS-232C串行總線。 PCI總線雖具有高的傳輸速度(132Mbps)С即插即用"功能,但其缺點(diǎn)是插拔麻煩,且擴(kuò)展槽有限(一般為5~6個)。ISA總線顯然存在著同樣的問題。RS-232C串行總線雖然連接簡單,但其缺點(diǎn)是傳輸速度慢(56kbps). 而通用串行總線(Universal Serial Bus,簡稱USB)的出現(xiàn)能很好地解決以上這些沖突。我們利用新型高性能單片機(jī)Aduc831設(shè)計(jì)了基于USB總線的數(shù)據(jù)采集系統(tǒng)。
  
1.USB簡介

1.1USB特點(diǎn)
  
  USB的英文全稱為Universal Serial Bus,它是一種快速、雙向、同步傳輸?shù)牧畠r的并可以進(jìn)行熱拔插的串行接口。它的特點(diǎn)主要有:
  
  1)速度快。USB有高速和低速兩種方式,主模式為高速模式,速率為12Mbps,另外為了適應(yīng)一些不需要很大吞吐量和很高實(shí)時性的設(shè)備,如鼠標(biāo)等,USB還提供低速方式,速率為1.5Mb/s。
  2) 設(shè)備安裝和配置容易。安裝USB設(shè)備不必再打開機(jī)箱,加減已
安裝過的設(shè)備完全不用關(guān)閉計(jì)算機(jī)。所有USB設(shè)備均支持熱插拔,且易于擴(kuò)展。
  3) 使用靈活。USB共有4種傳輸模式:控制傳輸(control)、同步傳輸(Synchronization)、中斷傳輸(interrupt)、批量傳輸(bulk),以適應(yīng)不同設(shè)備的需要。

1.2 USB總線協(xié)議
  
  USB總線屬一種輪訊方式的總線,主機(jī)控制端口初始化所有的數(shù)據(jù)傳輸。
 
  每一總線執(zhí)行動作最多傳送三個數(shù)據(jù)包。按照傳輸前制定好的原則,在每次傳送開始時,主機(jī)控制器發(fā)送一個描述傳輸運(yùn)作的種類、方向,USB設(shè)備地址和終端號的USB數(shù)據(jù)包,這個數(shù)據(jù)包通常稱為標(biāo)志包(token packet)。USB設(shè)備從解碼后的數(shù)據(jù)包的適當(dāng)位置取出屬于自己的數(shù)據(jù)。數(shù)據(jù)傳輸方向不是從主機(jī)到設(shè)備就是從設(shè)備到主機(jī)。在傳輸開始時,由標(biāo)志包來標(biāo)志數(shù)據(jù)的傳輸方向,然后發(fā)送端開始發(fā)送包含信息的數(shù)據(jù)包或表明沒有數(shù)據(jù)傳送。接收端也要相應(yīng)發(fā)送一個握手的數(shù)據(jù)包表明是否傳送成功。發(fā)送端和接收端之間的 USB數(shù)據(jù)傳輸,在主機(jī)和設(shè)備的端口之間,可視為一個通道。存在兩種類型的通道:流和消息。流的數(shù)據(jù)不像消息的數(shù)據(jù),它沒有USB所定義的結(jié)構(gòu),而且通道與數(shù)據(jù)帶寬、傳送服務(wù)類型,端口特性(如方向和緩沖區(qū)大小)有關(guān)。多數(shù)通道在USB設(shè)備設(shè)置完成后即存在。USB中有一個特殊的通道——缺省控制通道,它屬于消息通道,當(dāng)設(shè)備一啟動即存在,從而為設(shè)備的設(shè)置、查詢狀況和輸入控制信息提供一個入口。

2. 硬件設(shè)計(jì)

2.1 Aduc831簡介

  ADuC831 是一個完全綜合的247 k采樣保持?jǐn)?shù)據(jù)采集系統(tǒng),在同一片中 結(jié)合了高性能的自校準(zhǔn)12位 ADC 多路通道,雙12位 DAC通道和可編程8位 MCU。微處理器核心是 8052,提供片內(nèi) 62 kB 非易失性閃速/電擦除程序存儲器。還提供片內(nèi) 4 kB 非易失性閃速/電擦除數(shù)據(jù)存儲器、256 b RAM 和2 kB 擴(kuò)展 RAM。

  ADuC831 還提供額外的電源監(jiān)視器, 和一個高精度參考源。片內(nèi)數(shù)字外圍設(shè)備包括2個16位Σ-Δ DAC, 雙輸出16位 PWM,看門狗定時器, 定時間隔計(jì)數(shù)器,3個定時器/計(jì)數(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端點(diǎn)控制器,具有增強(qiáng)的DMA功能。USBN9603集成了一個帶有3.3V的調(diào)節(jié)器的收發(fā)器,1個SIE(串行接口引擎),1個8 b并行接口,1個時鐘發(fā)生器和1個MICROWIRE/PLUS接口。USBN9603可以進(jìn)行7個端點(diǎn)的數(shù)據(jù)傳輸,除了1個端點(diǎn)必須為控制傳輸端點(diǎn)以外,其他的6個端點(diǎn)可以被配置成中斷傳輸端點(diǎn)、批量傳輸端點(diǎn)或者等時傳輸端點(diǎn);每一個端點(diǎn)都有一個專門的FIFO,控制端點(diǎn)的FIFO長度為8B,其他的為64B。8 b并行接口可以支持多路復(fù)用或者非多路復(fù)用2種與CPU的接口方式。USBN9603的突出特點(diǎn)為:低EMI(電磁干擾),低等待電流,24M晶振,增強(qiáng)的DMA功能;可使用5V或3.3V電源;總線操作具有異步喚醒的全速靜態(tài)HALT模式;改進(jìn)的3.3V電壓輸入的電壓調(diào)節(jié)器,所有非雙向端點(diǎn)都有64B 的FIFO;外部控制器接口簡單,編程方便。

2.3 原理圖設(shè)計(jì)

  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ù)進(jìn)行處理,然后Aduc831系統(tǒng)將數(shù)據(jù)從FIFO存儲器中讀出,由收發(fā)器通過數(shù)據(jù)線(D+、D-)送至主機(jī)。

  當(dāng)USB控制器從USB總線檢測到主機(jī)啟動的某一傳輸請求后,通過中斷方式將此請求通知Aduc831系統(tǒng),Aduc831系統(tǒng)通過訪問USB控制器的狀態(tài)寄存器和數(shù)據(jù)寄存器獲得與此次傳輸有關(guān)的各種參數(shù),并根據(jù)具體的傳輸參數(shù),對USB控制器的控制寄存器和數(shù)據(jù)寄存器進(jìn)行相應(yīng)的操作,以完成主機(jī)的傳輸請求。Aduc831與USBN9603接口電路如圖2所示。

3. 系統(tǒng)軟件設(shè)計(jì)

  系統(tǒng)軟件主要包括:控制程序和USB設(shè)備驅(qū)動程序

3.1 控制程序

  控制程序就是指在Aduc831中運(yùn)行的程序,對USB控制器的操作是嚴(yán)格按照USB協(xié)議1.1進(jìn)行的。在實(shí)際開發(fā)中使用了控制傳輸和塊傳輸兩種傳輸方式。控制傳輸主要用來完成主機(jī)對設(shè)備的各種控制操作,也就是用來實(shí)現(xiàn)位于主機(jī)上的USB總線驅(qū)動程序 (USBD.SYS)以及編寫的功能驅(qū)動程序?qū)υO(shè)備的各種控制操作。塊傳輸主要用來完成主機(jī)和設(shè)備間的大批量數(shù)據(jù)傳輸以及對傳輸數(shù)據(jù)進(jìn)行錯誤檢測(若發(fā)生錯誤,它支持“重傳”功能)。

  控制程序主要功能有控制A/D采樣, 控制USBN9603接受并處理USB驅(qū)動程序的請求及應(yīng)用程序的控制指令。因?yàn)锳duc831帶有串口下載功能,所以可以很方便的通過串口將程序下載到Aduc831中,不用仿真機(jī),不用傳統(tǒng)的方法向EEPROM中燒制程序,所以調(diào)試起來非常方便。控制程序流程、中斷處理程序如圖3、4所示。

3.2 USB設(shè)備驅(qū)動程序設(shè)計(jì)

  USB設(shè)備驅(qū)動程序基于WDM。WDM

  型驅(qū)動程序是內(nèi)核程序,與標(biāo)準(zhǔn)的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 98/2000提供了一系列的系統(tǒng)驅(qū)動程序,他們具有為許多標(biāo)準(zhǔn)類型設(shè)備服務(wù)所需的所有基本功能,用戶按照提示可以定義設(shè)備的配置和功能,然后做功能的修改即可。可以把USB設(shè)備驅(qū)動程序的功能劃分成4個不同的模塊來實(shí)現(xiàn):初始化模塊、即插即用管理模塊、電源管理模塊以及I/O功能實(shí)現(xiàn)模塊。初始化模塊提供1個入口函數(shù)DriverEntry(),在DriverEntry中,需要提供一個AddDevice例程,把驅(qū)動程序添加到驅(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;
}
功能。

  電源管理模塊負(fù)責(zé)設(shè)備的掛起與喚醒。

  I/O功能實(shí)現(xiàn)模塊完成I/O請求的大部分工作。若應(yīng)用程序想對設(shè)備進(jìn)行I/O操作,它便使用Windows API函數(shù),對WIN32子系統(tǒng)進(jìn)行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為計(jì)算機(jī)外設(shè)輸入輸出提供了新的接口標(biāo)準(zhǔn)。它使設(shè)備具有熱插拔,即插即用,自動配置的能力,并標(biāo)準(zhǔn)化設(shè)備連接, 還可與MAX
485結(jié)合起來實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程采集。該系統(tǒng)具有可靠性高、性價比高和多點(diǎn)采集等優(yōu)點(diǎn)。而USB2.0標(biāo)準(zhǔn)具有更高的傳輸速率,更具有美好的應(yīng)用前景。

參考文獻(xiàn):

1. Aduc831 datasheet.Analog device.
2. USB1.1.Universal serial bus specification S.
3. 張念淮、江浩.《USB總線接口開發(fā)指南》 國防工業(yè)出版社.

  即插即用管理模塊用來實(shí)現(xiàn)USB設(shè)備的熱插拔及動態(tài)配置。當(dāng)硬件檢測到有USB設(shè)備接入時,Windows98查找響應(yīng)的驅(qū)動程序,并調(diào)用它的 DriverEntry例程。PnP(即插即用)管理器調(diào)用驅(qū)動程序的AddDevice例程,告訴它添加了一個設(shè)備。在此處理過程中,驅(qū)動程序收到一個設(shè)備啟動請求(IRP_MN_START_DEVICE)的IRP。同理,當(dāng)要拔除時,PnP管理器會發(fā)出一個設(shè)備刪除請求(IRP_MN_REMOVE_DEVICE)的IRP,由驅(qū)動程序進(jìn)行處理。通過對這些PnP請求的處理,可支持設(shè)備的熱插拔和即插即用

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品黑人久久久| 亚洲午夜免费福利视频| 欧美日韩精品免费在线观看视频| 久久精精品视频| 欧美一级电影久久| 亚洲主播在线播放| 亚洲四色影视在线观看| 一本一本久久a久久精品牛牛影视| 亚洲电影在线免费观看| 欧美在线免费看| 午夜精品亚洲| 亚洲欧美精品一区| 亚洲一区二区三区免费在线观看 | 亚洲欧美成aⅴ人在线观看| 正在播放欧美一区| av不卡在线观看| 一本色道**综合亚洲精品蜜桃冫 | 中国av一区| 亚洲视频一区| 亚洲一区二区三区欧美| 亚洲男人的天堂在线aⅴ视频| 亚洲小少妇裸体bbw| 亚洲网站视频| 亚洲欧美日韩中文视频| 亚洲欧美国产77777| 亚洲欧美中文日韩v在线观看| 亚洲主播在线观看| 欧美一区二区三区的| 欧美诱惑福利视频| 久久精品1区| 亚洲精品乱码久久久久| 日韩视频在线你懂得| 一区二区av在线| 亚洲一区综合| 欧美自拍丝袜亚洲| 久久久久国产精品厨房| 麻豆国产精品777777在线| 欧美成人免费网| 欧美乱人伦中文字幕在线| 欧美体内she精视频| 国产精品亚洲综合| 狠狠v欧美v日韩v亚洲ⅴ| 精品二区视频| 亚洲精品极品| 亚洲一区久久| 久久精品国产999大香线蕉| 最新亚洲激情| 中文在线资源观看网站视频免费不卡| 亚洲在线视频| 久久久欧美一区二区| 欧美高清视频一二三区| 国产精品豆花视频| 国产一区二三区| 亚洲欧洲一区二区三区在线观看| 夜夜嗨av一区二区三区网站四季av| 一区二区三区四区五区视频| 午夜精品在线| 亚洲精品午夜精品| 午夜精品视频网站| 久久在精品线影院精品国产| 欧美精品在线视频| 国产美女精品| 亚洲国产另类久久精品| 亚洲夜晚福利在线观看| 亚洲国产精品成人综合色在线婷婷| 夜夜爽www精品| 久久都是精品| 欧美日韩视频在线第一区| 国产日产高清欧美一区二区三区| 在线观看亚洲精品| 在线午夜精品| 亚洲高清av在线| 亚洲一区中文| 欧美成人情趣视频| 国产精品久久综合| 亚洲电影观看| 午夜精品久久久久| 亚洲六月丁香色婷婷综合久久| 午夜精品视频一区| 欧美精品免费看| 国产一区亚洲| 国产精品99久久99久久久二8 | 欧美视频在线免费| 一区在线免费观看| 亚洲欧美另类综合偷拍| 亚洲精品一区在线观看香蕉| 欧美一级片一区| 欧美精品一卡二卡| 韩国一区二区三区美女美女秀| 夜色激情一区二区| 亚洲精品女av网站| 久久久久国产精品人| 国产精品久久久久久av福利软件 | 亚洲免费久久| 亚洲国产精品久久91精品| 亚洲欧美日韩直播| 欧美女激情福利| 在线观看免费视频综合| 亚洲欧美日韩精品久久久久 | 亚洲图片在线观看| 欧美成人中文字幕| 国内自拍视频一区二区三区| 亚洲欧美国产三级| 亚洲欧美大片| 国产精品a级| 日韩亚洲欧美中文三级| 日韩天堂av| 免费成人激情视频| 国产一区二区三区在线观看网站| 亚洲无毛电影| 亚洲一区二区三区激情| 欧美激情亚洲综合一区| 一区二区三区在线观看国产| 性伦欧美刺激片在线观看| 亚洲女性裸体视频| 欧美性感一类影片在线播放| 最近看过的日韩成人| 亚洲国产精品一区二区第一页| 久久精品国产第一区二区三区| 国产精品亚洲精品| 亚洲综合电影| 亚洲欧美日韩国产| 国产精品美女主播| 亚洲一级在线观看| 亚洲女人天堂成人av在线| 国产精品www| 中文在线不卡| 午夜精品一区二区三区在线视| 国产精品v欧美精品∨日韩| 在线午夜精品| 午夜日韩视频| 国产精品丝袜久久久久久app| 国产精品99久久久久久宅男| 亚洲一区二区黄| 国产精品激情av在线播放| 亚洲视频精选| 午夜精品av| 国产乱肥老妇国产一区二| 香蕉亚洲视频| 老司机午夜精品| 亚洲黑丝在线| 一区二区欧美国产| 欧美三级黄美女| 亚洲性视频网站| 久久激情视频免费观看| 精品69视频一区二区三区| 亚洲日本电影在线| 欧美日韩国产成人在线观看| 99视频+国产日韩欧美| 亚洲欧美日韩一区二区三区在线观看 | 国产精品国产三级国产| 亚洲自拍偷拍麻豆| 久久久精品性| 亚洲国产一区在线| 亚洲视频在线一区观看| 国产精品自拍小视频| 欧美中文字幕视频| 男女av一区三区二区色多| 亚洲精品美女久久7777777| 制服丝袜激情欧洲亚洲| 国产精品久久久久永久免费观看| 午夜精品理论片| 老司机aⅴ在线精品导航| 亚洲区第一页| 新片速递亚洲合集欧美合集| 国产综合自拍| 亚洲美洲欧洲综合国产一区| 欧美天天影院| 亚洲欧美日韩久久精品| 久久综合一区二区三区| 亚洲精品专区| 欧美在线视频观看| 亚洲福利电影| 亚洲中无吗在线| 一区免费观看| 亚洲欧美国产制服动漫| 韩日精品中文字幕| 正在播放亚洲一区| 国产一区二区高清视频| 99精品99| 国产一区在线看| 在线亚洲美日韩| 狠狠色狠狠色综合日日小说| 一本久久知道综合久久| 国产一区二区精品久久| 在线中文字幕一区| 好吊色欧美一区二区三区四区| 夜夜嗨av一区二区三区| 国产日韩综合| 中文一区二区在线观看| 韩国欧美一区| 午夜精品久久一牛影视| 在线观看av一区| 午夜精品网站| 亚洲乱码日产精品bd| 久久久久久久激情视频| 一本大道久久a久久综合婷婷| 另类专区欧美制服同性| 亚洲一区二区三区视频播放| 欧美插天视频在线播放|