- 相關(guān)推薦
基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
摘要:以自行開(kāi)發(fā)的基于USB接口的數(shù)據(jù)采集系統(tǒng)為例,介紹了USB接口的硬件和軟件開(kāi)發(fā)過(guò)程。1 USB協(xié)議和芯片選擇
理解好USB協(xié)議是USB系統(tǒng)開(kāi)發(fā)的第一步。USB協(xié)議版本包括1.0、1.1和2.0,USB OTG是對(duì)2.0版本協(xié)議的補(bǔ)充。雖然USB協(xié)議內(nèi)容繁多且復(fù)雜,然而,對(duì)USB開(kāi)發(fā)影響較大的卻只是少數(shù)部分,以下對(duì)協(xié)議版本1.1[1]中這些部分進(jìn)行介紹。
1.1 USB協(xié)議
一般,每個(gè)USB設(shè)備由一個(gè)或多個(gè)配置(Configuration)控制其行為。使用多配置原因是對(duì)操作系統(tǒng)的支持;一個(gè)配置由接口(Interface)組成;接口則是由管道(Pipe)組成;管道與USB設(shè)備的端點(diǎn)(Endpoint)對(duì)應(yīng),一個(gè)端點(diǎn)可以配置為輸入輸出兩個(gè)管道。在固件編程中,USB設(shè)備、配置、接口和管道都用描述符報(bào)告其屬性。
圖1為USB多層次通信模型。端點(diǎn)0默認(rèn)配置為控制管道,用來(lái)完成所規(guī)定的設(shè)備請(qǐng)求(USB協(xié)議第九章)。其它端點(diǎn)可配置為數(shù)據(jù)管道。對(duì)開(kāi)發(fā)而言,主要的大數(shù)據(jù)傳輸都是通過(guò)數(shù)據(jù)管道完成的[2]。
USB傳輸類(lèi)型包括批量傳輸、等時(shí)傳輸、中斷傳輸和控制傳輸,每種傳輸類(lèi)型的傳輸速度、可靠性以及應(yīng)用范圍都不同[3]?刂苽鬏斂煽啃允亲罡叩,但速度最慢;等時(shí)傳輸速度快,滿(mǎn)足實(shí)時(shí)性,但可靠性低。在具體應(yīng)用中,端點(diǎn)傳輸類(lèi)型可根據(jù)傳輸速度和可靠性選擇。
在USB通信協(xié)議中,主機(jī)取得絕對(duì)主動(dòng)權(quán)利,設(shè)備只能是“聽(tīng)命令行事”,通過(guò)一定的命令格式(設(shè)備請(qǐng)求)完成通信。USB設(shè)備請(qǐng)求包括標(biāo)準(zhǔn)請(qǐng)求、廠(chǎng)商請(qǐng)求和設(shè)備類(lèi)請(qǐng)求。設(shè)備的枚舉是標(biāo)準(zhǔn)請(qǐng)求命令完成的;廠(chǎng)商請(qǐng)求是用戶(hù)定義的請(qǐng)求;設(shè)備類(lèi)請(qǐng)求是特定的USB設(shè)備類(lèi)發(fā)出的請(qǐng)求,例如海量?jī)?chǔ)存類(lèi)、打印機(jī)類(lèi)和HID(人機(jī)接口)類(lèi)。固件編程中設(shè)備請(qǐng)求必須遵循一定的格式,包括請(qǐng)求類(lèi)型、設(shè)備請(qǐng)求、值、索引和長(zhǎng)度。
1.2 USB接口芯片選擇
USB接口芯片的類(lèi)型有:
(1)按傳輸速度的高低:低速(1.5Mbps)和全速(12Mbps)可選USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可選USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。
(2)是否帶MCU(微控制器):一般Philips公司的都不帶MCU,Cypress公司大多都帶,例如AN2131。
(3)是否帶主控器功能:不需要主機(jī)參與,主從設(shè)備間可進(jìn)行數(shù)據(jù)傳輸,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。
還有專(zhuān)門(mén)用途USB芯片,例如閃存專(zhuān)用芯片IC1114。工程中用戶(hù)可根據(jù)自己的需求選擇一款性?xún)r(jià)比高的芯片。另外可用開(kāi)發(fā)資源也是要考慮的重要方面,例如開(kāi)發(fā)板和芯片廠(chǎng)商提供的網(wǎng)上資源,可大大降低開(kāi)發(fā)的難度。
2 基于USB接口的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
2.1 系統(tǒng)簡(jiǎn)介
該系統(tǒng)能夠?qū)崿F(xiàn)16路溫度數(shù)據(jù)自動(dòng)采集,系統(tǒng)的組成框圖如圖2所示。主要包括8?jìng)(gè)組成部分:中央處理器選用AT89C52芯片,完成各部分控制功能和USB傳輸協(xié)議;實(shí)時(shí)時(shí)鐘記錄當(dāng)前測(cè)量溫度的時(shí)間;溫度傳感器和接口電路主要完成溫度采集,并讀入MCU處理;復(fù)位電路完成對(duì)MCU的上電復(fù)位和電源電壓監(jiān)視;看門(mén)狗電路用來(lái)監(jiān)視MCU是否工作;存儲(chǔ)電路主要存儲(chǔ)采集到的溫度數(shù)據(jù)以及采集的實(shí)時(shí)時(shí)間;電源電路主要為各部分提供要求的電源;外設(shè)與主機(jī)間的通信電路采用USB接口。
2.2 接口芯片選擇
接口電路采用Philips公司的PDIUSBD12[4](以下簡(jiǎn)稱(chēng)為D12)芯片。主要因?yàn)椋模保残酒畔、開(kāi)發(fā)資源豐富,具有較高的性?xún)r(jià)比。
D12芯片的主要特點(diǎn)包括:
·符合USB1.1版本規(guī)范;
·可與任何外部微控制器/微處理器實(shí)現(xiàn)高速并行接口(2MB/s);
·采用GoodLink技術(shù)的連接指示器,在通信時(shí)使LED閃爍;
·主端點(diǎn)的雙緩沖配置增加了數(shù)據(jù)吞吐量并輕松實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸;
·在批量和等時(shí)模式下均可實(shí)現(xiàn)1MB/s的數(shù)據(jù)傳輸率;
·完全自治的直接內(nèi)存存取DMA操作。
2.3 接口硬件設(shè)計(jì)
由D12接口組成的通信電路原理如圖3所示。關(guān)于D12的各引腳說(shuō)明見(jiàn)參考文獻(xiàn)[4]。多路地址/數(shù)據(jù)總線(xiàn)ALE接單片機(jī)的ALE腳,這樣使用MOVX指令可以與D12接口,對(duì)D12操作就象對(duì)RAM操作一樣,此時(shí)忽略A0(命令口和數(shù)據(jù)口地址線(xiàn))的輸入。因?yàn)闆](méi)有使用DMA傳輸方式,所以沒(méi)有用到DMACK_N、 EOT_N和DMREQ_N DMA引腳。INT_N是USB中斷請(qǐng)求腳,發(fā)出USB中斷請(qǐng)求;GL_N是GoodLink指示燈,在調(diào)試過(guò)程中非常有用,在通信時(shí)會(huì)不停閃爍。如果一直亮或者一直暗,表示USB接口有問(wèn)題,如果D12掛起,則LED關(guān)閉。CLKOUT是D12的時(shí)鐘輸出,可以通過(guò)固件編程改變其頻率,在調(diào)試固件時(shí),可作為參考。
2.4 接口程序設(shè)計(jì)
USB接口程序設(shè)計(jì)是USB開(kāi)發(fā)的核心。USB接口程序設(shè)計(jì)包括三部分:?jiǎn)纹瑱C(jī)程序開(kāi)發(fā)、USB設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)、主機(jī)應(yīng)用程序開(kāi)發(fā)。三者互相配合,才能完成可靠、快速的數(shù)據(jù)傳輸。
2.4.1 單片機(jī)程序設(shè)計(jì)
單片機(jī)程序(又稱(chēng)固件)采用模塊化程序設(shè)計(jì),主要模塊包括:數(shù)據(jù)采集模塊、數(shù)據(jù)處理、監(jiān)控模塊和數(shù)據(jù)通信模塊。模塊化設(shè)計(jì)的優(yōu)點(diǎn)是可靠性高、可讀性好、升級(jí)簡(jiǎn)單。
通信模塊固件結(jié)構(gòu)如圖4所示。主
【基于USB接口的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)】相關(guān)文章:
高性能數(shù)據(jù)采集系統(tǒng)芯片LM12H458及其應(yīng)用05-28
基于PLC的斷路器型式試驗(yàn)系統(tǒng)設(shè)計(jì)03-10
基于web的異地并行設(shè)計(jì)與制造系統(tǒng)研究06-02
局域網(wǎng)數(shù)據(jù)庫(kù)環(huán)境下數(shù)據(jù)采集及處理05-08
基于電話(huà)網(wǎng)絡(luò)的熱網(wǎng)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)05-11
分析基于三維掃描的特種設(shè)備管理系統(tǒng)設(shè)計(jì)論文05-26
ISDN網(wǎng)與普通電話(huà)接口(POTS)設(shè)計(jì)05-29
基于J2EE的遠(yuǎn)動(dòng)系統(tǒng)Web實(shí)時(shí)曲線(xiàn)的研究05-11