【正文】
lse Led1=0。 數(shù)據(jù)的傳輸過(guò)程如圖 所示。其傳輸過(guò)程涉及 4 個(gè)軟硬件實(shí)體:客戶(hù)軟件、 USB 總線(xiàn)驅(qū)動(dòng)程序、 USB 主控制器驅(qū)動(dòng)程序內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 和 USB 主控制器。 USB 設(shè)備由 3 個(gè)功能模塊組成: USB 總線(xiàn)接口、 USB 邏輯設(shè)備、功能單元。客戶(hù)軟件不能直接訪(fǎng)問(wèn) USB設(shè)備,其與功能單元間的通信必須經(jīng)過(guò) USB系統(tǒng)軟件和 USB 總線(xiàn)接口模塊才能夠?qū)崿F(xiàn)。 如圖 所示, PC 機(jī)通過(guò) USB 與串行適配器 UEC5 連接, UEC5 又通過(guò)電纜與板上的 JTAG 口相連接。寫(xiě) SBUF0時(shí)自動(dòng)訪(fǎng)問(wèn)發(fā)送寄存器;讀 SBUF0 時(shí)自動(dòng)訪(fǎng)問(wèn)接收寄存器,不可能從發(fā)送數(shù)據(jù)寄存器中讀 SBUF0 時(shí)自動(dòng)訪(fǎng)問(wèn)接收寄存器,不可能從發(fā)送數(shù)據(jù)寄存器中讀數(shù)據(jù)。 USB 時(shí)鐘可以來(lái)自 4 倍時(shí)鐘乘法器輸出、內(nèi)部振蕩器分頻或外部振蕩器分頻。外 部振蕩器由外部振蕩器控制寄存器 OSCXCN 來(lái)進(jìn)行配置。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 系統(tǒng)晶振電路 在本系統(tǒng)數(shù)據(jù) 通信 板上選擇的外部晶體振蕩器的諧振頻率為 ,與芯片的連接原理圖如圖 所示。在復(fù)位期間內(nèi)部數(shù)據(jù)存儲(chǔ)器的內(nèi)容不發(fā)生改變,復(fù)位前存儲(chǔ)的數(shù)據(jù)保持不變。 當(dāng)在 USB 網(wǎng)絡(luò)中使用 C8051F320 器件時(shí), VBUS 信號(hào)必須被連到 VBUS 引腳。將 USB 電纜的一端接 J3,另一端接在計(jì)算機(jī)的 USB 端口上,這樣就能完成 數(shù)據(jù)傳輸任務(wù)。在此選用的是 Silabs 公司的 C8051F320。 可以工作在全速或低速方式。在每個(gè)端口都可檢測(cè)終端是否連接或分離,并區(qū)分出高速,或低速設(shè)備。 (3)引腳及封裝 圖 C8051F320 的封裝 具體引腳如圖 所示: VDD—— 數(shù)字電源; GND—— 模擬 地; REGIN—— 5V 校準(zhǔn)器的輸入端; 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) /RST/C2CK—— 設(shè)備的復(fù)位引腳或 EC2 調(diào)試接口的時(shí)鐘信號(hào); —— 端口 或 EC2 調(diào)試接口的雙向信號(hào)引腳; VBUS—— USB 總線(xiàn)輸入腳; D+—— USB 的 D+; D—— USB 的 D; —— 端口 或外部晶振輸入; —— 端口 或外部晶振輸出; — 端口 或 ADC0 外部轉(zhuǎn)換開(kāi)始輸入腳; — 端口 或外部參考電源的輸入端或輸出端; 、 、 、 、 ~、 ~ 均為相應(yīng)的端口引腳。當(dāng)程序運(yùn)行時(shí),可實(shí)現(xiàn)內(nèi)外時(shí)鐘的動(dòng)態(tài)切換。 傳統(tǒng)的單片機(jī) I/O 端口大都是固定為某個(gè)特殊功能的輸入 /輸出口,可以是單功能或多功能, I/O 端口可編程選擇為單向 /雙向以及上拉、開(kāi)漏 等。 ● USB 功能控制模塊 滿(mǎn)足 協(xié)議:可在全速 (12Mbps)或低速 ()下運(yùn)行;集成有一個(gè)時(shí) 鐘恢復(fù)源,對(duì)于全速或低速傳輸均可不用外部晶振;支持 8 個(gè)靈活通用的端點(diǎn);內(nèi)置一個(gè) IK 的 USB 專(zhuān)用緩沖存儲(chǔ)器;集成了一個(gè) USB 接收器,不需要外部電阻。 系統(tǒng)框圖如圖 所示。單片機(jī)固件則響應(yīng)各種來(lái)自系統(tǒng)的 USB 標(biāo)準(zhǔn)請(qǐng)求,完成各種數(shù)據(jù)的交換工作和事件處理 。 (4)適當(dāng)?shù)膬r(jià)格,包括元器件價(jià)格和開(kāi)發(fā)系統(tǒng)的一次性投資,降低成本。 (2)對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行合理的選擇,其中包括硬件、軟件功能的合理分配,系統(tǒng)采用何種布局和接口方式 。 目前, USB 數(shù)據(jù)采集技術(shù)在國(guó)外已處于高速發(fā)展階段。如在電磁干擾比較嚴(yán)重的環(huán)境下,可以很容易設(shè)計(jì)屏蔽方案。在 USB 方式下,允許外設(shè)熱插拔,不必關(guān)閉主機(jī)電源,用戶(hù)不內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 必參與設(shè)備安裝過(guò)程。對(duì)于需要野外作業(yè)的場(chǎng)合,經(jīng)常使用便攜式的 通信 設(shè)備,將采集到的數(shù)據(jù)存儲(chǔ)在設(shè)備中,帶回室內(nèi)再將它送給計(jì)算機(jī)進(jìn)行分析處理 :或是采用專(zhuān)門(mén)的利用筆記本的電腦實(shí)現(xiàn)的采集器。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益提高。 這一章我將簡(jiǎn)單介紹數(shù)據(jù) 通信 系統(tǒng)、新技術(shù) USB 的出現(xiàn)對(duì)其的影響,同時(shí)引出本文的標(biāo)題《 基于 USB 總線(xiàn)的數(shù)據(jù)通信系統(tǒng) 的設(shè)計(jì)》。 關(guān)鍵詞: C8051F320; USB; 固件程序; 驅(qū)動(dòng)程序 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢 業(yè) 論文 ) Abstract The paper is mainly concerned with the design process of data acquisition system that is based on USB bus. The design scheme, developing method and developing process of a suit of data acquisition system used with America Silicon Laboratories’s C8051F320 are expatiated. In addition, the paper also gives the material realization scheme. This design includes hardware and software design. The hardware design part introduces that produces the concrete hardware design scheme, and the PCB design. There are three parts in the software design part, such as the firmware39。 本 系統(tǒng) 設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明 原創(chuàng)性聲明 本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。 作者簽名: 日期: 年 月 日 學(xué)位論文版權(quán)使用授權(quán)書(shū) 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。在硬件設(shè)計(jì)部分,介 紹了具體硬件設(shè)計(jì)方案。s development, the driver development program and the application program development. The paper shows the idea and layer structure of program design as a whole, and then introduces the firmware design in detail and gives the flowcharts and firmware function library. In the part of device driver design, the structure and customization steps of driver are discussed. The design of host application program introduces the API functions and then introduces program flow diagram and gives a few codes of the firmware program. Input data transmitted through the UART controller module. The data which host sends to MCU by USB interface is send to another data terminal as a short message. This MCU receives the short message from the data collection and transmits it through the USB interface gives the host. The design achieves the function to transmit the data to the puter via USB interface and control the system condition with puter. It pletes lower system power consumption lower cubage and higher antijamming than in traditional ways, and it has the wide prospect of application. Key words: C8051F320。 數(shù)據(jù)采集系統(tǒng)的簡(jiǎn)介 數(shù)據(jù) 通信 系統(tǒng)是計(jì)算機(jī)在工業(yè)控制系統(tǒng)中最為普遍的應(yīng)用系統(tǒng)。除了性能好以外,還要求數(shù)據(jù)采集系統(tǒng)能有其它特點(diǎn),如使用方便、經(jīng)濟(jì)合理、安全可靠、抗干擾能力強(qiáng)等。 USB 新技術(shù)的出現(xiàn) USB 是 Universal Serial Bus(通用串行總線(xiàn),也譯為萬(wàn)能總線(xiàn) )的簡(jiǎn)稱(chēng),是 1995 年Compaq 等公司為了解決傳統(tǒng)總線(xiàn)的不足而推廣的一種新型串行通訊標(biāo)準(zhǔn)。另外, USB 采用“級(jí)聯(lián)’方式,即每個(gè) USB 設(shè)備用一個(gè) USB插頭連接到一個(gè)外設(shè)的 USB 插座上,而本身又提供一個(gè) USB 插座供下一個(gè) USB 外設(shè)連接使用。 (5)USB 設(shè)備不涉及主機(jī)中斷請(qǐng)求 (IRQ)沖突問(wèn)題。尤其是在高數(shù)據(jù)傳輸速度、高實(shí)時(shí)性、高同步性等方面有雄厚的技術(shù)實(shí)力。 (3)采用科學(xué)的方法設(shè)計(jì)應(yīng)用軟件 。 一個(gè)實(shí)用的 USB數(shù)據(jù) 通信 系統(tǒng)包括微控制器以及 USB通信接口。而客戶(hù)驅(qū)動(dòng)程序則讓主機(jī)可以識(shí)別 USB 設(shè)備,并通過(guò)應(yīng)用軟件來(lái)存取 USB設(shè)備,完成通信功能。 單片機(jī) 的選擇 本設(shè)計(jì)采用了 Silicon Laboratories 公司的片上系統(tǒng)級(jí)單片機(jī) C8051F320 作為控制采集板的核心芯片,這是因?yàn)樗哂?以 下特點(diǎn)。 ● 片內(nèi)調(diào)試模塊 片內(nèi)調(diào)試電路提供全速、非侵入式的在系統(tǒng)調(diào)試 (不需仿真器 );支持端點(diǎn)、單步、觀(guān)察點(diǎn)、堆棧監(jiān)視器;可以觀(guān)察 /修改存儲(chǔ)器和寄存器;比使用仿真芯片、目標(biāo)仿真頭和仿真插座的仿真系統(tǒng)有更好的性能。這種固定方式既占用較多引腳,配置又不夠靈活。編程選擇的時(shí)鐘輸出 CYSCLK 除供片內(nèi)使用外,還可從隨意選擇的 I/O 端口輸出。 綜上所述,選用 Silicon Laboratories 公司的 C8051F320 單片機(jī)硬件設(shè)計(jì)電路比較簡(jiǎn)單,設(shè)計(jì)的芯片體積較小,功耗低,可以在系統(tǒng)調(diào)試,軟件環(huán)境集成化,省去了許多麻煩。 綜上所述,相對(duì)于工業(yè)上數(shù)據(jù) 通信在 以前常采用的 PCI 總線(xiàn)、 ISA 總線(xiàn)或者 RS232總線(xiàn)作為采集方式, USB 總線(xiàn)具有支持熱拔插、即插即用、支持共享式接口且體積小巧、節(jié)省系統(tǒng)資源、成本低廉性能可靠等等諸多優(yōu)點(diǎn)。片內(nèi) 4 倍時(shí)鐘乘法器和時(shí)鐘恢復(fù)電路允許使用內(nèi)部高精度振蕩器作為 USB 時(shí)鐘源,實(shí)現(xiàn)全速和低速通信。 C8051F320 本身集成了全速 /低速 USB 功能,用于實(shí)現(xiàn) USB 接口的外部設(shè)備(但內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 是 C8051F320 不能被用作 USB 主設(shè)備),它完全符合通用串行總線(xiàn)規(guī)范 版。 USB 接口電路 由于 C8051F320 微控制器具有簡(jiǎn)單易用的特點(diǎn),因此用 C8051F320 進(jìn)行 USB 接口的硬件設(shè)計(jì)也顯得十分簡(jiǎn)單,主要包括兩部分的內(nèi)容,一是接口轉(zhuǎn)換模塊供電方式的選擇,二是 USB 引腳的連接,圖 是其 USB 接口電路圖。當(dāng)器件工作在總線(xiàn)供 電方式時(shí), VBUS 信號(hào)只應(yīng)連接到 REGIN 引腳。但由于堆棧指針 SFR 被復(fù)位,堆棧實(shí)際上已丟失,盡管堆棧中的數(shù)據(jù)未發(fā)生變化。系統(tǒng)在正常運(yùn)行期間可以使用外部高頻率高精確度的時(shí)鐘,在系統(tǒng)休眠或者特殊功能場(chǎng)合將時(shí)鐘切換 到內(nèi)部低頻率時(shí)鐘,以便降低功耗。 系統(tǒng)時(shí)鐘( SYSCLK)可以來(lái)自?xún)?nèi)部振蕩器、外部振蕩器電路或 4 倍時(shí)鐘乘法器二分頻。當(dāng) USB0 工作在全速方式時(shí), USB 時(shí)鐘必須是 48 MHz;當(dāng) 工作在低速方式時(shí), USB 時(shí)鐘必須是 6MHz。 UART 電路圖 如圖 所示。通過(guò)和 Silicon Labs IDE 可以方便的將程序?qū)懭肫?。它一般包?USB 設(shè)備驅(qū)動(dòng)程序和界面應(yīng)用程序兩部分。 USB內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(shū)(畢業(yè) 論文 ) 總線(xiàn)接口是 USB 設(shè)備中的串行接口引擎( SIE); USB 邏輯設(shè)備被 USB 系統(tǒng)軟件看作是一個(gè)端點(diǎn)的集合;功能單元被客戶(hù)軟件看作是一個(gè)接口的集合。圖中的向下的箭頭表示了客戶(hù)軟件向 USB 設(shè)備發(fā)送數(shù)據(jù)的情況,其傳輸步驟如下: (1) 客戶(hù)軟件把要傳輸?shù)臄?shù)據(jù)放入數(shù)據(jù)緩沖區(qū),并向 USB 總線(xiàn)驅(qū)動(dòng)程序發(fā)出 IRP,以請(qǐng)求數(shù)據(jù)傳輸。 圖 USBXpress 數(shù)據(jù)流 在 C8051F320 中建立數(shù)組 Out Packet 用于存儲(chǔ)從主機(jī)收到的數(shù)據(jù)包,和 In_Packet[]存儲(chǔ)將要送到主機(jī)的包,數(shù)組中的每一個(gè)字節(jié)都可以靈活的在程序中設(shè)定其表示的狀態(tài)或者傳送的數(shù)據(jù)。 if(Out_Packet[1]==1)Led2=1。程序軟件編寫(xiě)時(shí)