<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > USB接口單片機SL11R的特點及應(yīng)用

          USB接口單片機SL11R的特點及應(yīng)用

          作者: 時間:2009-08-05 來源:網(wǎng)絡(luò) 收藏

          1 簡介

          本文引用地址:http://www.ex-cimer.com/article/173650.htm

          總線是通用串行總線(Universal Serial Bus)的簡稱,已經(jīng)成為PC機的標準。目前586以上的PC機基本上都已經(jīng)配置了。USB接口具有數(shù)據(jù)傳輸速率高、使用方便等。USB1.1協(xié)議規(guī)定的全速傳輸速率為12Mbit/s,而USB2.0協(xié)議所規(guī)定的高速傳輸速率為480Mbit/s,非常適合有大量數(shù)據(jù)傳輸?shù)南到y(tǒng)。USB設(shè)備即插即用,無需重新啟動計算機。

          2 介紹

          2.1 概述

          是Scanlogic公司的SL11產(chǎn)品家族的一員,是一種帶USB接口的16位,內(nèi)部運行頻率為48MHz,采用RISC結(jié)構(gòu),有16位數(shù)據(jù)總線,32位通用I/O口(GPIO),其中22位可作為地址總線進行尋址(A0~A21),可以直接擴展多種外設(shè)。

          2.2 SL11R主要

          ?USB接口 SL11R的USB接口符合USB1.1協(xié)議,有四個端點(endpoint),兩種數(shù)據(jù)傳輸速率,全速模式為12Mbit/s,低速模式為1.5Mbit/s,并且具有USB協(xié)議所規(guī)定的四種數(shù)據(jù)傳輸方式,即控制傳輸方式(Control mode)、同步傳輸方式(Iochronous mode)、中斷傳輸方式(Intrerupt mode)、批量傳輸方式(Bluk mode)。

          ?硬件資源豐富 SL11R有3K字節(jié)的內(nèi)部RAM、兩個定時器、兩個外部中斷、一個看門狗電路、一個普通串行接口(UART)、32位通用可編程I/O口(GPIO)、一個16位的可編程DMA接口、四個PWM輸出引腳及擴展外圍元件用的控制引腳。SL11R的外圍元件擴展非常方便,擴展EPROM、串行E2PROM、SRAM即EDO DRAM等常用元件時均無需另加控制電路。

          ?多種工作方式 SL11R有四種工作模式,即通用輸入輸出模式、快速增強并行端口模式、8位/16位DMA模式、DVC8位DMA模式,可根據(jù)實際場合用軟件進行設(shè)置。尤其8位DVC模式,可以直接與CCD接口,方便地開發(fā)CCD圖像采集系統(tǒng)或數(shù)碼相機。

          ?無需專用開發(fā)裝置 SL11R內(nèi)部有3K×16位的程序存儲器,類似于80X86的BIOS,已經(jīng)把的啟動配置、聯(lián)機調(diào)試及常用功能等固化在內(nèi)部,開發(fā)者直接調(diào)用即可。CPU復位后,內(nèi)部BIOS會把外部程序存儲器中的代碼讀入內(nèi)部RAM中執(zhí)行。如果沒有外部程序存儲器,SL11R會自動運行在監(jiān)控狀態(tài),與PC機進行聯(lián)機通訊,并能夠在線對線路板上的串行EEPROM進行編程或直接調(diào)試程序。由此可見,SL11R無需專用開發(fā)裝置就可以進行開發(fā),這一點對開發(fā)者非常有利。由于SL11R可以在線編程,這就意味著即使用戶也可以進行軟件升級。這一點對新產(chǎn)品開發(fā)很必要,因為有些BUG可能要用戶使用后才能發(fā)現(xiàn)。

          2.3 SL11R工作方式簡介

          ?通用輸入輸出模式(GPIO模式) 在這種模式下,SL11R的外部有32個通用輸入輸出引腳,其中4個已經(jīng)分配給USB和UART串行接口專用,其他28個引腳可以通過軟件編程,分別設(shè)置成輸入或輸出狀態(tài)。這種模式一般用于處理普通的外部并行接口類設(shè)備的數(shù)據(jù),是用途較廣的模式。

          ?快速增強并行端口模式(Fast EPP模式) 快速增強并行端口(Fast EPP)是計算機外設(shè)的一種標準并行接口。SLR11R在這種模式下,可以直接讀寫快速EPP并行增強端口。一般用于USB接口和Fast EPP接口的轉(zhuǎn)換。

          ?8位/16位快速DMA模式 SL11R的DMA模式包括郵箱協(xié)議(Mailbox Protocol)和DMA協(xié)議兩種方式。郵箱協(xié)議工作方式允許外部處理器與SL11R進行異步通訊,它們通過郵箱的輸入、輸出寄存器交換數(shù)據(jù)。DMA協(xié)議工作方式一般用于SL11R與外部設(shè)備大量的數(shù)據(jù)高速傳輸。這種傳輸無需CPU的干預,而且允許外設(shè)直接與DRAM進行數(shù)據(jù)交換,適合數(shù)據(jù)量大的場合,如打印機、Modem、掃描儀等。

          SL11R在DMA模式下,還有四個可編程的PWM輸出引腳,可以控制DMA模式下的外設(shè)與不同的外設(shè)通訊,如連接CCD、CIS、COMS等圖像傳感器或其他外設(shè)。只要根據(jù)外設(shè)的控制要求對PWM編程,就可以控制外設(shè)在DMA模式下傳輸數(shù)據(jù)。

          ?DVC8位DMA模式 這種模式專門用于與CCD相機接口,SL11R通過串行方式控制CCD相機,圖像數(shù)據(jù)以DMA的方式傳給SL11R。

          3 SL11R設(shè)計

          3.1 SL11R硬件設(shè)計

          SL11R的硬件設(shè)計比較簡單,因為實際中一般的外圍元件可以直接擴展。Scanlogic公司在開發(fā)套件中提供了一個比較完善的電路圖,但對一些簡單應(yīng)用場合顯得稍繁瑣。事實上SL11R的內(nèi)部有3K字節(jié)的RAM,在數(shù)據(jù)量不是特別大的場合,無需擴展外部數(shù)據(jù)存儲器。圖1是筆者設(shè)計的SL11R應(yīng)用的一個基本電路,已經(jīng)在實際項目中應(yīng)用。

          雖然SL11R經(jīng)過編程可以使用12MHz晶振,但調(diào)試模式不支持12MHz,而且筆者在實際使用過程中發(fā)現(xiàn),如果晶振質(zhì)量不太好,電路穩(wěn)定性稍差。故建議在條件許可的情況下,盡量使用48MHz的晶振。

          SL11R的工作電壓為3.3V,電路中其它元件均應(yīng)選用低電壓型器件。

          Scanlogic公司提供的SL11R開發(fā)工具中附帶有調(diào)試程序,在線調(diào)試時需要使用RS232口,所以電路中設(shè)計了RS232接口芯片。

          3.2 SL11R固件設(shè)計

          SL11R的固件直接控制CPU的運行,程序代碼可以存儲在外部EPROM或I2C串行EEPROM中,甚至可以存在主機上,在適當?shù)臅r候下載到SL11R的內(nèi)部運行。最簡單的方式是把代碼寫到串行EEPROM中,因為SL11R提供了專用的工具軟件可以直接對EEPROM在線編程,無需另外的編程裝置。

          3.2.1 SL11R程序結(jié)構(gòu)

          SL11R匯編語言的語法結(jié)構(gòu)與80X86相似,而且也有內(nèi)部BIOS。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();