賽恩科技(Cyan Technology)的微控制器理念是集成功能于外設(shè)模塊中,同時(shí)充分運(yùn)用CyanIDE圖形配置工具帶來的易用性。除了易用和元器件數(shù)量少之外,提供給用戶的好處是在驅(qū)動(dòng)外設(shè)時(shí)只需要很少的定制軟件控制。這些性能導(dǎo)致的終結(jié)果是,采用賽恩科技公司微控制器的設(shè)備只需較小容量的存儲(chǔ)器,上市時(shí)間較快,功耗也較低。
本文以eCOG1X 16位系列產(chǎn)品的幾款新器件為背景,描述了USB 2.0外設(shè)的工作原理和性能,包括on the go (OTG)兼容性,并重點(diǎn)介紹其強(qiáng)大性能和易實(shí)現(xiàn)性。
背景
USB標(biāo)準(zhǔn)是近幾年來獲得巨大成功的標(biāo)準(zhǔn)之一。高數(shù)據(jù)率和真正的即插即用功能,使其成為PC外設(shè)的一種必然選擇,并順利取代以前的標(biāo)準(zhǔn)串口和并口。無疑,用戶使用的方便性的代價(jià)是軟件和硬件的復(fù)雜度增加。在嵌入式微控制器領(lǐng)域中不需要USB兼容性的系統(tǒng)之間,UART基本上還保留著作為串行通信信道使用。
為了滿足USB兼容系統(tǒng)的市場(chǎng)需求,許多微控制器在芯片上集成了USB協(xié)議控制器。但是,絕大多數(shù)只是將USB作為一個(gè)外設(shè),需要依托外部的物理設(shè)備進(jìn)行操作。絕大部分微控制器為USB外設(shè)提供軟件支持,盡管還不十分成熟,但容易使用,也容易與現(xiàn)有的項(xiàng)目集成。這樣,在熟悉軟硬件方面需要花費(fèi)大量的工程時(shí)間,然后在系統(tǒng)中進(jìn)行實(shí)現(xiàn)并滿足項(xiàng)目的規(guī)范要求。
eCOG1X系列產(chǎn)品上的 USB模塊除了滿足半智能PC外設(shè)的要求外,還能支持主機(jī)模式和OTG工作模式。OTG是USB2.0規(guī)范的擴(kuò)展,它允許系統(tǒng)作為主機(jī)(“類型 A”),或者作為外設(shè)(“類型 B”),并且不需要獨(dú)立的硬件接口就能區(qū)分這兩種類型。OTG設(shè)備采用小型的A/B插座,允許實(shí)現(xiàn)mini-A 和 mini-B插入連接。eCOG1X能夠檢測(cè)并確定其連接處于主機(jī)模式還是外設(shè)模式,具體取決于插入的是哪個(gè)插座。ID引腳低電平表示主機(jī)模式,高電平表示外設(shè)模式。操作是動(dòng)態(tài)的,重新配置不僅可以通過重新插入相應(yīng)的連接器類型來初始化,而且當(dāng)外設(shè)請(qǐng)求作為主機(jī)時(shí),還可以在軟件控制下來回切換。OTG不僅在PDA中普遍使用,而且在一些工業(yè)應(yīng)用也對(duì)之抱有興趣,例如數(shù)據(jù)記錄和倉(cāng)庫(kù)控制系統(tǒng)。主要適用于將 手持設(shè)備或手機(jī)在不同時(shí)間連接到某處的主機(jī)和外設(shè)上,比如打印機(jī),閃盤和遙控?cái)?shù)據(jù)監(jiān)控器。在這些應(yīng)用場(chǎng)合,單一的標(biāo)準(zhǔn)接口連接可以適用于所有功能,無需使用多種硬件接口。
賽恩USB外設(shè)
圖1所示為eCOG1X USB外設(shè)的方框圖。
圖1 eCOG1X USB外設(shè)方框圖
一個(gè)內(nèi)置的物理模塊被集成在芯片上,它支持低速(1.5Mbps)和全速(12Mbps)兩種模式。此外,如果需要高速(480Mbps)操作,可使用ULPI 接口連接外部PHY。這種組合使得低速或全速工作模式的eCOG1X可以用作無需外部元件的外設(shè),而其它工作模式要求的外部元件數(shù)量也很少。
硬件上,eCOG1X USB外設(shè)支持USB規(guī)范轉(zhuǎn)移方法和控制轉(zhuǎn)移,中斷,數(shù)據(jù)塊(bulk)和同步,允許作為普通的USB設(shè)備,或者方便地連接到這些設(shè)備上,例如鍵盤、鍵盤驅(qū)動(dòng)和聲卡。
USB包括4個(gè)獨(dú)立的雙向端點(diǎn),以及默認(rèn)的控制端點(diǎn)(端點(diǎn)0)。USB內(nèi)核采用4K的內(nèi)部SRAM,并通過嵌入式存儲(chǔ)器管理單元(MMU)實(shí)現(xiàn)映射,可用作控制和狀態(tài)寄存器和端點(diǎn)緩沖器。另外,還有2個(gè)雙緩沖和1個(gè)單緩沖數(shù)據(jù)端點(diǎn)可用,容量高達(dá)1k字節(jié)。雙緩沖在外設(shè)發(fā)送數(shù)據(jù)時(shí)允許緩沖器被填充。該組合使得eCOG1X可以被用作USB復(fù)合設(shè)備。
圖2 eCOG1X USB庫(kù)層次結(jié)構(gòu)。
端點(diǎn)緩存中的數(shù)據(jù)存取是通過一個(gè)位于eCOG1X USB內(nèi)核中的從FIFO接口實(shí)現(xiàn)的。通過eCOG1X外設(shè)寄存器可以直接存取FIFO。同樣,雙通道的DMA控制器可用于實(shí)現(xiàn)出入內(nèi)部SRAM的高速、全雙工數(shù)據(jù)傳輸。這一性能是通過將FIFO寄存器連接到端點(diǎn)緩沖器和DMA控制器通道實(shí)現(xiàn)的。
軟件支持
賽恩為USB外設(shè)提供的軟件支持根本不需要用戶深入理解USB協(xié)議和協(xié)議棧。開始時(shí)可以用USB庫(kù)來創(chuàng)建程序,或者可以將USB功能加入到現(xiàn)有程序中。在一系列不同的層次上提供了對(duì)庫(kù)的支持,可以被分解為如下的一些功能區(qū)域:
• 建立
• 數(shù)據(jù)傳送處理器——用于FIFO和DMA
• 中斷處理器
• 提供只有必要配置的設(shè)備功能的插件
目前,下列USB設(shè)備已有相應(yīng)的插件驅(qū)動(dòng)程序:
• 人機(jī)接口設(shè)備(HID)-鍵盤(主機(jī)和外設(shè))
• 海量存儲(chǔ)設(shè)備(MSD)-具有FAT的閃盤(主機(jī))
• 音頻-外部聲卡/耳機(jī)(外設(shè))
在CyanIDE環(huán)境中,USB外設(shè)可以被拖放進(jìn)所選變量的印跡圖中。支持所選設(shè)備的軟件庫(kù)將被自動(dòng)加入到項(xiàng)目中,因此留給用戶的工作量很少。利用CyanIDE幫助窗口可以很容易找到 USB內(nèi)核驅(qū)動(dòng)器、所有外設(shè)驅(qū)動(dòng)器和庫(kù)的用戶支持文件。文件中還提供用戶API的描述,因此可以快速實(shí)現(xiàn)固件原型。
圖3 連接MSD設(shè)備所需的USB外設(shè)代碼。
圖3給出了一些軟件實(shí)例。這些實(shí)例表明,當(dāng)利用支持FAT16/32 的 CyanIDE MSD主機(jī)庫(kù)來獲取插入到eCOG1X中的USB盤的目錄內(nèi)容是如何的簡(jiǎn)單!CyanIDE增加了USB海量存儲(chǔ)主機(jī)方面的插件,F(xiàn)AT庫(kù)則提供了磁盤讀寫所需的所有必需例程。
eCOG1X系列產(chǎn)品
近,賽恩科技又發(fā)布了eCOG1X可配置微控制器家族中三位新成員的消息。他們分別是eCOG1X4A5、6B5 和 6Z5,這三款都支持USB,并與已有的產(chǎn)品一起被列入下面的功能表中。
表1 具有USB功能的eCOG1X器件的多樣性。表中列出了器件號(hào)、閃存容量、片上外設(shè)和封裝類型
除USB之外,eCOG1X控制器還包括帶有10/100MB的以太網(wǎng)MAC、雙12位ADC和雙12位DAC的其它不同版本。所有器件的外設(shè)都包括32x4 LCD、多路USART/SPI/I²C、6通道電機(jī)控制PWM和雙智能卡接口。至于使用哪些外設(shè),如何配置以及連接哪些引腳都可以在CyanIDE中進(jìn)行簡(jiǎn)單和容易地設(shè)定。根據(jù)所需外設(shè)數(shù)量的不同,三種不同的封裝在成本和空間方面給用戶提供了很大的靈活性,同時(shí)保持相互兼容。
總結(jié)
賽恩科技的eCOG1X USB外設(shè)提供了覆蓋外設(shè)、主機(jī)和OTG功能的諸多性能。硬件模塊具有CPU自治功能,并整合了對(duì)內(nèi)部端點(diǎn)緩沖器的高速和高效DMA存取。該功能大大減少了運(yùn)行設(shè)備所需的代碼量。另外,賽恩科技還免費(fèi)提供不斷擴(kuò)展的支持軟件庫(kù),可支持各種USB設(shè)備類型和其他通用外設(shè)。這些庫(kù)使得用戶可以遠(yuǎn)離運(yùn)行所選設(shè)備所需的復(fù)雜、低層USB協(xié)議棧,并使用易于理解和便于集成的語言。除此之外,在提供USB支持時(shí),eCOG1X具有很寬的選擇范圍,用戶可以方便地選擇價(jià)格、存儲(chǔ)器容量和封裝尺寸來適合他們的應(yīng)用。