国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多通道實時CAN總線模擬器設計

2010-06-22 03:41王會敏張遂南
現(xiàn)代電子技術(shù) 2009年22期
關(guān)鍵詞:實時性單片機

王會敏 張遂南

摘 要:為了滿足CAN總線在實際通信應用中高實時性和高可靠性的要求,通過對CAN總線通信協(xié)議的研究,提出并設計一種由單片機負責控制的多通道實時CAN總線模擬器的設計方案。該方案在硬件設計上以可編程邏輯技術(shù)為基礎(chǔ),采用復雜可編程邏輯器件(CPLD),結(jié)合硬件描述語言VHDL,實現(xiàn)了單片機與CAN控制器之間邏輯控制單元的設計。通過在Xilinx ISE平臺下對該程序進行編譯和綜合,在Modelsim 環(huán)境下進行仿真測試,證實了該方案的可行性。通過實際工程的驗證和使用結(jié)果表明,該設計方案滿足實際通信的要求。著重闡述整個系統(tǒng)的設計過程,并給出了關(guān)鍵技術(shù)的設計思路與重要部分代碼。

關(guān)鍵詞:CAN;實時性;單片機;CPLD;Xilinx ISE

中圖分類號:TP274

CAN總線與一般的串行通信總線相比,它的數(shù)據(jù)通信具有可靠性高,實時性高,靈活性強等優(yōu)點,不僅廣泛應用于汽車行業(yè),而且擴展到了機械工業(yè)、機器人、數(shù)控機床等諸多領(lǐng)域。尤其在大量數(shù)據(jù)通信處理中,高可靠性及實時響應的場合,單通道CAN總線不能滿足實際通信的要求。為此,介紹一種基于多通道實時CAN模擬器的設計方案。

1 CAN總線技術(shù)介紹

1.1 CAN總線特性

CAN(Controller Area Network)總線是一種串行多主站控制器局域網(wǎng)總線。它具有很高的網(wǎng)絡安全性、通信可靠性和實時性,并且簡單實用,網(wǎng)絡成本低。它主要用于各種過程監(jiān)測及控制的一種網(wǎng)絡。CAN最初是由德國BOSCH公司為汽車的監(jiān)測、控制系統(tǒng)而設計的。由于CAN總線具有卓越的特性和極高的可靠性,特別適合于工業(yè)過程中監(jiān)控設備的互連,具體來說,CAN具有如下特性:

(1) CAN可以多主方式工作,網(wǎng)絡上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡上的其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活;

(2) CAN可以點對點、點對多點(成組)及全局廣播方式傳送接收數(shù)據(jù);

(3) CAN網(wǎng)絡上的節(jié)點信息可分成不同的優(yōu)先級,可以滿足不同的實時要求;

(4) CAN采用非破壞性總線仲載技術(shù)。當兩個節(jié)點是向網(wǎng)絡上發(fā)送數(shù)據(jù)時,優(yōu)先級低的節(jié)點主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可以不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線仲載沖突時間,在網(wǎng)絡負載很重的情況下也不會出現(xiàn)網(wǎng)絡癱瘓;

(5) CAN的直接通信距離最大可達10 km(速率小于5 Kb/s),最高通信速率可達1 Mb/s。

1.2 CAN通信協(xié)議

在CAN 2.0B的版本協(xié)議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有11位標識符的幀稱為標準幀,而含有29位標識符的幀稱為擴展幀。擴展格式是CAN 2.0B協(xié)議新增加的特性。在報文傳輸時,不同的幀具有不同的傳輸結(jié)構(gòu),只有嚴格按照該結(jié)構(gòu)進行幀的傳輸,才能被節(jié)點正確接收和發(fā)送。下面將分別介紹四種傳輸幀的結(jié)構(gòu):

(1) 數(shù)據(jù)幀(Data):數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌鳌AN協(xié)議有兩種數(shù)據(jù)幀類型標準2.0A和標準2.0B。 兩者本質(zhì)的不同在于ID的長度不同。在2.0A類型中,ID的長度為11位;在2.0B類型中,ID的長度為29位。它由7個域組成:幀起始、仲裁域、控制域、數(shù)據(jù)域、CRC校驗碼域、應答域、幀結(jié)束。

(2) 遠程幀(Remote):總線單元發(fā)出遠程幀,請求發(fā)送具有同一標識符的數(shù)據(jù)幀。接收數(shù)據(jù)的節(jié)點可通過發(fā)遠程幀請求源節(jié)點發(fā)送數(shù)據(jù)。它由6個域組成:幀起始、仲裁域、控制域、校驗域、應答域、幀結(jié)束。

(3) 錯誤幀(Error):任何單元檢測到總線錯誤就發(fā)出錯誤幀。由錯誤標志和錯誤分界兩個域組成。接收節(jié)點發(fā)現(xiàn)總線上的報文有誤時,將自動發(fā)出“活動錯誤標志”,其他節(jié)點檢測到活動錯誤標志后發(fā)送“錯誤認可標志”。

(4) 過載幀(Overload):過載幀用在相鄰數(shù)據(jù)幀或遠程幀之間提供附加的延時。由超載標志和超載分隔符組成。超載幀只能在一個幀結(jié)束后開始。當接收方在接收下一幀之前,需要過多的時間處理當前的數(shù)據(jù),或在幀間空隙域檢測到顯性電平時,則導致發(fā)送超載幀。

1.3 CAN協(xié)議控制器

目前主流的CAN協(xié)議控制器一般采用I/O總線(SJA1000等)或SPI接口(MCP2515等)與處理器進行通信。該設計采用SJA1000控制器。

SJAl000是一款獨立CAN控制器,應用于移動目標和工業(yè)局域網(wǎng)控制領(lǐng)域。SJAl000具有兩種工作模式:BasicCAN和PeliCAN。該設計采用PeliCAN工作模式。SJA1000用來完成CAN協(xié)議所規(guī)定的物理層和數(shù)據(jù)鏈路層的所有功能,它可以支持多種處理器的時序特性,如Intel模式或Motorola模式,與微處理器的接口非常簡單,微處理器以訪問外部存儲器的方式來訪問SJA1000。

SJA1000通過CAN控制器接口即PCA82C250[3]芯片接到CAN總線上。CAN收發(fā)器使用飛利浦公司的PCA82C250,它是連接CAN控制器和物理總線之間的接口,提供了對總線的差動發(fā)動和接收能力,與ISO11898標準完全兼容,有三種不同的工作方式即高速、斜率控制和待機,可根據(jù)實際情況選擇。硬件電路中使用PCA82C250是為了增加通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護總線,降低干擾等。

2 系統(tǒng)設計

2.1 系統(tǒng)方案設計

根據(jù)通用計算機的總線分類,可采用基于ISA總線對多通道實時CAN總線模擬器進行研制,根據(jù)CAN總線通信原理可以提出以下兩種設計方案:

(1) ISA總線+CAN通信控制器;

(2) ISA總線+微處理器+CAN通信控制器。這兩種設計方案的不同點在于是否采用處理器來加強控制。

由于CAN總線通信要求實時性高,再加上多通道的設計滿足實際的需要,故采用單片機來負責CAN總線的通信功能。在這里主要介紹單片機與CAN控制器之間的設計部分,其系統(tǒng)設計框圖如圖1所示。

單片機選用DALLAS公司的DS89C430[4],它是當前8051兼容微控制器中性能最高的。具有重新設計的處理器內(nèi)核,在相同的晶振頻率下,執(zhí)行指令的速度是最初8051微處理器的12倍。特性:高速8051架構(gòu),每個機器周期一個時鐘;片內(nèi)存儲器16 KB/32 KB/64 KB閃存,在應用可編程,通過串口實現(xiàn)在系統(tǒng)可編程;與8051引腳和指令集兼容;四路雙向、8位I/O端口;三個16位定時器/計數(shù)器;256 B暫存RAM等特點??筛鶕?jù)實際應用的需要選擇其部分功能。

隨著可編程邏輯器件的飛速發(fā)展,其應用領(lǐng)域不斷擴大,可用于譯碼、解碼等方面,使用CPLD[5]可以提高系統(tǒng)集成度,降低噪聲,增強系統(tǒng)可靠性。因此,單片機與CAN控制器之間的鎖存、譯碼采用Xilinx公司 XC95144 CPLD芯片[6],優(yōu)化了系統(tǒng)資源,降低了其功耗。

2.2 系統(tǒng)硬件設計

[JP2]該部分由單片機、CAN 控制器、CAN收發(fā)器、SRAM存儲器組成。單片機[7]主要用于系統(tǒng)計算及信息處理等功能;CAN控制器主要用于系統(tǒng)通信;CAN收發(fā)器主要用于增強系統(tǒng)的驅(qū)動能力;SRAM主要用于緩存數(shù)據(jù)。

系統(tǒng)的發(fā)送過程是:單片機將外圍設備傳送過來的信息處理后,按CAN規(guī)范規(guī)定的格式,將其寫入CAN控制器的發(fā)送緩沖區(qū),并啟動發(fā)送命令,把數(shù)據(jù)發(fā)送到CAN總線上;接收過程是:CAN控制器從CAN總線上自動接收數(shù)據(jù),并經(jīng)過濾后存入CAN接收緩沖區(qū),且向單片機發(fā)出中斷請求,此時單片機可從CAN接收緩沖區(qū)讀取要接收的數(shù)據(jù)。

SJAl000提供的微處理器接口方式為典型INTEL或MOTOROLA地址數(shù)據(jù)多路復用總線模式。主要信號有地址數(shù)據(jù)信號AD7~AD0,地址選通信號ALE,片選信號CS,讀信號RD,寫信號WR,模式選擇信號MODE。當MODE=1時,為INTEL模式;當㎝ODE=0時,為MOTOROLA模式。后面描述的總線模式均為INTEL模式。AD7~AD0引腳在ALE有效時,傳送的是地址信號,在RD或WR有效時,傳輸?shù)氖菙?shù)據(jù)信號,在這里分別與單片機的P0口相連,RD,WR信號線分別與單片機的讀/寫信號線相連。具體方案如圖2所示。限于篇幅限制,虛線內(nèi)給出1路CAN的連接圖,2路CAN有同樣的連接方法。[JP]

由于多I/O總線芯片訪問單片機,采用譯碼方式實現(xiàn)片選功能,可采用二[CD*2]四譯碼器74LS139實現(xiàn)SRAM和CAN控制器的片選信號。由于單片機可以查詢或中斷方式訪問,在此采用中斷方式進行CAN多通道選擇訪問,以滿足不同通信速率下數(shù)據(jù)處理的需要。SRAM的地址線與數(shù)據(jù)線是分開的,故采用74LS373鎖存器實現(xiàn)鎖存功能??刹捎?XC95144 CPLD芯片以及VHDL硬件描述語言以實現(xiàn)鎖存、譯碼等功能。

2.3 CPLD設計部分

2.3.1 結(jié)構(gòu)設計

CPLD的輸入信號是單片機發(fā)送的信號,由高位地址A[15..8]、ALE鎖存信號、中斷信號以及寫/讀信號組成。地址線A14和A15經(jīng)譯碼后作為片選信號,ALE實現(xiàn)低8位地址線的鎖存。實體和構(gòu)造體部分代碼如下所示:

2.3.2 仿真結(jié)果

該模塊在Xilinx ISE 9.1工具下進行綜合,并在結(jié)合ModelSim環(huán)境下進行功能仿真。其仿真結(jié)果如圖3所示。

3 軟件設計

該系統(tǒng)軟件設計的關(guān)鍵是通信程序設計。通信軟件由三部分組成:單片機和CAN控制器的初始化程序、CAN發(fā)送程序、CAN接收程序。對于初始化程序,采用MAX232芯片[9]對單片機進行在線編程,可同時對多通道CAN控制器初始化。對于CAN控制器的初始化程序,主要是通過對CAN控制器控制段中的寄存器寫入控制字,從而確定CAN控制器的工作方式等,即通過上電復位、硬件復位或軟件復位給CAN控制器發(fā)一個復位請求,便可進入初始化。在復位期間,對必需的寄存器進行設置。對于發(fā)送和接受程序,只需把到來的信息幀送到CAN的發(fā)送或接受緩沖區(qū),同時啟動命令即可。二者可采用查詢方式或中斷方式,對于中斷方式,程序分為主程序和中斷服務程序兩部分設計。

在具體項目中,需要軟硬件結(jié)合調(diào)試才能保證各部分的設計準確無誤,到達實際應用的要求。

猜你喜歡
實時性單片機
基于規(guī)則實時性的端云動態(tài)分配方法研究
基于單片機的SPWM控制逆變器的設計與實現(xiàn)
基于單片機的層次漸變暖燈的研究
基于單片機的便捷式LCF測量儀
基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡實時性仿真
航空電子AFDX與AVB傳輸實時性抗干擾對比
Microchip推出兩個全新PIC單片機系列
一種車載Profibus總線系統(tǒng)的實時性分析