日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 智能硬件 > 智能硬件
[導讀]摘 要:本文以Cypress公司的USB主控芯片SL811HS為例,介紹了其固件程序的設計方法。關鍵詞:USB;固件程序;事務;端點;DSP前言隨著需求的發(fā)展,許多電子產(chǎn)品尤其是各種嵌入式設備,需要提供USB主控接口來連接如移動

摘 要:本文以Cypress公司的USB主控芯片SL811HS為例,介紹了其固件程序的設計方法。

關鍵詞:USB;固件程序;事務;端點;DSP

前言

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

SL811HS芯片介紹

SL811HS是一款遵從USB1.1協(xié)議的嵌入式USB Host/Slave芯片。該芯片既能和USB低速設備進行通信,也能和USB高速設備進行通信。由于提供了8bit寬數(shù)據(jù)總線及中斷支持,使得該芯片能方便地與微處理器、微控制器以及DSP進行連接。

SL811HS能工作在Host/Slave兩種模式。在Host模式下,SL811HS為USB主控制器,在Slave模式下,SL811HS為一個USB設備。該芯片的特點主要有:能通過硬件設置或軟件設置的方法使該芯片工作在Host或Slave模式;自動探測所接設備是低速設備還是高速設備;8bit雙向數(shù)據(jù)總線;片上SIE、USB收發(fā)器;自動產(chǎn)生SOF令牌包,以及自動生成令牌包、數(shù)據(jù)包中所需要的CRC5/CRC16數(shù)據(jù);內部256byte RAM,支持乒乓操作;支持SUSPEND/RESUME、WAKE UP、LOW-POWER模式。

SL811HS固件程序設計

SL811HS對一個接入的USB設備的啟動過程為:

(1) SL811HS檢測到有外部USB設備接入;

(2) 對這個USB設備進行Reset操作,檢測該USB設備是高速設備還是低速設備,并設置好SL811HS中對應的寄存器位;

(3) 通過0號端點讀取該USB設備的描述符信息如廠商ID、產(chǎn)品ID、設備類、設備子類、設備協(xié)議,選取對應的子程序;

(4) SL811HS固件驅動程序對該USB設備進行初始化:讀取該USB設備的設備描述符,為該設備指定地址,讀取該設備的配置描述符信息、接口描述符信息、端點描述符信息,為該USB設備設置選擇配置描述符;

(5) 對該USB設備的初始化完成后,按照應用要求與該設備進行通信。

以圖1所示的電路圖為例,說明TMS320C6211DSP與SL811HS的電路連接關系以及一個簡化的固件程序(DSP程序)的設計。

該系統(tǒng)USB固件程序主要由幾個部分組成:對SL811HS進行設置的初始化程序,這部分程序在系統(tǒng)復位后就立即執(zhí)行;發(fā)現(xiàn)USB設備接入的子程序,并判斷該設備是高速設備還是低速設備;對該USB設備進行Enumerate即初始化操作,并指定其USB地址的子程序;用于其他數(shù)據(jù)通信的子程序,利用該部分程序完成指定的應用要求。(本文有刪節(jié),詳見本刊網(wǎng)站:www.eaw.com.cn)

初始化部分需要根據(jù)SL811HS數(shù)據(jù)手冊的要求對各個控制寄存器進行設置。把SL811HS控制寄存器2(地址0x0F)設置為0xAE,以使能SL811HS的全部功能;把控制寄存器1(地址0x05)設置為0;把SOF Count Low寄存器(地址0x0E)設置為0xE0,讓SL811HS每1ms自動產(chǎn)生SOF。此外還要對SL811HS中斷使能寄存器進行設置,以使能設備插入/移去中斷。

在對SL811HS的初始化完成以后,TMS320C6211 DSP上的固件程序進入等待設備插入的階段。當SL811HS以中斷方式通知DSP現(xiàn)在有設備接入時,固件程序進入發(fā)現(xiàn)USB設備接入子程序。

需要注意的是,USB設備接入后應首先對其進行復位操作,且復位時間不少于10ms,否則USB設備將不能啟動。

USB設備在正常使用前,還需要由固件程序對它進行配置,即對USB設備進行初始化。該部分涉及資源的分配、選擇合適的驅動程序、設置USB地址等。這些功能的完成都需要控制傳輸??刂苽鬏?shù)膶崿F(xiàn)是固件程序中一個比較復雜的部分。其實現(xiàn)函數(shù)為:

int ControlXfer(unsigned char DeviceAddr;//需要進行控制傳輸USB設備的地址;

unsigned char Payload; file://USB數(shù)據(jù)包的最大尺寸;

Setup * setup; file://待傳輸?shù)腟ETUP令牌結構體;

unsigned char *Buf; file://接收或發(fā)送數(shù)據(jù)緩沖區(qū);)

{ short int wLen=setup->wLength; file://取出該控制傳輸需要在數(shù)據(jù)階段傳輸?shù)臄?shù)據(jù)量的大?。?/p>

if (SetupXfer(DeviceAddr, Payload, 8, (unsigned char *)setup)= =false)

// 傳輸SETUP事務,向USB設備指明控制傳輸?shù)诙A段數(shù)據(jù)傳輸?shù)姆较蚺c數(shù)量以及命令的類型;

return false;

if (wLen) file://需要數(shù)據(jù)階段傳送需要的數(shù)據(jù) {if (setup->bmRequest Type&0x80) file://區(qū)分數(shù)據(jù)階段的傳輸方向; { if (InXfer(DeviceAddr,0,Payload,wLen,Buf)==false) file://調用InXfer()函數(shù)完成對IN事務的傳輸;

return false;} else { if (OutXfer (DeviceAddr, 0, Payload,wLen, Buf)==f alse) // 調用OutXfer()函數(shù)完成對OUT事務的傳輸;

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設備的Enumerate即初始化,其流程如圖2所示。

為了簡化說明,圖2的流程說明了USB設備只有一個配置描述符的流程。

在編碼SL811HS固件程序時,還需要注意:根據(jù)應用需要,如果要支持USB HUB類型的設備接入時,需要對前面的程序作適當?shù)恼{整和考慮,尤其注意在跨過HUB與一個低速USB設備通信時要先發(fā)一個前導包。如果支持多個USB設備的接入,通過對SL811HS內部SOF Count Low寄存器和SOF Count High寄存器的分析,來確定能否滿足當前接入設備的帶寬要求。每次事務傳輸完成,都應該讀取SL811HS內部USB Status寄存器的值,以確定該次事務傳輸是否成功、是否超時等異常情況的發(fā)生,以保證程序的穩(wěn)健性。

結語

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

參考文獻

1. Don Anderson. USB系統(tǒng)體系. 中國電力出版社,2001

2. Universal Serial Bus Specification Revision 1.1, 1998.9

更多計算機與外設信息請關注21ic計算機與外設頻道

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉