基于CAN總線的控制系統(tǒng)_第1頁
基于CAN總線的控制系統(tǒng)_第2頁
基于CAN總線的控制系統(tǒng)_第3頁
基于CAN總線的控制系統(tǒng)_第4頁
基于CAN總線的控制系統(tǒng)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 微機應(yīng)用課程設(shè)計報告題 目:基于單片機的16*16點陣系統(tǒng)設(shè)計專 業(yè): 班 級: 姓 名: 學(xué) 號: 地 點: 時 間: 指導(dǎo)老師: 專心-專注-專業(yè)摘 要八位智力競賽搶答器是一個可供八個參賽組進(jìn)行智力競賽的電氣裝置,該裝置由主體電路與擴展電路組成。優(yōu)先編碼電路、鎖存器、譯碼電路將參賽組的輸入信號在顯示器上輸出;用控制電路的主持人開關(guān)啟動報警電路,以上兩部分組成主體電路、通過定時電路和譯碼電路將秒脈沖產(chǎn)生的信號在顯示器上輸出實現(xiàn)計時功能,構(gòu)成擴展電路。本文詳細(xì)介紹了搶答器的設(shè)計方案、功能、及在設(shè)計過程中所做的改進(jìn)。關(guān)鍵字:搶答電器;定時電器;報警電器;時序電器目 錄

2、 4 1 緒 論本設(shè)計是以八路搶答器為基本理念。考慮到需設(shè)定限時回答的功能 利用89C51單片機及外接口實現(xiàn)的搶答器系統(tǒng),利用單片機的定時器計時器實現(xiàn)定時和計數(shù)的功能,將軟硬件結(jié)合起來,使得系統(tǒng)能正常的進(jìn)行計時,同時使數(shù)碼管能夠正確的顯示時間。用開關(guān)鍵盤輸出,揚聲器發(fā)聲提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在槍答中只有開始后搶答才有效,如果在開始搶答前搶答無效;滿時后系統(tǒng)計時自動復(fù)位,主控強制復(fù)位,按鍵鎖定,在這種狀態(tài)下,按鍵無效。1.1 搶答器的需求分析1. 在搶答器中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。2搶答限定時間和回答問題的時間可是在1-99秒設(shè)定3可以顯示是哪位選手有效搶答,正確按

3、鍵后有蜂鳴器鳴叫提示。4搶答時間和回答問題時間倒計時顯示,時間完后系統(tǒng)自動復(fù)位。5按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。 1.2 CAN總線的優(yōu)勢CAN是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。和目前許多RS-485基于R線構(gòu)建的分布式控制系統(tǒng)而言,基于CAN總線的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性:1.2.1 網(wǎng)絡(luò)各節(jié)點之間的數(shù)據(jù)通信實時性強首先,CAN控制器工作于多種方式,網(wǎng)絡(luò)中的各節(jié)點都可根據(jù)總線訪問優(yōu)先權(quán)(取決于報文標(biāo)識符)采用無損結(jié)構(gòu)的逐位仲裁的方式競爭向總線發(fā)送數(shù)據(jù),且CAN協(xié)議廢除了站地址編碼,而代之以通信數(shù)據(jù)進(jìn)行編碼,這可使不同的節(jié)點同時接收到相同的數(shù)據(jù),這些特點

4、使得CAN總線構(gòu)成的網(wǎng)絡(luò)各節(jié)點之間的數(shù)據(jù)通信實時性強,并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和系統(tǒng)的靈活性,而利用RS-485只能構(gòu)成主從結(jié)構(gòu)系統(tǒng),通信方式也只能以主站輪詢的方式進(jìn)行,系統(tǒng)的實時性、可靠性較差。1.2.2 縮短了開發(fā)周期CAN總線通過CAN接收器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài),CANL端只能是低電平或懸浮狀態(tài)。這就保證不會在出現(xiàn)在RS-485網(wǎng)絡(luò)中的現(xiàn)象,即當(dāng)系統(tǒng)有錯誤,出現(xiàn)多節(jié)點同時向總線發(fā)送數(shù)據(jù)時,導(dǎo)致總線呈現(xiàn)短路,從而損壞某些節(jié)點的現(xiàn)象,而且CAN節(jié)點在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,以使總

5、線上其他節(jié)點的操作不受影響,從而保證不會出現(xiàn)顯現(xiàn)在網(wǎng)絡(luò)中,因個別節(jié)點出現(xiàn)問題,使得總線出于“鎖死”狀態(tài),而且,CAN具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片來實現(xiàn),從而大大降低系統(tǒng)開發(fā)難度,縮短了開發(fā)周期,這些都是僅有電氣協(xié)議的RS-485所無法比擬的。1.2.3 已形成國際標(biāo)準(zhǔn)的現(xiàn)場總線另外,于其他現(xiàn)場總線相比較,CAN總線是具有通信速率高、容易實現(xiàn)、且性價比高等諸多特點的一種已形成國際標(biāo)準(zhǔn)的現(xiàn)場總線,這些也是目前CAN總線應(yīng)用于眾多領(lǐng)域,具有強勁的市場競爭力的重要原因。1.2.4 最有前途的現(xiàn)場總線之一CAN即控制器局域網(wǎng)絡(luò),屬于工業(yè)現(xiàn)場總線的范疇,于一般的通信總線相比,CAN

6、總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特設(shè)計,CAN總線越來越受到人們的重視。它在汽車領(lǐng)域上的應(yīng)用是最廣泛的,世界上一些著名的汽車制造廠商,如BENZ、PORSCHE、ROLLS-ROYCE等都采用了CAN總線來實現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測和執(zhí)行機構(gòu)間的數(shù)據(jù)通信,同時,由于CAN總線本身的特點,其應(yīng)用范圍目前已不再局限于汽車行業(yè),而向自動控制、航空航天、過程控制、機械工業(yè)、農(nóng)用機械、數(shù)控機床、醫(yī)療器械及傳感器等領(lǐng)域發(fā)展,CAN已經(jīng)形成國際標(biāo)準(zhǔn),并已被公認(rèn)為幾種最有前途的現(xiàn)場總線之一,其典型的應(yīng)用協(xié)議有:SAEJ1939/ISO11783、CANOpen、CANae

7、rospace、DeviceNet、NMEA 2000等。2 硬件電路設(shè)計此控制系統(tǒng)主要有三個主要的模塊組成,第一步分為單片機模塊,第二部分為CAN總線控制器模塊,第三部分為通信和外圍接口,其主要分為輸出和輸入接口,使系統(tǒng)構(gòu)成一個閉環(huán)系統(tǒng),從而實現(xiàn)所需要的控制功能。系統(tǒng)功能結(jié)構(gòu)圖如圖1示圖1 系統(tǒng)結(jié)構(gòu)示意圖2.1 單片機模塊圖2為系統(tǒng)單片機模塊的電路圖圖2 單片機模塊電路圖本系統(tǒng)單片機選擇的是STC89C52,是雙列直插式40引腳,其芯片引腳圖如圖2-4。STC89C52RC單片機是宏晶科技推出的新一代高速/低功耗/超強抗干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6

8、時鐘/機器周期可以任意選擇。圖3 STC89C52的芯片引腳圖2.1.1 STC89C52主要特性如下: 1. 增強型 8051 單片機,6時鐘/機器周期和12時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。2. 工作電壓:5.5V3.3V(5V單片機)/3.8V2.0V(3V單片機)。3. 工作頻率范圍:040MHz,相當(dāng)于普通8051的080MHz,實際工作頻率可達(dá)48MHz。4. 用戶應(yīng)用程序空間為8K字節(jié) 。5. 片上集成512字節(jié)RAM。6. 通用I/O口(32個)復(fù)位后為,P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,

9、作為I/O口用時,需加上 拉電阻。 7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。8.具有EEPROM功能。 9.具有看門狗功能。10.共3個16位定時器/計數(shù)器,即定時器T0、T1、T2。11.外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒。12.通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART。 13.工作溫度范圍:-40+85(工業(yè)級)/075(商業(yè)級)。 14. PDIP封裝。 2.1.2 STC8

10、9C52RC單片機的工作模式掉電模式:典型功耗<0.1A,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序??臻e模式:典型功耗2mA典型功耗。 正常工作模式:典型功耗4mA7mA典型功耗。 掉電模式可由外部中斷喚醒,適用于水表、氣表等電池供電系統(tǒng)及便攜設(shè)備。 STC89C52RC引腳功能說明:VCC(40引腳):電源電壓;VSS(20引腳):接地。 P0端口(P0.0P0.7,3932引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負(fù)載,對端口P0寫入每個引腳能驅(qū)動寫入“1”時,可以作為高阻抗輸入。 P1端口(P1.0P1.7,18引腳):P1口是一個帶

11、內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。 P2端口(P2.0P2.7,2128引腳):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O 端口。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電平,這時可用作輸入口。 P2 作為輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會 輸出一個電流。 P3 端口(P3.0P3.7,1017 引腳) :P3 是一個帶內(nèi)部上拉電阻的 8 位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,

12、通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流。 RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機的復(fù)位初始化操作。 ALE/ROG(30引腳)地址鎖存控制信號:(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳(ROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址位8EH的SFR的第0位置“

13、1”,ALE操作將無效。 外部程序存儲器選通信號(SEN)是外部程序存儲器選SEN(29引腳):當(dāng) AT89C51RC從外部程序存儲器執(zhí)行外部代碼時,SEN在每個機器周期被激活兩次,而訪問外部數(shù)據(jù)存儲器時,SEN將不被激活。A/VPP(31引腳)訪問外部程序存儲器控制信號:為使能從0000H到FFFFH的外部程序存儲器讀取指令,A必須接 GND。注意加密方式1時,A將內(nèi)部鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,A應(yīng)該接VCC。在 Flash編程期間,A也接收12伏VPP電壓。XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。2

14、.2 CAN總線控制器模塊CAN總線控制部分的電路圖如下所示:圖4 CAN總線部分電路圖2.2.1 SJA1000簡介本系統(tǒng)選擇的CAN控制芯片是SJA1000,它是Philips半導(dǎo)體公司PCA82C200 CAN 控制(BasicCAN)的替代產(chǎn)品,而且它增加了一種新的操作模式PeliCAN,這種模式支持具有很多新特性的CAN 2.0B協(xié)議。其引腳圖及內(nèi)部功能塊圖分別如圖5和圖6。管腳定義見表1。圖5 SJA1000芯片引腳圖圖6 SJA1000芯片內(nèi)部引腳圖表1管腳定義符號引腳說明AD7-AD02,1,28-23多路地址、數(shù)據(jù)總線ALE/AS3ALE輸入信號(Intel模式)AS輸入信號

15、(Motorola模式)/CS4片選輸入,低電平允許訪問SJA1000(/RD)/E5微控制器的/RD信號(Intel模式)或E使能信號(Motorola模式)/WR6微控制器的/WR信號(Intel模式)或/RD(/WR)信號(Motorola模式)CLKOUT7SJA1000產(chǎn)生的提供給微控制器的時鐘輸出信號,時鐘信號來源與內(nèi)部振蕩器且通過編程驅(qū)動;時鐘控制器寄存器的時鐘關(guān)閉位可禁止該引腳Vss18接地XTAL1 9輸入到振蕩器放大電路;外部振蕩信號由此輸入XTAL210振蕩放大電路輸出;使用外部振蕩信號左開路輸出MODE11模式選擇輸入1=Intel模式 0=Motorola模式VDD3

16、12輸出驅(qū)動的5V電壓源TX013從CAN輸出驅(qū)動器0輸出到物理線路上TX114從CAN輸出驅(qū)動器1輸出到物理線路上Vss315輸出驅(qū)動器接地/INT16中斷輸出,用于中斷微控制器:/INT在內(nèi)部中斷寄存器各位都被置位時低電平有效;/INT是開漏輸出,且與系統(tǒng)中的其他/INT是線或的;此引腳上的低電平可以把IC從睡眠模式中激活/RST17復(fù)位輸入,用于復(fù)位CAN接口(地低電平有效);把/RST引腳通過電容 連到Vss,通過電阻連到VDD可自動上電復(fù)位VDD218輸入比較器的5V電壓源RX0RX119,20從物理的CAN總線輸入到SJA1000的輸入到SJA1000的輸入比較器;支配(控制)電平

17、將會喚醒SJA1000的睡眠模式;如果RX1比RX0的電平高,就讀支配(控制)電平,反之讀弱勢電平;如果時鐘分頻寄存器的CBP位被置位,就旁路CAN輸入比較器以減少內(nèi)部延時;這種情況下只有RX0是激活的,弱勢電平被認(rèn)為是高而支配電平被認(rèn)為是低Vss221輸入比較器的接地端VDD122邏輯電路的5V電壓源SJA1000控制器中的各個控制塊的功能主要有:1.接口管理邏輯(IML)接口管理邏輯解釋來自CPU的命令,控制CAN寄存器的尋址,向主控制器提供中斷信息和狀態(tài)信息。2.發(fā)送緩沖器(TXB)發(fā)送緩沖器是CPU和位流處理器BSP之間的接口,能夠存儲發(fā)送到CAN網(wǎng)絡(luò)上的完整信息,緩沖器長13個字節(jié),

18、由CPU寫入BSP讀出。3.接收緩沖器(RXB,RXFIFO)解釋緩沖器是驗收濾波器和CPU之間的接口,用來存儲從CAN總線上接收到的信息,接收緩沖器(RXB13個字節(jié))作為接收FIFO(RXFIFO長64字節(jié))的一個窗口可被CPU訪問,CPU在此FIFO的支持下可以再處理信息的時候接收其他信息。4.驗收濾波器(ACF)驗收濾波器把它其中的數(shù)據(jù)和接收的識別碼的內(nèi)容相比較,以決定是否接收信息,在純粹的接收測試中所有的信息都保存在RXFIFO。5.位流處理器(BSP)位流處理器是一個在發(fā)送緩沖器(RXFIFO)和CAN總線之間控制數(shù)據(jù)的程序裝置,它還在CAN總線上執(zhí)行錯誤檢測仲裁填充和錯誤處理。6

19、.位時序邏輯(BTL)位時序邏輯監(jiān)視串口的CAN總線和處理與總線有關(guān)的位時序,它在信息開頭“弱勢-支配”的總線傳輸同步CAN總線位流(硬同步),接收信息時再次同步下一次傳送(軟同步)。BTL還提供可編程的時間段來補償傳播延遲時間、相位轉(zhuǎn)換和定義采樣點和一位時間內(nèi)的采樣次數(shù)。7.錯誤管理邏輯(EML)EML負(fù)責(zé)傳送模塊的錯誤管制。它接收BSP的出錯報告通知BSP和IML進(jìn)行錯誤統(tǒng)計。2.2.2 PCA82C250簡介 PCA82C50是CAN協(xié)議控制器和物理總線間的接口,它主要是為汽車中高速通訊(高達(dá)1Mbps)應(yīng)用而設(shè)計。該器件對總線提供差動發(fā)送能力,對CAN控制器提供差動接收能力,完全符合“

20、ISO11898”標(biāo)準(zhǔn)。2.2.2.1 PCA82C250的特性l 完全符合“ISO11898”標(biāo)準(zhǔn)l 高速率(最高達(dá)1Mbps)l 具有抗汽車環(huán)境中的瞬間干擾,保護(hù)總線能力l 斜率控制,降低射頻干擾(RFI)l 差分接收器,抗寬范圍的共模干擾,抗電磁干擾(EMI)l 熱保護(hù)l 防止電池和地之間的發(fā)送短路l 低電流待機模式l 未上電的節(jié)點對總線無影響l 可連接110個節(jié)點PCA82C50的內(nèi)部結(jié)構(gòu)方框圖如圖7示。圖7 PCA82C50內(nèi)部結(jié)構(gòu)圖PCA82C250的封裝形式及引腳配置如圖8示,封裝形式為DIP8,表中列出了其各引腳的功能。表2 PAC82C250引腳功能符號管腳功能描述TXD1發(fā)

21、送數(shù)據(jù)輸入GND2地VCC3電源電壓RXD4接收數(shù)據(jù)輸出Vref5參考電壓輸出CANL6低電平CAN電壓輸入/輸出CANH7高電平CAN電壓輸入/輸出Rs8斜率電阻輸入圖8 PCA82C250芯片引腳PCA82C250的主要功能有:首先,82C250驅(qū)動電路內(nèi)部具有限流電路,可以防止輸出級對電源、地或負(fù)載短路,雖然在這種故障條件出現(xiàn)時功耗增加,但不致使輸出級破壞。其次,82C250采用雙線差動驅(qū)動,有助于抑制惡劣環(huán)境下的瞬變干擾。引腳Rs可用于選擇三種不同的工作方式:高速、斜率控制和待機。在高速工作方式下,發(fā)送器輸出晶體管以盡可能快的速度啟閉。在這種方式下,不采用任何措施限制上升和下降斜率,此

22、時,建議使用屏蔽電纜以避免射頻干擾問題。通過將引腳8接地可選擇高速方式,對于較低速度或較短總線長度,可用非屏蔽雙絞線或平行線作總線。為降低射頻干擾,應(yīng)限制上升和下降斜率,上升和下降斜率可通過由引腳8至地連接的電阻進(jìn)行控制,斜率正比于引腳8上的電流輸出,若腳8接高電平,則電路進(jìn)入低電平待機方式,在這種方式下,發(fā)送器被關(guān)閉,而接收器轉(zhuǎn)至低電流,若檢測到顯性位,RXD將轉(zhuǎn)至低電平,位控制器應(yīng)通過引腳8將發(fā)送器變?yōu)檎7绞阶鳛閷Υ藯l件作出的反應(yīng),由于在待機方式下,接收器是慢速的,因此第一個報文將被丟失。對于CAN控制器及帶有CAN總線接口的器件,82C250并不是必須使用的器件,因為多數(shù)CAN控制器均

23、具有配置靈魂的收發(fā)器件,并允許總線故障,只是驅(qū)動能力只允許20-30個節(jié)點連接在一條總線上,而82C250支持多達(dá)110個節(jié)點,并能以1Mbps的速率工作于惡劣電氣環(huán)境下,利用82C250還可方便地在CAN控制器與收發(fā)之間建立光電隔離,以實現(xiàn)總線上各個節(jié)點之間的電氣隔離。CAN節(jié)點的硬件電路設(shè)計主要是CAN總線通信控制器與微處理器之間的接口電路,以及CAN總線收發(fā)器與物流總線之間的接口電路設(shè)計。CAN通信控制器是接口電路的核心,它主要完成CAN總線的通信協(xié)議,而CAN總線收發(fā)器的功能則是增大通信距離,保護(hù)系統(tǒng)不受干擾。2.2.2.2 CAN總線設(shè)計需要注意的幾點1.物理總線兩端的終端電阻RT要

24、匹配,否則CAN總線數(shù)據(jù)通信的抗干擾性及可靠性會大大的降低;2. PCA82C250為CAN總線通信控制器與物理總線之間的接口,它可以提供向總線的差動發(fā)送能力和CAN控制器的差動接收能力,TXD和RXD引腳分別發(fā)送經(jīng)過驅(qū)動后的發(fā)送和接收信號,引腳8(RS)可以選擇2種不同的工作方式:當(dāng)與地相連,則系統(tǒng)將處于高速工作方式,在這種方式下,為避免干擾,最好使用屏蔽電纜作為總線,而在低波特率且總線較短時,一般采用斜率控制方式,上升及下降的斜率取決于RS的阻值,而RS的取值一般在1K140K較為理想,在這種方式下可以采用雙絞線作為總線的物理介質(zhì)。本系統(tǒng)采用的就是這種方式,RS采用的是47K的電阻。3.

25、SJA1000的TX1腳懸空,RX1引腳的電平必須維持在約0.5VCC以上,否則不能形成CAN協(xié)議要求的電平邏輯。4.把STC89C52的X2引腳接SJA1000的外部振蕩輸入引腳XTAL1,這樣就解決時鐘同步的問題。將SJA1000的/INT與STC89C52的INT0相連,這樣STC89C52和SJA1000就通過中斷方式來進(jìn)行通信。在實際的應(yīng)用中,CAN總線大都用在如汽車和工業(yè)現(xiàn)場控制等的環(huán)境中,環(huán)境對電路的影響很大,所以為減少這些干擾,在設(shè)計CAN總線的節(jié)點時,通常在電路中使用高速光藕,如6N137等,使SJA1000的TX0與RX0不直接與82C520的TXD和RXD相連,而是通過高

26、速光耦與82C520相連,這樣就能很好地實現(xiàn)總線上各CAN節(jié)點間的電氣隔離。同時還必須指出的是,光耦部分所采用的兩個電源VCC和VDD必須完全隔離,否則光耦就失去了意義,即無法達(dá)到隔離的目的。2.3 通信模塊和外圍接口2.3.1 通信模塊系統(tǒng)通信模塊主要是采用串行通信,所用的芯片是MAX232,圖2-9系統(tǒng)通信模塊的電路圖圖9通信模塊電路圖MAX232芯片是美信公司專門RS-232標(biāo)準(zhǔn)串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5V單電源供電。它一共有16個引腳,主要分為三個部分:第一部分是電荷泵電路。有1、2、3、4、5、6腳和4個電容構(gòu)成,功能是產(chǎn)生+12V和-12V兩個電源,提供RS-232串口

27、電平的需要;第二部分是數(shù)據(jù)轉(zhuǎn)換通道,由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(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)。2.3.2 外圍接口整個系統(tǒng)要實現(xiàn)各

28、種功能就必須要和外圍的各種傳感器、控制器連接,而要實現(xiàn)這個功能就需要系統(tǒng)上的這個外圍接口單元,圖10統(tǒng)的外圍接口單元:圖10 外圍接口單元圖2-11中的JX為系統(tǒng)的輸出接口,連接系統(tǒng)外的傳感器,主要是用來輸出數(shù)據(jù),而KZ是輸入接口,當(dāng)連接好外圍的設(shè)備時,就可以構(gòu)成一個閉環(huán)系統(tǒng),從而來實現(xiàn)所希望控制的東西。就拿路燈控制來說,當(dāng)光照很弱時,通過一個傳感器把這個信號有KZ傳到單片機內(nèi),由單片機原先寫好的軟件來分析,從而產(chǎn)生一個輸出信號有JX傳到路燈上的控制器中使路燈亮或滅,從而實現(xiàn)路燈控制的功能。3 CAN總線控制系統(tǒng)軟件設(shè)計CAN節(jié)點的初始化程序的主要任務(wù)是對總線通信控制器SJA1000進(jìn)行合適的

29、配置,以滿足系統(tǒng)的運行要求。SJA1000有兩種工作模式:Basic-CAN 和Peli-CAN,SJA1000 上電后首先進(jìn)入的是Basic-CAN模式,而Peli-CAN支持CAN-2.0B規(guī)范。3.1 初始化程序?qū)JA1000的初始化程序的流程圖如下圖所示,SJA1000的初始化主要是對時鐘分頻器、中斷使能寄存器、驗收代碼寄存器和接收屏蔽寄存器、總線定時器輸出控制器等進(jìn)行配置,它關(guān)系著能否成功進(jìn)行通信的問題,如果配置不當(dāng)?shù)脑?,很可能CAN總線不能正常運行。圖11初始化流程圖初始化程序如下:void SJA1000_init(void)CS=0; /片選SJA1000EA=0; /關(guān)閉中

30、斷while (ModeCountReg&RM_RR_Bit)=ClrByte)ModeControlReg-0x01;ClockDivideReg=0xc8;InterruptEnReg-0x03;AcceptCode0Reg=#;AccepCode1Reg=#;AccepCode2Reg=#;AccepCode3Reg=#;AcceptMask0Reg=#;AcceptMask1Reg=#;AccepyMask2Reg=#;AcceptMask3Reg=#;BusTiming0Reg=#;BusTiming1Reg=#;OutControlReg=#;RxBufstartAdr=0

31、;do(modeControlReg=0x08)while(ModeControlReg&0x01)!=0x00);EA=1;各個寄存器的值則可以根據(jù)實際需要作合理的配置,需要指出的是,CAN總線上節(jié)點的波特率設(shè)置都必須相同,否則將引起通信失敗。系統(tǒng)節(jié)點通信波特率是由總線定時寄存器0、總線定時寄存器1和系統(tǒng)的晶振頻率所決定的,其計算方法如下:總線定時寄存器0決定了波特率預(yù)設(shè)值(BRP)和同步跳轉(zhuǎn)寬度(SJW)值,它各個位的功能如下表所示:表3 SJA1000總線定時寄存器各位的功能BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SJW.1SJW.0BRP.5BRP.4B

32、RP.3BRP.2BRP.1BRP.0總線定時寄存器1則定義了每個位周期的長度、采樣點的位置和在每個采樣點的采樣數(shù)目,總線定時寄存器1各位的功能如下表所示表4 SJA1000總線定時寄存器各位的功能BIT7BIT6BIT5BIT4BIT3BIT2BIT1BITSAMTESG2.2TESG2.1TESG2.0TESG1.3TESG1.2TESG1.1TESG1.0CAN總線比特率的確定方法見附錄一。3.2 數(shù)據(jù)的接收和發(fā)送功能完成對CAN節(jié)點的初始化后,便可通過CAN的通信控制器SJA1000向物理總線發(fā)送和接收數(shù)據(jù)。這一過程微處理器和總線通信控制器SJA1000之間的通訊是通過中斷方式來實現(xiàn)的

33、,也就是說,當(dāng)SJA1000把前面寫入緩沖區(qū)的數(shù)據(jù)發(fā)送完以后,亦會通過中斷方式告知CPU數(shù)據(jù)已經(jīng)發(fā)送完,發(fā)送緩沖器已空,可以寫入其他的數(shù)據(jù),CPU就是通過中斷服務(wù)程序?qū)JA1000的中斷請求作出相應(yīng)的響應(yīng)的。3.2.1 發(fā)送數(shù)據(jù)本文中CAN總線節(jié)點所采用的通信控制器是SJA1000,因此有必要對SJA1000發(fā)送和接收報文的格式作一些介紹。SJA1000的發(fā)送緩沖器的幀格式如圖所示: 表5 標(biāo)準(zhǔn)幀格式 表6 擴展幀格式16TX幀信息17TX識別碼118TX識別碼219TX識別碼320TX識別碼421TX數(shù)據(jù)字節(jié)122TX數(shù)據(jù)字節(jié)223TX數(shù)據(jù)字節(jié)324TX數(shù)據(jù)字節(jié)425TX數(shù)據(jù)字節(jié)526TX

34、數(shù)據(jù)字節(jié)627TX數(shù)據(jù)字節(jié)728TX數(shù)據(jù)字節(jié)816TX幀信息17TX識別碼118TX識別碼219TX數(shù)據(jù)字節(jié)120TX數(shù)據(jù)字節(jié)2 21TX數(shù)據(jù)字節(jié)322TX數(shù)據(jù)字節(jié)423TX數(shù)據(jù)字節(jié)524TX數(shù)據(jù)字節(jié)625TX數(shù)據(jù)字節(jié)726TX數(shù)據(jù)字節(jié)827未使用28未使用由此可見,發(fā)送緩沖器被分成描述符區(qū)和數(shù)據(jù)區(qū),描述符區(qū)的第一個字節(jié)是幀信息字節(jié),它說明了幀格式(標(biāo)準(zhǔn)幀或擴展幀)、遠(yuǎn)程或數(shù)據(jù)幀和數(shù)據(jù)長度。本設(shè)計中幀格式采用的是擴展幀格式(EFF),因為SJA1000的工作模式我們采用的是PeliCAN工作模式,擴展幀與標(biāo)準(zhǔn)幀的主要區(qū)別是,擴展幀使用4個字節(jié)作為數(shù)據(jù)的識別碼,而標(biāo)準(zhǔn)幀則只用2個字節(jié)。擴展幀對應(yīng)

35、的發(fā)送緩沖器中的描述符區(qū)的位的配置如下表所示,描述符的值越小,則該幀的優(yōu)先級越高。表7 TX幀信息(EFF)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0FFRTRXXDLC.3DLC.2DLC.1DLC.0表8 TX識別碼1(EFF)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ID.28ID.27ID.26ID.25ID.24ID.23ID.22ID.21表9 TX識別碼2(EFF)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ID.20ID.19ID.18ID.17ID.16ID.15ID.14ID.13表10 TX識別碼3(EFF)

36、BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ID.12ID.11ID.10ID.9ID.8ID.7ID.6ID.5表11 TX識別碼4(EFF)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ID.4ID.4ID.3ID.2ID.1ID.0XX在發(fā)送幀的幀信息中,幀格式(FF)和遠(yuǎn)程幀發(fā)送請求位(RTR)的值如下表所示,而DLC則代表了數(shù)據(jù)字節(jié)的長度,其范圍為0-8表12 幀格式請求位值定義發(fā)送數(shù)據(jù)時用戶只需將要發(fā)送的數(shù)據(jù)按照CAN控制器SJA1000所規(guī)定的格式組合成一幀報文,送入控制器的發(fā)送緩沖區(qū),然后啟動SJA1000發(fā)送就可以實現(xiàn),但在將報文發(fā)送到緩

37、沖區(qū)之前,應(yīng)作一些判斷,下圖給出了發(fā)送子程序的程序流程:圖12 程序流程圖發(fā)送子程序:void SJA1000_SendMessage(unsigned char *Msg_ptr,int length)int i;while(statusreg&0x01);while(StatusReg&0x08)=0x00);if(statusreg&0x04)=0x00);elsefor(i=0;i<length;i+)XBYTE0x7010+i=*msg_ptr;msg_ptr+; commandreg=0x01;3.2.2 接收數(shù)據(jù)接收數(shù)據(jù)較之發(fā)送數(shù)據(jù)要復(fù)雜一些,因為在處理接收報文的過程中,要對如總線脫離、錯誤報警等情況作出處理。SJA1000對于報文的接收可采用兩種方式,即中斷接收方式和查詢接收方式。接收數(shù)據(jù)的程序流程圖如圖13所示:接收子程序:temp_status=statusreg;if(temp_status&0xc3)=0x00) break; else if(temp_status&0x80)=0x00) if(temp_int&0x80)=0x00) while(statusreg&0x01) temp=XBYTE0x7010;if(temp&0

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論