2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  目前大學(xué)寢室樓的電力收費(fèi)依然停留在手工抄表記錄的水平,效率低,錯誤多。為了能夠公平,高效率的統(tǒng)計電費(fèi)信息,遠(yuǎn)程、智能、快速、準(zhǔn)確就成為了新的電量計費(fèi)系統(tǒng)應(yīng)該具有的特點(diǎn)?!皩嬍覀€人用電計費(fèi)系統(tǒng)”正是為了滿足以上要求而設(shè)計的。 </p><p>  “寢室個人用電計費(fèi)系統(tǒng)”中使用現(xiàn)在流行的CAN總線做為本設(shè)

2、計的總線系統(tǒng),CAN總線使用SJAl000作為通信芯片。節(jié)點(diǎn)采用智能節(jié)點(diǎn)設(shè)計,本設(shè)計采用DDS362-G1(Ob型)單相電子式電能表,該電表是通過電壓、電流采樣,轉(zhuǎn)化為電能計量脈沖,并通過微處理器使其具有計量、存儲、顯示、通訊等功能。采用ATMEL的AT89C51高效微控制器作為智能節(jié)點(diǎn)的微型CPU。CAN適配卡和上位機(jī)的通信采用的是RS-232串口通信,通過MAX232實現(xiàn)ELA-RS-232C與TTL/CMOS之間的電平轉(zhuǎn)換。在CA

3、N總線控制器與總線之間加光電耦合6N137加強(qiáng)抗干擾能力,拓?fù)浞绞讲捎媚壳傲餍胁l(fā)展完善的總線型拓?fù)浞绞剑到y(tǒng)有獨(dú)立的“看門狗”設(shè)計,保證系統(tǒng)正常運(yùn)行。</p><p>  該系統(tǒng)工程周期短,安裝費(fèi)用低,可實現(xiàn)設(shè)備即插即拔,維護(hù)和管理容易。接入服務(wù)器的線路少,節(jié)省了布線費(fèi)用和減小服務(wù)器占用的空間。無論從經(jīng)濟(jì)效益還是從實用方面都滿足了學(xué)校的要求。</p><p>  關(guān)鍵詞:電量計費(fèi)系統(tǒng);C

4、AN總線;電量數(shù)據(jù)采集;AT89C51</p><p><b>  Abstract</b></p><p>  University dormitory floor, the current level of electricity charges still remain in the manual meter reading record levels, low

5、 efficiency, and more mistakes. In order to be able to fair, efficient electricity statistical information, remote, intelligent, quick, accurately has become a new electricity billing system should have features. "D

6、ormitory personal electricity billing system," is to meet the above requirements and design. </p><p>  "Dormitory personal electricity billing system," that the use of the now popular as the C

7、AN Bus system design. CAN SJAl000 use as a communications chip. Design smart node, which use DDS362-G1 (Ob-type) single-phase electronic energy meter information collection electricity. ATMEL AT89C51 using the micro-cont

8、roller as the intelligent nodes micro CPU. CAN Adapter and PC communications using the RS-232 serial communications, ELA achieved through MAX232-RS-232C and TTL / CMOS between the level trans</p><p>  The sh

9、ort-cycle project, the installation of low-cost equipment can be pulling a plug, maintenance and management easier. Access server lines less, saving cabling costs and reduce the space occupied by the server. Both from th

10、e cost-effective or practical side have met the requirements of the school. </p><p>  Key words:Control Area Network Bus; intelligent nod; intelligent electricity meter; AT89C51</p><p><b>

11、  目 錄</b></p><p><b>  第1章 緒 論1</b></p><p>  第2章 CAN總線技術(shù)2</p><p>  2.1 CAN總線特點(diǎn)2</p><p>  2.2 CAN總線基本概念3</p><p>  2.3 CAN總線位數(shù)值表示與通信距離4

12、</p><p>  2.4 CAN總線的分層結(jié)構(gòu)6</p><p>  2.5 CAN總線應(yīng)用系統(tǒng)的基本結(jié)構(gòu)6</p><p>  2.6 CAN總線技術(shù)7</p><p>  2.6.1 位仲裁7</p><p>  2.6.2 CAN總線與其他通信方式的比較7</p><p> 

13、 2.6.3 CAN總線的報文格式及幀結(jié)構(gòu)8</p><p>  第3章 系統(tǒng)的硬件設(shè)計12</p><p>  3.1 智能節(jié)點(diǎn)的整體設(shè)計12</p><p>  3.2 串口通信電路13</p><p>  3.3 微處理器電路14</p><p>  3.3.1 CPU14</p>&l

14、t;p>  3.3.2 地址譯碼電路15</p><p>  3.3.3 參數(shù)輸入電路15</p><p>  3.4 CAN總線接口電路15</p><p>  3.4.1 CAN控制器SJA100015</p><p>  3.4.2 CAN總線收發(fā)器PCA82C25024</p><p>  3.

15、4.3 光電隔離電路28</p><p>  3.5 數(shù)據(jù)采集電路29</p><p>  第4章 系統(tǒng)軟件設(shè)計31</p><p>  4.1 軟件設(shè)計說明31</p><p>  4.2 CPU和上位機(jī)的通訊設(shè)計31</p><p>  4.2.1 單片機(jī)查詢發(fā)送子程序31</p><

16、;p>  4.2.2 單片機(jī)接受中斷子程序32</p><p>  4.3 CPU與SJA1000的通訊設(shè)計32</p><p>  4.3.1 初始化子程序32</p><p>  第5章 系統(tǒng)經(jīng)濟(jì)性分析33</p><p>  第6章 結(jié) 論34</p><p><b>  參考文獻(xiàn)35

17、</b></p><p><b>  致 謝36</b></p><p><b>  附 錄:37</b></p><p><b>  緒 論</b></p><p>  隨著我國人均生活水平的提高,現(xiàn)代大學(xué)生大多擁有電腦,這使我校寢室用電量激增。學(xué)校在使用了新

18、的供電設(shè)備的同時,更推行過量用電費(fèi)用由學(xué)生自己承擔(dān)的規(guī)定來限制用電量。但是由于一直沒有針對個人的用電量記錄系統(tǒng),學(xué)生們在分?jǐn)倢嬍译娰M(fèi)的時候經(jīng)常產(chǎn)生不公平的情況。為了方便學(xué)校公平的收取電費(fèi),我產(chǎn)生了制作這個系統(tǒng)的想法,并且以此作為我畢業(yè)設(shè)計的項目。</p><p>  現(xiàn)在學(xué)校的電量計費(fèi)方法,主要靠寢室樓配電箱顯示電量,然后計費(fèi)人員手動記錄電費(fèi)信息,然后依照記錄下來的數(shù)據(jù)收費(fèi)。這樣的方式錯誤多,效率低,而且容易出現(xiàn)

19、多人寢室中個人用電不平均,無法合理分擔(dān)電費(fèi)的問題。為了解決這個問題,我參考現(xiàn)在工廠中流行的遠(yuǎn)程抄表系統(tǒng),再考察了我校寢室實際條件之后,構(gòu)思了這種基于現(xiàn)場總線的遠(yuǎn)程智能抄表系統(tǒng)。</p><p>  新式的現(xiàn)場總線式智能電測儀表系統(tǒng),特點(diǎn)是網(wǎng)絡(luò)化實現(xiàn)數(shù)據(jù)共享,維護(hù)簡單,性價比高但綜合成本低。這樣的技術(shù)在工業(yè)中得到廣泛的應(yīng)用,作為測控技術(shù)與儀器專業(yè)的學(xué)生,應(yīng)用這樣的技術(shù)正是我應(yīng)該做到的,利用這次畢業(yè)設(shè)計的機(jī)會,我以工

20、業(yè)現(xiàn)場總線的標(biāo)準(zhǔn),設(shè)計這個寢室個人用電計費(fèi)系統(tǒng)。</p><p>  這次設(shè)計的現(xiàn)場總線采用CAN總線,電表因?qū)嬍覙蔷唧w情況而定,在此次設(shè)計中使用單相數(shù)字電表。在CAN總線控制器與總線之間加光電耦合6N137加強(qiáng)抗干擾能力,拓?fù)浞绞讲捎媚壳傲餍胁l(fā)展完善的總線型拓?fù)浞绞健4讼到y(tǒng)是一個多任務(wù)實時操作系統(tǒng)。系統(tǒng)穩(wěn)定性強(qiáng),具有良好的抗干擾能力和可擴(kuò)展性。</p><p><b>  C

21、AN總線技術(shù)</b></p><p><b>  CAN總線特點(diǎn)</b></p><p>  CAN總線是德國BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率可達(dá)1MBPS。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功

22、能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。</p><p>  CAN協(xié)議的一個最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識碼可由11位或29位二進(jìn)制數(shù)組成,因此可以定義211或229個不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點(diǎn)同時接收到相同的數(shù)據(jù),這一點(diǎn)在分布式控制

23、系統(tǒng)中非常有用。數(shù)據(jù)段長度最多為8個字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時,8個字節(jié)不會占用總線時間過長,從而保證了通信的實時性。CAN總線提供高速數(shù)據(jù)傳送,在短距離(40m)條件下具有高速(1Mbit/s)數(shù)據(jù)傳輸能力,而在最大距離10000m時具有低速(5kbits/s)傳輸能力,極適合在高速的工業(yè)自控應(yīng)用上,CAN總線可在同一網(wǎng)絡(luò)上連接多種不同功能的傳感器(如位置,溫度或壓力等)。CAN協(xié)議采用CR

24、C檢驗并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN卓越的特性、極高的可靠性和獨(dú)特的設(shè)計,特別適合工業(yè)過程監(jiān)控設(shè)備的互連,因此,越來越受到工業(yè)界的重視,并已公認(rèn)為最有前途的現(xiàn)場總線之一。</p><p>  另外,CAN總線采用了多主競爭式總線結(jié)構(gòu),具有多主站運(yùn)行和分散仲裁的串行總線以及廣播通信的特點(diǎn)。CAN總線上任意節(jié)點(diǎn)可在任意時刻主動地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息而不分主次,實現(xiàn)點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全

25、局廣播幾種方式發(fā)送接收數(shù)據(jù),因此可在各節(jié)點(diǎn)之間實現(xiàn)自由通信。CAN采用非破壞性總線仲裁技術(shù),當(dāng)兩個節(jié)點(diǎn)同時向總線上發(fā)送信息時,優(yōu)先級低的節(jié)點(diǎn)主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),節(jié)省了總線沖突仲裁時間。CAN總線協(xié)議已被國際標(biāo)準(zhǔn)化組織認(rèn)證,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性價比高,特別適用于分布式測控系統(tǒng)之間的數(shù)通訊。CAN總線插卡可以任意插在PC AT XT兼容機(jī)上,方便地構(gòu)成分布式監(jiān)控系統(tǒng)。</p&g

26、t;<p><b>  CAN總線基本概念</b></p><p>  報文:總線上的信息以不同格式的報文發(fā)送,但長度有限制。當(dāng)總線開放時,任何連接的單元均可開始發(fā)送一個新報文。</p><p>  信息路由:在CAN系統(tǒng)中,一個CAN節(jié)點(diǎn)不使用和系統(tǒng)結(jié)構(gòu)有關(guān)的任何信息(如站地址),這里包含了一些重要的概念:</p><p>  

27、系統(tǒng)靈活性:節(jié)點(diǎn)可在不要求所有節(jié)點(diǎn)及其應(yīng)用層改變?nèi)魏诬浖蛴布那闆r下,被接于CAN網(wǎng)絡(luò)。</p><p>  報文通信:一個報文的內(nèi)容由其標(biāo)識符ID命名。ID并不指出報文的目的,但描述數(shù)據(jù)的含義,以便網(wǎng)絡(luò)中的所有節(jié)點(diǎn)借助報文濾波決定該數(shù)據(jù)是否使它們激活。</p><p>  成組:由于使用了報文濾波,所有節(jié)點(diǎn)均可接收報文,并同時被相同的報文激活。</p><p>

28、  數(shù)據(jù)相容性:在CAN網(wǎng)絡(luò)內(nèi),可以確保報文同時被所有節(jié)點(diǎn)或沒有節(jié)點(diǎn)接受,因此,數(shù)據(jù)的相容性是借助成組和出錯處理達(dá)到的。</p><p>  位速率:CAN的數(shù)據(jù)傳輸率在不同的系統(tǒng)中是不同的,而在一個給定的系統(tǒng)中,此速度是唯一的,并且是固定的。</p><p>  優(yōu)先權(quán):在總線訪問期間,標(biāo)識符定義了一個報文靜態(tài)的優(yōu)先權(quán)。</p><p>  遠(yuǎn)程數(shù)據(jù)請求:通過發(fā)送

29、一個遠(yuǎn)程幀,需要數(shù)據(jù)的節(jié)點(diǎn)可以請求另一個節(jié)點(diǎn)發(fā)送一個相應(yīng)的數(shù)據(jù)幀,該數(shù)據(jù)幀與對應(yīng)的遠(yuǎn)程幀以相同標(biāo)識符ID命名。</p><p>  多主站:當(dāng)總線開放時,任何的單元均可開始發(fā)送報文,發(fā)送具有最高優(yōu)先權(quán)的報文單元,贏得總線的訪問權(quán)。</p><p>  仲裁:當(dāng)總線開放時,任何的單元均可開始發(fā)送報文,若同時有兩個或更多的單元開始發(fā)送,總線仲裁運(yùn)用逐位仲裁規(guī)則,借助標(biāo)識符ID解決。這種仲裁可以

30、使信息和時間均無損。若具有相同標(biāo)識符的一個數(shù)據(jù)幀和一個遠(yuǎn)程幀同時發(fā)送,數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。仲裁期間,每一個發(fā)送器都對發(fā)送位電平與總線上檢測到的電平進(jìn)行比較,若相同則該單元可繼續(xù)發(fā)送,若發(fā)送一個“隱性”電平,檢測到一個“顯性”電平,該單元退出仲裁,并不再傳送后續(xù)位。</p><p>  安全性:為獲得盡可能高的數(shù)據(jù)傳送安全性,在每個CAN節(jié)點(diǎn)中均設(shè)有錯誤檢測、標(biāo)定和自檢的強(qiáng)有力的措施。檢測錯誤的措施包括:發(fā)送自檢、

31、循環(huán)冗余校驗、位填充和報文格式檢查。</p><p>  出錯標(biāo)注和恢復(fù)時間:已損報文由檢出錯誤的任何節(jié)點(diǎn)進(jìn)行標(biāo)注。這樣的報文將失效,并自動進(jìn)行重發(fā)。如果不存在新的錯誤,自檢出的錯誤至下一個報文開始發(fā)送的恢復(fù)時間最多為29個位時間。</p><p>  故障界定:CAN節(jié)點(diǎn)有能力識別永久性故障和短暫擾動,可自動關(guān)閉故障節(jié)點(diǎn)。</p><p>  應(yīng)答:所有接收器均對

32、接收報文的相容性進(jìn)行檢查,回答一個相容報文,并標(biāo)注一個不相容的報文。</p><p>  睡眠方式及喚醒:為降低系統(tǒng)功耗,CAN器件可被置于無任何內(nèi)部活動的睡眠方式,相當(dāng)于未連接總線的驅(qū)動器。睡眠狀態(tài)借助任何總線激活或者系統(tǒng)的內(nèi)部條件被喚醒而告終。在總線驅(qū)動器再次置于在線狀態(tài)之前,為喚醒內(nèi)部活動重新開始,傳輸層將等待系統(tǒng)振蕩器至穩(wěn)定狀態(tài),并一直等待至其自身同步于總線活動(通過檢查11個連續(xù)的隱位)。為喚醒系統(tǒng)內(nèi)仍

33、處于睡眠狀態(tài)的其他節(jié)點(diǎn),可使用具有最低可能標(biāo)識符的專用喚醒報文:rrr rrrd rrrr,其中,r為隱位,d為顯位。</p><p>  CAN總線位數(shù)值表示與通信距離</p><p>  CAN中的總線數(shù)值為兩種互補(bǔ)邏輯值之一:顯性或隱性。顯性數(shù)值表示邏輯0,而隱性數(shù)值表示邏輯1。如圖2.1所示,顯性和隱性位同時發(fā)送時,最后總線數(shù)值將是顯性。在隱性狀態(tài)下,VCAN_L和VCAN_H被固

34、定于平均電壓電平,Vdiff近似等于零;在總線空閑或隱性位期間,發(fā)送隱性狀態(tài)。在顯性位期間,顯性狀態(tài)改寫隱性狀態(tài)并發(fā)送。</p><p>  CAN系統(tǒng)內(nèi)兩個任意節(jié)點(diǎn)之間的最大傳輸距離與其位速率有關(guān),表2.1所列,這里的最大的通信距離是指在同一條總線上兩個節(jié)點(diǎn)之間的距離。</p><p>  圖2.1 CAN總線位數(shù)值表示</p><p>  表2.1 CAN系統(tǒng)任

35、意兩個節(jié)點(diǎn)之間的最大傳輸距離</p><p><b>  續(xù)表2.1</b></p><p>  圖2.2 CAN總線分層結(jié)構(gòu)和功能</p><p>  CAN總線的分層結(jié)構(gòu)</p><p>  CAN遵從OSI模型,CAN結(jié)構(gòu)劃分為兩層:數(shù)據(jù)鏈路層和物理層,如圖3-2所示。物理層是將ECU連接至總線的電路實現(xiàn),ECU的

36、總數(shù)將受限于總線上的電氣負(fù)載。數(shù)據(jù)鏈路層劃分為邏輯鏈路控制(LLC)和媒體訪問控制(MAC)兩部分。邏輯鏈路控制子層提供的功能包括:幀接收濾波,超載通知和恢復(fù)管理。媒體訪問控制子層劃分為發(fā)送部分和接收部分,發(fā)送部分功能包括發(fā)送數(shù)據(jù)封裝和發(fā)送媒體訪問管理,接收部分功能包括接收媒體訪問管理和接收數(shù)據(jù)卸裝。物理層劃分為物理信令(PLS)、物理媒體附屬裝置(PMA)和媒體相關(guān)接口(MDI)三個部分。物理信令實現(xiàn)與位表示、定時和同步相關(guān)的功能;物

37、理媒體附屬裝置子層實現(xiàn)總線發(fā)送/接收的功能電路并提供總線故障監(jiān)測方法;媒體相關(guān)接口實現(xiàn)物理媒體和媒體訪問單元(MAU)之間的機(jī)械和電氣接口。</p><p>  CAN總線應(yīng)用系統(tǒng)的基本結(jié)構(gòu)</p><p>  圖2.3 CAN總線應(yīng)用系統(tǒng)</p><p>  如圖2.3所示為一個CAN總線應(yīng)用系統(tǒng),主要有主機(jī)和各節(jié)點(diǎn)組成,主機(jī)和節(jié)點(diǎn)之間通過CAN收發(fā)器及CAN控制

38、器相連,單個節(jié)點(diǎn)包括一個單片機(jī)控制器、一個CAN收發(fā)器和一個CAN控制器。其中一個典型的應(yīng)用是:主機(jī)接收各節(jié)點(diǎn)發(fā)送的現(xiàn)場數(shù)據(jù),如現(xiàn)場溫度、電流或壓力等參數(shù),主機(jī)經(jīng)過綜合計算、判斷作出相應(yīng)的控制命令,這些命令將通過CAN總線傳送至各節(jié)點(diǎn)。各節(jié)點(diǎn)由單片機(jī)作為控制器,它用于采集現(xiàn)場的各項參數(shù),并執(zhí)行主機(jī)發(fā)送的各項命令,這些命令將最終傳送至各執(zhí)行機(jī)構(gòu),如閥門、電機(jī)或泵等。</p><p><b>  CAN總線

39、技術(shù)</b></p><p><b>  位仲裁</b></p><p>  要對數(shù)據(jù)進(jìn)行實時處理,就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個站同時需要發(fā)送數(shù)據(jù)時,要求快速地進(jìn)行總線分配。實時處理通過網(wǎng)絡(luò)交換的緊急數(shù)據(jù)有較大的不同。一個快速變化的物理量,如汽車引擎負(fù)載,將比類似汽車引擎溫度這樣相對變化較慢的物理量更頻繁地傳送數(shù)據(jù)并

40、要求更短的延時。</p><p>  CAN總線以報文為單位進(jìn)行數(shù)據(jù)傳送,報文的優(yōu)先級結(jié)合在11位標(biāo)識符中,具有最低二進(jìn)制數(shù)的標(biāo)識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設(shè)計時被確立后就不能再被更改。總線讀取中的沖突可通過位仲裁解決。當(dāng)幾個站同時發(fā)送報文時,站1的報文標(biāo)識符為0111111;站2的報文標(biāo)識符為0100110;站3的報文標(biāo)識符為0100111。所有標(biāo)識符都有相同的兩位01,直到第3位進(jìn)行比較時,站1的

41、報文被丟掉,因為它的第3位為高,而其它兩個站的報文第3位為低。站2和站3報文的4、5、6 位相同,直到第7位時站3的報文才被丟失。注意,總線中的信號持續(xù)跟蹤最后獲得總線讀取權(quán)的站的報文。在此例中,站2的報文被跟蹤。這種非破壞性位仲裁方法的優(yōu)點(diǎn)在于,在網(wǎng)絡(luò)最終確定哪一個站的報文被傳送以前,報文的起始部分已經(jīng)在網(wǎng)絡(luò)上傳送了。所有未獲得總線讀取權(quán)的站都成為具有最高優(yōu)先權(quán)報文的接收站,并且不會在總線再次空閑前發(fā)送報文。</p>&

42、lt;p>  CAN具有較高的效率是因為總線僅僅被那些請求總線懸而未決的站利用,這些請求是根據(jù)報文在整個系統(tǒng)中的重要性按順序處理的。這種方法在網(wǎng)絡(luò)負(fù)載較重時有很多優(yōu)點(diǎn),因為總線讀取的優(yōu)先級已被按順序放在每個報文中了,這可以保證在實時系統(tǒng)中較低的個體隱伏時間。對于主站的可靠性,由于CAN協(xié)議執(zhí)行非集中化總線控制,所有主要通信,包括總線讀取(許可)控制,在系統(tǒng)中分幾次完成。這是實現(xiàn)有較高可靠性的通信系統(tǒng)的唯一方法</p>

43、<p>  CAN總線與其他通信方式的比較</p><p>  在實踐中,有兩種重要的總線分配方法:按時間表分配和按需要分配。在第一種方法中,不管每個節(jié)點(diǎn)是否申請總線,都對每個節(jié)點(diǎn)按最大期間分配。由此,總線可被分配給每個站并且是唯一的站,而不論其是立即進(jìn)行總線存取或在一特定時間進(jìn)行總線存取。這將保證在總線存取時有明確的總線分配。在第二種方法中,總線按傳送數(shù)據(jù)的基本要求分配給一個站,總線系統(tǒng)按站希望的傳

44、送分配。因此,當(dāng)多個站同時請求總線存取時,總線將終止所有站的請求,這時將不會有任何一個站獲得總線分配。為了分配總線,多于一個總線存取是必要的。</p><p>  CAN實現(xiàn)總線分配的方法,可保證當(dāng)不同的站申請總線存取時,明確地進(jìn)行總線分配。這種位仲裁的方法可以解決當(dāng)兩個站同時發(fā)送數(shù)據(jù)時產(chǎn)生的碰撞問題。不同于Ethernet網(wǎng)絡(luò)的消息仲裁,CAN的非破壞性解決總線存取沖突的方法,確保在不傳送有用消息時總線不被占用

45、。甚至當(dāng)總線在重負(fù)載情況下,以消息內(nèi)容為優(yōu)先的總線存取也被證明是一種有效的系統(tǒng)。雖然總線的傳輸能力不足,所有未解決的傳輸請求都按重要性順序來處理。在CSMA/CD這樣的網(wǎng)絡(luò)中,如Ethernet,系統(tǒng)往往由于過載而崩潰,而這種情況在CAN中不會發(fā)生。</p><p>  CAN總線的報文格式及幀結(jié)構(gòu)</p><p>  CAN協(xié)議支持兩種報文格式,標(biāo)準(zhǔn)格式和擴(kuò)展格式。其唯一的不同是標(biāo)識符(

46、ID)長度不同,標(biāo)準(zhǔn)格式為11位,擴(kuò)展格式為29位。</p><p>  在標(biāo)準(zhǔn)格式中,報文的起始位稱為幀起始(SOF),然后是由11位標(biāo)識符和遠(yuǎn)程發(fā)送請求位(RTR)組成的仲裁場。RTR位標(biāo)明是數(shù)據(jù)幀還是遠(yuǎn)程幀,在遠(yuǎn)程幀中沒有數(shù)據(jù)字節(jié)??刂茍霭?biāo)識符擴(kuò)展位(IDE),指出是標(biāo)準(zhǔn)格式還是擴(kuò)展格式。它還包括一個保留位(ro),為將來擴(kuò)展使用。它的最后四個字節(jié)用來指明數(shù)據(jù)場中數(shù)據(jù)的長度(DLC)。數(shù)據(jù)場范圍為0~8

47、個字節(jié),其后有一個檢測數(shù)據(jù)錯誤的循環(huán)冗余檢查(CRC)。</p><p>  應(yīng)答場(ACK)包括應(yīng)答位和應(yīng)答分隔符。發(fā)送站發(fā)送的這兩位均為隱性電平(邏輯1),這時正確接收報文的接收站發(fā)送主控電平(邏輯0)覆蓋它。用這種方法,發(fā)送站可以保證網(wǎng)絡(luò)中至少有一個站能正確接收到報文。</p><p>  報文的尾部由幀結(jié)束標(biāo)出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進(jìn)行總線存取,總線將

48、處于空閑狀態(tài)。</p><p>  報文傳送由四種不同類型的幀表示和控制:數(shù)據(jù)幀攜帶數(shù)據(jù)由發(fā)送器到接收器:遠(yuǎn)程幀通過總線單元發(fā)送,以請求發(fā)送具有相同標(biāo)識符的數(shù)據(jù)幀;出錯幀由檢測出總線錯誤的任何單元發(fā)送;超載幀用于提供當(dāng)前和后續(xù)的數(shù)據(jù)幀的附加延遲。數(shù)據(jù)幀和遠(yuǎn)程幀借助幀空間與當(dāng)前幀分開。下面分別予以介紹。</p><p><b>  1.?dāng)?shù)據(jù)幀</b></p>

49、<p>  數(shù)據(jù)幀由7個不同位場組成,即幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答場和幀結(jié)束。數(shù)據(jù)場長度可為0。</p><p>  CAN2.OA數(shù)據(jù)幀的組成如圖2.4所示。</p><p>  圖2.4 數(shù)據(jù)幀組成</p><p>  在CAN2.OB中存在兩種不同的幀格式,其主要區(qū)別在于標(biāo)識符的長度,具有11位標(biāo)識符的幀稱為標(biāo)準(zhǔn)幀,如圖2.5

50、所示;而包含29位標(biāo)識符的幀稱為擴(kuò)展幀,如圖2.6所示。</p><p>  圖2.5 標(biāo)準(zhǔn)格式數(shù)據(jù)幀</p><p>  圖2.6 擴(kuò)展格式數(shù)據(jù)幀</p><p>  CAN2.0B對報文濾波特別加以描述,報文濾波以整個標(biāo)識符為基準(zhǔn)。屏蔽寄存器可用于選擇一組標(biāo)識符,以便映像于接收緩沖器中,屏蔽寄存器的每一位都是可編程的。它的長度可以是整個標(biāo)識符也可是標(biāo)識符的一部分

51、。</p><p><b>  2.遠(yuǎn)程幀</b></p><p>  作為數(shù)據(jù)接收器的站可以通過發(fā)送一個遠(yuǎn)程幀初始化各自的源節(jié)點(diǎn)數(shù)據(jù)的發(fā)送。遠(yuǎn)程幀的RTR位是隱位,且不存在數(shù)據(jù)場。DLC的數(shù)據(jù)是獨(dú)立的,它可以是0-8中的任何數(shù)值,這一數(shù)值為對應(yīng)的數(shù)據(jù)幀的DLC。</p><p><b>  3.出錯幀</b></p

52、><p>  出錯幀由兩個不同場組成,第一個場由來自各站的錯誤標(biāo)志疊加得到,后隨的第二</p><p>  個場是出錯界定符。出錯幀的組成如圖2.7所示。</p><p>  圖2.7 出錯幀組成</p><p>  錯誤標(biāo)志具有兩種形式,一種是活動錯誤標(biāo)志;一種是認(rèn)可錯誤標(biāo)志?;顒渝e誤標(biāo)志由6個連續(xù)的顯位組成,而認(rèn)可錯誤標(biāo)志由6個連續(xù)的隱位組成

53、,除非被來自其他節(jié)點(diǎn)的顯位沖掉重寫。</p><p>  出錯界定符包括8個隱位,出錯標(biāo)志發(fā)送后,每個站都發(fā)送一個隱位,并監(jiān)視總線,直到檢測到隱位,此后開始發(fā)送剩余的7個隱位。</p><p><b>  4.超載幀</b></p><p>  超載幀包括兩個位場:超載標(biāo)志和超載界定符,如圖2.8所示。</p><p>

54、  圖2.8 超載幀組成</p><p>  存在兩種導(dǎo)致發(fā)送超載標(biāo)志的超載條件:一是要求延遲下一個數(shù)據(jù)幀或遠(yuǎn)程幀的接收器的內(nèi)部條件;另一個是在間歇場內(nèi)檢測到顯位。由前一個超載條件引起的超載幀起點(diǎn),僅允許在期望間歇場的第一位時間開始,而由后一個條件引起的超載幀在檢測到顯位的后一位開始。在大多數(shù)情況下,為延遲下一個數(shù)據(jù)幀或遠(yuǎn)程幀,兩種超載條件均可產(chǎn)生。</p><p>  超載標(biāo)志由6個顯位

55、組成。全部形式對應(yīng)于活動錯誤標(biāo)志形式。超載標(biāo)志形式破壞了間隙場的固定格式,因而,所有其他站都將檢測到一個超載條件,并且由它們開始發(fā)送超載標(biāo)志(在間歇場第三位期間檢測到顯位的情況下,節(jié)點(diǎn)將不能正確理解超載標(biāo)志,而將6個顯位的第一位理解為幀起始),第6個顯位違背了引起出錯條件的位填充規(guī)則。</p><p>  超載界定符由8個隱位組成,與錯誤界定符具有相同的形式。發(fā)送超載標(biāo)志后,站監(jiān)視總線直到檢測到由顯位到隱位的發(fā)送

56、。在此站點(diǎn)上,總線上的每一個站均完成送出其超載標(biāo)志,并且所有站一致地開始發(fā)送剩余的7個隱位。</p><p><b>  5.幀間空間</b></p><p>  數(shù)據(jù)幀和遠(yuǎn)程幀同前述的任何幀(數(shù)據(jù)幀、遠(yuǎn)程幀、出錯幀、超載幀)以稱之為幀間空間的位場隔開。與此相反,超載幀和錯誤幀前面不存在幀間空間,且多個超載幀也不用幀間空間分隔。幀間空間包括間歇場和總線空閑場,對于前面

57、己發(fā)送報文的“錯誤認(rèn)可”站還有暫停發(fā)送場。如圖2.9所示。</p><p>  圖2.9.(a) 非“錯誤認(rèn)可”幀間空間</p><p>  圖2.9.(b) “錯誤認(rèn)可”幀間空間</p><p>  間歇場由3個隱位組成。間歇期間不允許發(fā)送數(shù)據(jù)幀或遠(yuǎn)程幀,它僅起標(biāo)注超載幀條件的作用??偩€空閑周期可以是任意長度。此時總線是開放的,任意發(fā)送節(jié)點(diǎn)可以訪問總線。在其他報文

58、發(fā)送期間被掛起的待發(fā)送的報文緊隨間歇場從第一位開始發(fā)送,此時,總線上的顯位被理解為幀起始。</p><p>  暫停發(fā)送場是指:錯誤認(rèn)可站發(fā)送完一個報文后,開始在下一次報文發(fā)送或認(rèn)可總線空閑之前,它緊隨間歇場后發(fā)送出8個隱位。如果其間開始一次發(fā)送(由其它站引起),本站將變?yōu)閳笪慕邮掌鳌?lt;/p><p><b>  系統(tǒng)的硬件設(shè)計</b></p><

59、p><b>  智能節(jié)點(diǎn)的整體設(shè)計</b></p><p>  CAN是一種串行通信協(xié)議,因其具有高度的可靠性和數(shù)據(jù)完整性。無論是高速網(wǎng)絡(luò)還是低成本多節(jié)點(diǎn)系統(tǒng),CAN都有用武之地。特別適合于分布式實時控制系統(tǒng),其波特率可高達(dá)1 Mb/s。為達(dá)到設(shè)計透明性和實現(xiàn)靈活性,CAN分為3層:目標(biāo)層、傳輸層和物理層。其中目標(biāo)層和傳輸層的功能包含了所有ISO/ OSI模型中數(shù)據(jù)鏈路層的功能;物理層

60、的功能實際上是依據(jù)電氣特性在所有不同節(jié)點(diǎn)間傳輸數(shù)據(jù)。通常此3層是用CAN控制器和CAN收發(fā)器實現(xiàn)的,這樣網(wǎng)絡(luò)的應(yīng)用層就可以用主控制器(如微處理器)來實現(xiàn)。</p><p>  系統(tǒng)的網(wǎng)絡(luò)拓?fù)洳捎每偩€式結(jié)構(gòu),可以分為兩層:現(xiàn)場控制層和過程監(jiān)控層。現(xiàn)場控制層為系統(tǒng)的底層,由帶有CAN接口的DDS362-G1(Ob型)單相電子式電能表,應(yīng)用CAN收發(fā)器采集電能數(shù)據(jù),把采集到的電能數(shù)據(jù)送到總線上,供其他節(jié)點(diǎn)接收。過程監(jiān)控

61、層是現(xiàn)場控制層的上一層,接收由控制層傳輸上來的所需的生產(chǎn)過程的數(shù)據(jù),以及向該層發(fā)送操作命令,以便運(yùn)行人員對整個生產(chǎn)過程進(jìn)行監(jiān)控。過程監(jiān)控層主要由兩部分構(gòu)成:CAN適配器和上位機(jī)。其中CAN適配器一端和總線相連,完成和CAN總線的通信;另一段和上位機(jī)連接,完成和上位機(jī)的通信。它的主要功能是將上位機(jī)的操作信號和控制參數(shù)傳送給指定的CAN網(wǎng)絡(luò)節(jié)點(diǎn),同時,將節(jié)點(diǎn)的數(shù)據(jù)傳輸給上位機(jī)做進(jìn)一步處理。它和上位機(jī)之間的通信是通過RS232串行口和上位機(jī)進(jìn)

62、行數(shù)據(jù)交換。這種方法雖然傳輸速度低,但結(jié)構(gòu)簡單、易于實現(xiàn)、價格低廉,因此,本系統(tǒng)采用這種方法設(shè)計。</p><p>  總線使用雙絞線和終端電阻構(gòu)成,標(biāo)定值如表3.1所列。</p><p>  表3.1 雙絞線(屏蔽或不屏蔽)電器參數(shù)</p><p>  智能節(jié)點(diǎn)軟硬件的整體設(shè)計框圖如圖3.1所示。傳輸指令的過程為:上位機(jī)的命令經(jīng)PC機(jī)COM口的RS232、電平經(jīng)M

63、AX232轉(zhuǎn)換為TTL電平后接到89C51的串行口(數(shù)字電表的電度數(shù)通過其內(nèi)置的RS485接口經(jīng)75LBC184轉(zhuǎn)換接到89C51的串行口),89C51接收的串行數(shù)據(jù),通過地址/數(shù)據(jù)總線轉(zhuǎn)為并行數(shù)據(jù)發(fā)給CAN控制器SJA1000,再通過CAN總線驅(qū)動器82C250發(fā)送到CAN總線上。 數(shù)據(jù)通過CAN總線傳到其它的CAN總線驅(qū)動器,進(jìn)而傳到其它的CAN控制器,其它CAN控制器將接收的數(shù)據(jù)中的標(biāo)識碼位和自身的驗收濾波器中預(yù)設(shè)值比較,若相一致

64、,繼續(xù)接收后面的報文,否則不予以接收。</p><p>  圖3.1 智能節(jié)點(diǎn)的整體設(shè)計框圖</p><p>  智能節(jié)點(diǎn)的硬件電路主要有下列幾部分構(gòu)成:串口通信電路、微處理器電路、CAN接口電路、信號采集電路,下面逐一介紹。原理電路圖見附錄。</p><p><b>  串口通信電路</b></p><p>  CAN

65、適配卡和上位機(jī)的通信采用的是RS-232串口通信。由于適配卡上的微控制器AT89C51具有全雙工的串行通信口,可以方便的實現(xiàn)和PC機(jī)的串口通信。要想實現(xiàn)它們之間的數(shù)據(jù)通信,在硬件部分所要做的就是實現(xiàn)ELA-RS-232C與TTL/CMOS之間的電平轉(zhuǎn)換,可以通過MAX232實現(xiàn)的。MAX232是MAXIM公司生產(chǎn)的低功耗,但電源雙RS-232發(fā)送/接收器。它的內(nèi)部有一個電源電壓變換器,可以把輸入的+5V電源變換為成RS-232所需要的士

66、10V電壓。所以,用該芯片接口的串行通信只需單一的+5V電源就可以了。MAX232接口電路如圖3.2所示,其中電容、、、及,是電源變換部分。實際應(yīng)用中,器件對電源噪聲很敏感。因此,對地需要加去耦電容,其值為1.0uF/25V。電容、、、取同樣數(shù)值的電解電容,以提高抗干擾能力。MAX232的引腳T1IN接AT89C51的TXD腳,R10UT接AT89C51的RXD腳,T2IN和R20UT懸空。T10UT、RIIN連接PC機(jī)的接收端RXD和

67、發(fā)送端TXD。這樣就完成了電平轉(zhuǎn)換工作,同時MAX232本身就有驅(qū)動能力,不需要外加驅(qū)動電路。</p><p>  圖3.2 MAX232引腳圖和電容典型參數(shù)</p><p><b>  微處理器電路</b></p><p>  微處理器電路是指CAN節(jié)點(diǎn)的微控制器及其外圍電路,它完成節(jié)點(diǎn)的控制和運(yùn)算功能,由CPU、譯碼電路和復(fù)位電路組成。&l

68、t;/p><p><b>  CPU</b></p><p>  AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與

69、工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  在設(shè)計中管腳分配:PO口作為數(shù)據(jù)、地址復(fù)用總線使用,P2口的口線作為片選信號,參與地址譯碼電路。P1口作為一般I/O接口使用,Pl.0用于復(fù)位電路, Pl. 1用來控制LED指示燈。

70、</p><p>  振蕩電路采用外接晶振,工作頻率是12MHZ。</p><p><b>  地址譯碼電路</b></p><p>  節(jié)點(diǎn)中有多個芯片需要使用數(shù)據(jù)總線,故需要設(shè)計地址譯碼電路。譯碼電路采用線選法,具體對應(yīng)關(guān)系為:P2.7為74HC245片選信號,P2.6為SJA10OO片選信號。P2.5接75LBC184的DE和RE引腳,當(dāng)

71、P2.5為1時75LBC184為發(fā)送器,當(dāng)P2.5為0時75LBC184為接收器。</p><p><b>  參數(shù)輸入電路</b></p><p>  為了簡化系統(tǒng),本次設(shè)計采用DIP設(shè)定開關(guān)輸入數(shù)據(jù)。DIP撥碼回路開關(guān)的正式名稱是DUAL IN LINE PACKAGE SWITCH。 操作用開關(guān)中,與其他的開關(guān)不同,極少有將其裝在機(jī)身表面,多數(shù)用于直接安裝在線路

72、板上的開關(guān)。目的是用于電氣信號的控制程序的設(shè)定、電子回路的切換和查驗等用途。采用8位DIP設(shè)定開關(guān),高兩位用于設(shè)置通信波特率,底六位用于設(shè)置智能節(jié)點(diǎn)號。DIP設(shè)定開關(guān)通過74HC245三態(tài)雙向總線驅(qū)動器向單片機(jī)傳送并口數(shù)據(jù),74HC245片選信號經(jīng)過或門與單片機(jī)的P27和讀信號引腳相連,也就是只有P27和讀信號引腳全都為0時才選通74HC245,方向控制位DIR接地,數(shù)據(jù)從B端口向A端口傳送,此時單片機(jī)可以通過讀取74HC245數(shù)據(jù)端口

73、即可得到并口數(shù)據(jù),完成數(shù)據(jù)的輸入。其電路圖如圖3.4所示。</p><p><b>  CAN總線接口電路</b></p><p>  CAN接口電路可分為三部分:CAN控制器,CAN收發(fā)器和光電隔離電路。</p><p>  CAN控制器SJA1000</p><p>  1.SJA1000主要特性</p>

74、<p>  CAN控制器是CAN通信的核心芯片,CAN的通信協(xié)議主要是由它完成的。CAN控制器主要實現(xiàn)CAN總線協(xié)議部分和與微處理器的接口。設(shè)計選用的是SJAlOO。</p><p>  SJA1000是一種獨(dú)立控制器,用于汽車和一般工業(yè)環(huán)境中的局域網(wǎng)絡(luò)控制。它是PHILIPS公司的PCA82C200獨(dú)立CAN控制器的替代品。與其在引腳及電氣上完全兼奔。SJA1000 有一系列先進(jìn)的功能,適合于多種

75、應(yīng)用,特別在系統(tǒng)優(yōu)化、診斷和維護(hù)方面非常重要。</p><p>  SJA1000獨(dú)立的CAN控制器有2個不同的操作模式:BasicCAN模式(和PCA82C200兼容)和PeliCAN模式。</p><p>  BasicCAN模式是上電后默認(rèn)的操作模式。因此,用PCA82C200開發(fā)的已有硬件和軟件可以直接在SJA1000上使用,而不用作任何修改。</p><p&g

76、t;  PeliCAN模式是新的操作模式,它能夠處理所有CAN2.0B規(guī)范的幀類型。而且它還提供一些增強(qiáng)功能使SJA1000能應(yīng)用于更寬的領(lǐng)域。</p><p> ?。?)BasicCAN模式功能:</p><p><b>  多主結(jié)構(gòu);</b></p><p>  1)可連接各種類型微處理器接口;</p><p>  

77、2)總線訪問優(yōu)先權(quán)(取決于報文標(biāo)識符);</p><p>  3)2032種報文標(biāo)識符;</p><p>  4)對于高優(yōu)先權(quán)報文確保等待時間;</p><p>  5)成組和廣播報文功能;</p><p>  6)無損結(jié)構(gòu)的逐位仲裁;</p><p>  7)帶有位填充功能的非歸零編碼/解碼;</p>

78、<p>  24MHZ時鐘頻率。</p><p>  (2)PeliCAN模式擴(kuò)展功能:</p><p>  1)可讀/寫訪問的錯誤計數(shù)器;</p><p>  2)可編程的錯誤報警限制;</p><p>  3)最近一次錯誤代碼寄存器;</p><p>  4)對每一個CAN總線錯誤的中斷;</p&g

79、t;<p>  5)具體控制位控制的仲裁丟失中斷;</p><p>  6)單次發(fā)送(無重發(fā));</p><p>  7)只聽模式(無確認(rèn)、無活動的出錯標(biāo)志);</p><p>  8)支持熱插拔(軟件位速率檢測);</p><p>  9)接受過濾器擴(kuò)展(4字節(jié)代碼,4字節(jié)屏蔽);</p><p>  

80、10)自身信息接收(自接收請求)。</p><p>  2.SJA1000的硬件結(jié)構(gòu)和功能</p><p>  SJA1000的管腳功能如表3.2所列。</p><p>  由圖3.7(a)所示,控制器由下述幾部分組成:</p><p>  接口管理邏輯(IML):負(fù)責(zé)連接外部主控制器,該控制器可以是微型控制器或任何其他器件。控制CAN寄存器

81、的尋址,并向微控制器提供中斷和狀態(tài)信息。經(jīng)過SJA1000復(fù)用的地址/數(shù)據(jù)總線訪問寄存器和控制讀/寫選通信號都在這里處理。另外除了PCA82C200 已有的BasicCAN 功能,還加入了一個新的PeliCAN 功能。因此,附加的寄存器和邏輯電路主要在這塊里生效;</p><p>  發(fā)送緩存器:它是CPU和BSP(位流處理器)之間的接口,存貯發(fā)送到CAN網(wǎng)絡(luò)上的完整信息,緩沖器長13個字節(jié),CPU寫入,BSP讀

82、出;</p><p>  接收緩存器0和1(RBF0,RBF1):RBF0和RBF1均由l0個字節(jié)組成,交替存貯由總線接收到的報文,當(dāng)一個緩存器被分配給CPU,位流處理器可以對另外一個進(jìn)行寫操作。</p><p>  位流處理器(BSP):它是一個控制發(fā)送緩存器和接收緩存器(并行數(shù)據(jù))與CAN總線(串行數(shù)據(jù))之間控制數(shù)據(jù)流的程序裝置。它還執(zhí)行錯誤檢測、仲裁、總線填充和錯誤處理:</p

83、><p>  位定時邏輯(BTL):它監(jiān)視串口的CAN總線和處理與總線有關(guān)的位時序。將SJA1000同步于CAN總線上的位流。BTL還提供了可編程的時間段來補(bǔ)償傳播延遲時間、相位轉(zhuǎn)換和定義采樣點(diǎn)及每一位的采樣次數(shù);</p><p>  收發(fā)邏輯:它控制輸出驅(qū)動器;</p><p>  錯誤管理邏輯(EML):它接收BSP的出錯報告.并按照CAN協(xié)議完成錯誤界定,促使BS

84、P和IML進(jìn)行錯誤統(tǒng)計:</p><p>  控制器接口邏輯:它是與外部微控制器的接口。</p><p>  表3.2 SJA1000引腳功能</p><p><b>  續(xù)表3.2</b></p><p>  3.SJA1000的通信控制 </p><p>  (1)控制器SJA1000的基本功

85、能和寄存器</p><p>  SJA1000 的功能配置和行為由主控制器的程序執(zhí)行。因此SJA1000能滿足不同屬性的CAN總線系統(tǒng)的要求。主控制器和SJA1000之間的數(shù)據(jù)交換經(jīng)過一組寄存器(控制段)和一個RAM(報文緩沖器)完成。RAM的部分的寄存器和地址窗口組成了發(fā)送和接收緩沖器,對于主控制器來說就像是外圍器件寄存器。</p><p>  CAN的內(nèi)部共有128個字節(jié)的存儲單元,對

86、于CPU來說是以外部存儲器形式存在的,CPU通過對它的讀寫來實現(xiàn)CAN控制器的初始化、數(shù)據(jù)的發(fā)送和接收,故障報警和定位等。根據(jù)它們在系統(tǒng)的作用分組列出了這些寄存器,如表3.3所列。</p><p> ?。?)發(fā)送緩沖器/接收緩沖器</p><p>  要在CAN總線上發(fā)送的數(shù)據(jù)被載入SJA1000 的存儲區(qū),這個存儲區(qū)叫”發(fā)送緩沖器”。從CAN總線上收到的數(shù)據(jù)也存儲在SJA1000的存儲區(qū)

87、,這個存儲區(qū)叫”接收緩沖器”。這些緩沖器包括2,3或5個字節(jié)的標(biāo)識符和幀信息(取決于模式和幀類型),而最多可以包含8 個數(shù)據(jù)字節(jié)。</p><p>  BasicCAN模式:緩沖器長10個字節(jié)(2個標(biāo)識符字節(jié),最多8個數(shù)據(jù)字節(jié))如表3.4所列;PeliCAN模式:緩沖器長13個字節(jié)(1字節(jié)幀信息,2個或4個標(biāo)識符字節(jié)(標(biāo)準(zhǔn)幀或擴(kuò)展幀),最多8個數(shù)據(jù)字節(jié))如表3.5所列。</p><p>&

88、lt;b> ?。?)驗收濾波器</b></p><p>  獨(dú)立的CAN控制器SJA1000裝配了一個多功能的驗收濾波器,該濾波器允許自動檢查標(biāo)識符和數(shù)據(jù)字節(jié)。使用這些有效的濾波方法,可以防止對于某個節(jié)點(diǎn)無效的報文或報文組存儲在接收緩沖器里。因此,降低了主控制器的處理負(fù)載。</p><p>  濾波器由驗收碼寄存器和屏蔽寄存器來控制。接收到的數(shù)據(jù)會和驗收代碼寄存器中的值進(jìn)

89、行逐位比較。接收屏蔽寄存器定義與比較相關(guān)的位的位置(0=相關(guān)1=不相關(guān))。收到報文的相應(yīng)的位與驗收代碼寄存器相應(yīng)的位必須相同。</p><p>  表3.3 SJA1000內(nèi)部寄存器的分類</p><p>  表3.4 BasicCAN模式里的RX和TX緩沖器</p><p>  表3.5 PeliCAN模式里的RX緩沖器(讀訪問)和TX緩沖器(寫訪問)</p

90、><p>  BasicCAN模式里的驗收濾波:</p><p>  SJA1000 在這個模式可以即插即用地取代PCA82C200(硬件和軟件)。因此驗收濾波功能與PCA82C200的一樣,也可以使用。這個濾波器是由兩個8 位寄存器——驗收碼寄存器(ACR)和驗收屏蔽寄存器(AMR) 控制。CAN 報文標(biāo)識符的高8位和這些寄存器里值相比較,如圖3.8所示。因此可以定義若干組的標(biāo)識符為被任何一

91、個節(jié)點(diǎn)接收。</p><p>  如:(其中X為無關(guān))</p><p>  驗收碼寄存器(ACR)包括:01110010;</p><p>  驗收屏蔽寄存器(AMR)包括:00111000;</p><p>  帶有11 位的標(biāo)識符信息被接收:01XXX010XXX。</p><p>  圖3.8 BasicCAN

92、模式的驗收濾波</p><p>  在驗收屏蔽寄存器里是“1”的位置上,標(biāo)識符相應(yīng)的位可以是任何值.這對于三個最低位也一樣.因此在這個例子里可以接收64個不同的標(biāo)識符。標(biāo)識符其他的位必須等于驗收代碼寄存器相應(yīng)位的值。</p><p>  PeliCAN模式的驗收濾波。</p><p>  PeliCAN模式的驗收濾波已被擴(kuò)展:4個8位的驗收碼寄存器(ACR0,ACR

93、1,ACR2 和ACR3)和驗收屏蔽寄存器(AMR0,AMR1,AMR2 和AMR3) 可以用多種方法濾波報文。如圖3.9 所示,這些寄存器可用于控制一個長的濾波器或兩個短的濾波器。報文的哪些位用于驗收濾波,取決于收到的幀(標(biāo)準(zhǔn)幀或擴(kuò)展幀)和選擇的濾波器模式(單濾波器或雙濾波器)。從圖和表可以看出,標(biāo)準(zhǔn)幀的驗收濾波可以包括RTR位甚至數(shù)據(jù)字節(jié)。對于不需要經(jīng)過驗收濾波的報文位(例如報文組被定義為接受),驗收屏蔽寄存器必須相應(yīng)的位位置上置“

94、1”。</p><p>  如果報文不包括數(shù)據(jù)字節(jié)(例如:是一個遠(yuǎn)程幀或者數(shù)據(jù)長度碼為零)但是驗收濾波包括數(shù)據(jù)字節(jié),則如果標(biāo)識符直到RTR位都有效的話,報文會被接收。</p><p>  假設(shè)前面描述的同樣的64個標(biāo)準(zhǔn)幀報文要在PeliCAN 模式里濾波,可以通過使用一個長濾波器完成(單濾波器模式)。驗收代碼寄存器(ACRn)和驗收屏蔽寄存器如表3.6所列。</p><

95、p>  表3.6 驗收代碼寄存器(ACRn)和驗收屏蔽寄存器(AMRn)</p><p> ?。ā癤”=不相關(guān),“x”=任意,只使用了ACR1 和AMR1 的高四位)。</p><p>  在驗收屏蔽寄存器是”1”的位置上,標(biāo)識符相應(yīng)的位可以是任何值,譬如遠(yuǎn)程發(fā)送請求位和數(shù)據(jù)字節(jié)1和2的位。</p><p>  圖3.9 PeliCAN 模式的驗收濾波(單濾

96、波器模式)</p><p>  4.SJA1000硬件設(shè)計</p><p>  為了連接到主控制器,SJA1000 提供一個復(fù)用的地址/數(shù)據(jù)總線和附加的讀/寫控制信號。SJA1000可以作為主控制器外圍存儲器映射的I/O 器件。</p><p>  SJA1000的寄存器和管腳配置使它可以使用各種各樣集成或分立的CAN收發(fā)器,由于有不同的微控制器接口,應(yīng)用可以使用不

97、同的微控制器。</p><p>  圖3.10 SJA1000硬件連接圖</p><p>  如圖3.10所示,是本次設(shè)計的SJA1000硬件連接圖。SJA1000的管腳在系統(tǒng)中的使用說明如下:SJA1000的ADO-AD7連接微控制器的PO口,作為數(shù)據(jù)/地址分時復(fù)用總線;CS連接AT89C52的P2.6,作為片選信號;ALE、RD、WR分別連接微控制器的相應(yīng)端口,通過和數(shù)據(jù)/地址總線的時

98、序配合完成對CAN控制器內(nèi)寄存器的讀寫;INT連接AT89C51的INTO,這樣就可以采用中斷方式控制CAN接口的發(fā)送和接收;Mode連接+5V,用以選擇Intel系列微控制器。</p><p><b> ?。?)電源</b></p><p>  SJA1000有三對電源引腳,用于CAN控制器內(nèi)部不同的數(shù)字和模擬模塊。</p><p>  VD

99、D1/VSS1: 內(nèi)部邏輯(數(shù)字);</p><p>  VDD2/VSS2: 輸入比較器(模擬);</p><p>  VDD3/VSS3: 輸出驅(qū)動器(模擬)。</p><p>  為了有更好的EME性能,電源應(yīng)該分隔開來。例如為了抑制比較器的噪聲,VDD2可以用一個RC濾波器來退耦。</p><p><b>  (2)復(fù)位&l

100、t;/b></p><p>  為了使SJA1000正確復(fù)位,CAN 控制器的XTAL1 管腳必須連接一個穩(wěn)定的振蕩器時鐘。引腳17 的外部復(fù)位信號要同步并被內(nèi)部延長到15個TXTAL 這保證了SJA1000 所有寄存器能夠正確復(fù)位。要注意的是上電后的振蕩器的起振時間必須要考慮。</p><p> ?。?)振蕩器和時鐘策略</p><p>  SJA1000能

101、用片內(nèi)振蕩器或片外時鐘源工作。另外CLKOUT 管腳可被使能,向主控制器輸出時鐘頻率。如圖3.11所示SJA1000 應(yīng)用的四個不同的定時原理。如果不需要CLKOUT 信號,可以通過置位時鐘分頻寄存器(Clock Off=1) 關(guān)斷。這將改善CAN節(jié)點(diǎn)的EME性能。CLKOUT信號的頻率可以通過時鐘分頻寄存器改變:fCLKOUT = fXTAL / 時鐘分頻因子(1,2,4,6,8 ,10,12,14)。上電或硬件復(fù)位后,時鐘分頻因子的

102、默認(rèn)值由所選的接口模式(引腳11) 決定。如果使用16MHZ的晶振,Intel模式下CLKOUT的頻率是8 MHZ,Motorola 模式中,復(fù)位后的時鐘分頻因子是12 ,這種情況CLKOUT 會產(chǎn)生1.33MHZ的頻率。本設(shè)計采用第四種方式。</p><p><b> ?。?)睡眠和喚醒</b></p><p>  置位命令寄存器的進(jìn)入睡眠位(BasicCAN模式)

103、或模式寄存器(PeliCAN模式)的睡眠模式位后,如果沒有總線活動和中斷等待,SJA1000就會進(jìn)入睡眠模式。振蕩器在15個CAN位時間內(nèi)保持運(yùn)行狀態(tài)。此時,微型控制器用CLKOUT 頻率來計時,進(jìn)入自己的低功耗模式。如果出現(xiàn)三個喚醒條件之中的一個,振蕩器會再次啟動并產(chǎn)生一個喚醒中斷,振蕩器穩(wěn)定后,CLKOUT 頻率被激活。</p><p><b> ?。?)CPU接口</b></p&

104、gt;<p>  SJA1000支持直接連接到兩個著名的微型控制器系列:80C51和68xx。通過SJA1000的MODE引腳可選擇接口模式:</p><p>  Intel 模式: MODE=高</p><p>  Motorola 模式: MODE =低</p><p>  地址/數(shù)據(jù)總線和讀/寫控制信號在Intel模式和Motorol

105、a模式的連接如圖3.12 所示。Philips基于80C51系列的8 位微控制器和XA 結(jié)構(gòu)的16位微型控制器都使用Intel模式。</p><p>  圖3.11 四個不同的定時原理</p><p>  為了和其他控制器的地址/數(shù)據(jù)總線和控制信號匹配,必須要附加邏輯電路。但是必須確保在上電期間不產(chǎn)生寫脈沖。另一個方法在這個時候使片選輸入是高電平,禁能CAN控制器。</p>

106、<p>  CAN總線收發(fā)器PCA82C250</p><p>  1.PCA82C250概述</p><p>  此器件對總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力。如在ISO11898標(biāo)準(zhǔn)中描述的,它們可以用高達(dá)1Mbit/s的位速率在兩條有差動電壓的總線電纜上傳輸數(shù)據(jù)??梢灾С侄噙_(dá)110個節(jié)點(diǎn),并能在1Mbps的傳輸速率下工作于惡劣的工作條件下。CAN收發(fā)器的額定

107、工作電壓是5V,參考電壓VREF的值是額定電壓值VCC的0.5倍,一般可以通過電阻分壓實現(xiàn)。</p><p>  PCA82C250主要特性如下:</p><p>  (1)和“ISO11898”標(biāo)準(zhǔn)完全兼容;</p><p> ?。?)高速性(可達(dá)1Mbaud);</p><p>  (3)在汽車環(huán)境中,對總線提供瞬變保護(hù);</p&g

108、t;<p> ?。?)斜率控制,以降低射頻干擾(RFI,Radio Frequency Interference);</p><p> ?。?)差動接收器具有寬共模范圍,有很強(qiáng)抗電磁干擾(EMI)的能力,熱保護(hù);</p><p> ?。?)對電源和地的短路保護(hù);</p><p> ?。?)低電流待機(jī)模式;</p><p> ?。?/p>

109、8)一個未供電的節(jié)點(diǎn)不會干擾總線;</p><p>  (9)至少可掛110個節(jié)點(diǎn)。</p><p>  2.PCA82C250的硬件結(jié)構(gòu)和功能</p><p>  基本性能數(shù)據(jù)如表3.7所列。</p><p>  表3.7 82C250基本性能數(shù)據(jù)</p><p>  3.PCA82C250典型應(yīng)用</p>

溫馨提示

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

評論

0/150

提交評論