音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)

SL811HS

SL811HS 的PDF資料

下載
,511092K
其他型號

SL811HS的供應(yīng)商:
聯(lián)系人:張先生/雷小姐
電話:15814679726/0755-83795896
聯(lián)系人:陳小姐
電話:15802062518
聯(lián)系人:林小姐/張先生
電話:0755-82576949/0755-82709453
聯(lián)系人:張小姐/李生/李小姐/朱小姐
電話:0755-83247541/0755-83247541/0755-83019596/0755-83247486
>>更多供應(yīng)商

USB主控芯片SL811HS的固件程序設(shè)計

查看最近90天中添加的最新產(chǎn)品 最新電子元器件資料免費下載 派睿電子TI有獎問答 - 送3D汽車鼠標(biāo) IR推出采用焊前金屬的汽車級絕緣柵雙極晶體管 全球電子連接器生產(chǎn)商—samtec 最新斷路器保護套
摘   要:本文以Cypress公司的USB主控芯片SL811HS為例,介紹了其固件程序的設(shè)計方法。
關(guān)鍵詞:USB;固件程序;事務(wù);端點;DSP

前言
隨著需求的發(fā)展,許多電子產(chǎn)品尤其是各種嵌入式設(shè)備,需要提供USB主控接口來連接如移動硬盤、U盤等USB設(shè)備以滿足應(yīng)用要求。本文對Cypress公司的USB主控芯片SL811HS作了詳細(xì)介紹,并給出其固件程序的設(shè)計方法。

SL811HS芯片介紹
SL811HS是一款遵從USB1.1協(xié)議的嵌入式USB Host/Slave芯片。該芯片既能和USB低速設(shè)備進行通信,也能和USB高速設(shè)備進行通信。由于提供了8bit寬數(shù)據(jù)總線及中斷支持,使得該芯片能方便地與微處理器、微控制器以及DSP進行連接。
SL811HS能工作在Host/Slave兩種模式。在Host模式下,SL811HS為USB主控制器,在Slave模式下,SL811HS為一個USB設(shè)備。該芯片的特點主要有:能通過硬件設(shè)置或軟件設(shè)置的方法使該芯片工作在Host或Slave模式;自動探測所接設(shè)備是低速設(shè)備還是高速設(shè)備;8bit雙向數(shù)據(jù)總線;片上SIE、USB收發(fā)器;自動產(chǎn)生SOF令牌包,以及自動生成令牌包、數(shù)據(jù)包中所需要的CRC5/CRC16數(shù)據(jù);內(nèi)部256byte RAM,支持乒乓操作;支持SUSPEND/RESUME、WAKE UP、LOW-POWER模式。

SL811HS固件程序設(shè)計
SL811HS對一個接入的USB設(shè)備的啟動過程為:
(1) SL811HS檢測到有外部USB設(shè)備接入;
(2) 對這個USB設(shè)備進行Reset操作,檢測該USB設(shè)備是高速設(shè)備還是低速設(shè)備,并設(shè)置好SL811HS中對應(yīng)的寄存器位;
(3) 通過0號端點讀取該USB設(shè)備的描述符信息如廠商ID、產(chǎn)品ID、設(shè)備類、設(shè)備子類、設(shè)備協(xié)議,選取對應(yīng)的子程序;
(4) SL811HS固件驅(qū)動程序?qū)υ揢SB設(shè)備進行初始化:讀取該USB設(shè)備的設(shè)備描述符,為該設(shè)備指定地址,讀取該設(shè)備的配置描述符信息、接口描述符信息、端點描述符信息,為該USB設(shè)備設(shè)置選擇配置描述符;
(5) 對該USB設(shè)備的初始化完成后,按照應(yīng)用要求與該設(shè)備進行通信。
以圖1所示的電路圖為例,說明TMS320C6211DSP與SL811HS的電路連接關(guān)系以及一個簡化的固件程序(DSP程序)的設(shè)計。
該系統(tǒng)USB固件程序主要由幾個部分組成:對SL811HS進行設(shè)置的初始化程序,這部分程序在系統(tǒng)復(fù)位后就立即執(zhí)行;發(fā)現(xiàn)USB設(shè)備接入的子程序,并判斷該設(shè)備是高速設(shè)備還是低速設(shè)備;對該USB設(shè)備進行Enumerate即初始化操作,并指定其USB地址的子程序;用于其他數(shù)據(jù)通信的子程序,利用該部分程序完成指定的應(yīng)用要求。(本文有刪節(jié),詳見本刊網(wǎng)站:www.eaw.com.cn)
初始化部分需要根據(jù)SL811HS數(shù)據(jù)手冊的要求對各個控制寄存器進行設(shè)置。把SL811HS控制寄存器2(地址0x0F)設(shè)置為0xAE,以使能SL811HS的全部功能;把控制寄存器1(地址0x05)設(shè)置為0;把SOF Count Low寄存器(地址0x0E)設(shè)置為0xE0,讓SL811HS每1ms自動產(chǎn)生SOF。此外還要對SL811HS中斷使能寄存器進行設(shè)置,以使能設(shè)備插入/移去中斷。
在對SL811HS的初始化完成以后,TMS320C6211 DSP上的固件程序進入等待設(shè)備插入的階段。當(dāng)SL811HS以中斷方式通知DSP現(xiàn)在有設(shè)備接入時,固件程序進入發(fā)現(xiàn)USB設(shè)備接入子程序。
需要注意的是,USB設(shè)備接入后應(yīng)首先對其進行復(fù)位操作,且復(fù)位時間不少于10ms,否則USB設(shè)備將不能啟動。
USB設(shè)備在正常使用前,還需要由固件程序?qū)λM行配置,即對USB設(shè)備進行初始化。該部分涉及資源的分配、選擇合適的驅(qū)動程序、設(shè)置USB地址等。這些功能的完成都需要控制傳輸。控制傳輸?shù)膶崿F(xiàn)是固件程序中一個比較復(fù)雜的部分。其實現(xiàn)函數(shù)為:
int ControlXfer(unsigned char DeviceAddr;//需要進行控制傳輸USB設(shè)備的地址;
unsigned char Payload;    file://USB數(shù)據(jù)包的最大尺寸;
Setup * setup;    file://待傳輸?shù)腟ETUP令牌結(jié)構(gòu)體;
unsigned char *Buf;  file://接收或發(fā)送數(shù)據(jù)緩沖區(qū);)
{  short int  wLen=setup->wLength;  file://取出該控制傳輸需要在數(shù)據(jù)階段傳輸?shù)臄?shù)據(jù)量的大;
if  (SetupXfer(DeviceAddr, Payload, 8, (unsigned char *)setup)= =false)
// 傳輸SETUP事務(wù),向USB設(shè)備指明控制傳輸?shù)诙A段數(shù)據(jù)傳輸?shù)姆较蚺c數(shù)量以及命令的類型;
       return false;
if (wLen)    file://需要數(shù)據(jù)階段傳送需要的數(shù)據(jù)
{
if  (setup->bmRequest Type&0x80) file://區(qū)分?jǐn)?shù)據(jù)階段的傳輸方向;
{   if (InXfer(DeviceAddr,0, Payload,wLen,Buf)==false)
file://調(diào)用InXfer()函數(shù)完成對IN事務(wù)的傳輸;
       return false;}
else
{   if  (OutXfer (DeviceAddr, 0, Payload, wLen, Buf)==f alse)
// 調(diào)用OutXfer()函數(shù)完成對OUT事務(wù)的傳輸;
       return  false; }
}
if  (setup->bmRequestType &0x80)  file://控制傳輸?shù)臓顟B(tài)階段;
{  if (OutXfer(DeviceAddr,0, Payload,0,Null)==false)
        return false;}
else
{ if (InXfer(DeviceAddr,0, Payload,0, Null)==false)
        return false;} 
 return true;
}  
有了完成控制傳輸?shù)暮瘮?shù),就可以完成對USB設(shè)備的Enumerate即初始化,其流程如圖2所示。
為了簡化說明,圖2的流程說明了USB設(shè)備只有一個配置描述符的流程。
在編碼SL811HS固件程序時,還需要注意:根據(jù)應(yīng)用需要,如果要支持USB HUB類型的設(shè)備接入時,需要對前面的程序作適當(dāng)?shù)恼{(diào)整和考慮,尤其注意在跨過HUB與一個低速USB設(shè)備通信時要先發(fā)一個前導(dǎo)包。如果支持多個USB設(shè)備的接入,通過對SL811HS內(nèi)部SOF Count Low寄存器和SOF Count High寄存器的分析,來確定能否滿足當(dāng)前接入設(shè)備的帶寬要求。每次事務(wù)傳輸完成,都應(yīng)該讀取SL811HS內(nèi)部USB Status寄存器的值,以確定該次事務(wù)傳輸是否成功、是否超時等異常情況的發(fā)生,以保證程序的穩(wěn)健性。

結(jié)語
在測試中,普通U盤接入系統(tǒng)的USB接口,該系統(tǒng)能自動識別出該USB設(shè)備并能按USB Mass Storage Class協(xié)議格式讀出、寫入該U盤上各個扇區(qū)的數(shù)據(jù);谏鲜龅膶崿F(xiàn)方案可以廣泛應(yīng)用于各種便攜式、嵌入式數(shù)據(jù)采集系統(tǒng)中。采集到的數(shù)據(jù)可以直接放到U盤等存儲器中,用戶只需定期更換存儲器即可,而且插入取出存儲器也比較方便,充分發(fā)揮了USB接口靈活方便的特點!

參考文獻(xiàn)
1. Don Anderson. USB系統(tǒng)體系. 中國電力出版社,2001
2. Universal Serial Bus Specification Revision 1.1, 1998.9



  來源:xiangxueqin
收藏此頁】【關(guān)閉】【返回】【打印】【推薦
分享: QQ空間 人人網(wǎng) 開心網(wǎng) 騰訊微博 新浪微博 搜狐微博 網(wǎng)易微博
本頁面信息由維庫用戶提供,如有侵犯您的知識產(chǎn)權(quán),請致電本站,本站核實后將迅速刪除!

熱門詞條:空氣斷路器微型壓力傳感器變壓器油酸值測定儀LTC2376-16蓄電池組全在線測試儀紅外感應(yīng)開關(guān)接地電阻高能過電壓保護器惠斯頓電橋氧化鋅避雷器測試儀更多>>
相關(guān)文章
  • 更多"SL811HS"相關(guān)文章
  • 關(guān)于我們 | 服務(wù)項目 | 付款方式 | 聯(lián)系我們 | 友情鏈接 | 投訴 建議 合作 | 網(wǎng)站地圖 | 加入收藏 | 公司庫
    © 2026 維庫電子市場網(wǎng)(m.58mhw.cn) 版權(quán)所有 經(jīng)營許可證編號:浙B2-20050339 版權(quán)聲明
    二十一年專注打造優(yōu)質(zhì)電子元器件采購網(wǎng)、IC交易平臺。