基于CAN總線(xiàn)的智能家居控制畢業(yè)論文.doc_第1頁(yè)
基于CAN總線(xiàn)的智能家居控制畢業(yè)論文.doc_第2頁(yè)
基于CAN總線(xiàn)的智能家居控制畢業(yè)論文.doc_第3頁(yè)
基于CAN總線(xiàn)的智能家居控制畢業(yè)論文.doc_第4頁(yè)
基于CAN總線(xiàn)的智能家居控制畢業(yè)論文.doc_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于CAN總線(xiàn)的智能家居控制畢業(yè)論文目 錄引言11 課題研究?jī)?nèi)容21.1 課題背景21.2 課題意義22 系統(tǒng)設(shè)計(jì)概述32.1 設(shè)計(jì)任務(wù)32.2 系統(tǒng)設(shè)計(jì)原理32.3 系統(tǒng)設(shè)計(jì)方案32.4 系統(tǒng)可行性分析43 CAN總線(xiàn)概述63.1 CAN總線(xiàn)簡(jiǎn)介63.2 CAN總線(xiàn)幀類(lèi)型63.2.1 數(shù)據(jù)幀63.2.2 遠(yuǎn)程幀73.2.3 錯(cuò)誤幀83.2.4 過(guò)載幀83.3 CAN報(bào)文過(guò)濾83.4 CAN錯(cuò)誤處理83.4.1 錯(cuò)誤檢測(cè)83.4.2 錯(cuò)誤標(biāo)定94 硬件電路設(shè)計(jì)104.1 單片機(jī)最小系統(tǒng)104.1.1 單片機(jī)STC89C52RC104.1.2 最小系統(tǒng)電路114.2 CAN總線(xiàn)模塊124.2.1 CAN控制器SJA1000124.2.2 CAN收發(fā)器TJA1050174.2.3 CAN模塊電路174.3 串口通信184.3.1 電平轉(zhuǎn)換芯片MAX232184.3.2 串口通信電路194.4 溫濕度檢測(cè)模塊194.4.1 溫度傳感器DS18B20194.4.2 濕度傳感器DHT11194.4.3 溫濕度檢測(cè)電路204.5 煙霧檢測(cè)模塊204.6 紅外人體感應(yīng)模塊214.7 液晶顯示模塊214.8 報(bào)警電路224.9 按鍵電路225 系統(tǒng)軟件設(shè)計(jì)235.1 軟件整體設(shè)計(jì)235.2 CAN通信程序設(shè)計(jì)245.3 RS-232通信程序設(shè)計(jì)265.4 LCD1602液晶顯示程序設(shè)計(jì)275.5 按鍵設(shè)定值程序設(shè)計(jì)295.6 溫度采集程序設(shè)計(jì)295.7 濕度采集程序設(shè)計(jì)315.8 應(yīng)用軟件平臺(tái)簡(jiǎn)介335.8.1 Keil C51335.8.2 Visual Basic 6.0346 系統(tǒng)調(diào)試376.1 硬件電路調(diào)試376.2 系統(tǒng)聯(lián)調(diào)377 總結(jié)和展望41謝 辭42參考文獻(xiàn)43附 錄44 第 57 頁(yè) 共 57 頁(yè)引言科技的進(jìn)步,帶來(lái)經(jīng)濟(jì)飛速發(fā)展的同時(shí),也給人們的生活帶來(lái)無(wú)限的驚奇。不斷更新的生活方式,使得越來(lái)越多的人追求對(duì)生活的舒適度和享受度。智能家居作為新生力量呼之欲出,自然地走進(jìn)我們的生活,隨之,引領(lǐng)新一代的數(shù)字家庭生活。通過(guò)分析現(xiàn)有的智能家居解決方案,智能家居包括四個(gè)基本的功能模塊:家庭對(duì)外通信模塊、家庭網(wǎng)關(guān)模塊、家庭安全防范模塊、家庭設(shè)備自動(dòng)控制模塊。本課題提取家庭安全防范模塊研究,設(shè)計(jì)基于CAN總線(xiàn)的智能家居控制系統(tǒng)。安全防范就是保障人們?cè)谏a(chǎn)、生活和一切社會(huì)活動(dòng)中人身生命、財(cái)產(chǎn)和生產(chǎn)、生活設(shè)施不受侵犯,防止侵害行為的總稱(chēng)。智能家居在滿(mǎn)足人們舒適、方便生活的同時(shí),也要求為家庭提供安全防范方面的保障。它包含的內(nèi)容有防止入侵、盜竊、破壞、爆炸等,它的原則是“以防為主,打防并舉”,安全防范工作貫徹“人防、技防、物防”相結(jié)合的方針政策。因此,智能家居將家庭安全防范模塊定義為其四個(gè)基本要素之一。課題將安全防范的內(nèi)容分為兩部分,分別是家庭內(nèi)部環(huán)境安全、家庭對(duì)外非法入侵預(yù)防,這兩方面都體現(xiàn)出現(xiàn)代技術(shù)在智能家居中的應(yīng)用。在本課題中,由于條件限制,并沒(méi)有對(duì)家庭安防模塊進(jìn)行實(shí)驗(yàn),對(duì)于家庭內(nèi)部環(huán)境安全,采用傳感器檢測(cè)室內(nèi)的溫濕度和煙霧濃度。對(duì)于家庭對(duì)外非法入侵預(yù)防,采用人體移動(dòng)紅外檢測(cè)。本課題采用CAN總線(xiàn)設(shè)計(jì)智能家居組網(wǎng)系統(tǒng),可以設(shè)計(jì)多路CAN智能節(jié)點(diǎn),構(gòu)成分布式控制系統(tǒng),實(shí)現(xiàn)同時(shí)對(duì)多個(gè)居室的環(huán)境狀況進(jìn)行監(jiān)控。CAN總線(xiàn)的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光導(dǎo)纖維。因此,CAN總線(xiàn)在智能家居系統(tǒng)中得到廣泛應(yīng)用。1 課題研究?jī)?nèi)容1.1 課題背景二十一世紀(jì)是信息技術(shù)高速發(fā)展的時(shí)代,社會(huì)的信息化喚起了人們對(duì)住宅智能化及家居智能化的要求,智能住宅己成為中國(guó)房地產(chǎn)市場(chǎng)的主流。計(jì)算機(jī)行業(yè)和家電行業(yè)、電信行業(yè)、安防監(jiān)控行業(yè)的互相滲透、互相融合,使信息時(shí)代的未來(lái)家居生活逐步成為現(xiàn)實(shí)。建設(shè)部要求根據(jù)不同消費(fèi)者的需要,推動(dòng)家居數(shù)字化、建筑智能化,可見(jiàn)中國(guó)智能家居市場(chǎng)潛力巨大。智能家居安防系統(tǒng)是集信息技術(shù)、網(wǎng)絡(luò)技術(shù)、傳感技術(shù)、無(wú)線(xiàn)電技術(shù)、模糊控制技術(shù)等多種技術(shù)為一體的綜合應(yīng)用。智能家居安防系統(tǒng)具有使用方便、安裝簡(jiǎn)單、準(zhǔn)確及時(shí)的特點(diǎn),非常適合居家安全防范措施的實(shí)施,它可以檢測(cè)居室內(nèi)的煤氣的泄漏情況、是否有火災(zāi)發(fā)生、是否發(fā)生水管爆裂、是否有小偷入室盜竊等危險(xiǎn)的情況,并自動(dòng)采取一定措施盡量把損失降到最小值,還以一定的無(wú)線(xiàn)方式去通知居室主人,讓主人可以采取一定的措施去處理這種不好事件,這樣就可以自動(dòng)地與人為地去采取措施,去做到最好的安防。因此,隨著人們生活水平的不斷提高,白天離家去上班的人越來(lái)越多,這系統(tǒng)也會(huì)越來(lái)越受到青睬,加上目前智能安防系統(tǒng)的設(shè)計(jì)領(lǐng)域還很不完善,可以借以開(kāi)發(fā)的無(wú)線(xiàn)網(wǎng)絡(luò)條件也越來(lái)越成熟,把這方面的設(shè)計(jì)產(chǎn)品化,將會(huì)有很廣闊的市場(chǎng)。1.2 課題意義 目前國(guó)內(nèi)越來(lái)越多智能化的商品已經(jīng)進(jìn)入到人們的生活,特別是在商品房小區(qū)里,人們都知道“安全第一”,所以家居安防的第一要義就是要保證家居的安全,給家居主人一些已經(jīng)發(fā)生了的危險(xiǎn)情況的損失降到最低的程度。據(jù)預(yù)測(cè),今后幾年智能家居市場(chǎng)會(huì)進(jìn)入一個(gè)行業(yè)整合階段,最終可能會(huì)出現(xiàn)一些規(guī)模較大、品牌影響較好的智能家居生產(chǎn)廠家。從產(chǎn)品角度來(lái)講,以后的智能家居產(chǎn)品會(huì)朝著實(shí)用化、傻瓜化(操作簡(jiǎn)單)、模塊化的方向發(fā)展,所謂模塊化就是產(chǎn)品開(kāi)發(fā)商把智能家居產(chǎn)品做成模塊化的,可以根據(jù)用戶(hù)的實(shí)際需求任意搭配。這樣不僅可滿(mǎn)足不同層次用戶(hù)的需要,也可以省去不必要的端口模塊的費(fèi)用浪費(fèi)。目前國(guó)內(nèi)已在經(jīng)濟(jì)發(fā)達(dá)地區(qū)如北京、深圳、廣州、上海等地建立了一批智能住宅小區(qū),而且正快速地向其他地區(qū)輻射,建設(shè)部已將智能化住宅小區(qū)列為國(guó)家重點(diǎn)發(fā)展方向。預(yù)計(jì)未來(lái)5到10年可以形成相當(dāng)規(guī)模的市場(chǎng)容量。屆時(shí),智能住宅的發(fā)展還將帶動(dòng)信息家電、物業(yè)管理等相關(guān)行業(yè)的發(fā)展。所以,智能家居的發(fā)展前景非常地好,且技術(shù)的研究還有很大的空間。2 系統(tǒng)設(shè)計(jì)概述2.1 設(shè)計(jì)任務(wù)設(shè)計(jì)多路CAN總線(xiàn)節(jié)點(diǎn)檢測(cè)室內(nèi)溫度濕度,火情盜情等參數(shù),發(fā)至PC機(jī)記錄和監(jiān)控,并有報(bào)警功能,PC 機(jī)可查詢(xún)當(dāng)前記錄和歷史記錄。系統(tǒng)主要由三部分組成:上位監(jiān)控計(jì)算機(jī)、CAN-RS232總線(xiàn)協(xié)議轉(zhuǎn)換器和CAN總線(xiàn)智能節(jié)點(diǎn)。設(shè)計(jì)的具體內(nèi)容:(1)設(shè)計(jì)CAN-RS232總線(xiàn)協(xié)議轉(zhuǎn)換器,把CAN報(bào)文儲(chǔ)存并通過(guò)串口轉(zhuǎn)發(fā)給上位監(jiān)控計(jì)算機(jī)。(2)設(shè)計(jì)CAN總線(xiàn)智能節(jié)點(diǎn),包括四個(gè)部分:?jiǎn)纹瑱C(jī)及其外圍電路、CAN總線(xiàn)模塊、數(shù)據(jù)傳輸模塊和傳感器檢測(cè)模塊(負(fù)責(zé)對(duì)環(huán)境參數(shù)的檢測(cè))。(3)系統(tǒng)軟件設(shè)計(jì),包括上位機(jī)監(jiān)控軟件設(shè)計(jì)、CAN-RS232協(xié)議轉(zhuǎn)換程序設(shè)計(jì)、CAN總線(xiàn)通信程序設(shè)計(jì)、數(shù)據(jù)采集程序設(shè)計(jì)以及其它控制程序。2.2 系統(tǒng)設(shè)計(jì)原理首先,整個(gè)網(wǎng)絡(luò)系統(tǒng)通過(guò)CAN總線(xiàn)連接起來(lái)。CAN智能節(jié)點(diǎn)通過(guò)各傳感器模塊主動(dòng)巡回檢測(cè)家居的當(dāng)前環(huán)境狀況,把采集到的數(shù)據(jù)通過(guò)CAN總線(xiàn)發(fā)至CAN-RS232協(xié)議轉(zhuǎn)換器,再通過(guò)串口把數(shù)據(jù)發(fā)送到上位機(jī),上位機(jī)負(fù)責(zé)對(duì)采集到的數(shù)據(jù)進(jìn)行保存、顯示和管理。當(dāng)檢測(cè)到的環(huán)境信息意味著居家有危險(xiǎn)時(shí),下位機(jī)和上位機(jī)同時(shí)發(fā)出報(bào)警信號(hào)??紤]到季節(jié)的變化,溫濕度的報(bào)警上下限可以在CAN-RS232協(xié)議轉(zhuǎn)換器節(jié)點(diǎn)通過(guò)按鍵和LCD1602設(shè)定,然后發(fā)送至各個(gè)CAN智能節(jié)點(diǎn)。2.3 系統(tǒng)設(shè)計(jì)方案上位監(jiān)控計(jì)算機(jī)CAN-RS232總線(xiàn)協(xié)議轉(zhuǎn)換器CAN智能節(jié)點(diǎn)1CAN智能節(jié)點(diǎn)2RS232CAN總線(xiàn)圖2.1 系統(tǒng)整體結(jié)構(gòu)圖該系統(tǒng)結(jié)構(gòu)由上位監(jiān)控計(jì)算機(jī)、CAN-RS232總線(xiàn)協(xié)議轉(zhuǎn)換器和CAN智能節(jié)點(diǎn)等三部分構(gòu)成??偩€(xiàn)兩端各有加一個(gè)120歐的電阻,對(duì)匹配總線(xiàn)阻抗起著相當(dāng)重要的作用,將大大提高數(shù)據(jù)通信的抗干擾能力。上位監(jiān)控計(jì)算機(jī)及監(jiān)控軟件組成該系統(tǒng)的監(jiān)控層,主要負(fù)責(zé)對(duì)系統(tǒng)數(shù)據(jù)的接收與管理、控制命令的發(fā)送以及各單元環(huán)境參數(shù)實(shí)時(shí)顯示。單片機(jī)LED指示LCD1602按鍵電路CAN控制器SJA1000CAN收發(fā)器TJA1050電平轉(zhuǎn)換MAX232RS232CAN總線(xiàn)圖2.2 C AN-RS232協(xié)議轉(zhuǎn)換器結(jié)構(gòu)圖LED指示模塊用于指示這個(gè)模塊的運(yùn)行情況,便于管理和調(diào)試。按鍵和LCD1602用于設(shè)定溫濕度的上下限并顯示,設(shè)定之后通過(guò)CAN總線(xiàn)發(fā)送到各個(gè)智能節(jié)點(diǎn)。單片機(jī)溫濕度檢測(cè)模塊紅外檢測(cè)模塊煙霧檢測(cè)模塊CAN總線(xiàn)模塊報(bào)警電路CAN總線(xiàn) 圖2.3 CAN智能節(jié)點(diǎn)結(jié)構(gòu)圖單片機(jī)通過(guò)各傳感器采集環(huán)境信息,按CAN規(guī)范規(guī)定的格式將其寫(xiě)入CAN控制器的發(fā)送緩沖區(qū),并啟動(dòng)發(fā)送命令,把數(shù)據(jù)發(fā)送到CAN總線(xiàn)上。對(duì)于接收過(guò)程,CAN總線(xiàn)上自動(dòng)接收數(shù)據(jù),并經(jīng)過(guò)濾后存人CAN接收緩沖區(qū),向單片機(jī)發(fā)出中斷請(qǐng)求,此時(shí)單片機(jī)可從CAN接收緩沖區(qū)讀取要接收的數(shù)據(jù)。2.4 系統(tǒng)可行性分析CAN總線(xiàn)通信是本系統(tǒng)需要解決的關(guān)鍵問(wèn)題,考慮到整個(gè)系統(tǒng)的可靠性,并結(jié)合考慮成本,決定采用CAN總線(xiàn)模塊,此模塊主要包括CAN總線(xiàn)控制器SJA1000和CAN總線(xiàn)收發(fā)器TJA1050。經(jīng)過(guò)測(cè)試,CAN模塊工作穩(wěn)定可靠。在傳感器的選擇上以方便使用、功率低、準(zhǔn)確性高、實(shí)用性強(qiáng)為出發(fā)點(diǎn)去考慮,采用以下傳感器:DS18B20、DHT11、紅外人體感應(yīng)模塊、煙霧傳感器MQ-2。其他的器件均采用經(jīng)濟(jì)常用的LCD1602、蜂鳴器等。3 CAN總線(xiàn)概述3.1 CAN總線(xiàn)簡(jiǎn)介控制器局域網(wǎng) CAN 為串行通訊協(xié)議,能有效地支持具有很高安全等級(jí)的分布實(shí)時(shí)控制。CAN 的應(yīng)用范圍很廣,從高速的網(wǎng)絡(luò)到低價(jià)位的多路接線(xiàn)都可以使用 CAN。在汽車(chē)電子行業(yè)里,使用 CAN 連接發(fā)動(dòng)機(jī)控制單元、傳感器、防剎車(chē)系統(tǒng)、等等,其傳輸速度可達(dá)1 Mbit/s。同時(shí),可以將CAN安裝在卡車(chē)本體的電子控制系統(tǒng)里,諸如車(chē)燈組、電氣車(chē)窗等等,用以代替接線(xiàn)配線(xiàn)裝置。根據(jù) ISO/OSI 參考模型,CAN總線(xiàn)由數(shù)據(jù)鏈路層和物理層組成,功能由CAN控制器來(lái)實(shí)現(xiàn)。數(shù)據(jù)鏈路層包括邏輯鏈路控制LLC子層和介質(zhì)訪問(wèn)控制MAC子層,邏輯鏈路控制子層 (LLC)的作用范圍如下:為遠(yuǎn)程數(shù)據(jù)請(qǐng)求以及數(shù)據(jù)傳輸提供服務(wù);確定由實(shí)際要使用的LLC 子層接收哪一個(gè)報(bào)文;為恢復(fù)管理和過(guò)載通知提供手段。MAC子層的作用主要是傳送規(guī)則,包括控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯(cuò)誤檢測(cè)、出錯(cuò)標(biāo)定、故障界定??偩€(xiàn)上什么時(shí)候開(kāi)始發(fā)送新報(bào)文,什么時(shí)候開(kāi)始接收?qǐng)?bào)文,均在MAC子層里確定。位定時(shí)的一些普通功能也可以看作是 MAC子層的一部分。理所當(dāng)然,MAC子層的修改是受到限制的。物理層的作用是在不同節(jié)點(diǎn)之間根據(jù)所有的電氣屬性進(jìn)行位的實(shí)際傳輸。同一網(wǎng)絡(luò)的物理層對(duì)于所有的節(jié)點(diǎn)當(dāng)然是相同的。盡管如此,在選擇物理層方面還是很自由的,物理通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光導(dǎo)纖維。總線(xiàn)可以有兩個(gè)互補(bǔ)的邏輯值之一:“顯性”或“隱性”。在“顯性”和“隱性”位同時(shí)傳送期間,總線(xiàn)值將是“顯性”。例如,在實(shí)現(xiàn)線(xiàn)與時(shí),“顯性”代表一個(gè)邏輯“0”,“隱性”代表邏輯“1”。3.2 CAN總線(xiàn)幀類(lèi)型CAN總線(xiàn)有兩種不同的幀格式,不同之處為識(shí)別符的長(zhǎng)度不同:具有11位識(shí)別符的幀稱(chēng)之為標(biāo)準(zhǔn)幀,含有29位識(shí)別符的幀為擴(kuò)展幀。本課題使用擴(kuò)展幀進(jìn)行通信,因此,只對(duì)擴(kuò)展幀進(jìn)行介紹。CAN報(bào)文傳輸由以下4個(gè)不同的幀類(lèi)型所表示和控制: 數(shù)據(jù)幀:數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌鳌?遠(yuǎn)程幀:總線(xiàn)單元發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀。 錯(cuò)誤幀:任何單元檢測(cè)到總線(xiàn)錯(cuò)誤就發(fā)出錯(cuò)誤幀。 過(guò)載幀:過(guò)載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。 3.2.1 數(shù)據(jù)幀數(shù)據(jù)幀由7個(gè)不同的位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)尾。數(shù)據(jù)場(chǎng)的長(zhǎng)度可以為0 。幀起始:幀起始(SOF)標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,僅由一個(gè)“顯性”位組成。只在總線(xiàn)空閑時(shí)才允許任何節(jié)點(diǎn)開(kāi)始發(fā)送(信號(hào))。仲裁場(chǎng):擴(kuò)展格式里,仲裁場(chǎng)包括 29位識(shí)別符、SRR位、IDE 位、RTR位。其識(shí)別符由 ID-28. ID-0,包含兩個(gè)部分:11位基本ID、18位擴(kuò)展ID?;綢D按 ID-28 到ID-18 的順序發(fā)送。它相當(dāng)于標(biāo)準(zhǔn)識(shí)別符的格式。基本 ID定義擴(kuò)展幀的基本優(yōu)先權(quán)。擴(kuò)展ID包括18位。它按 ID-17 到ID-0 順序發(fā)送。 圖3.1 CAN數(shù)據(jù)幀仲裁場(chǎng)結(jié)構(gòu)圖 RTR的全稱(chēng)為“遠(yuǎn)程發(fā)送請(qǐng)求位(Remote Transmission Request BIT)”。RTR位在數(shù)據(jù)幀里必須為“顯性”,在遠(yuǎn)程幀里必須為“隱性SRR的全稱(chēng)是“替代遠(yuǎn)程請(qǐng)求位(Substitute Remote Request BIT)”。SRR是一隱性位。它在擴(kuò)展格式的標(biāo)準(zhǔn)幀RTR位位置,因此代替標(biāo)準(zhǔn)幀的RTR位。 因此,標(biāo)準(zhǔn)幀與擴(kuò)展幀的沖突是通過(guò)標(biāo)準(zhǔn)幀優(yōu)先于擴(kuò)展幀這一途徑得以解決的。IDE 的全稱(chēng)是“識(shí)別符擴(kuò)展位(Identifier Extension Bit )”,標(biāo)準(zhǔn)格式里的IDE 位為“顯性”,而擴(kuò)展格式里的IDE 位為“隱性”??刂茍?chǎng):數(shù)據(jù)長(zhǎng)度代碼指示數(shù)據(jù)場(chǎng)里的字節(jié)數(shù)量。數(shù)據(jù)長(zhǎng)度代碼為4 個(gè)位,所以數(shù)據(jù)場(chǎng)的字節(jié)數(shù)可以是08個(gè)字節(jié)。數(shù)據(jù)場(chǎng):數(shù)據(jù)場(chǎng)由數(shù)據(jù)幀里的發(fā)送數(shù)據(jù)組成。它可以為0 8 個(gè)字節(jié),每字節(jié)包含8個(gè)位,首先發(fā)送 MSB。CRC場(chǎng):CRC場(chǎng)包括CRC序列(CRC SEQUENCE),其后是CRC界定符(CRC DELIMITER )。應(yīng)答場(chǎng):應(yīng)答場(chǎng)長(zhǎng)度為2 個(gè)位,包含應(yīng)答間隙(ACK SLOT )和應(yīng)答界定符(ACK DELIMITER)。在ACK場(chǎng)(應(yīng)答場(chǎng))里,發(fā)送站發(fā)送兩個(gè)“隱性”位。當(dāng)接收器正確地接收到有效的報(bào)文,接收器就會(huì)在應(yīng)答間隙(ACK SLOT )期間(發(fā)送 ACK信號(hào))向發(fā)送器發(fā)送一“顯性”位以示應(yīng)答。 幀結(jié)尾:每一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由一標(biāo)志序列定界。這個(gè)標(biāo)志序列由7個(gè)“隱性”的位組成。3.2.2 遠(yuǎn)程幀通過(guò)發(fā)送遠(yuǎn)程幀,作為某數(shù)據(jù)接收器的站可以初始化通過(guò)其資源節(jié)點(diǎn)傳送不同的數(shù)據(jù)。遠(yuǎn)程幀由6個(gè)不同的位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、CRC場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)尾。與數(shù)據(jù)幀相反,遠(yuǎn)程幀的RTR位是“隱性”的。它沒(méi)有數(shù)據(jù)場(chǎng),數(shù)據(jù)長(zhǎng)度代碼的數(shù)值是不受制約的(可以標(biāo)注為容許范圍里0.8 的任何數(shù)值)。此數(shù)值是相應(yīng)于數(shù)據(jù)幀的數(shù)據(jù)長(zhǎng)度代碼。3.2.3 錯(cuò)誤幀錯(cuò)誤幀由兩個(gè)不同的場(chǎng)組成。第一個(gè)場(chǎng)用是不同站提供的錯(cuò)誤標(biāo)志(ERROR FLAG)的疊加。第二個(gè)場(chǎng)是錯(cuò)誤界定符。錯(cuò)誤標(biāo)志有兩種形式的錯(cuò)誤標(biāo)志:主動(dòng)錯(cuò)誤標(biāo)志和被動(dòng)錯(cuò)誤標(biāo)志。錯(cuò)誤界定符包括8個(gè)“隱性”的位。3.2.4 過(guò)載幀過(guò)載幀包括兩個(gè)位場(chǎng):過(guò)載標(biāo)志和過(guò)載界定符。過(guò)載標(biāo)志由6 個(gè)“顯性”的位組成,過(guò)載界定符包括8 個(gè)“隱性”的位。有種過(guò)載的情況,這三種情況都會(huì)引發(fā)過(guò)載標(biāo)志的傳送: 接收器的內(nèi)部情況(此接收器對(duì)于下一數(shù)據(jù)幀或遠(yuǎn)程幀需要有一延時(shí))。 在間歇的第一和第二字節(jié)檢測(cè)到一個(gè)“顯性”位。 如果CAN節(jié)點(diǎn)在錯(cuò)誤界定符或過(guò)載界定符的第8 位(最后一位)采樣到一個(gè)顯性位,節(jié)點(diǎn)會(huì)發(fā)送一個(gè)過(guò)載幀(不是錯(cuò)誤幀)。錯(cuò)誤計(jì)數(shù)器不會(huì)增加。3.3 CAN報(bào)文過(guò)濾報(bào)文濾波取決于整個(gè)識(shí)別符。允許在報(bào)文濾波中將任何的識(shí)別符位設(shè)置為“不考慮”的可選屏蔽寄存器,可以選擇多組的識(shí)別符,使之被映射到隸屬的接收緩沖器里。 如果使用屏蔽寄存器,它的每一個(gè)位必須是可編程的,即,他們能夠被允許或禁止報(bào)文濾波。屏蔽寄存器的長(zhǎng)度可以包含整個(gè)識(shí)別符,也可以包含部分的識(shí)別符。3.4 CAN錯(cuò)誤處理3.4.1 錯(cuò)誤檢測(cè)有以下5 種不同的錯(cuò)誤類(lèi)型(這5種錯(cuò)誤不會(huì)相互排斥) 位錯(cuò)誤(Bit Error ) 單元在發(fā)送位的同時(shí)也對(duì)總線(xiàn)進(jìn)行監(jiān)視。如果所發(fā)送的位值與所監(jiān)視的位值不相符合,則在此位時(shí)間里檢測(cè)到一個(gè)位錯(cuò)誤。但是在仲裁場(chǎng)(ARBITRATION FIELD )的填充位流期間或應(yīng)答間隙(ACK SLOT )發(fā)送一“隱性”位的情況是例外的 此時(shí),當(dāng)監(jiān)視到一“顯性”位時(shí),不會(huì)發(fā)出位錯(cuò)誤。當(dāng)發(fā)送器發(fā)送一個(gè)被動(dòng)錯(cuò)誤標(biāo)志但檢測(cè)到“顯性”位時(shí),也不視為位錯(cuò)誤。 填充錯(cuò)誤(Struff Error ) 如果在使用位填充法進(jìn)行編碼的信息中,出現(xiàn)了第 6 個(gè)連續(xù)相同的位電平時(shí),將檢測(cè)到一個(gè)填充錯(cuò)誤。 CRC錯(cuò)誤(CRC Error) CRC序列包括發(fā)送器的CRC計(jì)算結(jié)果。接收器計(jì)算CRC的方法與發(fā)送器相同。如果計(jì)算結(jié)果與接收到CRC序列的結(jié)果不相符,則檢測(cè)到一個(gè)CRC錯(cuò)誤。 形式錯(cuò)誤(Form Error ) 當(dāng)一個(gè)固定形式的位場(chǎng)含有1個(gè)或多個(gè)非法位,則檢測(cè)到一個(gè)形式錯(cuò)誤。(備注:接收器的幀末尾最后一位期間的顯性位不被當(dāng)作幀錯(cuò)誤) 應(yīng)答錯(cuò)誤(Acknowledgment Error) 只要在應(yīng)答間隙(ACK SLOT )期間所監(jiān)視的位不為“顯性”,則發(fā)送器會(huì)檢測(cè)到一個(gè)應(yīng)答錯(cuò)誤。 3.4.2 錯(cuò)誤標(biāo)定檢測(cè)到錯(cuò)誤條件的站通過(guò)發(fā)送錯(cuò)誤標(biāo)志指示錯(cuò)誤。對(duì)于“錯(cuò)誤主動(dòng)”的節(jié)點(diǎn),錯(cuò)誤信息為“主動(dòng)錯(cuò)誤標(biāo)志”,對(duì)于“錯(cuò)誤被動(dòng)”的節(jié)點(diǎn),錯(cuò)誤信息為“被動(dòng)錯(cuò)誤標(biāo)志”。站檢測(cè)到無(wú)論是位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤,還是應(yīng)答錯(cuò)誤,這個(gè)站會(huì)在下一位時(shí)發(fā)出錯(cuò)誤標(biāo)志信息。 只要檢測(cè)到的錯(cuò)誤的條件是CRC錯(cuò)誤,錯(cuò)誤標(biāo)志的發(fā)送開(kāi)始于ACK界定符之后的位(其他的錯(cuò)誤條件除外)。4 硬件電路設(shè)計(jì)4.1 單片機(jī)最小系統(tǒng)4.1.1 單片機(jī)STC89C52RCCAN智能節(jié)點(diǎn)和CAN-RS232采用STC89C52RC單片機(jī)作為主控芯片。它是一款兼容51內(nèi)核的增強(qiáng)型8位機(jī),片上資源豐富,抗干擾能力突出。STC89C52有如下特點(diǎn):40個(gè)引腳,8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線(xiàn),看門(mén)狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 STC89C52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6T/12T可選。圖4.1 單片機(jī)STC89C52引腳圖圖4.1為STC89C52RC單片機(jī)的引腳圖,在單片機(jī)的40條引腳中有2條專(zhuān)用于主電源的引腳,2條外接晶體的引腳,4條控制或與其它電源復(fù)用的引腳,32條輸入/輸出(I/O)引腳; XTAL1(19腳)接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),此引腳應(yīng)接地;對(duì)CHMOS單片機(jī),此引腳作為驅(qū)動(dòng)端; XTAL2(18腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),該引腳接外部振蕩器的信號(hào),即把外部振蕩器的信號(hào)直接接到內(nèi)部時(shí)鐘發(fā)生器的輸入端;對(duì)XHMOS,此引腳應(yīng)懸??;RST/VPD(9腳)當(dāng)振蕩器運(yùn)行時(shí),在此腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與VSS引腳之間連接一個(gè)約8.2k的下拉電阻,與VCC引腳之間連接一個(gè)約10F的電容,以保證可靠地復(fù)位。VCC掉電期間,此引腳可接上備用電源,以保證內(nèi)部RAM的數(shù)據(jù)不丟失。當(dāng)VCC主電源下掉到低于規(guī)定的電平,而VPD在其規(guī)定的電壓范圍(50.5V)內(nèi),VPD就向內(nèi)部RAM提供備用電源; P0口(39腳至32腳):是雙向8位三態(tài)I/O口,在外接存儲(chǔ)器時(shí),與地址總線(xiàn)的低8位及數(shù)據(jù)總線(xiàn)復(fù)用,能以吸收電流的方式驅(qū)動(dòng)8個(gè)LS型的TTL負(fù)載; P1口(1腳至8腳):是準(zhǔn)雙向8位I/O口。由于這種接口輸出沒(méi)有高阻狀態(tài),輸入也不鎖存,故不是真正的雙向I/O口。P1口能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。對(duì)8052、8032,P1.0引腳的第二功能為T(mén)2定時(shí)/計(jì)數(shù)器的外部輸入,P1.1引腳的第二功能為T(mén)2EX捕捉、重裝觸發(fā),即T2的外部控制端。對(duì)EPROM編程和程序驗(yàn)證時(shí),它接收低8位地址; P2口(21腳至28腳):是準(zhǔn)雙向8位I/O口。在訪問(wèn)外部存儲(chǔ)器時(shí),它可以作為擴(kuò)展電路高8位地址總線(xiàn)送出高8位地址。在對(duì)EPROM編程和程序驗(yàn)證期間,它接收高8位地址。P2可以驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載; P3口(10腳至17腳):是準(zhǔn)雙向8位I/O口,在MCS-51中,這8個(gè)引腳還用于專(zhuān)門(mén)功能,是復(fù)用雙功能口。P3能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。P3各口線(xiàn)的第二功能定義 :P3.0 10 RXD(串行輸入口); P3.1 11 TXD(串行輸出口);P3.2 12 INT0(外部中斷0);P3.3 13 INT1(外部中斷1);P3.4 14 T0(器0外部輸入);P3.5 15 T1(定時(shí)器1外部輸入);P3.6 16 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)脈沖);P3.7 17 RD(外部數(shù)據(jù)存儲(chǔ)器讀脈沖)。4.1.2 最小系統(tǒng)電路圖4.2 單片機(jī)最小系統(tǒng)圖單片機(jī)最小系統(tǒng)電路很簡(jiǎn)單,包括部分外圍電路:復(fù)位電路和晶振電路。在復(fù)位電路上電的瞬間,RC電路充電,由于電容的電壓不能突變,所以RST引腳出現(xiàn)高電平。RST引腳出現(xiàn)的高電平將會(huì)隨著對(duì)電容的充電過(guò)程而逐漸回落,為保證正確復(fù)位,RST引腳出現(xiàn)的高電平需要持續(xù)兩個(gè)機(jī)器周期以上的時(shí)間。因此,需要合理選擇復(fù)位電路的電阻和電容,通常取10K和10uf。4.2 CAN總線(xiàn)模塊4.2.1 CAN控制器SJA1000 SJA1000概述SJA1000是一種獨(dú)立控制器用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制(CAN),它是PHILIPS半導(dǎo)體PCA82C200 CAN控制器(BasicCAN)的替代產(chǎn)品,而且它增加一種新的工模式PeliCAN,這種模式支持具有很多新特性的CAN 2.0B協(xié)議。SJA1000部分功能模塊說(shuō)明如下: 接口管理邏輯(IML): 接口管理邏輯解釋來(lái)自CPU的命令,控制CAN寄存器的尋址,向主控制器提供中斷信息和狀態(tài)信息。 發(fā)送緩沖器(TXB): 發(fā)送緩沖器是CPU和BSP(位流處理器)之間的接口,能夠存儲(chǔ)發(fā)送到CAN網(wǎng)絡(luò)上的完整信息。緩沖器長(zhǎng)13個(gè)字節(jié),由CPU寫(xiě)入,BSP讀出。 接收緩沖器(RXB,RXFIFO): 接收緩沖器是驗(yàn)收濾波器和CPU之間的接口,用來(lái)儲(chǔ)存從CAN總線(xiàn)上接收和接收的信息。接收緩沖器(RXB,13個(gè)字節(jié))作為接收FIFO(RXFIFO,長(zhǎng)64字節(jié))的一個(gè)窗口,可被CPU訪問(wèn)。 驗(yàn)收濾波器(ACF): 驗(yàn)收濾波器把它其中的數(shù)據(jù)和接收的識(shí)別碼的內(nèi)容相比較,以決定是否接收信息。 SJA1000引腳定義AD0-AD7: 多路地址/ 數(shù)據(jù)總線(xiàn)。ALE/AS: ALE 輸入信號(hào)(Intel模式),AS輸入信號(hào)(Motorola 模式)。/CS: 片選輸入,低電平允許訪問(wèn)SJA1000。(/RD)/E: 微控制器的/RD信號(hào)(Intel模式)或E使能信號(hào)(Motorola 模式)。/WR: 微控制器的/WR信號(hào)(Intel 模式),或RD/(/WR)信號(hào)(Motorola模式)。CLKOUT: SJA1000產(chǎn)生的提供給微控制器的時(shí)鐘輸出信號(hào),時(shí)鐘信號(hào)來(lái)源于內(nèi)部振蕩器且通過(guò)編程驅(qū)動(dòng)時(shí)鐘控制寄存器的時(shí)鐘關(guān)閉位,可禁止該引腳。Vss1: 接地。XTAL1: 輸入到振蕩器放大電路,外部振蕩信號(hào)由此輸入。XTAL2: 振蕩放大電路輸出,使用外部振蕩信號(hào)時(shí)左開(kāi)路輸出。MODE: 模式選擇輸入,1=Intel模式,0=Motorola模式。VDD3: 輸出驅(qū)動(dòng)的5V電壓源。TX0: 從CAN輸出驅(qū)動(dòng)器0 輸出到物理線(xiàn)路上。TX1: 從CAN輸出驅(qū)動(dòng)器1 輸出到物理線(xiàn)路上。Vss3: 輸出驅(qū)動(dòng)器接地。/INT: 中斷輸出用于中斷微控制器,/INT在內(nèi)部中斷寄存器各位都被置位時(shí)低電平有效,/INT是開(kāi)漏輸出,且與系統(tǒng)中的其它/INT是線(xiàn)或的,此引腳上的低電平可以把IC從睡眠模式中激活。/RST: 復(fù)位輸入用于復(fù)位CAN接口(低電平有效),把/RST引腳通過(guò)電容連到VSS 通過(guò)電阻連到VDD可自動(dòng)上電復(fù)位。VDD2: 輸入比較器的5V電壓源。RX0,RX1: 從物理的CAN總線(xiàn)輸入到SJA1000的輸入比較器,支配(控制)電平將會(huì)喚醒SJA1000的睡眠模式;如果RX1比RX0的電平高,就讀支配(控制)電平,反之讀弱勢(shì)電平;如果時(shí)鐘分頻寄存器的CBP位被置位,就旁路CAN輸入比較器以減少內(nèi)部延時(shí)(此時(shí)連有外部收發(fā)電路),這種情況下只有RX0是激活的;弱勢(shì)電平被認(rèn)為是高而支配電平被認(rèn)為是低。VSS2: 輸入比較器的接地端。VDD1: 邏輯電路的5V電壓源。 圖4.3 SJA1000引腳圖 SJA1000寄存器(PeliCAN模式)CAN控制寄存器的內(nèi)部寄存器對(duì)CPU來(lái)說(shuō)是以外部寄存器形式存在而作片內(nèi)內(nèi)存使用。因?yàn)镃AN控制器可以工作于不同模式(工作/復(fù)位),所以必須區(qū)分不同的內(nèi)部地址定義。從CAN地址32起所有的內(nèi)部RAM(80字節(jié))被映象為CPU的接口。 模式寄存器(MOD): 模式寄存器的內(nèi)容是用來(lái)改變CAN控制器的行為的。CPU把控制寄存器作為讀/寫(xiě)寄存器,可以設(shè)置這些位,保留位讀值為邏輯0。 模式寄存器的地址為“0”,其各位功能如下: MOD.7-MOD.5:保留;MOD.4(SM):睡眠模式,“1”進(jìn)入睡眠模式,“0”從睡眠模式喚醒;MOD.3(AFM):驗(yàn)收濾波器模式,“1”單濾波模式,“0”雙濾波模式;MOD.2(STM):自檢測(cè)模式,“1”進(jìn)入自檢測(cè)模式,“0”正常模式;MOD.1(LOM):只聽(tīng)模式,“1”進(jìn)入只聽(tīng)模式,“0”正常模式;MOD.0(RM):復(fù)位模式,“1”進(jìn)入復(fù)位模式,“0”退出復(fù)位模式,進(jìn)入正常模式; 命令寄存器(CMR):CAN地址“1”。命令位初始化CAN控制器傳輸層的一個(gè)動(dòng)作。這個(gè)寄存器是只寫(xiě)的,所有位的讀出值都是邏輯0。因處理的需要,兩條命令之間至少有一個(gè)內(nèi)部時(shí)鐘周期。內(nèi)部時(shí)鐘周期的頻率是外部振蕩器的一半。表4.1 SAJ1000命令寄存器(CMR)各位功能說(shuō)明 狀態(tài)寄存器(SR):CAN地址“2”。狀態(tài)寄存器反映CAN控制器的狀態(tài)。狀態(tài)寄存器對(duì)CPU來(lái)說(shuō)是只讀內(nèi)存。表4.2 SJA1000狀態(tài)寄存器(SR)各位功能說(shuō)明 中斷寄存器(IR):CAN地址“3”。中斷寄存器允許中斷源的識(shí)別。當(dāng)這個(gè)寄存器的一位或多位被置位時(shí),CAN中斷將反映到CPU 。CPU讀此寄存器的時(shí)候除了接收中斷外的所有位都被復(fù)位,中斷寄存器對(duì)CUP來(lái)說(shuō)是只讀存儲(chǔ)器。表4.3 SJA1000中斷寄存器(IR)位功能說(shuō)明 中斷使能寄存器(IER):CAN地址“4”。這個(gè)寄存器能使不同類(lèi)型的中斷源對(duì)CPU有效,這個(gè)寄存器對(duì)CPU來(lái)說(shuō)是可讀/ 寫(xiě)存儲(chǔ)器。表4.4 SJA1000中斷使能寄存器(IER)位功能說(shuō)明 發(fā)送緩沖器(TX):CAN地址“16-28”。發(fā)送緩沖器被分為描述符區(qū)和數(shù)據(jù)區(qū),描述符區(qū)的第一個(gè)字節(jié)是幀信息字節(jié)(幀信息)。它說(shuō)明了幀格式(SFF或EFF)、遠(yuǎn)程或數(shù)據(jù)幀和數(shù)據(jù)長(zhǎng)度。SFF有兩個(gè)字節(jié)的識(shí)別碼,EFF有四個(gè)字節(jié)的識(shí)別碼。數(shù)據(jù)區(qū)最多長(zhǎng)8個(gè)數(shù)據(jù)字節(jié)發(fā)送緩沖器長(zhǎng)13個(gè)字節(jié)。 表4.5 SJA1000發(fā)送緩沖器列表(擴(kuò)展幀) 接收緩沖器(RX):CAN地址“16-28”。接收緩沖器的列表與前面一節(jié)講述的發(fā)送緩沖器很相似,接收緩沖器是RXFIFO 的可訪問(wèn)部分。每條信息分為描述符和數(shù)據(jù)區(qū)。 圖4.4 SJA1000接收緩沖器信息存儲(chǔ)示意圖 驗(yàn)收濾波器:在驗(yàn)收濾波器的幫助下,只有當(dāng)接收信息中的識(shí)別位和驗(yàn)收濾波器預(yù)定義的值相等時(shí),CAN控制器才允許將已接收信息存入RXFIFO。驗(yàn)收濾波器由驗(yàn)收代碼寄存器(ACRn)和驗(yàn)收屏蔽寄存(AMRn)定義要接收的信息的位模式在驗(yàn)收代碼寄存器中定義相應(yīng)的驗(yàn)收屏蔽寄存器允許定義某些位為“不影響”(即可為任意值)。 有兩種不同的過(guò)濾模式可在模式寄存器中選擇MOD.3 AFM。單濾波器模式(AFM位是1),雙濾波器模式(AFM位是0),本設(shè)計(jì)使用雙濾波模式。 雙濾波模式配置可以定義兩個(gè)短濾波器。一條接收的信息要和兩個(gè)濾波器比較來(lái)決定是否放入接收緩沖器中,至少有一個(gè)濾波器發(fā)出接受信號(hào),接收的信息才有效。濾波器字節(jié)和信息字節(jié)之間位的對(duì)應(yīng)關(guān)系取決于當(dāng)前接收的幀格式。 總線(xiàn)時(shí)序寄存器0、1(BTR0、BTR1):CAN地址6,7。總線(xiàn)定時(shí)寄存器0 定義波特率預(yù)設(shè)值(BRP)和同步跳轉(zhuǎn)寬度(SJW )的值,總線(xiàn)定時(shí)寄存器1 定義每個(gè)位周期的長(zhǎng)度采樣點(diǎn)的位置和在每個(gè)采樣點(diǎn)的采樣數(shù)目。復(fù)位模式有效時(shí)這兩個(gè)寄存器是可以被訪問(wèn)(讀/寫(xiě))的。如果選擇的是PeliCAN模式此寄存器在工作模式中是只讀的。 表4.6 SJA1000總線(xiàn)時(shí)序寄存器0(BTR0)位功能說(shuō)明表4.7 SJA1000總線(xiàn)時(shí)序寄存器1(BTR1)位功能說(shuō)明 輸出控制寄存器(OCR):CAN地址8。輸出控制寄存器實(shí)現(xiàn)由軟件控制不同輸出驅(qū)動(dòng)配置的建立。在復(fù)位模式中此寄存器可被讀/寫(xiě)訪問(wèn)。在PeliCAN 模式的工作模式中這個(gè)寄存器是只讀的,在BasicCAN 模式中總是FFH。 表4.8 SJA1000輸出寄存器(OCR)位功能說(shuō)明表4.9 輸出寄存器(OCR)OCMODE位的說(shuō)明4.2.2 CAN收發(fā)器TJA1050TJA1050是控制器區(qū)域網(wǎng)絡(luò)(CAN)協(xié)議控制器和物理總線(xiàn)之間的接口。TJA1050可以為總線(xiàn)提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能。TJA1050有如下特征:與“ISO 11898”標(biāo)準(zhǔn)完全兼容;速度高(最高可達(dá)1M波特);低電磁輻射(EME); 具帶有寬輸入范圍的差動(dòng)接收器,可抗電磁干擾(EMI);沒(méi)有上電的節(jié)點(diǎn)不會(huì)對(duì)總線(xiàn)造成干擾;發(fā)送數(shù)據(jù)(TXD)控制超時(shí)功能;發(fā)送禁能時(shí)的靜音模式;在暫態(tài)時(shí)自動(dòng)對(duì)總線(xiàn)引腳進(jìn)行保護(hù);輸入級(jí)與3.3V裝置兼容;熱保護(hù);對(duì)電源和地的防短路功能;可以連接至少110個(gè)節(jié)點(diǎn)。圖4.5 TJA1050引腳圖表4.10 TJA1050引腳說(shuō)明4.2.3 CAN模塊電路STC89C52TJA1050 圖4.6 CAN模塊電路接口圖 電路主要由四部分構(gòu)成: 微控制器STC89C52、獨(dú)立CAN通信控制器SJA1000、 CAN總線(xiàn)收發(fā)器TJA1050和高速光電耦合器6N137。微處理器STC89C52負(fù)責(zé)SJA1000的初始化,通過(guò)控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。 SJA1000的AD0AD7連接到STC89C52的P0口。CS連接到單片機(jī)的P2.0,P2.0為0的CPU片外存儲(chǔ)器地址可選中SJA1000,CPU通過(guò)這些地址可對(duì)SJA1000執(zhí)行相應(yīng)的讀寫(xiě)操作。SJA1000的RD、WR、ALE分別與STC89C52的對(duì)應(yīng)引腳相連,INT接STC89C52的INT0。為增強(qiáng)CAN總線(xiàn)節(jié)點(diǎn)的抗干擾能力,SJA1000的TX0和RX0并不是直接與TJA1050的TXD和RXD相連,而是通過(guò)高速光耦6N137后與TJA1050相連,這樣就很好地實(shí)現(xiàn)了總線(xiàn)上各CAN節(jié)點(diǎn)間的電氣隔離。4.3 串口通信4.3.1 電平轉(zhuǎn)換芯片MAX232MAX232芯片是專(zhuān)門(mén)為RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。該器件包含2個(gè)驅(qū)動(dòng)器2個(gè)接收器和一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個(gè)接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-V TTL/CMOS電平。每一個(gè)發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。MAX232芯片引腳圖如下所示: 圖4.7 MAX232引腳圖 引腳介紹: 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 第三部分是供電。15腳GND、16腳VCC(+5v)。4.3.2 串口通信電路MAX232 外圍需要4個(gè)電解電容C1 、C2 、C3 、C4 ,是內(nèi)部電源轉(zhuǎn)換所需電容。其取值均為1F/25V。宜選用鉭電容并且應(yīng)盡量靠近芯片。C5為0.1F的去耦電容。 圖4.8 RS-232串口通信電路原理圖4.4 溫濕度檢測(cè)模塊本檢測(cè)模塊主要通過(guò)對(duì)家居內(nèi)的溫度濕度檢測(cè)來(lái)判為是否有漏水或發(fā)生火災(zāi)的危險(xiǎn),溫度傳感器用DS18B20,濕度傳感器采用DHT11。4.4.1 溫度傳感器DS18B20DS18B20輸出引腳需外接1個(gè)4.7K的上拉電阻,使轉(zhuǎn)換后的數(shù)據(jù)能夠更好地傳送到單片機(jī)。該器件測(cè)得的溫度值是以16位帶符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,數(shù)據(jù)是通過(guò)單總線(xiàn)接口以串行的方式讀出。 圖4.9 DS18B20應(yīng)用電路4.4.2 濕度傳感器DHT11DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶(hù)需求而提供。其典型應(yīng)該電路如圖4.10,在第二腳外接1個(gè)5K的上接電阻。 圖4.10 DHT11應(yīng)用電路4.4.3 溫濕度檢測(cè)電路 圖4.11 溫濕度檢測(cè)電路4.5 煙霧檢測(cè)模塊 本設(shè)計(jì)使用MQ-2煙霧傳感器模塊檢測(cè)居室內(nèi)的煙霧狀況,以分析是否發(fā)生火情。MQ-2煙霧傳感器模塊工作電壓為5V,TTL電平輸出,可以和單片機(jī)I/O口直接連接。當(dāng)檢測(cè)到你煙霧濃度大于設(shè)定值時(shí),輸出低電平。MQ-2煙霧傳感器模塊如下: 圖4.12 MQ-2煙霧傳感器模塊電路圖圖4.13 MQ-2模塊與單片機(jī)接口電路4.6 紅外人體感應(yīng)模塊BISS0001是一款傳感信號(hào)處理集成電路。配以熱釋電紅外傳感器和少量外接元器件構(gòu)成被動(dòng)式的熱釋電紅外開(kāi)關(guān)。用于安全區(qū)域的自動(dòng)燈光、照明和報(bào)警系統(tǒng)。圖4.14 BISS0001傳感器應(yīng)用電路 本設(shè)計(jì)使用紅外人體感應(yīng)模塊來(lái)檢測(cè)室外入侵狀況,當(dāng)人進(jìn)入其感應(yīng)范圍時(shí),輸出高電平;當(dāng)人離開(kāi)感應(yīng)范圍時(shí),則自動(dòng)延時(shí)關(guān)閉高電平,輸出低電平。 圖4.15 紅外人體感應(yīng)模塊與單片機(jī)接口電路4.7 液晶顯示模塊工業(yè)字符型液晶,能夠同時(shí)顯示 16x02 即 32 個(gè)字符。(16 列 2 行)1602 字符型 LCD 通常有 14 條引腳線(xiàn)或 16 條引腳線(xiàn)的 LCD,多出來(lái)的 2 條線(xiàn)是背光電源線(xiàn)。實(shí)物圖與引腳圖分別如圖4.16所示。圖4.16 LCD1602實(shí)物圖與引腳圖LCD1602引腳說(shuō)明:VCC(15 腳)和地線(xiàn) GND(16 腳),其控制原理與 14 腳的 LCD 完全一樣,其中模塊的引腳說(shuō)明如下表4.10所示。表4.10 LCD1602引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3VL顯示偏壓信號(hào)11D4Data I/O4RS數(shù)據(jù)/命令選擇端12D5Data I/O5RW讀寫(xiě)使能端13D6Data I/O6E使能信號(hào)14D7Data I/O4.8 報(bào)警電路本設(shè)計(jì)采用普通三極管9012和蜂鳴器組成報(bào)警電路,如圖4.17所示。圖4.17 報(bào)警電路4.9 按鍵電路設(shè)計(jì)中,使用按鍵加LCD1602來(lái)設(shè)計(jì)各個(gè)節(jié)點(diǎn)的溫濕度上限和下限,設(shè)計(jì)四個(gè)按鍵。圖4.18 按鍵電路5 系統(tǒng)軟件設(shè)計(jì)5.1 軟件整體設(shè)計(jì)CAN-RS232協(xié)議轉(zhuǎn)換器通過(guò)CAN總線(xiàn)接收檢測(cè)節(jié)點(diǎn)的數(shù)據(jù)信息,并通過(guò)串口發(fā)送到上位機(jī),CAN-RS232協(xié)議轉(zhuǎn)換器還負(fù)責(zé)設(shè)定檢測(cè)節(jié)點(diǎn)的溫濕度的上限和下限。開(kāi)始系統(tǒng)初始化開(kāi)中斷按鍵掃描SET鍵按下?按鍵設(shè)定值EXT鍵按下?CAN發(fā)送設(shè)定值CAN接收標(biāo)志RX_flag = 1?串口發(fā)送數(shù)據(jù)結(jié)束YYNYNN 圖5.1 CAN-RS232協(xié)議轉(zhuǎn)換器程序流程圖 CAN檢測(cè)節(jié)點(diǎn)的主要包括:CAN通信程序,環(huán)境參數(shù)檢測(cè)程序。其程序流程圖如圖5.2所示。開(kāi)始系統(tǒng)初始化開(kāi)中斷檢測(cè)環(huán)境參數(shù)需要報(bào)警?報(bào)警CAN發(fā)送數(shù)據(jù)CAN接收中斷?改變溫濕度上下限結(jié)束NNYY 圖5.2 CAN檢測(cè)節(jié)點(diǎn)總程序流程圖5.2 CAN通信程序設(shè)計(jì)CAN總線(xiàn)通信是通過(guò)CAN控制器SJA1000來(lái)實(shí)現(xiàn)的,在CAN收發(fā)數(shù)據(jù)之前必須對(duì)SJA1000進(jìn)行初始化。由于SJA1000與微處理器的接口是以外部存儲(chǔ)器的方式,在編寫(xiě)CAN通信程序之前必須確定SJA1000的基地址和復(fù)位引腳。本設(shè)計(jì)復(fù)位引腳接單片機(jī)的P2.0,基地址為0x8000。設(shè)計(jì)中,以查詢(xún)的方式通過(guò)CAN發(fā)送數(shù)據(jù),中斷的方式接收數(shù)據(jù)。需要發(fā)送數(shù)據(jù)的時(shí)候,先根據(jù)SJA1000的狀態(tài)寄存器,判斷是否可以發(fā)送數(shù)據(jù),如果可以,將數(shù)據(jù)寫(xiě)入發(fā)送緩沖區(qū),然后使能發(fā)送請(qǐng)求。當(dāng)有接收緩沖區(qū)有數(shù)據(jù)時(shí),將會(huì)置位接收中斷標(biāo)志位,在接收中斷服務(wù)程序中,即可讀出接收緩沖區(qū)的內(nèi)容。SJA1000初始化過(guò)程如圖5.3所示。開(kāi)始SJA1000硬件復(fù)位設(shè)置通信波特率SJA1000進(jìn)入復(fù)位模式配置時(shí)鐘分頻寄存器配置模式寄存器配置驗(yàn)收代碼/屏蔽寄存器配置總線(xiàn)時(shí)序寄存器配置輸出寄存器退出復(fù)位模式結(jié)束

溫馨提示

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

評(píng)論

0/150

提交評(píng)論