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

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

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

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

2. 硬件設計

2.1 Aduc831簡介

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

  ADuC831 還提供額外的電源監視器, 和一個高精度參考源。片內數字外圍設備包括2個16位Σ-Δ DAC, 雙輸出16位 PWM,看門狗定時器, 定時間隔計數器,3個定時器/計數器, 定時器 3用于波特率產生核 串行接口 I/O (I2C, SPI 和UART) 。

  并且片內提供串行下載和調試模式 (通過 UART), 并且通過EA引腳提供單引腳競爭模式。ADuC831 支持 QuickStart 和 QuickStart Plus 升級系統和低成本的軟件和硬件工具。

2.2 USBN9603簡介

  USBN9603是一個集成的USB端點控制器,具有增強的DMA功能。USBN9603集成了一個帶有3.3V的調節器的收發器,1個SIE(串行接口引擎),1個8 b并行接口,1個時鐘發生器和1個MICROWIRE/PLUS接口。USBN9603可以進行7個端點的數據傳輸,除了1個端點必須為控制傳輸端點以外,其他的6個端點可以被配置成中斷傳輸端點、批量傳輸端點或者等時傳輸端點;每一個端點都有一個專門的FIFO,控制端點的FIFO長度為8B,其他的為64B。8 b并行接口可以支持多路復用或者非多路復用2種與CPU的接口方式。USBN9603的突出特點為:低EMI(電磁干擾),低等待電流,24M晶振,增強的DMA功能;可使用5V或3.3V電源;總線操作具有異步喚醒的全速靜態HALT模式;改進的3.3V電壓輸入的電壓調節器,所有非雙向端點都有64B 的FIFO;外部控制器接口簡單,編程方便。

2.3 原理圖設計

  USB數據采集系統硬件模塊主要由Aduc831芯片、USB接口芯片USBN9603組成。硬件結構簡單,硬件總體結構框圖如圖1所示.

  模擬輸入信號A/D轉換器,轉換結果存儲在FIFO存儲器中;一旦FIFO存滿,SIE立刻對數據進行處理,然后Aduc831系統將數據從FIFO存儲器中讀出,由收發器通過數據線(D+、D-)送至主機。

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

3. 系統軟件設計

  系統軟件主要包括:控制程序和USB設備驅動程序

3.1 控制程序

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

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

3.2 USB設備驅動程序設計

  USB設備驅動程序基于WDM。WDM

  型驅動程序是內核程序,與標準的Win32用戶態程序不同。采用了分層處理的方法, 較高級的USB設備驅動程序和較低級的USB函數層。其中USB函數層由兩部分組成:較高級的通用串行總線模塊(USBD)和較低級的主控制器驅動程序模塊(HCD)。USB設備驅動程序不必具體對硬件編程,所有的USB命令、讀寫操作通過總線驅動程序轉給USB設備。但是,USB設備驅動程序必須定義與外部設備的通訊接口和通訊的數據格式,也必須定義與應用程序的接口。Windows 98/2000提供了一系列的系統驅動程序,他們具有為許多標準類型設備服務所需的所有基本功能,用戶按照提示可以定義設備的配置和功能,然后做功能的修改即可。可以把USB設備驅動程序的功能劃分成4個不同的模塊來實現:初始化模塊、即插即用管理模塊、電源管理模塊以及I/O功能實現模塊。初始化模塊提供1個入口函數DriverEntry(),在DriverEntry中,需要提供一個AddDevice例程,把驅動程序添加到驅動程序堆棧中去。另外,所有對各種IRP(I/O請求包)的處理例程都在此入口函數中作為定義。
DriverEntry(IN PDRIVER_OBJECT DriverObject,…) //驅動程序入口
{
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;
}
功能。

  電源管理模塊負責設備的掛起與喚醒。

  I/O功能實現模塊完成I/O請求的大部分工作。若應用程序想對設備進行I/O操作,它便使用Windows API函數,對WIN32子系統進行WIN32調用。此調用由I/O系統服務接收并通知I/O管理器,I/O管理將此請求構造成一個合適的I/O請求包(IRP)并把它傳遞給USB設備驅動程序。USB設備驅動程序接收到這個IRP以后,根據IRP中包含的具體操作代碼,構造相應的USB請求塊并把此 URB(USB請求塊)放到一個新的IRP中。然后,把此IRP傳遞到USB總線驅動程序,USB總線驅動程序根據IRP中所含的URB執行相應的操作(如從USB設備讀取數據等),并把操作結構通過IRP返還給USB設備驅動程序。USB設備驅動程序接收到此IRP后,將操作結果通過IRP返還給 I/O管理器。最后,I/O管理器將此IRP中操作結果返還給應用程序,至此應用程序對USB設備的一次I/O操作完成。

結束語:

  USB為計算機外設輸入輸出提供了新的接口標準。它使設備具有熱插拔,即插即用,自動配置的能力,并標準化設備連接, 還可與MAX
485結合起來實現數據的遠程采集。該系統具有可靠性高、性價比高和多點采集等優點。而USB2.0標準具有更高的傳輸速率,更具有美好的應用前景。

參考文獻:

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩在线国产精品 | 五月开心婷婷 | 玖玖射 | 99久久亚洲精品影院 | 美女羞羞视频免费网站 | 伊人青草 | 国产男人的天堂 | 国产成人综合网在线观看 | 欧美日韩午夜精品不卡综合 | 日韩欧美在线观看一区 | 国产一区二区三区欧美精品 | 精品国产免费一区二区三区五区 | 国产亚洲女人久久久久久 | 精品视频在线一区 | 天天爽夜夜爽精品视频一 | 成人黄色在线播放 | 欧美日韩在线精品成人综合网 | 欧美日韩一区二区在线观看视频 | 99国产在线 | 国产一区日韩二区欧美三区 | 欧美日韩视频 | 亚洲欧美另类精品久久久 | 欧美男人操女人 | 色在线免费视频 | 国产亚洲欧美久久久久 | 99精品免费在线观看 | 免费视频不卡一区二区三区 | 日本久久久 | 久久国产高清字幕中文 | 色网站在线 | 国产亚洲欧美在线 | 理伦电影网 | 久久久久久极精品久久久 | 国产精品一区二区手机看片 | 四虎影视免费永久在线观看 | 桃花色综合影院 | 亚洲伊人成综合网 | 九九精品视频在线播放 | 97免费视频在线观看 | 黄短视频在线观看免费版 | 91av国产精品 |