1 設(shè)計(jì)背景
隨著嵌入式處理器設(shè)計(jì)功耗的降低,越來(lái)越多的設(shè)備朝著小型化和集成化發(fā)展,而外形的精簡(jiǎn)和功能的增加對(duì)外圍接口功能的兼容性和通用性提出了新的要求,如何在有限的空間內(nèi)通過(guò)最少的外圍接口實(shí)現(xiàn)最多的功能是嵌入式系統(tǒng)設(shè)計(jì)面臨的新課題之一。與研發(fā)新的通信協(xié)議相比,充分利用現(xiàn)有接U的多種通信模式更具有現(xiàn)實(shí)意義。本文提出一種針對(duì)USB接口工作模式復(fù)用的設(shè)計(jì)思路和實(shí)現(xiàn)方法。
2 雙模式接口的設(shè)計(jì)原理
通用串行總線(USB)接LJ是當(dāng)前應(yīng)用領(lǐng)域最為廣泛的接口之一,主要優(yōu)點(diǎn)是速度快、功耗低,支持熱插拔和具有良好的兼容性。根據(jù)USB通信協(xié)議的設(shè)計(jì),USB接口支持雙向通信,但只能有一個(gè)主控端對(duì)通信過(guò)程進(jìn)行控制,因此USB設(shè)備存在兩種工作模式:USB.Host模式和USB.Device模式。
工作于USB—Host模式的設(shè)備包含USB主控器,并且能夠控制完成主機(jī)和USB設(shè)備之間的數(shù)據(jù)傳輸,USB系統(tǒng)的數(shù)據(jù)和命令的傳輸都是由USB—Host設(shè)備來(lái)啟動(dòng)的,常見(jiàn)的有計(jì)算機(jī)以及其他具有USB主控芯片的設(shè)備。而工作于USB-Device模式的設(shè)備則可分為USB集線器和USB功能設(shè)備兩種。常見(jiàn)的u盤(pán)、MP3和移動(dòng)硬盤(pán)都是USB功能設(shè)備。每個(gè)USB功能設(shè)備內(nèi)部都包含有描述其功能和資源需求的配置信息,USB.Host設(shè)備必須在使用前對(duì)其進(jìn)行配置。兩種模式的通信交互模式如圖1所示。
在傳統(tǒng)的數(shù)據(jù)通信應(yīng)用中由于設(shè)備功能單一,固定地將接口設(shè)定為Host或者Device能夠滿足實(shí)際需求,但在嵌入式系統(tǒng)的應(yīng)用中往往會(huì)出現(xiàn)既需要訪問(wèn)USB設(shè)備,又需要和計(jì)算機(jī)進(jìn)行通信的情況,這就需要在同一個(gè)接口上實(shí)現(xiàn)Host和Device兩種工作模式。
3 雙工作模式的設(shè)計(jì)實(shí)現(xiàn)
3.1硬件設(shè)計(jì)
設(shè)計(jì)選用同時(shí)支持USB.Host和USB.Device模式的CH375A作為接口控制芯片,該芯片具有8位雙向數(shù)據(jù)總線和完整的讀寫(xiě)、片選控制信號(hào),具有全速USB—Host主機(jī)接口,支持動(dòng)態(tài)切換主機(jī)與設(shè)備方式,兼容USB2.0協(xié)議。
在USB.HostI作模式下,CH375A提供了串行通信方式,通過(guò)串行輸入、輸出和中斷輸出與嵌入式主控芯片相連;在USB.DeviceT作模式下,CH375A內(nèi)置了USB通信中的底層協(xié)議,可以采用方便的內(nèi)置固件模式,也可以采用靈活的外置固件模式,完全滿足設(shè)計(jì)需求。
由于物理接口是復(fù)用的,連接時(shí)采用并行數(shù)據(jù)接口與主控芯片通信。兩種模式不能同時(shí)工作,而接口不能自動(dòng)識(shí)別接入設(shè)備的工作模式,因此主從設(shè)備識(shí)別需要由嵌入式主控芯片根據(jù)外部輸入來(lái)識(shí)別。硬件連接圖如圖2所示。
一圖中輸入輸出接口符號(hào)均為CH375A與主控芯片互連的信號(hào),為增強(qiáng)USB信號(hào)強(qiáng)度,設(shè)計(jì)電路時(shí)對(duì)差分信號(hào)采用等長(zhǎng)走線,并串接共模電感以減小串?dāng)_。
3.2軟件設(shè)計(jì)
設(shè)備上電時(shí)默認(rèn)處于”未啟用的USB設(shè)備”方式,需要主控芯片根據(jù)外部輸入指定新的工作模式。當(dāng)設(shè)備工作于USB.Host模式時(shí),需要主動(dòng)地對(duì)接入的設(shè)備進(jìn)行檢測(cè)和初始化,具體流程如圖3所示。
程序采用查詢(xún)方式檢測(cè)設(shè)備接入,檢測(cè)到設(shè)備的存在后首先獲取設(shè)備中斷狀態(tài)并清空中斷請(qǐng)求,初始化設(shè)備并查詢(xún)?cè)撛O(shè)備的存儲(chǔ)特性,最后獲取設(shè)備容量信息并對(duì)設(shè)備進(jìn)行讀寫(xiě)操作。部分功能函數(shù)代碼如下:
CheckExist(); //測(cè)試CH375A工作狀態(tài);
SetUSBMode(USB MODE5); //設(shè)置CH375A工作于Host模式;
GetUSBStatus(); //初始化中斷狀態(tài);
USB_DISK_INIT(); //初始化USB設(shè)備;
USB_DISK_INQUIRY() //查詢(xún)USB存儲(chǔ)設(shè)備的特性
GetUSBDiskSize(); //獲取設(shè)備容量;
。..
WriteUSBCmd(int8 x); //向設(shè)備寫(xiě)入命令;
WriteUSBData(int8 x); //向設(shè)備寫(xiě)入數(shù)據(jù);
。..
當(dāng)設(shè)備工作于USB.Device模式時(shí),設(shè)備本身就成為一個(gè)需要主機(jī)控制的USB設(shè)備,在接入上位機(jī)后流程如圖4所示。
此時(shí)設(shè)備與上位機(jī)的通信方式采用請(qǐng)求加應(yīng)答方式,由上位機(jī)主動(dòng)請(qǐng)求數(shù)據(jù),設(shè)備被動(dòng)地應(yīng)答上傳數(shù)據(jù)。部分功能函數(shù)代碼如下:
USB_Reset_ALL(): //設(shè)備復(fù)位;
CheckExist(); 測(cè)試CH375A工作狀態(tài);
SetUSBMode(USB_MODE2); //設(shè)置CH375A工作于內(nèi)部固件Device模式;
GetUSBStatus(); //初始化中斷狀態(tài):
USB Open Device(); //通信之前必須先打開(kāi)設(shè)備:
USB_GetFirmwareInfo(); //獲取調(diào)試固件程序版本,并取消未完成的上傳數(shù)據(jù)塊
。..
當(dāng)設(shè)備需要在Host模式和Device模式中進(jìn)行切換時(shí),由主控芯片接受外部輸入的模式切換信號(hào),然后向CH375A發(fā)送模式轉(zhuǎn)換命令,流程如圖5所示。
在不同模式之間切換,首先要切換至“未啟用的USB設(shè)備”模式,即上電復(fù)位后的默認(rèn)模式。在經(jīng)過(guò)一定的延時(shí)之后,再切換到所需的工作模式,如考慮進(jìn)一步確保系統(tǒng)的穩(wěn)定性還可在延時(shí)之前加入復(fù)位命令。具體功能函數(shù)如下:
SetUSBMode(USB_MODE0); //設(shè)置CH375A為未啟用設(shè)備模式;
Delay(1000): //延時(shí)
SetUSBMode(USB_MODEn);//設(shè)置CH375A為目標(biāo)模式;
。..。
4 結(jié)束語(yǔ)
實(shí)踐證明,按照程序所規(guī)定的流程對(duì)USB接口進(jìn)行配置在調(diào)試板上工作正常,在兩個(gè)模式切換的過(guò)程中沒(méi)有產(chǎn)生任何錯(cuò)誤。由于芯片限制,此系統(tǒng)目前只能工作在USB1.1模式下,如何進(jìn)一步提高兩種工作模式下的數(shù)據(jù)傳輸速率將是下一步研究的重點(diǎn)。
作者簡(jiǎn)介:
熊雪暉(1984-),男,61938部隊(duì),助理工程師,研究方向:嵌入式系統(tǒng)設(shè)計(jì)與數(shù)據(jù)安全。聯(lián)系地址:北京市海淀區(qū)半壁街南路2號(hào),中國(guó)人民解放軍61938部隊(duì)數(shù)據(jù)備份室(100089)。
責(zé)任編輯:gt
-
處理器
+關(guān)注
關(guān)注
68文章
19890瀏覽量
235128 -
芯片
+關(guān)注
關(guān)注
459文章
52494瀏覽量
440687 -
嵌入式
+關(guān)注
關(guān)注
5150文章
19665瀏覽量
317455
發(fā)布評(píng)論請(qǐng)先 登錄
如何配置雙模式下的 BT 芯片?
USB藍(lán)牙雙模式背光鍵盤(pán)
基于雙模式USB接口的便攜式比色計(jì)設(shè)計(jì)
采用CH375接口電路實(shí)現(xiàn)LPT-USB打印機(jī)驅(qū)動(dòng)器設(shè)計(jì)
請(qǐng)問(wèn)USB控制芯片CH376 CH375的休眠模式下電流有多少?
基于CH375多通道USB接口與PC機(jī)通信的實(shí)現(xiàn)
CH375中文資料,pdf datasheet(USB總線接口芯片)
基于雙模式USB接口的便攜式比色計(jì)設(shè)計(jì)
The MathWorks雙模式混合動(dòng)力總成系統(tǒng)
基于雙模式USB接口的便攜式比色計(jì)設(shè)計(jì)

USB總線通用接口芯片CH375對(duì)比色計(jì)儀器的設(shè)計(jì)

評(píng)論