<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于USB接口的通用測(cè)試儀的設(shè)計(jì)與實(shí)現(xiàn)

          基于USB接口的通用測(cè)試儀的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2008-05-15 來(lái)源:無(wú)憂電子開(kāi)發(fā)網(wǎng) 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/82648.htm

            在許多工業(yè)控制和數(shù)據(jù)采集系統(tǒng)中,為了實(shí)現(xiàn)系統(tǒng)的小型化和便攜化,通常采用上形式的主從式結(jié)構(gòu)。

            由于(微控制器)成本低,編程靈活、方便,實(shí)時(shí)性強(qiáng),且具有一定的智能,因而通常使用它作為的主控芯片,負(fù)責(zé)對(duì)現(xiàn)場(chǎng)數(shù)據(jù)的采集與傳輸,并控制相應(yīng)的執(zhí)行機(jī)構(gòu)。一般使用普通的PC機(jī)、筆記本電腦或工控機(jī),負(fù)責(zé)對(duì)傳來(lái)的數(shù)據(jù)進(jìn)行分析處理, 并根據(jù)處理結(jié)果控制下位機(jī)的操作。上下位機(jī)之間的數(shù)據(jù)通信接口目前一般使用RS-232和總線接口標(biāo)準(zhǔn),相對(duì)于RS-232, 具有高速傳輸、熱插拔、即插即用等優(yōu)點(diǎn)。在本系統(tǒng)中,為了保證下位機(jī)高速采樣數(shù)據(jù)能及時(shí)傳送給進(jìn)行分析處理,我們采用總線來(lái)實(shí)現(xiàn)上下位機(jī)的數(shù)據(jù)傳輸。

            1  系統(tǒng)的硬件構(gòu)成

            系統(tǒng)主要由PC機(jī),高性能C8051F020微控制器(),USB接口插頭,USB100模塊。圖1是其系統(tǒng)構(gòu)成框圖。

                 

            1.1 C8051F020微控制器[1]

            我們選擇美國(guó)Silicon公司的微控制器()C8051F020(簡(jiǎn)稱F020)作為數(shù)據(jù)采集系統(tǒng)的CPU。F020是一種混合信號(hào)SOC型8位單片機(jī),它有一個(gè)8通道的、轉(zhuǎn)換速率為100Kbps的12位ADC,以及一個(gè)8通道的、轉(zhuǎn)換速率為500Kbps的8位ADC;2個(gè)12位DAC;64KB FlashRom,4KBRAM;有22個(gè)中斷源和5個(gè)定時(shí)器/計(jì)數(shù)器。該MCU屬于C8051FXXX系列中的F02x子系列,其性能價(jià)格比在目前應(yīng)用領(lǐng)域極具競(jìng)爭(zhēng)力,它具有以下主要特點(diǎn):1)芯片采用高速流水線結(jié)構(gòu);2)先進(jìn)的JTAG調(diào)試接口;3)可靠的安全機(jī)制可利用JTAG編程加密芯片;4)強(qiáng)大的控制功能。有多達(dá)64個(gè)I/O線,有獨(dú)特?cái)?shù)字交叉開(kāi)關(guān)(digital crossbar),允許將內(nèi)部數(shù)字系統(tǒng)資源映射到P0、P1、P2和P3的端口I/O引腳;5)有多達(dá)22個(gè)中斷源。

            1.2  USB100[2-3]

            USB100內(nèi)部封裝了USB1.1的全部協(xié)議,并帶有384字節(jié)的發(fā)送緩沖區(qū)和128字節(jié)的接收緩沖區(qū),8位并行數(shù)據(jù)接口。對(duì)USB的操作編程類似對(duì)外部存儲(chǔ)器的操作,由于該模塊完成了全部USB協(xié)議的轉(zhuǎn)換和封裝,使得對(duì)USB的開(kāi)發(fā)和應(yīng)用過(guò)程變得非常簡(jiǎn)單,用戶只要在PC機(jī)上安裝USB100模塊驅(qū)動(dòng)程序以后,對(duì)其編程可以按照與串口完全一樣的方法來(lái)完成。USB100主要的管腳及功能如表1 所示(未列出的管腳為空腳)。

            表1 USB管腳功能和定義

                 

            如圖2所示,當(dāng)檢測(cè)到USB100模塊TXE為低時(shí),表示內(nèi)部發(fā)送緩沖區(qū)允許發(fā)送數(shù)據(jù),可以將數(shù)據(jù)通過(guò)8位數(shù)據(jù)總線D0~D7發(fā)送給USB100模塊,發(fā)送數(shù)據(jù)鎖存由WR控制(邊沿觸發(fā));當(dāng)TXE為高時(shí),禁止發(fā)送數(shù)據(jù)。

                 

            如圖3所示,當(dāng)檢測(cè)到USB100模塊RXF為低時(shí),表示內(nèi)部接收緩沖區(qū)有來(lái)自USB端口的數(shù)據(jù)可通過(guò)8位數(shù)據(jù)線將數(shù)據(jù)讀入,接收數(shù)據(jù)鎖存器由RD控制(邊沿觸發(fā))。

                 

            USB100模塊的數(shù)據(jù)線D0~D7與F020的P4端口相連,P2.4~P2.7分別與USB100模塊的TXE、RXF、WR、RD相連。

            2 系統(tǒng)通信的設(shè)計(jì)[4-6]

            動(dòng)態(tài)的任務(wù)主要是進(jìn)行數(shù)據(jù)采集和定時(shí)/計(jì)數(shù),并將這些數(shù)據(jù)傳給進(jìn)行數(shù)據(jù)處理,這就要求上下位機(jī)之間的通信有清晰、準(zhǔn)確的通信協(xié)議,來(lái)保證數(shù)據(jù)通信能夠有條不紊地進(jìn)行。

            為了滿足上、下位機(jī)軟件的可擴(kuò)展性和通用性,通信協(xié)議采用數(shù)據(jù)幀的形式傳輸信息。協(xié)議幀格式見(jiàn)表2,它由起始符、長(zhǎng)度碼、幀信息、幀校驗(yàn)和終止符組成,成幀過(guò)程中采用了字符插入法和HEX校驗(yàn)。

            表2  協(xié)議幀格式

                 

            1)成幀方式

            協(xié)議幀使用“DLE  STX”作為起始符,使用“DLE ETX”作為終止符,并采用字符插入法保證通信信息的正確。字符插入法的實(shí)現(xiàn)方法為:發(fā)送方搜索起始符和終止符間每個(gè)字節(jié)信息,若為“DLE”,即在該字節(jié)信息后插入一個(gè)“DLE”。接收方接收信息后也要搜索整個(gè)幀,若查找到連續(xù)兩個(gè)“DLE”,即將后一個(gè) “DLE”刪除,還原成原信息內(nèi)容。

            2)幀校驗(yàn)算法

            協(xié)議幀采用HEX校驗(yàn)保證通信信息的正確。HEX校驗(yàn)的填充在字符插入之前實(shí)現(xiàn),HEX校驗(yàn)的驗(yàn)證在插入字符刪除之后實(shí)現(xiàn)。實(shí)現(xiàn)方法為:發(fā)送方計(jì)算起始符和終止符間待發(fā)送數(shù)據(jù)的校驗(yàn)和,然后將256與該校驗(yàn)和的差填充于“HEX校驗(yàn)”字節(jié)處。接收方計(jì)算起始符和終止符間包括HEX字節(jié)在內(nèi)的接收數(shù)據(jù)校驗(yàn)和,若為0,則校驗(yàn)通過(guò)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();