freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

精品]基于usb總線的高速數據采集系統設計(參考版)

2024-11-11 22:53本頁面
  

【正文】 ADC_DATA); IN_PORT=0x00; if() { DISABLE; = 0; ENABLE; ADC_IN_ID =0x7FF8+GenEpBuf[3]; } } /* 主程序循環(huán) */ while(TRUE){ if(){ //數據采集處理 DISABLE; = 0; ENABLE; if() adc_handler(); } if () { //設備復位中斷處理 DISABLE; = 0; ENABLE; D12SUSPD = 1; } if () { //掛起改變中斷處理 DISABLE; = 0; ENABLE; if(D12SUSPD == 1) { //掛器處理 D12SUSPD = 0; P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; P3 = 0xFF; D12SUSPD = 1; PCON |= 0x02; while (1); } } if (){ //Setup包中斷處理 DISABLE; = 0; ENABLE; control_handler(); D12SUSPD = 1; } } // End Main Loop
。如果建立標 志被置位,它將向協議層發(fā)送一個器件請求進行處理。初始化后,進入循環(huán),輪詢各種狀態(tài)。在主循環(huán)中, MCU首先對其所有端口、存儲區(qū)、定時器和中斷服務程序進行初始化,之后 MCU將重 新連 接 USB,包括將 Softe Connect寄存器設置為 ON。 D12_INT_ENDP2IN) main_txdone(); if(i_st amp。 D12_INT_ENDP1IN) ep1_txdone(); if(i_st amp。 D12_INT_ENDP0IN) ep0_txdone(); if(i_st amp。 D12_INT_EOT) dma_eot(); if(i_st amp。 中斷服務處理的部分代碼如下 : //USB中斷處理 usb_isr() interrupt 0 { DISABLE; fn_usb_isr(); ENABLE; } void fn_usb_isr() { unsigned int i_st; = 1; i_st = D12_ReadInterruptRegister(); if(i_st != 0) { if(i_st amp。它將數據從 PDIUSBDI2的內部 FIFO取回到 CPU存儲器,并建立正確的事件標志以通知主循環(huán)程序。具體代碼如下 : void outportb(unsigned char port, unsigned char val) { unsigned char xdata *ext_address; ext_address=0xff00 + port; *ext_address = val; } unsigned char inportb(unsigned char port) { unsigned char c; unsigned char xdata *ext_address; ext_address=0xff00 + port; c = *ext_address ; return c; } 命令接口 在 D12的數據手冊中定義了一套壓縮了所有訪問 PDIUSBD12功能的命令集,命令 接口部分就是將各命令用函數的形式加以實現。 協議層 :協議層處理標準的 USB器件請求和特殊的廠商請求。 ISR通過設定事件標志“ EPPFLAGS”和 Setup包數據緩沖區(qū)“ CONROL_XFER”與主循環(huán)進行通信。 主循環(huán):發(fā)送 USB請求、讀入數據、控制采集通道和處理USB總線事件等等 標準請求 廠商請求 中斷服務程序 PDIUSBD12 命令接口 硬件提取層 PDIUSBD12命令接口 :為了進一步簡化 PDIUSBD12的編程,固件定義了一套壓縮了所有訪問 PDIUSBD12功能的命令接口,以對 PDIUSBD12芯片進行操 作。由于所有的標準器件級別和廠商請求都是在協議處理程序中進行處理, ISR得以保持它的效率。 ISR接收和保存數據緩沖區(qū)中的控制傳輸并設置相應的標志寄存器。這樣主循環(huán)程序專注于數據的處理,而 ISR能夠以最大可能的 速度進行數據的傳輸。 后臺 ISR中斷服務程序和前臺主程序循環(huán)之間的數據交換通過事件標志和數據緩沖區(qū)來實現,例如 PDIUSBD12的批量輸出端點可使用循環(huán)的數據緩沖區(qū),當 PDIUSBD12從 USB收到一個數據包,那么就對 CPU產生一個中斷請求, CPU立即響應中斷在 ISR中固件將數據包從PDIUSBD12內部緩沖區(qū)移到循環(huán)數據緩沖區(qū),并在隨后清零 PDIUSBD12的內部緩沖區(qū),以使能接收新的數據包 CPU可以繼續(xù)它當前的前臺任務直到完成然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內是否有新的數據并開始其它的前臺任務。外圍設備可使用PDIUSBD12 在 USB上傳輸數據,這些設備的 CPU要忙于處理許多設備控制和數據處理等任務。這樣,在發(fā)送配置聯合描述表時,主機 USBD可以根據描述類型標識區(qū)分各種分描述表。其余端點依此類推。作為配置操作的一部分,主機會設備設備的配置值,如果必要的話 會選擇合適的接口備選設備。 USB設備在正常使用以前,必須由主機配置設備。所有這些特性都能在系統實現時節(jié)省成本,同時在外圍設備上很容易實現更高級的 USB功能。現在很多用 SCSI實現的很多設備如果用 USB來實現可以直接降低成本。 PDIUSDB12完全符合 ,也能適應大多數設備類規(guī)范的設計,如成像類、大容量存儲類、通信類、打印類和人工輸入設備等。這種靈活性減少了開發(fā)時間 、風險和成本。 PDIUSBD12芯片特點 PDIUSBD12是一個性能優(yōu)化的 USB器件,通常用于基于微控制器的系統,并通過高速通用并行接口與微控制器進行通信,而且支持本地 DMA傳輸。單片機先給 PDIUSBD12的命令地址發(fā)命令,根據不同命令的要求再發(fā)送或讀出不同的數據。PDIUSBD12的命令字分為三種:初始化命令字、數據流命令字和通用命令字。在 USB單片機程序中,要完成對各種令牌包的響應,其中比較難處理的是 SETUP包,主要是端口 0的編程。主機首先要發(fā)令牌包給 USB設備(這里是 PDIUSBD12), PDIUSBD12接收到令牌包后就給單片機發(fā)中斷。 根據 USB協議,任何傳輸都是由主機開始的。因此,編寫固件程序的一個最主要的目的就時讓 Windows可以檢測和識別設備。 采用 PDIUSBD12的固件設計 固件編程的主要工作 固件是 FIREWARE的對應中文詞,它實際上是單片機的程序文件,其編寫語言可以采用 C語言或是匯編語言 .它的操作方式與硬件聯系緊密,包括 USB設備的連接 USB協議、中斷處理等,它不是單純的 軟件,而是軟件和硬件的結合,開發(fā)者需要對端口、中斷和硬件結構非常熟悉。目標文件可由 LIB51創(chuàng)建生成庫文件,也可 以與庫文件一起經 L51連接定位生成絕對目標文件 (.ABS)。開發(fā)人員可用 IDE本身或其它編輯器編輯 C或匯編源文件。在開發(fā)大型軟件時更能體現高級語言的優(yōu)勢。Keil C51軟件提供豐富的庫函數和功能強大的集成開發(fā)調試工具,全 Windows界面。 同步傳送 IRP 事務 事務 事務 批傳送 事務 事 務 事務 一個批傳送是一個或多個 IN/OUT方向的數據事務。 控制傳送 IRP Setup 事務 數據 事務 Status 事務 額外的 控制傳送 控制傳送首先是一個 OUT方向的 Setup 事務,然后是多個 IN 方向或 OUT 方向的數據事務,最后是一個與數據反向的 Status事務。 IRP 數據流 類型 IRP 事務 事務 事務 所有的傳送都是由一個或多個事務組成。 圖 27 描述了輸入輸出請求 IRP傳輸與操作之間的關系。 中斷傳輸 (Interrupt Transfer) 1. 用于非周期的自然發(fā)生的數據量很小的信息的傳輸,如鍵盤、鼠標等; 2. 數據沒有 USB 定義的結構數據流管道; 3. 只有輸入這一種傳輸方式,即外設到主機; 4. 對于高速設備允許數據包,最大容量為小于或等于 64字節(jié),對于低速設備只能小于或等于 8字節(jié); 5. 具有最大服務周期保證, 即在規(guī)定時間內保證有一次數據傳輸; 6. 與同步方式一起占用總線的時間不得超過一幀的 90%; 7. 具有數據傳輸保證,在必要時可以重試。 數據傳遞機制 被傳遞的數據 圖 28 USB 數據流 4. 對于高速設備允許數據包最 大容量為 8, 16, 32或 64字節(jié),對于低速設備只有 8 字節(jié)一種選擇; 5. 端點不能指定總線訪問的頻率和占用總線的時間, USB系統軟件會做出限制; 6. 具有數據傳輸保證,在必要時可以重試。它們在數據格式、傳輸方向、數據包容量限制、總線訪問限制等方面有著各自不同的特征。引入幀的概念主要是為了支持與時間有關的總線操作。為了進一步說明 USB傳輸,我們引出幀 (frame)的概念。需要注意的是所有的數據傳輸都是由主機開始的,任何外設都無權開始一個傳輸。 USB系統軟件通過缺省管道 (與端點 0相對應 )管理設備,設備驅動程序通過其它的管道來管理設備的功能接口。 USB 數據流 從邏輯上講 USB數據的傳輸是通過管道進行的。 所有的設備都有上行的接口,上行和下行的接頭是不能互換的,這保證了不會有非法的連接出現。而在低速模式時中可以使用不帶屏蔽或不是雙絞的線,但最長不能超過 30m。而引入低速模式主要是為了降低要求不高的設備的成本,比如鼠標、鍵盤等等。 圖 27 USB電纜定義 其中 D+和 D是一對差模的信號線而 VBus和 GND則提供了 5V的電源它可以給一些設備 (包括 Hub)供電當然要有一定的條件限制。 表 22 Setup數據包的格式 偏移量 域 大小 值 描述 0 bmRequestType 1 位圖 請求特征 : D7: 傳輸方向 0=主機至設備 1=設備至主機 D6..5: 種類 0=標準 1=類 2=廠商 3=保留 D4..0: 接受者 0=設備 1=接口 2=端點 3=其他 4..31=保留 1 bRequest 1 值 具體請求 2 wValue 2 值 字長域,根據不同的請求含義改變 . 4 wIndex 2 索引或偏移 字長域,根據不同的請求含義改變 .典型用于傳送索引或偏移 . 6 wLength 2 如有數據 傳送階段,此為數據字節(jié)數 . USB的物理層 USB的物理接口包括電氣特性和機械特性。每個 Setup包有 8個字節(jié)。 USB設備請求 所有的 USB設備在“設備的缺省控制通道 ”處對主機的請求發(fā)出響應。 7. 請求錯誤 如果一設備收到一個請求,它或是在設備中無定義,或是不適 用于當前設置,或是數值不對,這時就會產生一個請求錯誤。當端口狀態(tài)改變并表明此端口已經生效時,一個信號就會產生表明復位信號已經結束。像這樣的操作有:集線器端口的復位至少需 10ms 來完成。在某一狀態(tài)成 功結束以前,設備應當“完成”對請求的處理。 USB 設備的遠程喚醒能力應能被禁止的。這個信號會使得主機醒來,處理觸發(fā)事件。視接到設備的端口電源負載能力而定, USB 設備在配置了以后可從 VBus 汲取達 5個單元的電量。 USB 設備應將電源需求量限制在一個單 元以下,直到被配置。 5. 電源管理 USB 總線電源是一個有限的資源,在設備標識階段,主機估測電源的需求。四種傳送方式參見第五章。如果是這樣的話,設備必須支持 GetInterface(接口請求 )與 Set Interface(接口設置 )請求,來匯報及選擇指定的接口的設備選設置。 另外,一個配置中的結口可能有備選設置。 只須一個簡單配置,一個設備可能支持多重接口。主機一般 會從 USB設備獲取配置信息后再準定此設備有哪些功能。 2. 地址分配
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1