




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)(論文)基于CAN總線的汽車(chē)轉(zhuǎn)速信號(hào)控制系統(tǒng)學(xué) 院 信息工程學(xué)院 專(zhuān) 業(yè) 信息工程(應(yīng)用電子技術(shù)方向) 年級(jí)班別 信息工程(應(yīng)用電子技術(shù)方向)0702 學(xué)生姓名 周威 指導(dǎo)教師 馮 桑 2010 年 6 月 11 日目錄一、緒論2二、汽車(chē)ECU與CAN42.1 CAN總線簡(jiǎn)介42.2硬件連接5系統(tǒng)總體框圖及工作原理分析52.2.2 轉(zhuǎn)速信號(hào)調(diào)制電路6單片機(jī)7總線控制器8接收發(fā)送器82.3系統(tǒng)軟件設(shè)計(jì)9單片機(jī)讀取轉(zhuǎn)速方式9控制器的初始化10信息的發(fā)送11三、CAN總線的數(shù)據(jù)傳輸123.1 報(bào)文123.2錯(cuò)誤檢測(cè)手段143.3 CAN總線的通信協(xié)議14協(xié)議14數(shù)據(jù)傳轉(zhuǎn)協(xié)議15的參數(shù)格式16
2、協(xié)議的制定16四、結(jié)論17五、課程設(shè)計(jì)心得體會(huì)18六、附錄18七、參 考 文 獻(xiàn)29一、緒論1.1背景隨著車(chē)用電氣設(shè)備越來(lái)越多,從發(fā)動(dòng)機(jī)控制到傳動(dòng)系統(tǒng)控制,從行駛、制動(dòng)、轉(zhuǎn)向系統(tǒng)控制到安全保證系統(tǒng)及儀表報(bào)警系統(tǒng),從電源管理到為提高舒適性而作的各種努力,使汽車(chē)電氣系統(tǒng)形成一個(gè)復(fù)雜的大系統(tǒng),而且這一系統(tǒng)都集中在駕駛室控制。另外,隨著近年來(lái)ITS的發(fā)展,以3G(GPS、GIS和GSM)為代表的新型電子通信產(chǎn)品的出現(xiàn),對(duì)汽車(chē)的綜合布線和信息的共享交互提出了更高的要求。CAN總線正是為滿(mǎn)足這些要求而設(shè)計(jì)的。早在1992年,Mercedes-Benz公司就將CAN用于客車(chē)的發(fā)動(dòng)機(jī)管理系統(tǒng),并用于傳遞駕駛信
3、息。隨著Volvo、Saad、Audi、BMW、Volkswagen、Renault和Fiat等汽車(chē)廠商紛紛效仿,CAN逐被歐洲接納為汽車(chē)行業(yè)標(biāo)準(zhǔn),并延伸到工業(yè)控制、航空航天、醫(yī)療器械、娛樂(lè)設(shè)備、樓宇自動(dòng)化領(lǐng)域。目前,歐洲絕大多數(shù)新款客車(chē)的動(dòng)力傳動(dòng)系統(tǒng)和車(chē)身電子系統(tǒng)都分別參照ISO 11989和ISO 11519-2來(lái)進(jìn)行設(shè)計(jì)?;贑AN的故障診斷系統(tǒng)也在大力推進(jìn),其協(xié)議草案ISO/DIS 15765有望很快轉(zhuǎn)為正式標(biāo)準(zhǔn),屆時(shí)CAN的車(chē)用規(guī)模將更加可觀。在歐洲帶動(dòng)下,CAN也逐漸得到其他地區(qū)的認(rèn)同。如過(guò)去在美國(guó),其車(chē)載網(wǎng)絡(luò)Daimler-Chrysler、Fordt和GM三大汽車(chē)公司各成體系,
4、協(xié)議標(biāo)準(zhǔn)主要是汽車(chē)工程師協(xié)會(huì)(SAE)的J1850和J1922。但這些標(biāo)準(zhǔn)對(duì)網(wǎng)絡(luò)各層協(xié)議的規(guī)定及工作性能與CAN相差甚遠(yuǎn),很難被歐洲接受。因此,三大公司已全部轉(zhuǎn)向CAN,SAE也新頒布了J1939、J2411、J2284和J2480等一系列基于CAN的車(chē)用通信協(xié)議標(biāo)準(zhǔn)。ECU(Electronic Control Unit)電子控制單元,又稱(chēng)“行車(chē)電腦”、“車(chē)載電腦”等。從用途上講則是汽車(chē)專(zhuān)用微機(jī)控制器,也叫汽車(chē)專(zhuān)用單片機(jī)。它和普通的單片機(jī)一樣,由微處理器(CPU)、存儲(chǔ)器(ROM、RAM)、輸入/輸出接口(I/O)、模數(shù)轉(zhuǎn)換器(A/D)以及整形、驅(qū)動(dòng)等大規(guī)模集成電路組成。電控單元的功用是根據(jù)
5、其內(nèi)存的程序和數(shù)據(jù)對(duì)空氣流量計(jì)及各種傳感器輸入的信息進(jìn)行運(yùn)算、處理、判斷,然后輸出指令。目前在一些中高級(jí)轎車(chē)上,不但在發(fā)動(dòng)機(jī)上應(yīng)用ECU,在其它許多地方都可發(fā)現(xiàn)ECU的蹤影。例如防抱死制動(dòng)系統(tǒng)、4輪驅(qū)動(dòng)系統(tǒng)、電控自動(dòng)變速器、主動(dòng)懸架系統(tǒng)、安全氣囊系統(tǒng)、多向可調(diào)電控座椅等都配置有各自的ECU。隨著轎車(chē)電子化自動(dòng)化的提高,ECU將會(huì)日益增多,線路會(huì)日益復(fù)雜。為了簡(jiǎn)化電路和降低成本,汽車(chē)上多個(gè)ECU之間的信息傳遞就要采用一種稱(chēng)為多路復(fù)用通信網(wǎng)絡(luò)技術(shù),將整車(chē)的ECU形成一個(gè)網(wǎng)絡(luò)系統(tǒng),也就是前述的CAN數(shù)據(jù)總線。CAN總線以其組網(wǎng)自由,擴(kuò)展性強(qiáng);自動(dòng)錯(cuò)誤界定,簡(jiǎn)化了電控單元對(duì)通信的操作;可根據(jù)內(nèi)容確定優(yōu)
6、先權(quán),解決通信的實(shí)時(shí)性等優(yōu)點(diǎn),不公在汽車(chē)控制和通信網(wǎng)絡(luò)中被廣泛采用,在工業(yè)控制中也有廣闊的應(yīng)用前景。1.2 CAN的國(guó)內(nèi)外發(fā)展?fàn)顩r及遇到的問(wèn)題目前全球各大汽車(chē)制造商在上世紀(jì)90年代后期研發(fā)的汽車(chē)(乘用車(chē)和商用車(chē))都采用了CAN總線或者車(chē)中的部分零部件具有CAN總線通信功能。以CAN總線為代表的車(chē)用總線技術(shù)已成為全球各大汽車(chē)制造商實(shí)施平臺(tái)戰(zhàn)略和模塊化戰(zhàn)略的重要措施之一。此時(shí),總線對(duì)于全球汽車(chē)工業(yè)的意義已遠(yuǎn)遠(yuǎn)超過(guò)節(jié)省線束和連接插件??偩€已成為現(xiàn)代汽車(chē)傳輸整車(chē)控制信息的神經(jīng)網(wǎng)絡(luò)。基于CAN的汽車(chē)內(nèi)聯(lián)網(wǎng)體現(xiàn)了車(chē)用多路總線的發(fā)展趨勢(shì),只是目前還存在一些問(wèn)題,阻礙了它的全面推廣。首先,CAN的技術(shù)規(guī)范還存
7、在一些缺陷,最突出的是無(wú)法實(shí)時(shí)和非實(shí)時(shí)性數(shù)據(jù)動(dòng)態(tài)配置優(yōu)先權(quán)。由于現(xiàn)代車(chē)用通信基本上采用的是網(wǎng)絡(luò)事件觸發(fā)方式,其仲裁是根據(jù)預(yù)定的標(biāo)識(shí)符來(lái)進(jìn)行的,較為優(yōu)先的消息一旦送出來(lái)就不受干擾,所以常會(huì)出現(xiàn)兩種情形:(1)某參數(shù)從全局來(lái)看實(shí)時(shí)性較低,一開(kāi)始分配到的優(yōu)先權(quán)就不高。但控制策略對(duì)各參數(shù)的要求并不是一成不變的,當(dāng)急需這個(gè)參數(shù)時(shí),別的節(jié)點(diǎn)恰好送出一個(gè)優(yōu)先權(quán)較高的信息,CAN死板的仲裁機(jī)制就會(huì)拒絕傳遞這個(gè)參數(shù)。(2)即使分配給該參數(shù)優(yōu)先權(quán)最高,當(dāng)節(jié)點(diǎn)著手發(fā)送該數(shù)據(jù)時(shí),卻發(fā)現(xiàn)前一個(gè)非實(shí)時(shí)性數(shù)據(jù)還沒(méi)有傳完,于是必須等到下一次總線空閑時(shí)才能通信,實(shí)際上這個(gè)參數(shù)還是被擱置了起來(lái)。此外,還有兩個(gè)因素制約著CAN在汽
8、車(chē)中的應(yīng)用:(1)CAN是多主總線,每個(gè)節(jié)點(diǎn)都能自主建立通信。而目前只能以事件觸發(fā)方式工作的CAN控制器根本無(wú)法應(yīng)付“暴風(fēng)驟雨”式的中斷請(qǐng)求。(2)汽車(chē)內(nèi)聯(lián)網(wǎng)所涉及到的節(jié)點(diǎn)種類(lèi)繁多,通信繁忙。本文將設(shè)計(jì)一個(gè)控制器網(wǎng)絡(luò)采集發(fā)動(dòng)機(jī)傳感器的傳來(lái)的轉(zhuǎn)速信息并通過(guò)處理計(jì)算之后發(fā)送到CAN總線傳輸出去。二、汽車(chē)ECU與CAN2.1 CAN總線簡(jiǎn)介一個(gè)由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛無(wú)數(shù)個(gè)節(jié)點(diǎn),實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。目前汽車(chē)上的網(wǎng)絡(luò)連接方式主要采用2條CAN,一條用于驅(qū)動(dòng)系統(tǒng)的高速CAN,速率達(dá)到500kb/s,即動(dòng)力總線;另一條用于車(chē)身系統(tǒng)的低速CAN,速率是100kb
9、/s,也稱(chēng)為娛樂(lè)總線。驅(qū)動(dòng)系統(tǒng)CAN主要是連接發(fā)動(dòng)機(jī)控制器(ECU)、ASR及ABS控制器、安全氣囊控制器、組合儀表等,它們的基本特征相同,都是控制與汽車(chē)行駛直接相關(guān)的系統(tǒng),。車(chē)身系統(tǒng)CAN主要連接對(duì)象是四門(mén)以上的集控鎖、電動(dòng)車(chē)窗、后視鏡和廂內(nèi)照明燈等。有些先進(jìn)的轎車(chē)除了上述兩條總線,還會(huì)有第三條CAN總線,它主要負(fù)責(zé)衛(wèi)星導(dǎo)航及智能通訊系統(tǒng)。CAN總線是一個(gè)三層網(wǎng)絡(luò),包括物理層、數(shù)據(jù)鏈路層及應(yīng)用層。物理層、數(shù)據(jù)鏈路層已經(jīng)由硬件實(shí)現(xiàn),目前都已經(jīng)標(biāo)準(zhǔn)化,有現(xiàn)成的部件(CAN控制器和收發(fā)器)選擇。因此在單片機(jī)上加上CAN控制器、收發(fā)器,軟件實(shí)現(xiàn)相應(yīng)的驅(qū)動(dòng)程序就基本實(shí)現(xiàn)了CAN的通訊功能。但是這對(duì)于汽
10、車(chē)電子上的應(yīng)用還是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)閿?shù)據(jù)鏈路層有很多功能沒(méi)有定義如具有邏輯關(guān)系的消息之間的功能實(shí)現(xiàn)、網(wǎng)絡(luò)管理等等。因此通訊協(xié)議的程序代碼的結(jié)構(gòu)應(yīng)該是底層驅(qū)動(dòng)+應(yīng)用代碼(通訊功能的應(yīng)用代碼)。設(shè)計(jì)CAN底層節(jié)點(diǎn)離不開(kāi)與CAN協(xié)議相關(guān)的專(zhuān)用芯片,主要可分為以下幾類(lèi):(1)收發(fā)器用于將TTL信號(hào)轉(zhuǎn)換為驅(qū)動(dòng)CAN所需的差分電壓信號(hào),高速CAN一般采用 Philips的PCA82C250,低速容錯(cuò)CAN可以使用Motorola的MC33388。(2)獨(dú)立CAN控制器僅集成有CAN模塊的控制芯片,例如Philips的SJA1000,它全部的處理器資源均用于實(shí)現(xiàn)CAN協(xié)議所規(guī)定的功能。(3)嵌有CA
11、N微控制器嵌有CAN協(xié)議控制模塊,并能用于其他工控目的的通用微控制器,例如ST的ST7/9與Motorola的MC68HC908AZ系列等。一般,“CAN微控制器+收發(fā)器”或“通用微控制器+獨(dú)立CAN控制器+收發(fā)器”這樣的組合,配上相應(yīng)的外圍電路就構(gòu)成節(jié)點(diǎn)。它們既能承擔(dān)一定的測(cè)控任務(wù),又能收/發(fā)處理協(xié)議信息,經(jīng)導(dǎo)線連接就形成所謂的“控制器網(wǎng)絡(luò)”。本文的設(shè)計(jì)就是一個(gè)典型的“通用微控制器+獨(dú)立CAN控制器+收發(fā)器”的組合,并且簡(jiǎn)單地設(shè)計(jì)了一個(gè)總線協(xié)議的報(bào)文。2.2硬件連接系統(tǒng)總體框圖及工作原理分析圖2.1是設(shè)計(jì)總框圖:圖2.1 設(shè)計(jì)原理框圖工作原理分析:從發(fā)動(dòng)機(jī)傳感器傳來(lái)的轉(zhuǎn)速信號(hào),經(jīng)過(guò)轉(zhuǎn)速信號(hào)緩
12、沖調(diào)理電路將原較小的正弦模擬信號(hào)轉(zhuǎn)化為矩形脈沖信號(hào),再將該信號(hào)送入單片機(jī)的外部中斷/INT0引腳,將其設(shè)定為邊沿觸發(fā)方式,用T1作定時(shí)器對(duì)方波信號(hào)進(jìn)行脈沖測(cè)量,在一定時(shí)間內(nèi)所得脈沖經(jīng)查表在ROM存儲(chǔ)器讀取對(duì)應(yīng)的轉(zhuǎn)速信號(hào)再傳送到CAN控制器中,CAN控制器執(zhí)行完整的CAN協(xié)議,完成通信功能,之后CAN接收發(fā)送器接收到CAN控制器的信號(hào),將CAN控制器的邏輯電平信號(hào)轉(zhuǎn)換為總線上的物理電平,再由事先約定好的總線協(xié)議以報(bào)文的形式從CAN總線上發(fā)送出去。2.2.2 轉(zhuǎn)速信號(hào)調(diào)制電路信號(hào)調(diào)理是把來(lái)自傳感器的模擬信號(hào)轉(zhuǎn)換為用于數(shù)據(jù)采集、控制過(guò)程、執(zhí)行計(jì)算、顯示讀出和其他目的的數(shù)字信號(hào)。模擬傳感器可測(cè)量很多物
13、理量,如溫度、壓力、力、流量、位置、pH值、光強(qiáng)等。通常,傳感器信號(hào)不能直接變換為數(shù)字量,這是因?yàn)閭鞲衅鬏敵鍪窍喈?dāng)小的電壓、電流或電阻變化,因此在轉(zhuǎn)換為數(shù)字量之前必須進(jìn)行調(diào)理。調(diào)理就是放大、緩沖或標(biāo)定模擬信號(hào),使其適合于模數(shù)轉(zhuǎn)換器(ADC)的輸入。然后,ADC對(duì)模擬信號(hào)進(jìn)行數(shù)字化,并把數(shù)字信號(hào)送到微控制器或其他數(shù)字器件中,以便用于系統(tǒng)的數(shù)據(jù)處理。此鏈路工作的關(guān)鍵是選擇運(yùn)算放大器,運(yùn)算放大器要正確地接口被測(cè)的各種類(lèi)型傳感器。由發(fā)動(dòng)機(jī)轉(zhuǎn)速傳感器的特性可知,發(fā)動(dòng)機(jī)轉(zhuǎn)速信號(hào)是一個(gè)調(diào)頻信號(hào),幅度不為常數(shù),且動(dòng)態(tài)范圍較大。磁感應(yīng)式傳感器所測(cè)得的信號(hào)幅值將隨發(fā)動(dòng)機(jī)的轉(zhuǎn)速不同而不同。從某種意義上說(shuō),它就相當(dāng)于
14、是一個(gè)波形發(fā)生器。發(fā)動(dòng)機(jī)轉(zhuǎn)速信號(hào)緩沖調(diào)理電路如圖2.3所示。 發(fā)動(dòng)機(jī)轉(zhuǎn)速傳感器輸出的正弦波信號(hào),經(jīng)過(guò)R1和VD組成的削波電路,再由R2和C2進(jìn)行RC濾波,輸入LM293反相端,最后輸出方波。該電路的施密特特性如下,當(dāng)LM293輸出為高電平時(shí),相當(dāng)于R4和R5并聯(lián),然后與R6分壓,此時(shí) (2.1)而當(dāng)LM293輸出為低電平時(shí),相當(dāng)于R4和R6并聯(lián),然后與R4分壓,此時(shí)有 (2.2)這樣就產(chǎn)生一個(gè)回差電壓;UT=UH-UL,使得電路有很強(qiáng)的抗干擾能力,只要輸入信號(hào)的幅度大于U5H,即可在輸出端得到同頻率的矩形脈沖信號(hào)。即使傳感器輸出的正弦波不規(guī)則,在傳輸過(guò)程中加入了噪聲,也不影響最后的輸
15、出矩形脈沖信號(hào)。圖2.2 發(fā)動(dòng)機(jī)轉(zhuǎn)速調(diào)制電路AT89C51單片機(jī)所謂單片機(jī),即把組成微型計(jì)算機(jī)的各個(gè)功能部件,如中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、輸入/輸出接口電路、定時(shí)器/計(jì)數(shù)器以及串行通信接口等集成在一塊芯片中,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。單片機(jī)的獨(dú)特結(jié)構(gòu)決定了它具有如下特點(diǎn): 高集成度、高可靠性 控制功能強(qiáng) 低電壓、低功耗 優(yōu)異的性能價(jià)格比AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位的單片機(jī)。AT89C2051是一種帶2
16、K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 SAJ1000CAN總線控制器 PHILIPS公司的PCA82C200是符合CAN2.0A協(xié)議的總線控制器,SJA1000是它的替代產(chǎn)品,它是應(yīng)用于汽車(chē)和一般工業(yè)環(huán)境的獨(dú)立CAN總線控制器。具有完成CAN通
17、信協(xié)議所要求的全部特性。經(jīng)過(guò)簡(jiǎn)單總線連接的SJA1000可完成CAN總線的物理和數(shù)據(jù)鏈路層的所有功能。其硬件與軟件設(shè)計(jì)和PCA82C200的基本CAN模式(BesicCAN)兼容。同時(shí),新增加的增強(qiáng)CAN模式(PeliCAN)還可支持CAN2.0B協(xié)議。PCA82C250CAN接收發(fā)送器PCA82C250是CAN協(xié)議控制器和物理總線之間的接口,該器件對(duì)總線提供差動(dòng)發(fā)送能力并對(duì)CAN控制器提供差動(dòng)接收能力。如在ISO11898標(biāo)準(zhǔn)中描述的,它們可以用高達(dá)1Mbit/s的位速率在兩條有差動(dòng)電壓的總線電纜上傳輸數(shù)據(jù)。這是全世界使用最廣泛的CAN收發(fā)器之一。2.3系統(tǒng)軟件設(shè)計(jì)CAN接口通信程序主要包括
18、CAN控制器的初始化、數(shù)據(jù)接收和數(shù)據(jù)發(fā)送程序。(由于是要將轉(zhuǎn)速信號(hào)發(fā)送到CAN收發(fā)器,故不描述數(shù)據(jù)接收的部分)主程序通過(guò)調(diào)用函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送,流程圖如圖2.3所示,在數(shù)據(jù)接收程序中,通過(guò)查詢(xún)方式讀取相應(yīng)消息對(duì)象中的數(shù)據(jù)。 單片機(jī)讀取轉(zhuǎn)速方式在本設(shè)計(jì)里,外部信號(hào)送入單片機(jī)的外部中斷/INT0引腳,將其設(shè)定為邊沿觸發(fā)方式,用T1作定時(shí)器對(duì)方波信號(hào)進(jìn)行周期測(cè)量,經(jīng)查表得到轉(zhuǎn)速。程序流程圖如圖2.4所示。發(fā)動(dòng)機(jī)啟動(dòng)時(shí),每轉(zhuǎn)過(guò)一個(gè)輪齒,傳感器會(huì)產(chǎn)生一個(gè)正弦信號(hào),此信號(hào)經(jīng)過(guò)處理后接到單片機(jī)INT0引腳,在定時(shí)器一個(gè)規(guī)定時(shí)間內(nèi)對(duì)信號(hào)脈沖進(jìn)行和計(jì)算,從ROM存儲(chǔ)器中讀取此時(shí)對(duì)應(yīng)的轉(zhuǎn)速數(shù)值,送至CAN
19、總線控制器等待發(fā)送。具體源程序見(jiàn)附錄2中的查表程序。對(duì)于脈沖信號(hào),在對(duì)其進(jìn)行采集時(shí)需要進(jìn)行整形處理,如轉(zhuǎn)速傳感器獲取發(fā)動(dòng)機(jī)飛輪旋轉(zhuǎn)時(shí)輪齒的信號(hào),是正弦交流信號(hào),將其整形為方波信號(hào),利用定時(shí)器/計(jì)數(shù)器模塊采集方波的頻率來(lái)完成速度采集。為提高轉(zhuǎn)速采集的實(shí)時(shí)性,通常采集脈沖信號(hào)的周期(兩個(gè)脈沖信號(hào)上升沿或下降沿之間的時(shí)間)來(lái)計(jì)算其頻率,并計(jì)算發(fā)動(dòng)機(jī)轉(zhuǎn)速,計(jì)算公式如下公式(3.1)所示。 (3.1)式(3.1)中fosc為系統(tǒng)時(shí)鐘周期,k為分頻系數(shù),為發(fā)動(dòng)機(jī)飛輪齒圈齒數(shù)(對(duì)于康明斯發(fā)動(dòng)機(jī)為為輪齒脈沖兩次上升(或下降)沿的計(jì)數(shù)器值??筛鶕?jù)此公式計(jì)算出單片機(jī)查表所需的數(shù)據(jù),并將其放在存儲(chǔ)器。 控制器的初始
20、化初始化程序主要是通過(guò)對(duì)CAN控制器控制段中的寄存器寫(xiě)入控制字,從而確定CAN控制器的工作方式等。有3種方式進(jìn)入初始化程序:一是上電復(fù)位;二是硬件復(fù)位;三是軟件復(fù)位,即運(yùn)行期間通過(guò)給CAN控制器發(fā)一個(gè)復(fù)位請(qǐng)求,置復(fù)位請(qǐng)求為1。在復(fù)位期間,必須初始化的寄存器有:MR模式寄存器、CDR時(shí)分寄存器、ACR接收代碼寄存器、AMR屏蔽寄存器、BTR總線定時(shí)定時(shí)器及OCR輸出控制寄存器等。需要注意的是,這些寄存器僅能在復(fù)位期間寫(xiě)訪問(wèn)。因此,在對(duì)這些寄存器初始化前,必須確保系統(tǒng)進(jìn)入了復(fù)位狀態(tài)。初始化程序的流程圖如圖2.5所示。源程序見(jiàn)附錄2。 信息的發(fā)送信息從CAN控制器發(fā)送到CAN總線是由CAN控制器自動(dòng)
21、完成的。發(fā)送程序只須所被發(fā)送的信息幀送到CAN的發(fā)送緩沖區(qū),且啟動(dòng)發(fā)送命令即可。發(fā)送程序可采用查詢(xún)方式或中斷方式。本文中用的是中斷方式。對(duì)于中斷方式,發(fā)送程序分為兩部分:一是主程序;二是中斷服務(wù)程序。主程序主要用于控制信息的發(fā)送及當(dāng)發(fā)送緩沖區(qū)滿(mǎn)時(shí),把要發(fā)送的信息暫存到臨時(shí)存儲(chǔ)區(qū);中斷服務(wù)程序負(fù)責(zé)把臨時(shí)存儲(chǔ)區(qū)中的暫存信息發(fā)送出去。發(fā)送主程序如圖2.6所示。源程序見(jiàn)附錄2。三、CAN總線的數(shù)據(jù)傳輸 CAN總線中,各節(jié)點(diǎn)應(yīng)使用相同的位速率。它的每位時(shí)間由同步段、傳播段、相位緩沖段1和相位緩沖段2組成。發(fā)送器在同步段前改變輸出的位數(shù)值。接收器在兩個(gè)相位緩沖段之間采樣輸入位值。而兩個(gè)相位緩沖段長(zhǎng)度可自由
22、控制,以保證采樣的可靠性。除此之外,由于各節(jié)點(diǎn)的時(shí)鐘總有小的差異,CAN總線使用時(shí)鐘同步技術(shù)來(lái)保證通信的同步性,并在實(shí)際傳送中,遇到連續(xù)發(fā)送的五位相同時(shí),將自動(dòng)插入一個(gè)補(bǔ)碼位。3.1 報(bào)文CAN總線以報(bào)文為單位進(jìn)行信息傳送。報(bào)文中包含標(biāo)識(shí)符ID,它也標(biāo)志了報(bào)文的優(yōu)先權(quán)。CAN總線上各個(gè)節(jié)點(diǎn)都可以主動(dòng)發(fā)送。如同時(shí)有兩個(gè)或更多節(jié)點(diǎn)開(kāi)始發(fā)送報(bào)文,采用標(biāo)識(shí)符ID來(lái)仲裁,發(fā)送具有高優(yōu)先權(quán)報(bào)文節(jié)點(diǎn)贏得總線使用權(quán),而其它節(jié)點(diǎn)自動(dòng)停止發(fā)送。在總線再次空閑后,這些節(jié)點(diǎn)將自動(dòng)重發(fā)原報(bào)文。CAN系統(tǒng)中,一個(gè)CAN節(jié)點(diǎn)不使用有關(guān)系統(tǒng)結(jié)構(gòu)的任何信息(如站地址等)。報(bào)文中的標(biāo)識(shí)符ID并不指出報(bào)文的目的地址,而是描述數(shù)據(jù)的
23、含義。網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都可由ID來(lái)自動(dòng)決定是否接收該報(bào)文。每個(gè)節(jié)點(diǎn)都有ID寄存器和屏蔽寄存器,接收到的報(bào)文只有與該屏蔽的功能相同時(shí),該節(jié)點(diǎn)才開(kāi)始正式接收?qǐng)?bào)文,否則它將不理睬ID后面的報(bào)文。這使CAN系統(tǒng)非常靈活,可任意擴(kuò)展或改變網(wǎng)絡(luò)組成。(1)幀、數(shù)據(jù)幀數(shù)據(jù)幀用于在各個(gè)節(jié)點(diǎn)之間傳送數(shù)據(jù)或命令,它由7個(gè)不同的位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC場(chǎng)、應(yīng)答場(chǎng)和幀結(jié)束,其表示為幀起始仲裁場(chǎng)控制場(chǎng)數(shù)據(jù)場(chǎng)CRC場(chǎng)應(yīng)答場(chǎng)幀結(jié)束SOF11位標(biāo)識(shí)符RTRr1r2DLC(4)n8*n位16位2位7位表1 幀起始(SOF) 標(biāo)志數(shù)據(jù)幀的開(kāi)始。它由一個(gè)主控位構(gòu)成。 仲裁場(chǎng) 由11位標(biāo)識(shí)符(ID)和遠(yuǎn)程發(fā)送
24、請(qǐng)求(RTR)組成,其中最高7位不能完全是隱性位。ID決定了報(bào)文的優(yōu)先權(quán)。如主插位為0,隱性位為1,則ID的數(shù)值越小,優(yōu)先線越高。對(duì)數(shù)據(jù)幀,RTR為主控電平。 控制場(chǎng) r1和r0為保留位,應(yīng)發(fā)送主控電平。DLC為數(shù)據(jù)長(zhǎng)度碼n,它為08。 數(shù)據(jù)場(chǎng) 允許的數(shù)據(jù)字節(jié)長(zhǎng)度為08,由n決定。 CRC場(chǎng) 采用15位CRC,其生成多項(xiàng)式為X15+X14+X10+X8+X7+X4+X3+1CRC場(chǎng)的最后一位為CRC分隔符,它為隱性電平。 應(yīng)答場(chǎng) 包括應(yīng)答位和應(yīng)答分隔符。發(fā)送站發(fā)出的這兩位均為隱性電平。而正確地接收到有效報(bào)文的接收站,在應(yīng)答位期間應(yīng)傳送主控電平給發(fā)送站。應(yīng)答分隔符應(yīng)為隱性電平。 幀結(jié)束 由7位隱
25、性電平組成。以上為標(biāo)準(zhǔn)格式的數(shù)據(jù)幀,除此之外,在CAN規(guī)范2.0B中,還定義了擴(kuò)展格式的數(shù)據(jù)幀,它的標(biāo)識(shí)符擴(kuò)展為29位。它的前11位標(biāo)識(shí)符后的兩位為SRR和IDE,它們均為隱性電平(這使它的優(yōu)先級(jí)低于標(biāo)準(zhǔn)格式的數(shù)據(jù)幀(在前11們標(biāo)識(shí)符相同時(shí)),后面為新增的18位標(biāo)識(shí)符,其余與標(biāo)準(zhǔn)格式相同。、遠(yuǎn)程幀接收數(shù)據(jù)的站可發(fā)送遠(yuǎn)程來(lái)要求源節(jié)點(diǎn)送數(shù)據(jù)。它由6個(gè)位場(chǎng)組成:幀起始、伸裁場(chǎng)、控制場(chǎng)、CRC場(chǎng)、應(yīng)答場(chǎng)和幀結(jié)束。除了沒(méi)有數(shù)據(jù)場(chǎng)和仲裁場(chǎng)的RTR位為隱性電平外,遠(yuǎn)程幀與數(shù)據(jù)完全相同。它也有標(biāo)準(zhǔn)和擴(kuò)展兩種格式。、出錯(cuò)幀出錯(cuò)幀由錯(cuò)誤標(biāo)志表和錯(cuò)誤分隔符組成。接收站在發(fā)現(xiàn)總線上的報(bào)文出錯(cuò)時(shí),將自動(dòng)發(fā)出“活動(dòng)錯(cuò)誤志
26、”,它為6個(gè)連續(xù)的主控位。由于各個(gè)接收站發(fā)現(xiàn)錯(cuò)誤的時(shí)間可能不同,總線上的實(shí)際錯(cuò)誤標(biāo)志可能由612位主控位所組成。在錯(cuò)誤標(biāo)志后為8個(gè)隱性位組成的錯(cuò)誤分隔符。每個(gè)站發(fā)送錯(cuò)誤標(biāo)志后,開(kāi)始發(fā)送隱性電平,并監(jiān)視總線,在檢測(cè)到出錯(cuò)誤條件時(shí),將發(fā)送“認(rèn)可錯(cuò)誤標(biāo)志”,它為6個(gè)連續(xù)的隱性位。、超載幀超載幀由超載標(biāo)志和超載分隔符組成。超載幀只能在一個(gè)幀的結(jié)束開(kāi)始。在一個(gè)接收站要求延遲下一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀,或在幀間空間的間歇場(chǎng)的第1、2位檢測(cè)到主控位及在錯(cuò)誤、超載分隔符的最后一位采樣到主控位,開(kāi)始發(fā)送超載幀。超載標(biāo)志由6個(gè)主控位組成,而總線上的實(shí)際超載標(biāo)志為67位。超載分隔符為8個(gè)隱性位。、幀間空間數(shù)據(jù)幀和遠(yuǎn)程幀與
27、前面的任何幀用幀間空間分隔開(kāi)。它包括歇場(chǎng)和總線空閑場(chǎng)。間歇場(chǎng)由3個(gè)隱性位組成??偩€空閑場(chǎng)可為任何長(zhǎng)度,此時(shí)總線處于空閑狀態(tài),允許發(fā)送站發(fā)送新報(bào)文。對(duì)于已發(fā)送“認(rèn)可錯(cuò)誤標(biāo)志”的站,它在間歇場(chǎng)后還將送出8個(gè)隱性位。3.2錯(cuò)誤檢測(cè)手段CAN為了提高干擾能力和數(shù)據(jù)的可靠性,采用了多種錯(cuò)誤檢測(cè)手段。、發(fā)送監(jiān)視發(fā)送站時(shí)刻檢測(cè)它發(fā)送的每一位數(shù)值,如監(jiān)視到的總線數(shù)值與送出的數(shù)值不同時(shí),則為位錯(cuò)誤。、填充錯(cuò)誤在應(yīng)用位填充方法進(jìn)行編碼的報(bào)文字段中,出現(xiàn)第6個(gè)連續(xù)相同的位電平。、CRC錯(cuò)誤接收站計(jì)算得出的CRC序列與接收到的不同。、格式錯(cuò)固定格式的位場(chǎng)的格式與規(guī)定不同。、應(yīng)答錯(cuò)誤在應(yīng)答位期間,發(fā)送站未檢測(cè)到主控位。
28、發(fā)現(xiàn)出錯(cuò)誤時(shí),接收站將發(fā)送活動(dòng)出錯(cuò)標(biāo)志,而發(fā)送站將發(fā)送認(rèn)可出錯(cuò)標(biāo)志。3.3 CAN總線的通信協(xié)議 J1939協(xié)議J1939是一種支持閉環(huán)控制的在多個(gè)ECU之間高速通信的網(wǎng)絡(luò)協(xié)議岡。主要運(yùn)用于載貨車(chē)和客車(chē)上。它是以CAN2.0為網(wǎng)絡(luò)核心。表1介紹了CAN2.0的標(biāo)準(zhǔn)和擴(kuò)展格式,及J1939協(xié)議所定義的格式。表2則給出了J1939年的一個(gè)協(xié)議報(bào)文單元的具體格式??梢钥闯?,J1939標(biāo)識(shí)符包括:PRIORTY(優(yōu)先權(quán)位);R(保留位);DP(數(shù)據(jù)頁(yè)位);PDU FORMAAT(協(xié)議數(shù)據(jù)單元);PDU SPECIFIC(擴(kuò)展單元)和SOURCE ADDRESS(源地址)。而報(bào)文單元還包括64位的數(shù)據(jù)場(chǎng)
29、。表1 CAN2.0的標(biāo)準(zhǔn)和擴(kuò)展格式及J1939協(xié)議所定義的格式。 表2 J1939協(xié)議報(bào)文單元的具體格式 數(shù)據(jù)傳轉(zhuǎn)協(xié)議J1939通信中的核心是負(fù)責(zé)數(shù)據(jù)傳輸?shù)膫鬏攨f(xié)議。它的功能分為兩部分:數(shù)據(jù)的拆分打包和重組。一個(gè)J1939的報(bào)文單元只有8個(gè)字節(jié)的數(shù)據(jù)場(chǎng)。因此如果所要發(fā)送的數(shù)據(jù)超過(guò)了8字節(jié),就應(yīng)該分成幾個(gè)小的數(shù)據(jù)包分批發(fā)送。數(shù)據(jù)場(chǎng)的第一個(gè)字節(jié)從1開(kāi)始作為報(bào)文的序號(hào),后7個(gè)字節(jié)用來(lái)存放數(shù)據(jù)。所以可以發(fā)送255×7=1785個(gè)字節(jié)的數(shù)據(jù)。報(bào)文被接收以后按序號(hào)重新組合成原來(lái)的數(shù)據(jù)。連接管理。主要對(duì)節(jié)點(diǎn)之間連接的建立和關(guān)閉,數(shù)據(jù)的傳送進(jìn)行管理。其中定義了5種幀結(jié)構(gòu):發(fā)送請(qǐng)求幀、發(fā)送清除幀、結(jié)
30、束應(yīng)答幀、連接失敗幀以及用來(lái)全局接收的廣播幀。節(jié)點(diǎn)之間的連接通過(guò)一個(gè)節(jié)點(diǎn)向目的地址發(fā)送一個(gè)發(fā)送請(qǐng)求幀而建立。在接收發(fā)送請(qǐng)求幀以后,節(jié)點(diǎn)如果有足夠的空間來(lái)接收數(shù)據(jù)并且數(shù)據(jù)有效,則發(fā)送一個(gè)發(fā)送清除幀,開(kāi)始數(shù)據(jù)的傳送。如果存儲(chǔ)空間不夠或者數(shù)據(jù)無(wú)效等原因,節(jié)點(diǎn)需要拒絕連接,則發(fā)送連接失敗幀,連接關(guān)閉。如果數(shù)據(jù)接收全部完成。則節(jié)點(diǎn)發(fā)送一個(gè)結(jié)束應(yīng)答幀,連接關(guān)閉。 J1939的參數(shù)格式J1939中還定義了參數(shù)的具體格式,如標(biāo)識(shí)符、優(yōu)先級(jí)、數(shù)據(jù)長(zhǎng)度、參數(shù)的范圍等。參數(shù)又劃分為狀態(tài)參數(shù)和測(cè)量參數(shù)。狀態(tài)參數(shù)表示具有多態(tài)信號(hào)的某一種狀態(tài),如發(fā)動(dòng)機(jī)剎車(chē)使能/禁能、巡航控制激活/關(guān)閉,扭矩/速度控制超載模式、錯(cuò)誤代碼等
31、。而測(cè)量參數(shù)則表示所接收到的信號(hào)的值的具體大小,如缸內(nèi)爆發(fā)壓力、最大巡航速度、發(fā)動(dòng)機(jī)轉(zhuǎn)速等。 協(xié)議的制定從上面的J1939內(nèi)容看出,其11位標(biāo)識(shí)符決定了CAN總線中報(bào)文接發(fā)的情況。本設(shè)計(jì)中采用CAN2.0B標(biāo)準(zhǔn)11位ID。設(shè)發(fā)動(dòng)機(jī)ECU單元接發(fā)器為接點(diǎn)1,到CAN總線的另一邊接發(fā)器為接點(diǎn)2,如下表所示,將ID0ID10中標(biāo)識(shí)符的高7位ID4ID10定義為地址段,標(biāo)記CAN總線中不同的通訊站點(diǎn);標(biāo)識(shí)符的低4位ID0ID3為指令段,標(biāo)記各站點(diǎn)的不同數(shù)據(jù)后,后4位用0填補(bǔ),采用16位制描述數(shù)據(jù)標(biāo)識(shí)ID10ID9ID8ID7ID6ID5ID4標(biāo)記簡(jiǎn)號(hào)站點(diǎn)00011110x1E00JD1接點(diǎn)100101
32、000x2800JD2接點(diǎn)2CAN總線上傳輸?shù)膱?bào)文以各種形式的幀組成,對(duì)于接點(diǎn)1和接點(diǎn)2之間傳輸?shù)臄?shù)據(jù)幀,參照前面CAN介紹中報(bào)文有關(guān)數(shù)據(jù)幀的格式,假定接點(diǎn)1中發(fā)送的數(shù)據(jù)幀結(jié)構(gòu)如下:報(bào)文發(fā)送到CAN總線上,任何接點(diǎn)都可以接收到,但只有仲裁場(chǎng)標(biāo)識(shí)符為0x2800的接點(diǎn)才能接收并解讀這幀信息。這樣就完成數(shù)據(jù)從接點(diǎn)1到接點(diǎn)2的傳送。四、結(jié)論1、基于CAN總線的發(fā)動(dòng)機(jī)轉(zhuǎn)速傳感器具有測(cè)量準(zhǔn)確度高、實(shí)用性和抗干擾性強(qiáng)、工作可靠等優(yōu)點(diǎn),適合在汽車(chē)運(yùn)動(dòng)環(huán)境中使用,且易于與其它測(cè)控節(jié)點(diǎn)組成網(wǎng)絡(luò),實(shí)現(xiàn)傳感器數(shù)據(jù)的網(wǎng)絡(luò)化傳輸。2、CAN總線具有以下優(yōu)點(diǎn): 組網(wǎng)自由,擴(kuò)展性強(qiáng); 自動(dòng)錯(cuò)誤界定,簡(jiǎn)化了電控單元對(duì)通信的操
33、作; 可根據(jù)數(shù)據(jù)內(nèi)容確定優(yōu)先權(quán),解決通信的實(shí)時(shí)性問(wèn)題。3、使用CAN控制器或帶有CAN控制器的單片微機(jī)實(shí)現(xiàn)多接點(diǎn)通信,與使用異步串行通信口(UART)和軟件來(lái)實(shí)現(xiàn)多接點(diǎn)通信相比,具有以下優(yōu)點(diǎn):(1)可實(shí)現(xiàn)全分布式多接點(diǎn)系統(tǒng)無(wú)主、從接點(diǎn)之分,各節(jié)點(diǎn)均可主動(dòng)發(fā)送報(bào)文;(2)不需軟件干預(yù),可自動(dòng)完成一幀報(bào)文的發(fā)送,并有總線仲裁和重發(fā)功能;(3)具有強(qiáng)有力的錯(cuò)誤檢測(cè)功能,能自動(dòng)完成出錯(cuò)處理和應(yīng)答處理;(4)不需軟件干預(yù),可自動(dòng)完成報(bào)文濾波功能,僅在符合時(shí)才進(jìn)行報(bào)文接收,并能在一幀報(bào)文接收完成喚醒CPU進(jìn)行處理;(5)通信速率可高至1Mbps,大部分通信處理由硬件完成,減輕CPU的負(fù)載、減少成本的開(kāi)支,
34、大大加快通信速度;(6)本身帶總線接口電路可直接與CAN總線接口,省去RS-485等電平接口電路,降低系統(tǒng)成本4、本設(shè)計(jì)只針對(duì)發(fā)動(dòng)機(jī)中某一信號(hào)(如轉(zhuǎn)速)的傳送過(guò)程進(jìn)行設(shè)計(jì)與測(cè)試,電路框圖相對(duì)簡(jiǎn)單,但其具有重要的參考價(jià)值。當(dāng)需要同時(shí)測(cè)試發(fā)動(dòng)機(jī)多個(gè)狀態(tài)信號(hào)時(shí),在本設(shè)計(jì)基礎(chǔ)上適當(dāng)添加ECU處理單元,其傳輸?shù)膱?bào)文格式和協(xié)議是一樣的。由于CAN的MAC層協(xié)議采用的是CSMA/CA協(xié)議,它的時(shí)態(tài)特性是不確定的。即使是具有最高優(yōu)先權(quán)的信息也可能會(huì)產(chǎn)生小的延遲;信息的優(yōu)先權(quán)越低,介質(zhì)訪問(wèn)所產(chǎn)生的延時(shí)抖動(dòng)就越高。因此,在一些對(duì)網(wǎng)絡(luò)延時(shí)特別敏感的NCS系統(tǒng)中,標(biāo)準(zhǔn)CAN協(xié)議并不是很適合的傳輸網(wǎng)絡(luò)。時(shí)間觸發(fā)的TTC
35、AN在時(shí)間確定性和柔性操作方面都有很大的提高。采用TTCAN作為通信主干可以減少延時(shí)抖動(dòng);保證總線上的確定性通信;更加有效地利用網(wǎng)絡(luò)帶寬。根據(jù)TTCAN提供的服務(wù)質(zhì)量QoS,下一步對(duì)NCS的研究工作將集中在設(shè)計(jì)出滿(mǎn)足性能質(zhì)量QoP要求的高級(jí)控制器。五、課程設(shè)計(jì)心得體會(huì)兩周的汽車(chē)電子課程設(shè)計(jì)結(jié)束了,作為一名應(yīng)用電子技術(shù)大三的學(xué)生,我覺(jué)得能做這樣的課程設(shè)計(jì)是十分有意義。在已度過(guò)的兩年半大學(xué)生活里我們大多數(shù)接觸的是專(zhuān)業(yè)基礎(chǔ)課。我們?cè)谡n堂上掌握的僅僅是專(zhuān)業(yè)基礎(chǔ)課的理論面,如何去面對(duì)現(xiàn)實(shí)中的各種電子設(shè)計(jì)?如何把我們所學(xué)到的專(zhuān)業(yè)基礎(chǔ)理論知識(shí)用到實(shí)踐中去呢?我想做類(lèi)似的大作業(yè)就為我們提供了良好的實(shí)踐平臺(tái)。在
36、做本次課程設(shè)計(jì)的過(guò)程中,我感觸最深的當(dāng)屬查閱了很多次設(shè)計(jì)書(shū)和指導(dǎo)書(shū)。為了讓自己的設(shè)計(jì)更加完善,一次次翻閱相關(guān)書(shū)籍是十分必要的,同時(shí)也是必不可少的。我們做的是課程設(shè)計(jì),而不是藝術(shù)家的設(shè)計(jì)。藝術(shù)家可以拋開(kāi)實(shí)際,盡情在幻想的世界里翱翔,我們是學(xué)生,一切都要有據(jù)可依.有理可尋,不切實(shí)際的構(gòu)想永遠(yuǎn)只能是構(gòu)想,永遠(yuǎn)無(wú)法升級(jí)為設(shè)計(jì)。另外,課堂上也有部分知識(shí)不太清楚,于是我又不得不邊學(xué)邊用,時(shí)刻鞏固所學(xué)知識(shí),這也是我作本次課程設(shè)計(jì)的第二大收獲。整個(gè)設(shè)計(jì)我基本上還滿(mǎn)意,由于水平有限,難免會(huì)有錯(cuò)誤,還望老師批評(píng)指正。六、附錄附錄1 各IC資料1、 AT89C51單片機(jī)引腳功能:VCC:供電電壓GND:接地。P0口
37、:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2
38、口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為
39、低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3口管腳備選功能:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖
40、存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/
41、VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任
42、何要求,但必須保證脈沖的高低電平要求的寬度。2、SJA1000CAN控制器引腳功能:AD7AD0:地址數(shù)據(jù)復(fù)用線。ALE/AS:ALE輸入信號(hào)(Intel模式)或AS輸入信號(hào)(Motorola模式)。CS:片選信號(hào),低電平允許訪問(wèn)SJA1000。RD/E:來(lái)自微控制器的RD信號(hào)(Intel模式)或E使能信號(hào)(Motorola模式)。WR:來(lái)自微控制器的WR信號(hào)(Intel模式)或RD/WR使能信號(hào)(Motorola模式)。CLKOUT:SJA1000產(chǎn)生用于微控制器的時(shí)鐘輸出信號(hào);時(shí)鐘信號(hào)由內(nèi)置晶體振蕩器通過(guò)可編程除法器產(chǎn)生;時(shí)鐘除法寄存器中的時(shí)鐘停止位能使該引腳無(wú)效。VDD1和VSS1:邏輯
43、電路5V電源和邏輯電路地。XTAL:晶體振蕩器放大器輸入,外部晶體振蕩器信號(hào)由該腳輸入。XTAL2:晶體振蕩器放大器輸出,當(dāng)使用外部晶體振蕩器信號(hào)時(shí),該輸出引腳必須開(kāi)路。VDD3和VSS3:輸出驅(qū)動(dòng)5V電源和輸出驅(qū)動(dòng)地。TX0和TX1:CAN輸出驅(qū)動(dòng)器0和1輸出到物理總線。INT:中斷輸出,用于觸發(fā)微控制器中斷;內(nèi)部中斷寄存器的任何位置位,INT將低電平輸出;INT為開(kāi)環(huán)輸出;該引腳為低電平將電路從睡眠狀態(tài)激活。RST:復(fù)位輸入,用于復(fù)位CAN接口(低電平有效)。VDD2和VSS2:輸入比較器5V電源和輸入比較器地。RX0和RX1:從物理CAN總線輸入到SJA1000的輸入比較器。3、PCA8
44、2C250CAN接收發(fā)送器功能框圖附錄圖3 PCA82C250功能框附錄2 具體程序查表程序:從發(fā)動(dòng)機(jī)轉(zhuǎn)速信號(hào)緩沖調(diào)理電路傳來(lái)的矩形脈沖信號(hào),直接接在80C51單片機(jī)的外部中斷INT0上。設(shè)用定時(shí)器T1模式2對(duì)轉(zhuǎn)速信號(hào)進(jìn)行采集。對(duì)于一般發(fā)動(dòng)機(jī)的齒輪數(shù)為173齒。TI的計(jì)數(shù)初值:X=TL1的初值為53H,重裝初值寄存器TH1的初值也為53H程序清單如下:MAIN:Mov TMOD, #60H ;置T1為模式2計(jì)數(shù)方式工作 Mov TL1, #53H ;賦初值 Mov TH1,#53H Mov IE, #88H ;定時(shí)器T1開(kāi)中斷 SETB TR1 ;啟動(dòng)定時(shí)器 Mov R0,#00H ;設(shè)置中斷
45、脈沖計(jì)數(shù)器 Mov R1,#FFH ;設(shè)置計(jì)數(shù)時(shí)間HERE:SJMP HERE ORG 00BH;T1 ;T1中斷入口 INC R0 DJNZ R1,HERE ;計(jì)數(shù)時(shí)間未結(jié)束,繼續(xù)計(jì)數(shù)轉(zhuǎn)速脈沖根據(jù)脈沖的個(gè)數(shù),從表中可查出此時(shí)對(duì)應(yīng)的轉(zhuǎn)速,查表程序如下: Mov DPTR, #TAB ;查表首地址值送DPTR Mov A, R0 ;查表參數(shù)送累加器A CLR C MOVC A,A+DPTR ;查表獲取轉(zhuǎn)速 Mov P0,A ;送轉(zhuǎn)速信息至CAN控制器 RETTAB:DB ;轉(zhuǎn)速數(shù)據(jù)表格SJA1000初始化子程序:CANINI: MOV DPTR,#MODE ;讀入方式寄存器單元 MOV A,#0
46、9H ;賦值累加器A MOVX DPTR,A ;進(jìn)入復(fù)位模式,對(duì)SJA1000進(jìn)行初始化 MOV DPTR,#CDR ;讀入時(shí)鐘分頻寄存器 MOV A,#88H ;賦模式值給A MOVX DPTR,A ;選擇PeliCAN模式,關(guān)閉時(shí)鐘輸出(CLKOUT) MOV DPTR,#IER ;讀入中斷允許寄存器 MOV A,#0DH MOVX DPTR,A ;開(kāi)放控制器發(fā)送中斷、超載中斷和錯(cuò)誤警告中斷 MOV DPTR,#AMR ;讀入接收屏蔽寄存器 MOV R6,#4 ;接收屏蔽寄存器為4位 MOV R0,#DAM ;接收屏蔽寄存器內(nèi)容在片內(nèi)RAM中的首地址AMR: MOV A,R0 ;讀接收屏蔽
47、寄存器首地址 MOVX DPTR,A ;接收屏蔽寄存器賦初值 INC DPTR DJNZ R6,AMR ;賦值未完成,繼續(xù)賦值操作 MOV DPTR,#ACR ;讀入接收代碼寄存器 MOV R6,#4 ;賦值位數(shù) MOV R0,#DACR 接收代碼寄存器內(nèi)容在片內(nèi)RAM中的首址ACR: MOV A,R0 ;讀入接收代碼寄存器首址 MOVX DPTR,A ;給接收代碼寄存器賦初值 INC DPTR DJNZ R6,ACR ;是否賦值完,否則繼續(xù)賦值 MOV DPTR,#BTR0 ;讀入總線定時(shí)寄存器0 MOV A,#03H ;總線定時(shí)寄存器賦值 MOVX DPTR,A MOV DPTR,#BTR
48、1 ;讀入總線定時(shí)寄存器1 MOV A,#0FFH ;16MHz晶振情況下,設(shè)置波特率為80kbps MOVX DPTR,A MOV DPTR,#OCR ;讀輸出控制寄存器 MOV A,#0AAH MOVX DPTR,A MOV DPTR,#RBSA ;讀接收緩存器起始地址寄存器 MOV A,#0 ;設(shè)置接收緩存器FIFO起始地址為0 MOVX DPTR,A MOV DPTR,#TXERR ;發(fā)送錯(cuò)誤計(jì)數(shù)器寄存器 MOV A,#0 ;清除發(fā)送錯(cuò)誤計(jì)數(shù)寄存器 MOVX DPTR,A MOV DPTR,#ECC ;讀錯(cuò)誤代碼捕捉寄存器 MOVX A,DPTR ;清除錯(cuò)誤代碼捕捉寄存器 MOV DPTR,#MODE ;讀方式寄存器 MOV A,#08H ;設(shè)置單濾波接收方式,并返回工作狀態(tài) MOV DPTR,A R
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石家莊貨運(yùn)從業(yè)資格考試模擬考試題目及答案
- 茉莉花茶代理合同7篇
- 古箏采購(gòu)合同范本
- 廠區(qū)道路修路合同范本
- 企業(yè)經(jīng)營(yíng)貸款服務(wù)合同范本
- 上半年工作總結(jié)開(kāi)頭
- 儒學(xué)大師邀請(qǐng)合同范本
- 動(dòng)物防疫練習(xí)題庫(kù)與答案
- 病理學(xué)與病理生理學(xué)習(xí)題庫(kù)與參考答案
- 一年級(jí)法制教育教案
- 礦山機(jī)械傷害安全培訓(xùn)
- 2025貴州省黔東南州直屬事業(yè)單位招聘202人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年語(yǔ)文高考復(fù)習(xí)計(jì)劃解析
- 新生兒腸道病毒感染
- 2025年度專(zhuān)業(yè)酒店裝修承攬合同
- 2025年度5G基站建設(shè)勞務(wù)合同范本
- (完整版)班主任量化考核細(xì)則
- 2025年中國(guó)鐵路鄭州局集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年上半年永春縣農(nóng)文旅發(fā)展集團(tuán)限公司公開(kāi)招聘若干名工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 家庭康復(fù)服務(wù)的商業(yè)價(jià)值與發(fā)展趨勢(shì)
- 2025年?;髽I(yè)安全教育培訓(xùn)計(jì)劃
評(píng)論
0/150
提交評(píng)論