畢業(yè)設(shè)計(jì)----多路數(shù)據(jù)采集系統(tǒng)的模塊化設(shè)計(jì)_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  目錄</b></p><p><b>  摘要1</b></p><p>  TAN Zhongxian2</p><p>  Abstract2</p><p><b>  0 文獻(xiàn)綜述3</b></p><p>

2、  2數(shù)據(jù)采集的組成結(jié)構(gòu)5</p><p>  2.1 集中采集式(集中式)6</p><p>  2.2 分散集中式(分散式)7</p><p>  3 數(shù)據(jù)采集電路設(shè)計(jì)8</p><p>  3.1 基于A/D轉(zhuǎn)換電路設(shè)計(jì)8</p><p>  3.2 基于單片機(jī)轉(zhuǎn)換電路設(shè)計(jì)10</p>

3、<p>  3.3 單片機(jī)數(shù)據(jù)采集程序設(shè)計(jì)13</p><p>  4 數(shù)據(jù)采集總線設(shè)計(jì)14</p><p>  4.1 CAN總線14</p><p>  4.1.1 CAN總線簡介及其特點(diǎn)14</p><p>  4.1.2 CAN總線通信介質(zhì)訪問控制方式15</p><p>  4.1.3 應(yīng)

4、用技術(shù)17</p><p>  4.1.4 目前應(yīng)用狀況及其前景20</p><p>  4.2 R-S48520</p><p>  5 上位機(jī)數(shù)據(jù)處理程序設(shè)計(jì)25</p><p>  5.1 VB程序設(shè)計(jì)25</p><p>  5.2 Matlab程序設(shè)計(jì)28</p><p>

5、<b>  6 結(jié)論34</b></p><p><b>  參考文獻(xiàn)35</b></p><p><b>  致謝36</b></p><p>  多路數(shù)據(jù)采集系統(tǒng)的模塊化設(shè)計(jì)</p><p>  摘要:目前,數(shù)據(jù)采集系統(tǒng)廣泛應(yīng)用在科研、教育、工業(yè)、水利等眾多領(lǐng)域。本系

6、統(tǒng)采用單片機(jī)作為核心處理器,完成對一路模擬信號(hào)的數(shù)據(jù)采集,將采集后的數(shù)據(jù)暫存在片內(nèi)存儲(chǔ)器中,傳輸?shù)接?jì)算機(jī)顯示。ADuC848有豐富的片內(nèi)外設(shè),用它作為處理器進(jìn)行電路設(shè)計(jì),可以使電路結(jié)構(gòu)設(shè)計(jì)簡單,成本低,開發(fā)周期相對短。文中介紹了系統(tǒng)實(shí)現(xiàn)的具體方案,包括硬件接口的設(shè)計(jì)和各模塊的軟件設(shè)計(jì)。數(shù)據(jù)采集部分,采用ADuC848內(nèi)部自帶的AD轉(zhuǎn)換模塊。文中給出了具體的軟件實(shí)現(xiàn)過程。一般來說,實(shí)際場合輸入為雙極性信號(hào),因此需要在送入模數(shù)轉(zhuǎn)換器前轉(zhuǎn)換為

7、單極性信號(hào),文中介紹了雙極性信號(hào)轉(zhuǎn)為單極性信號(hào)的電路。數(shù)據(jù)傳輸是基于RS4-85總線和CAN總線完成。</p><p>  關(guān)鍵詞:RS-485總線,ADuC848,AD7654,CAN總線</p><p>  Many Method According to Collect the Mold Piece of System to Turn a Design</p><

8、p>  Abstract: Currently, the data acquisition system is widely used in scientific research, education, industry, water conservancy, etc. This system USES the monolithic processor as the core to finish all the analog s

9、ignals, the data acquisition, data collection after in internal memory chips, transmission to the computer display. ADuC848 have rich chips, and used it as a processor for circuit design, can make the circuit structure,

10、low cost, simple design relatively short development cycle. This pa</p><p>  Keywords: RS-485bus,ADuC848,AD7654,CAN bus</p><p><b>  0 文獻(xiàn)綜述</b></p><p>  數(shù)據(jù)采集系統(tǒng)用于將模擬信號(hào)轉(zhuǎn)換為計(jì)

11、算機(jī)可以識(shí)別的數(shù)字信號(hào)。該系統(tǒng)目的是便于對某些物理量進(jìn)行監(jiān)視。數(shù)據(jù)采集系統(tǒng)的好壞取決于他的精度和速度。應(yīng)在保證精度的情況下盡可能的提高速度以滿足實(shí)時(shí)采樣、實(shí)時(shí)處理、實(shí)時(shí)控制的要求。在科學(xué)研究中應(yīng)用該系統(tǒng)可以獲得大量動(dòng)態(tài);是研究瞬間物理過程的重要手段;亦是獲取科學(xué)奧秘的重要手段之一。本文采用新穎的方法完成設(shè)計(jì),用到的集成芯片主要有單片機(jī)、傳感器、串口通訊等。單片機(jī)主要作用是對四路數(shù)據(jù)信號(hào)進(jìn)行選擇采集,并將其處理,再送至主控制器(單片機(jī));

12、采集完畢后,再由主控制器由串行輸入端,輸送到PC機(jī),由PC機(jī)控制各系統(tǒng)。</p><p>  一般短距離串口傳輸時(shí)只需用RS-232連接就可。在要求通信距離為幾十米到上千米時(shí),廣泛采用RS-485收發(fā)器。RS-485收發(fā)器采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,加上接收器具有高的靈敏度,能檢測低達(dá)200mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。使用RS-485總線,一對雙絞線就能實(shí)現(xiàn)多站聯(lián)網(wǎng),構(gòu)成分

13、布式系統(tǒng),設(shè)備簡單、價(jià)格低廉、能進(jìn)行長距離通信的優(yōu)點(diǎn)使其得到了廣泛的應(yīng)用 。</p><p>  本文采用的數(shù)據(jù)采集是ADuC848芯片,它可進(jìn)行模數(shù)轉(zhuǎn)換。ADuC848是美國ADI公司最新推出的一款具有軍品標(biāo)準(zhǔn),單片最多可帶8路模擬信號(hào)輸入轉(zhuǎn)換通道,擴(kuò)展主機(jī)/從機(jī)模式最多可達(dá)16路模擬輸入通道的微控制器</p><p>  模擬信號(hào)采用的是AD7654芯片,可通過傳感器模擬輸入芯片,AD

14、7654是ADI公司推出的一種低功耗、四通道、電荷再分布式高速A/D轉(zhuǎn)換器。串行A/D轉(zhuǎn)換的速率很高。并且具有體積小、功耗低、占用單片機(jī)口線少的優(yōu)點(diǎn)。</p><p><b>  1 引言</b></p><p><b>  多路數(shù)據(jù)采集概述</b></p><p>  數(shù)據(jù)采集系統(tǒng)的任務(wù)就是采集傳感器輸出的模擬信號(hào)并轉(zhuǎn)換

15、成計(jì)算機(jī)能識(shí)別的數(shù)據(jù)信號(hào),然后送入計(jì)算機(jī)進(jìn)行相應(yīng)的計(jì)算和處理,得出所需的數(shù)據(jù)。并計(jì)算得到的數(shù)據(jù)經(jīng)行顯示或打印,以便實(shí)現(xiàn)對某些物理量的實(shí)時(shí)控制。在生產(chǎn)生活的各個(gè)領(lǐng)域,數(shù)據(jù)采集系統(tǒng)幾乎無處不在,凡是有自動(dòng)檢測及控制的地方都會(huì)有數(shù)據(jù)集采機(jī)系統(tǒng)的身影出現(xiàn);從簡單到復(fù)雜,從空中,地面到地下,凡是能想象到的地方都有使用數(shù)據(jù)采集系統(tǒng)的需求。因此,對本課題的研究有極其廣闊的發(fā)展前景和巨大的經(jīng)濟(jì)價(jià)值。</p><p>  數(shù)據(jù)采集

16、系統(tǒng)的發(fā)展起始于20世紀(jì)50年代,1956年美國首先研究了用在軍事上的數(shù)字采集系統(tǒng)。20世紀(jì)70年代中后期,隨著微型機(jī)的發(fā)展,誕生了采集器,儀表同計(jì)算機(jī)溶為一體的數(shù)據(jù)采集系統(tǒng)。由于這種數(shù)據(jù)采集系統(tǒng)的性能優(yōu)良,超過了傳統(tǒng)的自動(dòng)檢測儀表和 專用數(shù)據(jù)采集系統(tǒng),因此獲得了驚人的發(fā)展。到了80年代隨著計(jì)算機(jī)的普及應(yīng)用,數(shù)據(jù)采集系統(tǒng)的到了極大的發(fā)展,開始出現(xiàn)了通用的數(shù)據(jù)采集與自動(dòng)測試系統(tǒng)。該階段的數(shù)據(jù)采集系統(tǒng)主要有兩類,一類以儀器儀表和采集器,通用

17、接口總線和計(jì)算機(jī)等構(gòu)成。第二類以數(shù)據(jù)采集卡,標(biāo)準(zhǔn)總線和計(jì)算機(jī)構(gòu)成。及至90年代至今,在國際上技術(shù)先進(jìn)的國家,數(shù)據(jù)采集技術(shù)已經(jīng)在軍事,航空電子設(shè)備及宇航技術(shù),工業(yè)等領(lǐng)域被廣泛應(yīng)用。</p><p>  隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集系統(tǒng)在多個(gè)領(lǐng)域有著廣泛的應(yīng)用。數(shù)據(jù)采集是工、農(nóng)業(yè)控制系統(tǒng)中至關(guān)重要的一環(huán),在醫(yī)藥、化工、食品、等領(lǐng)域的生產(chǎn)過程中,往往需要隨時(shí)檢測各生產(chǎn)環(huán)節(jié)的溫度、濕度、流量及壓力等參數(shù)。同時(shí)

18、,還要對某一檢測點(diǎn)任意參數(shù)能夠進(jìn)行隨機(jī)查尋,將其在某一時(shí)間段內(nèi)檢測得到的數(shù)據(jù)經(jīng)過轉(zhuǎn)換提取出來,以便進(jìn)行比較,做出決策,調(diào)整控制方案,提高產(chǎn)品的合格率,產(chǎn)生良好的經(jīng)濟(jì)效益。</p><p>  隨著工、農(nóng)業(yè)的發(fā)展,多路數(shù)據(jù)采集勢必將得到越來越多的應(yīng)用,為適應(yīng)這一趨勢,作這方面的研究就顯得十分重要。在科學(xué)研究中,運(yùn)用數(shù)據(jù)采集系統(tǒng)可獲得大量的動(dòng)態(tài)信息,也是獲取科學(xué)數(shù)據(jù)和生成知識(shí)的重要手段之一。總之,不論在哪個(gè)應(yīng)用領(lǐng)域中

19、,數(shù)據(jù)采集與處理將直接影響工作效率和所取得的經(jīng)濟(jì)效益。</p><p>  此外,計(jì)算機(jī)的發(fā)展對通信起了巨大的推動(dòng)作用.計(jì)算機(jī)和通信緊密結(jié)合構(gòu)成了靈活多樣的通信控制系統(tǒng),也可以構(gòu)成強(qiáng)有力的信息處理系統(tǒng),這樣對社會(huì)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響。數(shù)據(jù)通信是計(jì)算機(jī)廣泛應(yīng)用的必然產(chǎn)物。</p><p>  數(shù)據(jù)采集系統(tǒng),從嚴(yán)格的意義上來說,應(yīng)該是用計(jì)算機(jī)控制的多路數(shù)據(jù)自動(dòng)檢測或巡回檢測,并且能夠?qū)?shù)據(jù)實(shí)

20、行存儲(chǔ)、處理、分析計(jì)算以及從檢測的數(shù)據(jù)中提取可用的信息,供顯示、記錄、打印或描繪的系統(tǒng)。</p><p>  數(shù)據(jù)采集系統(tǒng)一般由數(shù)據(jù)輸入通道,數(shù)據(jù)存儲(chǔ)與管理,數(shù)據(jù)處理,數(shù)據(jù)輸出及顯示這五個(gè)部分組成。輸入通道要實(shí)現(xiàn)對被測對象的檢測,采樣和信號(hào)轉(zhuǎn)換等工作。數(shù)據(jù)存儲(chǔ)與管理要用存儲(chǔ)器把采集到的數(shù)據(jù)存儲(chǔ)起來,建立相應(yīng)的數(shù)據(jù)庫,并進(jìn)行管理和調(diào)用。數(shù)據(jù)處理就是從采集到的原始數(shù)據(jù)中,刪除有關(guān)干擾噪聲,無關(guān)信息和必要的信息,提取出

21、反映被測對象特征的重要信息。另外,就是對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,以便于檢索;或者把數(shù)據(jù)恢復(fù)成原來物理量的形式,以可輸出的形態(tài)在輸出設(shè)備上輸出,例如打印,顯示,繪圖等。數(shù)據(jù)輸出及顯示就是把數(shù)據(jù)以適當(dāng)?shù)男问竭M(jìn)行輸出和顯示。</p><p>  由于RS-232在微機(jī)通信接口中廣泛采用,技術(shù)已相當(dāng)成熟。在近端與遠(yuǎn)端通信過程中,采用串行RS-232標(biāo)準(zhǔn),實(shí)現(xiàn)PC機(jī)與單片機(jī)間的數(shù)據(jù)傳輸。在本畢業(yè)設(shè)計(jì)中對多路數(shù)據(jù)采集系統(tǒng)作了基本的

22、研究。本系統(tǒng)主要解決的是怎樣進(jìn)行數(shù)據(jù)采集以及怎樣進(jìn)行多路的數(shù)據(jù)采集,并將數(shù)據(jù)上傳至計(jì)算機(jī)。</p><p>  2數(shù)據(jù)采集的組成結(jié)構(gòu)</p><p>  一般說來,數(shù)據(jù)采集系統(tǒng)由傳感器、信號(hào)調(diào)理電路、數(shù)據(jù)采集電路三部分組成,如圖1 所示。 </p><p>  圖1 數(shù)據(jù)采集系統(tǒng)的基本組成</p><p>  Fig.1 Data acq

23、uisition system of basic composition</p><p>  實(shí)際的數(shù)據(jù)采集系統(tǒng)往往需要同時(shí)測量多種物理量(多參數(shù)測量)或同一種物理量的多個(gè)測量點(diǎn)(多點(diǎn)巡回測量)。因此,多路模擬輸人通道更具有普遍性。按照系統(tǒng)中數(shù)據(jù)采集電路是各路共用一個(gè)還是每路各用一個(gè),多路模擬輸人通道可分為集中采集式(簡稱集中式)和分散采集式(簡稱分布式)兩大類型。 </p><p>  

24、2.1 集中采集式(集中式)</p><p>  集中采集式多路模擬輸人通道的典型結(jié)構(gòu)有分時(shí)采集型和同步采集型兩種,分別如圖2(a) 和 (b) 所示。 </p><p>  (a) 多路分時(shí)采集分時(shí)輸入結(jié)構(gòu)</p><p> ?。╞) 多路同步采集分時(shí)輸入結(jié)構(gòu)</p><p>  圖2 集中式數(shù)據(jù)采集系統(tǒng)的典型結(jié)構(gòu)</p>&

25、lt;p>  Fig.2 Centralized data acquisition system of typical structure</p><p>  2.2 分散集中式(分散式)</p><p>  分散采集式的特點(diǎn)是每一路信號(hào)一般都有一個(gè) S/H 和 A/D ,因而也不再需要模擬多路切換器 MUX 。每一個(gè) S/H 和 A/D 只對本路模擬信號(hào)進(jìn)行數(shù)字轉(zhuǎn)換即數(shù)據(jù)采集,采

26、集的數(shù)據(jù)按一定順序或隨機(jī)地輸人計(jì)算機(jī),根據(jù)采集系統(tǒng)中計(jì)算機(jī)控制結(jié)構(gòu)的差異可以分為單機(jī)采集系統(tǒng)和網(wǎng)絡(luò)式采集系統(tǒng),如圖3(a) 和 (b) 所示。 </p><p>  (a) 分布式單機(jī)數(shù)據(jù)采集結(jié)構(gòu)</p><p>  (b) 網(wǎng)絡(luò)式數(shù)據(jù)采集結(jié)構(gòu)</p><p>  圖3 分布式數(shù)據(jù)采集系統(tǒng)的典型結(jié)構(gòu)</p><p>  Fig.3 Dist

27、ributed data acquisition system of typical structure</p><p>  3 數(shù)據(jù)采集電路設(shè)計(jì)</p><p>  3.1 基于A/D轉(zhuǎn)換電路設(shè)計(jì)</p><p>  模/數(shù)轉(zhuǎn)換是現(xiàn)代測控電路中非常重要的環(huán)節(jié),它有并行和串行兩種數(shù)據(jù)輸出形式。目前,模/數(shù)轉(zhuǎn)換器ADC已被做成大規(guī)模集成電路,并有多種型號(hào)和種類可供選擇

28、。本文介紹了AD7654的性能特點(diǎn),并設(shè)計(jì)了AD7654與單片機(jī)ADuC848的接口電路,同時(shí)給出了軟件流程和相應(yīng)的匯編源程序。 </p><p>  1 AD7654的性能特點(diǎn)和工作原理</p><p>  AD7654是ADI公司推出的一種低功耗、四通道、電荷再分布式高速A/D轉(zhuǎn)換器,該A/D轉(zhuǎn)換器的主要特點(diǎn)是:16位分辨率且無漏失碼;O V~5 V模擬輸入范圍;SPI/QSPI/Mi

29、crowire/DSP兼容;兩個(gè)允許同步采樣的低噪音、高帶寬跟蹤/保持放大器;功耗典型值為120 mW;可提供串行和并行兩種輸出接口,給予用戶靈活的選擇。串行A/D轉(zhuǎn)換的速率很高,并且具有體積小、功耗低、占用單片機(jī)口線少的優(yōu)點(diǎn),文中采用串行模式設(shè)計(jì)電路,有關(guān)引腳說明如下:</p><p>  A0:轉(zhuǎn)換通道選擇;</p><p>  A/B:高電平時(shí),先輸出A通道轉(zhuǎn)換數(shù)據(jù)再輸出B通道轉(zhuǎn)換數(shù)

30、據(jù),低電平反之;</p><p>  SER/PAR:串行/并行模式選擇。低電平為并行模式,高電平為串行模式;</p><p>  EXT/INT:高電平時(shí)選擇外部時(shí)鐘,低電平時(shí)選擇內(nèi)部時(shí)鐘;</p><p>  SDOUT:轉(zhuǎn)換數(shù)據(jù)輸出位;</p><p>  SCLK:串行數(shù)據(jù)時(shí)鐘輸入或輸出(取決于EXT/INT的邏輯狀態(tài));</p

31、><p>  CNVST:開始轉(zhuǎn)換。CNVST的下降沿使內(nèi)部采樣保持進(jìn)入保持狀態(tài)并開始轉(zhuǎn)換;</p><p>  BUSY:正在轉(zhuǎn)換標(biāo)志;</p><p>  EOC:轉(zhuǎn)換結(jié)束標(biāo)志。</p><p>  AD7654的轉(zhuǎn)換過程由CNVST下降沿啟動(dòng),轉(zhuǎn)換啟動(dòng)與CS和RD信號(hào)狀態(tài)無關(guān),A0引腳控制轉(zhuǎn)換通道的選擇。在轉(zhuǎn)換結(jié)束之前,即使掉電轉(zhuǎn)換也不會(huì)重

32、新開始或終止。轉(zhuǎn)換進(jìn)行過程中,BUSY變?yōu)楦唠娖?,EOC也為高電平,EOC在每一個(gè)通道轉(zhuǎn)換結(jié)束后變?yōu)榈碗娖?,而BUSY線在兩個(gè)通道轉(zhuǎn)換全部結(jié)束后才變?yōu)榈碗娖?,轉(zhuǎn)換的32位數(shù)據(jù)可以從SDOUT上讀出。轉(zhuǎn)換時(shí)序圖如圖4所示。AD7654有串行和并行兩種接口方式,每種接口方式又有主從兩種模式,本文介紹其串行接口下從模式的硬件和軟件設(shè)計(jì)。</p><p>  圖4 基本轉(zhuǎn)換時(shí)序圖</p><p>

33、  Fig.4 basic conversion timing diagram</p><p>  在本系統(tǒng)中,單片機(jī)選用ADI的ADuC848,具體的接口電路如圖2所示。筆者設(shè)計(jì)AD7654工作在串行從模式下,因此其數(shù)據(jù)的轉(zhuǎn)換和讀取都需要微處理器ADuC848的控制,所需的高精度2.5 V基準(zhǔn)電壓由AD780提供,AD7654上所有的電源和地之間都需連接去耦電容器。因?yàn)锳DuC848的P1口只能作為輸入口,而

34、P0口被USB接口器件占用,所以AD7654的控制引腳只能連接到單片機(jī)P2和P3口上的部分端口。在實(shí)驗(yàn)電路中,AD7654的SER/PAR和EXT/INT引腳直接由硬件置高電平,INVS-CLK由硬件置低電平,使ADC以串口方式工作,同時(shí)使數(shù)據(jù)輸出由外部時(shí)鐘控制。由于AD7654是兩個(gè)通道同時(shí)采樣,所以需要給A/B置位以控制數(shù)據(jù)的輸出順序。ADuC848的P2.5引腳接至AD7654的CNVST,這樣只需要通過單片機(jī)ADuC848控制使

35、P2.5產(chǎn)生一個(gè)寬度大于5 ns的負(fù)脈沖,該負(fù)脈沖的下降沿就可以啟動(dòng)ADC開始轉(zhuǎn)換,轉(zhuǎn)換的時(shí)間約為2μs。當(dāng)轉(zhuǎn)換結(jié)束時(shí),BUSY引腳上的信號(hào)就會(huì)變成低電平,從而通知單片機(jī)可以開始讀取轉(zhuǎn)換的數(shù)據(jù),由于實(shí)際AD7654轉(zhuǎn)換速度很快,因此BUSY線可以</p><p>  圖5 AD7654與單片機(jī)的接口電路</p><p>  Fig.5 AD7654 and MCU interface

36、circuit</p><p>  3.2 基于單片機(jī)轉(zhuǎn)換電路設(shè)計(jì)</p><p>  在本系統(tǒng)中,單片機(jī)選用ADI的AduC848,具體的接口電路如圖6所示。筆者設(shè)計(jì)AD7654工作在串行從模式下,因此其數(shù)據(jù)的轉(zhuǎn)換和讀取都需要微處理器AduC848的控制,所需的高精度2.5 V基準(zhǔn)電壓由AD780提供,AD7654上所有的電源和地之間都需連接去耦電容器。因?yàn)锳duC848的P1口只能作為

37、輸入口,而P0口被USB接口器件占用,所以AD7654的控制引腳只能連接到單片機(jī)P2和P3口上的部分端口。</p><p>  在實(shí)驗(yàn)電路中,AD7654的SER/PAR和EXT/INT引腳直接由硬件置高電平,INVS-CLK由硬件置低電平,使ADC以串口方式工作,同時(shí)使數(shù)據(jù)輸出由外部時(shí)鐘控制。由于AD7654是兩個(gè)通道同時(shí)采樣,所以需要給A/B置位以控制數(shù)據(jù)的輸出順序。AduC848的P2.5引腳接至AD765

38、4的CNVST,這樣只需要通過單片機(jī)AduC848控制使P2.5產(chǎn)生一個(gè)寬度大于5 ns的負(fù)脈沖,該負(fù)脈沖的下降沿就可以啟動(dòng)ADC開始轉(zhuǎn)換,轉(zhuǎn)換的時(shí)間約為2μs。當(dāng)轉(zhuǎn)換結(jié)束時(shí),BUSY引腳上的信號(hào)就會(huì)變成低電平,從而通知單片機(jī)可以開始讀取轉(zhuǎn)換的數(shù)據(jù),由于實(shí)際AD7654轉(zhuǎn)換速度很快,因此BUSY線可以不用,啟動(dòng)轉(zhuǎn)換后可以直接讀取數(shù)據(jù)。</p><p>  在單片機(jī)讀取數(shù)據(jù)前,需要通過P2.6和P3.4口給讀選通R

39、D和片選CS置零,以使SDOUT上的數(shù)據(jù)有效,然后單片機(jī)通過P2.0(SCLK)引腳向AD7654發(fā)送8個(gè)時(shí)鐘脈沖,與此同時(shí)單片機(jī)就可以通過P2.2口從SDOUT上讀取8位轉(zhuǎn)換的數(shù)據(jù)。串行從模式下讀數(shù)據(jù)時(shí)序圖如圖7所示。</p><p>  圖 6 AD7654與單片機(jī)的接口電路</p><p>  Fig.6 AD7654 and MCU interface circuit</p

40、><p>  圖7 串口從模式讀數(shù)據(jù)時(shí)序圖</p><p>  Fig.7 Serial data from reading sequence chart pattern</p><p>  該系統(tǒng)中微處理器ADuC848與A/D轉(zhuǎn)換器AD7654之間的數(shù)據(jù)傳送采用SPI(串行外設(shè)接口)方式。SCLOCK是主機(jī)的時(shí)鐘線,為MISO數(shù)據(jù)的發(fā)送和接收提供同步時(shí)鐘信號(hào)。每

41、一位數(shù)據(jù)的傳輸都需要1次時(shí)鐘作用,因而發(fā)送或接收1個(gè)字節(jié)的數(shù)據(jù)需要8個(gè)時(shí)鐘的作用。SPI有2個(gè)相關(guān)的寄存器:即SPICON和SPIDAT,其中SPICON包含各種標(biāo)志位、使能位、方式位及時(shí)鐘位;另一個(gè)SPI寄存器是SPIDAT,對這一寄存器的寫操作會(huì)使SCLOCK產(chǎn)生8個(gè)時(shí)鐘脈沖,從高位開始一位一位地發(fā)送數(shù)據(jù)。如果寫操作發(fā)生在其他數(shù)據(jù)正在傳輸?shù)倪^程中,那么WCOL將置位。如果寫操作進(jìn)行時(shí)沒有其他數(shù)據(jù)在傳輸,輸入字節(jié)保留在移位寄存器中,此

42、時(shí)ISPI自動(dòng)置位(如果有中斷設(shè)置,則產(chǎn)生中斷),移位寄存器的數(shù)據(jù)將被鎖存到SPIDKT中,此后對SPIDAT的讀操作將把數(shù)據(jù)讀出。SPI時(shí)序圖如圖4所示。</p><p>  圖8 SPI時(shí)序圖</p><p>  Fig.8 SPI timing diagram</p><p>  3.3 單片機(jī)數(shù)據(jù)采集程序設(shè)計(jì)</p><p>  

43、下面給出數(shù)據(jù)采集實(shí)驗(yàn)中,AD7654工作在串行從模式下的軟件流程(如圖9所示)和核心匯編源程序(轉(zhuǎn)換結(jié)果存在30H中)。</p><p><b>  匯編源程序:</b></p><p>  DATA_BUFFER EQU 30H; 數(shù)據(jù)緩沖區(qū)首地址</p><p>  SAMPLE: MOV R1, #04H; 如果為零,轉(zhuǎn)換結(jié)束<

44、;/p><p>  MOV R3, #08H; 為零一個(gè)字節(jié)發(fā)送結(jié)束</p><p>  LCR P2.6; 讀有效</p><p>  LCR P3.4 ; 片選有效</p><p>  SETB P2.4; 先輸出A在輸出B 圖9 軟件流程圖</p><p>  START: MOV

45、 R0, #DATA_BUFFER Fig.9 Software flowchart</p><p>  CLR P2.5 </p><p>  SETB P2.5 ; 啟動(dòng)AD轉(zhuǎn)換</p><p>  CLR A0 ; 從A1和B1采集數(shù)據(jù)</p><p>  GET: MOV SPIDAT ,A ; 產(chǎn)生8位時(shí)鐘,

46、開始讀取轉(zhuǎn)換數(shù)據(jù)</p><p>  LOOP:DJNZ R3, LOOP ; 采完一個(gè)字節(jié),進(jìn)入SPI中斷</p><p>  MOV R3, #08H</p><p><b>  INC R0</b></p><p>  DJNZ R1, BACK ;采完一個(gè)通道,CHANGE為另一個(gè)通道啟動(dòng)轉(zhuǎn)換程序&

47、lt;/p><p>  BACK: SJMP GET ;SPI中斷服務(wù)子程序</p><p>  SPI_INTER: CLR ISPI ; 清中斷標(biāo)志位</p><p>  MOV A, SPIDAT </p><p>  MOV @R0, A</p><p><b>  RETI</b>

48、</p><p>  4 數(shù)據(jù)采集總線設(shè)計(jì)</p><p><b>  4.1 CAN總線</b></p><p>  4.1.1 CAN總線簡介及其特點(diǎn)</p><p>  CAN網(wǎng)絡(luò)(Controller Area Network)是現(xiàn)場總線技術(shù)的一種,它是一種架構(gòu)開放、廣播式的新一代網(wǎng)絡(luò)通信協(xié)議,稱為控制器局域網(wǎng)現(xiàn)

49、場總線。CAN網(wǎng)絡(luò)原本是德國Bosch公司為歐洲汽車市場所開發(fā)的。CAN推出之初是用于汽車內(nèi)部測量和執(zhí)行部件之間的數(shù)據(jù)通信。例如汽車剎車防抱死系統(tǒng)、安全氣囊等。對機(jī)動(dòng)車輛總線和對現(xiàn)場總線的需求有許多相似之處,即能夠以較低的成本、較高的實(shí)時(shí)處理能力在強(qiáng)電磁干擾環(huán)境下可靠地工作。因此CAN總線可廣泛應(yīng)用于離散控制領(lǐng)域中的過程監(jiān)測和控制,特別是工業(yè)自動(dòng)化的底層監(jiān)控,以解決控制與測試之間的可靠和實(shí)時(shí)數(shù)據(jù)交換。   

50、; CAN總線有如下基本特點(diǎn):    *CAN協(xié)議最大的特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,代之以對數(shù)據(jù)通信數(shù)據(jù)塊進(jìn)行編碼,可以多主 方式工作;    * CAN采用非破壞性仲裁技術(shù),當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送數(shù)據(jù)時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),有效避免了總線沖突;    *CAN采用短幀結(jié)構(gòu),每一幀的

51、有效字節(jié)數(shù)為8個(gè)(CAN技術(shù)規(guī)范2.0A),數(shù)據(jù)傳輸時(shí)間短,受干擾的概率低,重新發(fā)送的時(shí)間短;</p><p>  4.1.2 CAN總線通信介質(zhì)訪問控制方式</p><p>  CAN采用了的3層模型:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。CAN支持的拓?fù)浣Y(jié)構(gòu)為總線型。傳輸介質(zhì)為雙絞線、同軸電纜和光纖等。采用雙絞線通信時(shí),速率為1Mbps/40m ,50Kbps,結(jié)點(diǎn)數(shù)可達(dá)110個(gè)。</p&

52、gt;<p>  CAN的通信介質(zhì)訪問為帶有優(yōu)先級(jí)的CS-MA/CA。采用多主競爭方式結(jié)構(gòu):網(wǎng)絡(luò)上任意節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息,而不分主從,即當(dāng)發(fā)現(xiàn)總線空閑時(shí),各個(gè)節(jié)點(diǎn)都有權(quán)使用網(wǎng)絡(luò)。在發(fā)生沖突時(shí),采用非破壞性總線優(yōu)先仲裁技術(shù):當(dāng)幾個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)發(fā)送消息時(shí),運(yùn)用逐位仲裁原則,借助幀中開始部分的表示符,優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止發(fā)送數(shù)據(jù),而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響的繼續(xù)發(fā)送信息,從而有效地避免了總線沖

53、突,使信息和時(shí)間均無損失。例如,規(guī)定0的優(yōu)先級(jí)高,在節(jié)點(diǎn)發(fā)送信息時(shí),CAN總線作與運(yùn)算。每個(gè)節(jié)點(diǎn)都是邊發(fā)送信息邊檢測網(wǎng)絡(luò)狀態(tài),當(dāng)某一個(gè)節(jié)點(diǎn)發(fā)送1而檢測到0時(shí),此節(jié)點(diǎn)知道有更高優(yōu)先級(jí)的信息在發(fā)送,它就停止發(fā)送信息,直到再一次檢測到網(wǎng)絡(luò)空閑。</p><p>  圖10 CAN總線系統(tǒng)組成</p><p>  Fig.10 Thecan bus system</p><

54、p>  CAN的傳輸信號(hào)采用短幀結(jié)構(gòu)(有效數(shù)據(jù)最多為8個(gè)字節(jié)),和帶優(yōu)先級(jí)的CS-MA/CA。通信介質(zhì)訪問控制方式,對高優(yōu)先級(jí)的通信請求來說,在1Mbps通信速率時(shí),最長的等待時(shí)間為0.15Ms,完全可以滿足現(xiàn)場控制的實(shí)時(shí)性要求。CAN突出的差錯(cuò)檢驗(yàn)機(jī)理,如5種錯(cuò)誤檢測、出錯(cuò)標(biāo)定和故障界定;CAN傳輸信號(hào)為短幀結(jié)構(gòu),因而傳輸時(shí)間短,受干擾概率低。這些保證了出錯(cuò)率極低,剩余錯(cuò)誤概率為報(bào)文出錯(cuò)率的4.7x10-11。另外,CAN節(jié)點(diǎn)在

55、嚴(yán)重錯(cuò)誤的情況下,具有自動(dòng)關(guān)閉輸出的功能,以使總線上其它節(jié)點(diǎn)的操作不受其影響。因此,CAN具有高可靠性。   CAN的通信協(xié)議主要有CAN總線控制器完成。CAN控制器主要由實(shí)現(xiàn)CAN總線協(xié)議部分和微控制器接口部分電路組成。通過簡單的連接即可完成CAN協(xié)議的物理層和數(shù)據(jù)鏈路層的所有功能,應(yīng)用層功能由微控制器完成。CAN總線上的節(jié)點(diǎn)即可以是基于微控制器的智能節(jié)點(diǎn),也可以是具有CAN接口的I/O器件。</

56、p><p>  4.1.3 應(yīng)用技術(shù)</p><p><b>  1 系統(tǒng)組成</b></p><p>  網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線式結(jié)構(gòu)。這種網(wǎng)絡(luò)結(jié)構(gòu)結(jié)構(gòu)簡單、成本低,并且采用無源抽頭連接,系統(tǒng)可靠性高。通過CAN總線連接各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),形成多主機(jī)控制器局域網(wǎng)(CAN)。信息的傳輸采用CAN通信協(xié)議,通過CAN控制器來完成。各網(wǎng)絡(luò)節(jié)點(diǎn)一般為帶有微控制器

57、的智能節(jié)點(diǎn)完成現(xiàn)場的數(shù)據(jù)采集和基于CAN協(xié)議的數(shù)據(jù)傳輸,節(jié)點(diǎn)可以使用帶有在片CAN控制器的微控制器,或選用一般的微控制器加上獨(dú)立的CAN控制器來完成節(jié)點(diǎn)功能。傳輸介質(zhì)可采用雙絞線、同軸電纜或光纖。如果需要進(jìn)一步提高系統(tǒng)的抗干擾能力,還可以在控制器和傳輸介質(zhì)之間加接光電隔離,電源采用DC-DC變換器等措施。這樣可方便構(gòu)成實(shí)時(shí)分布式測控系統(tǒng)。   2、 CAN總線的物理層設(shè)計(jì)  

58、0; CAN總線協(xié)議對物理層沒有嚴(yán)格定義,給使用者較大的靈活性,同時(shí)也給設(shè)計(jì)者帶來了困難。CAN總線物理層的設(shè)計(jì)原則是:針對CTx0、CTx1的兩種輸出狀態(tài)(顯性(Daminant)、隱性(Recessive)),總線應(yīng)具有兩種不同電平,接收端呈現(xiàn)(顯性、隱性)兩種狀態(tài),如圖12所示。    這樣不要求總線必須是數(shù)字邏輯電平,只要是能夠呈現(xiàn)兩種電平(顯性和隱性)的模擬量,滿</p><

59、p>  圖11 CAN總線電平示意圖</p><p>  Fig.11 The CAN bus level</p><p>  圖12 CAN總線物理接口實(shí)例</p><p>  Fig.12 Thecan bus physical interface</p><p>  總線連接實(shí)例(圖13):(以Philips的CAN芯片為

60、例)    CAN控制器芯片的片內(nèi)輸出驅(qū)動(dòng)器和輸入比較器可編程,它可方便地提供多種發(fā)送類型,諸如:單線總線、雙線總線(差分)和光纜總線。它可以直接驅(qū)動(dòng)總線,若網(wǎng)絡(luò)的規(guī)模比較大,節(jié)點(diǎn)數(shù)比較多,需要外加總線驅(qū)動(dòng)元件,以增大輸出電流。    一般在驅(qū)動(dòng)芯片和CAN控制器之間加入光電耦合器,增加抗干擾能力。CAN總線的速度將由光電耦合器的速度決定。比如:用4N27光耦,因?yàn)樗捻憫?yīng)

61、速度比較慢,CAN網(wǎng)絡(luò)的位速度只能達(dá)到幾+Kbit/s。如果采用6n137高速光電耦合器,CAN網(wǎng)絡(luò)速度可以達(dá)到和電阻網(wǎng)絡(luò)驅(qū)動(dòng)時(shí)的速度一樣。另外,物理層的設(shè)計(jì)要注意電纜的終端阻抗匹配,這直接影響了CAN總線能否正常工作和網(wǎng)絡(luò)性能。</p><p>  3、 應(yīng)用軟件設(shè)計(jì)   CAN控制器其內(nèi)部硬件實(shí)現(xiàn)了CAN總線物理層和數(shù)據(jù)鏈路層的所有協(xié)議內(nèi)容,有關(guān)CAN總線的通信功能均由CAN控

62、制器自動(dòng)管理執(zhí)行。CAN控制器對于CPU來說,是以確保雙方獨(dú)立工作的存儲(chǔ)影像外圍設(shè)備出現(xiàn)的。CAN控制器的地址域由控制段和報(bào)文緩存器組成,在初始化向下加載期間,控制段可被編程以配置通信參數(shù)。CAN總線上的通信也通過此段由CPU控制,被發(fā)送的報(bào)文必須寫入發(fā)送緩存器,成功接收后,CPU可以從接收緩存器讀取報(bào)文,然后釋放它,以備下次使用。對于在片的CAN控制器,它與CPU之間的接口一般借助于4個(gè)特殊寄存器:CAN地址寄存器、數(shù)據(jù)寄存器、控制寄

63、存器、狀態(tài)寄存器。對于單獨(dú)的CAN控制器,MCU可以通過其地址/數(shù)據(jù)總線對其寄存器直接尋址,就像MCU對一般外部RAM尋址一樣。通過對這些寄存器編程操作,可很方便控制CAN控制器完成通訊功能。   CAN控制器的收發(fā)功能均可借助其中斷服務(wù)執(zhí)行。圖4給出一個(gè)CAN中斷服務(wù)程序框圖(圖13)。注意在系統(tǒng)軟件設(shè)計(jì)時(shí)無論何時(shí)CAN總線不應(yīng)該被永久性的100﹪加載。 </p><p&

64、gt;  圖13 CAN中斷服務(wù)程序框圖</p><p>  Fig.13 CAN interrupt service routine diagram</p><p>  4.1.4 目前應(yīng)用狀況及其前景</p><p>  由于CAN總線為越來越多不同領(lǐng)域采用和推廣,導(dǎo)致要求不同應(yīng)用領(lǐng)域通信報(bào)文的標(biāo)準(zhǔn)化。為此,1991年9月Philips Semiconduct

65、ors制定并發(fā)布了CAN技術(shù)規(guī)范(Version2.0)。該技術(shù)規(guī)范包括A和B兩部分。2.0A給出了曾在CAN技術(shù)規(guī)范版本1.2中定義的CAN報(bào)文格式,2.0B給出了標(biāo)準(zhǔn)的和擴(kuò)展的兩種報(bào)文格式。此后,1993年11月ISO正式頒布了道路交通運(yùn)輸工具-數(shù)字信息交換-高速通信控制器局部網(wǎng)(CAN)國際標(biāo)準(zhǔn)(ISO11898),為控制器局部網(wǎng)標(biāo)準(zhǔn)化,規(guī)范化推廣鋪平了道路。    CAN總線開發(fā)系統(tǒng)廉價(jià),OEM用

66、戶容易操作,許多國際上大的半導(dǎo)體廠商也積極開發(fā)出支持N總線的專用芯片,其中有智能CAN芯片,也有非智能CAN控制器、收發(fā)器。Motorla公司生產(chǎn)了MC68HC05x4是在68HC05微控制器上加入了CAN模塊,也稱為MCAN。PHilips公司生產(chǎn)了P8xC592微控制器上集成了CAN控制器取代了原來的I2C串行口。PHilips還生產(chǎn)82C200獨(dú)立CAN控制器、82C150即CAN串行鏈接I/O(SLIO)器件、82C250CAN

67、收發(fā)器、P</p><p>  4.2 R-S485</p><p>  1、RS-485總線的理論</p><p>  在自動(dòng)化領(lǐng)域,隨著分布式控制系統(tǒng)的發(fā)展,迫切需要一種總線能適合遠(yuǎn)距離的數(shù)字通信。在RS-422標(biāo)準(zhǔn)的基礎(chǔ)上,EIA研究出了一種支持多節(jié)點(diǎn)、遠(yuǎn)距離和接收高靈敏度的RS-485總線標(biāo)準(zhǔn)。  RS-485標(biāo)準(zhǔn)采有用平衡式發(fā)送,差分式接

68、收的數(shù)據(jù)收發(fā)器來驅(qū)動(dòng)總線,具體規(guī)格要求:· 接收器的輸入電阻RIN≥12kΩ · 驅(qū)動(dòng)器能輸出±7V的共模電壓 · 輸入端的電容≤50pF · 在節(jié)點(diǎn)數(shù)為32個(gè),配置了120Ω的終端電阻的情況下,驅(qū)動(dòng)器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數(shù)有關(guān)) · 接收器的

69、輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號(hào)"0";(V+)-(V-)≤-0.2V,表示信號(hào)"1")  因?yàn)镽S-485的遠(yuǎn)距離、多節(jié)點(diǎn)(32個(gè))以及傳輸線成本低的特性,使得EIA RS-485成為工業(yè)應(yīng)用中數(shù)據(jù)傳輸?shù)氖走x標(biāo)準(zhǔn)?;诖耍琑S-485的自動(dòng)化領(lǐng)域的應(yīng)用非常廣泛,但是在實(shí)際工程中RS-485總線運(yùn)用仍然存在著很多問題,影響了工程的質(zhì)量,為

70、工程施工帶來了很多的不方便。2、 阻抗不連續(xù)   信號(hào)在傳輸過程中如果遇到阻抗突變,信號(hào)在</p><p>  圖14 RS-485接地問題</p><p>  Fig.14 CAN interrupt service routine diagram</p><p>  4、RS-485的總線結(jié)構(gòu)及傳輸距離 RS-485支持半雙工

71、或全雙工模式。網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線型結(jié)構(gòu)不支持環(huán)形或星形網(wǎng)絡(luò),最好采用一條總線將各個(gè)節(jié)點(diǎn)串接起來。從總線到每個(gè)節(jié)點(diǎn)的引出線長度應(yīng)盡量短,以便使引出線中的反射信號(hào)對總線信號(hào)的影響最低。在使用RS485接口時(shí),對于特定的傳輸線經(jīng),從發(fā)生器到負(fù)載其數(shù)據(jù)信號(hào)傳輸所允許的最大電纜長度是數(shù)據(jù)信號(hào)速率的函數(shù),這個(gè)長度數(shù)據(jù)主要是受信號(hào)失真及噪聲等影響所限制。當(dāng)數(shù)據(jù)信號(hào)速率降低到90Kbit/S以下時(shí),假定最大允許的信號(hào)損失為6dBV時(shí),則電纜

72、長度被限制在1200M。實(shí)際上,在實(shí)用時(shí)是完全可以取得比它大的電纜長度。當(dāng)使用不同線徑的電纜。則取得的最大電纜長度是不相同的。5方案設(shè)計(jì) 以下以一個(gè)例子來說明RS-485的應(yīng)用:  一個(gè)大學(xué)食堂有三層,有12臺(tái)POS機(jī),每層樓有4臺(tái)POS機(jī),他們是RS-485的接口,控制POS機(jī)的電腦接RS-232接口,傳統(tǒng)的解決方案是:</p><p>  圖15 RS-485的PC機(jī)連接</p>

73、<p>  Fig.15 RS-485 the PC connected</p><p>  采用這種老式布線結(jié)構(gòu)存在以下幾種缺陷。</p><p>  1>、RS-485總線受差分信號(hào)傳輸特點(diǎn)的限制總線長度一般在1200米左右,采用這種老式布線結(jié)構(gòu),可布線覆蓋面積十分有限(一般為幾百平方米)。有時(shí)為了拓寬傳輸距離不得不采用中繼器。同時(shí)亦加大了布線過程中出現(xiàn)問題的可能

74、性。 2>、一般大型考勤門禁系統(tǒng)都裝有為數(shù)眾多的門禁控制器,采用這種老式布線結(jié)構(gòu),所有門禁控制器共享同一根RS-485總線。當(dāng)任一控制器RS-485端口短路,都會(huì)影響整個(gè)門禁系統(tǒng)的正常工作。在眾多的門禁控制器中查找故障所在,不僅加大了工作量,也增加了維護(hù)成本。 3>、由于RS-485總線布線比較復(fù)雜,在考勤門禁系統(tǒng)中絕大部分工程費(fèi)用和時(shí)間都浪費(fèi)在布線環(huán)節(jié)。而RS-485總線布線的復(fù)雜程度與總線的長短和設(shè)備的掛

75、接數(shù)目有很大關(guān)系。特別在大型系統(tǒng)中顯得由為突出。采用這種老式布線結(jié)構(gòu)無疑加大了布線的難度。 4>、由于地理環(huán)境的原因,在相距一定距離的設(shè)備之間總是存在地電位不平衡的問題。有時(shí)即使距離很近問題依然存在。這種環(huán)境造成的因素,在老式布線結(jié)構(gòu)中很難綜合解決。甚至造成整個(gè)系統(tǒng)無法啟動(dòng)。雖然通過處理地電位可暫時(shí)解決部分問題,但時(shí)隔不久同樣問題又會(huì)再次出現(xiàn)。</p><p>  圖16 RS-485/RS-42

76、2總線結(jié)構(gòu)</p><p>  Fig.16 RS - 485 / RS - 422 bus structure</p><p>  應(yīng)用此方案可以有效的解決采用第一種方案存在的缺陷,它有如下幾點(diǎn)好處: 1>、采用星型結(jié)構(gòu)連接RS-485總線,在有效利用接口的情況下布線覆蓋面積大大提高(一般為幾平方千米)。 2>、有八個(gè)下位機(jī)端口,且每個(gè)端口都具有短路保護(hù)功能

77、,并能工作在關(guān)斷模式。對大型考勤門禁系統(tǒng),通過分?jǐn)傞T禁控制器到八個(gè)端口不僅可以減少單個(gè)RS-485總線的負(fù)荷,同時(shí)有效的提高了整個(gè)系統(tǒng)的可靠性。當(dāng)任一控制器RS-485端口短路,只會(huì)影響其所在RS-485總線系統(tǒng),不會(huì)影響其他接口連接的RS-485系統(tǒng)的正常工作。 3>、可以使得RS-485系統(tǒng)布線過程變的簡單和快潔,從而有效的減少了工程的費(fèi)用和時(shí)間。 4>、各端口間存在3000V隔離。對于由環(huán)境問題帶來的布

78、線問題,只需把問題顯著的區(qū)域用單獨(dú)端口進(jìn)行連接集中處理,將會(huì)有效的解決地電位帶來的布線問題。6、注意事項(xiàng)  (1) 很多人往往都誤認(rèn)為RS-422串行接口是RS-485串行接口的全雙工版本,實(shí)際上,它們在電器特性上存在著不少差異,共模電壓范圍和接收器輸入電阻不同使得該兩個(gè)標(biāo)準(zhǔn)適用于不同的應(yīng)用領(lǐng)域。RS-485串行接口的驅(qū)動(dòng)</p><p>  5 上位機(jī)數(shù)據(jù)處理程序設(shè)計(jì)</p>

79、<p>  5.1 VB程序設(shè)計(jì)</p><p>  遠(yuǎn)端ADuC848單片機(jī)采用中斷方式、基于MCS-51匯編語言與上位機(jī)進(jìn)行通訊,中斷子程序流程圖如圖3所示。    控制中心上位機(jī)PC每次發(fā)送控制信息前必須先發(fā)送指定遠(yuǎn)端單元的地址信息,單片機(jī)進(jìn)入數(shù)據(jù)接收子程序,如果收到的地址與本機(jī)地址相同,置接收數(shù)據(jù)標(biāo)志位,連續(xù)接收上位機(jī)發(fā)送過來的控制信息。數(shù)據(jù)接收完畢,開始對控

80、制信息進(jìn)行校驗(yàn)碼確認(rèn)操作,校驗(yàn)正確則回送上位機(jī)確認(rèn)信息,并對兩字節(jié)控制數(shù)據(jù)進(jìn)行移位操作等必要處理,最后輸出開關(guān)量并返回中斷入口處;若校驗(yàn)錯(cuò)誤,回送上位機(jī)重發(fā)信息。如果遠(yuǎn)端單片機(jī)收到的地址與本機(jī)地址不同,程序也返回中斷入口處,繼續(xù)執(zhí)行其它操作或等待接收新的信息。這樣,就確保上位機(jī)把控制信息可靠地傳給指定的遠(yuǎn)端單元,各遠(yuǎn)端單元回送的信息只能被上位機(jī)接收。由于每個(gè)數(shù)傳電臺(tái)時(shí)刻處于待機(jī)狀態(tài)(也可以根據(jù)實(shí)際需要,使電臺(tái)進(jìn)入休眠狀態(tài)等待),所以只有

81、先對遠(yuǎn)端單元地址進(jìn)行確認(rèn),才能保證在某一時(shí)刻只有一個(gè)遠(yuǎn)端單元完全接收了上位機(jī)發(fā)出的數(shù)據(jù)信息,避免了不必要的資源耗費(fèi)。</p><p>  圖17 單片機(jī)中斷子程序流程圖</p><p>  Fig.17 SCM interrupt subroutines flowchart</p><p>  上位機(jī)利用VB6.0編程,用VB6.0開發(fā)串行通信程序普遍采用以下兩種

82、方法:一種是利用Windows的API函數(shù);另一種是采用VB6.0的通訊控件MSComm。利用API函數(shù)編寫串行通信程序較為復(fù)雜,需要調(diào)用許多繁瑣的API函數(shù),而VB6.0的MSComm通訊控件提供了標(biāo)準(zhǔn)的事件處理函數(shù)、事件和方法,用戶不必了解通信過程中的底層操作和API函數(shù),從而比較容易、高效地實(shí)現(xiàn)了串口通信。    MSComm控件提供了兩種功能完善的串口數(shù)據(jù)發(fā)送和接收功能:一種是查詢法,通過檢查Co

83、mmEvent屬性的值來輪詢(Polling)事件和通信狀態(tài),可以使用定時(shí)器或DO…Loop程序?qū)崿F(xiàn);另一種是事件驅(qū)動(dòng)法(Event-driven),利用MSComm控件的OnComm事件捕獲串口通信錯(cuò)誤或事件,并在OnComm事件中編寫程序進(jìn)行相應(yīng)處理,這種方法響應(yīng)及時(shí),可靠性高,本軟件系統(tǒng)采用了此方法來接收遠(yuǎn)端單片機(jī)的回執(zhí)信息,以使PC機(jī)作出更快的反應(yīng)。    數(shù)傳電臺(tái)基于透明傳輸,不改變系統(tǒng)原來的通

84、訊程序及傳輸格式,編程時(shí)只需適當(dāng)考慮無線傳輸引起的信號(hào)時(shí)延。    軟件采用定時(shí)器Timer1控件來實(shí)現(xiàn)在數(shù)</p><p>  ……初始化MSComm控件程序:With Comm1           ‘控件名為Comm1.CommPort=1  

85、0;       ‘使用串行端口1.Settings=“9600,n,8,1”   ‘設(shè)置初始化參數(shù).InputLen=0           ‘讀取緩沖區(qū)的全部數(shù)據(jù).InputMode=comInputModeBinary ‘以二進(jìn)制方式接收數(shù)據(jù).R

86、Threshold=3         ‘接收緩沖區(qū)達(dá)到3個(gè)字節(jié)時(shí)產(chǎn)生OnComm事件End with              ‘其它屬性值為默認(rèn)即可……發(fā)送數(shù)據(jù)程序:……Dim Send As Variant

87、0;    ‘定義變量Dim OutByteD(5) As Byte ‘定義發(fā)送數(shù)據(jù)數(shù)組……                  ‘獲取發(fā)送數(shù)據(jù)Send=OutByteD     

88、60;   ‘將發(fā)送的數(shù)據(jù)賦給發(fā)送變量Comml.Ouput=Send      ‘發(fā)送數(shù)據(jù)……數(shù)據(jù)接收程序:Private Sub Comm1_OnComm()Select Case Comm1.Comm</p><p>  5.2 Matlab程序設(shè)計(jì)</p><p>  一、 MATLAB6.X對RS23

89、2 串口的編程 </p><p>  對于 WINDOWS 系統(tǒng)而言,硬件系統(tǒng)的驅(qū)動(dòng)程序有著十分嚴(yán)格的規(guī)范,而 MATLAB本身是一個(gè)跨平臺(tái)的軟件,并不具備直接訪問硬件的能力。即使安裝了驅(qū)動(dòng)程序并能正常工作的硬件設(shè)備,MATLAB也沒有統(tǒng)一的形式對其進(jìn)行訪問。但是MATLAB6.X 的面向?qū)ο蠹夹g(shù),已用一個(gè)對象把計(jì)算機(jī)串口封裝起來。只要?jiǎng)?chuàng)建串口對象,對串口對象操作就是對串口操作,非常方便。使用 Serial 函數(shù)

90、就可以創(chuàng)建串口對象。串口對象有很多屬性 ( 如表 1 所示),通過定義串口對象的屬性,就能定義串口的通信模式,從串口對象屬性也能了解串口的狀態(tài)。要通過串口傳輸數(shù)據(jù),還必須先用fopen 打開串口。數(shù)據(jù)傳輸結(jié)束后要用fclose 函數(shù)關(guān)閉串口。 </p><p>  表 1 串口對象屬性</p><p>  Tib.2 Com object attribute</p>&

91、lt;p>  下面是一個(gè)使用串口例子: </p><p>  %“%”后的語句是注釋 </p><p>  s=serial(’COM1’,’BaudRate’,9600); %創(chuàng)建一個(gè)波特率為9600 的COM1串口對象,并以s標(biāo)識(shí)它 </p><p>  fopen(s); %打開COM1串口 <

92、;/p><p>  fprintf(s,’IDN?’); %向COM1串口輸出字符串’IDN?’ </p><p>  idn=fscanf(s); %從COM1串口讀入字符到變量idn中 </p><p>  fclose(s); %關(guān)閉COM1串

93、口 </p><p>  delete(s); %從計(jì)算機(jī)內(nèi)存中刪除COM1串口對象,釋放空間 </p><p>  由于Matlab6.x 封裝的串口對象支持對串口的異步讀寫操作,使得計(jì)算機(jī)在讀寫串口時(shí)能同時(shí)進(jìn)行其他處理工作。因而能大大提高計(jì)算機(jī)執(zhí)行效率。Matlab6.x 用多線程技術(shù)實(shí)現(xiàn)這種異步操作。通過異步讀寫設(shè)置,計(jì)算機(jī)在執(zhí)行讀寫串口函數(shù)時(shí)能立即返回,不

94、必等待串口把數(shù)據(jù)傳輸完畢。當(dāng)指定的數(shù)據(jù)傳輸結(jié)束時(shí)就觸發(fā)事件,執(zhí)行事件回調(diào)函數(shù)??梢栽谑录卣{(diào)函數(shù)中編程,進(jìn)行數(shù)據(jù)處理。這樣就不會(huì)造成因等待串口傳輸數(shù)據(jù)引起的機(jī)時(shí)浪費(fèi)。 </p><p>  二、 數(shù)據(jù)采集系統(tǒng)與 PC 機(jī)通信的硬件構(gòu)成 </p><p>  為了簡化系統(tǒng)的硬件設(shè)計(jì),數(shù)據(jù)采集系統(tǒng)的微轉(zhuǎn)換器選用 AD 公司的全集成芯片ADuC812,該芯片包含有12 位高性能的自校準(zhǔn)8 通

95、道ADC,兩個(gè)12 位的DAC,與8051兼容的內(nèi)核使用戶無須學(xué)習(xí)新的指令系統(tǒng)。片內(nèi)8K閃速/電擦除程序存儲(chǔ)器使數(shù)據(jù)采集系統(tǒng)具有在線下載編程能力,利用 AD 公司提供的免費(fèi) SERIAL WINDOW DOWNLOAD 就可以將HEX 文件下載到ADuC812 內(nèi),對于不同的應(yīng)用場所可以方便的修改系統(tǒng)的參數(shù),既不需要昂貴的編程器,也不需打開機(jī)殼插撥芯片,只需將一條電纜連接到計(jì)算機(jī)的COM1 或COM2即可。另外該轉(zhuǎn)換器還支持看門狗定時(shí)器

96、、電源監(jiān)視器及ADC的DMA等功能,可編程的I/O 口具有三種類型的串口UART、SPI、I2C,價(jià)格也比較便宜,是一種理想的轉(zhuǎn)換器。系統(tǒng)的硬件組成如下圖1 8所示。 </p><p>  圖18 ADuC812 與PC機(jī)串口通信的硬件電路圖</p><p>  Fig.18 ADuC812 PC serial communication with the hardware circu

97、it</p><p>  其中ADM202 及P3.0\P3.1 構(gòu)成了與計(jì)算機(jī)通信的RS232接口,它有兩個(gè)功能,一是實(shí)現(xiàn)計(jì)算機(jī)與數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)通信。另一功能是與JP1 配合使用,完成將程序從計(jì)算機(jī)下載到ADuC812 片內(nèi)的閃速/電擦除程序存儲(chǔ)器中。當(dāng)下載程序時(shí),需將MCU系統(tǒng)的電源關(guān)掉,用屏蔽帽屏蔽 JP1,MCU 系統(tǒng)再上電,ADuC812 進(jìn)入程序下載狀態(tài),運(yùn)行 SERIAL WINDOW DOWN

98、LOAD 可以將 HEX 文件下載到芯片內(nèi)。 ADM812 組成了系統(tǒng)的復(fù)位電路。 </p><p>  三、 應(yīng)用程序的軟件流程圖 </p><p>  PC機(jī)與MUC的串口通信技術(shù)可以說已經(jīng)比較成熟,但在工程實(shí)際中應(yīng)用較多的是VC、VB 通信控件,開發(fā)具有一定的難度。本文的 PC 機(jī)應(yīng)用程序是運(yùn)用 MATLAB 的類( SERIAL )和 M 語言開發(fā),輔以 MATLAB 的 GUI

99、DE 工具箱,程序開發(fā)相對簡單。 MCU 的程序應(yīng)用MCS—51 匯編,只需在程序的第一行加$MOD812 標(biāo)識(shí)符即可。整個(gè)傳輸過程是:由MUC發(fā)送握手信號(hào),PC機(jī)接收到握手信號(hào)后發(fā)應(yīng)答信號(hào),并準(zhǔn)備接收信號(hào),MCU接收到應(yīng)答信號(hào)后準(zhǔn)備發(fā)送數(shù)據(jù),并說明通信過程掛鉤成功,總的測量次數(shù)和鍵值作為第0 組發(fā)送,發(fā)送完畢累加校驗(yàn)和,發(fā)現(xiàn)傳輸錯(cuò)誤時(shí)重發(fā),程序的流程圖所下圖 19 所示 。</p><p>  圖19 MC

100、U 與微機(jī)的通信流程圖</p><p>  Fig.19 MCU and computer communication flow</p><p><b>  6 結(jié)論</b></p><p>  從采集數(shù)據(jù)的安全性和可靠性兩個(gè)方面著手,選用新型傳感器和低功耗ADuC848系列單片機(jī),用RS-485/RS-422總線或CAN總線傳輸,設(shè)計(jì)出數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論