




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于arm的can 總線的研究和實(shí)現(xiàn)目 錄摘 要.1abstract .11、引言.22、can的特點(diǎn).23、簡(jiǎn)單can通信硬件設(shè)計(jì).44、can報(bào)文傳輸.5 5、簡(jiǎn)單can信息傳遞機(jī)制的介紹.76、軟件設(shè)計(jì).87、簡(jiǎn)單can通信協(xié)議的指定.118、簡(jiǎn)單測(cè)試.129、can網(wǎng)絡(luò)設(shè)計(jì).1310、結(jié)束語.15參考文獻(xiàn).15基于arm的can 總線的研究和實(shí)現(xiàn)摘要:can 總線是一種支持分布式實(shí)時(shí)控制系統(tǒng)的串行通信的局域網(wǎng)絡(luò)。由于其高性能、高可靠性、實(shí)時(shí)性好及其獨(dú)特的設(shè)計(jì), 已廣泛應(yīng)用于控制系統(tǒng)中的各檢測(cè)和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。本文針對(duì)大型復(fù)雜工業(yè)現(xiàn)場(chǎng)實(shí)時(shí)測(cè)控網(wǎng)絡(luò)的要求,介紹了can總線的特點(diǎn),介
2、紹了基于can 總線測(cè)控節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn), 闡述了can 總線網(wǎng)絡(luò)的通信模型和構(gòu)建方法。重點(diǎn)對(duì)基于atmel公司的7x256芯片的節(jié)點(diǎn)硬件配置、軟件功能、尤其是can 通信的實(shí)現(xiàn)進(jìn)行了比較詳細(xì)地討論。關(guān)鍵詞: can 總線;7x256;can 通信中圖分類號(hào):tp215 the research and realization of can bus based on armabstract:can bus is a kind of serial communication local area network (lan)which supports distributed real-time
3、control system.due to its high performance, high reliability,good performance of real-time and its unique design,can bus has been widely applied in the data communication between the testing and implementing agencies in the control system. at the request of real-time monitoring and control network i
4、n the large-scale industrial complex scene,this paper has introduced the features of can bus,the design and implementation of monitoringand control nodes based on can bus.it has described the communication model and costruction methods of can bus network.this paper has focused on the detailed discus
5、sion of node hardware configuration and soft function of 7x256 chip based on atmel company,especially the realization of can bus. key words :can bus;7x256; can communication1、引言 目前在某些測(cè)控系統(tǒng)中仍采用rs - 485 串行總線通訊。由于該方式只能構(gòu)成主從式結(jié)構(gòu)的通訊網(wǎng)絡(luò),一旦主節(jié)點(diǎn)出現(xiàn)故障,就會(huì)導(dǎo)致整個(gè)系統(tǒng)處于癱瘓狀態(tài),系統(tǒng)總體可靠性較低。此外,rs - 485 網(wǎng)絡(luò)在任意時(shí)刻,總線只能允許一個(gè)節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù)。
6、如果總線上的某些節(jié)點(diǎn)發(fā)生故障,導(dǎo)致多于一個(gè)以上的節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù)時(shí),就極有可能使總線呈現(xiàn)短路狀態(tài),從而損壞某些節(jié)點(diǎn)的rs - 485 驅(qū)動(dòng)器,導(dǎo)致故障范圍的進(jìn)一步擴(kuò)大。針對(duì)這些問題,rs - 485 網(wǎng)絡(luò)本身無法給出一個(gè)良好的解決方法。而can 總線技術(shù)由于具有多主工作方式、采用非破壞性總線仲裁技術(shù)、信號(hào)傳輸采用短幀結(jié)構(gòu)等特點(diǎn),可使這些問題得到較好的解決。can, 全稱為“controller area network”, 即控制器局域網(wǎng), 最早由德國bosch 公司提出, 主要用于汽車內(nèi)部測(cè)量與控制中心之間的數(shù)據(jù)通信。如發(fā)動(dòng)機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中, 均嵌入can
7、 控制裝置。由于其卓越的性能、極高的可靠性, 獨(dú)特靈活的設(shè)計(jì)和低廉的價(jià)格, 現(xiàn)已廣泛應(yīng)用于工業(yè)現(xiàn)域控制、智能大廈、小區(qū)安防、交通工具、醫(yī)療儀器環(huán)境監(jiān)控等眾多領(lǐng)域。已被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線之一。本文研究的是基于arm的can 總線的數(shù)據(jù)通信。具體實(shí)現(xiàn)can總線上一對(duì)一,以及一對(duì)多的數(shù)據(jù)通信。2、can的特點(diǎn) can總線是一種支持分布式實(shí)時(shí)控制系統(tǒng)的串行通信局域網(wǎng)。由于其高性能、高可靠性、實(shí)時(shí)性等優(yōu)點(diǎn),已廣泛應(yīng)用于控制系統(tǒng)中的檢測(cè)和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信。它具有以下一些技術(shù)特性:(1) 多主控制在總線空閑時(shí),所有的單元都可開始發(fā)送消息(多主控制)。最先訪問總線的單元可獲得發(fā)送權(quán)(csma/
8、ca 方式)。多個(gè)單元同時(shí)開始發(fā)送時(shí),發(fā)送高優(yōu)先級(jí)id 消息的單元可獲得發(fā)送權(quán)。(2) 消息的發(fā)送在can 協(xié)議中,所有的消息都以固定的格式發(fā)送??偩€空閑時(shí),所有與總線相連的單元都可以開始發(fā)送新消息。兩個(gè)以上的單元同時(shí)開始發(fā)送消息時(shí),根據(jù)標(biāo)識(shí)符(identifier 以下稱為 id)決定優(yōu)先級(jí)。id 并不是表示發(fā)送的目的地址,而是表示訪問總線的消息的優(yōu)先級(jí)。兩個(gè)以上的單元同時(shí)開始發(fā)送消息時(shí),對(duì)各消息id 的每個(gè)位進(jìn)行逐個(gè)仲裁比較。仲裁獲勝(被判定為優(yōu)先級(jí)最高)的單元可繼續(xù)發(fā)送消息,仲裁失利的單元?jiǎng)t立刻停止發(fā)送而進(jìn)行接收工作。(3) 系統(tǒng)的柔軟性與總線相連的單元沒有類似于“地址”的信息。因此在總
9、線上增加單元時(shí),連接在總線上的其它單元的軟硬件及應(yīng)用層都不需要改變。(4) 通信速度根據(jù)整個(gè)網(wǎng)絡(luò)的規(guī)模,可設(shè)定適合的通信速度。在同一網(wǎng)絡(luò)中,所有單元必須設(shè)定成統(tǒng)一的通信速度。即使有一個(gè)單元的通信速度與其它的不一樣,此單元也會(huì)輸出錯(cuò)誤信號(hào),妨礙整個(gè)網(wǎng)絡(luò)的通信。不同網(wǎng)絡(luò)間則可以有不同的通信速度。(5) 遠(yuǎn)程數(shù)據(jù)請(qǐng)求可通過發(fā)送“遙控幀” 請(qǐng)求其他單元發(fā)送數(shù)據(jù)。(6) 錯(cuò)誤檢測(cè)功能錯(cuò)誤通知功能錯(cuò)誤恢復(fù)功能所有的單元都可以檢測(cè)錯(cuò)誤(錯(cuò)誤檢測(cè)功能)。檢測(cè)出錯(cuò)誤的單元會(huì)立即同時(shí)通知其他所有單元(錯(cuò)誤通知功能)。正在發(fā)送消息的單元一旦檢測(cè)出錯(cuò)誤,會(huì)強(qiáng)制結(jié)束當(dāng)前的發(fā)送。強(qiáng)制結(jié)束發(fā)送的單元會(huì)不斷反復(fù)地重新發(fā)送此消
10、息直到成功發(fā)送為止(錯(cuò)誤恢復(fù)功能)。(7) 故障封閉can 可以判斷出錯(cuò)誤的類型是總線上暫時(shí)的數(shù)據(jù)錯(cuò)誤(如外部噪聲等)還是持續(xù)的數(shù)據(jù)錯(cuò)誤(如單元內(nèi)部故障、驅(qū)動(dòng)器故障、斷線等)。由此功能,當(dāng)總線上發(fā)生持續(xù)數(shù)據(jù)錯(cuò)誤時(shí),可將引起故障的單元從總線上隔離出去。(8) 連接can 總線時(shí)可同時(shí)連接多個(gè)單元??蛇B接的單元總數(shù)理論上是沒有限制的。但實(shí)際上可連接的單元數(shù)受總線上的時(shí)間延遲及電氣負(fù)載的限制。降低通信速度,可連接的單元數(shù)增加;提高通信速度,則可連接的單元數(shù)減少。can 總線符合iso11898 標(biāo)準(zhǔn),最大傳輸速率可達(dá)1mb/ s ,最大傳輸距離為10km(傳輸速率約為5k) ,傳輸介質(zhì)可為雙絞線、同
11、軸電纜,光纖等。由于can 總線是一種很有發(fā)展前景的現(xiàn)場(chǎng)總線,因此得到了國際上很多大公司的支持。基于can 總線的以上特點(diǎn),它特別適用于系統(tǒng)分布比較分散、實(shí)時(shí)性要求高、現(xiàn)場(chǎng)環(huán)境干擾大的場(chǎng)合。3 、簡(jiǎn)單can通信硬件設(shè)計(jì) 節(jié)點(diǎn)控制器arm芯片選用 atmel公司的7x256, 屬arm7 系列芯片。arm7 系列是具有arm7tdmi 內(nèi)核的32 位嵌入式微處理器, 是目前應(yīng)用很廣的嵌入式risc 處理器。該系列芯片體積小、功耗低、成本低, 高性能與靈活性相結(jié)合, 有較多的寄存器, 提供了擴(kuò)充的增強(qiáng)的固定長(zhǎng)的16/32位雙指令集。此芯片集成了外設(shè)can 控制器。 芯片支持片上斷點(diǎn)和調(diào)試點(diǎn)支持,
12、具有先進(jìn)的軟件開發(fā)和調(diào)試環(huán)境。又因?yàn)榇颂幚砥餍酒陨砑闪薱an 控制器, 可以自動(dòng)處理數(shù)據(jù)鏈路層和部分物理層,為cpu提供了完整的關(guān)于v2.0 part a和v2.0 part b協(xié)議功能,可以自動(dòng)處理數(shù)據(jù)鏈路層和部分物理層。 總線數(shù)據(jù)波特度均可達(dá)1mbps; 可訪問32 位的寄存器和ram; 全局驗(yàn)收過濾器可識(shí)別幾乎所有總線的11 位和29 位rx 標(biāo)識(shí)符; 驗(yàn)收過濾器為選擇的標(biāo)準(zhǔn)標(biāo)識(shí)符提供了fullcan模式自動(dòng)接收功能。所以使用atmel的7x256省去了can 控制器外圍電路的設(shè)計(jì), 同時(shí)也減少了線路干擾。can 收發(fā)器采用philips 公司的tja1050 高速can 收發(fā)器。收
13、發(fā)器是can 協(xié)議控制器和物理總線之間的接口。它最初是應(yīng)用在波特率范圍在60k 波特到1m波特的高速自動(dòng)化應(yīng)用中。tja1050 可以為總線提供不同的發(fā)送性能, 為can 控制器提供不同的接收性能。而且它與“iso 11898”標(biāo)準(zhǔn)完全兼容。tja1050 提供兩種模式供用戶使用。用過引腳s 可以選擇高速模式或靜音模式。高速模式就是普通的工作模式, 將引腳s 接地可以進(jìn)入這種模式。如果引腳s 沒有連接, 高速模式就是默認(rèn)的工作模式。在靜音模式中, 發(fā)送器是禁止的。但其他功能可以繼續(xù)使用。將s 引腳連接到vcc 可以進(jìn)入這個(gè)模式。靜音模式可以防止在can 控制器不受控制時(shí)對(duì)網(wǎng)絡(luò)通訊造成堵塞。本設(shè)
14、計(jì)要實(shí)現(xiàn)發(fā)送和接收, 所以將s 接地進(jìn)入普通模式??傮w的原理圖如圖1所示:can控制器tja1050arm7芯片 txrxcanlcanhcan總線 圖1 硬件設(shè)計(jì)原理圖4、can報(bào)文傳輸報(bào)文傳輸由以下4 種不同的幀類型所表示和控制:- 數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器。- 遠(yuǎn)程幀:總線單元發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀。- 錯(cuò)誤幀:任何單元檢測(cè)到一總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。- 過載幀:過載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。數(shù)據(jù)幀(或遠(yuǎn)程幀)通過幀間空間與前述的各幀分開。因在實(shí)際應(yīng)用中基本上都是進(jìn)行信息的采集及傳遞工作,所以這里僅僅介紹下數(shù)據(jù)幀 。數(shù)據(jù)
15、幀由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。數(shù)據(jù)幀的結(jié)構(gòu)如圖2所示:圖2 數(shù)據(jù)幀結(jié)構(gòu)圖(1)幀起始它標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,由一個(gè)單獨(dú)的“顯性”位組成。只在總線空閑時(shí),才允許站開始發(fā)送(信號(hào))。所有的站必須同步于首先開始發(fā)送信息的站的幀起始前沿。(2)仲裁場(chǎng)仲裁場(chǎng)包括識(shí)別符和遠(yuǎn)程發(fā)送請(qǐng)求位(rtr)。識(shí)別符:識(shí)別符的長(zhǎng)度為11 位。這些位的發(fā)送順序是從id-10 到id-0。最低位是id-0。最高的7 位(id-10 到id-4)必須不能全是“隱性”。rtr 位:該位在數(shù)據(jù)幀里必須為“顯性”,而在遠(yuǎn)程幀里必須為“隱性”(3)控制
16、場(chǎng)控制場(chǎng)由6 個(gè)位組成,包括數(shù)據(jù)長(zhǎng)度代碼和兩個(gè)將來作為擴(kuò)展用的保留位。所發(fā)送的保留位必須為“顯性”。接收器接收所有由“顯性”和“隱性”組合在一起的位。數(shù)據(jù)長(zhǎng)度代碼:數(shù)據(jù)長(zhǎng)度代碼指示了數(shù)據(jù)場(chǎng)中字節(jié)數(shù)量。數(shù)據(jù)長(zhǎng)度代碼為4 個(gè)位,在控制場(chǎng)里被發(fā)送。(4)數(shù)據(jù)場(chǎng)數(shù)據(jù)場(chǎng)由數(shù)據(jù)幀中的發(fā)送數(shù)據(jù)組成。它可以為08 個(gè)字節(jié),每字節(jié)包含了8 個(gè)位,首先發(fā)送msb。(5)crc 場(chǎng)crc場(chǎng)包括crc 序列(crc sequence),其后是crc 界定符(crc delimiter)。(6)應(yīng)答場(chǎng)應(yīng)答場(chǎng)長(zhǎng)度為2 個(gè)位,包含應(yīng)答間隙(ack slot)和應(yīng)答界定符(ack delimiter)。在應(yīng)答場(chǎng)里,發(fā)送站發(fā)送
17、兩個(gè)“隱性”位。當(dāng)接收器正確地接收到有效的報(bào)文,接收器就會(huì)在應(yīng)答間隙(ack slot)期間(發(fā)送ack 信號(hào))向發(fā)送器發(fā)送一“顯性”的位以示應(yīng)答。(7)幀結(jié)尾每一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由一標(biāo)志序列界定。這個(gè)標(biāo)志序列由7 個(gè)“隱性”位組成。5、簡(jiǎn)單的can信息傳遞機(jī)制的介紹 7x256的can控制器上有8個(gè)獨(dú)立的郵箱。任何郵箱都可以通過程序設(shè)置為接收緩沖區(qū)(甚至是不連續(xù)的緩沖區(qū))。當(dāng)緩沖區(qū)滿的時(shí)候一個(gè)中斷就會(huì)被觸發(fā)。郵箱的設(shè)置使開始接收的信息可以被鎖存在can控制寄存器中。任何一個(gè)郵箱在指定其為接收郵箱的時(shí)候,可以指定其類型為receive mode,或者receive with overwrit
18、e mode,如果將郵箱設(shè)置為receive with overwrite mode ,那么如果在申請(qǐng)得到應(yīng)答之前又接收到了新的信息,那么原來寄存器中的信息會(huì)被新接收到的信息覆蓋掉。如果將郵箱設(shè)置為receive mode 模式,那么當(dāng)郵箱中存在已接收的數(shù)據(jù)且還沒有被應(yīng)用程序通知其使用完畢時(shí),該郵箱將拒絕接收任何信息。任何郵箱也都可以設(shè)置為發(fā)送緩沖區(qū)。多個(gè)發(fā)送郵箱可以在同一時(shí)間內(nèi)被使能。每一個(gè)郵箱都可以被獨(dú)立的設(shè)置為不同的優(yōu)先級(jí)。 cpu通過can控制器郵箱讀寫數(shù)據(jù)或信息。每個(gè)郵箱均被分配了一個(gè)標(biāo)志符(id)。can控制器通過壓縮或解碼數(shù)據(jù)信息創(chuàng)建或解碼數(shù)據(jù)幀。程序運(yùn)行管理下的can控制器可以
19、自動(dòng)的處理遠(yuǎn)程幀、錯(cuò)誤幀和過載幀。 can模塊有8個(gè)緩沖區(qū),也可以稱作通道或者郵箱。每個(gè)正在應(yīng)用的郵箱都被定義了一個(gè)與can標(biāo)志符對(duì)應(yīng)的標(biāo)志符。報(bào)文標(biāo)志符可以和標(biāo)準(zhǔn)幀標(biāo)志符或擴(kuò)展幀相匹配。標(biāo)志符在can初始化時(shí)就被定義好了,但是可以在以后被更改以使郵箱可以處理新的信息。可以為多個(gè)郵箱配置相同的id。每個(gè)郵箱可以被配置為獨(dú)立的接收或發(fā)送模塊。郵箱類型可以通過郵箱模式寄存器(can mmrx)的mot位定義。如果郵箱id寄存器(can_midx)中的mide被置位,那么郵箱可以處理29位擴(kuò)展的格式標(biāo)志符,否則,郵箱將處理標(biāo)準(zhǔn)格式標(biāo)志符。一旦一個(gè)新的信息被接收,它的id會(huì)與郵箱掩碼寄存器的值相與并與
20、郵箱id寄存器的值相比較。如果被接收,那么這個(gè)信息的id將被復(fù)制到郵箱id寄存器。 6 、軟件設(shè)計(jì) 程序主體結(jié)構(gòu)為: can 驅(qū)動(dòng)程序部分。can 驅(qū)動(dòng)程序是針對(duì)arm芯片上can 接口模塊編寫的。can 驅(qū)動(dòng)程序主要包括 can 控制器初始化程序; 發(fā)送子程序; 接收子程序; 中斷處理程序。下面主要對(duì)can 控制器初始化程序進(jìn)行簡(jiǎn)要的分析。can控制器驅(qū)動(dòng)程序初始化基本流程如下所述:1. 設(shè)置復(fù)用的pio引腳連接到can控制器。2. 使能can控制器輸入時(shí)鐘。3. 設(shè)置can控制器的波特率。4. 向高級(jí)中斷控制器(aic)注冊(cè)can中斷(需要編寫相應(yīng)的can中斷服務(wù)子函數(shù))。5. 使能aic
21、控制器的can中斷。6. 使能can控制器。7. 使能can控制器的相關(guān)中斷。8. 設(shè)置can郵箱(包括郵箱id號(hào)、掩碼、傳輸數(shù)據(jù)、傳輸數(shù)據(jù)長(zhǎng)度、郵箱類型等)。代碼分析: /*- 初始化can控制器 -*/* 指定can收發(fā)引腳由can控制器控制at91c_base_pioa-pio_pdr = can_mask;at91c_base_pioa-pio_asr = can_mask;/* 使能can輸入時(shí)鐘at91c_base_pmc-pmc_pcer = 1 aic_svrat91c_id_can = (unsigned int)canirqhandler;/* 注冊(cè)can中斷的優(yōu)先級(jí)跟觸發(fā)
22、模式at91c_base_aic-aic_smrat91c_id_can = at91c_aic_prior_highest | at91c_aic_srctype_int_high_level;/* 設(shè)置can波特率at91c_base_can-can_br = can_br_500k;#if transmit_type = recv/* 禁止can中斷at91c_base_can-can_idr = at91c_can_mb1;/* 設(shè)置mb0 /* 設(shè)置郵箱0的id號(hào)(標(biāo)準(zhǔn)幀)at91c_base_can-can_mb0.can_mb_mid = 0x5aa can_mb0.can_mb
23、_mam = 0xffffffff; /設(shè)置郵箱 mb0的模式為接收郵箱at91c_base_can-can_mb0.can_mb_mmr = at91c_can_mot_rx;/* 使能mb0中斷at91c_base_can-can_ier = at91c_can_mb0; /* 設(shè)置mb2at91c_base_can-can_mb2.can_mb_mid = 0x5aa can_mb2.can_mb_mdh = 0; / 數(shù)據(jù)at91c_base_can-can_mb2.can_mb_mdl = 0; / 數(shù)據(jù)at91c_base_can-can_mb2.can_mb_mmr= at91c
24、_can_mot_consumer; / mb1為生產(chǎn)者郵箱/* 使能mb0中斷at91c_base_can-can_ier = at91c_can_mb2;#else/* 禁止can中斷at91c_base_can-can_idr = at91c_can_mb1;/* 設(shè)置mb1at91c_base_can-can_mb1.can_mb_mid = 0x5aa can_mb1.can_mb_mdh = send_data_h; / 數(shù)據(jù)at91c_base_can-can_mb1.can_mb_mdl = send_data_l; / 數(shù)據(jù)at91c_base_can-can_mb1.can
25、_mb_mmr = at91c_can_mot_tx; / mb1為發(fā)送郵箱#endif/* 使能canat91c_base_can-can_mr = at91c_can_canen;/* 使能can中斷并主動(dòng)清除一次中斷at91c_base_aic-aic_iecr = 1 aic_iccr = 1 at91c_id_can;/*- can控制器初始化結(jié)束 -*/7、簡(jiǎn)單的can通信協(xié)議的制定該通信協(xié)議僅僅是為了簡(jiǎn)單的對(duì)can總線的一對(duì)一,以及一對(duì)多的通信進(jìn)行測(cè)試,沒有具體的根據(jù)實(shí)際的應(yīng)用需求進(jìn)行分析設(shè)計(jì)。如果真正的用于工業(yè)現(xiàn)場(chǎng)的can總線協(xié)議要比這個(gè)復(fù)雜的多得多。首先,需要對(duì)所用到的節(jié)點(diǎn)的
26、郵箱進(jìn)行設(shè)置(配置其 id,掩碼,模式等),以及節(jié)點(diǎn)的性質(zhì)的配置(主機(jī)或者從機(jī))。而在真正的工業(yè)現(xiàn)場(chǎng)應(yīng)用中,硬性的規(guī)定節(jié)點(diǎn)的性質(zhì)以及郵箱的id號(hào)實(shí)在是一種非常落后的實(shí)現(xiàn)方式,靈活性跟擴(kuò)展性都大大的受到了限制。在真正的應(yīng)用中,任何一個(gè)節(jié)點(diǎn)都可以充當(dāng)一個(gè)主機(jī)的身份與總線上其他的節(jié)點(diǎn)進(jìn)行通信,而總線上的所有節(jié)點(diǎn)可以由主機(jī)發(fā)送一個(gè)重置id號(hào)的命令后自動(dòng)完成id號(hào)的重新分配工作,上層軟件會(huì)將此信息進(jìn)行保存并用于之后的訪問。 主機(jī)以及從機(jī)中所用到的郵箱的id號(hào)的簡(jiǎn)單設(shè)置如下:主機(jī)郵箱號(hào) 掩碼 郵箱id 郵箱性質(zhì) 說明mb0 發(fā)送 用于實(shí)現(xiàn)一對(duì)多或者一對(duì)一的數(shù)據(jù)訪問 mb2 0x0 0x1 接收 mb3 0
27、x0 0x1 接收 mb4 0x0 0x1 接收 可以接收所有不同id號(hào)的從mb5 0x0 0x1 接收 信息mb6 0x0 0x1 接收mb7 0x0 0x1 接收從機(jī)郵箱號(hào) 掩碼 郵箱id 郵箱性質(zhì) 說明mb0 0x0 0xf1 接收 專門用于接收廣播mb1 0x0 0xf2 接收 專門用于點(diǎn)對(duì)點(diǎn)接收mb2 發(fā)送郵箱 回發(fā)數(shù)據(jù)mb3 發(fā)送郵箱 回發(fā)數(shù)據(jù)郵箱掩碼設(shè)置為0x0,郵箱0,郵箱1均可以接收到主機(jī)發(fā)送過來的命令,收到主機(jī)發(fā)送過來的數(shù)據(jù)后,則分別進(jìn)行檢測(cè),如果收到的是一對(duì)多的采集命令,則不用再做郵箱id號(hào)的檢測(cè),直接將郵箱準(zhǔn)備好的數(shù)據(jù)發(fā)送回去; 如果收到的是一對(duì)一的采集命令,則在進(jìn)行郵
28、箱id號(hào)的匹配檢測(cè),如果id號(hào)匹配,則將準(zhǔn)備好的數(shù)據(jù)發(fā)送回去,否則不做任何處理。 將主機(jī)的接收郵箱掩碼設(shè)置為0x0,可以接收總線上任何一個(gè)節(jié)點(diǎn)發(fā)過來的數(shù)據(jù),其一定程度上充當(dāng)了一個(gè)萬能接收的角色。can的上層通信協(xié)議是對(duì)can總線協(xié)議中數(shù)據(jù)場(chǎng)所包含信息的不同功能或性質(zhì)的進(jìn)一步細(xì)化,我們所準(zhǔn)備的信息需要根據(jù)這個(gè)協(xié)議寫入can總線協(xié)議的數(shù)據(jù)場(chǎng)。根據(jù)7x256的郵箱設(shè)計(jì)機(jī)制,將長(zhǎng)度固定為64位,具體實(shí)現(xiàn)如下:1 編碼順序由低位段到高位段;2 采用can2.0標(biāo)準(zhǔn)幀格式;3 低32位為信息部分,高32位為數(shù)據(jù)部分;4 低32位數(shù)據(jù)為信息位,定義如下: 第一個(gè)字節(jié)為命令信息:0xaa 一對(duì)多的信息采集 符
29、合條件的從機(jī)收采集命令后回發(fā)一個(gè)包含了采集信息的數(shù)據(jù)幀0xbb 一對(duì)一的信息采集 符合條件的從機(jī)收到采集命令后回發(fā)一個(gè)包含了采集信息的數(shù)據(jù)幀5高32位數(shù)據(jù)為數(shù)據(jù)信息 對(duì)于主機(jī)發(fā)送的報(bào)文,這32位保留 ,暫時(shí)為0 對(duì)于從機(jī)節(jié)點(diǎn)發(fā)送的報(bào)文,這32位為攜帶的數(shù)據(jù)信息 8、簡(jiǎn)單測(cè)試測(cè)試工作是在ads1.2調(diào)試平臺(tái)下進(jìn)行的。測(cè)試過程中的數(shù)據(jù)信息需要在pc機(jī)上進(jìn)行顯示,但是如果是單純的can數(shù)據(jù)是無法直接在pc機(jī)上顯示的,于是,增加了一個(gè)can數(shù)據(jù)到串口數(shù)據(jù)的轉(zhuǎn)化模塊,具體的轉(zhuǎn)化細(xì)節(jié)因不是本文討論的重點(diǎn),所以不作介紹了。 數(shù)據(jù)通過一個(gè)串口軟件在pc機(jī)上進(jìn)行顯示。調(diào)試工作用到三塊開發(fā)板(一塊開發(fā)板用作主機(jī),
30、其余的兩塊用于掛接到總線上的從機(jī)),并口線 ,串口線等。首先測(cè)試的是一對(duì)一的信息采集。設(shè)置主機(jī)的采集方式為一對(duì)一(低32位命令信息為0xaa,高32位數(shù)據(jù)信息為0),然后指定需要采集數(shù)據(jù)的從機(jī)上的郵箱id號(hào),當(dāng)相應(yīng)的從機(jī)郵箱收到信息后,會(huì)將準(zhǔn)備好的數(shù)據(jù)返回給主機(jī)。仿真調(diào)試程序,看pc機(jī)顯示結(jié)果是否為我們指定的數(shù)據(jù)。最后,測(cè)試的是一對(duì)多得信息采集。設(shè)置主機(jī)的采集方式為一對(duì)多(低32位命令信息為0xbb,高32位數(shù)據(jù)信息為0),然后指定需要采集數(shù)據(jù)的從機(jī)上的郵箱id(隨便一個(gè)id號(hào)就可以了,因?yàn)樵诖饲闆r下,沒有對(duì)id號(hào)進(jìn)行匹配),當(dāng)相應(yīng)的從機(jī)組郵箱收到信息后,會(huì)將準(zhǔn)備好的數(shù)據(jù)返回給主機(jī)。仿真調(diào)試,
31、看pc機(jī)顯示結(jié)果是否采集到了多個(gè)信息數(shù)據(jù)。9、can網(wǎng)絡(luò)設(shè)計(jì)考慮到應(yīng)用于工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)采集的實(shí)際需求,可以將整個(gè)can通信網(wǎng)絡(luò)設(shè)計(jì)成一主多從的實(shí)現(xiàn)方式。具體描述如下:1設(shè)置一個(gè)主機(jī),從機(jī)的數(shù)目根據(jù)實(shí)際的采集需求設(shè)置。主機(jī)和從機(jī)的物理載體都是由arm7芯片設(shè)計(jì)的控制器。主機(jī)和每個(gè)從機(jī)都對(duì)應(yīng)一個(gè)獨(dú)立的控制器。2從機(jī)主要負(fù)責(zé)數(shù)據(jù)信息的采集,可以是溫度、壓力、拉力、速度、位移等工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)。實(shí)際應(yīng)用中會(huì)根據(jù)需求設(shè)置總線上應(yīng)掛接的從機(jī)節(jié)點(diǎn)數(shù)目,每個(gè)節(jié)點(diǎn)擁有一個(gè)固定的標(biāo)志符(id),總線上通過id識(shí)別不同的can節(jié)點(diǎn)信息。從機(jī)節(jié)點(diǎn)安裝后,用戶可以通過按鍵和液晶設(shè)置從機(jī)節(jié)點(diǎn)采集信息的性質(zhì),比如溫度、壓力等,而從機(jī)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧中醫(yī)藥大學(xué)杏林學(xué)院《計(jì)算復(fù)雜性》2023-2024學(xué)年第二學(xué)期期末試卷
- 湘南學(xué)院《大學(xué)體育V》2023-2024學(xué)年第一學(xué)期期末試卷
- 沙洲職業(yè)工學(xué)院《版面設(shè)計(jì)與軟件應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省鹽城市大豐區(qū)實(shí)驗(yàn)初級(jí)中學(xué)2024-2025學(xué)年初三下期4月月考復(fù)習(xí)語文試題試卷含解析
- 江門市重點(diǎn)中學(xué)2025年初三沖刺中考最后1卷化學(xué)試題含解析
- 武漢華夏理工學(xué)院《市場(chǎng)營(yíng)銷學(xué)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 麗江職業(yè)技術(shù)學(xué)院《英語基礎(chǔ)寫作(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 內(nèi)蒙古鴻德文理學(xué)院《車橋耦合振動(dòng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 羊只買賣合同范本
- 長(zhǎng)沙理工大學(xué)城南學(xué)院《英語精讀(3)》2023-2024學(xué)年第一學(xué)期期末試卷
- 川教版(2024)小學(xué)信息技術(shù)三年級(jí)上冊(cè)《跨學(xué)科主題活動(dòng)-在線健康小達(dá)人》教學(xué)實(shí)錄
- 2025中考物理總復(fù)習(xí)填空題練習(xí)100題(附答案及解析)
- 機(jī)械專業(yè)英語
- 高空作業(yè)車(剪叉式、曲臂式)驗(yàn)收表
- 廣東省廣州市2024屆高三下學(xué)期一模考試 政治 含解析
- 血透患者敘事護(hù)理故事
- 義務(wù)教育小學(xué)科學(xué)課程標(biāo)準(zhǔn)-2022版
- 江西省南昌市2023-2024學(xué)年八年級(jí)下學(xué)期期中英語試題(含聽力)【含答案解析】
- 2024年全國國家版圖知識(shí)競(jìng)賽題庫及答案
- 新教師三筆字培訓(xùn)課件
- 藍(lán)色西湖大學(xué)頂部導(dǎo)航欄博士碩士研究生畢業(yè)論文答辯模板.x
評(píng)論
0/150
提交評(píng)論