

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)論文(設計、創(chuàng)作)</p><p> 題目: 基于CAN總線控制的溫度儀表 </p><p> Temperature control instrument based on CAN bus </p><p><b> 摘 要</b></p&g
2、t;<p> 隨著科學技術的快速發(fā)展,工業(yè)控制和生產自動化技術的不斷進步以及微處理器的廣泛應用,現場總線技術日益成為國內外各個行業(yè)的關注焦點。傳統的獨</p><p> 立儀表已經不能滿足目前控制系統大規(guī)模化、智能化、網絡化方向發(fā)展的要求,一種新型的基于現場總線的智能儀表應運而生。CAN (Controller Area Network)現場總線作為一種自效支持分布式控制和實時控制的技術,以其穩(wěn)
3、定性好、可靠性高、抗干擾能力強、通訊速率快、維護成本低及其獨特的設計,現己經成為國際上應用最為廣泛的現場總線之一。</p><p> 本課題采用主流單片機STC89C52為微處理器,結合獨立CAN控制器SJA1000設計了CAN總線的數據通信系統硬件電路,使CAN總線的通訊更加直觀。本文提出了相應的通信軟件模型,通信軟件模型包括應用層協議模塊、基本通信模塊和運動控制應用模塊。其中,應用層協議模塊包括消息標識符的
4、分配、數據域信息格式、數據交換方式和報文濾波機制等內容;基本通信模塊包括CAN控制器的初始化、報文接收、報文發(fā)送、錯誤處理和中斷服務程序等內容;運動控制應用模塊包括輸出控制命令和輸入狀態(tài)信息等內容。</p><p> 本課題設計的數據通信系統結構簡單、使用方便、設計靈活,能夠滿足工業(yè)控制中網絡化、智能化的發(fā)展要求,對目前基于CAN總線的研究具有積極作用。</p><p> 關鍵詞:CA
5、N數據通信,SJA1000,單片機</p><p><b> Abstract</b></p><p> With the rapid development of science and technology, industrial control and automation technology continues to progress as well a
6、s the microprocessor application, field bus technology has increasingly become the focus of various domestic and international industry. The traditional independent instrument can not meet the current control system of l
7、arge-scale, intelligent, networked direction requirements, a novel based on the field bus in intelligent instrument emerge as the times require. CAN (</p><p> The subject of the use of mainstream chip STC89
8、C52microprocessor, with independent CAN controller SJA1000design of CAN bus data communication system hardware circuit, the CAN bus communication more intuitive. This paper presents the corresponding communication model,
9、 communication software model including the application layer protocol module, basic communication module and motion control application module. Among them, the application layer protocol module includes a message identi
10、fier allocati</p><p> The design of the subject data communication system has the advantages of simple structure, convenient use, flexible design, can meet the requirements of industrial control network, in
11、telligent development requirement, to at present based on the CAN bus has positive effects on.</p><p> Key words: data communication of CAN, SJA1000, single chip microcomputer</p><p><b>
12、 目錄</b></p><p><b> 摘 要I</b></p><p> AbstractⅡ</p><p><b> 目錄Ⅲ</b></p><p> 第一章 緒 論1</p><p> 1.1選題背景及意義1</p>
13、<p> 1.2國內外研究現狀及其發(fā)展1</p><p> 1.3本文組織結構2</p><p> 第二章 現場總線及CAN總線技術通信標準3</p><p> 2.1 CAN總線簡介3</p><p> 2.2 CAN總線技術特點3</p><p> 2.3 CAN總線通信協議4&
14、lt;/p><p> 2.3.1 CAN總線的特點4</p><p> 2.3.2 CAN總線幀格式4</p><p> 2.3.3 CAN總線位仲裁技術特點5</p><p><b> 2.4本章小結5</b></p><p> 第三章 系統硬件電路設計
15、1</p><p> 3.1智能儀表系統整體硬件構成1</p><p> 3.2 CAN通信模塊硬件設計1</p><p> 3.2.1 SJAl000有以下基本特性:1</p><p> 3.2.2 CAN總線收發(fā)器TJA10502</p><p> 3.2.3 微控制器STC8
16、9C52單片機3</p><p> 3.2.4 數字溫度傳感器DS18B205</p><p> 3.2.5 八段數碼管6</p><p> 3.2.6 74HC5957</p><p> 3.3 本章小結8</p><p> 第四章 CAN數據通信接口模塊軟件設計9</p>
17、<p> 4.1 CAN總線數據通信程序9</p><p> 4.2 DS18B20 溫度采集程序11</p><p> 4.3 74HC595驅動數碼管顯示程序14</p><p><b> 結論16</b></p><p><b> 參考文獻17</b><
18、/p><p><b> 致謝19</b></p><p><b> 附錄20</b></p><p><b> 程序設計20</b></p><p><b> 第一章 緒 論</b></p><p> 1.1選題背景
19、及意義</p><p> 隨著微型計算機技術和嵌入式系統技術的迅速發(fā)展,工業(yè)控制系統已成為計算機技術應用領域中最具活力的一個分支,并取得了巨大進步。由于對系統可靠性和靈活性的高要求,工業(yè)控制系統的發(fā)展主要表現為:控制面向多元化,系統面向分散化,即負載分散、功能分散、危險分散和地域分散。即以微型計算機(單片機或嵌入式系統)為主體,代替?zhèn)鹘y儀表的常見電子線路, 稱為新一代的具有某種智能的靈巧儀表。傳統模擬式儀表的各
20、種功能是由單元 電路實現的,而在以單片機或嵌入式系統為主體的儀表中,則由軟件完成眾多的 數據處理和控制任務。同時,正由于現場總線的標準尚未統一,也使得現場總線的應用得以不拘一格地發(fā)揮,并將為現場總線的完善提供更加豐富的依據??刂破骶植烤WCAN (Controller Area Network)正是在這種背景下應運而生的。CAN(Controller Area Network)是現場總線的一種,最早是德國Bosch公司在上世紀80年代
21、推出的,主要應用于汽車內部檢測以及控制系統間的數據通信。CAN總線通信協議充分考慮了工業(yè)現場環(huán)境,采用了ISO-OSI模型中的三層,即物理層,數據層和應用層。CAN總線規(guī)范</p><p> 1.2國內外研究現狀及其發(fā)展</p><p> 當今國外有許多知名的汽車制造企業(yè),如奔馳,寶馬,保時捷,勞斯萊斯等公司均已采用CAN總線來實現汽車內部電控系統與各檢測和執(zhí)行機構間的數據通訊。國內的
22、一些汽車生產廠家最初雖然也嘗試著在自己的產品中使用CAN,并也制造出了一些相應的產品,但在成熟度方面無疑與那些著名的廠家還有著很大的差距。CAN總線歷經20多年的發(fā)展,尤其是隨著其國際標準化(IS011898 )的制定,更加推動了它的發(fā)展和應用,已有INTEL, MOTOROLA, PHILIPS, SIEMENS等百余家國際大公司支持CAN總線協議。</p><p> 目前,國內科技水平及整體綜合技術水平達到
23、了國際80年代中期水平。隨著微電子技術和計算機技術在儀器儀表產 品中的普遍采用,約15%的產品實現了智能化,達到國際90年代水平,30%的產品實現了數字化達到了國際80年代末期水平。通過科技攻關、聯合開發(fā)、合資合作和引進技術消化吸收國產化等多種 形式,使我國儀器儀表行業(yè)部分中高檔主導產品縮小了與國際先進水平的差距 ,并形成了生產能力。</p><p> CAN總線在未來的發(fā)展前景上,將具有如下幾個方向:<
24、/p><p> (1) CAN總線將在未來的市場竟爭中占有一定的優(yōu)勢。</p><p> (2)與企業(yè)以太網(Ethernet)的互聯。</p><p> (3)與模糊控制技術和智能技術的結合。</p><p> (4)與無線技術的結合。</p><p><b> 1.3本文組織結構</b>
25、</p><p> 本文研究了基于CAN總線的數據通信系統的通信系統設計與實現。內容涉及需求分析、總體設計、硬件組成結構設計、軟件設計和開發(fā)、系統仿真測試等。</p><p> 第一章為緒論,簡單介紹了CAN總線在國內外的應用現狀,說明了本課題的研究背景和意義。</p><p> 第二章概括介紹了CAN總線通信標準,包括其技術特點、報文的幀類型與格式、富有特色
26、的位仲裁技術、報文濾波技術等。</p><p> 第三章是CAN總線通信系統的硬件設計與實現和應用層通信協議模塊的設計。</p><p> 第四章介紹了CAN通信系統軟件開發(fā)的過程,說明了在仿真測試平臺上的測試情況。</p><p> 第五章總結了本通信系統設計與實現的主要成果與結論,并做了下一步的工作展望。</p><p> 第二章
27、 現場總線及CAN總線技術通信標準</p><p> 2.1 CAN總線簡介</p><p> CAN網絡即控制器局域網(Controller Area Network) 是德國BOSCH公司為現代汽車應用領先推出的一種多主機局域網,它是一種有效支持分布式控制或實時控制的串行通訊網絡,其總線規(guī)范已被ISO國際標準化組織制定為國際標準,并被公認為是最有前途的現場總線之一。CAN總線的通
28、信介質可以是雙絞線、同軸電纜或光纖,最大通信速率可達1Mbps。其應用范圍遍及從高速網絡到低成本的多線路網絡,廣泛應用于工業(yè)自動化、多種控制設備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門。</p><p> 2.2 CAN總線技術特點</p><p> ?。?)多主機方式工作,網絡上任意一個節(jié)點均可以在任意時刻主動地向網絡上的其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活。</p
29、><p> ?。?)網絡上的節(jié)點(信息)可分成不同的優(yōu)先級,可以滿足不同的實時要求。 </p><p> (3)采用非破壞性位仲裁總線結構機制,當兩個節(jié)點同時向網絡上傳送信息時,優(yōu)先級低的節(jié)點主動停止數據發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數據。</p><p> ?。?)可以點對點、一點對多點(成組)及全局廣播幾種傳送方式接收數據。</p&g
30、t;<p> ?。?)直接通信距離最遠可達6km(速率10Kbps以下)。</p><p> ?。?)通信速率最高可達1MB/s(此時距離最長40m)。</p><p> (7)節(jié)點數實際可達110個。</p><p> ?。?)采用短幀結構,每一幀的有效字節(jié)數為8個。</p><p> ?。?)每幀信息都有CRC校驗及其它檢
31、錯措施,數據出錯率極低。</p><p> ?。?0)通信介質可采用雙絞線,同軸電纜和光導纖維,一般采用廉價的雙絞線即可,無特殊要求。</p><p> ?。?1)節(jié)點在錯誤嚴重的情況下,具有自動關閉總線的功能,切斷它與總線的聯系,以使總線上的其他操作不受影響。</p><p> 2.3 CAN總線通信協議</p><p> 2.3.1&
32、#160; CAN總線的特點</p><p> CAN總線是一種有效支持分布式控制或實時控制的串行通信網絡。其通訊介質可以是雙絞線、同軸電纜或光纖。在汽車發(fā)動機控制部件、傳感器等應用中,總線的位速率最大可達1Mbit/s。CAN總線具有以下主要特性:</p><p> a.無破壞性的基于優(yōu)先權競爭的總線仲裁</p><p> b.可借助接收濾波的多地
33、址幀傳送</p><p> c.具有錯誤檢測與出錯幀自動重發(fā)功能</p><p> d.數據傳送方式可分為數據廣播式和遠程數據請求式</p><p> 2.3.2 CAN總線幀格式</p><p> CAN總線通信協議包括CAN2.0A和CAN2.0B兩種,它們的幀格式:</p><p> ?。?)
34、CAN2.0A通信協議規(guī)定了4種不同的幀格式:</p><p> 數據幀 用于節(jié)點間傳遞數據,是網絡信息的主體,其幀格式依次包括: 幀起始、仲裁場、控制場、數據場、CRC場、ACK場和幀結束。其中數據段長度可編程0~8個字節(jié)。</p><p> 遠程幀 由在線單元發(fā)送,用于請求發(fā)送具有相同標識符的數據幀,其幀格式與數據幀基本相同,但沒有數據場。]</p&g
35、t;<p> 出錯幀 出錯幀是檢測總線出錯的一個信號標志,由兩個不同的場構成。第一個場由來自不同節(jié)點的錯誤標志疊加,第二個場為錯誤界定符。CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證數據通訊的可靠性。</p><p> 超載幀 由超載標識和超載界定符組成,表明邏輯鏈路控制層要求的內部超載狀態(tài),并將由媒體訪問控制層的一些出錯條件而被啟動發(fā)送。用于擴展幀序列的延遲
36、時間。</p><p> (2)CAN2.0B通信協議分為兩種幀格式:</p><p><b> ?、?標準幀</b></p><p> 標準幀信息為11個字節(jié),包括兩部分:信息和數據部分。前3個字節(jié)為信息部分。1字節(jié)1為幀信息。第7位(FF)表示幀格式,在標準幀中,FF=0;第6位(RTR)表示幀的類型,RTR=0表示為數據幀,RTR=1
37、表示為遠程幀;DLC表示在數據幀時實際的數據長度。2字節(jié)2、3為報文識別碼,11位有效。 </p><p> 3字節(jié)4~11為數據幀的實際數據,遠程幀時無效。 </p><p><b> ?、?擴展幀</b></p><p> 1擴展幀信息為13個字節(jié),包括兩部分,信息和數據部分。前5個字節(jié)為信息部分。字節(jié)1為幀信息。第7位(FF)表示幀格
38、式,在擴展幀中,FF = 1;第6位(RTR)表示幀的類型,RTR=0表示為數據幀,RTR=1表示為遠程幀;DLC表示在數據幀時實際的數據長度。</p><p> 2字節(jié)2~5為報文識別碼,其高29位有效。</p><p> 3字節(jié)6~13為數據幀的實際數據,遠程幀時無效。</p><p> 2.3.3 CAN總線位仲裁技術特點</p><
39、p> 只要總線空閑,任何單元都可以開始發(fā)送報文。要對數據進行實時處理,就必須將數據快速傳送,這就要求數據的物理傳輸通路有較高的速度。在幾個站同時需要發(fā)送數據時,要求快速地進行總線分配。如果2個或2個以上的單元同時開始傳送報文,那么就會有總線訪問沖突。通過使用識別符的位形式仲裁可以解決這個沖突。</p><p> CAN總線以報文為單位進行數據傳送,報文的優(yōu)先級結合在11位標識符中,具有最低二進制數的標識
40、符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統設計時被確立后就不能再被更改??偩€讀取中的沖突可通過位仲裁解決。 </p><p><b> 2.4本章小結</b></p><p> 首先,CAN控制器工作于多主方式,網絡中的各節(jié)點都可根據總線訪問優(yōu)先權(取決于報文標識符)采用無損結構的逐位仲裁的方式競爭向總線發(fā)送數據,且CAN協議廢除了站地址編碼,而代之以對通信數據進行編
41、碼,這可使不同的節(jié)點同時接收到相同的數據,這些特點使得CAN總線構成的網絡各節(jié)點之間的數據通信實時性強,并且容易構成冗余結構,提高系統的可靠性和系統的靈活性。</p><p> 其次,CAN總線通過CAN控制器接口芯片TJA1050的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài),CANL端只能是低電平或懸浮狀態(tài)。</p><p> 而且,CAN具
42、有的完善的通信協議可由CAN控制器芯片及其接口芯片來實現,從而大大降低系統開發(fā)難度,縮短了開發(fā)周期。另外,與其它現場總線比較而言,CAN總線是具有通信速率高、容易實現、且性價比高等諸多特點的一種已形成國際標準的現場總線。這些也是目前 CAN總線應用于眾多領域,具有強勁的市場競爭力的重要原因。</p><p> CAN (Controller Area Network)即控制器局域網絡,屬于工業(yè)現場總線的范疇。與
43、一般的通信總線相比,CAN總線的數據通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特的設計,CAN總線越來越受到人們的重視。它在汽車領域上的應用是最廣泛的,世界上一些著名的汽車制造廠商,如BENZ(奔馳)、BMW(寶馬)、PORSCHE(保時捷)和ROLLS-ROYCE(勞斯萊斯)等都采用了CAN總線來實現汽車內部控制系統與各檢測和執(zhí)行機構間的數據通信。同時,由于CAN總線本身的特點,其應用范圍目前已不再局限于汽車行業(yè),而向
44、自動控制、航空航天、航海、過程工業(yè)、機械工業(yè)、紡織機械、農用機械、機器人、數控機床、醫(yī)療器械及傳感器等領域發(fā)展。CAN已經形成國際標準,并已被公認為幾種最有前途的現場總線之一。</p><p> 第三章 系統硬件電路設計</p><p> 3.1智能儀表系統整體硬件構成</p><p> 本文設計的智能儀表系統主要完成對直接現場模擬信號的采樣、計算、傳輸和顯示
45、,將數據和參數傳送到監(jiān)控計算機上進行實時監(jiān)控管理,并在監(jiān)控計算機中進行PID調節(jié),智能節(jié)點接收調節(jié)后的參數,即對被控對象進行控制。整個系統的工作過程如下:傳感器從現場采集數據,通過中央處理器進行轉換,轉化量程,然后送數碼管進行顯示,并通過CAN總線將數據傳送到監(jiān)控計算機進行顯示和分析,進行PID調節(jié)后的數據下傳到對應節(jié)點,控制被控對象。同時,在其它節(jié)點有數據請求的情況下,可以將數據通過CAN總線送向其它智能節(jié)點。</p>
46、<p> 根據系統要實現的功能及經濟性和靈活性的設計要求,本設計中選取STC89C52作為中央處理器,STC89C52完成傳感器數據的采集、數碼管顯示、數據發(fā)送等控制。運用獨立的CAN控制器SJAl000結合CAN總線收發(fā)器TJA1050,SJAl000是一個獨立的CAN控制器,它和以前的PCA82C200在硬件和軟件上都兼容,并且具有一系列先進的功能適合于多種應用。TJA1050負責與CAN物理層的連接,接收和發(fā)送數據。解
47、決了CAN總線雖然可連接設備數目多、傳輸距離遠、抗干擾能力強,但不能直接與計算機相連接的問題。智能節(jié)點中,微處理器由兩片單片機組成,兩片單片機之間利用串口進行通信,其中一片主要負責數據的采集和顯示,另一片負責SJAl000的初始化,并通過控制SJAl000實現數據的接收和發(fā)送等通信任務。利用兩片單片機來實現智能節(jié)點的功能,為系統的模塊化開發(fā)提供了便利。</p><p> 3.2 CAN通
48、信模塊硬件設計</p><p> 本設計中選用獨立的CAN控制器,因為獨立的CAN控制器使用上比較靈活,可以與多種類型的單片機、微型計算機的各類標準總線進行接口組合,而且在目前我國市面上很容易購買,并且性價比高。SJAl000是一種獨立的CAN控制器,主要用于移動目標和一般工業(yè)環(huán)境中的區(qū)域網絡控制。</p><p> 3.2.1 SJAl000有以下基本特性:</p>&
49、lt;p> ·引腳和電氣參數與PCA82C200獨立CAN控制器兼容。</p><p> ·具有PCA82C200模式(即默認的BasicCAN模式)。</p><p> ·有擴展的接收緩沖器64字節(jié),先進先出(FIFO)。</p><p> ·支持CAN 2.OA和CAN 2.OB協議。</p>
50、<p> ·支持11位和29位標識碼。</p><p> ·通信位速率可達1Mbps。</p><p> ·PeliCAN模式的擴展功能:可讀/寫訪問的錯誤計數寄存器;可編程的錯</p><p> 誤報警限額寄存器;最近一次錯誤代碼寄存器;對每一個CAN總線錯誤</p><p> 的中斷;有具
51、體位表示的仲裁丟失中斷;單次發(fā)送(無重發(fā));只聽模</p><p> 式(無確認、無激活的錯誤標志);支持熱插拔(軟件進行位速率檢測);</p><p> 驗收濾波器的擴展(4字節(jié)的驗收代碼,4字節(jié)的屏蔽);接收自身報文</p><p><b> (自接收請求);</b></p><p> ·24MHz
52、時鐘頻率;</p><p> ·可與不同的微處理器接口;</p><p> ·可編程的CAN輸出驅動器配置;</p><p> ·溫度適應范圍大(一40~+125℃)。</p><p> CAN核心控制塊主要是控制CAN幀的接收和發(fā)送。SJAl000的發(fā)送緩沖器可以存儲一個完整的信息(擴展的或標準的),當
53、主控制器開始一個傳送時,邏輯管理接口強迫CAN核心控制塊讀發(fā)送緩沖器中的CAN信息。當收到一個消息時,CAN核心控制塊將連續(xù)的位轉換成標準的數據存放在接收過濾器中,通過可編程的過濾器SJAl000可以判定哪條消息是被主控制器接收的。所有存放在接收過濾器中的已經接收信息被保存于接收隊列中。根據操作的模式,可以保存最大長度為64字節(jié)的信息。這使得用戶在指定系統中斷服務和中斷優(yōu)先級時更具有彈性,因為出現數據溢出的可能性己經被減小。</p
54、><p> 3.2.2 CAN總線收發(fā)器TJA1050</p><p> 通常情況下使用SJAl000獨立CAN總線控制器可以完成CAN總線的通訊任務,但是所存在的不足之處就是它的驅動能力不夠,因此需要外加一個TJA1050總線驅動芯片來彌補這一缺陷,使系統達到用戶滿意的水平。TJA1050是CAN控制器與物理總線之間的接口,它最初是為汽車中的高速應用(達1Mbps)而設計的。器件可以提供
55、對總線的差動發(fā)送和接收功能。</p><p> TJA1050的主要特性如下:</p><p> ·與IS01 1898標準完全兼容;</p><p> ·高速率(最高可達1Mbps);</p><p> · 具有抗汽車環(huán)境下的瞬間干擾及保護總線能力;</p><p>
56、3;采用斜率控制,降低射頻干擾;</p><p><b> ·過熱保護;</b></p><p> ·總線與電源及地之間的短路保護;</p><p><b> ·低電流待機模式;</b></p><p> ·未上電節(jié)點不會干擾總線;</p>
57、<p> ·總線至少可連接1lO個節(jié)點。</p><p> 引腳8(Rs)允許選擇三種不同的工作方式:高速、斜率控制和待機。在高速工作方式下,發(fā)送器輸出晶體管已經可以以盡可能快的速度啟動和關閉。在這種模式下,無需采取任何措施限制上升和下降的斜率。對于較低速度和較短的總線長度,可以用非屏蔽雙絞線或平行線做總線。為降低射頻干擾,應該限制上升和下降的斜率。上升和下降的斜率可以通過Rs引腳與同
58、地連接的電阻進行控制,斜率正比于Rs引腳上的電流輸出。</p><p> 3.2.3 微控制器STC89C52單片機</p><p> STC89C52是一個低電壓,高性能CMOS8位單片機帶有8K字節(jié)的可反復擦寫的程序存儲器(PENROM)。和512字節(jié)的存取數據存儲器(RAM),這種器件采用STC公司的高密度、不容易丟失存儲技術生產,并且能夠與MCS-51系列的單片機兼容。片內含有
59、8位中央處理器和閃爍存儲單元,有較強的功能的STC89C52單片機能夠被應用到控制領域中。</p><p><b> 引腳描述</b></p><p> VCC:電源電壓 </p><p><b> GND:地</b></p><p><b> P0口:</b>&
60、lt;/p><p> P0口是一組8位漏極開路雙向I/O口,即地址/數據總線復用口。作為輸出口時,每一個管腳都能夠驅動8個TTL電路。當“1”被寫入P0口時,每個管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問外部數據存儲器或程序存儲器時,轉換地址和數據總線復用,并在這時激活內部的上拉電阻。P0口在閃爍編程時,P0口接收指令,在程序校驗時,輸出指令,需要接電阻。</p><p><b&g
61、t; P1口:</b></p><p> P1口一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動4個TTL電路。對端口寫“1”,通過內部的電阻把端口拉到高電平,此時可作為輸入口。因為內部有電阻,某個引腳被外部信號拉低時輸出一個電流。閃爍編程時和程序校驗時,P1口接收低8位地址。</p><p><b> P2口:</b></p>
62、;<p> P2口是一個內部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動4個TTL電路。對端口寫“1”,通過內部的電阻把端口拉到高電平,此時,可作為輸入口。因為內部有電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數據存儲器時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器時,P2口線上的內容在整個運行期間不變。閃爍編程或校驗時,P2口接收高位地址和其它控制信號。&
63、lt;/p><p><b> P3口:</b></p><p> P3口是一組帶有內部電阻的8位雙向I/O口,P3口輸出緩沖故可驅動4個TTL電路。對P3口寫如“1”時,它們被內部電阻拉到高電平并可作為輸入端時,被外部拉低的P3口將用電阻輸出電流。</p><p> P3口除了作為一般的I/O口外,更重要的用途是它的第二功能,如下表所示:&l
64、t;/p><p> P3口還接收一些用于閃爍存儲器編程和程序校驗的控制信號。</p><p><b> RST:</b></p><p> 復位輸入。當震蕩器工作時,RET引腳出現兩個機器周期以上的高電平將使單片機復位。</p><p><b> ALE/:</b></p><
65、;p> 當訪問外部程序存儲器或數據存儲器時,ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE以時鐘震蕩頻率的1/16輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。如果必要,可對特殊寄存器區(qū)中的8EH單元的D0位置禁止ALE操作。這個位置后只有一條MOVX和MOVC指令ALE才會被應用。此外,這個
66、引腳會微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。</p><p><b> PSEN:</b></p><p> 程序儲存允許輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器讀取指令時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器時,這兩次有效的PSEN 信號不出現。</p><p&g
67、t;<b> EA/VPP:</b></p><p> 外部訪問允許。欲使中央處理器僅訪問外部程序存儲器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復位時內部會鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內部程序存儲器中的指令。閃爍存儲器編程時,該引腳加上+12V的編程允許電壓VPP,當然這必須是該器件是使用12V編程電壓VPP。</p><p&g
68、t; XTAL1:震蕩器反相放大器及內部時鐘發(fā)生器的輸入端。</p><p> XTAL2:震蕩器反相放大器的輸出端。</p><p> 3.2.4 數字溫度傳感器DS18B20</p><p> DSI8B20是DALLAS公司的最新單線數字溫度傳感器,它體積小、經濟實惠。是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨特而且經濟的特點,使用戶可
69、輕松地組建傳感器網絡,為測量系統的構建引入全新概念。它的測量溫度范圍為-55~+125℃?,F場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環(huán)境的現場溫度測量,如環(huán)境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3~5.5 V的電壓范圍,使系統設計更靈活、方便。而且新一代產品更便宜,體積更小。DSI8B20可以程序設定9~12位的分辨率,精度為±0.5℃??梢赃x擇更小的封
70、裝方式,更寬的電壓適用范圍。分辨率設定及用戶設定的報警溫度存儲在EPROM中,掉電后依然保存。DS18B20的性能是新一代產品中最好的,性能價格比也非常出色,繼“一線總線”的早期產品后,DSI8B20開辟了溫度傳感器技術的新概念。本次設計CAN總線數據通信的溫度采集就由DSI8B20完成。將DSI8B20的GND腳接地,VDD腳接高電平,而單總線DQ腳接單片機的外部中斷1腳,具體的采集電路如圖所示。</p><p&g
71、t;<b> 溫度采集電路</b></p><p> 3.2.5 八段數碼管 </p><p> LED(Light Editing Diode)是發(fā)光二極管的縮寫。LED數碼管里面有8只發(fā)光二極管,分別記著a、b、c、d、e、f、g、dp,其中dp為小數點,中間的是公共端(COM)。市面上用的數碼管有兩種:共陽極與共陰極。共陽數碼管是指將所有發(fā)光二極管的陽極接
72、到一起形成公共陽極(COM)的數碼管,共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數碼管,共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。原理圖如下圖所示:</p&
73、gt;<p> 3.2.6 74HC595 </p><p> 74HC595是一款漏極開路輸出的COMS移位寄存器,輸出端口為可控制的三態(tài)輸出端,亦能串行輸出控制下一級級聯芯片。</p><p><b> 特點:</b></p><p> (1)高速移位時鐘頻率Fmax>25Mhz
74、</p><p> ?。?)標準串行(SPI)接口</p><p> ?。?)COMS串行輸出,可用于多個設備的級聯</p><p> 74HC595電路圖如下圖所示:</p><p><b> 3.3 本章小結</b></p><p> 從圖中可以看出,電路主要由4部分組成:微控制器89C
75、52、獨立CAN通信控制器SJAl000、CAN總線收發(fā)器TJA1050和數碼管顯示。微處理器89C52負責SJAl000的初始化,并通過控制SJAl000實現數據的接收和發(fā)送等通信任務。電路中SJAl000的AD0~AD7連接到89C52的P0口,CS連接到89C52的P2.0。P2.0為低電平時,CPU片外存儲器地址可選中SJA I 000,CPU通過這些地址可對SJA1000執(zhí)行相應的讀/寫操作。SJAl000的PAD、WR、AL
76、E分別與89C52的對應腳相連,J,Ⅳr接89C52的INTO,89C52也可以通過中斷方式訪問SJAl000。</p><p> 第四章 CAN數據通信接口模塊軟件設計</p><p> 4.1 CAN總線數據通信程序</p><p> 通信接口模塊程序主要包括三部分:初始化子程序、發(fā)送子程序和接收子程序。初始化程序主要是通過CAN控制器控制段中的寄存器寫入
77、控制字,從而確定CAN控制器的工作方式等。有三種方式進入初始化程序:一是上電復位,二是硬件復位;三是軟件復位,即在運行期間通過給CAN控制器發(fā)一個復位請求,置復位請求位為1。</p><p> CAN節(jié)點的主函數模塊完成的工作是:根據接收到的控制命令消息的數據域信息幀代號,做出不同的處理,例如對節(jié)點進行初始化,從CAN總線接收和發(fā)送消息,進行控制命令中的數字輸出等。</p><p>
78、CAN總線收發(fā)主程序:</p><p> #include <STC89C51.h></p><p> #include <stdio.h></p><p> #include <intrins.h></p><p> #include <can1.h></p><p
79、> unsigned char code numtab[16]={0x24,0x6F,0xE0,0x62,0x2B,0x32,0x30,0x67,0x20,0x22,0x21,0x38,0xB4,0x68,0xB0,0xB1};</p><p> void delayms(unsigned int t);</p><p> /**************************
80、*********************** </p><p> Function: main()// 函數名稱 </p><p> Description: // 函數功能、性能等的描述 </p><p> Calls: delayms()// 被本函數調用的函數清單 </p><p> C
81、alled By: // 調用本函數的函數清單 </p><p> Table Accessed: // 被訪問的表(此項僅對于牽扯到數據庫操作的程序)</p><p> Table Updated: // 被修改的表(此項僅對于牽扯到數據庫操作的程序)</p><p> Input: // 輸入參數說明,包括每個參數的作
82、</p><p> // 用、取值說明及參數間關系。 </p><p> Output: // 對輸出參數的說明。 </p><p> Return: // 函數返回值的說明 </p><p> Others: // 其它說明 </p><p> ******
83、*******************************************/ </p><p> void main()</p><p><b> {</b></p><p> unsigned char i;</p><p> WDT_CONTR= 0x00; //關閉看門狗</p>
84、<p> DISP_PORT = numtab[15]; //顯示F,表示發(fā)送</p><p> delayms(200);</p><p> TestCan();</p><p><b> while(1)</b></p><p><b> {</b>&l
85、t;/p><p> DISP_PORT = numtab[0]; //顯示0</p><p> delayms(50);</p><p> DISP_PORT = numtab[0]; //顯示1</p><p> delayms(50);</p><p> for(i=0;i<16;i++)
86、</p><p><b> {</b></p><p> DISP_PORT = numtab[i]; //循環(huán)顯示0~F</p><p> delayms(50);</p><p><b> }</b></p><p><b> }</b>
87、</p><p><b> }</b></p><p> /************************************************* </p><p> Function: delayms()// 函數名稱 </p><p> Description: delay f
88、unction// 函數功能、性能等的描述 </p><p> Calls: // 被本函數調用的函數清單 </p><p> Called By: // 調用本函數的函數清單 </p><p> Table Accessed: // 被訪問的表(此項僅對于牽扯到數據庫操作的程序)</p><p> T
89、able Updated: // 被修改的表(此項僅對于牽扯到數據庫操作的程序)</p><p> Input: t// 輸入參數說明,包括每個參數的作 </p><p> // 用、取值說明及參數間關系。 </p><p> Output: // 對輸出參數的說明。 </p><p> Re
90、turn: // 函數返回值的說明 </p><p> Others: // 其它說明 </p><p> *************************************************/ </p><p> void delayms(unsigned int t)</p><p>&
91、lt;b> {</b></p><p> unsigned int i,j;</p><p> for(i=0;i<t;i++)</p><p> for(j=0;j<1000;j++)</p><p><b> {;}</b></p><p><b&
92、gt; }</b></p><p> 4.2 DS18B20 溫度采集程序</p><p> 本系統采用STC公司生產STC89C52單片機作為溫度數據采集和傳輸的主控芯片,溫度傳感器采用單總線方式的集成數字溫度傳感器DS18B20。</p><p> DS18B20 溫度讀取函數參考步驟:</p><p> DS18B
93、20 開始轉換:</p><p> 1. DS18B20 復位。</p><p> 2. 寫入跳過 ROM 的字節(jié)命令, 0xCC 。</p><p> 3. 寫入開始轉換的功能命令, 0x44 。</p><p> 4. 延遲大約 750~900 毫秒</p><p> DS18B20 讀暫存數據:<
94、/p><p> 1.DS18B20 復位。</p><p> 2. 寫入跳過 ROM 的字節(jié)命令, 0xCC 。</p><p> 3. 寫入讀暫存的功能命令, 0xee 。</p><p> 4. 讀入第 0 個字節(jié) LS Byte ,轉換結果的低八位。</p><p> 5. 讀入第 1 個字節(jié) MS Byt
95、e ,轉換結果的高八位。</p><p> 6.DS18B20 復位,表示讀取暫存結束。</p><p> DS18B20 溫度讀取函數參考函數:</p><p> sbit DQ=P2^2;//18B20的接口</p><p> uint wendu;//溫度值</p><p> /************
96、************18b20的程序************************/</p><p> void delay_18B20(unsigned int i)//延時1微秒</p><p> { while(i--);}</p><p> void ds1820rst()/*ds1820復位*/</p><p>
97、 { uchar x=0;</p><p> DQ = 1; //DQ復位</p><p> delay_18B20(4); //延時</p><p> DQ = 0; //DQ拉低</p><p> delay_18B20(100); //精確延時大于480us</p><p&
98、gt; DQ = 1; //拉高</p><p> delay_18B20(40); </p><p><b> } </b></p><p> uchar ds1820rd()/*讀數據*/</p><p><b> {</b></p><p>
99、 uchar i=0;</p><p> uchar dat = 0;</p><p> for (i=8;i>0;i--)</p><p> { DQ = 0; //給脈沖信號</p><p><b> dat>>=1;</b></p><p> DQ = 1;
100、 //給脈沖信號</p><p><b> if(DQ)</b></p><p> dat|=0x80;</p><p> delay_18B20(10);</p><p><b> }</b></p><p> return(dat);</p>&l
101、t;p><b> }</b></p><p> void ds1820wr(uchar wdata)/*寫數據*/</p><p><b> {</b></p><p> uchar i=0;</p><p> for (i=8; i>0; i--)</p>&l
102、t;p><b> { </b></p><p> DQ = 0;DQ = wdata&0x01;</p><p> delay_18B20(10);DQ = 1;</p><p> wdata>>=1;</p><p><b> }</b></p>
103、<p><b> }</b></p><p> uchar read_temp()/*讀取溫度值并轉換*/</p><p><b> {</b></p><p> uchar a,b,shi,ge;</p><p> ds1820rst(); </p>&l
104、t;p> ds1820wr(0xcc);//*跳過讀序列號*/</p><p> ds1820wr(0x44);//*啟動溫度轉換*/</p><p> ds1820rst(); </p><p> ds1820wr(0xcc);//*跳過讀序列號*/ </p><p> ds1820wr(0xbe);//*讀取溫度*/
105、 </p><p> a=ds1820rd();</p><p> b=ds1820rd();</p><p><b> wendu=b;</b></p><p> wendu<<=8;</p><p> wendu=wendu|a;</p><p>
106、 wendu=wendu*(0.625);//溫度值擴大10倍,精確到1位小數</p><p> shi=wendu%1000/100;</p><p> ge=wendu%100/10;</p><p><b> }</b></p><p> 4.3 74HC595驅動數碼管顯示程序</p>&
107、lt;p> 74HC595是具有8位移位寄存器和一個存儲器,三態(tài)輸出功能。 移位寄存器和存儲器是分別的時鐘。數據在SCHcp的上升沿輸入,在STcp的上升沿進入的存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。 移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。
108、</p><p> 74HC595驅動數碼管顯示程序:</p><p> #include<reg52.h></p><p> #include <intrins.h></p><p> #define uint unsigned int</p><p> #define uchar
109、unsigned char</p><p> sbit XSDAT=P0^0; //數據</p><p> sbit XSCLK=P0^1; //時鐘</p><p> sbit GW=P0^2;</p><p> int count=0;</p><p> code uchar
110、TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p> uint l=0,h=0,tt=0,d=0;</p><p> void delay(uint z) //延時函數</p><p> { uint x,y;
111、</p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> static void WR_595(uchar data num2 )//寫</p><p><b&g
112、t; {</b></p><p> uchar count1; </p><p> for(count1=0;count1<=7;count1++)</p><p><b> {</b></p><p> if((num2&0x80)==0x80) //*最高位為1,則向SDAT
113、A_595發(fā)送1*/</p><p> XSDAT=1; //*發(fā)出數據的最高位*/</p><p><b> else </b></p><p> XSDAT=0; </p><p> num2<<=1; //*右移位*/</p><p&g
114、t; XSCLK=0; //*產生上生沿*/</p><p><b> XSCLK=1; </b></p><p><b> } </b></p><p><b> }</b></p><p> void disp(void)</p>
115、<p><b> { </b></p><p> WR_595(TAB[1]);//顯示十位小時數碼管的位 ,如果顯示顛倒可以調整位選</p><p> WR_595(TAB[2]);//顯示個位小時數碼管的位</p><p><b> GW=0;</b></p><p>
116、<b> _nop_();</b></p><p><b> _nop_();</b></p><p> GW=1; /*上升沿鎖存數據*/</p><p><b> }</b></p><p> void main()</p><p>&l
117、t;b> { </b></p><p><b> while(1)</b></p><p> {disp();</p><p><b> delay(1);</b></p><p><b> }</b></p><
118、;p><b> }</b></p><p><b> 結論</b></p><p> 論文在闡述并研究了自動控制儀表的變遷和CAN現場總線協議規(guī)則的基礎上,完成了基于CAN協議的CAN通訊,CAN通訊的硬件和軟件設計。成功地把SJAl000 CAN控制器應用于CAN通訊中,實現了現場信號的采集、數字信號在CAN總線上的傳輸等功能。在軟
119、硬件設計中還采用了一系列的抗干擾措施,使得這個系統可適應較為惡劣的工作環(huán)境。</p><p> 基于CAN協議的現場總線儀表與傳統的儀表相比,在功能上發(fā)生了飛躍,即</p><p> 實現了雙向數字通信的功能,其可靠性高、穩(wěn)定性好、抗干擾能力強、通信速率</p><p> 高、維護成本低,并且具有開放性、實時性,在自動控制領域得到較廣泛的應用。</p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于can總線的溫度測控系統的設計 畢業(yè)論文
- 帶CAN總線的智能溫度測量儀表的研制——基于CAN總線的通信系統的研究.pdf
- 基于CAN總線的溫度計量儀表管理控制系統的網絡開發(fā).pdf
- 基于CAN總線的汽車儀表研究.pdf
- 電廠溫度儀表自動校驗的研究.pdf
- 基于神經網絡的智能溫度儀表的研制.pdf
- 基于can總線的溫度檢測系統畢業(yè)設計
- 基于can總線的汽車儀表設計【畢業(yè)優(yōu)秀答辯資料】【全套】
- 溫度監(jiān)測系統虛擬儀表畢業(yè)論文
- 基于CAN總線的溫度控制系統研究.pdf
- 基于can總線的樓宇自動化系統設計畢業(yè)論文
- 基于CAN總線的溫度監(jiān)控系統.pdf
- 基于CAN總線的智能儀表的研究.pdf
- 基于CAN協議的現場總線儀表的設計.pdf
- 基于CAN總線的智能溫度變送器.pdf
- 基于CAN總線的汽車儀表設計開題報告.doc
- [cad圖紙全套]基于can總線的汽車儀表設計
- 基于CAN總線的汽車數字儀表系統設計.pdf
- 基于CAN總線的汽車智能儀表設計.pdf
- 基于can總線的電梯智能控制系統呼梯控制器設計與開發(fā)——畢業(yè)論文
評論
0/150
提交評論